主要参考了博文 https://blog.csdn.net/m0_46406029/article/details/127781625,在安装mmcv库时有细微改动。
1.安装conda环境
conda create -n swin python=3.8
conda activate swin
2.安装torch包
我用的是官方库的Swin-Transformer-Object-Detection,该库的实现用的是比较旧版的环境,因此选择1.X的torch环境
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
3.安装mmcv库
这里安装mmcv-full 1.5.0版本的库,这很重要。在我安装尝试中,新版的mmcv库模型权重文件和库里的参数对不上,即使能运行,跑出来的结果也是全零。而在库里给出的mmcv的版本为1.2.4~1.4.0,在多次安装尝试中,发现这个区间的版本在Windows环境下可能会不支持cuda里的nvcc,显示nvcc not available。即使torch.cuda.is_available的结果为True,也不能正确运行。
因此我们在mmdet_init_.py文件中把版本限制改为1.5.0,并安装1.5.0版本的mmcv-full
pip install mmcv-full==1.5.0 -f https://download.openmmlab.com/mmcv/dist/cu111/torch1.9.0/index.html
4.安装所需库
pip install -r requirements.txt
pip install -r requirements/docs.txt
5.安装mmdet
python setup.py develop
6.检查运行环境
python mmdet/utils/collect_env.py
结果如图
7.测试官方给出的权重文件
下载第一个mask_rcnn的权重文件放在项目目录下,
https://github.com/SwinTransformer/storage/releases/download/v1.0.3/mask_rcnn_swin_tiny_patch4_window7_1x.pth
运行以下代码
python tools/test.py configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco.py mask_rcnn_swin_tiny_patch4_window7_1x.pth --eval bbox
结果如图
环境搭建完成