0


yolov3模型训练并部署到K210(零基础也可)

1.yolov3模型训练

2.部署到K210

文章有点长,是因为很细节。

首先建一个新文件夹(要以英文命名)再在文件夹中建如下两个文件夹(images是用来放原照片的,xml是用来放标志后的照片的)。

26cd0c44e80e4282a921f1c7385a45d7.png 将要识别的照片原照片放到images文件夹,然后先不要急着去标注,打开yolov3,在工具集中找到

bddb2f7f364c4ff996bb3e9f5dda0884.png

打开后按照片中如下操作

d52eac5b9b4b46fab273fc97791ed597.png

然后点击开始下载,看到如下就是下载成功了

fac338d807304a59bce5263a42199710.jpeg至于为什么这样呢

是因为K210上识别的照片模式是240x240,我们找到照片不全是这个格式,所以要转换才能更好的识别。训练效果才更好,同样照片集越多,识别越准。

然后回到images文件夹中你会发现出现了数量一样的jpg照片,这些就是224x224格式的照片,当然原来的照片也在,你可以删掉,也可以放到另一个文件夹,但就是不能放在images上了(不知道哪些是标注后的可以看时间,时间新的就是标注后的)。

2f0af153abb54988bf13cdd2386c6840.png还有一步很重要就是要点开转换后的照片看是否有空白的照片(可以在文件夹上方点击查看模式,方便查看),有的话就得全删掉(因为标志照片xml与images上的是一一对应的,不删的话,那些空白照片标志不了,会导致训练不了)。

如下

af8ef4bbd35f4b598b4afd2edd9602aa.png

完成这一步就可以开始标注了

同样在工具集中找到如下工具

2a81bdfe9bd64fab91586b9c78fd20a5.png然后按下图所示一步步操作

249fe8f0dd6c43b6a37e8d2ddf7c22f9.jpeg

change save Dir 是保存标注照片的地方。

然后

81b51d0676214b229f26ccb5837a3202.jpeg最后按如下步骤去标注,框要包住整个物体,刚刚包过是最好的。 e4daa9b8e26a47c2b3f545ddc08c17d8.jpeg

一直标注完到最后一张照片就可以了。

然后再打开xml文件夹就可以看到如下

b34a94b1e61c475aad9303fb3a76afdf.jpeg

这时候就可以去训练了

按下图步骤

c77df1f70ec84693a8ffbd170161551b.png第一次训练是有点久的,慢慢等待,然后训练完会自动弹出一个文件夹。如下

831f6770a50345cb9f7651cdb497ce7a.jpeg

将里面的所有文件复制到car文件夹的Train_date里 (有没有发现文件里多了好多文件,这些都是自动生成的)。

dfa3fba9618d4512a09b13b6c7bef6ae.png

复制完成后是这样的。a460ae1b7537438483fc89d4893c64f5.jpeg

然后就可以测试模型了

按下图步骤

a307fdfad1af4e2799b2475b34c412d4.jpeg

然后等待一会就会出现以下界面

ff3d02b7c11f42a78dc6c33ee7bb6da3.jpeg

这就表示测试完成了。(有一张图未识别出来,原因可能是照片数量太少,好的数据集大几千张,也可能是测试次数少)。

接下来就是部署到K210上了

因为K210上的文件形式是.kmodel,而训练完的模型文件的是.tflite 所以要转换。

按下图操作

307adeb1389644e0a60703ec8ff743f2.jpeg

6b59215b301e4ea094073d07f5983d35.jpeg

41541a92b0b545e0b32aa3e785d95437.png

然后点击转换,等待转换成功。打开文件夹中的Train_date中就会找到如下文件

dbf0eba77ac540c9ae39a99bdf65a86e.jpeg接下来再新建一个文件夹

如下图,将下面的三个文件拖到新的文件夹(K210_car)。

466a9ced777f434792483963f073cb39.png

然后按如下路径在yolov3文件夹中找到

c8693f78135c48e9b0a51b5151c578ba.jpeg

同样放到新建文件夹总(也可以不放,只是为了方便管理)

最后就将这些文件复制到你的SD卡中(也可以不用SD卡,下面再说)

然后将SD卡插入K210上,打开上图的boot.py 文件,就可以连接上机了

还需要按如下修改代码中的文件位置。

(下图中的labels,不是与下面的对应就行,也要跟你放进SD卡中的文件名称一样)

7455168f1d344a99b8ec4dddee8da27b.jpeg

修改后记得点保存,然后就可以运行了。

b3a277624b6b47bd8a71d0c78086db7a.jpeg

识别不是很准确,也是因为数据集不够大(有时能识别到(很难),有时识别不到),也有灯光的原因,所以我换了成了yolov3中带的mask数据集进行测试可以看到以下结果

c79dffdce0b742c49ac52396f7a79d7a.jpeg

这就很稳定的识别出来了。到这你就再K210上成功了一大步。

那就来说说没SD卡的,这就得把模型包烧录到K210上了(建议还是用SD卡)

首先你得到Sipeed找到下面的固件并下载

506d69f2b0b24bc9ad0bb491bdf2f1f1.png

然后再在kflash_gui.exe上烧录到K210的固件上,如下图

370ff7bd8820490a8afac754f8d6f02a.png

串口要选对,然后就是可以下载了。

然后再将.kmodel文件下载到K210上,如下(地址一定不要错,因为前面的是固件的地址)

6b81e5f5fd6b4227a4cbccde90d169dd.jpeg

然后就可以打开boot.py了,但是要修改以下地方(这里就以mask的为例)

79dfc601dccf4643979893317af3b236.jpeg

可以在新建文件夹中找到这些数据复制过来就行了。

不懂这些函数的可以去Sipped 上学习。

然后就可以运行了。

文章到此就结束,这只是个人学习的记录分享,如有错误,请路过的大佬指导指导。


本文转载自: https://blog.csdn.net/m0_64944188/article/details/127416364
版权归原作者 欲沐 所有, 如有侵权,请联系我们删除。

“yolov3模型训练并部署到K210(零基础也可)”的评论:

还没有评论