DETR 【目标检测里程碑的任务】

paper with code - DETR

标题

End-to-End Object Detection with Transformers

  1. end-to-end 意味着去掉了NMS的操作(生成很多的预测框,nms 去掉冗余的预测框)。因为有了NMS ,所以调参,训练都会多了一道工序,都会比较复杂和麻烦,不是所有硬件都支持的。

所以一个【端到端 detr】 解决了上述的问题,把目标检测转化成了集合预测的问题。

DETR 不再出很多冗余的框,一下就让模型训练和部署变得很简单。

【全新的架构】

摘要

补一嘴。目标检测 任务 天然的就不适合 自回归的架构(GPT系列)。理解一下:检测大物体,不需要依赖检测小物体, 检测右边的物体也不需要先检测左边的物体。且自回归是顺序推理,目标检测想要的一定是并行的一起出框。

引言

之前的一些工作都是不是直接预测目标框,而是设计了一些回归任务 来生成了很多接近重复的框。

  • proposal Faster rcnn Cascade R-CNN 通过使用一系列逐级训练IoU阈值逐渐增加的检测器来解决高质量检测的问题
  • anchor RetinaNet 提出新的损失函数 focal loss
  • window centers object as points 新的物体检测方法,即将物体表示为一个点,通过关键点估计来找到物体中心点

再用nms来去除重复的框。所以需要很多的先验知识来设计NMS,如何可以好的去除这些冗余的框。DETR的目标就是消除这个鸿沟。

模型架构

训练整个流程分为以下四步:

  1. 用cnn去抽特征 。把特征拉直 送给transformer
  2. encoder的作用就是学习这些全局的信息,使用encoder的好处是:每一个像素点或者说每一个特征都和其他的特征有交互了,那么就大概可以知道哪块是哪个物体,对于同一个物体就应该只出一个框。
  3. decoder的作用生成框的输出。object query 。 query 限定了要出多少个框。query和self-attention做交互,从而得出了最后的框。默认是100。那么问题来了,这100个框 怎么得到最后的ground truth呢?

    使用了二分图匹配算法
  4. 预测的框和ground truth的框做匹配,再匹配的框里面去算目标检测的loss。

(补充知识)DETR的二分图匹配损失函数是如何工作的?

DETR的全局损失函数采用了一个称为二分图匹配的方法,通过这种方法可以实现预测与实际目标的唯一匹配。在训练过程中,DETR会推断出一个固定大小的N个预测对象集合,然后通过最优的二分图匹配算法将这些预测对象与实际目标进行匹配。在匹配完成后,会对每个对象的特定损失(如边界框损失)进行优化。这个匹配的过程类似于用于将提议框或锚点与实际目标进行匹配的启发式分配规则。不同之处在于,DETR需要在直接集预测的情况下找到一对一的匹配,而不会出现重复的匹配。实际上,在匹配成本中,对于对象和空集之间的匹配成本并不依赖于预测结果,这意味着在这种情况下,成本是一个常数。DETR的全局损失函数还考虑了类别预测项,通过使用概率而不是对数概率,使得类别预测项与边界框损失项具有可比性,并且在实验中观察到了更好的性能表现。

推理的流程

  1. 和训练的逻辑一致,除了不再需要做训练的loss,直接在最后的输出上,用一个阈值去卡一个置信度。

结论

  1. 检测大物体的性能好,因为对大物体有全局建模的能力了,不再受限于anchor的设置
  2. 小物体就性能差了些。
  3. 对于未来的展望,后续的工作来改进。
    1. Deformable DETR 通过多尺度的特征来解决了小物体的问题。wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==训练太慢。

相关工作

  1. 集合预测
  2. transformer 并行解码
  3. 目标检测的相关工作 . 性能比较低,往往用手工设计的人工干预。

    1. set based loss Learning non-maximum suppression
    2. relation network Relation Networks for Object Detection cvpr 2018 

RNN系列 对比transformer 并行推理。

DETR 最终能够work的主要原因!!!还是用了transformer

主要算法

  1. 基于集合的目标函数

再说 二分图匹配,抽象点来说,举个例子,如何分配一些工人,去干一些活,让最后的支出最小。

最优二分图匹配,最后能给一个唯一解,能够给到每个人都去做最擅长的工作,让总支出最小。典型:匈牙利算法 工程实现:scipy linear-sum-assignment

  • 分类loss
  • box loss l1 loss 和generalized iou loss

  1. 模型结构框架

参考: DETR 论文精读【论文精读】_哔哩哔哩_bilibili


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

相关文章

【小白专用】php pdo sqlsrv 类,php连接sqlserver

1.找到自己版本&#xff0c;我的程序是64位的。 注意&#xff1a;ts与nts的区别&#xff0c;查看phpinfo信息&#xff0c;如下 <?phpecho phpinfo();?> 2.运行后&#xff0c;可以查看到如下数据&#xff1a; ① PHP 的版本是8.2.13&#xff1b; ② 属于线程安全版 ts…

C++的面向对象学习(4):对象的重要特性:构造函数与析构函数

文章目录 前言&#xff1a;将定义的类放在不同文件夹供主文件调用的方法一、构造函数与析构函数1.什么是构造函数和析构函数&#xff1f;2.构造函数和析构函数的语法3.构造函数的具体分类和调用方法①总的来说&#xff0c;构造函数分类为&#xff1a;默认无参构造、有参构造、拷…

阿里云吴结生:云计算是企业实现数智化的阶梯

云布道师 近年来&#xff0c;越来越多人意识到&#xff0c;我们正处在一个数据爆炸式增长的时代。IDC 预测 2027 年全球产生的数据量将达到 291 ZB&#xff0c;与 2022 年相比&#xff0c;增长了近 2 倍。其中 75% 的数据来自企业&#xff0c;每一个现代化的企业都是一家数据公…

百度侯震宇详解:大模型将如何重构云计算?

12月20日&#xff0c;在2023百度云智大会智算大会上&#xff0c;百度集团副总裁侯震宇以“大模型重构云计算”为主题发表演讲。他强调&#xff0c;AI原生时代&#xff0c;面向大模型的基础设施体系需要全面重构&#xff0c;为构建繁荣的AI原生生态筑牢底座。 侯震宇表示&…

MAC苹果笔记本电脑如何彻底清理垃圾文件软件?

苹果电脑以其流畅的操作系统和卓越的性能而备受用户喜爱。然而&#xff0c;随着时间的推移&#xff0c;系统可能会积累大量垃圾文件&#xff0c;影响性能。本文将介绍苹果电脑怎么清理垃圾文件的各种方法&#xff0c;以提升系统运行效率。 CleanMyMac X是一款专业的Mac清理软件…

Ubuntu的简单使用(快速上手)

文章目录 前言一、程序菜单和任务栏二、输入法中英文切换三、文件系统四、连接无线网五、文件编辑器六、终端程序和常用指令ls指令mkdir指令cd指令cd .\. 指令cd ~ 指令Tab按键source 指令 七、终端启动脚本八、执行管理员权限&#xff08;sudo指令&#xff09; 前言 了解并掌…

红队打靶练习:WINTERMUTE: 1

前言 网络扫描&#xff08;Nmap、netdiscover&#xff09; HTTP 服务枚举 使用电子邮件日志文件在浏览器中进行目录遍历 利用 SMTP RCPT 选项中的操作系统命令注入 生成 PHP 后门 (Msfvenom) 执行RCPT选项中嵌入的后门 反向连接&#xff08;Metasploit&#xff09; 导入 pytho…

利用prometheus+grafana进行Linux主机监控

文章目录 一.架构说明与资源准备二.部署prometheus1.上传软件包2.解压软件包并移动到指定位置3.修改配置文件4.编写启动脚本5.启动prometheus服务 三.部署node-exporter1.上传和解压软件包2.设置systemctl启动3.启动服务 四.部署grafana1.安装和启动grafana2.设置prometheus数据…