英文论文(sci)解读复现【NO.16】OTA:目标检测的最优传输分配

news2024/11/20 10:24:14
此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文,并对相应的SCI期刊进行介绍,帮助大家解答疑惑,助力科研论文投稿。解读的系列文章,本人会进行 创新点代码复现,有需要的朋友可关注私信我获取。

 一、摘要

在目标检测中,标签分配的最新进展主要是为每个ground-truth (gt)目标独立定义正/负训练样本。在本文中,我们创新地从全局的角度重新审视标签分配,并提出将分配程序作为一个最优运输(OT)问题-一个在优化理论中被充分研究的主题。具体来说,我们将每个需求方(锚)和供应商(gt)对之间的单位运输成本定义为它们的分类和回归损失的加权和。得到最优分配方案后,将其转化为运输成本最小的最优运输方案,通过Sinkhorn-Knopp 迭代求解。在COCO 上,单个FCOS-ResNet-50
检测器配备最优传输分配(OTA),在1×调度下mAP可达40.7%,优于现有的所有分配方法。在COCO 和CrowdHuman上进行的大量实验进一步验证了我们提出的OTA的有效性,特别是在人群场景下的优势。该代码可以在https: //github.com/Megvii-BaseDetection/OTA上获得。

二、网络模型及核心创新点

1.最佳运输

2.标签分配OT

3.先进设计-中心优先

三、数据集

在本节中,我们在MS COCO 2017[22]上进行了大量的实验,其中包含了大约 118k、5k 和 20k 的图像,分别用于 train、val和 test-dev 集。

  四、实验效果(部分展示)

对于消融研究,我们在训练集上训练探测器,并报告在 val 集上的性能。在测试开发集上与其他方法进行了比较。我们还在 CrowdHuman[35]验证集上将 OTA与其他方法进行比较,以证明OTA在人群场景中的优越性。

(1)消融实验

个别成分的影响。我们验证了我们提出的方法中每个组件的有效性。为了进行公平比较,将所有检测器的回归损失乘以 2,这被认为是在高借据阈值时提高AP 的一个有用的技巧。
从表1中可以看出,当不采用辅助分支时,OTA比FCOS多出0.9%的AP(39.2%比 38.3%)。在两者都增加了借据分支后,这一差距几乎保持不变(分别为 39.5% vs . 40.3%和 38.8% vs .39.6%,有无中心之前)。最后,动态 k 将AP 推至 40.7%的新水平。在整篇论文中,我们强调了OTA可以同时应用于基于锚的和无锚的探测器。因此,我们也在 retanet上采用OTA,每个特征图上的每个位置只有一个方形锚点。如表 1所示,OTA- fcos 和OTA- retinanet 的AP值完全相同,说明OTA在基于锚的和无锚的检测器上都具有适用性。

 (2)对比实验

我们将我们的最终模型与其他先进的单级探测器在 MSCOCO测试开发。在之前的作品[21,38]中,我们在640到800的范围内随机缩放图像的短边。此外,我们将总迭代数翻倍至180K,学习速率变化率点按比例缩放。其他设置与[21,38]一致。

如表 5 所示,我们使用 ResNet-101-FPN的方法获得了 45.3%的AP,优于其他所有具有相同主干的方法,包括 ATSS (43.6%AP)、AutoAssign (44.5% AP)和 PAA (44.6% AP)。注意,对于PAA,我们删除了评分投票程序,以便在不同标签分配策略之间进行公平比较。使用 ResNeXt- 64x4d-101-FPN[43],可实现OTA的性能为了证明我们的方法与其他先进的目标检测技术的兼容性,我
们采用了变形卷积网络(Deformable Convolutional Networks,DCN)[54]到ResNeXt 骨干网以及检测头的最后一个卷积层。最后,通过多尺度测试技术,我们的最佳模型达到了 51.5%的AP。

   五、实验结论

本文提出了一种基于标签分配策略的最优运输分配(OTA)理论egy。OTA将对象检测中的标签分配过程定义为一个最优传输问题,目标是以最小的传输成本将标签从地面真实对象和背景传输到锚点。为了确定每个 gt 所需要的正标签数量,我们进一步提出了一种基于预测包围盒与 gt 之间的 IoU 值的简单估计策略。由于 OTA 能够很好地处理模糊锚点的分配,因此在CrowdHuman数据集上的性能也大大超过了其他所有单级检测器,显示出了较强的泛化能力。

注:论文原文出自OTA: Optimal Transport Assignment for Object Detection本文仅用于学术分享,如有侵权,请联系后台作删文处理。

解读的系列文章,本人已进行创新点代码复现,有需要的朋友欢迎关注私信我获取

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

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

相关文章

从零开始学习JavaScript:轻松掌握编程语言的核心技能③

从零开始学习JavaScript:轻松掌握编程语言的核心技能③ 一,JavaScript条件语句1.1 if...Else 语句1.2 if...else if...else 语句1.3 switch 语句1.4 for 循环1.5 while 循环 二,JavaScript break 和 continue 语句2.1 break语句2.2 continue语…

支付系统设计四:支付核心设计03-快捷短信确认(失败转代扣)

文章目录 前言一、快捷支付1. 执行流程1.1 发送短信1.1.1 发送短信(正常情况)1.1.2 发送短信(异常情况) 1.2 短信确认1.2.1 短信确认(正常情况)1.2.2 短信确认(异常情况) 2. 短信确认流程分析2.1 Service层执行2.2 快捷支付确认2.2.1 快捷支付确认命令链2.2.2 流程分析2.2.3 详…

Nacos 详解

Nacos是阿里的一个开源产品,是针对微服务架构中的服务发现、配置管理、服务治理的综合型解决方案。 1.1 什么是配置 应用程序在启动和运行的时候往往需要读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数 据库…

istio证书异常

istio有时会出现证书异常的问题,例如证书校验失败,证书过期等,此时需要我们手动处理istio证书问题。 一、我的istio版本 client version: 1.3.3 control plane version: 1.3.3二、开始处理 1、先查询istio的密钥istio-ca-secret&#xff1a…

飞桨 GPU 训练

飞桨官网介绍使用流程 paddle —— 飞桨的深度学习核心框架本地 padddlepaddle 的安装和卸载安装查看当前安装的版本卸载 启动 GPU 训练指定 GPU 飞桨创建项目PaddlePaddle 2.1.2 下的对比修改为 paddlepaddle2.4.0 CUDA 飞桨 飞桨官网:https://www.paddlepaddle.o…

编程最重要的技术之一 — 调试(以C语言代码为例)

编程最重要的技术之一 — 调试(以C语言代码为例) 前言1. 什么是bug?2. 调试是什么?有多重要?2.1 调试是什么?2.2 调试的基本步骤2.3 Debug和Release的介绍 3. Windows环境调试介绍3.1 调试环境准备3.2 学会快捷键3.3 …

Unity - 记录解决 部分手机设备上 浮点精度 不足 导致 UV 采样断层严重的 BUG

文章目录 环境目的问题解决Project 环境 Unity : 2020.3.37f1 Pipeline : BRP 目的 备忘,便于日后索引 问题 正常手机显卡芯片的浮点解析进度上的效果(其实不用手机上,PC 上将 uv * scale 一个巨大的值也会出现的) 异常手机显…

MySql Order by 字段出现重复导致 limit 分页后的数据错乱

问题描述 select * from standard_process order by event_time desc 此条sql查询的结果如下: 共有28条数据,确实是按照event_time排序的。 但是加了limit以后就出现问题了,原本以为是截取的前10条,结果出现了数据错乱的情况。 …

安装VTK8.2.0-win 实际操作

Windows下安装VTK8.2.0 1、依赖 VS2017 Qt5 cmake 2、前期准备 2.1、访问vtk官方下载VTK8.2.0源码 VTK源码下载地址:https://vtk.org/download/ 2.2、配置环境变量 配置CMAKE_PREFIX_PATH,值为Qt的bin路径 2.3、新建2个文件夹一个用于存放cmake编…

Fourier分析入门——第14章——Fourier光学

目录 第14章 Fourier光学 14.1 引言 14.2 物理光学和图像形成(Physical optics and images formation) 14.3 Fourier光学域(The Fourier optics domain) 14.4 图像形成的线性系统描述(Linear Systems Description of Image Formation) 第14章 Fourier光学 14.1 引言 Four…

操作系统-进程和线程-进程和线程

目录 一、进程的概念、组成、特征 二、进程的状态与转换、组织 2.1进程状态 2.2进程转换关系 2.3进程的组织 链接方式 索引方式 三、进程控制 3.1进程的创建 3.2进程的终止 3.3进程的阻塞和唤醒 3.4进程的切换 ​编辑 四、进程通信 4.1共享存储 4.2消息传递 直接通信…

C++算法刷题--2023/6/2

源代码&#xff08;C&#xff09;&#xff1a; #include<iostream> using namespace std; struct Road{char way[100]{}; }; int main(){int t;cin>>t;struct Road *p new Road[t];int right0,left0;for(int i0;i<t;i){cin>>p[i].way;} for(int i0;i&…

力扣刷题【第一期】

文章目录 1.爬楼梯2.求两数的和&#xff08;283&#xff09;3.移动零&#xff08;283&#xff09;3.1 题目描述3.2 算法描述3.3具体实现 4.合并有序连表&#xff08;21&#xff09;4.1 题目描述4.2 算法思想4.3 代码实现 5.删除连表中重复的值&#xff08;83&#xff09;5.1 题…

CodeEditor之sublimetext:sublimetext的简介、安装、使用方法之详细攻略

CodeEditor之sublimetext&#xff1a;sublimetext的简介、安装、使用方法之详细攻略 目录 sublimetext的简介 sublimetext的安装 1、安装教程如下所示 sublimetext的使用方法 sublimetext的简介 Sublime Text 是一个文本编辑器&#xff08;收费软件&#xff0c;可以无限期试…

javascript基础十五:说说new操作符具体都干了什么?

一、是什么 在JavaScript中&#xff0c;new操作符用于创建一个给定构造函数的实例对象 举个粟子 function Parent (name,age){this.name name;this.age age; } undefined Parent.prototype.sayName function(){console.log(this.name) } ƒ (){console.log(this.name) } c…

佛朗斯冲击港交所IPO:叉车租赁的未来是数字化?

佛朗斯“三战”IPO。 图源&#xff1a;佛朗斯 近日&#xff0c;广州佛朗斯股份有限公司&#xff08;下文简称为“佛朗斯”&#xff09;正式向港交所递交招股书&#xff0c;拟于港交所主板挂牌上市。 值得注意的是&#xff0c;这并不是佛朗斯首次冲击IPO。2019年6月和2020年7月…

操作系统-计算机系统概述-特性发展分类分层结构

目录 一、定义 1.1特征 二、操作系统的分类和发展 2.1手工操作阶段 2.2批处理阶段 2.2.1单道批处理系统 2.2.2多道批处理系统 2.3分时操作系统 2.4实时操作系统 2.5 网络操作系统 2.6分布式操作系统 2.7 个人计算机操作系统 三、操作系统的运行与机制 内核态和用…

【Python】函数 ⑤ ( 函数说明文档 | 函数说明文档内容建议 | 代码示例 )

文章目录 一、函数说明文档1、函数说明文档简介2、函数说明文档内容建议2、代码示例 - 函数说明文档 一、函数说明文档 1、函数说明文档简介 函数说明文档 就是 通过 注释 对 函数的作用进行解释说明 ; 函数说明文档 用法 : 在 函数定义 后 , 函数体的第一行位置 , 输入六个双…

Linux:Linux基础网络设置

ifconfig ifconfig #查看网卡信息 inet---网络接口的ip地址 netmask---子网掩码 broadcast---广播地址 ether----物理地址&#xff08;mac地址&#xff09; hostname hostname #查看主机名 hostnamectl set-hostname 自定义主机名 route route # 查看网卡网关 destination-…

华为OD机试真题B卷 Java 实现【检查是否存在满足条件的数字组合】,附详细解题思路

一、题目描述 给定一个正整数数组&#xff0c;检查数组中是否存在满足规则的数字组合 规则&#xff1a;A B 2C 二、输入描述 第一行输出数组的元素个数。 接下来一行输出所有数组元素&#xff0c;用空格隔开。 三、输出描述 如果存在满足要求的数&#xff0c;在同一行…