Windows11安装mmdetection

环境:Windows11+cuda11.6

从源码安装:开始你的第一步 — MMDetection 3.3.0 文档

步骤 1. 创建并激活一个 conda 环境

conda create --name mmdetection python=3.9 -y

conda activate mmdetection

步骤 2. 安装 PyTorch-GPU版本

conda install pytorch==1.13.1 torchvision==0.14.1 torchaudio==0.13.1 pytorch-cuda=11.6 -c pytorch -c nvidia

步骤 0. 使用 MIM 安装 MMEngine 和 MMCV

pip install -U openmim
mim install mmengine
pip install mmcv==2.0.0 -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.13/index.html

步骤 1. 安装 MMDetection。

方案 a:如果你开发并直接运行 mmdet,从源码安装它:

git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -v -e .
# "-v" 指详细说明,或更多的输出
# "-e" 表示在可编辑模式下安装项目,因此对代码所做的任何本地修改都会生效,从而无需重新安装。

步骤 2. 验证安装是否成功。

import mmdet
print(mmdet.__version__)
# 预期输出:3.0.0 或其他版本号

验证安装

步骤 1. 我们需要下载配置文件和模型权重文件。

mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest .

下载将需要几秒钟或更长时间,这取决于你的网络环境。完成后,你会在当前文件夹中发现两个文件 rtmdet_tiny_8xb32-300e_coco.py 和 rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth

步骤 2. 推理验证。

方案 a:如果你通过源码安装的 MMDetection,那么直接运行以下命令进行验证:

python demo/image_demo.py demo/demo.jpg rtmdet_tiny_8xb32-300e_coco.py --weights rtmdet_tiny_8xb32-300e_coco_20220902_112414-78e30dcc.pth --device cpu

你会在当前文件夹中的 outputs/vis 文件夹中看到一个新的图像 demo.jpg,图像中包含有网络预测的检测框。

安装报错

使用安装代码:

mim install "mmcv>=2.0.0"

报错:安装的版本是mmcv=2.2.0,AssertionError: MMCV==2.2.0 is used but incompatible. Please install mmcv>=2.0.0rc4, <2.2.0.

当卸载mmcv=2.2.0并pip install "mmcv==2.1.0"或是pip install "mmcv==2.0.0"报错:

不确定报错是不是因为我使用pip安装而没用mim安装,但是我使用

pip install mmcv==2.0.0 -f https://download.openmmlab.com/mmcv/dist/cu116/torch1.13/index.html

安装成功了,也就没有重新检测使用mim install "mmcv==2.0.0"是否会成功

pip 安装选择合适的版本:安装 MMCV — mmcv 2.0.0 文档

报错信息2:

from mmcv.utils import Registry

ImportError: cannot import name 'Registry' from 'mmcv.utils'

解决方法:

从from mmcv.utils import Registry改为from mmcv.utils.registry import Registry

报错信息2:

 File "D:\LeStoreDownload\Anaconda\envs\mmdetection\lib\site-packages\mmcv\fileio\io.py", line 6, in <module>
    from ..utils import is_list_of
ImportError: cannot import name 'is_list_of' from 'mmcv.utils' (D:\LeStoreDownload\Anaconda\envs\mmdetection\lib\site-packages\mmcv\utils\__init__.py)

报错原因:[Bug] ImportError: cannot import name 'is_list_of' from 'mmcv.utils' - Giters

It seems that it's because you use mmcv>=2.0, but the original project uses mmcv<2.0. mmcv.utils.is_list_of has been moved to mmengine.utils with mmcv=2.0. So you can try to install mmcv<2.0.

解决方法:

进入:D:\LeStoreDownload\Anaconda\envs\mmdetection\lib\site-packages\mmcv\fileio\io.py

将from ..utils import is_list_of改为from mmengine.utils import is_list_of

报错信息3:

 File "D:\LeStoreDownload\Anaconda\envs\mmdetection\lib\site-packages\mmcv\parallel\distributed.py", line 8, in <module>
    from mmcv import print_log
ImportError: cannot import name 'print_log' from 'mmcv' (D:\LeStoreDownload\Anaconda\envs\mmdetection\lib\site-packages\mmcv\__init__.py)  

报错原因:https://github.com/OpenGVLab/InternImage/issues/91

mmcv=>2.0.0 version "print_log" function is implemented in "mmengine".

解决方法:

将: from mmcv import print_log
改为: from mmengine import print_log

报错信息4:

File "D:\LeStoreDownload\Anaconda\envs\mmdetection\lib\site-packages\mmcv\parallel\distributed.py", line 9, in <module>
    from mmcv.utils import TORCH_VERSION
ImportError: cannot import name 'TORCH_VERSION' from 'mmcv.utils' (D:\LeStoreDownload\Anaconda\envs\mmdetection\lib\site-packages\mmcv\utils\__init__.py)

解决方法https://github.com/open-mmlab/mmcv/issues/2984

从 from mmcv.utils import TORCH_VERSION

改为from mmengine.utils.dl_utils import TORCH_VERSION

报错信息5:

File "D:\LeStoreDownload\Anaconda\envs\mmdetection\lib\site-packages\mmcv\parallel\distributed.py", line 10, in <module>
    from mmcv.utils import digit_version
ImportError: cannot import name 'digit_version' from 'mmcv.utils' (D:\LeStoreDownload\Anaconda\envs\mmdetection\lib\site-packages\mmcv\utils\__init__.py)

解决方法:

从 from mmcv.utils import digit_version

改为 from mmengine.utils import digit_version

报错信息6:

 File "E:\zip-download\VideoX-master\X-CLIP\datasets\pipeline.py", line 824, in __init__
    if not mmcv.is_tuple_of(self.input_size, int):
AttributeError: module 'mmcv' has no attribute 'is_tuple_of'

解决方法:

找到 if not mmcv.is_tuple_of(self.input_size, int):

将mmcv.is_tuple_of
改为mmengine.is_tuple_of
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值