进入openMMLab社区好久了,但是前面都是在学一些基础知识,最近看到了目标检测的部分,然后尝试配置了一下mmDet的环境,过程中踩了很多坑,也用了很长时间,在这里记录一下,避免大家后面再次踩坑了,整个过程如果顺利的话可能三分钟不到就好了
安装MMDetection
本文假设已经配置好了anaconda且已经有了pytorch环境,,如果没有的话参考这个文章
首先从已有的环境中克隆一份出来,这样可以省掉很多的下载时间
conda create -n open-mmlab --clone pytorch
然后切换到新创建的环境中
conda activate open-mmlab
这里为了防止过程中出现错误导致配置失败,把删除环境的命令也给出,希望大家不会用到
首先需要切出这个环境到另一个环境中,然后直接删除
conda activate base conda remove -n open-mmlab --all
然后就是具体的配置了,官方给了两种方式:
- 使用
openmim
下载,但是克隆仓库的速度有点慢(可能是服务器的问题,是直接从Github
clone代码的),但是操作比较简单 - 手动安装MMDetection,需要把代码克隆到本地然后安装,这样就可以把代码直接压缩包上传服务器或者在
Gitee
找个镜像下载就ok了,操作比较复杂一点
在进行下面两步之前建议把连接服务器的会话关掉再开一下,我好几次都是报错
No module named torch
,也不知道怎么回事
使用openmim安装
mim
是官方推荐的安装方法,原文说法是MIM 能够自动地安装 OpenMMLab 的项目以及对应的依赖包。
刚刚创建的环境激活之后使用下列命令:
mim install mmdet
然后等安装完就成功了
手动安装
手动安装需要安装mmcv-full,官方建议使用预构建包来安装:
其中
{cu_version}
和{torch_version}
是服务器的cuda版本和torch版本号,可以在命令行输入python进入python命令行,然后如下:
可以看到我的版本是torch1.11.0,cuda102,然后我下载的命令是
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/cu102/torch1.11.0/index.html
查询完之后使用
ctrl+z
退出
pip install mmcv-full -f https://download.openmmlab.com/mmcv/dist/{cu_version}/{torch_version}/index.html
这个过程还是很快的
然后安装MMDetection
首先要把Github
仓库克隆到服务器上,如果服务器clone速度比较快的话可以直接使用如下命令
git clone https://github.com/open-mmlab/mmdetection.git
如果直接clone速度过慢,可以先下载压缩包然后上传到服务器或者在Gitee
找一个镜像clone
克隆成功之后
cd mmdetection
pip install -r requirements/build.txt
pip install -v -e . # or "python setup.py develop"
然后等待配置成功就ok了。
验证
官方文档给出了一种验证方法,可以去参考一下,但有几个需要注意的地方
-
如果使用的
mim
安装的话这种方法用不了,使用下面的方法 -
如果是手动安装则需要在
mmdetection
目录下首先通过命令下载checkpoint,然后再运行这个文件mkdir checkpoints cd checkpoints wget http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
另一种方法是看的官方教程的,这个可以在任意位置创建一个py
或者jupyter
文件,然后运行下面的代码:
注意,如果后面想跟着这个教程看使用的话,千万不要运行第二个单元格,我当时没仔细看,然后把我配置好的环境全删了,结果又重新配置了一遍。。。
# Check Pytorch installation
import torch, torchvision
print(torch.__version__, torch.cuda.is_available())
# Check MMDetection installation
import mmdet
print(mmdet.__version__)
# Check mmcv installation
from mmcv.ops import get_compiling_cuda_version, get_compiler_version
print(get_compiling_cuda_version())
print(get_compiler_version())
可以正常显示版本号则说明配置成功