咸鱼K210体验笔记—模型训练

此教程可以完整的在Win完成:制作数据集、训练yolo、转换成k210可用的Kmodel文件

模型训练

1. 安装Anaconda3

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)

参考地址:https://github.com/TonyZ1Min/yolo-for-k210

发布了166 篇原创文章 · 获赞 22 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45020839/article/details/105285941