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
-
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
(后面加清华源可能快些,没有尝试) -
运行一段代码,成功!
使用自己数据集训练
数据集格式
修改路径与配置(/home/lhh/workspace/AnacondaProjects/mmdetection/mmdetection/configs/base)都是在这个文件夹下设置的
- dataset中的.py文件设置路径(用到coco数据集就修改对应的py文件)eg:voc0721.py文件
- 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设置配置文件的位置,数据类型的位置
-
创建文件夹work_dir保存训练过程及结果
-
运行(具体需要看train.py文件,需要哪些参数,在tools文件夹下)
比如:python tools/train.py configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py --work-dir work_dir
训练结果:
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
- 同理,loss绘制
- python tools/analyze_logs.py plot_curve ./work_dir/20201228_234809.log.json --keys loss --legend loss --out loss.jpg
- 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
测试
参考链接: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
测试结果
撒花花~~~
以coco数据集,yolov3模型为例
数据集格式:
train2017文件中存放的是图片
annotations存放的是:
voc数据集转化coco数据集
参考链接:
修改过程
- 修改configs/_ base_/datasets文件下的coco_detection.py文件
- coco.py文件的类别名
- class_names.py文件的类别名
错误:
之前使用的yolov3…py文件有问题,没有类别数(num_classes),自己还一直死钻。。。。
换成如下图所示:
- 运行代码:
- python tools/train.py configs/yolo/yolov3_d53_mstrain-608_273e_coco.py --work-dir work_dir/yolov3_d53_320_273e_coco
- 运行成功!
撒花花~~~
测试
- 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