ECCV2022 | 多模态融合检测新范式!基于概率集成实现多模态目标检测

简介: 我相信大家不多不少都会看过我自己做的一些工作,同时也还有我解读RGB-Thermal系列的一些工作,所以这一期我想讨论一下RGB-T目标检测的工作!


说在前面的话



标题:Multimodal Object Detection via Probabilistic Ensembling

链接:https://arxiv.org/abs/2104.02904


我相信大家不多不少都会看过我自己做的一些工作,同时也还有我解读RGB-Thermal系列的一些工作,所以这一期我想讨论一下RGB-T目标检测的工作!


RGB-T与目标检测



目标检测是大家的老朋友了,随着端到端模型的不断优化,像1 stage的Yolo系列,还有2 stages的RCNN系列以及各种基于FPN衍生出来的后起之秀,都在帮助目标检测生态变得更加的成熟。当前也有越来越多的目标检测框架从Paper中出来,落地到安全生产领域当中。自动驾驶(autonomous vehicles(AVs))就是其中之一,但是普通的基于RGB数据的目标检测方案在自动驾驶领域中经常会遇到一些比较棘手的问题,比如在夜间可视情况差,或者遇到目标物体遮挡的情况,在这种情况下RGB数据往往无法捕获有用的特征信息供模型学习,所以我们就引入了Thermal数据来帮助AVs进行日夜交替的目标检测的工作!


RGB-T目标检测的挑战(1)数据


现阶段的大规模数据集以及大规模预训练模型都是基于单模态(RGB)进行研究的,但是结合Thermal的多模态数据的工作却比较少。那为什么RGB-T数据会这么少呢?主要还是两个方面的困难


1、数据的配准难度大


因为RGB和Thermal这两个镜头是分开独立的,所以成像的角度是很难做到直接统一,从而无法直接对齐RGB和Thermal两个模态的之间的像素位置信息。

一般而言要想使得两个模态进行配准,我们在硬件上可以选择使用分束器(Beam splitter)如下图,通过分束器,直接校准RGB图像在Thermal图像同一时空下的成像畸变(成像在同一平面上的位置),对齐两模态的信息。

640.png



或者是使用一个固定的支架,这种支架也是可以从物理成像的角度上,采用无目标校准方法来对齐图像


640.png


还有一种办法是使用GPS时钟同步器进行时间校准。通过计算时间差,找到RGB相机和Thermal相机在同一位置的成像信息,并将同一位置的信息进行配准,这种方法也广泛的运用在多机机器人的方法互联上。


640.png


2、标注成本上升


现阶段的数据标注工作量是原来的两倍,因为每个模态都需要单独的注释,这无疑是增加了总体标注成本。


因为存在着上述的两种问题给RGB-T的普及带来了一定的难度,那么如果我们可以做出一组方法,能够使得RGB和Thermal不对齐的情况下也能够使用,会不会就能给RGB-Thermal带来一定的工作便利呢?所以文章会着手从模型融合的方式上,打破着两个问题的桎梏,使得RGB-T的工作更加的简单和易于普及。


模型的设计



多模态检测的核心问题是如何融合不同模态的信息。以往的研究已经探索了不同阶段的融合策略,从一个大的方向上划分通常分为前融合、中期融合(特征融合)和后融合。早期融合构建一个四通道的RGB-T的输入,然后直接输入到一个Backbone进行处理。相比之下,中期融合(特征融合)会保持将RGB和Thermal输入独立讨论,然后在网络的下游融合它们的特征。过去绝大多数的工作都会集中在如何合理化的进行结构融合,但是这篇文章希望从另一个角度上探索融合的可能性,一种特别后的融合的极端情况。

从下图上看,融合模型放弃了特征融合的部分,专注于优化后融合部分,结构虽然看上去简单,但是会遇到的问题却非常的不简单。


640.png


首先我觉得我们需要了解的一个地方是为什么这篇文章会用这样一个结构,它的优势是什么?


如果要使用中(特征)/前融合,其实最担心的问题是模态融合过程的不稳定性还有模态之间的相干性。常见的情况就是强模态抢占弱模态。而且在使用中(特征)融合的方法的情况下,我们其实不知道在高维度特征高度不可解释的情况下怎样的融合和决策方式是合理的。我其实看了很多论文,大家都会有自己的一套方法来进行决策和融合,但是这样的决策和融合基本都是黑箱。很难去解释为啥要这样融合,最多就是在一些宏观角度上去解释一些不太能扎到我心里的废话概念。那么在前/中融合都不争气的情况下,我们能不能考虑不依赖特征提取阶段的后融合?而且后融合参与的对象都是黑箱来的结果,那么可解释性多少会更加的强,那么就可以不再依赖深度学习模型的玄学了!

当然,后融合方法本身的问题也很多,比如不充分结合特征信息。因为引入Thermal模态的信息本身就是为了解决RGB模态信息缺失的问题,但是在以往的后处理方法都是在最后一个阶段进行组合的,这样就会出现差+差=Double差的局面了,所以为了更好的优化后融合模型,我们需要对后处理的信息,进行一些操作。


为什么是ensemble


有人会问,这样一个刷榜的结构或者说是技巧,贡献点在哪?值得被我们称赞为有趣的工作的点在哪?


首先文章证明了精确的模型融合的技术很重要,并且之前的方法,如score- average或max-voting,都不如ProbEn有效,特别是在处理模态信息交互的场景中。虽然ProbEn很简单,但它非常有效,有可能是多模态融合工作的又一个新范式!


Naive Pooling


最简单的策略是直接将多种模式的检测结果直接叠加在一起,这样的做法会导致框堆叠(多次检测到同一个目标物体),实际上并没有任何的融合决策操作,简单来说就是一种无效的后融合策略。


Non-Maximum Supression (NMS)


NMS中文名字也叫非极大抑制值,它是当前目标检测模型的一个关键部分,用于筛选重叠的框,具体来说,当来自两种不同模式的两个检测重叠时(例如IoU>0.5), NMS只是保持较高分数的检测,抑制另一个。


它在以往的RGB模态下的目标检测场景下表现优异,虽然NMS广范的被用于RGB模态检测器中,但我们并不建议将其使用在多模态检测器融合的任务上。其实原因非常简单

由于RGB和Thermal对于光照信息的依赖程度不相同,如下图可见,当RGB在夜间光照不足的情况下无法捕获有效的特征信息,因此识别出来的检测框的得分会偏低,而Thermal模态因为自身的物体性质,在可视环境较差的情况下也能捕获特征信息,所以检测出来的框得分会更高一些。


如果在NMS的作用下,我们就只会保留偏高分的框(Thermal模态下的框),也就是说,NMS不会融合RGB和Thermal模态的信息,从全局的特征信息上判断怎样的检测框才是所需要的更接近GT的,而是简单的在玩一个二选一的游戏。在某种意义上,NMS并不能将来自多个模态的信息“融合”在一起,只是一个择优录取的玩法,并没有融合决策,只是单一的决策而已。


Average Fusion.


为了真正融合多模态信息,一个简单的方法就是将NMS修改为不同模态重叠检测的平均置信度,而不是单纯的抑制较弱的模态。这样的平均已经在以前的工作中就已经被提出。然而,平均分数必然会降低报告重叠检测集的最大值的NMS分数,我们的实验表明,平均产生的结果比NMS更差。直观上,如果两种模式达成一致认为区域内存在目标,那理论的上相互融合后的总体置信分数应该增加而不是减少。


Probabilistic Ensembling (ProbEn)


从上面的方法逐步的走来,我们明确我们需要做的事情是,有效的融合不同模态之间检测框的信息,使得融合后的预测框置信度分数上升。


假设我们有带标签的识别对象(例如,一个“人”)和来自两种模态的预测信息:x1(RGB)和x2(Thermal)。


如果只是写出单一模态的预测概率(分数),我们可以很容易的写出来

p(x1|y)和 p(x2|y),那么如果我要叠加预测呢?


答案是p(x1,x2|y)


根据我们的概率论知识,把这上面这三个式子直接写成

p(x1,x2|y) = p(x1|y)p(x2|y)


我们再进一步思考,如果我们x1(RGB)的预测结果不会影响x2(Thermal)的预测结果时,也就是当x1和x2彼此条件独立的时候,我们会有p(x1,x2)=1,所以所以我们的得到文中的式子2

640.png


当我们把上面的p(x1,x2|y) = p(x1|y)p(x2|y) 与式子2结合就可以得到式子3和式子4了,式子4就是我们的ProbEn的算式原理了。

640.png


上述的数学推理其实,要说明的一件事情是当x1和x2彼此独立的时候结果最优

具体把公式思想转化为实验步骤需要分为两步


1、单独训练独立的各自模态的检测器,然后得到x1(RGB)和x2(Thermal)的输出,之后计算p(y|x1)和p(y|x2)的分布概率。

2、通过将两个分布相乘,再除以类先验分布(y),并将最终得到的结果进行归一化生成最终分数。


之后再把这个预测的结果扩展到各个预测类别的预测当中去。

640.png


Independence assumptions.


再给出了x1和x2的相互独立的假设(RGB关注的地方和Thermal关注的地方完全不一致)下,我们得到的计算概率最优等价算式。尽管这种假设很理想化,在实际上其实完全不会成立,但是并不影响它的指导效果。(这里可以重点看文章的消融试验部分!)

640.jpg640.png



Relationship to prior work.


之前的工作会比较偏向于使用logit分数进行评估,但是在这篇文章中,我们对于单模态模型重新使用softmax计算类别的分数,主要是为了能够更好的优化后续的算式。这里主要是一个小技巧,可以通过简单的对数的转化技巧,节省一笔计算量!

640.png

640.png


因此,ProbEn的公式就可以等价为对数求和的操作,除以先验类并通过softmax进行规范化。令人惊讶的是统一先验的操作十分有效,即使在不平衡的数据集上,不过这种情况仅限于实验的两个数据集,不一定具有普遍性!


Missing modalities


重要的是,我们希望两个模态之间相互补充信息时,利用求和的方法和取平均的方法会存在很大的不同点。通常来说,不同模态在同一目标对象上也很难做到统一,如果取平均的会降级整体阈值。如果单一模态识别出来但是另一模态没有识别出,那么取平均后,这一模态的值就直接相当于除以2,就有可能会因此低于阈值,从而无法被检测出。如果相加的情况下,也同理,如果发生错误识别的情况下,就极有可能会出现低置信分数*2的情况,从而把背景的内容当前景对象识别出来了。如果,我们真要想合理的处理这种问题就需要将融合多模态检测框与单模态的检测得分进行比较。不要降低了有效目标的置信分数,也不要提升了无效目标的置信分数。通过理论和实验的证明,我们发现ProbEn优雅地处理了模态信息交互的情况,概率归一化的多模态后验p(y|x1, x2)也可以直接与单模态后验p(y|x1)进行比较,能够保留优秀得分,去除无效得分。


Bounding Box Fusion


现在将还可以将ProbEn的方法扩展到帮助(bbox)坐标完成对于重叠的筛选检测。

对此重新定义公式,我们将上文的ProbEn的算式改为连续的bbox的标签

具体来说,我们用z(检测相关的边界框(由其质心、宽度和高度))组成的连续随机变量来代替之前的y。


我们假设单一模态分支的检测提供了一个后验p(z| xi ),

其形式为高斯分布,方差为单一σi2,即p(z| xi ) = N(μi, σi2)

其中, μi是由模态i预测的框坐标。我们同样会假设p(z)上存在一致性的先验,这意味着可以位于接收来自平面的任何位置框坐标信息。

640.png


文中探索了三种 σi2 的设置方法。第一种方法avg修复了σi2 =1,相当于简单地平均边界框坐标。第二个s-avg近似于σi2≈1 p(y=k| xi ),这意味着在融合盒坐标时,具有更高置信分数的检测框会具有更高的权重。这比一开始简单的平均边界框的性能略好。第三个v-avg使用GNLL损失和框回归损失训练检测器预测检测的不确定性。

GNLL损失和框回归损失的组合不仅可以产生更准确的回归方差,还有助于模态间的相互信息融合,而且还提高了训练器的检测性能(这里推荐看补充实验的说明,会更加的详细)!

640.png


实验部分



文章在两个数据集上验证了不同的融合方法:KAIST和FLIR之间的差距。这两个数据集包含人脸和车牌等个人身份信息,同时使用了Detectron2的Faster RCNN作为预训练模型进行辅助推理优化,只在单个Nvidia GTX 2080上就可以完成工作!


Multimodal Pedestrian Detection on KAIST


640.png640.png



ProbEn++的性能显著优于所有现有的方法,将性能从现有的6.48提高到5.14!这清楚地表明,当条件独立性假设不成立时,ProbEn也可以工作得相当好,ProbEn作为一种不用经过学习就可以直接使用的解决方案,我认为它应该成为未来多模态检测研究的一个新的思考方向


Multimodal Object Detection on FLIR

640.png640.png



值得注意的是,我们的融合方法提高了在融合阶段中对自行车的检测能力也得到了提高。自行车是不会散发热量来传递强烈的热信号,所以在RGB中的信息会更明显,将两者模态进行融合在一起可以大大提高自行车的检测能力。


总结



ProbEn,显著优于先前的方法。其强大性能的关键原因是


  • (1)它可以利用在RGB的大规模预训练模型提升效果!
  • (2)它可以有效帮助不同模态之间的信息交互补偿!


通过对NMS在多模态后处理融合的问题进行了修改,结合以往工作的经验,文章与之前的工作相比,ProbEn无论是在对齐和非对齐的多模态的数据集中都获得了相当不错相对改善。


这篇文章其实与我之前看得RGB-Thermal的文章不同,是一个后处理流派的文章,而我本人是一个坚定的中(特征)融合的信徒,所以读这篇文章的时候内心多少有点带着敌意。仔细阅读下来,其实文章会画更多笔墨在结果的决策与融合的上面,全过程都可以直观的可视化。这个过程,没有黑箱,只有数学理论的推倒,不需要训练,只需要整理不同模态分支的结果,然后提出新的融合方案。打破黑箱,拥抱数学,这是我很想和大家分享的一个点,所以有了这篇文章。


原文首发微信公众号【自动驾驶之心】:一个专注自动驾驶与AI的社区(https://mp.weixin.qq.com/s/NK-0tfm_5KxmOfFHpK5mBA

相关文章
|
1月前
|
敏捷开发 jenkins Devops
探索软件测试的新篇章:自动化与持续集成的融合之道
【9月更文挑战第31天】 在软件开发的海洋中,测试是确保航船稳健前行的灯塔。本文将引领读者驶入软件测试的新纪元,探索自动化测试和持续集成如何携手共创高效、可靠的开发流程。我们将从基础概念出发,逐步深入到实际操作层面,揭示这一现代软件开发模式的核心价值和实现路径。你将看到,通过代码示例和实践案例,如何将理论转化为提升软件质量的具体行动。
|
1月前
|
运维 监控 Devops
DevOps实践:自动化部署与持续集成的融合之旅
【10月更文挑战第7天】在软件开发领域,DevOps已成为一种文化和实践,它倡导开发(Dev)与运维(Ops)之间的协作与整合。本文将引导读者了解如何通过自动化部署和持续集成(CI)的实践来提升软件交付的速度和质量。我们将探讨一些实用的工具和技术,以及它们是如何帮助团队高效地管理代码变更、测试和部署的。文章将不包含代码示例,但会详细解释概念和流程,确保内容的通俗易懂和条理性。
133 62
|
23天前
|
jenkins 测试技术 持续交付
探索软件测试的新篇章:自动化与持续集成的融合
【10月更文挑战第25天】在软件开发的世界里,质量是王道。本文将带你领略如何通过自动化测试和持续集成(CI)的结合,提升软件交付的速度与质量,确保每一次代码提交都是一次胜利的宣言。
|
2月前
|
Devops jenkins 测试技术
DevOps实践:持续集成与自动化测试的融合之道
【9月更文挑战第29天】在软件开发的快节奏竞赛中,DevOps如同一位智慧的舵手,引领着船只驶向效率与质量的彼岸。本文将揭开DevOps的神秘面纱,探索其核心理念如何通过持续集成(CI)和自动化测试的实践,实现软件开发流程的优化与加速。我们将一同见证代码从构思到部署的旅程,以及这一过程中的关键技术和工具如何协同工作,确保软件质量和交付速度的双重提升。
|
2月前
|
敏捷开发 jenkins Devops
软件测试的新篇章:自动化与持续集成的融合
【9月更文挑战第15天】在软件开发领域,质量保障始终是核心议题。随着敏捷开发的普及和DevOps文化的兴起,自动化测试和持续集成(CI)已成为现代软件工程不可或缺的组成部分。本文将深入探讨自动化测试的重要性、实施策略以及如何将其无缝集成到CI流程中,以实现更高效、更稳定的软件开发周期。通过具体案例分析,我们将揭示自动化测试和CI如何相互促进,提升软件交付的速度和质量。
|
2月前
|
搜索推荐 安全 物联网
智能家居技术的未来:集成化与个性化的融合
本文将深入探讨智能家居技术的发展趋势,特别是集成化和个性化如何成为未来智能家居系统设计的核心。文章将分析当前智能家居技术面临的挑战,并展示通过集成化提高系统效率、降低成本的方法。同时,讨论个性化服务在提升用户体验方面的重要性,以及如何通过数据驱动和人工智能技术实现这一目标。最后,文章将预测未来智能家居技术的发展方向,包括物联网设备的进一步整合、安全性的提升,以及智能家居技术在健康监测和环境可持续性方面的应用潜力。
108 1
|
3月前
|
jenkins 测试技术 持续交付
探索软件测试的新天地:自动化与持续集成的融合
【8月更文挑战第6天】在这篇文章中,我们深入探讨了软件测试领域内两大趋势——自动化测试和持续集成——如何相互融合,共同推动软件开发过程的效率和质量。文章将通过实际案例分析,展示这一融合对现代软件开发实践的影响,并讨论其对测试人员角色的深远意义。
56 9
|
3月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
77 0
|
3月前
|
存储 C# 关系型数据库
“云端融合:WPF应用无缝对接Azure与AWS——从Blob存储到RDS数据库,全面解析跨平台云服务集成的最佳实践”
【8月更文挑战第31天】本文探讨了如何将Windows Presentation Foundation(WPF)应用与Microsoft Azure和Amazon Web Services(AWS)两大主流云平台无缝集成。通过具体示例代码展示了如何利用Azure Blob Storage存储非结构化数据、Azure Cosmos DB进行分布式数据库操作;同时介绍了如何借助Amazon S3实现大规模数据存储及通过Amazon RDS简化数据库管理。这不仅提升了WPF应用的可扩展性和可用性,还降低了基础设施成本。
84 0
|
3月前
|
机器学习/深度学习
【机器学习】模型融合Ensemble和集成学习Stacking的实现
文章介绍了使用mlxtend和lightgbm库中的分类器,如EnsembleVoteClassifier和StackingClassifier,以及sklearn库中的SVC、KNeighborsClassifier等进行模型集成的方法。
56 1

热门文章

最新文章