Bootstrap

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,重新运行代码之后,可以看到代码运行结果了。 

;