基于Transformer的端到端的目标检测 | 读论文

image.png

本文正在参加 人工智能创作者扶持计划

提及到计算机视觉目标检测,我们一般会最先想到卷积神经网络(CNN),因为这算是目标检测领域的开山之作了,在很长的一段时间里人们都折服于卷积神经网络在图像处理领域的优势;再后来,随着图像领域的大神不断出现,结构简单且速度精度均有提升的目标检测网络也逐渐问世,并且版本的更迭使其应用优势越来越大,最有代表性的是YOLO,目前仍是目标检测的热门。然而,人们对于目标检测的方法仍然进行不断探索,今天就通过一篇基于Transformer目标检测方法的论文,带领大家换个角度去看待目标检测问题。

论文地址:arxiv.org/pdf/2005.12…

代码地址:github.com/facebookres…

image.png

Transformer

Transformer是第一个完全依赖于自注意力机制来计算其输入和输出的表示的转换模型。Transformer的本质上是一个 Encoder-Decoder 架构。左边的是编码器结构,右边的是解码器结构。结构示意图如下。

image.png

DETR

DETR的简介

DETRDetection Transformer,是Facebook AI的研究者提出的Transformer的视觉版本,可以用于目标检测,也可以用于全景分割。这是第一个将Transformer成功整合为检测pipeline中心构建块的目标检测框架。与之前的目标检测方法相比,DETR有效地消除了对许多手工设计的组件的需求,例如非最大抑制、Anchor生成等。

DETR的流程

  1. 通过一个CNN对输入图片抽取特征,然后将特征图降维,加上位置编码拉直输入Transformer。

  2. Transformer Encoder部分就是使得网络更好地去学习全局的特征;

  3. 使用Transformer Decoder以及Object Query从特征中学习要检测的物体;

  4. 将Object Query的结果和真值进行二分图匹配(Set-to-Set Loss),最后在匹配上的结果上计算分类Loss和位置回归Loss。

DETR的结构

image.png

DETR的网络结构如上图所示,由四个主要模块组成:backbone,编码器,解码器以及预测头。其中backbone是一个卷积网络,提取特征并将其降维到d×HWspatial positional encoding将位置信息编码到特征中,使得模型能够更好地理解物体之间的空间关系。DETR使用了两个Transformer模块,分别作为编码器和解码器。其中编码器用于处理输入特征,解码器用于处理输出特征。DETR使用了一个全连接层来进行分类。

下面具体介绍一下各个模块的作用。

backbone

DETR使用ResNet作为backbone提取图片特征,同时会使用一个1×1的卷积进行降维到d×HW。因为transformer的编码器模块只处理序列输入,所以后续还需要把CNN特征展开为一个序列。

spatial positional encoding

image.png

式中,PE为二维矩阵,大小跟输入embedding的维度一样,行表示词语,列表示词向量;pos表示词语在句子中的位置;dmodel表示词向量的维度;i表示词向量的位置。因此,上述公式表示在每个词语的词向量的偶数位置添加sin变量,奇数位置添加cos变量,从而来填满整个PE矩阵,然后concatenate送到编码器中。简要概括就是将位置信息编码到特征中,使得模型能够更好地理解物体之间的空间关系。

transformer_58">transformer

DETR使用了两个Transformer模块,分别作为编码器和解码器。其中编码器用于处理输入特征,解码器用于处理输出特征。结构图如下:

image.png

与原始Transformer的不同之处在于,DETR在每个解码器层并行解码N个对象,由于解码器也是排列不变的,N个输入嵌入必须是不同的,以产生不同的结果。这些输入嵌入是习得的位置编码,我们称之为object queries,与编码器类似,我们将它们添加到每个注意层的输入中。

N个object queries由解码器转换为output embedding。然后,它们被FFN独立解码为盒坐标和类标签,产生N个最终预测。该模型使用它们之间的成对关系对所有对象进行全局推理,同时能够使用整个图像作为上下文。

FNN

最后的 Bounding Box FFN 是由具有ReLU激活函数的3层线性层计算的。 Class FFN是由一个线性层计算的。 FFN预测框标准化中心坐标,高度和宽度,使用softmax 函数激活获得预测类标签。所以DETR使用了一个全连接层来进行分类。

二分图匹配

image.png

DETR预测了一组固定大小的 N = 100 个边界框,为了解决预测框和真实标注框匹配的问题,使用匈牙利算法进行二分图匹配,即对预测集合和真实集合的元素进行一一对应,使得匹配损失最小。

该算法实现预测值与真值之间最优的匹配,并且是一一对应,不会多个预测值匹配到同一个ground truth上。假设预测结果是100个,那么标注信息也要是100个,标注如果小于100就用无物体信息去填充。

LOSS函数

image.png

分类损失:交叉熵损失函数

检测框位置损失:L1损失和IOU损失的加权和,且Iou的计算采用了GIOU损失

DETR的优势

DETR相对于Faster-RCNN具有更简单的架构,更小的网络(参数方面),更高的吞吐量和更快的训练。此外,DETR是基于Transformer架构的,该架构自2017年以来已经“革命化”了自然语言处理。其中一个主要优点是其全局计算和完美记忆,这使得它们比RNN更适合处理长序列。

总结

这篇论文主要介绍了一种名为“DEtection TRansformer”(DETR)的新框架,它使用了一种基于集合的全局损失,通过二分图匹配强制进行唯一预测,并使用transformer编码器-解码器架构。DETR可以在挑战性的COCO物体检测数据集上展示与Faster RCNN基线相当的准确性和运行时性能。此外,DETR可以轻松地推广到以统一的方式生成全景分割。

其它

论文中还提到了其他的,比如目标检测的实现细节之类的,以及其在不同数据集上的实现效果,感兴趣的可以自己去看一下论文。

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。


http://www.niftyadmin.cn/n/5535322.html

相关文章

7-494 结构体数组实现工资数据的存放与输出(结构体)

用结构体存放下表中的数据,然后输出每人的姓名和实发工资(基本工资浮动工资-支出) 输入格式: 在每一行输入姓名,基本工资,浮动工资及支出 输出格式: 每一行输出姓名及实发工资 输入样例: 在这里给出一组输入。例…

C语言力扣刷题11——打家劫舍1——[线性动态规划]

力扣刷题11——打家劫舍1和2——[线性动态规划] 一、博客声明二、题目描述三、解题思路1、线性动态规划 a、什么是动态规划 2、思路说明 四、解题代码(附注释) 一、博客声明 找工作逃不过刷题,为了更好的督促自己学习以及理解力扣大佬们的解…

MySQL高级-SQL优化-insert优化-批量插入-手动提交事务-主键顺序插入

文章目录 1、批量插入1.1、大批量插入数据1.2、启动Linux中的mysql服务1.3、客户端连接到mysql数据库,加上参数 --local-infile1.4、查询当前会话中 local_infile 系统变量的值。1.5、开启从本地文件加载数据到服务器的功能1.6、创建表 tb_user 结构1.7、上传文件到…

一篇文章说清楚Filter(过滤器)、Interceptor(拦截器)和AOP(切面儿)

文章目录 前言一、Filter(过滤器)1.说明2.实现filterChain.doFilter() 3.order优先级4.解决跨域5.拦截返回错误信息JSON 二、Interceptor(拦截器)1.说明2.实现preHandlepostHandleafterCompletion 3.执行顺序图4.排除特定路径拦截…

第5篇 区块链的技术架构:节点、网络和数据结构

区块链技术听起来很高大上,但其实它的核心架构并不难理解。今天我们就用一些简单的例子和有趣的比喻,来聊聊区块链的技术架构:节点、网络和数据结构。 节点:区块链的“细胞” 想象一下,区块链就像是一个大型的组织&a…

球形气膜:现代娱乐场馆的最佳选择—轻空间

随着科技的发展和人们对高品质生活的追求,娱乐场馆的建设迎来了新的变革。球形气膜结构凭借其独特的优势,逐渐成为现代娱乐场馆建设的最佳选择。轻空间将介绍球形气膜的优势,并探讨其在不同应用场景中的广泛应用。 球形气膜的优势 1. 独特的建…

LabVIEW风机跑合监控系统

开发了一种基于LabVIEW的风机跑合监控系统,提高风机测试的效率和安全性。系统通过自动控制风机的启停、实时监控电流和功率数据,并具有过流保护功能,有效减少了人工操作和安全隐患,提升了工业设备测试的自动化和智能化水平。 项目…

Python——面向对象编程(类和对象)2

目录 私有属性和私有方法 01.应用场景及定义方式 02.伪私有属性和私有方法 继承 1.1继承的概念、语法和特点 1.继承的语法: 2.专业术语: 3.继承的传递性 1.2方法的重写 1.覆盖父类的方法 2.对父类方法进行扩展 关于super 1.3 父类的私有属性和…