Mx-yolov3环境配置+本地模型训练+K210

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

文章目录

一、Mx-yolov3环境配置

二、模型训练

1.测试

 2.数据集制作

3.VOTT标注与模型测试

三、部署到k210 

1.模型转换

 2.脚本运行

 3.脱机运行

 4.一个问题

四、总结


一、Mx-yolov3环境配置

1. Mx-yolov3软件下载:链接:https://pan.baidu.com/s/1U0c6hk5PNdOwECnhu_XjuA                     提取码:fy22

2. 在安装路径中打开文件夹,打开环境配置,运行环境配置.exe。

k210 yolov3,python,深度学习,神经网络,目标检测
3.安装python3.7.4

   点击安装Python3.7.4会弹出python的安装界面,然后跟随视频  【K210】识别神器Mx-yolov3安装教程_哔哩哔哩_bilibili的操作安装即可。

   如果你的电脑安装过其他版本的python,要先卸载、删除干净,不然后面Mx-yolov3训练时会报错。

4.安装依赖包和预训练权重

    点击安装python依赖库和预训练权重,会弹出终端窗口自动安装,如果出现报错,应该检查python3.7.4是否安装在默认路径上。

5.安装CUDA和cudnn

    点击安装cuda和cudnn,会弹出安装包的路径窗口,点击安装教程。

     Cuda和Cudnn 安装教程|极客教程

    也可参考http://t.csdn.cn/33Ml1,但Mx-yolov3文件夹内已有安装包,所以可以跳过下载教程,从安装开始跟着教程走。

二、模型训练

1.测试

环境配置好后,我们就可以开始本地模型训练,首先我们不要急着去制作数据集进行模型训练,可以先利用文件夹内现成的数据集去测试一下,一般首次打开软件后训练图片地址和训练标签地址已经填好了,直接点击开始训练,如果没报错说明环境配置成功。

k210 yolov3,python,深度学习,神经网络,目标检测

 2.数据集制作

 测试证明环境配置成功后我们就可以开始制作数据集开始进行本地训练。制作数据集需要拍摄大量照片,因为我使用的是k210,所以我们可以利用脚本自动拍照,照片会自动保存在sd卡内,所以我们得为K210准备一张sd卡。

  自动拍照脚本  链接:https://pan.baidu.com/s/18wraqZQrdgvrm2wm1Gnx4Q    提取码:fy22

下载完毕后打开第三个物体检测拍照脚本

k210 yolov3,python,深度学习,神经网络,目标检测

 部分代码示例

boot_press_flag = 1
start = time.ticks_ms()
end = time.ticks_ms()
ui_num = 0
image_save_path = "/sd/image/"#图片保存目录头
claass = 0#文件夹名
image_num = 0#图像文件保存名
#完整图片保存路径image_save_path+claass+"/"
image_data = image.Image()#图像
shoot_flag = 0
first_button = 0#第一次点击boot按钮标志
##################################################################################
def sensor_init():#摄像头初始化
    sensor.reset(freq=22000000, dual_buff=False)
    sensor.set_pixformat(sensor.RGB565)
    sensor.set_framesize(sensor.QVGA)
    sensor.set_vflip(1)
    sensor.set_windowing((240, 240))
    sensor.run(1)
##################################################################################
def lcd_init():#LCD初始化
    lcd.init(type=1, freq=15000000, color=bg)
    lcd.clear()
##################################################################################
def button_init():#boot按钮初始化
    global key
    fm.register(board_info.BOOT_KEY, fm.fpioa.GPIOHS0)
    key = GPIO(GPIO.GPIOHS0, GPIO.PULL_UP)
##################################################################################
def boot_key_irq(pin_num):#boot按钮中断
    global ui_num
    global boot_press_flag,start,end
    global claass
    global image_num

 因为我们制作的数据集照片分辨率必须为240*240,所以我们可以修改代码63行,但是缺点就是k210屏幕显示不完整,优点就是不用再将照片进行分辨率转化。拍摄完毕后会得到100张照片,首先在桌面创建一个文件夹,将照片存在其中,然后删除SD卡内的所有文件,重新插至k210 重复上述操作。

k210 yolov3,python,深度学习,神经网络,目标检测

 制作数据集时照片越多越好,这样训练出来的模型精确度越高。

3.VOTT标注与模型测试

数据集制作完成后我们就可以开始标注了,这里我们使用的是vott

vott安装包

其中提供了windows/linux/mac下编译好的可执行文件,直接下载即可。

k210 yolov3,python,深度学习,神经网络,目标检测

 软件下载好后我们就可以开始标注了

k210 yolov3,python,深度学习,神经网络,目标检测

 新建一个项目

Display Name:项目名称
Security Token:一般就选默认
Source Connection:原始数据路径,就是原来你照片存放的位置
Target Connection:目标数据存放路径,就是标注完成后文件存放的位置
Description:项目描述
Frame Extraction Rate(frames per a video second):视频帧率
Tags:待标注的标签列表,可用英文自己设置

k210 yolov3,python,深度学习,神经网络,目标检测

 设置好后点击保存就可以开始标注了

k210 yolov3,python,深度学习,神经网络,目标检测

 当所有照片标注完毕后先点击保存,然后再点击右边的箭头(避坑,这个必须点,不然导出的文件全是JSON格式,不是Mx-yolov3需要的xlm格式)最后我们再选择左边的导出箭头。

k210 yolov3,python,深度学习,神经网络,目标检测

 导出时有多种格式可选,如果使用k210官网进行云端训练则导出JSON格式,使用Mx-yolov3则选择VOC格式。

k210 yolov3,python,深度学习,神经网络,目标检测

导出完毕后会存储在你设置的输出路径文件夹内,如图。

k210 yolov3,python,深度学习,神经网络,目标检测

k210 yolov3,python,深度学习,神经网络,目标检测

 Annotations文件夹里就是Mx-yolov3所需的xml文件格式。到这我们就可以去进行模型训练了。训练图片地址选择原先存放照片的文件夹,而训练标签地址就是上一步我们导出所得到的xml文件,如下图所示,然后点击开始训练。

k210 yolov3,python,深度学习,神经网络,目标检测

 训练完毕后在会自动弹出一个文件夹,如图所示

k210 yolov3,python,深度学习,神经网络,目标检测

 我们会看到一个h5文件,这个时候我们就回到Mx-yolov3去测试模型,点击测试模型后选中文件夹中的h5,等待一会后会出现如图所示的结果,点击图片放大能看到左上角显示rr,0.88,rr是我标注时自己设置的标签,代表红色的圆形,0.88就是识别率,到这里表示我们的本地模型训练完成。

k210 yolov3,python,深度学习,神经网络,目标检测

三、部署到k210 

1.模型转换

测试完毕后我们就要部署到k210上,首先我们要将训练出来的文件转换成k210适配的kmodel文件,点击Mx-yolov3模型转换,模型输入路径就是训练完毕后得到的tflite文件,输出路径就是转换后kmodel文件存放的位置,建议放在一个文件夹下,方便查找。

 k210 yolov3,python,深度学习,神经网络,目标检测

 这里需要注意的是量化图片路径必须和模型输入,输出路径在一个盘。因为我制作数据集时是直接在桌面新建文件夹,默认在c盘,vott导出文件时也在这个文件夹下,最后导致模型转换失败,所以我们可以将导出时的文件移到d盘后再添加,如图所示。

k210 yolov3,python,深度学习,神经网络,目标检测

转换完毕后可以看到我们的模型文件夹下多了一个kmodel文件。

k210 yolov3,python,深度学习,神经网络,目标检测

 2.脚本运行

打开kflash,用数据线将电脑和k210连接,将固件和kmodel文件烧录到开发板中,如图所示

 k210 yolov3,python,深度学习,神经网络,目标检测

 k210 yolov3,python,深度学习,神经网络,目标检测

 注意烧录时地址不能一样,kmodel使用0x300000,烧录完毕后我们就可以打开IDE用脚本运行。

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.9654, 1.1208, 1.7105, 2.1856, 2.5347, 3.3556, 3.2918, 4.4774, 4.2387, 5.665) #通过K-means聚类算法计算
a = kpu.init_yolo2(task, 0.6, 0.3, 5, anchor)
classes=["rr","bc"] #标签名称要和你训练时的标签名称顺序相同
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)

连接运行后如图所示,识别率只有60~70%左右,是因为数据集我只拍了200张照片,数据集越多识别越准确,拍照时物体也尽可能多移动位置,抗干扰能力也就越强。

k210 yolov3,python,深度学习,神经网络,目标检测

 3.脱机运行

脱机运行则不需要烧录kmodel文件,但需要准备一张内存卡,将模型文件夹内的anchor.txt文件、label.txt文件、转换得到的yolov2.kmodel模型文件、程序文件内的物体识别脚本boot.py拷贝到sd卡即可

k210 yolov3,python,深度学习,神经网络,目标检测

 k210 yolov3,python,深度学习,神经网络,目标检测上电运行结果如图

k210 yolov3,python,深度学习,神经网络,目标检测

 4.一个问题

脱机运行我自己在做时做了一下午,我没想到boot文件竟然和脚本运行时的boot文件是一个也能运行,因为我做过k210官方的云端训练,云端训练完毕后会自动生成一个boot文件用于脱机运行,所以我照着那个代码自己改了一下,但是却无法运行,我想应该是代码的问题,下面是我的代码,如果有路过的大佬希望可以指点一下。

import sensor, image, 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()
f=open("lable.txt","r")
lable_txt=f.read()
lable = lable_txt.split(",")

anchors = (0.9654, 1.1208, 1.7105, 2.1856, 2.5347, 3.3556, 3.2918, 4.4774, 4.2387, 5.665)
a = kpu.init_yolo2(task, 0.7, 0.3, 5, anchor)
classes= ["rr", "bc"]#gt=1 rr=2 vb=3 bc=4 fb=5

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, classes[i.classid()]+" "+'%.2f'%i.value(), lcd.WHITE,lcd.GREEN)
    else:
        a = lcd.display(img)
a = kpu.deinit(task)

四、总结

       模型训练是我在做非接触物体尺寸形态测量时用到的一个方法,用的是k210云端训练。后来因为考虑到云端训练耗时问题才想着去做本地训练,这次本地训练虽然基本完成,但也存在很多问题,比如识别率低,矩形框不稳导致中心坐标变化大等等问题,这都需要去解决。写下这篇博客的是为了记录自己的学习生活,因为我自己在做时也花了很长时间去找教程,查资料,这个过程是痛苦的,所以我想能不能从环境配置到模型训练到最后k210能运行来自己写一个完整的教程去帮助更多的人,因为自己也是一个小白,所以肯定也有很多错误的地方,希望我们可以一起交流学习。文章来源地址https://www.toymoban.com/news/detail-619779.html

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

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

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

相关文章

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

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

    2023年04月26日
    浏览(49)
  • 【YOLO】YOLOv8实操:环境配置/自定义数据集准备/模型训练/预测

    源码链接:https://github.com/ultralytics/ultralytics yolov8和yolov5是同一作者,相比yolov5,yolov8的集成性更好了,更加面向用户了 YOLO命令行界面(command line interface, CLI) 方便在各种任务和版本上训练、验证或推断模型。CLI不需要定制或代码,可以使用yolo命令从终端运行所有任务。 如果

    2023年04月24日
    浏览(61)
  • yolov5的运行环境配置、参数修改和训练命令,并将训练的pt模型转换为rknn模型,并推理

    目录 一.yolov5的运行环境配置(Windows系统) 1、NVIDIA驱动安装与更新  2、Anaconda 的安装 3、Pytorch环境安装  4、pycharm安装 二.yolov5训练数据集,得到best.pt(Windows系统)  1.下载YOLO项目代码  2.环境安装 3. 数据集下载: 三.best.pt转为onnx模型(Windows系统) 四.best.onnx转为best.rknn模型(Linu

    2024年02月13日
    浏览(49)
  • 【3】使用YOLOv8训练自己的目标检测数据集-【收集数据集】-【标注数据集】-【划分数据集】-【配置训练环境】-【训练模型】-【评估模型】-【导出模型】

    云服务器训练YOLOv8-新手教程-哔哩哔哩 🍀2023.11.20 更新了划分数据集的脚本 在自定义数据上训练 YOLOv8 目标检测模型的步骤可以总结如下 6 步: 🌟收集数据集 🌟标注数据集 🌟划分数据集 🌟配置训练环境 🌟训练模型 🌟评估模型 随着深度学习技术在计算机视觉领域的广泛

    2023年04月15日
    浏览(85)
  • Mx_yolov3的安装并使用GPU训练

    首先我们的下载3.0版本,这一版功能更多,而且不用搭建环境。 下面这个是百度网盘提取 链接:https://pan.baidu.com/s/1Gl3Qfw5s8LZuu2wc1GTITg 提取码:dvsf 直接点击下面链接根据教程下载CUDA和CUDNN就行 https://blog.csdn.net/shuiyixin/article/details/99935799?spm=1001.2101.3001.6650.7utm_medium=distribute.pc

    2024年02月15日
    浏览(41)
  • 【Yolov7】配置参数以及训练模型

    github地址:https://github.com/WongKinYiu/yolov7 或者命令行下载 用Acaconda新建一个干净的环境,我命名为yolov7,python版本选择3.8 进入到刚刚下载的yolov7的目录中,安装yolov7所需的第三方库 打开yolov7项目,再打开data文件夹,拷贝一份 coco.yaml 1、修改里面的 trian 、 val 、 test 的路径,改

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

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

    2024年02月06日
    浏览(95)
  • 在pycharm中配置GPU训练环境(Anaconda)(yolov5)

    1. 具体的配置过程: 2. 在指定位置(路径)创建虚拟环境: 3. conda常用命令: 4: 在跑模型时候遇到的一些问题:         4.1: conda添加python解释器找不到对应的python.exe文件         4.2: 报错“OSError: [WinError 1455] 页面文件太小,无法完成操作。”         4.3: 报错“

    2024年02月06日
    浏览(44)
  • 基于VITS 快速微调的本地环境配置、本地训练以及本地推理的教程

    该教程能教会读者如何使用本地服务器使用VITS微调训练自己的想要的角色的声音并且本地推理,注意只能使用linux版本进行训练,但是推理可以在windows上完成。 STEP 0  使用conda配置虚拟环境(个人习惯,也可以直接在本地服务器上嗯配) STEP 1 复制代码库并安装运行环境 记得没

    2023年04月27日
    浏览(56)
  • 配置使用云服务器训练神经网络模型——在阿里GPU服务器训练yolov5模型

    对于没有GPU训练机的人来讲,使用云服务器训练自己的模型应该最最优选择,只是在训练的时候开个按时计费的服务器,训练完成后保存环境镜像之后,可以完全停掉服务器,期间不产生任何费用,下次再训练时,启动环境就可以,很容易保护好自己的训练环境不受污染。

    2024年02月06日
    浏览(63)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包