mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

d=====( ̄▽ ̄*)b 我是小小搬运工!站在各位巨人的肩膀上完成哒~~~

哇,再次撒花花~~~

安装过程

项目地址:https://github.com/open-mmlab/mmdetection

安装细节

环境配置

python 3.7 pytorch 1.6.0 torchvision 0.7.0 cuda 10.2

  • conda create -n mmdetection python=3.7
  • git clone https://github.com/open-mmlab/mmdetection.git
  • conda install pytorch1.6.0 torchvision0.7.0 cudatoolkit=10.2 -c pytorch

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

根据这个下载对应的mmcv
mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

  • pip install mmcv-full==1.2.2 -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.6.0/index.html

  • pip install -r /home/lhh/workspace/AnacondaProjects/mmdetection/mmdetection/requirements/build.txt
    (后面加清华源可能快些,没有尝试)

  • 运行一段代码,成功!
    mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

使用自己数据集训练

数据集格式

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

修改路径与配置(/home/lhh/workspace/AnacondaProjects/mmdetection/mmdetection/configs/base)都是在这个文件夹下设置的
  • dataset中的.py文件设置路径(用到coco数据集就修改对应的py文件)eg:voc0721.py文件
    mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

  • models文件夹修改对应模型的.py文件设置类别数量
  • schedules 文件夹修改.py文件设置epoch
  • mmdet/datasets/voc.py设置类别名,如果是1类加逗号
  • mmdet/core/evaluation/class_names.py设置类别名

以voc数据集,faster_rcnn为例

  • 修改schedule_1x.py文件
    修改最后一行的训练epoch

  • 修改配置文件(/home/lhh/workspace/AnacondaProjects/mmdetection/mmdetection/configs/fast_rcnn)中的fast_rcnn_r50_fpn_1x_coco.py设置配置文件的位置,数据类型的位置
    mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

  • 创建文件夹work_dir保存训练过程及结果

  • 运行(具体需要看train.py文件,需要哪些参数,在tools文件夹下)

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!
比如:python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py --work-dir work_dir

训练结果:
mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!
map结果绘制

  • mmdetection$ python tools/analyze_logs.py plot_curve ./work_dir/20201228_234809.log.json --keys mAP --legend mAP --out mAP.jpg
    之后将训练过程和结果放在统一文件中,上述路径会所更改
  • 参考链接:https://www.cnblogs.com/beeblog72/p/12076562.html

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

  • 同理,loss绘制
  • python tools/analyze_logs.py plot_curve ./work_dir/20201228_234809.log.json --keys loss --legend loss --out loss.jpg
    mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!
  • acc
  • python tools/analyze_logs.py plot_curve ./work_dir/faster_rcnn_r50_fpn_1x_coco/20201228_234809.log.json --keys acc --legend acc --out acc.jpg

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

测试

参考链接:https://blog.csdn.net/zxfhahaha/article/details/103754467
由于test.py文件只对coco数据集进行eval,所以先用test.py文件生成pkl文件,再用eval_metric.py文件进行计算mAP

  • python tools/test.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py work_dir/latest.pth --out results.pkl
    –out后面可以加路径,不然直接生成再项目根路径下
  • python tools/eval_metric.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py result.pkl --eval=mAP
    使用pkl文件计算每个类的AP

测试结果
mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!
撒花花~~~

以coco数据集,yolov3模型为例

数据集格式:

train2017文件中存放的是图片
annotations存放的是:
mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!
voc数据集转化coco数据集

参考链接:

修改过程
  • 修改configs/_ base_/datasets文件下的coco_detection.py文件
  • coco.py文件的类别名
  • class_names.py文件的类别名

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!
错误:mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!
之前使用的yolov3…py文件有问题,没有类别数(num_classes),自己还一直死钻。。。。
换成如下图所示:

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

  • 运行代码:
  • python tools/train.py configs/yolo/yolov3_d53_mstrain-608_273e_coco.py --work-dir work_dir/yolov3_d53_320_273e_coco
  • 运行成功!

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

撒花花~~~

测试
  • python tools/test.py configs/yolo/yolov3_d53_mstrain-608_273e_coco.py work_dir/yolov3_d53_mstrain-608_273e_coco/latest.pth --out result.pkl --eval bbox

mmdetection从安装、训练到测试!以coco、yolo和voc faster为例!

上一篇:比Tiny YOLOv3小8倍,性能提升11个点,4MB的网络也能做目标检测


下一篇:yolo 视频场景行为数据集