Mx-yolov3+Maixpy+ K210进行本地模型训练和目标检测

这篇具有很好参考价值的文章主要介绍了Mx-yolov3+Maixpy+ K210进行本地模型训练和目标检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我接触K210同样也是因为一次比赛,需要进行目标检测并对垃圾进行分类,在接触到K210之前我一直使用各种YOLO版本检测,并部署到树莓派和nano上,一次偶然的机会,我发现了K210,这里要感谢我的一位学长,是他带着我开始了K210的学习,让我从盲目的命令行指令转到Maxipy上使用Python来学习K210。我写下这篇博客是为了记录我的学习生活,并感谢这位帮助我的学长。


前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,K210便是一个很好的工具。K210是由一家叫做嘉楠的曾经做 挖矿芯片 的公司在去年推出的一款MCU,其特色在于芯片架构中包含了一个自研的神经网络硬件加速器KPU,可以高性能地进行卷积神经网络运算。 可不要以为MCU的性能就一定比不上高端SoC,至少在AI计算方面,K210的算力其实是相当可观的。根据嘉楠官方的描述,K210的KPU算力有0.8TOPS ,作为对比,拥有128个CUDA单元GPU的英伟达Jetson Nano的算力是0.47TFLOPS ;而最新的树莓派4只有不到0.1TFLOPS 。所以K210是你进行深度学习不可多得的好帮手,接下来我们进入正文。

一、所需环境

1.硬件环境

K210开发板
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
以上系列都可以,我基本上使用过所有Sipeed的K210开发板,他们基本上都是大同小异。

2.软件环境

软件的话这里我推荐使用Mx-yolov3和Maixpy
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
Mx-yolov3
Maixpy:大家可自行从官网上下载

二、Mx-yolov3

Mx-yolov3是一位大佬写的软件,它需要制定的环境,接下来我会带大家从了解到熟练使用Mx-yolov3

1.软件环境配置

mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉

1.python环境

下载软件后打开文件夹你会看到Mx-yolov3配置文件,直接打开他,所需python环境必须是python3.7.4如果你电脑安装了其他版本的python请先卸载,然后在安装。不然会直接给你报错。

2.相关依赖包

python3.7.4环境安装好后,安装Python依赖库和预训练权重,直接点安装就可以,Python环境没有问题安装相应的依赖也是没有问题的,如果在这里报错了,你需要去检查你的环境是不是有问题。

3.GPU训练配置

第三步是选装的在这里我可以进行一些介绍不按照第三步对你接下来的训练检测是没有任何影响的,安装cuda和cudun是为了使用GPU训练,不安装的话电脑会使用CPU训练。
安装步骤很简单,文件夹里有相应的教程在这里我不做过多赘述。(建议大家安装本来就是GPU干的活为什么要让CPU去干呢,而且训练速度也会快很多)

4.总结

1、先安装Python3.7.4 版本,不支持Python3.8版本(因为许多依赖库不支持3.8版本的Python)必须安装在默认路径,否则修改kreas网络将失败。

2、安装依赖库、拷贝权重文件并修改Kreas网络,在安装依赖库的过程中若收到“HTTP”错误,请更换网络环境重试。

3、若需要使用GPU训练,则需要安装CUDA_10.0和Cudnn_7.6.4,安装成功后将自动启用GPU进行训练;安装的网络教程在文件夹内。

2.开始使用

mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
环境配置好之后就可以打开Mx-yolov3软件了

1.模型要求

mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
使用Mx-yolov3进行本地训练一定要将自己的图片转换为224*224大小的图片,否则会出现,识别不准确的问题(在这里提示大家一定不要用苹果手机拍照,一定要用安卓手机)本人亲自踩坑!!!

图片转换好之后进行标注,标注工具可以使用vott,标注工具的使用可以看我另一篇博客,上面介绍了该标注工具的使用以及百度网盘的下载链接。
使用vott标注要导出vocc形式,在那篇博客里也有介绍。

以上使用软件在Image_tool文件夹下

2.开始训练

mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
选择你需要训练的图片的地址以及标注后导出的标签地址,在这里我使用例程口罩训练给大家做演示(打开Mx-yolov3软件,经过简单加载之后,我们将看到它的主界面,重新选择一下训练图片地址和训练标签地址,这两个文件夹都在主目录“datasets/yolo/masks“路径下,其中img文件里面包含着所有的训练图片,而xml文件夹内则包含了所有已标注好的标签文件。)
首先选择好你所训练的模型的地址,如上图
接下来选择种类名称
然后你需要计算你所训练模型的锚点,方法很简单,点击计算即可
接下来你会看到如下图片
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
然后点击开始训练,你就可以进行训练了,不出意外,你可以看到以下图片内容
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
等待迭代完毕后,信息栏和终端信息将会同时显示训练结束。
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉

3.模型测试

训练结束后,可以在主目录下的“模型文件”文件夹中找到你刚才训练好的两个模型文件yolov2.h5和yolov2.tflite
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
接下来点击“测试模型”按钮,选择yolov2.h5模型文件,稍等几分钟,Mx-yolov2将会把测试结果显示出来。
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉

4.转换模型

点击模型转换按钮,打开NNcase0.1_GUI版本,选择刚才训练出来的yolov2.tflite模型文件,保存地址,量化图片地址(训练图片4~5张),点击开始转换,等待一会,将看到如下信息。
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉

5.部署到K210上

首先你需要烧录相应固件,点击工具集,你会下图界面
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
点击
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉

图标
你会看到如下界面
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
连接到你的开发板,在文件夹里选择固件烧录,烧录时使用0x300000
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉
烧录完成后将转换得到的yolov2.kmodel模型文件同样烧录到你的K210上,现在你的部署已经完成了,接下来你需要写一个python脚本运行。

三、脚本运行

1.软件

Maixpy,使用Maixpy时要选择对应的开发板
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉

2.代码部分

在这里附上脚本代码

import sensor
import image
import lcd
import KPU as kpu

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))
sensor.set_hmirror(0)
sensor.run(1)
task = kpu.load(0x300000) #使用kfpkg将 kmodel 与 maixpy 固件打包下载到 flash
anchor = (0.9, 1.08, 1.65, 2.03, 2.49, 3.22, 3.28, 4.29, 4.37, 5.5) #通过K-means聚类算法计算
a = kpu.init_yolo2(task, 0.6, 0.3, 5, anchor)
classes=["Masks","Un_Masks"] #标签名称要和你训练时的标签名称顺序相同
while(True):
    img = sensor.snapshot()
    try:
        code = kpu.run_yolo2(task,img)
    except:
        print("TypeError")
    #a=img.draw_rectangle([0,0,360,20],0xFFFF,1,1)
    if code:
        for i in code:
            a=img.draw_rectangle(i.rect(),(255, 255, 255),1,0)
            a=lcd.display(img)
            # = img.draw_string(0,0, classes[i.classid()], color=(0,255,0), scale=2)
            for i in code:
                lcd.draw_string(i.x()+40,i.y()-30,classes[i.classid()] , lcd.RED,  lcd.WHITE)
                lcd.draw_string(i.x()+40,i.y()-10,str(round((i.value()*100),2))+"%", lcd.RED,  lcd.WHITE)
    else:
        a = lcd.display(img)
a = kpu.deinit(task)

连接运行即可

四、脱机运行

1.步骤

将转换得到的yolov2.kmodel模型文件、模型文件文件夹内的anchor.txt文件、label.txt文件、程序文件内的物体分类脚本boot.py拷贝到sd卡即可

2.boot文件代码

import sensor
import image
import lcd
import KPU as kpu

lcd.init()
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QVGA)
sensor.set_windowing((224, 224))
sensor.set_hmirror(0)
sensor.run(1)
task = kpu.load("/sd/yolov2.kmodel")
f=open("anchors.txt","r")
anchor_txt=f.read()
L=[]
for i in anchor_txt.split(","):
    L.append(float(i))
anchor=tuple(L)
f.close()
a = kpu.init_yolo2(task, 0.6, 0.3, 5, anchor)
f=open("labels.txt","r")
labels_txt=f.read()
labels = labels_txt.split(",")
f.close()
while(True):
    img = sensor.snapshot()
    code = kpu.run_yolo2(task, img)
    if code:
        for i in code:
            a=img.draw_rectangle(i.rect(),(0,255,0),2)
            a = lcd.display(img)
            for i in code:
                lcd.draw_string(i.x()+45, i.y()-5, labels[i.classid()]+" "+'%.2f'%i.value(), lcd.WHITE,lcd.GREEN)
    else:
        a = lcd.display(img)
a = kpu.deinit(task)

然后上电运行即可
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉使用K210训练模型检测模型就可以顺利进行了。感谢大家看到了最后一行。

总结

这是我学习K210后写下的一篇博客,写下这篇博客的目的是为了记录自己的学习生活,同时让更多的人能够更快的了解到K210,后续我会对K210的一些具体使用写一篇博客。到此这篇博客就结束了,并再一次感谢那位带我一起学习的学长。在附上这位学长博客的链接哦(https://blog.csdn.net/hyayq8124)
mxyolo argument cmd invaild choice learning,K210,目标检测,人工智能,计算机视觉文章来源地址https://www.toymoban.com/news/detail-617176.html

到了这里,关于Mx-yolov3+Maixpy+ K210进行本地模型训练和目标检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【01Studio MaixPy AI K210】13.颜色识别

    目录 导包: image库 LAB模型 例程: 测试图片  

    2024年02月14日
    浏览(38)
  • Yahboom亚博K210线上模型训练

          Yahboom亚博K210开发板 的官方套件资料介绍使用方法比较笼统,在实际项目开发的过程中,对于小白来说很不友好,而且 B站等视频平台也没有亚博开发板的使用教程 。本次使用 Maixhub平台 对亚博K210进行开发,限于本人学识和开发经验,对开发过程还是比较浅,对深层

    2024年02月14日
    浏览(37)
  • k210部署自行训练的口罩识别模型

    因为培训需要,开坑K210,前后忙活了3天终于把自行训练的口罩模型部署成功了,实测还行,分享一下经(ni)验(keng): 本人学过一段时间python,见过别人玩开源硬件(没动过手),接触过一点人工智能项目的理论知识(观课议课),先自己体验一下半个项目的过程。 1.资

    2023年04月09日
    浏览(44)
  • Canmv K210开发板训练自己的模型

    关于Canmv开发板的介绍: CanMV K210 AI开发板全网首发,项目代码完全开源,千套开发板限时优惠! 本文参考:使用CanMV进行多物体识别   便宜!便宜!便宜!淘宝200即可买到一个能带摄像头和LCD屏等等的开发板,到手即用,对于我们这种学生党来作为学习、打比赛等在性价

    2024年02月01日
    浏览(44)
  • K210学习篇(八)在MaixHub训练模型

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

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

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

    2023年04月08日
    浏览(33)
  • 神经网络:训练模型+转化为k210上跑的kmodel

    目录 前言 第一种 第二种 第三种 第四种 结语

    2024年02月16日
    浏览(36)
  • Maix Bit(K210)保姆级入门上手教程---自训练模型之云端训练

    Maix Bit(K210)保姆级入门上手教程—环境搭建 Maix Bit(K210)保姆级入门上手教程—外设基本使用 这是K210快速上手系列文章,主要内容是,介绍MaixHub这个线上训练模型的使用,以及如何部署到K210中。 阅读本文的前提:读者对基本的监督式学习有一定的了解,之道学习率、迭

    2024年02月16日
    浏览(80)
  • 智能送药小车(二)——K210物体检测,训练模型与部署

    线上训练模型参考这篇: Maixhub模型训练平台整体流程 下面仅介绍利用Mx-yolov3训练模型并部署在k210上的整体流程。 利用K210采集数据集 使用说明:插上合适的SD卡(最大32GB),采集不同类别图像时要在代码相应位置进行修改(有注释提示),程序运行后按下KEY会进行图像采集

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

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

    2024年02月05日
    浏览(66)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包