目标检测 DETR(2020)

news2024/9/29 18:36:04

文章目录

  • 前言
  • backbone
  • 位置编码(二维)
  • encoder、decoder
  • prediction heads
  • 损失函数计算

前言

DETR全称是Detection Transformer,是首个基于Transformer的端到端目标检测网络,最大的特点就是不需要预定义的先验anchor,也不需要NMS的后处理策略(少了这两部分可以少很多的超参数和计算),用集合的思想回归出100个query之后再用匈牙利算法二分图匹配的方式得到最终的正样本和负样本,第一个实现了端到端的目标检测。

DETR的总体框架如下,可以分为三个部分,分别是:用于抽取图像的特征表示的backbone、使用了transformer的编码器解码器以及prediction heads:FFN,前馈神经网络给出最后的类别和Box信息的预测。

首先通过backbone提取图像的特征,随后将特征信息加上位置编码送入encoder,这里的encoder进行特征序列构造。在decoder中会首先初始化100个向量(object queries),这些向量通不断学习encoder构造的特征序列,再经过prediction heads得到类别和边界框的预测,最后并通过二分匹配计算损失来优化网络。
在这里插入图片描述
在这里插入图片描述

backbone

主干特征提取网络采用resnet50,假设输入为[batch_size, 3, 800, 1066],经过resn et50,此时输出为[batch_size, 2048, 25, 34],输出通道为变为2048,图像高和宽都变为原图像高和宽的 1/32,再经过 1 × 1 卷积后进行通道降维,得到的输出为[batch_size, 256, 25, 34],最后经过patch embedding将每个像素(每个patch块)映射为向量形式,得到[850,batch_size, 256]作为encoder的输入之一。

位置编码(二维)

其实就是原Transform的position embedding的思想,经过backbone得到的特征图的shape为[850,batch_size, 256],为每一个像素点的对应的feature上的每个位置都添加上位置信息。

正余弦位置编码:
在这里插入图片描述

pos代表不同的patch图片一维向量,i代表一维向量的第i个位置,d_model代表一维向量的总长度(即通道数),采用二维位置编码,通道数的前128维表示x的坐标信息,后128维表示y的坐标信息。
在这里插入图片描述
这样得到每个patch的位置编码Position Encoding,shape与特征图的一样为[850,batch_size, 256] ,与input embedding相加得到encoder的输入。

encoder、decoder

编码器结构基本与transformer相同,input embedding+positional encoding操作转换的图像序列作为transformer encoder的输入,经过encoder得到提取出来的特征图像序列。

在decoder上,解码器使用到一个非常重要的可学习模块,即下图呈现的object queries,使用一个可学习的object query对加强后的有效特征层进行查询,Decoder的输入分为三部分:Encoder的输出Object queries(query_embed)、queries(tgt)。tgt是一个大小为100*256、初始全为0的参数,仅第一层Decoder输入为0,之后几层Decoder的输入是上一层Decoder的输出;object queries是query_embed,是模型的一个可学习编码信息参数,由网络迭代学习到的一个参数),是用nn.Embedding初始化了100个可学习的( x , y ) ,维度是[2,100] ,然后经过位置编码将位置信息搞成256维(实际是[256,100]),其中前128+128维分别表示x,y的坐标信息;100表示模型最多预测出100个目标框,256与图像特征通道数一致可保证注意力机制的正常运算。Decoder对应Object queries的输出经Prediction heads后将用于计算损失、预测框坐标、预测类别。

object queries是预定义的目标查询的个数,代码中默认为100。它的意义是:根据Encoder编码的特征,Decoder将100个查询转化成100个目标,即最终预测这100个目标。最终预测得到的shape应该为[N, 100, C],N为Batch Num,100个目标,C为预测的100个目标的类别数+1(背景类)以及bbox位置(4个值),再经过prediction heads得到类别和边界框的预测。
在这里插入图片描述
在这里插入图片描述

prediction heads

prediction heads是DETR的分类器与回归器,其实就是对decoder提取出来的100个目标进行FFN操作,FFN采用全连接,经过FFN分别得到种类和边界框参数,将100个预测结构object predictions和真实框ground truth box之间通过匈牙利算法进行二分匹配,一个真实框只匹配一个预测结果,其它的预测结果作为背景进行拟合。最后通过反向传播来优化模型参数。
在这里插入图片描述
匈牙利算法

匈牙利算法是用于解决二分图匹配的问题:如果标注03

真实框有两个,就从100个候选框里面选择和真实框最接近的两个作为预测框,并且是一一对应的关系。匹配算法的工作是去找到最适合预测num_gt个真实框的num_gt个预测结果。
在这里插入图片描述

损失函数计算

完成预测结果和真实框的匹配后,计算预测框和标注框的损失来反向传播来优化模型参数。
在这里插入图片描述
DETR的损失由两个部分组成:

  1. 分类损失部分:衡量预测类别与真实类别之间的差距。DETR使用交叉熵损失(Cross-Entropy Loss)来计算分类误差。

  2. 回归损失部分:衡量预测边界框与真实边界框之间的差距。DETR使用GIoU损失和L1损失的组合。
    在这里插入图片描述

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

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

相关文章

项目没亮点?那就来学下pk功能设计吧

先赞后看,南哥助你Java进阶一大半 麻省理工学院开源的Redis adapter适配器,可以将事件广播到多个单独的 socket.io 服务器节点。这一点和下文精彩的内容相关。 我是南哥,一个Java学习与进阶的领路人。 相信对你通关面试、拿下Offer进入心心念…

湖州市自闭症寄宿学校:个性化教育培养孩子潜能

在湖州市,自闭症寄宿学校正积极探索个性化教育的道路,致力于为自闭症儿童提供最适合他们成长与发展的教育环境。这一理念不仅在当地得到了实践,更在全国范围内产生了深远的影响。今天,我们将目光投向广州,深入了解星贝…

头戴式蓝牙耳机哪个品牌比较好?西圣、声阔、QCY热款实测性能PK

头戴式蓝牙耳机凭借其卓越的音质表现、沉浸式的听音体验以及出色的降噪功能,成为了众多音乐爱好者和通勤人士的首选,随着技术的不断进步,西圣、声阔、QCY等知名品牌纷纷推出了各具魅力的头戴式蓝牙耳机产品,面对它们家的耳机&…

十进制与ip地址转换公式(EXCEL公式)

1、十进制转为ip地址公式 TEXT(INT(C2/16777216),“0”)&“.”&TEXT(INT((C2-INT(C2/16777216)*16777216)/65536),“0”)&“.”&TEXT(INT((C2-INT(C2/16777216)*16777216-INT((C2-INT(C2/16777216)*16777216)/65536)*65536)/256),“0”)&“.”&TEXT(MO…

城市空间设计对居民生活质量的影响:构建宜居城市的蓝图

在快节奏的现代生活中,城市不仅是经济活动的中心,更是人们生活、工作、休闲的综合载体。本文旨在深入探讨城市空间设计如何通过科学规划、人性化考量以及生态融合,为居民打造更加宜居、和谐的生活环境。 1. 促进社区互动与归属感 城市空间设…

揭秘FlashAttention:提升注意力计算的速度与内存效率

论文题目:FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 论文地址:https://arxiv.org/pdf/2205.14135 今天分享一篇论文《FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness》,…

The First项目报告:解读跨链互操作性平台Wormhole

在加密领域,随着公链种类越来越丰富,彼此之间的相对独立,犹如一座座孤悬海外的孤岛,不利于自身生态的发展,因此从资产跨链开始,越来越多的跨链技术被研发出来,多链成为当前区块链的主流概念&…

2024.9.26C++作业

1. 什么是虚函数,什么是纯虚函数? 1.虚函数在基类中声明,使用virtual关键字修饰成员函数,并且允许在派生类中重写。 2.在运行时,允许基类指针或者引用调用这个函数时,根据实际对象类型调用派生类&#xff…

安卓主板_MTK4G/5G音视频记录仪整机及方案定制

音视频记录仪方案,采用联发科MT6877平台八核2* A78 6* A55主频高达2.4GHz, 具有高能低耗特性,搭载Android 12.0智能操作系统,可选4GB32GB/6GB128GB内存,运行流畅。主板集成NFC、双摄像头、防抖以及多种无线数据连接,支…

YOLOv8改进,YOLOv8改进损失函数采用Powerful-IoU(2024年最新IOU),助力涨点

摘要 边界框回归(BBR)是目标检测中的核心任务之一,BBR损失函数显著影响其性能。然而,观察到现有基于IoU的损失函数存在不合理的惩罚因子,导致回归过程中锚框扩展,并显著减缓收敛速度。为了解决这个问题,深入分析了锚框扩展的原因。针对这个问题,提出了一种新的Powerfu…

【C++】类和对象<上>(类的定义,类域,实例化,this指针)

目录 一. 类的定义 【对比c】结构体和类的区别 1. 称呼:变量 or 对象? 2. 类型: 3. 访问限定: 4. c和c结构体使用 5. 相同点: 二. 类域 三. 实例化 1. 1对N 2. 计算大小只考虑成员变量 3. 到此一游 四. …

【深度学习】04-Cnn卷积神经网络-01- 卷积神经网络概述/卷积层/池化层/分类案例精讲

卷积神经网络(CNN,Convolutional Neural Network)是专门用于处理图像数据的神经网络。 图像的基本概念 图像其实是数组: ndarray -> [高,宽,3通道] --> uint8 每个值取值范围0-255,那么…

高空抛物AI检测算法:精准防控,技术革新守护城市安全

近年来,随着城市化进程的加速,高楼大厦如雨后春笋般涌现,但随之而来的高空抛物问题却成为城市管理的一大难题。高空抛物不仅严重威胁行人的安全,还可能引发法律纠纷和社会问题。为了有效预防和减少高空抛物事件的发生,…

pnpm依赖安装失败解决|pnpm项目从一个文件夹复制到另一个文件夹运行失败问题解决-以vbenAdmin项目为例

1 前言 最近在使用vben admin项目迁移时,从一个文件夹复制到另一个文件夹运行不起来,排查了一天,终于把问题排查出来了,特地记录一下,便于自己看也便于大家看。 使用项目安装包版本: v2.11.5 https://gi…

【产教融合】新媒体产业园携手高校,共育数字创意人才

在新媒体浪潮的推动下,数字创意产业正以前所未有的速度蓬勃发展。为了应对这一趋势,新媒体产业园积极响应“产教融合”的号召,携手国内多所顶尖高校,共同开启数字创意人才培养的新篇章。 树莓集团一直以来都在新媒体领域有着卓越的…

uni-app如果自定义tabbar实现底部样式有凸起效果,背景带圆角

想要实现的效果、 大部分可以参考这一篇文章 小程序弹出框是没办法遮挡住底部的tabbar的&#xff0c;解决的办法是使用自定义tabbar。。uni-app小程序如何自定义tabbar-CSDN博客 我们只要改下index.wxml和index. wxs的代码就行了 <view class"tab-bar"><b…

stm32 bootloader跳转程序设计

文章目录 1、bootloader跳转程序设计&#xff08;1&#xff09;跳转程序&#xff08;2&#xff09;、app程序中需要注意<1>、在keil中ROM起始地址和分配的空间大小<2>、在system_stm32f4xx.c中设置VECT_TAB_OFFSET为需要偏移的地址<3>、main函数中使能中断 总…

浅析 Keil 中的 sct 文件

目录 一、程序的存储与运行1、存储2、加载、运行 二、sct 分散加载文件1、简介2、文件格式2.1 加载域2.2 执行域2.3 输入节区描述 3、配置 sct 文件 一、程序的存储与运行 1、存储 程序编译后&#xff0c;应用程序中所有具有同一性质的数据(包括代码)被归到一个域&#xff0c…

Java必修课——Spring框架

目录 一、Spring框架概述二、IOC概念和原理2.1、什么是IOC2.2、IOC接口 三、深入理解Java基础中的集合框架3.1、Collection3.2、Map3.3、集合工具类 四、练习写一个SpringMVC框架1、介绍2、程序实践3、总结 五、Java开发者必备10大数据工具和框架 一、Spring框架概述 Spring是…

从追随者到领跑者:suker书客如何粉碎技术障碍,成就行业传奇

护眼灯从小众需求逐渐走向了大众消费&#xff0c;一度引来许多品牌的相继入场&#xff0c;以吸顶灯、吊灯、台灯和落地灯等各大护眼品类为代表&#xff0c;均在悄然替代普通的台灯&#xff0c;这同时也揭示了关于护眼灯的发展潜力。 一些企业看到护眼灯市场前景后&#xff0c;…