K210 模型训练笔记

发布于:2023-01-29 ⋅ 阅读:(720) ⋅ 点赞:(0)

参考链接: 咸鱼K210体验笔记—模型训练咸鱼箘的博客-CSDN博客k210模型训练


目录

(1). 安装Anaconda3

(2). 下载工具

(3). 准备环境

1. 打开Anaconda命令行,进入工程根目录

2. 新建环境:

3. 激活环境:

4. 安装必要软件包

(4). 修改参数

(5). 导入图片

1. 打开labelimg.exe

2. 切换目录

3. 框选图片

(6). 开始训练

(7). 转换kmodel


(1). 安装Anaconda3

安装时记得勾选 【Add Anaconda3 to the PATH environment variable】

(2). 下载工具

下载此工程:mirrors / TonyZ1Min / yolo-for-k210 · GitCode

下载ncc工具箱:网盘下载:百度网盘 请输入提取码 提取码:z9fr

[train_ann.zip][train_img.zip][ncc_0.1_win.zip]放置在工程根目录,解压到当前文件夹。

(3). 准备环境

1. 打开Anaconda命令行,进入工程根目录

  • 点击开始菜单里的Anaconda

  • 再点击这个命令行工具

 

##要进入到所下载工程的目录下进行操作!

执行底下操作前,最好先换成国内的镜像源。

中国地区建议先给Anaconda和pip换源

参考:pip/anaconda修改镜像源,加快python模块安装速度_木盏的博客-CSDN博客_python切换镜像源

  • 国内源: 新版ubuntu要求使用https源,要注意。 清华:Simple Index 阿里云:Simple Index 中国科技大学 Simple Index 华中科技大学:http://pypi.hustunique.com/ 山东理工大学:http://pypi.sdutlinux.org/ 豆瓣:Simple Index

  • pip换源:

    <span style="background-color:#333333"><span style="color:#f3b3f8">cd</span> 工程根目录
    <span style="color:#f3b3f8">mkdir</span> pip
    <span style="color:#f3b3f8">cd</span> pip
    <span style="color:#f3b3f8">cd</span>.>pip.ini</span>

    上面命令一句一句输入。然后打开工程很目录中的pip.ini文件,在里面黏贴以下内容:

    <span style="background-color:#333333">[global]
    index-url <span style="color:#b8bfc6">=</span> https://pypi.mirrors.ustc.edu.cn/simple/</span>

    尝试用pip下载,出现底下字样,换源成功!

 没出现上述字样也可以先跳过,可能也换源成功了!!!

  • Anaconda换源:

    <span style="background-color:#333333">conda config <span style="color:#7575e4">--add</span> channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
    conda config <span style="color:#7575e4">--set</span> show_channel_urls <span style="color:#f3b3f8">yes</span></span>

    上面命令一句一句输入。

    尝试用conda下载一个模块,出现底下字样,换源成功!

 没出现上述字样也可以先跳过,可能也换源成功了!!!

2. 新建环境:

  • 务必先在命令窗口输入Python查看电脑安装的Python版本。

  • 命令窗口打开方式:win+r -> 输入cmd。

<span style="background-color:#333333">conda create <span style="color:#7575e4">-n</span> yolo <span style="color:#8d8df0">python</span><span style="color:#b8bfc6">=</span><span style="color:#64ab8f">3</span>.7</span>

##可以根据自己需求更改指令:

  • yolo是创建的环境名,多个环境之间互不影响;

  • python=3.7,可以根据自己下载的版本,自行更改。

  • 如果安装了多个Python版本,环境名和Python版本可以随意组合。

输入y等待下载完成

3. 激活环境:

<span style="background-color:#333333">conda activate yolo</span>

4. 安装必要软件包

<span style="background-color:#333333">pip install <span style="color:#7575e4">-r</span> requirements.txt</span>

#如果时间有点长,请耐心等待。

(4). 修改参数

在[configs.json]中修改网络类型,lable标签(如raccoon)和其他参数,注意存放图片(train_img)和存放注释(train_ann)的文件夹名称。

#如果都和下载的工程一样就不用改。

(5). 导入图片

  • 把要训练的图片放入train_img

放入的图片要是224×224的,否则可能训练模型失败!!!!!!!!

1. 打开labelimg.exe

2. 切换目录

  • Open Dir —> 选择存放图片的文件夹(train_img)

  • Change Save Dir —> 选择存放注释文件夹(train_ann)

3. 框选图片

  • Create RectBox —> 框选要标注的物体并输入lable,和上文configs中的相同(如Target)

Save保存后点击下一个(Next Image

会自动生成标注的目标位置的xml文件保存在注释文件夹中

(6). 开始训练

1. 训练前先换成国内的镜像源。

<span style="background-color:#333333">pip install h5py==2.10 -i https://pypi.tuna.tsinghua.edu.cn/simple/</span>

\1. pip install 表示通过pip 来安装某种包。

\2. xxx 表示你要安装的包名,比如pipenv,jupyter等等。

\3. -i Simple Index 表示将镜像地址切换为国内,这里切换到了清华。

2. 输入命令

<span style="background-color:#333333">python train.py <span style="color:#7575e4">-c</span> configs.json</span>

训练图片越多训练模型越久。

3. 训练成功

等待训练结束,会出现时间命名的文件夹,里面的tflite文件就是训练好的模型。

重命名(如:test.tflite)并复制到工程根目录

(7). 转换kmodel

  • 输入命令

    <span style="background-color:#333333">ncc_0.1_win\ncc kmodel.tflite test.kmodel -i tflite -o k210model --dataset train_img</span>

    \1. kmodel.tflite:输入文件名称。

    \2. test.kmodel: 输出文件名称。

  • 转换完成根目录会出现test.kmodel,即可烧录进k210中运行

  • 烧录kmodel时,要从0x300000开始下载。

  • 测试程序

    <span style="background-color:#333333"><span style="color:#b8bfc6">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)</span></span>
本文含有隐藏内容,请 开通VIP 后查看