小白MMdetection基础实现指南(一)

小白MMdetection基础实现指南(一)

  • MMdetection的安装与初步训练
    • 一、注意事项
    • 二、框架及其目录的构建
    • 三、运行demo
    • 四、Data文件夹的构建
    • 五、训练开始
    • 六、总结

MMdetection的安装与初步训练

一、注意事项

1、请注意我现在所用的版本是v1.1.0 (24/2/2020)。如果版本不一致那么可能会造成一定的出入,因为MMdetection更新还是比较快的。

2、在安装后确保所安装包的版本一定得符合github上的要求,以免后面出现不必要的麻烦。

3、确保自己在安装mmdet时候(也就是执行pip install -v -e .时)所用到的gcc版本与你当时安装cuda是的gcc版本是一致的。如果不一致的话,最快会在运行demo时出现错误,具体错误没有记录。

4、在遇到错误时,一定要去GitHub上的issue看看,可能会有解决方案,还可能会出现意想不到的惊喜哟!

5、默认你已经是安装了Anaconda与Pycharm。

6、我用的是MS COCO格式的数据集,ubuntu系统。

二、框架及其目录的构建

conda create -n open-mmlab python=3.7 -y                 #新建名为open-mmlab的Anaconda环境(python3.7)
conda activate open-mmlab										 #激活open-mmlab(每次打开终端后,必须先执行这个命令)

conda install -c pytorch pytorch torchvision -y			#安装pytorch
git clone https://github.com/open-mmlab/mmdetection.git           #下载代码
cd mmdetection                                                                           #打开代码根目录
pip install -r requirements/build.txt												
#安装mmdetection所需要的依赖包(还有一些包需要自己另行安装,用pycharm打开代码即可看到缺少的依赖包)

pip install "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"          #安装COCOAPI
pip install -v -e .                                                                                                                     #编译安装mmdet等

mkdir data                                                                                                                           #创建data文件夹
ln -s $COCO_ROOT data                                                      #创建软连接,$COCO_ROOT是你数据集的目录

三、运行demo

运行demo验证mmdetection是否安装成功。如果能成功执行,恭喜!环境这些乱七八糟的东西安装对了(这里我卡了很久)
运行demo命令的格式
python demo/webcam_demo.py ${CONFIG_FILE} ${CHECKPOINT_FILE} [--device ${GPU_ID}] [--camera-id ${CAMERA-ID}] [--score-thr ${SCORE_THR}]
例子:
python demo/webcam_demo.py configs/faster_rcnn_r50_fpn_1x.py checkpoints/faster_rcnn_r50_fpn_1x_20181010-3d1b3351.pth

注意以前版本用的是demo.py,最新版本改成了webam_demo.py。

格式解释(很重要!!!!)
1、${CONFIG_FILE}:就在代码目录里面的config,形似faster_rcnn_r50_fpn_1x.py的代码,就是以后训练测试所用到的配置文件,要修改的东西都在里面!(以后会详细讲解里面可以修改的东西)

2、${CHECKPOINT_FILE}:backbone的位置,一般会在代码目录新建一个checkpoints来存放。
backone下载链接: Model zoo.
按需下载!

四、Data文件夹的构建

mmdetection                                                   #data文件夹的结构,直接按图示创建即可
├── mmdet
├── tools
├── configs
├── data
│   ├── coco
│   │   ├── annotations
│   │   ├── train2017
│   │   ├── val2017
│   │   ├── test2017

大家可以先下载MS COCO2017数据集,怎么下载网上都有教程。(如何构建自己的数据集并训练后续更新)

五、训练开始

1、单GPU训练

python tools/train.py ${CONFIG_FILE} [optional arguments]
例子:
python tools/train.py configs/faster_rcnn_r50_fpn_1x.py --validate

2、多GPU训练

./tools/dist_train.sh ${CONFIG_FILE} ${GPU_NUM} [optional arguments]
例子:
./tools/dist_train.sh configs/faster_rcnn_r50_fpn_1x.py 2 --validate

option arguments:
1、–validate:每一个 epoch最后都会进行验证(强烈建议!)
2、–work_dir ${WORK_DIR}:设定你日志文件、训练得到的参数这些的存放文件夹
3、–resume_from ${CHECKPOINT_FILE}:这个我暂时没有用到,好像是用于训练中断后重新启动的(具体建议度娘)
4、 ${GPU_NUM}:指的是GPU的数量而不是编号!

六、总结

1、大致流程就是这样了,要一步一步来,遇到bug不要烦,静下心来很重要!如果在本篇内容介绍范围内,在某一步骤上遇到bug,可以在评论区里面把问题与报错信息发出来,会的我都会解答或者给建议。如果上面的内容有误的话,也欢迎指正!

2、后面我会更新如何构建和训练自己的数据集,configs文件的修改等等!

3、介绍MMdetection的博客有很多,大家一定要挑比较新的看,真的mmdetection更新很快!很多文件都会有增减的,这里我踩了不少坑的。

你可能感兴趣的:(MMdetection)