tensorflow 下Mask RCNN实现自己数据集
本文win10 tensorflow1.10 CUDA 9.0 python3.6 尽量保持一致
非常有用的网站
https://blog.youkuaiyun.com/qq_29462849/article/details/81037343
https://github.com/matterport/Mask_RCNN?tdsourcetag=s_pcqq_aiomsg
1 数据集
首先依旧是labelme做数据集会出来.json文件
然后运行下面脚本,生成mask rcnn的数据集
import os
path='F:/maskrcnn/Mask_RCNN-master/mine/train_data/json/'
json_file = os.listdir(path) # path是你存放json的路径
for file in json_file:
os.system("python E:/anaconda/anaconda/envs/tensorflow_gpu/Scripts/labelme_json_to_dataset.exe %s"%(path + file))
其中数据集里面做成我这个样子 .yaml和.txt都是类别 不用管
2 训练
训练和测试文件都是上面的博客摘下来的
训练的 train.py 类别这里必须改为自己的类别 切记一定改好
for i in range(len(labels)):
if labels[i].find("besom") != -1:
# print "car"
labels_form.append("besom")
elif labels[i].find("dustpan") != -1:
# print "leg"
labels_form.append("dustpan")
elif labels[i].find("high_cabinet") != -1:
# print "well"
labels_form.append("high_cabinet")
def load_shapes(self, count, img_floder, mask_floder, imglist, dataset_root_path):
"""Generate the requested number of synthetic images.
count: number of images to generate.
height, width: the size of the generated images.
"""
# Add classes 类别?
self.add_class("shapes", 1, "besom")
self.add_class("shapes", 2, "dustpan")
self.add_class("shapes", 3, "high_cabinet")
最后的权重很多个文件,具体看你训练了几个,训练时间很快,但是精度想要很高,类别数很多的情况下,建议50个以上
测试就直接test.py啦,注意只能单张图片检测,所以output文件夹下就放一张图片就好
多放图片就会随机检测一张啦
流程过于简单,只要能训练,warning什么的不用管,
踩坑欢迎留言,有时间必回