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验证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.
按需下载!
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更新很快!很多文件都会有增减的,这里我踩了不少坑的。