K210使用记录

news/2024/7/10 2:17:24 标签: 单片机, 目标检测, 目标跟踪, 计算机视觉

文章目录

  • 1、基本资料来源
  • 2、基本视觉功能
    • 1、固件定制
    • 2、程序移植
  • 3、训练K210环境搭建
    • 1、CUDA和CUDNN的安装配置
    • 2、开始安装
    • 3、anaconda环境配置
  • 4、训练神经网络模型
    • 1、使用官方训练模型训练
    • 2、使用maixhub在线训练
    • 3、使用mx-yolov3训练

本文算是对K210使用的一个记录吧,这样以后方便后面的学弟学妹快速学习了解K210的基本知识和入门使用

1、基本资料来源

官网(嘉楠堪智)

https://canaan-creative.com/product/kendryteai

常用的使用一般有两种,这里从适用性的角度优先使用第一种,资料齐全,上手会快很多

1、使用micro python进行开发

官方文章
https://wiki.sipeed.com/soft/maixpy/zh/index.html
模型训练平台
https://www.maixhub.com/ModelTraining
官方淘宝店
https://sipeed.taobao.com/shop/view_shop.htm?spm=a230r.1.14.4.681570a1T5WoCg&user_number_id=2200606237318

了解K210(单指sipeed家的)基本可以从以上几个链接看到比较详细的资料,一般使用K210都是当成openmv来使用,外加使用k210的Kpu进行部分神经网络的计算,当成一个轻量级的目标检测平台使用,可以做的事情比较多,不过因为自身算力的原因也比较有限。

2、裸机开发,建议参考下面大佬的教程

https://blog.csdn.net/jwdeng1995/category_10302376.html

官方提供了堪智IDE,和vscode比较像,可以进行裸机开发,类似satm32一样进行c语言编程。

2、基本视觉功能

1、固件定制

使用sipeed家的方法进行开发需要事先进行固件定制,固件下载链接如下所示:

https://dl.sipeed.com/MAIX/MaixPy/release/master/

下面固件及其版本
在这里插入图片描述
打开就能看到里面的几种版本的固件,推荐用下面的这种,同时支持openmv还有读取kmodel的,当然最大的那个应该是最全的,也可以试试
在这里插入图片描述

固件的刷写可以看官方的一个视频,官方提供了一个串口的工具进行固件擦除和写入

https://www.bilibili.com/video/BV144411J72P?spm_id_from=333.337.search-card.all.click

视频打开是这样的,b站的一个视频,作者是他们官方群的群主
在这里插入图片描述

2、程序移植

如果已经刷了k210的固件,那么就可以开始进行进行开发了

在前面给的资料参考网站可以看到sipeed提供的一些传统图像的实现方案,这部分基本和openmv是一样的
在这里插入图片描述

k210移植了openmv的函数库,openmv能干的基本上k210都可以,(不过openmv在不断更新,相关函数库也在不断更新,所以openmv新的一些东西k210都是没有的),不过基本的视觉功能都还在,可以直接使用,我之前写过一篇关于openmv基本使用的文章,根据这篇文章来即可,基本上都可以在k210上进行实现。

OPENMV配置记录(一)

老实说openmv这个硬件卖的确实贵,不过他本身的教程还有例程更新的也确实勤快,这些部分sipeed后面都没有移植了,可以自行一直或者当作一种思路来看看吧
在这里插入图片描述
还有一个很重要的地方就是openm的文档做的很详细,有啥不清楚的都可以来这边查,是在属于一边用,另一边查了!

https://docs.singtown.com/micropython/zh/latest/openmvcam/index.html

比如想了解最常见的寻找色块的函数,在这里输入即可进行查询
在这里插入图片描述
点击进去可以看到比较详细的介绍,这不比在sipeed上看详细多了,也方便我们进行参数的修改
在这里插入图片描述
基本openmv的部分就不继续介绍了,可以直接参考我之前写的openmv的记录文章,本文主要还是介绍有关k210进行目标检测的部分内容。

3、训练K210环境搭建

1、CUDA和CUDNN的安装配置

需要配置这两个才能成功调用电脑的GPU来训练,不然这个训练速度简直就不是一个速度级别的,差距有很大,所以电脑有GPU还是尽量要给他配置上

tensorflow的两个包的对应关系

打开可以查看对应关系,就是这两个包的版本要对应上来安装

还可以看到针对linux的设备匹配情况,这里就是多了GCC的版本对应
在这里插入图片描述

下面是cudnn的下载地址

https://developer.nvidia.com/rdp/cudnn-archive
在这里插入图片描述

下面是cuda的下载地址

https://developer.nvidia.com/cuda-10.1-download-archive-base?target_os=Windows&target_arch=x86_64&target_version=10
在这里插入图片描述
这里针对版本匹配,需要下载CUDA10.0.1,CUDNN为7.6.4版本的,如下所示
在这里插入图片描述

2、开始安装

安装上先安装CUDA,这里就比较基本直接上了,双击就可以开始
在这里插入图片描述
下面也是一路next,选自定义
在这里插入图片描述
这里选一个就行,之后就一路安装即可
在这里插入图片描述
下面就又到了环境变量部分了
在这里插入图片描述
新建这两个变脸,下面是第一个
在这里插入图片描述
第二个如下所示
在这里插入图片描述
之后在进行下面的操作
在这里插入图片描述·
打开命令行,输入,看到信息就成功
在这里插入图片描述
之后解压下载的cudnn工具包,解压出来这样的
在这里插入图片描述
打开里面的文件,打开bin文件,把bin文件里面的.dll文件复制到我们的CUDA的目录下,位置如图所示
在这里插入图片描述
之后是include文件夹也进行复制
在这里插入图片描述
之后是lib文件夹的内容进行复制
在这里插入图片描述
这样我们就安装好了CUDA还有CUDNN了

3、anaconda环境配置

conda这里环境配置就不多说了,网上教程很多,版本也是很多种的,可以参考我之前的博客来进行配置 pycharm配置conda记录

这里进入命令行,配置如下,因为官方比较推荐3.7的,所以这里就给他配置一个3.7的环境吧

conda create -n Mx_yolov3 python=3.7

之后把我们刚才配置的python加入到环境变量里面去
在这里插入图片描述
之后使用conda安装下面的内容,这里可以用新建一个txt的方法也可以直接一句一句的方法都可以的

imgaug==0.2.6
opencv-python==4.0.0.21
Pillow==6.2.0
requests==2.24.0
tqdm==4.48.2
sklearn==0.0
pytest-cov==2.10.0
codecov==2.1.8
matplotlib==3.0.3
Tensorflow==1.15.0
Tensorflow_gpu==1.15.0
pascal_voc_writer==0.1.4
PyQt5==5.15.0
numpy==1.16.2
keras==2.3.1
scikit-learn==0.22.2
seaborn==0.11.0
alive-progress==1.6.1
h5py==2.10.0
pyecharts==1.9.0
matplotlib==3.0.3

这样我们就配置好需要的环境了,下面就是下载源码跑起来了

4、训练神经网络模型

1、使用官方训练模型训练

官方模型地址,把这个项目克隆下来就行,官方推荐是使用linux平台,这里我电脑装了另一个ubuntu系统,电脑装双系统的教程很多,可以参考b站相关教程,也比较多。

https://github.com/sipeed/maix_train.git

首先还是把这个项目克隆下来,打开是这样的,这里新建一个conda环境,安装下面的需要的东西即可
在这里插入图片描述
输入下面的命令即可

pip install -r requiremnets.txt

之后还需要下载一个ncc的模型转换工具,这个在官方的代码李说明了
在这里插入图片描述
点开链接即可进行下载,下载第一个即可
在这里插入图片描述
之后把他放到指定的文件夹之后解压这里我解压完成之后就把压缩包删除了,看个人情况吧(解压的目录为tools/ncc/ncc_v0.1,这里需要自己新建这个目录,如果没有的话要新建
在这里插入图片描述
之后就可以开始训练了,首先生成训练参数

python train.py init

会生成这样的一个文件夹
在这里插入图片描述
这里面的就是训练参数了,不需要修改,直接用就行,要改可能就改改训练次数还是最小精度之类的,下面都挺清楚的,可以自行查看,根据需要修改。
在这里插入图片描述
下面就可以开始训练了,其实官方的readme都已经写过了,按照他的来就行
在这里插入图片描述
下载的git文件里面已经有了数据集,我们要用的话,按照这个数据集格式其实就行
在这里插入图片描述
查看压缩文件是这样的
在这里插入图片描述
最后其实就这样的一个格式
在这里插入图片描述
因此如果使用检测模型的话就是如下命令(这里数据集可以换成自己的

python3 train.py -t detector -z datasets/test_detector_xml_format.zip train

开始训练
在这里插入图片描述
训练完成
在这里插入图片描述
训练完成之后就都在out目录下面
在这里插入图片描述
结果可以在这里查看
在这里插入图片描述
loss曲线查看
在这里插入图片描述
之后就可以把训练好的模型放到sd卡里面运行了,官方提供了boot.py文件供我们进行测试
在这里插入图片描述

2、使用maixhub在线训练

首先是训练说明,这里主要是前期一些数据集的制作等部分需要我们注意下(特别注意最后打包的格式不要做了

https://www.maixhub.com/ModelTrainingHelp_zh.html

下面模型训练的网站

https://www.maixhub.com/ModelTraining

在这里插入图片描述
这里注意下获取机器码,经过我验证这个机器码就算你用的不是sipeed家的板子也是可以的,按照它上面的提示烧录固件然后查看串口打印的信息就可以查看机器码了,训练完成之后可以下载我们训练的文件,基本和之前的下载的差不多,相关的文件也都提供了。
在这里插入图片描述

3、使用mx-yolov3训练

详情查看,这个是一个大佬做的可视化训练工具,非常方便,大佬收发应该是公众号,名称为import创客,进入后回复mx3就可以获取下载链接

https://mc.dfrobot.com.cn/thread-307554-1-1.html

打开后是这样的
在这里插入图片描述
首先是环境配置,这里不建议安装,因为经常会有各种各样的问题,而且这还是采用的直接安装在c盘,不如使用conda虚拟环境来安装方便,直接参考我第三章k210训练环境搭建即可。
在这里插入图片描述
工具打开后是这样的
在这里插入图片描述
一般常用的例如标注工具(标注工具强烈建议了解下快捷键的使用,效率飙升
在这里插入图片描述
下载固件的工具,这里都做了集成
在这里插入图片描述
下面是两种训练的方式,一种是检测模型一种是分类模型
在这里插入图片描述
引入数据集
在这里插入图片描述
作者还引入了描点计算,可以自己计算几次,获取最佳的锚点,之后就可以开始训练了
在这里插入图片描述
训练情况
在这里插入图片描述

之后是使用ncc工具将模型转为kmodel格式,这样就可以生成我们需要的模型文件了
在这里插入图片描述
引入的相关文件夹如下所示
在这里插入图片描述
这样就完成了一个训练流程了,不得不说这个工具还是很方便的!


http://www.niftyadmin.cn/n/980073.html

相关文章

解决Eclipse下真机调试无法输出Logcat

2019独角兽企业重金招聘Python工程师标准>>> 以酷派7295C为例,方法是:拨号盘输入*20121220# -> 选择日志输出级别 -> 选择Java log level -> 选择LOGD即可 转载于:https://my.oschina.net/Ccx371161810/blog/340764

go语言使用go-sciter创建桌面应用(七) view对象常用方法,文件选择,窗口弹出,请求...

view对象的详细文档请看&#xff1a; https://sciter.com/docs/content/sciter/View.htm demo9.html代码如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>view对象学习</title>…

ROS学习记录(一)

文章目录1、ROS安装2、更新3、运行小乌龟很早就挺同学讲ROS是个很好用的工具&#xff0c;但是一直都没什么机会尝试一下&#xff0c;最近正好毕设初稿已经&#xff0c;有空闲&#xff0c;有设备&#xff0c;正好来尝试下ROS的开发&#xff0c;顺便在博客上记录下自己的开发过程…

MSP432单片机学习记录(Code Composer Studio)

文章目录1、Code Composer Studio上手2、新建工程和下载3、增加自定义文件1、Code Composer Studio上手 官网地址如下&#xff0c;可自行下载安装&#xff0c;这个是免费的 https://www.ti.com.cn/tool/cn/CCSTUDIO 下面打开之后是下面这样的页面&#xff0c;下面是红色标志是…

adb 常用命令

adb 常用命令 ADB的全称为Android Debug Bridge&#xff0c;就是起到调试桥的作用。ADB是android sdk&#xff08;Android专属的软件开发工具包&#xff09;里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备。 它的主要功能有&#xff1a;运行设备…

1120. Friend Numbers (20)(朋友数)

Friend Numbers (20) Two integers are called “friend numbers” if they share the same sum of their digits, and the sum is their “friend ID”. For example, 123 and 51 are friend numbers since 123 51 6, and 6 is their friend ID. Given some numbers, you a…

移植cjson到windows下编译

起因 在工作过程中发现需要让Lua支持json库&#xff0c;如果直接用lua版本的json解析器的话效率不够高&#xff0c;所以找了一个用C实现的json库--cjson&#xff0c;据说此库比lua版本的效率高10-20倍。但是cjson是一个安卓的库&#xff0c;所以需要将其移植到VC中进行使用。 环…

MSP432单片机学习记录(二)

文章目录1、复位视图2、代码提示3、新建自己的硬件库&#xff08;hardware&#xff09;4、中断的使用前面的文章提到了ccs工程的创建&#xff0c;下面继续介绍msp432的使用&#xff0c;上一篇文章链接如下所示&#xff1a;MSP432单片机学习记录&#xff08;Code Composer Studi…