K210视觉识别模块学习笔记8:Mx_yolo3本地模型训练环境搭建_部署模型到亚博canmv(失败)

今日开始学习K210视觉识别模块: 本地模型训练环境搭建

亚博智能      K210视觉识别模块......  

固件库:        canmv_yahboom_v2.1.1.bin

本地训练      Mx_yolo3

 这里就简单地提示一下下载安装哪些软件,然后主要是使用Mx_yolo3 进行本地训练模型的......

本文不用浪费时间看了! 这次对本地训练出的模型的部署是失败的

不知道为何,也许是亚博智能固件库对模型的处理导入函数写的与Mx_yolo3 生成的模型不适配???

 文章提供测试代码讲解、完整代码贴出、测试效果图、完整工程下载

目录

配置要求:

下载安装的软件:

 Mx_yolov3本地训练自己的模型

 采集图片数据集:

标注处理数据集:

训练模型:

编程导入模型

源代码如下:

修改步骤如下:

 修改后的代码如下:

测试识别效果:

 网上查阅资料贴出:


配置要求:

win10电脑,最好有显卡GPU,我的配置如下:

下载安装的软件:

这里制作提示要安装哪些软件环境啥的,具体细节省略,下方网上查阅资料标出的文章有具体细节

Mx_yolov3的安装并使用GPU训练_mx yolov3 3.0下载-CSDN博客

 1、Mx_yolov3

 2.CUDA和CUDNN

 3、Python3.7.3

 Mx_yolov3本地训练自己的模型

这里详细讲一下如何使用 Mx_yolov3本地训练自己的模型

就以识别鼠标为例,从获取数据集、标注处理数据集、训练模型、导入模型为顺序讲·

 采集图片数据集:

这里说明必须使用K210来拍摄采集数据图片,并尽可能多的图片

这次我对着鼠标拍摄了58张不同角度的图片,实际为了准确率,这点数据集明显是不够的,

实际最好需要几百张

标注处理数据集:

打开文件夹可以打开采集好的所有数据图片(放在一个文件夹中)

英文输入法下,按‘W’可以与鼠标配合开始绘制标注框图

选择保存文件夹可以将标注好的xml文件选择地方保存好

 这里我将所有图片放在了imagine文件夹中,将标注好的xml文件放在xml文件夹:

训练模型:

将训练图片与标注的俩个文件夹地址选择好,填好参数啥的就能训练了:

等待训练完成后就能导出模型了:

编程导入模型

解压导出的模型压缩包后,只有一个komdel、label是我们需要用到的:

先将mx.kmodel文件复制到SD卡

因为固件库的原因,它的boot代码我们无法使用,但需要打开boot来复制它的anchor内容:

这里我们之前在mixhub网站训练模型的代码来导入使用它的模型:

源代码如下:

import sensor, image, time, lcd, gc, cmath
from maix import KPU

lcd.init()                          # Init lcd display
lcd.clear(lcd.RED)                  # Clear lcd screen.

# sensor.reset(dual_buff=True)      # improve fps
sensor.reset()                      # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
#sensor.set_vflip(True)              # 翻转摄像头
#sensor.set_hmirror(True)            # 镜像摄像头
sensor.skip_frames(time = 1000)     # Wait for settings take effect.
clock = time.clock()                # Create a clock object to track the FPS.

print("ready load model")

labels = ["six"] #类名称,按照label.txt顺序填写
anchor = (1.06, 1.22, 1.36, 1.56, 1.75, 2.03, 2.41, 2.88, 3.58, 4.45) # anchors,使用anchor.txt中第二行的值

kpu = KPU()
# 从sd或flash加载模型
kpu.load_kmodel('/sd/det.kmodel')
#kpu.load_kmodel(0x300000, 584744)
kpu.init_yolo2(anchor, anchor_num=(int)(len(anchor)/2), img_w=320, img_h=240, net_w=320 , net_h=240 ,layer_w=10 ,layer_h=8, threshold=0.6, nms_value=0.3, classes=len(labels))

while(True):
    gc.collect()

    clock.tick()
    img = sensor.snapshot()

    kpu.run_with_output(img)
    dect = kpu.regionlayer_yolo2()

    fps = clock.fps()

    if len(dect) > 0:
        for l in dect :
            a = img.draw_rectangle(l[0],l[1],l[2],l[3],color=(0,255,0))

            info = "%s %.3f" % (labels[l[4]], l[5])
            a = img.draw_string(l[0],l[1],info,color=(255,0,0),scale=2.0)
            print(info)
            del info

    a = img.draw_string(0, 0, "%2.1ffps" %(fps),color=(0,60,255),scale=2.0)
    lcd.display(img)

修改步骤如下:

根据上面提供的源代码进行修改:

先修改导入模型的名称为刚才训练好的kmodel的名称:

在复制软件训练好的boot.py文件中的anchor数据到代码中

最后复制label的类名称到代码中:

 修改后的代码如下:


import sensor, image, time, lcd, gc, cmath
from maix import KPU

lcd.init()                          # Init lcd display
lcd.clear(lcd.RED)                  # Clear lcd screen.

# sensor.reset(dual_buff=True)      # improve fps
sensor.reset()                      # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
#sensor.set_vflip(True)              # 翻转摄像头
#sensor.set_hmirror(True)            # 镜像摄像头
sensor.skip_frames(time = 1000)     # Wait for settings take effect.
clock = time.clock()                # Create a clock object to track the FPS.

print("ready load model")

labels = ["mouse"] #类名称,按照label.txt顺序填写
anchor = (2.71875, 3.578124999999999, 3.1875, 5.125, 2.46875, 3.125, 2.90625, 3.96875, 2.28125, 4.40625) # anchors,使用anchor.txt中第二行的值

kpu = KPU()
# 从sd或flash加载模型
kpu.load_kmodel('/sd/mx.kmodel')
#kpu.load_kmodel(0x300000, 584744)
kpu.init_yolo2(anchor, anchor_num=(int)(len(anchor)/2), img_w=320, img_h=240, net_w=320 , net_h=240 ,layer_w=10 ,layer_h=8, threshold=0.4, nms_value=0.3, classes=len(labels))


while(True):
    gc.collect()

    clock.tick()
    img = sensor.snapshot()

    kpu.run_with_output(img)
    dect = kpu.regionlayer_yolo2()

    fps = clock.fps()

    if len(dect) > 0:
        for l in dect :
            if l[5]>0.7:
                a = img.draw_rectangle(l[0],l[1],l[2],l[3],color=(0,255,0))
    
                info = "%s %.3f" % (labels[l[4]], l[5])
                a = img.draw_string(l[0],l[1],info,color=(255,0,0),scale=2.0)
                print(info)
                del info

    a = img.draw_string(0, 0, "%2.1ffps" %(fps),color=(0,60,255),scale=2.0)
    lcd.display(img)

测试识别效果:

惨不忍睹的识别效果....不知道是亚博智能有关anchor以及yolov固件库不兼容问题还是什么..

将限制不限制置信度L[5]>0.7的语句删除掉,它甚至能全屏都是mouse:

 网上查阅资料贴出:

关于Mx_yolo3的模型训练详细教程[保姆式教程] DF创客社区

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

k210部署自行训练的口罩识别模型_k210固件和亚博固件-CSDN博客

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: k210模型训练利用mx-yolo3是一种基于k210芯片的目标检测模型训练方法,使用mx-yolo3框架进行训练。该方法可以实现高效的目标检测,适用于各种场景,如智能家居、智能安防、智能交通等。同时,该方法还可以提高模型的准确性和鲁棒性,使得模型更加稳定和可靠。 ### 回答2: K210是一种基于人工智能技术的芯片,可用于各种复杂的应用,如机器人控制、图像处理、语音识别等。而mx-yolo3则是一种基于深度学习的目标检测模型,可以快速准确地识别图像中的目标,广泛应用于物体识别和智能安防等领域。 在k210模型训练中,mx-yolo3能够帮助实现高效、准确的物体识别和检测,使得智能设备可以更加智能化地进行物体识别和控制。mx-yolo3具有多种优势,与传统的目标检测算法相比,其识别速度更快,准确度更高,对于复杂背景下的目标识别也更加优秀。 在k210模型训练中,mx-yolo3需要结合其他的工具和技术进行训练。首先需要收集大量的图像数据,进行标注和分类,以便模型能够进行深度学习训练。然后需要运用深度学习框架和技术,如keras、tensorflow等,进行模型训练和调优。 同时,对于k210模型训练中使用的mx-yolo3模型,还需要进行合理的参数设置和优化,以确保模型能够在实际应用中稳定、高效地工作。这需要不断地测试、迭代、优化,以不断提高模型的准确度和效率。 总之,k210模型训练利用mx-yolo3能够帮助我们实现高效、准确的物体检测和控制。在实际应用中,其能够帮助我们构建更加智能、高效的智能设备,以更好地服务于人类的各种需求。 ### 回答3: K210是目前市场上最先进的AI芯片之一,它的强大计算能力和高效性能使它成为最受欢迎的开发板之一。K210可在不同的应用领域中发挥出色的作用,如机器人、智能家居和自动驾驶。 MX-YOLO3是一种基于Darknet框架的Yolo对象检测器的最新版本。它是一种轻量级人工智能算法,可实现高效目标检测和跟踪,具有良好的实时性能和精度。 在实际使用K210模型训练利用MX-YOLO3时,需要遵循以下步骤: 第一步,收集训练数据。收集数据集的过程中需要确保数据集的数量足够且具有代表性,这样模型才能够得出准确的结论。 第二步,配置并安装训练环境。为了成功训练MX-YOLO3,需要使用Docker容器管理器安装CUDA和cuDNN等相关依赖项。 第三步,根据需求选择并配置算法模型。对于初学者来说,可以从预训练模型开始,然后进行调整和微调,以获得您所需的精度和性能。 第四步,通过MX-YOLO3进行训练MX-YOLO3提供了方便和高效的训练函数,帮助快速完成训练过程,并为您生成检测模型文件和权重文件等重要参数。 第五步,测试和优化。完成训练后,您需要对模型进行测试和优化,确保检测精度和性能符合您的要求。 最后,将优化后的模型和权重文件移植到K210芯片上并进行部署即可。在实际部署过程中,您可以根据需要选择不同的调用方式,以达到最优的运行状态和输出效果。 总的来说,K210模型训练利用MX-YOLO3是一项非常有挑战性和具有挑战性的任务,需要掌握训练方法及技巧,才能够成功生成高性能的检测模型。同时,K210芯片已成为AI发展的必要组件,其优越的技术优势和应用价值也将得到进一步的发展和推广。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值