本文介绍了Mask Rcnn目标分割算法如何训练自己数据集,对训练所需的文件以及训练代码进行详细的说明。
官方提供了coco数据集和balloon数据集两种,可以基于以上数据集进行训练,也可以基于自己采集的数据集进行训练,下面将对两种不同方式进行详细的介绍。
使用balloon气球数据集训练(使用coco数据集步骤相同)
下一篇博文介绍如何训练自己采集的数据集
1、balloon气球训练数据集
数据集和权重文件mask_rcnn_balloon.h5在我的github里,可以直接下载(后续附上,现在有需要可以直接留言,我发你)
balloon气球训练数据集中包含图片和对应标签,无需我们再去制作标签,训练步骤比较简单
2、测试
首先测试用已有的mask_rcnn_balloon.h5权重测试检测代码能否正常运行
(1)ballon.py文件的修改:
把–dataset、–weights、–logs路径替换成自己的。
(2)之前以为在这里设置好了参数,就可以直接运行,但是每次运行时还是报错没有参数,所以最后还是只能在pycharm参数里添加这些参数,点击运行旁边的向下箭头选择Edit Configuratios
在Parameters这里输入程序运行的相关参数:
我这里输入的是:
splash
--weights="D:/2021file/Biye/Mask_RCNN-master/samples/balloon//mask_rcnn_balloon.h5"
--image="D:/2021file/Biye/Mask_RCNN-master/samples/balloon/val/24631331976_defa3bb61f_k.jpg"
分别对应:测试、权重文件、测试图片路径
(3)顺利的话就能看到结果了
原图:
分割结果:
3、训练
(1)下载的balloon_dataset.zip:气球数据集下载后,解压放到当前项目中(放到samples/中,代码里面我都放的绝对路径,所以解压到哪其实都可以),该数据集文件下分为train、val两个文件夹。
每个文件下包含图片和对应的标签文件.json
(2)然后修改balloon.py对应的参数,
train
--dataset="D:/2021file/Biye/Mask_RCNN-master/samples/balloon/"
--weights="D:/2021file/Biye/Mask_RCNN-master/samples/balloon//mask_rcnn_balloon.h5"
分别对应:训练、数据集路径、权重文件
(3)点击运行就开始训练了
我这有很多警告,不过不影响程序运行,我就没管了
每轮的训练参数会保存到logs文件中
(4)使用tensorboard查看训练过程
tensorboard --logdir="D:/2021file/Biye/Mask_RCNN-master/logs/balloon20220415T1019"
=后面输入自己保存的文件夹名称
运行后在浏览器打开下面地址:(有时候运行框给我的地址是http://ComputerDing:6006,并不可用,所以我直接手动进入下面地址 )
(5)训练好后按照本文2中的测试方法进行测试即可,注意将代码中的权重路径修改为对应训练logs中的路径