DETRs Beat YOLOs on Real-time Object Detection

2023-11-09


DETRs在实时目标检测中击败YOLO

问题:DETR的高计算成本,实时检测效果有待提高

解决:提出了一个实时的目标检测器

具体来说,设计了一个高效的混合编码器,通过解耦尺度内的交互和跨尺度融合来有效处理多尺度特征,并提出IoU感知查询选择,通过提供更高质量的初始对象查询编码器,进一步提高性能。

了解的知识:

NMS是目标检测后处理算法,用于消除检测器输出的重叠预测框。操作中,低于阈值的框直接过滤掉,当两个预测框的LoU超过阈值时,得分较低的预测框被舍弃,迭代执行这一过程,直到所以类别的盒子被处理完毕。因此NML的执行时间主要取决于预测框个数和两个阈值超参数。

1、模型架构

在这里插入图片描述
rt - detr概述。我们首先利用主干{S3, S4, S5}的最后三个阶段的特性作为编码器的输入。高效的混合编码器通过尺度内特征交互(AIFI)和跨尺度特征融合模块(CCFM)将多尺度特征转化为图像特征序列。iou感知的查询选择被用来选择固定数量的图像特征作为解码器的初始目标查询。最后,带辅助预测头的解码器迭代优化目标查询,生成框和置信度评分。

1.1高效混合编码器

提高训练收敛速度&性能–>多尺度特征&可变形注意力–>减少计算量

虽然注意力机制改进降低了计算开销,但输入序列长度的增加—》编码器计算量增大,阻碍了DETR的实时实现

高级特征是从具有丰富语义信息的低级特征中提取出来的。直观上看,多尺度特征间的交互是多余的。
在这里插入图片描述
两个模块组成,即基于注意力的尺度内特征交互模块(AIFI)和基于cnn的跨尺度特征融合模块(CCFM)。

1.1.1 尺度内特征交互模块AIFI

AIFI减少了计算冗余,该变量仅在S5上进行尺度内交互。

作者认为对语义特征更丰富的高层特征进行自注意操作,可以捕捉图像中概念实体的关系,用于后续的检测识别。同时认为低级特征与高级特征有交互重复和混淆的风险,所以认为低级特征的尺度内交互是不必要的。(ap值提高了0.4%,快了35%速度

1.1.2 跨尺度特征融合CCFM

在融合路径中插入多个卷积层组成的融合块,融合块的作用是将相邻的特征融合成一个新的特征
在这里插入图片描述
融合块包含N个RepBlocks,两条输出通过主元素添加的方式进行融合,过程如下
在这里插入图片描述
Attn是多头自注意力,reshape与flaten是逆操作

1.2IoU感知查询选择

DETR中的目标查询是一组可学习的嵌入,由解码器优化,并通过预测头映射到分类分数和边界框。然而,这些目标查询很难解释和优化,因为它们没有明确的物理意义。

但由于分类分数和位置置信度分布的不一致,部分预测盒分类分数高但与GT盒不接近,导致分类分数高、IoU分数低的预测盒被选中,而分类分数低、IoU分数高的预测盒被丢弃。这降低了检测器的性能。

为了解决这一问题,我们提出了基于IoU感知的查询选择方法,通过约束模型,在训练过程中对IoU分数高的特征产生高分类分数,对IoU分数低的特征产生低分类分数。因此,模型根据分类分数选择的前K个编码器特征对应的预测框,其分类分数和IoU分数都很高。我们重新制定探测器的优化目标如下:
在这里插入图片描述
其中:y‘和y分别表示预测和真实标记的图像,y’ = {c‘, b’}和y = {c, b}, c和b分别表示类别和边界框。我们将IoU分数引入到分类分支的目标函数中(类似于VFL[47])来实现对阳性样本分类和定位的一致性约束。

总结

问题:目前的实时检测器的推理速度被NMS延迟

为了避免NMS造成的延迟,我们设计了一个实时端到端检测器,其中包括两个关键的改进组件:可以有效地处理多尺度特征和IoU感知查询选择的混合编码器改进了对象查询的初始化。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DETRs Beat YOLOs on Real-time Object Detection 的相关文章

随机推荐

  • flask url 构建

    from flask import Flask redirect url for import time app Flask name app route def hello world return hello world app rou
  • Qt QTableWidget设置表头背景色不成功的原因

    QTableWidget没有设置背景色的函数 通过Qss样式来设置背景色 m pTable gt horizontalHeader gt setStyleSheet QHeaderView section background color
  • Java8的新特性以及使用

    1 通过10个示例来初步认识Java8中的lambda表达式 我个人对Java 8发布非常激动 尤其是lambda表达式和流API 越来越多的了解它们 我能写出更干净的代码 虽然一开始并不是这样 第一次看到用lambda表达式写出来的Jav
  • 缺陷检测方法 halcon

    文章预览 前言 1 缺陷检测分类 1 1 标准缺陷检测 1 2 非标缺陷检测 针对行业特性 2 行业难点 3 常规缺陷检测算法 Halcon 3 1 差分法 3 1 1 blob分析 差分 3 1 2 模板匹配 差分 3 1 3 两种检测方
  • 前端实现在线预览pdf、word、xls、ppt等文件

    前端实现在线预览pdf word xls ppt等文件 PDF文档在线预览功能 方式一 通过a标签href属性实现 pdf文件理论上可以在浏览器直接打开预览但是需要打开新页面 在仅仅是预览pdf文件且UI要求不高的情况下可以直接通过a标签h
  • windows 环境下安装Tomcat

    环境 windows 7 64位 java jdk 11 0 1 官网下载jdk tomcat9版本链接地址 https tomcat apache org download 90 cgi 因为我的电脑是win7 64位的 所以选择红色框出
  • jQuery九宫格跑马灯抽奖(已知结果)

    描述 写两个抽奖 等级不同 找到一个原生写法的 原作者链接如下 参考 https www cnblogs com yangqing22 p 14065754 html 略改了一下 换成了jQuery方式 优化点 在抽奖过程中 禁止重复点击抽
  • 因果推断-解决推荐系统公平性的新思路

    论文引入 近年来推荐系统公平性成为新的热点 在所有解决公平性问题的方法中 因果推断显得格外靓眼 我们以论文 Recommendations as treatments Debiasing learning and evaluation 1
  • Android.mk的使用以及常用模板

    Android mk使用 一个Android mk file首先必须定义好LOCAL PATH变量 它用于在开发树中查找源文件 在这个例子中 宏函数 my dir 由编译系统提供 用于返回当前路径 即包含Android mk file文件的
  • redis未授权访问getshell

    参考 https blog csdn net guxiaoguo article details 78913245 利用条件 linux 对方开启ssh 用到的工具 kali nmap redis 公司测试服务器 10 0 3 45 red
  • 解决当前标识(IIS APPPOOL\XXXX)没有对“C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files”...

    1 问题描述 在Windows Server2019数据中心版中搭建IIS项目 访问的时候出现如下所示的错误 当前标识 IIS APPPOOL XXXX 没有对 C Windows Microsoft NET Framework64 v4
  • 区块链入门

    区块链 区块链 区块链基础知识 区块链概念 区块链发展历史 区块链技术基础 区块链特性 区块链分类 私有链 专有链 联盟链 行业链 公有链 区块链应用领域 金融 物联网和物流 供应链 保险 公益 公共服务 数字版权 区块链核心技术 区块链技
  • uniapp用html2canvas将图片和文字部分截取 保存到本地相册

    类实现对整个或者部分页面进行截屏 效果 下载插件 引入 所有代码 效果 下载插件 官网链接 http html2canvas hertzen com 可以npm安装npm install save html2canvas或者直接去官网下载文
  • 计算机浮点数的表示与转换

    参考书籍 x86 64 Assembly Language Programming with Ubuntu
  • 2021-04-21

    python 画多列柱状图 柱状图子图 一 目的 使用matplotlib画柱状图 或在子图中画柱状图 二 方法 1 导包 import pandas as pd import numpy as np import matplotlib p
  • python multiprocessing 报错cannot pickle ‘_io.TextTOWrapper‘ object

    一 报错TypeError cannot pickle io TextTOWrapper object 在使用多进程时报错 错误信息 TypeError cannot pickle io TextTOWrapper object 1 1 原
  • c盘满了怎么办?如何快速清理内存(6个方法)

    很多用户都会问 我的电脑c盘东西太多了 c盘满了怎么办 c盘爆满 可能还会收到系统提示磁盘空间不足的警告 当出现这种情况 会导致电脑很多应用无法正常运行 运行速度也会大大降低 该如何解决这个问题 不如来看看小编精心整理的关于如何清理c盘垃圾
  • antV使用教程入门

    在移动端使用antV F2图表入门介绍 1 通过npm安装 npm install antv f2 save 成功安装完成之后 即可使用 import 或 require 进行引用 const F2 require antv f2 2 通过
  • 剑指 Offer 14- I. 剪绳子 数学法+动态规划

    剑指 Offer 14 I 剪绳子 难度 中等 题目描述 解题思路 1 数学方法 记不清在哪里好像做过这道题 在所有的分法里 每次以3为一段能得到最大的结果 比如9 分成33的时候是最大的 计算数字除以3的余数 如果余1 就和其中一个三组合
  • DETRs Beat YOLOs on Real-time Object Detection

    目录 1 模型架构 1 1高效混合编码器 1 1 1 尺度内特征交互模块AIFI 1 1 2 跨尺度特征融合CCFM 1 2IoU感知查询选择 总结 DETRs在实时目标检测中击败YOLO 问题 DETR的高计算成本 实时检测效果有待提高