MaskRCNN(TensorFlow版)的项目地址:
https://github.com/matterport/Mask_RCNN
如果要用这个算法来训练自己的数据集,方法十分简单,只需修改代码的几个关键部分就好了。
准备数据集
首先将你的数据集分为两类,一类为训练集(train),一类为验证集(val)。
然后是标注数据,这里我用到的工具是VIA(VGG数据集的标注工具),操作起来十分方便。在网页上即可进行数据标注,VIA的链接为:
http://www.robots.ox.ac.uk/~vgg/software/via/
如下图:
修改源代码
数据集准备好之后,我们可以在源代码(balloon.py)的基础上进行修改,使之适应我们的数据集。
1、复制一份balloon.py的代码进行编辑,在class balloon_config下面修改分类个数,我这里是分成3类,所以是1+3,注意默认背景是一类:
class BalloonConfig(Config): """Configuration for training on the toy dataset. Derives from the base Config class and overrides some values. """ # Give the configuration a recognizable name NAME = "balloon" # We use a GPU with 12GB memory, which can fit two images. # Adjust down if you use a smaller GPU. IMAGES_PER_GPU = 2 # Number of classes (including background) NUM_CLASSES = 1 + 3 # Background + 分类类别 # Number of training steps per epoch STEPS_PER_EPOCH = 50 # Skip detections with < 90% confidence DETECTION_MIN_CONFIDENCE = 0.9
2、解析VIA的标注信息
因为源码是用coco数据集,它的标注信息格式与V