【参考】
[1] B站up主:小鸡炖技术。【扫盲】Win10配置mmdetection 2.6和【扫盲】Swin-Transformer-Object-Detection环境搭建(最新mmdetection安装)
[2] mmcv官方安装教程:https://mmcv.readthedocs.io/en/latest/index.html
[3] mmdetection官方安装教程:https://mmdetection.readthedocs.io/en/latest/
说明
本教程主要参考B站up主:小鸡炖技术。但是由于python版本不同,以及没有提前下载安装cuda等,整个过程走了很多弯路,现将踩过的坑记录下来供大家参考。
1、安装vs2019
下载社区版,只需要安装C++桌面开发模块便好了。下载地址:https://visualstudio.microsoft.com/zh-hans/vs/
2、安装cuda11.1
本人显卡为NVDIA GeForce RTX3060,因此我选择安装cuda11.1,具体的可通过自己电脑配置选择对应的cuda版本进行安装。下载地址:https://developer.nvidia.com/cuda-toolkit-archive,安装好cuda以后记得检查一下是否将cuda安装路径添加到系统环境变量,安装程序默认会自己添加,如没有添加,则需要手动添加。
3、安装anaconda
4、安装mmcv1.3.8:
本人选择安装当前最新版本mmdetection2.14.0,根据其官方教程要求,其对应的mmcv版本应该>=1.3.8。如下图:
(1)按照mmcv官方安装教程:
安装mmcv时可以直接下载编译好的版本,但是,由于官方提供给windows平台可供下载的版本非常少,目前,仅有mmcv1.1.5版本,因此,我们通过github上的mmcv1.3.8源代码手动编译安装。在anaconda中创建虚拟环境并安装python3.8。
首先打开:
一定要选择Powershell Prompt版本。打开后你会发现路径前有个PS。如下图:
创建虚拟环境并安装python3.8(目前测试python3.7和python3.8均可,但是python3.9会在后续安装过程中报错,后文会提到):
conda create -n mmdetection214 python=3.8
查看anaconda中建立的python的虚拟环境是否成功:
conda env list
激活建立的虚拟环境:
conda activate mmdetection214
安装pytorch,见官网:https://pytorch.org/get-started/locally/,选择好自己对应的版本,通过复制进行安装。
conda install pytorch torchvision torchaudio cudatoolkit=11.1 -c pytorch -c conda-forge
安装完成,查看:
conda list
安装依赖:
pip install cython matplotlib opencv-python
添加cl.exe路径:
在vs2019的安装路径下找到cl.exe,切记是Hostx86/x64路径下的cl.exe,将其路径添加到环境变量路径。
重启电脑以后验证是否添加成功,输入:
cl
在github上选择当前最新版本mmdetection2.14.0(https://github.com/open-mmlab/mmdetection)和mmcv1.3.8(https://github.com/open-mmlab/mmcv)打包下载。
解压以后,找到mmcv1.3.8安装包路径,进入安装包路径:
cd D:\software\anaconda3\envs\mmdetection214\Lib\site-packages\mmdetection-2.14.0\mmcv-1.3.8
运行:
pip install -r requirements.txt
按照如下设置:其中算力值可查阅:https://developer.nvidia.com/zh-cn/cuda-gpus
$env:TORCH_CUDA_ARCH_LIST="8.6" #根据自己显卡算力进行修改。
$env:MMCV_WITH_OPS = 1
$env:MAX_JOBS = 8 #根据自己电脑配置,选择最多采用多少个线程进行运算
运行:
python setup.py build_ext
用时较长,完成以后运行:
python setup.py develop
到此已完成了mmcv的安装,可以通过以下命令查看:
conda list
5、安装mmdetection2.14.0
路径切换到安装包mmdetection-2.14.0,安装包通过github下载。
运行:
pip install -r requirements.txt
亲测采用python3.9会有如下报错:我没能解决以下错误,(原因好像是pycocotool编译生成的文件都是py38的),总之,最终换回python3.8正常了。
接着运行:
python setup.py develop
检验:
pip list
接下来应用faster-rcnn的一个例子来验证:
在https://github.com/open-mmlab/mmdetection/tree/master/configs/faster_rcnn下图表格中下载模型权值。
运行以下代码:根据自己文件位置修改路径。
python D:\software\anaconda3\envs\mmdetection214\Lib\site-packages\mmdetection-2.14.0\demo\webcam_demo.py D:\software\anaconda3\envs\mmdetection214\Lib\site-packages\mmdetection-2.14.0\configs\faster_rcnn\faster_rcnn_r50_fpn_1x_coco.py D:\software\anaconda3\envs\mmdetection214\Lib\site-packages\mmdetection-2.14.0\checkpoints\faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth
如有opencv相关的报错,修改opencv的版本,运行:
pip install opencv-python==4.2.0.34
再次运行例子便可。