一、环境
ubuntu 18.04
cuda 10.1
pytorch 1.6
二、安装mmcv
安装mmcv-full。mmdetection依赖于mmcv,并且要安装pytorch对应的版本,就像torchvision一样,各版本下载链接在https://openmmlab.oss-accelerate.aliyuncs.com/mmcv/dist/index.html
注意:一定要选择适合自己的版本否则会报错:Not compiled with GPU support
亲身尝试过。。。。
三、安装mmdetection
本人安装的是目前最新的版本ersion= 2.7
我在这里就不赘述安装虚拟环境以及torch和torchvision的步骤了。
1、克隆mmdetection到本地
git clone https://github.com/open-mmlab/mmdetection.git
如果git clone下载的速度太慢,可以使用github的镜像进行下载,如下:
或 :git clone https://github.com.cnpmjs.org/open-mmlab/mmdetection.git
2、进入到项目目录中
cd mmdetection
3、 安装mmdetection依赖
安装依赖的库,同时会检查一些库包的版本是否符合
pip install -r requirements/build.txt
4、编译mmdetection环境
python setup.py develop或pip install -v -e .
四、训练自己的数据
1、使用数据集为:https://github.com/EdjeElectronics/TensorFlow-Object-Detection-API-Tutorial-Train-Multiple-Objects-Windows-10/tree/master/images
文件目录如下:
├── poker
│ ├── VOC2007
│ │ ├── Annotations
│ │ ├── JPEGImages
│ │ ├── ImageSets
│ │ │ ├── Main
│ │ │ │ ├── val.txt
│ │ │ │ ├── train.txt
2、修改文件代码
1):
使用cascade_rcnn_r50_fpn_1x进行训练
在config文件中的cascade_rcnn文件中找到该文件并复制出来一份,改名为cascade_rcnn_r50_fpn_1x_poker.py
进入该文件,文件代码修改为:
_base_ = [
'../configs/_base_/models/cascade_rcnn_r50_fpn.py',
'../configs/_base_/datasets/voc0712.py',
'../configs/_base_/schedules/schedule_1x.py', '../configs/_base_/default_runtime.py'
]
2、进入到_base_文件中
对上面的几个文件进行修改,以此为:
1)cascade_rcnn_r50_fpn.py
将num_classes 改为你实际识别的类别数目,记住这里不需要加1,即加上背景这一类别,在先前的版本中是需要进行添加的。
2):schedule_1x.py
在最后一行修改你epochs
3):default_runtime.py
4):修改类别
a:
在上述目录中修改class_names.py
b:
在上述目录修改voc.py
五、运行测试代码
python tools/train.py configs/cascade_rcnn_r50_fpn_1x_poker.py
六、运行结果在work_dirs文件中
具体为: