这是在Windows系统安装完mmdetection后的总结。
官方mmdetection教程:https://mmdetection.readthedocs.io/en/latest/
文章目录
一、最终安装版本信息与安装前提
最终安装版本
· 显卡:NVIDIA GeForce MX330
· 系统:Windows 11
· python:3.9.15
· cuda:11.3
· cudnn:8.4.0
· pytorch:1.10.0
· torchvision:0.11.1
· mmcv-full:1.7.0
· mmdetection:2.27.0
安装前提
下载Git,可以直接用git命令从GitHub下载代码仓库,在之后的安装中使用源代码安装,使安装更加稳定。
下载地址: https://git-scm.com/download/win
我下载时总是一卡一卡的时不时下载失败,如想下载更快,可用换源方法(虽然我没有试过)
Git安装教程很多,可以自行搜索。
二、安装顺序
大致安装顺序:Anaconda(python) — CUDA和cuDNN — Pytorch — mmcv-full — mmpose — mmpycocotools — mmdetection
1. Anaconda的安装(内置python)
官网:https://www.anaconda.com/products/distribution
去官网进行下载并安装,安装教程很多。建议事先不要下载python,不然会很麻烦
下载安装完毕后,打开Anaconda Prompt(Anaconda3),输入:
python
可以得知python的版本,我的是python 3.9.13
输入Ctrl+Z
退出python编辑器
在base环境下创建虚拟环境:
conda create --n mmdet python=3.9
y
上述mmdet
可换成任意名称,此为虚拟环境的名称。
2.CUDA和cuDNN的安装和检测
cuDNN是对CUDA的补充,有很多CUDA和cuDNN的教程就不细说了,下载完cuDNN后将其覆盖CUDA中的同名称文件夹就行。下面是CUDA和cuDNN的官方教程地址:
CUDA官方教程:https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html
cuDNN官方教程:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#installwindows
3. Pytorch的安装和测试
·安装
首先构建python的虚拟环境!!!
pytorch一定要安装在虚拟环境内!!!不能在(base)里!!血的教训啊!!
激活环境mmdet
conda activate mmdet
运行结果如下:
在Pytorch官网,向下滑
按电脑配置进行选择,对表格最下面的Run this Commond后显示的一串命令代码进行复制然后粘贴到Anaconda Prompt里面去进行安装。
但是!!!我在安装pytorch的时候老是报错!!! 错误如下:
ERROR: Failed building wheel for pytorch
解决方法:
pip3 install torch==1.10.0+cu113 torchvision==0.11.1+cu113 torchaudio==0.10.0+cu113 -f https://download.pytorch.org/whl/cu113/torch_stable.html
看到有人说是由于缺乏镜像资源,需要手动下载。
·检测安装情况
在虚拟环境(mmdet)下,输入
python
import torch
torch.__version__
注意 torch 后有.
结果如上则安装成功。
4.安装visualstudio2019
下载地址:https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes
安装好后进行环境变量的配置:
我的文件路径是C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\bin\Hostx86\x64
我的安装路径是默认的路径,若修改了路径,则在安装的文件中自行按照我的路径查找至x64。
点击开始
按钮,搜索环境变量
,双击编辑系统环境变量
点击环境变量(N)...
双击Path
点击新建
,然后将文件路径复制粘贴至空白区域,然后点确认
。
5.mmcv-full的安装和检测
·下载
用管理员身份运行Anaconda Powershell Prompt
conda activate mmdet
方法一:mim install
pip install -U openmim
mim install mmcv-full
我照着一些帖子说的用pip下载安装,每次都会报错Building wheel for mmcv-full (setup.py) ... error
啊啊啊!烦死我了!!!然后用git方法直接下载结果下载的是mmcv,不是mmcv-full,后来发现可以用mim install,亲测可以!!!
但是,我当时不知道是哪里出错了不能使用mim install,即使是安装了openmim工具包也不行!不过后面发现可以先卸载再安装。
所以我直接下载了whl文件,这个也是可以的!
方法二:直接下载whl文件
pip install /C:/Users/16619/download/mmcv_full-1.7.0-cp39-cp39-win_amd64.whl
·验证
pip show mmcv-full
得到上面图片的样子便是安装成功啦!
6.mmpose和mmpycocotools的安装和检测(顺序可颠倒)
前面的都解决了,这两个工具包那就是小case啦!
·mmpose
git clone https://github.com/open-mmlab/mmpose.git
cd mmpose
pip install -r requirements.txt
pip install -v -e . # or "python setup.py develop"
注意:最后一行命令-e的后面有.
最后一行命令也可以是python setup.py develop
。
·mmpycocotools
先下载pycocotools
pip install pycocotools
再安装mmpycocotools
pip install mmpycocotools
·检测
pip list
然后可以在表格中找是否有mmpose和mmpycocotools
7.mmdetection的安装
方法一:源代码安装
git clone https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -v -e .
方法二:pip安装
pip install mmdet
三、mmdetection测试
(用管理员身份运行Anaconda Powershell Prompt)
在下载配置和检查点文件的时候不知道为什么报错缺少mmengine,所以我还需要安装一个mmengine,可能是我前面的下载哪里缺了点。
安装还是在虚拟环境中
1)使用mim下载
pip install -U openmim
mim install mmengine
2)使用pip安装
pip install mmengine
1.下载配置和检查点文件
mim download mmdet --config yolov3_mobilenetv2_320_300e_coco --dest .
下载将需要几秒钟或更长时间,具体取决于网络环境。完成后,可以在当前文件夹中找到两个文件。
1.yolov3_mobilenetv2_320_300e_coco.py
2.yolov3_mobilenetv2_320_300e_coco_20210719_215349-d18dff72.pth
2.验证推理演示
1)如果从源代码安装 mmdetection,只需运行以下命令。
python demo/image_demo.py demo/demo.jpg yolov3_mobilenetv2_320_300e_coco.py yolov3_mobilenetv2_320_300e_coco_20210719_215349-d18dff72.pth --device cpu --out-file result.jpg
运行成功后可以在文件夹中看见一个新图像result.jpg
。其中会有边界框绘制在汽车、长凳等物体上。新图像result.jpg
打开如下图所示:
2)如果从 pip 安装 mmdetection,请打开 python 解释器并复制并粘贴以下代码。
from mmdet.apis import init_detector, inference_detector
config_file = 'yolov3_mobilenetv2_320_300e_coco.py'
checkpoint_file = 'yolov3_mobilenetv2_320_300e_coco_20210719_215349-d18dff72.pth'
model = init_detector(config_file, checkpoint_file, device='cpu') # or device='cuda:0'
inference_detector(model, 'demo/demo.jpg')
运行成功后,会看到打印的数组列表,指示检测到的边界框。
虽然但是,我使用源代码安装后运行上述命令出现报错:无法找到文件路径demo\demo.jpg
解决方法:在demo前加上mmdetection/就可以了,命令如下:
python mmdetection/demo/image_demo.py mmdetection/demo/demo.jpg yolov3_mobilenetv2_320_300e_coco.py yolov3_mobilenetv2_320_300e_coco_20210719_215349-d18dff72.pth --device cpu --out-file result.jpg
四、安装过程中会出现的一些问题
问题一:
解决方法:使用管理员身份运行
问题二:'mim’不是内部或外部命令,也不是可运行的程序或批处理文件
刚开始即使下载了openmim依旧用不了mim install 急死我了!!(也可能是因为我当时没有下载mmpycocotools库的原因导致的)
解决方法:
pip uninstall openmim
pip install -U openmim
嘿嘿!重新下载一下就好啦!
问题三:安装的时候出现超时现象,然后程序终止
解决方法:多试几次(可能是网络不好)
或者是运行代码(若还是不行,则可将1000.0改为2000.0):
conda config --set remote_read_timeout_secs 1000.0
问题四:OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized
解决方法:暴力解决法:点开文件管理器,在搜索一栏直接搜索libiomp5md.dll
,然后查找出来的所有里面留下一个,其他都右键删除即可。