coco格式的数据集进行训练

     前几篇博客一直在使用网上别人写好的代码,按照航拍数据打标的.json,.mask,.yaml,原图片,四个文件来制作数据集(我认为是自定义格式的数据集),最近跟一个热心的网友交流(超级感谢他)决定改为coco格式来训练。https://blog.csdn.net/heiheiya/article/details/82143967(别人的coco格式数据训练博客)此种数据格式训练不需要自动提出mask,mask会根据label标记的多边形自动生成instance,故该种模式只需要原图片文件,整合的.json文件。

(1)首先准备数据集(包含1整合的train.json/val.json,2train的原图片,3val的原图片)如下图1:

annotations文件夹下包含:

(2)修改coco.py代码。

A.因为我识别的只有一类building,所以将NUM_CLASSES改为1+1(背景为一类).

B.如果不修改为1+1,就不需要改预训练模型代码,因为预训练模型代码里关于mrcnn的所有shape都是81维的,如果修改了,则加载权重代码需要换下。否则会报错提示shape不一致,像shape,ballon等都是按照后面的方式加载的权重数据。

C.红框内的代码注释掉,因为本来传来的就是默认2014,下边val_type="minival"即可。

就是按下边这个规则能加载到数集。

D.先注释掉下边代码,只训练heads,看下结果。

(3)以上所有修改完成后,进入代码运行,需要安装cocopytools这个,我用的是pip安装,在安装过程中遇到缺少模块就pip安装即可。有一个问题的界面如下,版本不兼容。

首先本人用的是服务器跑代码,利用命令行进入到coco.py所在的目录下,执行下面语句即可。

即可进入训练:

下边图片是看一下2.1版本里边的的resize_image函数:

猜你喜欢

转载自blog.csdn.net/m0_37957160/article/details/83860490