咸鱼K210体验笔记—模型训练
此教程可以完整的在Win完成:制作数据集、训练yolo、转换成k210可用的Kmodel文件
参考地址::https://github.com/TonyZ1Min/yolo-for-k210
模型训练
1. 安装Anaconda3
安装时记得勾选 【Add Anaconda3 to the PATH environment variable】
2. 下载工具
下载此工程,在工程根目录下将[train_ann.zip]和[train_img.zip]解压到当前文件夹
资料下载
将[ncc_0.1_win.zip]放置在工程根目录,解压到当前文件夹
3. 准备环境
首先在所在系统中安装Anaconda。可以打开命令行输入conda -V
检验是否安装以及当前conda的版本。
1.新建环境: conda create -n yolo python=3.6
输入y等待下载完成
2.激活环境:conda activate yolo
3.安装必要软件包: pip install -r requirements.txt
报错原因:文件没在根目录下所以无法打开
移动过去再试试,好了意外不意外(滑稽)
再等等QAQ(时间有点长。。耐心一点)
4. 修改参数
在[configs.json]中修改网络类型,lable标签(如raccoon),和其他参数 注意存放图片(train_img)和存放注释(train_ann)的文件夹名称 examlpe
5. 导入图片
先将图片放在train_img文件夹
打开labelImg.exe
Open Dir—>选择存放图片的文件夹(train_img)
Change Save Dir—>选择存放注释文件夹(train_ann)
Create RectBox—>框选要标注的物体并输入lable,和上文configs中的相同(如raccoon)
Save后点下一个(Next Image)
会自动生成标注的目标位置的xml文件保存在注释文件夹中
6. 开始训练
输入命令
python train.py -c configs.json
如果出现cv2丢失那就是requirements.txt文件没搞完 重新再来一遍即可解决:pip install -r requirements.txt
PS:放的训练图片太多了导致训练时间巨长。。自己搞的时候图片放少一些。(等的我花都谢了)
下载完成
等待训练结束,会出现时间命名的文件夹,里面的tflite文件就是训练好的模型
重命名(如:test.tflite)并复制到工程根目录
7. 转换成Kmodel
ncc_0.1_win\ncc test.tflite test.kmodel -i tflite -o k210model --dataset train_img
转换完成根目录会出现test.kmodel,即可烧录进k210中运行
测试程序
import sensor,image,lcd,time
import KPU as kpu
lcd.init(freq=15000000)
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))
sensor.set_brightness(2)
sensor.run(1)
clock = time.clock()
classes = ['class_1']
task = kpu.load(0x300000)
anchor = (1, 1.2, 2, 3, 4, 3, 6, 4, 5, 6.5)
a = kpu.init_yolo2(task, 0.17, 0.3, 5, anchor)
while(True):
clock.tick()
img = sensor.snapshot()
code = kpu.run_yolo2(task, img)
print(clock.fps())
if code:
for i in code:
a=img.draw_rectangle(i.rect())
a = lcd.display(img)
print(i.classid(),i.value())
for i in code:
lcd.draw_string(i.x(), i.y(), classes[i.classid()], lcd.RED, lcd.WHITE)
lcd.draw_string(i.x(), i.y()+12, '%f1.3'%i.value(), lcd.RED, lcd.WHITE)
else:
a = lcd.display(img)
a = kpu.deinit(task)