MMDetection 详细安装过程
MMDetection是由商汤科技和香港中文大学开源的基于Pytorch的深度学习计算机视觉工具箱,针对目标检测、实例分割、全景分割、模型蒸馏等计算机视觉任务,复现了诸多最新论文成果,尤其是大量CVPR论文。它将数据集构建、模型搭建、训练策略等过程封装成模块,基于Pytorch实现了大量目标检测算法,通过模块调用,能用少量代码实现新算法,大幅提高代码复用率。
整个MMLab家族除了MMDetection,还包含针对目标跟踪任务的MMTracking,针对3D目标检测任务的MMDetection3D等开源项目,他们都是以Pytorch和MMCV以基础。Pytorch不需要过多介绍,MMCV是一个面向计算机视觉的基础库,最主要作用是提供了基于Pytorch的通用训练框架,比如我们常提到的Registry、Runner、Hook等功能都是在MMCV中支持的。另外,MMCV还提供了通用IO接口、多种CNN网络结构、高质量实现的常见CUDA算子,这里就不进一步展开了。
目录
一、安装过程
1.创建conda虚拟环境
2.安装pytorch
3.安装MIM
4.安装mmcv和mmengine
5.git克隆源码文件
二、验证
验证安装是否成功
三、解决过程中的报错问题
Failed to connect to github.com port 443 after 21090 ms: Timed out
报错场景
解决方法
AssertionError: MMCV==1.7.2 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0
报错场景
解决方法
一、安装过程
1.创建conda虚拟环境
(1)首先确保本地已经安装了conda。打开命令行输入下列命令可以检验是否安装及当前conda的版本。
conda -V
(2)然后打开pycharm,使用下列命令开始创建一个新的conda虚拟环境,并激活。
anaconda命令创建python版本为x.x,名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。
conda create -n your_env_name python=x.x
此处我设置新conda虚拟环境名称是openmmlab,python的版本是3.8。
conda create --name openmmlab python=3.8 -y
conda activate openmmlab
过程如下图所示,
安装结果如下图所示,
2.安装pytorch
安装pytorch的时候采用 pip 或者 pip3都可以。
需要注意的是,此处我安装的是cuda11.8,这里的 torch==2.1.0 是因为在下一步要与mmcv保持版本对应一致。
pip3 install torch==2.1.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
过程如下图所示,
3.安装MIM
使用下列命令通过pip安装openmim,
pip install -U openmim
过程如下图所示,
安装结果如下图所示,
4.安装mmcv和mmengine
(1)使用下列命令通过mim安装mmcv,
mim install mmcv-full
过程如下图所示,
(2)使用下列命令通过mim安装mmengine,
mim install mmengine
(3)使用下列命令通过pip安装mmengine第三方包,
pip install mmengine
过程如下图所示,
(4)之后使用下列命令通过pip安装mmdet第三方包,
使用 mmdet 作为依赖项或第三方包,
pip install mmdet
过程如下图所示,
5.git克隆源码文件
首先在某个路径下,通过git克隆下载好mmdetection源码文件,
git clone https://github.com/open-mmlab/mmdetection.git
运行下列命令,进入该路径之后,使用pip安装。
cd D:\my_ruanjian\mmdetection\mmdetection\mmdetection
pip install -v -e .
编译成功后打印下我的pip list,
二、验证
验证安装是否成功
使用pycharm打开项目文件(注意将解释器配置成自己创建的虚拟环境),在image_demo.py中进行验证,
官网给出了验证过程,当然我们也可以在pycharm中进行验证。首先在官网下载需要的模型文件和权重文件。
mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest .
在cmd运行上面指令,一般会下载到当前文件夹下。
之后在pycharm的image_demo.py运行前传入这两个文件的地址以及demo图片的地址作为参数传入。
复制三个文件的绝对路径,示例如下:(注意是双斜杠\\)
D:\\my_ruanjian\\mmdetection\\mmdetection\\mmdetection\\demo\\demo.jpg
D:\\my_ruanjian\\mmdetection\\mmdetection\\mmdetection\\rtmdet_tiny_8xb32-300e_coco.py
--weights
D:\\my_ruanjian\\mmdetection\\mmdetection\\mmdetection\\rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth
--show
点击运行代码的按钮,
出现上述图像,说明安装成功了。
最终,打印下我的pip list,如下图所示,
如果遇到报错问题,请看第三小节。
三、解决过程中的报错问题
该小节记录了我在安装过程中遇到的报错问题,以及该问题的解决方法。
Failed to connect to github.com port 443 after 21090 ms: Timed out
报错场景
在使用 Git 进行代码管理的过程中,经常会遇到各种各样的问题,其中之一就是在执行 git clone 或 git pull 等操作时出现 “fatal: unable to access ‘https://github.com/…/.git’: Recv failure Connection was reset” 的报错。这个问题通常是由网络连接问题或代理设置不正确导致的。
解决方法
取消代理设置,这是最常见的解决方法之一。
通过在终端执行以下命令,可以取消 Git 的代理设置:
git config --global --unset http.proxy
git config --global --unset https.proxy
git config --global http.proxy http://127.0.0.1:7890
这样就可以清除 Git 的代理设置,让其直接连接网络进行操作。
AssertionError: MMCV==1.7.2 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0
报错场景
运行代码后报错,
报错提示是因为当前使用的MMCV版本(1.7.2)与要求的不兼容,需要安装MMCV>=2.0.0rc4且<2.2.0的版本。
解决方法
错误原因在于该版本不兼容,至少安装2.0.0rc4版本的。
因此卸载掉之前安装的低版本,重新安装高版本。
pip uninstall mmcv
pip uninstall mmcv-full
mim install "mmcv<2.2.0,>=2.0.0"
OK,重新运行代码之后,可以看到代码运行结果了。