YOLO系列目标检测算法——YOLOS

news2024/11/24 22:48:16

YOLO系列目标检测算法目录 - 文章链接

  • YOLO系列目标检测算法总结对比- 文章链接
  • YOLOv1- 文章链接
  • YOLOv2- 文章链接
  • YOLOv3- 文章链接
  • YOLOv4- 文章链接
  • Scaled-YOLOv4- 文章链接
  • YOLOv5- 文章链接
  • YOLOv6- 文章链接
  • YOLOv7- 文章链接
  • PP-YOLO- 文章链接
  • PP-YOLOv2- 文章链接
  • YOLOR- 文章链接
  • YOLOS- 文章链接
  • PP-YOLOE- 文章链接

本文总结:

  1. Transformer能否在很少了解二维空间结构的情况下,从纯seq-to-seq的角度进行二维目标级识别吗(直接从图像识别迁移到目标检测)?从这个问题出发,提出了YOLOS;
  2. YOLOS不是一个高性能的目标检测器,而是为了揭示Transformer从图像识别到目标检测的多功能性和可转移性;
  3. 使用中等规模的ImageNet-1k作为唯一的预训练数据集,并表明vanilla ViT(DeiT)可以成功地转移到执行目标检测任务,并在尽可能少的修改下产生有竞争力的COCO结果,即只看一个序列(YOLOS);
  4. 证明了二维目标检测可以通过将固定大小的非重叠图像patches序列作为输入,以纯粹的seq-to-seq的方式完成。在现有的目标检测器中,YOLOS使用了最小的归纳偏置。此外,对于YOLOS来说,在不知道精确的空间结构或几何结构的任何维度空间中执行目标检测都是可行的;
  5. 对于ViT(DeiT),发现目标检测结果对预训练方案相当敏感,检测性能远远没有达到饱和。因此,提出的YOLOS可以作为一个具有挑战性的基准任务来评估ViT(DeiT)不同的预训练策略。

深度学习知识点总结

专栏链接:
https://blog.csdn.net/qq_39707285/article/details/124005405

此专栏主要总结深度学习中的知识点,从各大数据集比赛开始,介绍历年冠军算法;同时总结深度学习中重要的知识点,包括损失函数、优化器、各种经典算法、各种算法的优化策略Bag of Freebies (BoF)等。


本章目录

  • 1. 简介
  • 2. YOLOS网络结构
  • 3. 代码
  • 4. 结论


YOLO系列目标检测算法-YOLOS

2021.6.1 YOLOS:《YOLOS:You Only Look at One Sequence: Rethinking Transformer in Vision through Object Detection》

Transformer相关知识可以参考文章《从RNN到Attention到Transformer系列-Transformer介绍及代码实现》,或者系列文章《从RNN到Attention到Transformer》。

1. 简介

  目前Transformer应用非常广泛,新提出的ViT已经将Transformer应用到了图像领域,但是基于ViT的这些架构是面向性能的,不能反映直接继承自朴素或普通Vision Transformer的特性。

  直观地说,ViT被设计用于建模长期依赖关系和全局上下文信息,而不是局部和区域级别的关系。此外,ViT缺乏像CNN那样的层次架构来处理视觉实体规模的巨大变化。基于现有证据,目前尚不清楚纯ViT是否可以将预先训练过的一般视觉表示从图像级识别转移到更复杂的二维目标检测任务中。

  为了回答这个问题,本文提出“You Only Look at One Sequence(YOLOS)”,这是一系列基于规范ViT架构的目标检测模型,具有最少的修改和诱导偏差。从ViT到YOLOS检测器的变化很简单:

  1. YOLOS在ViT中删除[CLS]token,并向输入序列中添加100个可学习的[DET]token,用于目标检测;
  2. YOLOS取代图像分类loss为二分图最大匹配(bipartite matching)loss,去执行目标检测后预测方式,这可以避免重新解释输出ViT序列到二维特征图,以及防止在标签分配期间手动注入目标二维空间结构的启发式和先验知识。

  YOLOS直接继承自ViT,并不是被设计成另一种高性能的目标检测器,而是揭示了Transformer从图像识别到目标检测的多功能性和可转移性。

2. YOLOS网络结构

  在模型设计中,YOLOS严格遵循原始的ViT架构,并对目标检测进行了优化。YOLOS可以很容易地适应于NLP和计算机视觉中的各种Transformer变形。这种有意简单的设置不是为了更好的检测性能而设计的,而是为了尽可能准确地揭示目标检测中Transformer家族的特征。

  网络结构的总体结构如图1所示,从ViT到YOLOS检测器的变化很简单,具体如下:
在这里插入图片描述
图中"Pat-Tok"指的是patch token,是一个拉平的图像patch的编码;"Det-Tok"指的是[DET]token,这是一个可学习的目标检测预测结果的编码向量;"PE"指的是位置编码。在训练时,YOLOS输出100个[DET]token和GT之间产生的最优二分图最大匹配;预测推理时,YOLOS直接并行输出最终的预测结果。

  1. YOLOS删除了用于图像分类的[CLS]token,并将100个随机初始化的[DET]token附加到输入patch的嵌入序列中,用于目标检测;
  2. 在训练过程中,YOLOS用二分图最大匹配(bipartite matching)loss代替ViT中的图像分类loss,按照Carion等人《End-to-end object detection with transformers》的集合预测方式进行目标检测。

Detection Token
  有目的地选择随机初始化的[DET]token作为目标表示的代理,以避免二维结构的归纳偏差和关于在标签分配过程中注入的任务的先验知识。当对COCO进行微调时,对于每一个正向传递,建立了由[DET]tokens生成的预测与GT真实目标之间的最优二分图最大匹配。此过程与标签分配起着相同的作用,但却不知道输入的二维结构,YOLOS不需要将ViT的输出序列重新解释为2D特征映射以进行标签分配。理论上,YOLOS在不知道确切的空间结构和几何形状的情况下执行任何维度目标检测都是可行的,只要每次传递的输入总是以相同的方式flatten为一个序列。

以更高的分辨率进行微调
  在COCO上进行微调时,除了用于分类和边界框回归的MLP头以及随机初始化的一百个[DET]token外,所有参数都是从ImageNet-1k的预训练权重中初始化的。分类和边界框回归头都是由一个有两个隐藏层的MLP来实现的,使用单独的参数。在微调过程中,图像的分辨率比训练前要高得多,保持patch大小相同(16×16),从而得到更大的有效序列长度。虽然ViT可以处理任意的序列长度,但位置嵌入需要适应较长的输入序列。使用对预先训练好的位置嵌入进行二维插值。

Inductive Bias

  Inductive Bias指的是归纳偏置,让算法优先某种解决方案,这种偏好是独立于观测的数据的。常见的归纳偏置,包括:贝叶斯算法中的先验分布、使用某些正则项来惩罚模型、设计某种特殊的网络结构等。好的归纳偏置,会提升算法搜索解的效率(同时不会怎么降低性能),而不好的归纳偏置则会让算法陷入次优解,因为它对算法带来了太强的限制。全连接是假设所有的单元都可能会有联系,卷积则是假设数据的特征具有局部性和平移不变性,循环神经网络则是假设数据具有序列相关性和时序不变性,而图神经网络则是假设节点的特征的聚合方式是一致的。总之,网络的结构本身就包含了设计者的假设和偏好,这就是归纳偏置。 该自然段归纳偏置的介绍引用自url。

  本文设计的YOLOS,以实现最小的额外归纳偏置。ViT固有的纳偏置来自于网络干部分的patch提取,以及位置嵌入的分辨率调整。除此之外,YOLOS在ViT的基础上增加了非退化(例如3×3或其他非1×1)的卷积。从表征学习的角度来看,选择使用[DET]token作为最终预测的目标的代理,以避免额外的二维归纳偏置以及启发式方法。受CNN架构启发的以性能为导向的设计,如金字塔式特征层次、二维局部空间注意力以及区域性池化操作都没有应用。所有这些努力都是为了准确地揭示Transformer的多功能性和可转移性,它以纯粹的seq-to-seq的方式从图像识别到物体检测,对输入的空间结构和几何结构的了解最少。

与DETR的比较
  YOLOS的设计的灵感来自于DETR:YOLOS使用[DET]token作为目标表示的代理,以避免对二维结构的归纳偏差和对在标签分配过程中注入的任务的先验知识,而YOLOS的优化方式与DETR类似。同时,两者之间也有一些关键的区别:

  1. DETR使用随机初始化的encoder-decoder架构,而YOLOS研究预先训练的encoder-only ViT的可移植性;
  2. DETR在图像特征和对象查询之间使用decoder-encoder attention(cross attention),并在每个解码器层进行深入监督的辅助解码损失,而YOLOS总是只查看每一层的一个序列,而没有在操作方面区分patch token和[DET]token。

3. 代码

  更新中。。。

4. 结论

  本文中探讨了在中型ImageNet-1k数据集上预训练的vanilla ViT在更具挑战性的COCO目标检测基准中的可转移性。证明了二维目标检测可以以纯粹的seq-to-seq的方式完成,并且具有最小的额外归纳偏置。在COCO上的表现还是可以的,这些初步的结果证实其是有意义的,表明Transformer对各种下游任务的可转移性和通用性。

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

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

相关文章

视频:R语言中的Stan概率编程MCMC采样的贝叶斯模型

概率编程使我们能够实现统计模型,而不必担心技术细节。这对于基于MCMC采样的贝叶斯模型特别有用。 最近我们被客户要求撰写关于Stan的研究报告,包括一些图形和统计输出。 R语言中RStan贝叶斯层次模型分析示例stan简介 Stan是用于贝叶斯推理的C 库。它…

十、Docker 复杂安装之3主3从redis集群配置

假设公司现在1-2亿条数据需要缓存,单机单台设备肯定扛不住的,这个时候就需要分布式存储,用redis如果落地呢?本期就带着大家搭建一个3主3从redis集群。 1、拉取redis6.0.8镜像 涉及命令:docker pull redis:6.0.8 实例: 2、创建6个redis容器实例 涉及命令: docker ru…

k8s远程debug

k8s远程debug 1、方案1 方案1是不行的,因为k8s的ingress走的7层协议。 1.1、应用 启动debug端口 java -agentlib:jdwptransportdt_socket,servery,suspendn,address5005 -server -Xms1024m -Xms1024m -jar /opt/app/server.jarnetstat -ntlp1.2、配置k8s的网络和域…

Qt-Web混合开发-QWebSocket作为QWebChannel通信数据传输接口(10)

Qt-Web混合开发-QWebSocket作为QWebChannel通信数据传输接口💙🍓 文章目录Qt-Web混合开发-QWebSocket作为QWebChannel通信数据传输接口💙🍓1、概述🐛🦆2、实现效果😅🙏3、实现功能&a…

m通过matlab实现遥测信道主要影响因素分析

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 遥测技术是指被测对象的状态参数进行超远距离测量,并将测量的数据通过特殊的通信方式发送给地面接收站的一种技术。整个遥测发送接收系统称为遥测系统,而发送遥测信号所通…

LaTeX教程(一)——LaTeX介绍以及导言详解

文章目录1. Latex 介绍2. LaTeX基础2.1 导言区2.2 正文区3. 导言详解3.1 设置时间、作者、日期3.2 全局设置4. 文件组织1. Latex 介绍 什么是LATEX ?LATEX 是一种格式。为免误会,初次接触这一概念的读者可以粗略地将 LATEX 理解成是对 TEX 的一层封装。…

【DELM回归预测】基于matlab松鼠算法改进深度学习极限学习机SSA-DELM数据回归预测【含Matlab源码 1904期】

⛄一、PSO-DELM简介 1 DELM的原理 在2004年,极限学习机(extreme learning machine,ELM)理论被南洋理工大学的黄广斌教授提出,ELM是一种单隐含层前馈神经网络(single-hidden layer feedforward neural network,SLFN&am…

开发社交聊天APP需要注意什么?如何快速开发聊天功能

随着互联网的发展,人们的沟通方式也在悄悄发生变化,由原来的面对面沟通,发展为网上沟通。让大家日常生活的通讯越来越方便了,各种APP层出不穷。那么,想开发一款社交聊天并进行运营,需要注意哪些方面&#x…

【推荐】产品经理需求模板,案例等文档合集15篇

产品经理的职责描述仍然分歧很多,因人、因公司而异。即使是在相对较为一致的高科技行业,不同公司中的职位描述也是很不同的。但通常认为产品经理的职责主要包括:产品经理负责调查并根据用户的需求,确定开发何种产品, 选择何种技术、商业模式等…

【Python机器学习】过拟合及其抑制方法讲解及实战(图文解释 附源码)

需要源码请点赞关注收藏后评论区留言私信~~~ 欠拟合、过拟合与泛化能力 欠拟合 最简单的线性模型,它是用一条直线来逼近各个样本点,显然力不从心,这种现象称为欠拟合。欠拟合模型是由于模型复杂度不够,训练样本集容量不够&#…

哈希表题目:环形链表

文章目录题目标题和出处难度题目描述要求示例数据范围进阶解法一思路和算法代码复杂度分析解法二思路和算法代码复杂度分析题目 标题和出处 标题:环形链表 出处:141. 环形链表 难度 2 级 题目描述 要求 给你一个链表的头结点 head\texttt{head}h…

网易云VIP音乐NCM文件转MP3,C语言版本

前言网易云的Vip音乐下载下来,格式不是mp3/flac这种通用的音乐格式,而是经过加密的ncm文件。只有用网易云的音乐App才能够打开。于是想到可不可以把.ncm文件转换成mp3或者flac文件,上google查了一下,发现有不少人已经做了这件事,但…

go : 无法将“go”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

先安装go环境 https://blog.csdn.net/csl12919/article/details/128372584?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128372584%22%2C%22source%22%3A%22csl12919%22%7Dhttps://blog.csdn.net/csl12919/article/details/1…

C案例:最小覆盖圆问题

文章目录一、提出任务 - 最小覆盖圆(一)描述(二)输入(三)输出(四)样例输入输出二、完成任务(一)编程思路(二)编写代码,实现…

魔百和M401A刷入Armbian系统EMMC

魔百和M401A刷入Armbian系统 准备工具 1. 电视盒子、U盘、键盘、显示器、HDMI线 2. armbian系统镜像包: Armbian_23.02.0_amlogic_s905l3a_bullseye_5.15.82_server_2022.12.12.img.gz 3. U盘写入工具: refus/usbWriter/balenaEtcher文件链接&#xff…

阻塞队列的使用

🎈专栏链接:多线程相关知识详解 目录 一.阻塞队列的介绍 二.使用阻塞队列/生产者消费者模型的好处 1.使用阻塞队列,有利于代码"解耦合" 2.削峰填谷 三.阻塞队列的使用 四.模拟实现阻塞队列 一.阻塞队列的介绍 1.线程是安全的 2.当进行入队操作的时候…

[附源码]计算机毕业设计Node.js吃天下美食网站(程序+LW)

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

【AI with ML】第 12 章 :TensorFlow Lite 简介

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

css浮动

浮动的顺序贴靠特性 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>浮动</title><style>.box{width: 250px;height: 100px;border: 1px solid #000;}.box .c1{width: 150px;height: 100p…

云上在野容器攻防战:“杀”不掉的挖矿木马

编者按 数字化浪潮蓬勃兴起&#xff0c;企业面临的安全挑战亦日益严峻。 腾讯安全近期将复盘2022年典型的攻击事件&#xff0c;帮助企业深入了解攻击手法和应对措施&#xff0c;完善自身安全防御体系。 本篇是第二期&#xff0c;讲述了国内某高端制造厂商遭遇云上在野容器攻…