AI项目十:Swin Transformer目标检测环境搭建

news2024/10/6 18:29:21

若该文为原创文章,转载请注明原文出处。

Swin Transformer是做什么的这里不做介绍,主要是记录下学习的全过程,Swin Transformer在搭建和训练的过程中,折腾了很久,主要是在折腾环境。

一、AutoDL租用实例

个人没有GPU电脑,使用的是租的,平台是AutoDL。

GPU使的是RTX 2080Ti,一小时0.88元,整个过程大概3-5小时,很划算。

实例创建过程自行了解,创建后打开,界面如下:

二、环境搭建

1、创建虚拟机

conda create -n swin_env python=3.8

2、激活虚拟机

​​​​​​​conda activate swin_env

激活出错:IMPORTANT: You may need to close and restart your shell after running 'conda init'.

重新进入虚拟环境

source activate

3、CUDA和pytorch版本安装

根据文档,先查出对应版本

python -c 'import torch;print(torch.__version__);print(torch.version.cuda)'

根据CUDA版本安装pytorch,对应版本查询Previous PyTorch Versions | PyTorch

根据CUDA版本对应安装,我安装的是下面版本,安装过程比较久,耐心等待:

conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch

4、安装mmcv

git clone -b v1.4.0 https://github.com/open-mmlab/mmcv.git.
cd mmcv
MMCV_WITH_OPS=1 pip install -e .
pip list

5、安装mmdetection

git clone -b v2.25.0 https://github.com/open-mmlab/mmdetection.git
cd mmdetection
pip install -r requirements/build.txt
pip install -v -e . # or "python setup.py

根据测试,在运行时会出错,

这个原因是cython版本问题,所以需要降级:

pip install cython==0.29.36

降级后重新安装,运行正常。

6、安装apex

安装apex是个坑,在后面测试时,出错了AttributeError: module ‘torch.distributed’ has no attribute ‘_all_gather_base’这个错误,这个是错误是apex安装不对造成的,所以要安装对。

git clone https://github.com/NVIDIA/apex.git
cd apex
git checkout f3a960f80244cf9e80558ab30f7f7e8cbf03c0a0
python setup.py install
pip install -v --no-cache-dir ./

7、Swin-Transformer-Object-Detection下载

git clone https://github.com/SwinTransformer/Swin-Transformer-ObjectDetection.git
cd Swin-Transformer-Object-Detection
python setup.py develop 

安装一切都比较正常,接下来就是测试,测试需要预训练权重文件,所以先下载权重文件。

8、下载预训练权重文件

下载mask_rcnn_swin_tiny_patch4_window7_1x.pth权重文件,并放置在Swin-Transformer-ObjectDetection文件夹下

百度网盘下载链接:

链接:https://pan.baidu.com/s/1cO3ln3fokP3cazveC-bjuw 
提取码:uzzk 

下载后放在Swin-Transformer-Object-Detection目录下。

9、测试

直接在Swin-Transformer-Object-Detection目录下执行下面命令:

python demo/image_demo.py demo/demo.jpg configs/swin/mask_rcnn_swin_tiny_patch4_window7_mstrain_480-800_adamw_1x_coco.py mask_rcnn_swin_tiny_patch4_window7_1x.pth

在运行过程中,有报错:

1、报错 :AttributeError: module ‘torch.distributed’ has no attribute ‘_all_gather_base’

如果是根据上面的安装apex应该是不会出错的。

2、报错 :UserWarning: "ImageToTensor" pipeline is replaced by "DefaultFormatBundle" for batch inference. It is recommended to manually replace it in the test data pipeline in your config file.

处理:参考安装mmdetection进行测试不出图片和报错记录_"userwarning: "imagetotensor" pipeline is replac-CSDN博客

提示我们需要将pipline中的“ImgeToTensor”换成“DefaultFormatBundle”,文件夹指引configs——>base——>datasets——>coco_detection.py,按ctrl+F进行搜索“test_pipeline”,将transforms下的“ImageToTensor”改为“DefaultFormatBundle”,然后删除后面的 keys=[‘img’]。

这里有个需要注意的,使用的是ubuntu虚拟机,所以无法显示,所以修改了下代码,把结果保存下来。

# demo/image_demo.py

from argparse import ArgumentParser

from mmdet.apis import inference_detector, init_detector, show_result_pyplot


def main():
    parser = ArgumentParser()
    parser.add_argument('img', help='Image file')
    parser.add_argument('config', help='Config file')
    parser.add_argument('checkpoint', help='Checkpoint file')
    parser.add_argument(
        '--device', default='cuda:0', help='Device used for inference')
    parser.add_argument(
        '--score-thr', type=float, default=0.3, help='bbox score threshold')
    args = parser.parse_args()

    # build the model from a config file and a checkpoint file
    model = init_detector(args.config, args.checkpoint, device=args.device)
    # test a single image
    result = inference_detector(model, args.img)
    # show the results
    #show_result_pyplot(model, args.img, result, score_thr=args.score_thr)
    model.show_result(args.img, result, out_file='result.jpg')

if __name__ == '__main__':
    main()

运行后,有保存成result.jpg图片。

到此,环境搭建完成并实现了目标检测和分割。

如有侵权,或需要完整代码,请及时联系博主。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1048705.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多线程的学习中篇下

volatile 关键字 volatile 能保证内存可见性 volatile 修饰的变量, 能够保证 “内存可见性” 示例代码: 运行结果: 当输入1(1是非O)的时候,但是t1这个线程并沿有结束循环, 同时可以看到,t2这个线程已经执行完了,而t1线程还在继续循环. 这个情况,就叫做内存可见性问题 ~~ 这…

初识Java 11-2 函数式编程

目录 高阶函数 闭包 函数组合 柯里化和部分求值 本笔记参考自: 《On Java 中文版》 高阶函数 ||| 高阶函数的定义:一个能接受函数作为参数或能把函数当返回值的函数。 把函数当返回值的情况: import java.util.function.Function;inter…

26551-2011 畜牧机械 粗饲料切碎机

声明 本文是学习GB-T 26551-2011 畜牧机械 粗饲料切碎机. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了粗饲料切碎机的产品型号、技术要求、试验方法、检验规则、标志、包装、运输与贮存。 本标准适用于加工农作物秸秆等粗饲料…

Python接口自动化之unittest单元测试

以下主要介绍unittest特性、运行流程及实际案例。 一、单元测试三连问 1、什么是单元测试? 按照阶段来分,一般就是单元测试,集成测试,系统测试,验收测试。单元测试是对单个模块、单个类或者单个函数进行测试。 将…

迅为龙芯2K1000开发板通过汇编控制GPIO

上一小节,我们使用了 C 语言控制了 gpio,这一小节我们来看一下如何使用汇编来控制 gpio 呢?有的 同学可能会有疑问了,既然我们可以使用 C 语言来控制 gpio,为什么我们还要使用更底层的汇编语言呢, 如果我…

【Read View】Read View如何在MVCC里面工作、事务的隔离级别如何实现等重点知识汇总

目录 Read View 在 MVCC 里如何工作的 隔离级别如何实现的呢 Read View 在 MVCC 里如何工作的 ReadView用于管理事务之间的数据一致性,特别是在并发访问数据库时。 那 Read View 到底是个什么东西? Read View 有四个重要的字段: m_ids &…

Python函数:chr()和ord()

两个函数是基于Unicode编码表进行进行字符与字码之间的转换。 chr()函数是通过字码转换成字符: 如图,坐标(1,4e10)丑 使用chr需要线将坐标相加得到:4e11 chr默认传入10进制的字码. 如图是各进制的字码。 也可以传入其他进制,不过需要在前面传入的参数最前…

canvas+javascript实现点击更改图片中指定部位的颜色(将近似的颜色值变更为自定义的颜色)

原图&#xff1a; 完整代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" co…

前端架构师之02_ES6_高级

1 类和继承 1.1 class类 JavaScript 语言中&#xff0c;生成实例对象的传统方法是通过构造函数。 // ES5 创建对象 // 创建一个类&#xff0c;用户名 密码 function User(name,pass){// 添加属性this.name name;this.pass pass; } // 用 原型 添加方法 User.prototype.sho…

跨境电商如何利用海外代理IP,提高竞争力?

随着经济全球化的深度发展&#xff0c;跨境电商已经成为外贸发展的主要赛道&#xff0c;跨境电商王者般的新业态&#xff0c;近年来&#xff0c;我国跨境电商发展得到政府的大力扶持。而代理IP也逐渐成为助力跨境业务的强大工具之一。可以为我们跨境电商种出现的如地域限制、安…

中秋国庆,双节同乐

中秋国庆双节将至&#xff0c;送上最诚挚的祝福&#xff1a; 愿你的中秋月圆&#xff0c;家庭团圆更圆满&#xff0c;幸福围绕&#xff0c;笑声不断。 愿国庆日祖国繁荣昌盛&#xff0c;人民幸福安康&#xff0c;和谐美好永恒。 让我们共同庆祝这个特殊的时刻&#xff0c;祝福您…

MDETR:端到端多模态理解的调制检测

代码&#xff1a;https://github.com/ashkamath/mdetr 摘要 多模态推理系统依靠预训练的目标检测器从图像中提取感兴趣的区域。然而&#xff0c;这个关键模块通常用作黑匣子&#xff0c;独立于下游任务进行训练&#xff0c;并使用固定的对象和属性词汇表。这使得此类系统难以捕…

【数据仓库设计基础(三)】数据集市

文章目录 一. 数据集市的概念二. 数据集市与数据仓库的区别三. 数据集市设计 一. 数据集市的概念 数据集市是数据仓库的一种简单形式&#xff0c;通常由组织内的业务部门自己建立和控制。一个数据集市面向单一主题域&#xff0c;如销售、财务、市场等。 数据集市的数据源可以是…

Lucene-MergePolicy详解

简介 该文章基于业务需求背景&#xff0c;因场景需求进行参数调优&#xff0c;下文会尽可能针对段合并策略&#xff08;SegmentMergePolicy&#xff09;的全参数进行说明。 主要介绍TieredMergePolicy&#xff0c;它是Lucene4以后的默认段的合并策略&#xff0c;之前采用的合并…

网络时钟程序Net_Clock

网络时钟程序Net_Clock 小程序的源代码,着重编程思想,巧妙的构思架构... 主要功能:简单的Socket网络套接从时间服务器获取时间,timeSetEvent精度定时器,颜色方案,自绘标题栏,自绘菜单...等等 VS2015平台的精度时钟程序,北京,美东,美中三个时区日期时间显示,多种颜色方案显示…

深入理解常见应用级算法思想

1 概论 1.1 概念 1.1.1 数据结构 1&#xff09;概述 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下&#xff0c;精心选择的数据结构可以带来更高的运行或者存储效率。 2&#xff09;划分 从关注的维度…

洗文案神器,不同洗文案神器怎么选择

在数字时代&#xff0c;文字的重要性变得愈发突出&#xff0c;不论是在商业领域的广告宣传、自媒体的文章创作&#xff0c;还是学术界的研究论文&#xff0c;文字都是传递信息和思想的关键媒介。然而&#xff0c;创作高质量的文案并非易事&#xff0c;这就是为什么越来越多的人…

FFmpeg安装教程

一、下载安装 打开官方网站&#xff0c;ffmpeg管网地址&#xff0c;点击左侧download或页面中的绿色Download按钮。 选择要下载的平台&#xff0c;windows版本选择红框第一个&#xff0c;第二个是github平台 点击左侧release builds&#xff0c;选择要下载的软件版本&#x…

【STM32】sct 分散加载文件的格式与应用

简介 当工程按默认配置构建时&#xff0c;MDK 会根据我们选择的芯片型号&#xff0c;获知芯片的内部FLASH 及内部 SRAM 存储器概况&#xff0c;自动生成一个以工程名命名的后缀为*.sct 的分散加载文件(Linker Control File&#xff0c;scatter loading)&#xff0c;链接器根据…

巨人互动|Google海外户Google SEO工作为何要把控细节

Google SEO&#xff08;搜索引擎优化&#xff09;是一项为了提高网站在Google搜索结果中的排名和可见性的策略和技术。在进行SEO工作时&#xff0c;把控细节非常重要&#xff0c;本文小编讲讲关于为何要把控细节的原因。 巨人互动|Google海外户&Google内容定位介绍&#xf…