使用官方命令安装MMCV(https://github.com/open-mmlab/mmcv)和mmdetection(https://github.com/open-mmlab/mmdetection),亲测会报错!
不建议安装最新版本!!
# 一、安装必需包介绍 #
1、VS2019(这里会用到编译文件去编译安装后续的mmcv)强烈建议安装VS2019,不要为了省事偷懒,博主就是因为装了VS2022版本,想着版本向下兼容,应该没有问题,后来因为这个坑浪费了好几天时间。VS2019下载
2、mmcv 1.3.17(建议手动安装!!)1.3.17打包下载
3、mmdetection 2.20.0(依赖mmcv,用于目标检测)2.20.0打包下载
4、Swin-Transformer-Object-Detection(包含很多模型的运行库,直接运行swin transfomer)Swin Transformer下载
# 二、VS2019环境配置 #
根据第一步的链接下载VS2019,并配置环境:
我的电脑--高级系统设置--环境变量--在系统变量path中添加以下:
根据你的具体安装位置找到:
win+R--cmd:输入cl
显示上述就是配置成功了!
# 三、创建conda虚拟环境 #
安装好Anaconda后,打开Anaconda Powershell Prompt创建环境:
conda create -n swin python=3.8
激活环境:
conda activate swin
# 四、安装CUDA #
官方下载:下载地址
下载CUDA Toolkit 11.1 版本:
下载完成后,我这里自动配置了环境,如果没有自动配置环境的需要手动配置,在系统变量path和CUDA_PATH中添加对应v11.1安装的目录。这里不再赘述,不懂的可以百度一下。
# 五、安装pytorch #
官方下载:下载地址
这里我尝试了不同的好几个版本,都不太行,最后根据CUDA11.1版本下载了torch1.8.2+cu111:
pip install torch==1.8.2+cu111 torchvision==0.9.2+cu111 torchaudio===0.8.2 -f https://download.pytorch.org/whl/lts/1.8/torch_lts.html -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
安装其他python依赖包:
pip install cython matplotlib opencv-python timm -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
# 六、安装mmcv #
安装地址在第一节放上了,下载后放到虚拟环境目录中,我的是在D:\Anaconda3\envs\swin,
后面的mmdetetion-2.20.0和apex也放到这个目录中。
之后通过Anaconda Powershell Prompt进入swin环境中,cd进入mmcv-1.3.17目录:
执行以下代码安装:
pip install -r requirements.txt
配置环境变量:
$env:TORCH_CUDA_ARCH_LIST="8.6" # 根据自己显卡的算力设置
$env:MMCV_WITH_OPS = 1
$env:MAX_JOBS = 8
算力查询在NVIDIA官网:查询显卡算力
编译:
python setup.py build_ext
这里就用到了VS2019的cl.exe编译,我尝试了用VS2022版本的编译,报错,即使编译成功后面也还会出错,老老实实下载VS2019吧 *.*
安装:
python setup.py develop
安装完成后,在swin虚拟环境中输入pip list 查看安装是否成功。
这里注意的是,使用其他版本的VS和torch安装的版本显示mmcv。最后还会报错。一般mmcv 1.4.0以下的为mmcv-full,mmcv1.4.0以上的为mmcv。
# 七、安装mmdetection #
下载放到第一节,通过Anaconda Powershell Prompt进入swin环境中,cd进入mmcvdetection-2.20.0目录:
执行以下代码安装所需包:
pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
如果安装出错,请打开D:\Anaconda3\envs\swin\mmdetection-2.20.0\requirements目录下的tests.txt文件,
将这行代码注释掉,此外,将optional.txt文件中的sklearn改为scikit-learn
安装mmdetection,
python setup.py develop
安装完成后,在swin虚拟环境中输入pip list 查看安装是否成功。
# 八、安装apex #
下载地址:https://github.com/NVIDIA/apex
通过Anaconda Powershell Prompt进入swin环境中,cd进入apex文件夹目录:
python setup.py install
# 十、在Swin-Transformer-Object-Detection运行demo #
下载地址在第一节。
通过虚拟环境进入Swin-Transformer-Object-Detection文件夹,执行:
python setup.py develop
安装完成后,通过pycharm或者cmd进入Swin-Transformer-Object-Detection目录下,执行:
python demo/image_demo.py demo/demo.jpg configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_3x_coco.py mask_rcnn_swin_tiny_patch4_window7.pth
mask_rcnn_swin_tiny_patch4_window7.pth文件在https://github.com/SwinTransformer/Swin-Transformer-Object-Detection
下载。
# 测试效果 #
成功!!!撒花!!!