【文献阅读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

相关文章

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

SpringBoot基于注解实现数据库字段回填的完整方案

《SpringBoot基于注解实现数据库字段回填的完整方案》这篇文章主要为大家详细介绍了SpringBoot如何基于注解实现数据库字段回填的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解... 目录数据库表pom.XMLRelationFieldRelationFieldMapping基础的一些代

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock