基于密度图的航空物体检测:理论与代码实现

本文来谈一下基于深度学习的航空物体场景下的物体检测。航空物体这类场景一般由无人机空拍来收集数据,然后进行后处理来满足特定的任务场景,有些情况下要求实现实时反馈,甚至多任务。

这里讨论的航空物体检测是其中的一个分支,这类论题最近两年渐渐火起来。具体来说,从2017年开始,属于这类任务相关,且有较大影响的论文在CVPR,ICCV,ECCV等国际计算机视觉顶级期刊中出镜率越来越高,涉及相关题目的竞赛也越来越多。

和通用物体检测一样,航空物体检测也经历了从无到有的过程。乍一看,这两类任务都属于物体检测(object detection)的范畴,而当前通用物体检测器已经非常的多,不论是双阶段的fast rcnn系列还是单阶段的yolo系列,貌似方法是可以拿来直接套用的。然而,航空物体检测由于其特殊性,附带有下列挑战:

  1. 数据收集的过程由无人机拍摄执行。由于是高空拍摄,收集到的物体相比较于一般物体尺度更小,整体分布稀疏。相机随着焦距变换,导致数据会有一定程度的扭曲效应,具体表现为前后图片尺度不一

  2. 收集的数据受光照,地理位置及地形,气候等自然因素影响,像素分布复杂,导致数据集物体检测难度显著上升

  3. 受到拍摄角度的影响,密集物体场景下物体会有遮挡或堵塞的情况,这些物体的真值不全,不利于模型训练

  4. 自然场景下无法保证每一类物体均衡出现于数据集中,因而数据集类分布不均衡

为了读者更好地理解上述挑战,下面的一组图对比了自然物体与航空物体的应用场景。

自然物体(左图) VS 航空物体(右图)

这些问题叠加在一起对航空场景下的物体检测提出了较高的要求。为了能很好的解决这个问题,最近几年的主会和workshop都提出了解决方案。

主会中比如2019年ICCV的ClusDet “Clustered Object Detection in Aerial Images”提出使用聚类方式做图像切分,尽可能地通过聚类合并前景像素来生成高质量的切块,以避免检测器浪费过多时间在背景上。同时为了矫正生成的切块的尺度,追加了scalenet来平衡。

再比如强调用检测器来发现检测弱点,进一步学习并重新检测,希望基于困难区域检测(DREN)的网络“How to fully exploit the abilities of aerial image detectors”这些方案都是非常有启发性的,也取得了较好的精度。

然而这些方案的精度还是不够令人满意。此外除了检测网络,额外追加了两个子网络来帮助提升精度, 导致整体速度被拉慢。

为了提出更进一步的解决方案,这里笔者介绍一篇来自CVPR2020 workshop的论文"Density map guided object detection in aerial images",该论文使用密度图的方法来解决航空物体检测的问题。

相比较于上述方案,使用了更少的子网络,取得了更进一步的精度和更快的检测速度。论文代码已开源。下面一张图简单展示了基于密度图的方法是如何切分出前景的。

密度图方法切分出前景(foreground)

相比于之前的方法,使用密度图去做航空图像检测可以更快的检测航空图像中的物体。密度图的方法来源于一个相近领域的应用,也就是人流计数(crowd counting)。人流计数中物体高度密集,分布集中,单个物体的尺度小,和航空物体数据集在这方面高度相似。

在人流计数中一个主流的应用是使用密度图。密度图也可以视为热力图,可以和很好的反应物体在单个图片中的分布,而背景对密度图没有贡献,所以这种方法其实可以很好的区分前景和背景。这也是这篇论文想到把密度图引入航空物体检测的一个原因。

基于密度图的航空物体检测(以下简称DMNet)分为三个大的部分

  1. 密度图估计

  2. 基于密度图分割输入航空图像并生成前景

  3. 使用生成的前景进行物体检测

DMNet的网络框架

以下是对三个部分的详细介绍

密度图估计

密度图(density map)估计和人流计数中的密度图估计相近。给定输入航空图像,我们希望估测并针对每一类物体的尺度,指导深度学习模型学习其对应的密度,以便在测试数据上生成

相对应的密度图。常见的人流技术框架(比如MCNN, CSRNet)使用高斯核卷积来生成密度图,根据原理不同,有进一步分成动态核和静态核两种。由于人流计数中使用动态核需要满足一定的假设,而航空图像中不满足(比如假设物体尺寸和其相邻物体间距离成比例), DMNet使用的是静态核(fix kernel)来生成密度图。静态核的sigma值取全部训练数据集的平均值。

然而,使用静态核方法并没有完全考虑到各个类之间物体的差异性。比如某些物体(公交车, 汽车)的尺度比较大,而某些较小(比如行人)。使用同一个sigma无法贴切的刻画这种差异性。

所以DMNet进一步提出基于类别的静态核方法。使用这种方法可以更加细致的区分同一类的前景和背景。下图可以看到这种方法的优势。

基于类别的静态核方法

在DMNet中,作者使用MCNN来生成密度图。MCNN是非常经典的人流计数框架,使用了三种不同尺度的卷积来尽可能捕捉特征。使用已有框架直接生成密度图,虽然很直观,但是仍旧有一个问题要讨论。

MCNN中有两层池化层,所以直接使用MCNN会导致生成的特征图缩水。一种解决方案是直接把特征图插值回原尺度,另外则是加两层升采样层处理。

针对这个问题, 作者做了实验,实验结果发现,以MAE为评价指标,两种解决方案表现差的不大,考虑到升采样会吃更多gpu内存,最后DMNet采用了第一种方案。

基于密度图分割输入航空图像并生成前景

在生成了对应的密度图后,我们需要使用他们来生成前景。由于密度图本身可以通过密度值的高低来间接表示某一像素上有物体的概率,我们人为定了一个阈值。我们希望通过调节这个阈值来尽可能的过滤背景像素,并保持现有像素的完整性。

具体的做法是,设置一个滑动窗口对密度图进行滑动,每次滑动不重叠。滑动的时候会对当前区域下的像素加和,如果加和大于阈值,我们保留这个区域,也就是存下这个窗口对应的坐标值。否则我们直接丢弃(也就是将其视为背景)。我们反复多次加和,直到滑动窗口覆盖所有特征图。

下面是上述过程的一个例子。

使用滑动窗口生成density mask

在我们完成一次滑动后,我们会得到多个离散的小区域。为了将这些区域全部连起来,我们使用八连通域算法来进行连接。如果最终生成的区域不规则,我们取这些区域的最左上右下位置,整个连起来。

物体检测

在生成密度切块(density crop)后,我们把这些图放到物体检测模型中进行训练。训练时原图也参与其中,因为进行切块可能会伤到大物体,所以将原图加入来确保大物体的精度。DMNet使用了faster-rcnn rpn来训练物体检测。需要指出的是,任何物体检测方法都可以用在这一步,并不仅限于faster rcnn检测器。

在评估(evaluation)阶段,原图和切好的密度图会被分别送入我们之前训练的检测器中进行评估。最终的结果会被统一合并在原图对应的结果文件上。DMNet使用NMS算法对检测结果进行后处理。

DMNet 模型表现

DMnet和论文发表时的sota模型间的对比如下图。作者将自己的算法和两个非常常见的航空图像数据集进行对比,使用的数据集分别是Visiondrone数据集和UAVDT数据集。

DMNet在Visiondrone 2018评估(evaluation)集上的表现

DMNet在UAVDT数据集上的表现

综合来看,DMNet能进一步提升大概1-1.5AP,取决于backbone的选择。尤其在小物体检测上面,DMnet表现不凡,在Visiondrone数据集上提升了近4AP。

模型研究 (Ablation study)

作者针对于模型如何效果好,进行了多个方面的分析。

1.生成密度图时阈值的选择

阈值选择在生成密度图时有很大的影响。阈值过低,基本无法过滤背景像素;而阈值过高,基本不会生成密度切块,或者切块过小反而干扰学习过程。作者对此做了实验。

阈值选择对生成密度图的影响

从实验结果来看,施加非常小的阈值,模型表现很差,近乎于直接使用原图检测。所以通过不同的手段(比如交叉验证或可视化)选择合理的阈值是很重要的。

2.使用密度图切分和均匀切分相比是否有优势

作者对比了密度图切分和更加细致的4*3均匀切分(“密度图方法切分出前景”一图中包含了这种方法)方法。从实验结果来看,密度图更胜一筹。原因是因为密度图是根据密度来判断切分边界,使用了更加可靠的情景信息。

3.使用密度图切分的贡献

使用密度图切分提升了小物体和中型物体的检测精度,进而整体拉高了全体的检测进度,这也是DMNet表现出色的一个原因。

结果展示

总结

这篇文章简单总结了DMNet(Density map guided object detection in aerial images)的原理和工作方法,希望能对各位看官有帮助。DMNet的相关代码已开源,对这篇文章有任何的疑问和指教,欢迎发邮件到lcltopismine3@gmail.com讨论或者在github上提issues。

论文:https://arxiv.org/abs/2004.05520

代码:https://github.com/Cli98/DMNet

END

备注:航拍

遥感与航空影响处理识别交流群

遥感、航空、航拍图像处理、分类、识别、检测、分割等技术,

若已为CV君其他账号好友请直接私信。

在看多人看到

(0)

相关推荐

  • 【上岗证】CT名词解释

    【上岗证】CT名词解释

  • 收藏 | 目标检测的模型集成与实验

    仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者:Vikas S Shetty  |  编译:ronghuaiyang  | AI公园 AI博士笔记系列推荐 周志华<机器学习> ...

  • 【时间序列】时间序列异常检测相关知识的总结与梳理

    异常检测(Anomaly detection)是目前时序数据分析最成熟的应用之一,定义是从正常的时间序列中识别不正常的事件或行为的过程.有效的异常检测被广泛用于现实世界的很多领域,例如量化交易,网络安 ...

  • 【泡泡一分钟】A*3D 数据集:面向自动驾驶环境中的挑战

    每天一分钟,带你读遍机器人顶级会议文章 标题:A*3D Dataset: Towards Autonomous Driving in Challenging Environments 作者:Quang ...

  • 如何将多目标检测用于建筑平面图? | MixLab智能建筑

    在建筑平面图的分析中,一些复杂的平面图总是会让人感到头晕脑胀,不同的标注方式以及不同的图形符号更难以让普通人去解读. 5种不同图形符号的浴缸以及真实场景中具有的遮挡,标注等信息 有时,图形符号又会极其 ...

  • R语言POT超阈值模型和极值理论EVT分析

    原文链接:http://tecdat.cn/?p=16845 本文依靠EVT对任何连续分布的尾部建模.尾部建模,尤其是POT建模,对于许多金融和环境应用至关重要. POT模型其主要动机是为高洪水流量的 ...

  • 多目标跟踪:SORT和Deep SORT

    加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动! 同时提供每月大咖直播分享.真实项目需求对接.干货资讯汇总 ...

  • 【隐创118期】基于卷积神经网络的海面目标检测方法研究(节选二)

    编者按: 深度学习算法已被证明是图像与视频处理的强大工具,广泛应用于国防安全之中.在海洋环境中,光电传感器数据与人类智能技术的融合对于应对安全问题具有重要作用.例如,态势感知可以通过一个自动系统来增强 ...

  • 基于OpenCV实战:动态物体检测

    重磅干货,第一时间送达 最近,闭路电视安全系统运行着多种算法来确保安全,例如面部识别,物体检测,盗窃检测,火灾警报等.我们在运动检测的基础上实现了许多算法,因为在空闲帧上运行所有这些进程没有任何意义. ...

  • 基于尺寸划分的RGB显著物体检测方法

    作者:明泽Danny 来源:微信公众号|3D视觉工坊(系投稿) SDCNet: Size Divide and Conquer Network for Salient Object Detection ...

  • 基于LBP的红外弱小目标检测系统设计

    蒋怡亮,孙宁,翟尚礼 (中国电子科技集团公司 第二十八研究所,南京 210007) 摘要:分析了一种基于局部二元模式(LBP)算子的红外弱小目标检测方法,并根据实际应用背景设计实现了一种红外弱小目标检 ...

  • 基于形态学梯度的红外目标检测

    基于形态学梯度的红外目标检测 基于形态学梯度的红外目标检测 毋亚北,王卫华,吴巨红,陈曾平 (国防科学技术大学 ATR国防重点实验室,长沙 410073) 摘要:对于红外跟踪系统中的低空非合作运动目标 ...

  • 计算机视觉物体检测中面对的挑战

    导读 给出了目前目标检测中的一些问题和挑战. 几年前,在图像中寻找并分类单个物体是一项极其困难的任务.今天,在计算机视觉的帮助下,数字设备可以简单快速地识别图像的内容,这为不同领域的视觉数据理解和分析 ...

  • C4D动画,贴图不跟着物体动?

    昨天 以下文章来源于苦七君 ,作者苦七君 苦七君喜欢技术,热爱分享技术. 问题: C4D动画,贴图不跟着物体动?贴图变形?贴图投射模式uvw和立方体. 答案: 最近群里总是有人问做动画,物体动贴图不动 ...

  • 雷达科普|自动驾驶毫米波雷达物体检测技术-算法

    导读: 本文的代码均在MATLAB上运行, MATLAB在传统辅助驾驶系统的验证和模拟上相对于其他编程语言具有很强的优势. Range and velocity estimation 在这篇文章中, ...

  • 基于OpenCV的实战:轮廓检测(附代码解析)

    重磅干货,第一时间送达 利用轮廓检测物体可以看到物体的各种颜色,在这种情况下放置在静态和动态物体上.如果是统计图像,则需要将图像加载到程序中,然后使用OpenCV库,以便跟踪对象. 每当在框架中检测到 ...

  • 作图篇:python密度图(Density Plot)

            在概率论与统计学习方法中,可视化概率密度就变得非常重要了.这种密度图正是可视化连续型随机变量分布的利器,分布曲线上的每一个点都是概率密度,分布曲线下的每一段面积都是特定情况的概率.如下 ...