CVPR2020:D2Det论文解读

2024-04-02 05:08
文章标签 解读 论文 cvpr2020 d2det

本文主要是介绍CVPR2020:D2Det论文解读,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 译者注
  • 摘要
  • 引言
    • 贡献点
  • 相关工作
  • 我们的方法
    • 3.1 Dense Local Regression
    • 3.2 Discriminative RoI Pooling
    • 3.3 实例分割
  • 实验
    • 4.1 数据集和实现细节

译者注

   这篇论文在MS COCO和UAVDT上都取得了很好的效果,是目前的state-of-the-art。该文章的方法是two-stage的,但是在分类方面却使用了anchor-free的方式计算位置偏移量,并且使用实例分割参与了目标定位的修正,这点想法非常有趣。另外在分类方面,该文章提出了判别性特征并不是等距地分布在图像上,并且引入变形卷积来获得对分类有帮助的判别性特征。总的来说,这篇工作对于目标检测的定位和分类任务都提出了比较好的方法,也取得比较好的效果,值得一读。
论文:D2Det: Towards High Quality Object Detection and Instance Segmentation
github:https://github.com/JialeCao001/D2Det

摘要

  我们提出了一个新颖的two-stage检测方法——D2Det,这个方法同时解决了精确定位和准确分类。对于精确定位,我们引入了一种dense local reression方法(密集局部回归,此处翻译采用了直译,但为避免出现歧义,此类名词后面都将使用原英文),这种方法是用来预测每一个目标候选框的多个dense box offsets(密集的框位置偏移量)。与采用传统回归和记于关键点定位的two-stage方法不同的是,我们的dense local regression不仅仅在一个固定区域去量化一系列的关键点,而且能够回归位置敏感的真实dense offsets值,这样会使定位更加精确。dense local regression还使用一种binary overlap prediction(二值交叠预测)策略,binary overlap prediction策略可以减少背景区域对于最后位置偏移量回归时的影响。对于准确分类,我们引入了一种discriminative RoI pooling scheme(判别性RoI池化方法),对一个候选区域来说,它可以从不同的子区域采样,然后计算时赋予自适应权重,得到判别性特征。
  在MS COCO test-dev上,我们的D2Det的单模型使用ResNet101作为主干网络,其表现以45.4AP超过了之前所有的two-stage方法。当进行多尺度训练和推理时,D2Det获得了50.1的AP。除了检测之外,我们将D2Det用于语义分割,也获得了40.2的mask AP,并且在速度方面,比state-of-the-art快了2倍。我们也阐述了D2Det在航空遥感图像上的有效性,这一部分在UAV图片上的目标检测实验和在卫星图像上的语义分割实验可以看到。

引言

  近些年,目标检测领域取得了长足的进步,这可以归功于深度神经网络的发展。现代目标检测可以大致分为single-stage和two-stage方法。two-stage检测方法的步骤是:首先生成一系列的候选框,然后对这些候选框进行分类和回归。另一方面,single-stage方法是:在图片上进行规则的网格采样,然后对这些采样出来的默认框进行回归和分类。通常来说,在标准benchmarks的准确率上,two-stage方法要优于single-stage方法。
  高质量目标检测要求定位精准和分类准确。之前大部分two-stage检测算法在定位部分都采用了相似的设计。大部分two-stage算法选择一种比较经典设计:回归模型,例如有流行的Faster R-CNN。这种回归模型使用了少量的全连接层去预测一系列候选框的偏移量。最近,Grid R-CNN把回归和预测分离到两个分支上,扩展了Faster R-CNN,因为Faster R-CNN使用的是共享网络。相比于Faster R-CNN使用回归来修正定位,Grid R-CNN则引进了一种基于全卷积网络的定位策略,这种策略是在固定大小的区域寻找系列关键点去识别目标边界。
  在这篇文章中,我们引入了dense local regression进行精确定位。不同于Faster R-CNN中所采用的使用全连接层去预测偏移量的传统回归策略,我们的dense local regression使用全卷积网络预测多个局部框的偏移量(local box offsets),也叫作dense box offsets。相比于Grid R-CNN使用基于关键点的定位,我们的dense local regression可以更精确地定位目标,原因在于它能够回归任意偏移量的真实值,因此不会局限于固定大小的区域去量化关键点。此外,虽然Grid R-CNN提高了定位能力,但是我们的方法不仅可以精确定位目标,而且集成了更强的目标分类能力。对于分类,我们引入了一种discriminative RoI pooling,它抽取候选区域的不同子区域的特征,然后计算时赋予自适应权重,得到判别性特征。

贡献点

  我们提出了一种two-stage检测方案——D2Det,该方法实现了目标的精确定位和准确分类。对于精确目标定位,我们引入了一种dense local regressionÿ

这篇关于CVPR2020:D2Det论文解读的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/869049

相关文章

java之Objects.nonNull用法代码解读

《java之Objects.nonNull用法代码解读》:本文主要介绍java之Objects.nonNull用法代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录Java之Objects.nonwww.chinasem.cnNull用法代码Objects.nonN

SpringCloud负载均衡spring-cloud-starter-loadbalancer解读

《SpringCloud负载均衡spring-cloud-starter-loadbalancer解读》:本文主要介绍SpringCloud负载均衡spring-cloud-starter-loa... 目录简述主要特点使用负载均衡算法1. 轮询负载均衡策略(Round Robin)2. 随机负载均衡策略(

解读spring.factories文件配置详情

《解读spring.factories文件配置详情》:本文主要介绍解读spring.factories文件配置详情,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用场景作用内部原理机制SPI机制Spring Factories 实现原理用法及配置spring.f

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Linux中的进程间通信之匿名管道解读

《Linux中的进程间通信之匿名管道解读》:本文主要介绍Linux中的进程间通信之匿名管道解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、基本概念二、管道1、温故知新2、实现方式3、匿名管道(一)管道中的四种情况(二)管道的特性总结一、基本概念我们知道多

Linux系统之authconfig命令的使用解读

《Linux系统之authconfig命令的使用解读》authconfig是一个用于配置Linux系统身份验证和账户管理设置的命令行工具,主要用于RedHat系列的Linux发行版,它提供了一系列选项... 目录linux authconfig命令的使用基本语法常用选项示例总结Linux authconfi

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用