当前位置: 首页 > article >正文

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


http://www.kler.cn/a/522228.html

相关文章:

  • 创作三载·福启新章2025
  • wordpress代码结构解析
  • 安全漏洞扫描与修复系统的高质量技术详解
  • 文件上传2
  • 神经网络|(五)概率论基础知识-条件概率
  • 机器学习:支持向量机
  • Elasticsearch的索引生命周期管理
  • RocketMQ实战—1.订单系统面临的技术挑战
  • 使用 OpenResty 构建高效的动态图片水印代理服务20250127
  • 批量处理多个模型的预测任务
  • 甘油单油酸酯行业分析
  • 常见的多媒体框架(FFmpeg GStreamer DirectShow AVFoundation OpenMax)
  • Autogen_core: Tool Use
  • 团体程序设计天梯赛-练习集——L1-023 输出GPLT
  • PyTorch API 详细中文文档,基于PyTorch2.5
  • 【PySide6快速入门】QFileDialog 文件选择对话框
  • RAG与CAG的较量与融合
  • python接口测试:2.8 Pytest之pytest-html报告生成
  • 【Rust自学】15.6. RefCell与内部可变性:“摆脱”安全性限制
  • 计算生物学与生物信息学:一周年创作纪念
  • 系统思考—转型
  • Lucene常用的字段类型lucene检索打分原理
  • Go-并行编程新手指南
  • 【深度学习】搭建卷积神经网络并进行参数解读
  • ROS应用之SwarmSim在ROS 中的协同路径规划
  • obsidian插件——Metadata Hider