【文献阅读6】第一届微小目标检测TOD挑战赛的冠军方案解读:方法和结果!

本文主要是介绍【文献阅读6】第一届微小目标检测TOD挑战赛的冠军方案解读:方法和结果!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

【文献阅读6】The 1st Tiny Object Detection Challenge: Methods and Results-第一届微小目标检测TOD挑战赛的冠军方案解读:方法和结果!

  • 摘要
  • 1 引言
  • 2 TOD挑战
    • 2.1 挑战数据集
    • 2.2 评估指标
  • 3 结果和方法
    • 3.1 baidu_ppdet团队
    • 3.2 STY-402团队
    • 3.3 BRiLliant团队
  • 4 结论

论文名称:The 1st Tiny Object Detection Challenge: Methods and Results
论文地址: http://arxiv.org/pdf/2009.07506v1.pdf
开源代码: https://github.com/ucas-vg/tinybenchmark

本博客仅作为翻译、阅读、学习笔记

摘要

第一届微小物体检测(TOD)挑战旨在鼓励研究开发新的和准确的方法,用于在具有宽视角的图像中检测微小物体,目前的重点是微小人的检测。TinyPerson数据集1用于TOD挑战,并公开发布。它有1610个图像和72651个框级注释。来自全球的大约36支参赛队伍参加了第一届托德挑战赛。文中,作者对第一届TOD挑战赛进行了简要概述,包括了对获得前三名的方法进行了简要介绍。

1 引言

探测微小物体具有挑战性,但没有得到很好的探索。一个可能的原因是因为缺乏用于微小物体检测的数据集和基准,因此与一般物体检测相比,研究人员对微小物体检测中的挑战关注较少。

微小目标检测对于真实世界的视觉应用非常重要,并且在几个方面不同于一般的目标检测。例如,由于对象非常小,而整个输入图像具有相对较大的视野,所以来自目标对象的信息要少得多,来自背景干扰的信息要多得多。此外,输入图像的大视场特性通常意味着微小物体被远距离成像,这使得具有各种姿态和视点的微小物体的检测更加困难。

第一次微小物体检测挑战采用了TinyPerson数据集。该数据集包含1610幅带有72651个盒级注释的图像,并且是从真实场景中收集的。挑战数据集中的人非常小,他们的纵横比有很大的差异,因此他们代表不同类型的对象。在下一节中,我们将总结关于挑战、方法和结果的详细信息。

2 TOD挑战

2.1 挑战数据集

  • 来自真实世界视频,50帧采样一次,去除重复图片,图像的大小主要是1920*1080。
  • TinyPerson中人的长宽比有较大的方差。具有多样的人的姿态和观点,它带来了更复杂的人的多样性。
  • 主要关注海边周围的人。
  • 有很多物体密集的图像(每张图像200人以上),将人分为海洋人(海洋中的人)或地球人(陆地上的人)。
  • 数据集忽略了难以分开成单个人的人群、模糊区域、大部分身体在水面以下的人。

2.2 评估指标

  • 平均精度 AP (average precision) and 失误率 MR(miss rate)
  • 尺寸范围分为3个区间:微小[2,20]小[20,32]全部[2,inf]。对于微小[2,20],它被分成3个子区间:tiny1[2,8]tiny2[8,12]tiny3[12,20]。并且IOU阈值设置为0.25和0.5,用于性能评估。与行人检测相同,“忽略”区域不参与评估,这意味着与它们匹配的检测包围盒不会产生假阳性。
  • 由于被忽略区域比人的区域大得多,因此将忽略区域的IOU(insertion of union)标准改为IOD(insertion of detection)
    IOU阈值概念
    IOD用于评估被忽略的区域。轮廓(inviolet)框代表一个标记的被忽略区域,虚线框代表未标记和被忽略的人。红色框是一个检测结果框,有一个被忽略的人的高欠条。

IOD用于评估被忽略的区域。轮廓(inviolet)框代表一个标记的被忽略区域,虚线框代表未标记和被忽略的人。红色框是一个检测结果框,有一个被忽略的人的高欠条。

3 结果和方法

第一次TOD挑战的结果如表1所示。在这一部分,将简要介绍前3名提交的方法。在这里插入图片描述

3.1 baidu_ppdet团队

Yuan Feng, Bin Zhang, Xiaodi Wang, Ying Xin, Jingwei Liu, Mingyuan Mao, Sheng Xu, Baochang Zhang, Shumin Han.(Baidu & Beihang University)

作者基于两阶段检测框架构建了检测器。他们检查了探测器不同组件的性能,得出了一个用于集成的大模型池。两阶段的检测器包括 Faster R-CNN,FPN, Deformable R-CNN和Cascade R-CNN。将数据集分两部分训练90%,验证10%
框架如图二所示。
在这里插入图片描述
数据增强
作者在MSCOCO和Object365数据集上预处理了他们的模型,以获得更好的性能。 为了解决尺度差异问题,作者在MSCOCO上实现了尺度匹配1,通过重新调整训练图像的比例来匹配TinyPerson中图像的大小分布,这有助于实现2%到3%的改善,即AP 50%

训练策略
作者以ResNet-101[6]为基线训练了fast R-CNN,AP tiny 50为57.9%。应用多尺度训练技巧后,APtiny 50达到60.1%。此外,擦除忽略区域,同时在有效集上验证以保持与评估相同,收益也接近2%。优化NMS阈值、样本比例和数量。最后,FRCNN-Res101的APtiny 50达到65.38%。

模型改进
特征表示一直是微小目标检测的关键。为了提高网络的特征表示能力,设计了一种新的特征融合方法。对于更快的CNN和FPN,P3层可以更好地代表微小的物体。相比之下,P3层的缺失带来了语义信息的丢失。因此,作者使用PAFPN2来代替检测器中的FPN,这将mAP提高了约1.5%。

模型集成
作者进一步用各种例如SENet-154、ResNet-200、CBNet和Res2Net-200的主干进行组合来训练网络。现有的集成方法可以有效地融合尺寸和性能相对接近的网络。然而,当涉及到尺寸和性能非常不同的模型时,结果会变得更糟,因为较小的模型会降低较大模型的性能。为了解决这个问题,作者提出了一种简单有效的集成方法,称为hierarchical coarse-to-fine(分层粗到细),如图3所示。
在这里插入图片描述

3.2 STY-402团队

Cheng Gao, Wei Tang, Lizuo Jin (Southeast University)

作者采用Faster R-CNN,ResNet-50、FPN、DCNv2为基线模型。所有的模特都是在MS COCO上预训练。基线采用从 P2 到 P6 的特征金字塔等级,锚的面积定义为(122, 242,4822,962,1922)像素。在ResNet-50的第3-5阶段,可变形卷积应用于所有卷积层。

骨干网络
在基线中,第一阶段的权重被冻结。由于MS COCO和TinyPerson的区别比较明显,所以主干中的卷积层都是不冻结的。此外,在FPN的每个卷积层之后添加批处理规范化层。作者用ResNet-vd代替ResNet。而且Res2Net是一种新的多尺度骨干架构,可以不费力地进一步提高几个有代表性的计算机视觉任务的性能。作者还用26w×4s训练了Res2Net-50,性能比ResNet-50-vd提高了3%。

多尺度训练
短边的刻度是从832、896、960、1024、1088、1152、1216、1280、1344、1408、1472、1500中随机取样的,而长边在PaddleDetection中固定为2000。特别是由于GPU内存有限,训练ResNeXt101(64×4d)时,短边最大值设为1280。在MMDetection中,短边的比例从480、528、576、624、672、720、768、816、912、960中随机采样,长边固定为1280。

训练技巧
在培训练阶段,NMS之前的推荐数量从2000个更改为12000个。并且在测试阶段将数据改为6000。

数据扩充
采用随机水平翻转、随机裁剪、随机扩展和剪切混合来增加训练数据。VisDrone也用作附加数据,只使用类别0、1、2,删除类别3-11。

大尺度测试
测试采用大尺度(1280 × 960)。为了获得更好的性能,同时还使用了另一个大尺度(1024 × 768)进行测试。

双阈值测试
如果子图像检测结果的最高置信度小于某个阈值(0.5),则该子图像将被视为纯背景图像并被忽略。

模型集成
他们使用不同的主干训练7个模型,如图4所示。除了HRNetV2p-W18接受过MMDetection训练外,其余模型均接受过PaddleDetection训练。最后通过加权框融合得到最终的集成结果(IoU阈值为0.6)。
在这里插入图片描述

3.3 BRiLliant团队

Mingbo Hong, Yuchao Yang, Huan Luo, Shuiwang Li, Qijun Zhao(College of Computer Science, Sichuan University)

为了探索微小物体中更详细的特征,作者利用高分辨率网络作为主干网络,允许网络提取高分辨率表示。为了同时检测不同尺度的对象,作者在区域建议网络中引入了一个改进的卷积块注意模块(CBAM)3,以引导网络寻找如图5所示的地方。与传统的CBAM不同,改进的CBAM增加了一个抑制块,以平衡不同比例的对象之间的注意力值。此外,为了针对不同比例的对象提出不同数量的建议,作者使用Top k采样器而不是固定阈值来选择正样本,如图6所示,并且选择是基于IOU度量,而不是ATSS中使用的中心距离。所提出的采样器适应于物体的尺度,这可以更准确地检测微小物体,而ATSS可能根本不会为微小物体生成任何正样本。
在这里插入图片描述
在这里插入图片描述

4 结论

微小目标检测相关任务对于许多真实世界的计算机视觉应用是重要的,解决其技术挑战的进展也可以帮助一般目标检测研究。作者希望第一次TOD挑战是这一有希望的研究方向中有用的第一步。


  1. Yu, X., Gong, Y., Jiang, N., Ye, Q., Han, Z.: Scale match for tiny person detection.In: W ACV. pp. 1257–1265 (2020)
    文章链接:https://arxiv.org/abs/1912.10664
    我的笔记:https://editor.csdn.net/md?articleId=111567522 ↩︎ ↩︎

  2. Tan, M., Pang, R., Le, Q.V.: Efficientdet: Scalable and efficient object detection.In: CVPR. pp. 10781–10790 (2020) ↩︎

  3. Woo, S., Park, J., Lee, J.Y., So Kweon, I.: Cbam: Convolutional block attention
    module. In: ECCV. pp. 3–19 (2018) ↩︎

这篇关于【文献阅读6】第一届微小目标检测TOD挑战赛的冠军方案解读:方法和结果!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Windows 上如果忘记了 MySQL 密码 重置密码的两种方法

《Windows上如果忘记了MySQL密码重置密码的两种方法》:本文主要介绍Windows上如果忘记了MySQL密码重置密码的两种方法,本文通过两种方法结合实例代码给大家介绍的非常详细,感... 目录方法 1:以跳过权限验证模式启动 mysql 并重置密码方法 2:使用 my.ini 文件的临时配置在 Wi

MySQL重复数据处理的七种高效方法

《MySQL重复数据处理的七种高效方法》你是不是也曾遇到过这样的烦恼:明明系统测试时一切正常,上线后却频频出现重复数据,大批量导数据时,总有那么几条不听话的记录导致整个事务莫名回滚,今天,我就跟大家分... 目录1. 重复数据插入问题分析1.1 问题本质1.2 常见场景图2. 基础解决方案:使用异常捕获3.

最详细安装 PostgreSQL方法及常见问题解决

《最详细安装PostgreSQL方法及常见问题解决》:本文主要介绍最详细安装PostgreSQL方法及常见问题解决,介绍了在Windows系统上安装PostgreSQL及Linux系统上安装Po... 目录一、在 Windows 系统上安装 PostgreSQL1. 下载 PostgreSQL 安装包2.

SQL中redo log 刷⼊磁盘的常见方法

《SQL中redolog刷⼊磁盘的常见方法》本文主要介绍了SQL中redolog刷⼊磁盘的常见方法,将redolog刷入磁盘的方法确保了数据的持久性和一致性,下面就来具体介绍一下,感兴趣的可以了解... 目录Redo Log 刷入磁盘的方法Redo Log 刷入磁盘的过程代码示例(伪代码)在数据库系统中,r

Java Response返回值的最佳处理方案

《JavaResponse返回值的最佳处理方案》在开发Web应用程序时,我们经常需要通过HTTP请求从服务器获取响应数据,这些数据可以是JSON、XML、甚至是文件,本篇文章将详细解析Java中处理... 目录摘要概述核心问题:关键技术点:源码解析示例 1:使用HttpURLConnection获取Resp

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

Mysql用户授权(GRANT)语法及示例解读

《Mysql用户授权(GRANT)语法及示例解读》:本文主要介绍Mysql用户授权(GRANT)语法及示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql用户授权(GRANT)语法授予用户权限语法GRANT语句中的<权限类型>的使用WITH GRANT

Java实现优雅日期处理的方案详解

《Java实现优雅日期处理的方案详解》在我们的日常工作中,需要经常处理各种格式,各种类似的的日期或者时间,下面我们就来看看如何使用java处理这样的日期问题吧,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言一、日期的坑1.1 日期格式化陷阱1.2 时区转换二、优雅方案的进阶之路2.1 线程安全重构2

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认