Windows10系统下swin-transformer目标检测环境搭建


前言

刚搞明白了分类,又进来了检测这个大坑里。

CV第一步:从环境搭建开始!

环境总览:
Windows10/11+ Microsoft Visual Studio2019社区版
python3.8+pytorch1.8.1+torchvision0.9.1+cuda10.1
mmcv1.4.0+mmdet2.11.0

1.环境准备

(1)安装 Visual Studio

需要用到 C++ 安装编译库,所以需要安装 Microsoft Visual Studio,版本的话比较常见的是2019,最新的版本应该也可以,安装很简单。

下载地址:2019版Microsoft Visual Studio下载地址

下载地址:最新版Microsoft Visual Studio下载地址

安装时记住安装位置,然后在 系统变量path 中添加VS2019的cl.exe文件路径:
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.****\bin\Hostx86\x64
D:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat

星号的位置根据自己的安装情况进行替换 ),然后上移到最顶端,一路确定之后退出,关机重启。

(2)工程项目文件准备

swin transformer官方github仓库下载或克隆代码工程文件,名字就命名为 Swin-Transformer-Object-Detection 就可以啦,然后在这个文件夹下新建一个命名为 checkpoints 的文件夹,将官方公开的那些预训练模型放进去,整体就是这个样子的。

在这里插入图片描述

2.虚拟环境创建

老规矩,做一个新项目建一个新的虚拟环境。

在 Anaconda Powershell Prompt 中键入:

conda create -n swinmm python=3.8 -y
conda activate swinmm

PS: swinmm为环境名称,可自行更改!!!

3.安装pytorch

参考上一篇基于win10复现swin-transformer图像分类源码的安装和运行代码经验,接上一步键入:

conda install pytorch==1.8.1 torchvision==0.9.1 cudatoolkit=10.1 -c pytorch

4.安装mmcv

三种方式可以选择,自行尝试哪一种可以安装成功,这里是个大坑!

(1)自动安装(不稳定不推荐)

pip install openmim
mim install mmdet

(2)手动安装(强烈推荐!!!)

pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu101/torch1.8.0/index.html

PS:
       one:命令中的 cu101torch1.8.0 为需要注意的地方,不是按照上述步骤的话自行更改,这里是1.8.0而不是1.8.1的原因官方有说明;

       two:具体的 cuda 和 pytorch 版本对应和安装命令可以在https://mmcv.readthedocs.io/en/latest/get_started/installation.html中查看;

       three:这里指定1.3.8版本是因为一开始我第二种方法没有成功,然后用的第三种方法从源码安装,结果装的 mmcv 是最新版本1.4.6,然后代码运行是会报错,提示:

AssertionError: MMCV==1.4.6 is used but incompatible. Please install mmcv>=1.2.4, <=1.4.0.

       所以mmcv的版本应该在1.2.4到1.4.0之间选择!

(3)从源码安装

使用命令:

git clone https://github.com/open-mmlab/mmcv.git

或者在该 github 仓库将 code 打包下载然后解压,然后在 Anaconda Powershell Prompt 中使用 cd 命令切换到该根目录下,然后:

#build
python setup.py build_ext
# install
python setup.py develop

5.安装mmdet

继续使用 cd 命令将路径切换到第一步准备的 Swin-Transformer-Object-Detection 工程文件路径下,比如我的就是:

cd E:/
cd Swin-Transformer-Object-Detection

继续键入:

pip install -r requirements.txt -i https://pypi.douban.com/simple/
pip install -r requirements/docs.txt -i https://pypi.douban.com/simple/
python setup.py develop

6.安装apex

如果训练 swin 的话还需要用到一个叫 apex 的东西,安装步骤同样参考上一篇基于win10复现swin-transformer图像分类源码中的第5步安装。

文字步骤如下,详细见原博客:

       在 github 下载源码https://github.com/NVIDIA/apex 到本地文件夹(安装步骤第一步网盘中也有相关文件资源);
       在命令行中切换到 apex 所在文件夹;
       输入命令: python setup.py install 等待安装完成即可。

7.测试

在 Pycharm 中打开 Swin-Transformer-Object-Detection 工程文件,将提示缺少的一些包给装上(第5步应该装的差不多了),然后新建 demo.py 文件,将以下代码复制进去:

from mmdet.apis import init_detector, inference_detector, show_result_pyplot
import cv2

# configs的路径可以按照这个寻找
config_file = 'E:/Swin-Transformer-Object-Detection/configs/swin/cascade_mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_giou_4conv1f_adamw_3x_coco.py'

# 这个就是权重文件,也就是第一步环境准备中新建的checkpoints文件夹
checkpoint_file = 'E:/Swin-Transformer-Object-Detection/checkpoints/cascade_mask_rcnn_swin_tiny_patch4_window7.pth'
device = 'cuda:0'
# init a detector
model = init_detector(config_file, checkpoint_file, device=device)
# inference the demo image

# 测试图片在官方工程文件的demo文件夹下
image = 'E:/Swin-Transformer-Object-Detection/demo/demo.jpg'

result = inference_detector(model, image)

show_result_pyplot(model, image, result, score_thr=0.3)

没有问题的话运行结果如下:

在这里插入图片描述


~~怎么训练还没有看,工程文件实在是太多太复杂了,一点也不像分类的那样明了,有问题后续再更新!~~

Swin-transformer纯目标检测训练自己的数据集


  • 9
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 26
    评论
Transformer发轫于NLP(自然语言处理),并跨界应用到CV(计算机视觉)领域。 Swin Transformer是基于Transformer的计算机视觉骨干网,在图像分类、目标检测、实例分割、语义分割等多项下游CV应用中取得了SOTA的性能。该项工作也获得了ICCV 2021顶会最佳论文奖。 本课程将手把手地教大家使用labelImg标注和使用Swin Transformer训练自己的数据集。  本课程将介绍Transformer及在CV领域的应用、Swin Transformer的原理。 课程以多目标检测(足球和梅西同时检测)为例进行Swin Transformer实战演示。 课程在Windows和Ubuntu系统上分别做项目演示。包括:安装软件环境、安装Pytorch、安装Swin-Transformer-Object-Detection、标注自己的数据集、准备自己的数据集(自动划分训练集和验证集)、数据集格式转换(Python脚本完成)、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计、日志分析。  相关课程: 《Transformer原理与代码精讲(PyTorch)》https://edu.csdn.net/course/detail/36697《Transformer原理与代码精讲(TensorFlow)》https://edu.csdn.net/course/detail/36699《ViT(Vision Transformer)原理与代码精讲》https://edu.csdn.net/course/detail/36719《DETR原理与代码精讲》https://edu.csdn.net/course/detail/36768《Swin Transformer实战目标检测:训练自己的数据集》https://edu.csdn.net/course/detail/36585《Swin Transformer实战实例分割:训练自己的数据集》https://edu.csdn.net/course/detail/36586《Swin Transformer原理与代码精讲》 https://download.csdn.net/course/detail/37045
Swin-Transformer目标检测的代码可以在GitHub上找到。这是一个官方实现的项目,地址是GitHub - SwinTransformer/Swin-Transformer-Object-Detection。\[1\]Swin-Transformer是一种新型的Transformer模型,它采用了分层的方式来处理图像信息,从而减少了模型的计算量,同时提高了模型的精度。\[2\]在目标检测方面,可以使用Swin-Transformer来设计小目标检测头,以提高YOLOv5在小目标检测方面的能力。\[2\]具体的代码实现包括环境搭建、预训练模型的准备、数据集的准备、代码的修改、训练命令等步骤。\[3\]你可以根据这些步骤来进行Swin-Transformer目标检测的代码实现。 #### 引用[.reference_title] - *1* [Swin Transformer 代码学习笔记(目标检测)](https://blog.csdn.net/athrunsunny/article/details/124936790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Swin-Transformer目标检测头在YOLOv5上的优化](https://blog.csdn.net/wellcoder/article/details/130908136)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Swin-Transformer目标检测](https://blog.csdn.net/weixin_45977690/article/details/127127228)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值