K210使用记录

文章目录

  • 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/

下面固件及其版本
K210使用记录_第1张图片
打开就能看到里面的几种版本的固件,推荐用下面的这种,同时支持openmv还有读取kmodel的,当然最大的那个应该是最全的,也可以试试
K210使用记录_第2张图片

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

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

视频打开是这样的,b站的一个视频,作者是他们官方群的群主
K210使用记录_第3张图片

2、程序移植

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

在前面给的资料参考网站可以看到sipeed提供的一些传统图像的实现方案,这部分基本和openmv是一样的
K210使用记录_第4张图片

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

OPENMV配置记录(一)

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

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

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

3、训练K210环境搭建

1、CUDA和CUDNN的安装配置

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

tensorflow的两个包的对应关系

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

K210使用记录_第8张图片还可以看到针对linux的设备匹配情况,这里就是多了GCC的版本对应
K210使用记录_第9张图片

下面是cudnn的下载地址

https://developer.nvidia.com/rdp/cudnn-archive
K210使用记录_第10张图片

下面是cuda的下载地址

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

2、开始安装

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

3、anaconda环境配置

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

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

conda create -n Mx_yolov3 python=3.7

之后把我们刚才配置的python加入到环境变量里面去
K210使用记录_第24张图片
之后使用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环境,安装下面的需要的东西即可
K210使用记录_第25张图片
输入下面的命令即可

pip install -r requiremnets.txt

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

python train.py init

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

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

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

2、使用maixhub在线训练

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

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

下面模型训练的网站

https://www.maixhub.com/ModelTraining

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

3、使用mx-yolov3训练

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

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

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

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

你可能感兴趣的:(单片机学习记录,单片机,目标检测,目标跟踪,计算机视觉)