K210借助MaixHub训练平台进行目标检测

这次我准备用K210进行橡皮的目标检测。

一、采集图片

用手机拍40s左右的视频,然后在桌面建一个video文件夹,里面建一个rubber文件夹,将视频上传至rubber文件夹中。

K210借助MaixHub训练平台进行目标检测_第1张图片

下一布将视频转成图片:我用DataAssitant v1.2这个软件,软件我是通过一位up视频获取的,参考链接 ,打开软件将预处理模式切换成目标检测

K210借助MaixHub训练平台进行目标检测_第2张图片

然后选择到刚刚在桌面创建的video文件夹,不要选到rubber文件夹

K210借助MaixHub训练平台进行目标检测_第3张图片

然后点击开始处理,提取成功后关闭软件,发现刚刚video/rubber文件夹里面都转图片了,一共了213张。但是图片的分辨率是720×1280的;MaixHub上要求图片的分辨率为224×224。

K210借助MaixHub训练平台进行目标检测_第4张图片
K210借助MaixHub训练平台进行目标检测_第5张图片

下一步就是将图片的分辨率调整到224*224,这里我用到了一个py脚本,在桌面上新建一个python文件,将下列代码复制进去。

from PIL import Image
import os.path
import glob
def convertjpg(jpgfile,outdir,width=224,height=224):
  img=Image.open(jpgfile)
  try:
    new_img=img.resize((width,height),Image.BILINEAR)  
    new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
  except Exception as e:
    print(e)
for jpgfile in glob.glob("video/rubber/*.JPG"):
  convertjpg(jpgfile,"images")

然后在桌面上创建一个images文件夹,用来存放转成功后的图片。下面运行python脚本。查看images文件夹内,图片成功转成224×224了,可以将原本video文件夹删去。

K210借助MaixHub训练平台进行目标检测_第6张图片

二、标注数据集

这一步我在B站看一个up主的视频对我帮助很大,点击链接

1.首先在桌面上新建一个文件夹rubber,将images文件夹移至rubber文件夹内,然后在rubber文件夹内建一个xml文件夹和labels.txt文本文件,打开label.txt输入rubber,保存关闭文件。

K210借助MaixHub训练平台进行目标检测_第7张图片

K210借助MaixHub训练平台进行目标检测_第8张图片

2.标注数据集的工具我使用的是labeling:下载链接 打开工具,点击Open Dir选择images文件夹

K210借助MaixHub训练平台进行目标检测_第9张图片

继续点击Change Save Dir,选择xml文件夹

K210借助MaixHub训练平台进行目标检测_第10张图片

labellmg快捷键图下

K210借助MaixHub训练平台进行目标检测_第11张图片

接下来开始标注,先点击view下面的Auto Save Mode,可以自动保存,然后按下快捷键w是创建矩形框,框注要检测的范围,然后标注rubber,按下回车键,标注成功后会在xml文件夹里产生一个*.xml文件,快捷键d下一张图片,循环以上步骤,直至标完所有图片。

K210借助MaixHub训练平台进行目标检测_第12张图片
K210借助MaixHub训练平台进行目标检测_第13张图片

训练完毕后关闭工具,将rubber文件夹压缩成rubber.zip。

三、上传数据集进行训练

1.获取机器码

首先需要下载kflash_gui工具,用来烧录固件,还需要下载key_gen_v1.2.zip固件用来获取机器码,然后打开kflash_gui工具,选择刚刚下载的固件,开发板设置根据自己的开发板设置,用数据线连接开发板,点击下载。

K210借助MaixHub训练平台进行目标检测_第14张图片

下载成功后关闭工具。

K210借助MaixHub训练平台进行目标检测_第15张图片

接下来需要一个串口调试助器,我这里的波特率是115200,查看机器码

K210借助MaixHub训练平台进行目标检测_第16张图片

关闭串口调试器,点击网址,开始训练,首先创建任务,分类选目标检测

K210借助MaixHub训练平台进行目标检测_第17张图片

然后上传数据集,选择rubber.zip,点击开始训练。

K210借助MaixHub训练平台进行目标检测_第18张图片

等待几分钟就可以完成训练,可以打把王者放松一下。

K210借助MaixHub训练平台进行目标检测_第19张图片

成功完成, 训练结果会发送到邮箱里,下载压缩包即可。文件夹内容如下图所示,比较重要的是boot.py的脚本文件和m.kmodel模型文件。

K210借助MaixHub训练平台进行目标检测_第20张图片

打开boot.py文件翻到最下面,程序默认是使用sd卡的,由于我没有使用sd卡,注释第二行,使用第一行的main函数。要注意模型地址是0x300000,等会需要用。

K210借助MaixHub训练平台进行目标检测_第21张图片

接下来,下载最新的固件,这里我下载的这个固件

K210借助MaixHub训练平台进行目标检测_第22张图片

然后打开kflash_gui工具烧录固件

K210借助MaixHub训练平台进行目标检测_第23张图片

烧录成功后,烧录模型,这里模型的地址得是0x300000,得和程序里面对应,点击下载。

K210借助MaixHub训练平台进行目标检测_第24张图片

下载成功后,用MaixPy IDE打开root.py,用数据线连接开发板,运行脚本,运行效果还算满意,有些偏差,可能是标注数据集时,一些细节没注意到。

K210借助MaixHub训练平台进行目标检测_第25张图片

参考文章:https://www.maixhub.com/index/mtrain/help.html

你可能感兴趣的:(K210)