**
MASK_RCNN训练自己的数据集
**
1.将自己数据集的标注转为coco数据集格式,网上有很多很好的代码。这一步比较重要,后期出的很多问题都是数据的问题
train和val中是原始图片,annotations是放的coco格式的标记信息
2 coco.py 的修改
(1)89行附件
NUM_CLASSES = 1 + 1 # COCO has 80 classes
自己的数据分成几类,就是1+几,这个1是背景
(2)114行附近
coco = COCO("{}/annotations/{}{}.json".format(dataset_dir, subset, year))
#由于我是train.json,val.json,所以我把instances删掉了
if subset == "minival" or subset == "valminusminival":
subset = "val"
image_dir = "{}/{}{}".format(dataset_dir, subset, year)
(3)423行附近
if args.command == "train":
# Training dataset. Use the training set and 35K from the
# validation set, as as in the Mask RCNN paper.
dataset_train = CocoDataset()
dataset_train.load_coco(args.dataset, "train", year='', auto_download=args.download)
dataset_train.load_coco(args.dataset, "val", year='', auto_download=args.download)
dataset_train.prepare()
3.运行coco.py
在cmd的coco.py所在的文件夹下
python coco.py train --dataset=G:\data\parking\drivable_area\data\ --model=imagenet
还有
# Train a new model starting from pre-trained COCO weights
python3 coco.py train --dataset=/path/to/coco/ --model=coco
# Train a new model starting from ImageNet weights
python3 coco.py train --dataset=/path/to/coco/ --model=imagenet
# Continue training a model that you had trained earlier
python3 coco.py train --dataset=/path/to/coco/ --model=/path/to/weights.h5
# Continue training the last model you trained
python3 coco.py train --dataset=/path/to/coco/ --model=last
# Run COCO evaluatoin on the last model you trained
python3 coco.py evaluate --dataset=/path/to/coco/ --model=last
我的G:\data\parking\drivable_area\data\下:
4.遇到的问题
好几个问题都是数据格式问题,忘了,只大体记得
. coco.{},keyerror.
应该是categories中的类别有问题,没有这一类
有一个是不训练的问题,是因为Keras的版本问题
Keras==2.1.6