Mx_yolo本地模型训练+K210移植

最近简单学习使用了如何使用k210识别模型,记录一下自己的使用过程和踩过的坑。

一、所需软件

下载Mx_yolo:百度网盘链接 提取码: f8g9

下载Maixpy:下载链接、Kflash:下载链接

二、Mx_yolo安装和配置

打开打开mx_yolo安装路径,打开环境配置,找到使用前配置.exe

在这里插入图片描述

1.安装python3.7

安装python3.7。若之前安装过其他python版本,请先将其卸载干净再安装。

2.安装依赖库

安装好python3.7后,点击安装python依赖库与预训练权重。若此步出现问题,大概率是存在其他版本的python未卸载干净。

3.安装CUDA和Cudnn

如果想使用电脑GPU进行训练,就进行这一步(建议电脑有显卡的同学都安装)

点击安装会跳转到\Mx-yolov3_EN_1.2\1.环境配置\data\CUDA+Cudnn,文件夹内有详细的安装说明,仔细观看即可。

三、训练模型

打开Mx_yolov3

1.检测环境是否安装好

在这里插入图片描述

以例程口罩的模型进行检测。点击 计算anchor,不出意外会报错,提示未安装numpy。(如果报错不是未安装numpy,请继续往下翻阅)

win+r,输入cmd,cmd中输入
pip install numpy==1.16.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

装好numpy库后,再次点击计算anchor,成功得到anchor值。

进行下一步,测试模型。点击右侧控制台开始训练

在这里插入图片描述

不出意外又会有报错,提示XXX未安装

打开\Mx-yolov3_EN_1.2\1.环境配置\data\pip.txt,里面写了每个库应该安装的版本(当初一个版本一个版本的试,因为库版本不符合无法运行,是血泪了😭)

imgaug==0.2.6
opencv-python==4.0.0.21
Pillow==6.2.0
requests==2.24.0
tqdm==4.48.2
sklearn==0.0
pytest-cov==2.10.0
codecov==2.1.8
matplotlib==3.0.3
Tensorflow==1.15.0
Tensorflow_gpu==1.15.0
pascal_voc_writer==0.1.4
PyQt5==5.15.0
numpy==1.16.2
keras==2.3.1
scikit-learn==0.22.2
seaborn==0.11.0
alive-progress==1.6.1
h5py==2.10.0
pyecharts==1.9.0
matplotlib==3.0.3

需要安装哪个库,就在cmd中输入
pip install 包名==版本号 -i https://pypi.tuna.tsinghua.edu.cn/simple

解决一个报错就点击一次训练模型,当模型能正常训练的时候,恭喜你!环境配置完成了!

2.采集图像、打标签

用手机对拍摄照片,每一个对象拍摄张数最好不少于50张。使用Mx_yolo训练,要先将照片转化为224*224大小。转换工具:\Mx-yolov3_EN_1.2\Image_tool\Image_tool.exe

转化完成后打标签,个人比较喜欢这个线上标注网站MakeSense:点击跳转

在这里插入图片描述

点击右下角Get Started,进入

在这里插入图片描述

点击Click here to select then,进入转化好的图片文件夹,全选图片后点击Object Detection

在这里插入图片描述

点击中心添加标签,有几类物体就添加几项,回车即可添加标签

标签添加完成后,点击Start project,接下来开始打标签就好啦

打完标签后,点击Actions——Export rect annotations,选择第二项balabala XML format

3.开始训练及模型测试

再次打开Mx_yolov3,物体识别。将训练图片地址、标签地址改成对应的地址,种类名称改成自己的标签名(一定要和你打标签的时候的顺序对应)。

点击计算anchor,无报错后点击开始训练,静静等待数十分钟。

\Mx-yolov3_EN_1.2\Model_file中会出现你训练好的模型

点击测试模型,选择训练的.h5模型,将会出现检测结果,如果检测结果没有问题,准备移植到k210上

4.转换模型

点击转换模型,在nncase 0.1.0模型转换QT版本中选择好输入输出路径,量化图片路径可以选择训练图片,等待h5模型转换为适用于k210的kmodel模型。

四、移植至k210

1.打开kflash,准备烧录固件

点击增加文件,打开\Mx-yolov3_EN_1.2\Maix程序与固件\固件里的固件,默认地址0x000000

(如果需要使用openmv的功能,请至maixpy下载站:点击跳转 下载完整固件包)

打开生成的kmodel模型,输入地址0x300000,点击打包为kfpkg,一秒后打包完成。

点击kmodel文件后的叉,选择刚打包的kfpkg文件,地址0x00000,点击下载烧录进K210

2.打开maixpy,选择开发板、串口,写入程序

import sensor, image, time, lcd
import KPU as kpu
import utime
from Maix import GPIO
from fpioa_manager import fm

sensor.reset()                      # Reset and initialize the sensor. It will
                                    # run automatically, call sensor.run(0) to stop
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
sensor.skip_frames(time = 2000)     # Wait for settings take effect.
sensor.set_windowing((224, 224))
sensor.set_vflip(1)                 #摄像头竖直翻转“1””“0”
sensor.set_hmirror(1)               #水平翻转

sensor.run(1)

clock = time.clock()                # Create a clock object to track the FPS.
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=["unMasks","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)

若想脱机运行,工具——将打开的脚本保存至开发板

  • 9
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答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发展的必要组件,其优越的技术优势和应用价值也将得到进一步的发展和推广。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值