mmdetection的使用总结

一 资料链接:

1---mmdetection官方地址:

https://github.com/open-mmlab/mmdetection

2---mmdetection安装与入门教程:

https://blog.csdn.net/hajlyx/article/details/83542167

https://blog.csdn.net/long_xuan123/article/details/101266643

3---voc2007数据集格式介绍:

https://blog.csdn.net/qq_38273984/article/details/90749314

4---数据集格式的转换(voc转coco):格式转换箱

https://github.com/spytensor/prepare_detection_dataset

5---mmdetection的configs中的各项参数具体解释:

https://blog.csdn.net/weicao1990/article/details/91879513

https://blog.csdn.net/syysyf99/article/details/96574325

二 mmdetection使用记录

在linux系统安装完mmdetection后,记录一下初次学习使用mmdetection的过程:

1) 数据生成与处理;

2)调节mmdetection输入参数;

3)训练;

4)转换权值文件和预测。 

1) 数据生成与处理

检测:

1-1)数据的重命名; 最好按照xxx_000001.jpg,有顺序的重命名;需用到zfill函数。

1-2)数据的标注; labelImg标注(PascalVOC mode下,生成的是XML文件)。

1-3)数据的扩增,利用img_aug(github)可以同时扩增数据和XML。

1-4)装成coco格式的数据。 每张图片有对应的XML文件,在写程序生成CSV文件;

        格式转换箱(csv2coco.py)由CSV文件生成coco文件;

1-5)将数据集的文件夹通过【ln -s 数据集文件夹地址 目的地文件夹地址】命令进行软链接。

分割:

1-1)数据的重命名; 最好按照xxx_000001.jpg,有顺序的重命名;需用到zfill函数。

1-2)数据的标注; labelme标注(生成的是json文件,jpg文件和json文件放在同一个文件夹中便于后续读取)。

1-3)数据的扩增,利用img_aug(github,里面有点扩增)可以同时扩增数据和json。 将json文件里的mask对应的边缘坐标读取出来,经img_aug扩增后,再写入新生成的json.

1-4)装成coco格式的数据。 每张图片有对应的json文件,格式转换箱(labelme2coco.py);

2)调节mmdetection输入参数;

在configs/目录下的各个py文件调节参数: configs/faster_rcnn_r50_fpn_1x.py

若用FP16,configs/fp16/faster_rcnn_r50_fpn_fp16_1x.py

其中,变成FP16精度的语句主要为在开头的两句:

# fp16 settings

fp16 = dict(loss_scale=512.)

3)训练; $ python tools/train.py configs/faster_rcnn_r50_fpn_1x.py

其中,若出现:某某py文件中含有不可识别的参数,在第几几行,例如,第111行,含有不可识别的参数meta,=meta。解决办法:删掉该变量。

4)转换权值变量和预测

4-1)转换权值变量; python tools/publish_model.py  ${INPUT_FILENAME}  ${OUTPUT_FILENAME} 去除掉一些保存的训练的状态。

4-2)预测; demo.py

其中,

-1) demo.py文件中,目前没有发现可批量预测的值,需要循环输入,单张预测。 模型输出result变量为一个list[numpyarray[50,5],numpyarray[50,5],...],list的长度为目标类别的数量,其中【50,5】,为50个长度为5的矩阵,【xmin,ymin,xmax,ymax,score】.

-2) 若用FP16的预测,需加入: from mmdet.core import wrap_fp16_model wrap_fp16_model(model) 其中,可以从tools/test.py 中 找到。

你可能感兴趣的:(学习笔记,读后感)