使用labelme制作自己的数据集------MaskRCNN

在MaskRCNN下制作自己的数据集并训练有多种方法,经过参考大神们的博客,这里整理了使用labelme的mask掩码制作可训练数据集。

1.  安装labelme

    源码:  https://github.com/wkentaro/labelme

    环境: win10+python3.6

    源码中写的很详细,看起来复杂,其实对于 win10+python3.6 用户只需下面操作就安装成功了   

                              pip install pillow=4.0.0

                   pip install pyqt5                    

                   pip install labelme

    安装好的labelme组件在path\Python\Scripts(path是pathon安装路径)

 

                            使用labelme制作自己的数据集------MaskRCNN_第1张图片

双击labelme.exe就可以标记图片了。

 

2.  转化json文件为dataset

标记过每张图片对应一个json文件,使用labelme自带exe将每个json转化为dataset

 

  • 命令行进入labelme安装路径  
  • 输入python labelme_json_to_dataset.exe path\json_name.json

这样对于每个json文件生成一个dataset(包含 img.png,info.yaml,label.png,label_names.txt, label_viz.png),同样存放 在此目录下。

每个命令只能转化一个json文件,适用于dataset少的情况,如果谁有批量转化的,求赐教。

 

3.  16位灰度图转化8位

其中 label.png 是16位mask掩码,需要转化为8位才能读取。我是在vs2015上搭建openVC后使用C++转化的

win10+vs2015 openvc搭建链接:

https://blog.csdn.net/u011635764/article/details/50564259  

                                                 -----------引用 bit_hammer 的博客 

16位转8位mask掩码链接:

https://blog.csdn.net/l297969586/article/details/79154150

                                                  ----------引用 一呆飞仙 博客 

其中做了一点修改:

 

  • 10 行 要根据自己dataset数目修改  i
  • 11,12行 sprintf在我的环境下出错,我改成sprintf_s就行了

代码会遍历所有dataset将其中label.png转化为8位并存储在12行对应的路径中

 

4. 分类整理文件夹

将所有文件整理成四个文件夹

pic-------原始图片

json-------labelme标记图片后产生的json文件 (第一步产生的)

labelme--------json json文件转化成的dataset (第二步产生的)

cv2_mask---------转化后的8位掩码png (第三步产生的)

 

5. 关于数据集图片挑选

经过多轮测试,发现如果training数据集的某个类在一张图上有多个对象,比如你训练杯子的时候有些训练图片上有多个杯子,那么在test 的时候如果此类对象也有多个,比如test时你把几个杯子考靠的比较近,就只能将这几个作为一个对象被一个boundingbox框在一起。如果想避免此现象,希望每个对象有自己的boundingbox,训练照片要挑选只有此类object的图片。

 

这里没有记录怎样修改train的python文件。

 

 

 

 

 

 

你可能感兴趣的:(神经网络,CNN,深度学习中,MaskRCNN,制作自己的数据集)