使用Mx-Yolov3与Maixhub,本地及线上训练K210模型文件

这篇具有很好参考价值的文章主要介绍了使用Mx-Yolov3与Maixhub,本地及线上训练K210模型文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

声明:本文谢绝转载!

CSDN地址:https://blog.csdn.net/weixin_58068682
个人博客:https://amnesia-f.gitee.io/

一、功能介绍

目前提供两种训练:

  • 目标分类: 识别图片所属的种类, 比如图中是苹果还是杯子, 没有坐标。 如下图,识别到了苹果,是苹果的概率为0.8

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

  • 目标检测: 检测图片中物体的位置, 并且输出这个物体的坐标和物体大小(即框出认识的物体)。 如下图, 识别到了苹果, 并且框出了位置, 是苹果的概率为0.8

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

二、确定方案

  1. 首先确定要训练哪种模型。
    在上面支持的模型中选择一个,如果不需要检测物体坐标, 用目标分类, 需要坐标则目标识别,
    两者处理数据要做的工作和格式都不一样, 后者会复杂很多。

  2. 确定分类。 包括分类数量, 具体分类。 比如这里以识别红色小球和玩具为例:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能
mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

所以共两个分类: balltoy, 我们也称之为标签(label)

注意!分类名(标签/label)只能使用英文字符和下划线

  1. 确定分辨率。 图片的分辨率也十分重要,不管是在采集、训练,还是使用时, 都需要十分注意, 稍不注意,模型可能就无法使用或者识别精度低。
    以下为Maixhub目前支持的分辨率,其它分辨率将会训练失败:

目标分类、目标检测: 224x224(推荐)

确定采集数据集(这里就是所有图片的统称)数量。 即确定好每个分类的图片数量,方便后面采集图片快速准确进行,

三、获取,处理数据集

1.采集数据

  1. 图片数据的采集可以使用任意的图片采集工具。某些特定的图片数据,可能需要用k210主控板的摄像头来拍摄,这样数据使用会比较准确。

  2. 手机拍照, 然后使用预处理工具处理成需要的分辨率

  3. 可以使用网络爬虫在网络上按名称爬取图片,在Mx_yolo_v3的“工具集”菜单中,使用图片爬取工具可以爬取需要的照片。

注:要把无效图片去除,否则会影响训练!

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

得到图片数据后,将其导入电脑:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

2.处理图片分辨率

打开Image_tool.exe软件,看到以下界面,点击选择图像文件夹...,选择存放采集照片的文件夹,设置分辨率为224*224

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

等待处理完毕后,即可得到224*224分辨率的图片:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

3.对图片进行更名

打开 拖把更名器 文件夹中的xTools.exe

点击菜单栏中的序号,接下来按照下图步骤操作即可:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

应用更改后即可得到按照序号排列的文件名:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

4.标注图片

此步骤仅目标检测需要操作!

目标分类可跳过此步骤。

新建一个mask文件夹,里面新建imagesxml文件夹,将先前处理好的图片数据丢入images文件夹。

打开LabelImg软件:

  1. 更改图片所在文件夹;
  2. 更改标签所在文件夹;

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

  1. 点击 Create RectBox 进行标注;
  2. 在图片上拖选出需要识别的标注部分;
  3. 输入标签/label名,点击OK;
  4. 点击 Save 保存;
  5. 点击Next Images 标注下一张图片;

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

到此数据集的处理和准备工作完毕,接下来就可以开始训练模型了!

四、训练模型

1.目标分类

1.1 线上Maixhub平台

打包数据集

将数据集按以下分支保存,

并将其压缩为zip文件:

datasets.zip
            |
            datasets
                    |
                     ----mask
                    |        |
                    |         ---0.jpg
                    |        |
                    |         ---1.jpg
                    |        |
                    |         ---2.jpg
                    |
                     ----redbull
                           |
                            ---0.jpg
                           |
                            ---1.jpg

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

压缩文件命名为datasets.zip,注意大小不要超过20MB。

训练过程

打开Maixhub注册地址:https://www.maixhub.com/register,注册一个账号:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

注册成功后记得去邮箱激活账号。

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

回到首页,点击网页顶部的模型训练

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

选择物体分类,点击 Next :

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

上传前面打包好的数据集:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

上传完成后点击Submit,之后耐心等待即可:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

等待一段时间训练完成后,来到此界面,点击 Download 下载训练好的模型文件:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

下载回来得到以下文件,将其全部丢入K210板的sd卡中,上电之后即可实现简单的目标分类功能:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

1.2 线下Mx_Yolo_v3训练

保存数据集

将数据集按以下分支保存,

线下训练无需打包为压缩包。

images
      |
        ----apples
      |      |
      |       ---0.jpg
      |      |
      |       ---1.jpg
      |      |
      |       ---2.jpg
      |
        ----bananas
              |
              ---0.jpg
              |
              ---1.jpg
进行训练

打开Mxyolov3,点击图像分类

点击选择,选取到刚才调整好的images文件夹,再点击提取,此时正常来说可以显示出你的各label名称,比如我的是apples,bananas

其他配置参数可以保持默认无需更改,如果需要更高的识别率可以调整训练次数的多少。

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

点击开始训练,耐心等待一段时间即可。

跑完训练过程后,会出现两个结果图,关闭即可,等待信息栏出现over,end等字样即代表训练过程完成,会自动弹出存放模型文件的文件夹。

需记录下此文件夹路径,后面需要用到,一般在Mx_yolo安装目录下的Model_file文件夹中。

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

测试模型

点击右上角的测试模型,选择刚才训练完毕后弹出的文件夹中的weights.h5文件,得到以下结果。

可以看到有关苹果的图片被标注上apples,说明模型可以正常使用。

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

转换模型

Mx_yolo_v3中训练出的模型无法直接在K210板上使用,需要转换为kmodel文件,

在软件中内置了模型转换软件,点击右上角的转换模型,进入以下界面:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

  1. 模型输入路径选择刚才弹出的Model_file文件夹下的weights.tflite文件;
  2. 模型输出路径选择你需要导出的文件所在路径;
  3. 量化图片路径选择你的图片数据集。

转换成功后即可放入sd卡在K210板中运行。

2.目标检测

1.1 线上 Maixhub 平台

打包数据集

新建一个labels.txt, 输入标记的标签, 每行一个, 比如这里:

ball
toy

这是必须的, 否则数据会无效。

然后目录结构如下:

datasets.zip
            |
            datasets
                    |
                     ----images
                    |        |
                    |        |---0.jpg
                    |        |
                    |         ---1.jpg
                    |
                    |------xml
                    |        |---0.xml
                    |        |
                    |        |---1.xml
                    |
                     ----labels.txt

或者两级labelimg输出:

datasets.zip
          |
           datasets
                  |
                  |---images
                  |      |
                  |       ----ball
                  |      |       |
                  |      |        ---0.jpg
                  |      |       |
                  |      |        ---1.jpg
                  |      |
                  |       ----toy
                  |      |      |
                  |      |       ---0.jpg
                  |       ---pic0.jpg
                  |---xml
                  |     |
                  |      ----ball
                  |     |        |
                  |     |         ---0.xml
                  |     |        |
                  |     |         ---1.xml
                  |     |
                  |      ----toy
                  |     |       |
                  |     |        ---0.xml
                  |      ----pic0.xml
                   --labels.txt

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

训练过程

目标检测与目标分类的线上训练过程完全相同,仅需更改为对应模式即可,

参考四、 1. 1.1 训练过程处步骤即可。

1.2 线下 Mx_yolo_v3 训练

打开软件,选择目标识别

  1. 选择网络为Yolov2-K210
  2. 训练图片地址选择为你图片训练集的路径;
  3. 训练标签地址选择为你为图片标注后保存的xml文件路径;
  4. 点击自动提取,将提取出种类名称,即label;
  5. 点击计算,将自动计算出锚点,即author,后面会用到。
  6. 其他配置可保持默认不变,建议取消勾选数据校验,容易闪退。

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

点击开始训练即可;

等待训练完成后会出现类似于目标分类后的曲线图,关闭后再稍等片刻即可。

模型转换

此步骤与前面大同小异,参考四、 1. 1.2 测试模型、转换模型处步骤。

五、上传程序

目标分类

使用以下代码:

  1. 需要在代码15行及70行修改引用的kmodel文件:model_addr="/sd/fruit.kmodel"
  2. 需要在代码68行修改你的label名:labels = ["apples", "bananas"]
import sensor, image, lcd, time
import KPU as kpu
import gc, sys


def lcd_show_except(e):
    import uio
    err_str = uio.StringIO()
    sys.print_exception(e, err_str)
    err_str = err_str.getvalue()
    img = image.Image(size=(224,224))
    img.draw_string(0, 10, err_str, scale=1, color=(0xff,0x00,0x00))
    lcd.display(img)

def main(labels = None, model_addr="/sd/fruit.kmodel", sensor_window=(224, 224), lcd_rotation=0, sensor_hmirror=False, sensor_vflip=False):
    sensor.reset()
    sensor.set_pixformat(sensor.RGB565)
    sensor.set_framesize(sensor.QVGA)
    sensor.set_windowing(sensor_window)
    sensor.set_hmirror(sensor_hmirror)
    sensor.set_vflip(sensor_vflip)
    sensor.run(1)

    lcd.init(type=1)
    lcd.rotation(lcd_rotation)
    lcd.clear(lcd.WHITE)

    if not labels:
        with open('labels.txt','r') as f:
            exec(f.read())
    if not labels:
        print("no labels.txt")
        img = image.Image(size=(320, 240))
        img.draw_string(90, 110, "no labels.txt", color=(255, 0, 0), scale=2)
        lcd.display(img)
        return 1
    try:
        img = image.Image("startup.jpg")
        lcd.display(img)
    except Exception:
        img = image.Image(size=(320, 240))
        img.draw_string(90, 110, "loading model...", color=(255, 255, 255), scale=2)
        lcd.display(img)

    try:
        task = None
        task = kpu.load(model_addr)
        while(True):
            img = sensor.snapshot()
            t = time.ticks_ms()
            fmap = kpu.forward(task, img)
            t = time.ticks_ms() - t
            plist=fmap[:]
            pmax=max(plist) 
            max_index=plist.index(pmax)
            img.draw_string(0,0, "%.2f : %s" %(pmax, labels[max_index].strip()), scale=2, color=(255, 0, 0))
            img.draw_string(0, 200, "t:%dms" %(t), scale=2, color=(255, 0, 0))
            lcd.display(img)
    except Exception as e:
        raise e
    finally:
        if not task is None:
            kpu.deinit(task)


if __name__ == "__main__":
    try:
        labels = ["apples", "bananas"]
        # main(labels=labels, model_addr=0x300000)
        main(labels=labels, model_addr="/sd/fruit.kmodel")
    except Exception as e:
        sys.print_exception(e)
        lcd_show_except(e)
    finally:
        gc.collect()

目标检测

根据实际情况修改即可:

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

六、出错问题

1.内存不足

SYSCALL: Out of memory

Traceback (most recent call last):
  File "main.py", line 24, in <module>
ValueError: [Maixduino]kpu: load error:2006, ERR_NO_MEM: memory not enough

解决办法:刷mini固件,下载地址

2.锚点错误

File "main.py", line 30, in <module>
ValueError: [MAIXPY]kpu: region_layer_init err!

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

此问题为使用目标分类模型,但没有使用到锚点所报的错。

解决方法:参考上文提供的代码,使用Python纯代码编写程序。

3.转换失败

mx-yolov3,Python,人工智能,深度学习,计算机视觉,人工智能

解决方法:无,更换电脑重试。

七、下载资源

  • Mx_Yolo-v3安装包:https://www.aliyundrive.com/s/Vknz8mtKqMj

提取码zl04

  • mini固件:下载地址

  • 其他软件及代码等文件:
    可以在评论区留下邮箱,网盘多有空间及文件类型限制,分享过于麻烦。

八、参考文档

  • Maixhub 模型训练平台使用说明

  • 博派史上最强K210板教程6——模型训练文章来源地址https://www.toymoban.com/news/detail-617090.html

到了这里,关于使用Mx-Yolov3与Maixhub,本地及线上训练K210模型文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • K210学习笔记(十二)——MaixHub本地训练模型(Windows)

    MaixHub虽然可以在线训练模型,但是数据集限制大小为20M以下,而且大多数时候都需要排队才能训练模型,这可能就不能满足我们对模型的需求,所以我在Windows系统下搭建环境,本地训练模型。对于本地训练的纯小白来说,虽然MaixHub本地训练不需要虚拟机,但是还是要严格按

    2023年04月26日
    浏览(46)
  • Mx_yolov3环境配置+模型测试训练

    目录 前言 一、Mx_yolov3的下载 二、环境配置 总结 最近刚结束电子设计大赛,也是对自己近期的工作学习有一个浅浅的总结。准备电赛的过程中遇到较困难的事情就是配置K210支持的深度学习环境了。之前打算用darknet-yolov2,结果失败了,后来由于自己是win11(踩坑,强烈建议不

    2024年02月14日
    浏览(41)
  • 阿里云新用户滑块验证不过,阿里云滑动验证流程及线上问题排查

    滑动验证是阿里巴巴集团提供的一种验证码解决方案,采用风险分析引擎,有效区分来自人类与机器人的访问行为并拦截机器风险,为您提供安全可靠的业务环境。 下图是滑动验证在用户客户端的展示效果。 产品介绍:阿里云验证码(Alibaba Captcha) 滑动验证流程 滑动验证服

    2024年01月17日
    浏览(41)
  • K210学习笔记——MaixHub在线训练模型(新版)

      最近sipeed推出了新版的maixhub在线训练平台,因为前端时间比较忙没有时间来体验新版的功能,最近闲下来后赶忙来体验一下。新版maixhub对浏览器有要求的,比如不支持qq浏览器,推荐使用Chrome、Microsoft Edge、Firefox、Safari等浏览器。点击这里跳转新版maixhub。   新版mai

    2023年04月08日
    浏览(34)
  • K210学习篇(八)在MaixHub训练模型

    本文着重于如何使用K210拍摄图片,并将图片上传到MaixHub平台进行模型训练。补充一下一些经验心得,比如一些训练参数的设置。 在我们训练模型之前,我们需要获取一些数据集,其实也就是需要识别的物体图片。这里记得我们在获取数据集的时候,尽量使用手里的k210去进行

    2024年02月17日
    浏览(45)
  • 【yolov5 安装教程】(入门篇)避免踩雷保姆级教程 在m1芯片下 使用yolov5本地训练自己的数据集 ——mac m1

    ​​​​​​​ 目录 一、简介 配置 环境准备 二、环境配置 1.安装anaconda 2.安装TensorFlow 3.安装pytorch 4.pyqt5安装  5.安装labelimg 6.下载yolov5 7.pycharm安装 三、使用labelimg标记图片 1.准备工作 2.标记图片 四、 划分数据集以及配置文件修改 1. 划分训练集、验证集、测试集 2.XML格式转

    2024年02月05日
    浏览(47)
  • 【目标检测实验系列】AutoDL线上GPU服务器租用流程以及如何用Pycharm软件远程连接服务器进行模型训练 (以Pycharm远程训练Yolov5项目为例子 超详细)

           本篇博客主要涉及两个主体内容。 第一个 :从AutoDL网站中租用GPU服务器。 第二个 :用Pycharm软件远程连接租来的线上服务器,并以Yolov5项目为例,线上训练模型。此过程中会记录重要的地方,以及本人踩坑之后,如何解决问题的所思所想( 通读本篇博客大概需要1

    2024年02月03日
    浏览(55)
  • K210学习笔记(十一)——MaixHub在线训练模型(旧版在线炼丹)

    个人觉得K210与openmv最大的区别就是可以跑模型了,虽然不能跑yolov5得这类大型模型,但是还是可以使用一些yolov2、Mobilenet V1等轻量化模型。 想要训练一个可用得模型,奈何电脑显卡不给力,没关系,我们可以使用Spieed的MaixHub模型在线训练来训练模型。Maixhub 模型训练平台帮

    2024年02月05日
    浏览(67)
  • 本地Pycharm连接远程服务器训练模型教程-yolov5为例-傻瓜式保姆级教程!!建议收藏✨✨!

    本篇文章解决的问题: 本地pycharm 与云服务器/实验室服务器进行远程连接跑实验训练、同步本地与云服务器的全部或者部分文件。 在这之前需要做的的工作: 1.服务器上已经创建好虚拟环境(不会的可以看下篇文章):使用云GPU进行yolov5的训练_gpu训练云服务器_耿鬼喝椰汁的

    2024年02月06日
    浏览(92)
  • 【YOLOv7训练】——预训练重使用

    YOLOv7论文链接:YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors 官方github代码链接:https://github.com/WongKinYiu/yolov7 YOLOv7于2022.07发布,已被CVPR2023接收! 此贴记录自己使用YOLOv7训练自己数据集时权重使用问题 最后个人建议,能不用YOLOv7就别用!!!别用!!

    2023年04月08日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包