ECCV 2018 | Bi-box行人检测:‘行人遮挡’为几何?
极市平台是专业的视觉算法开发和分发平台,加入极市专业CV交流群,与6000+来自腾讯,华为,百度,北大,清华,中科院等名企名校视觉开发者互动交流!更有机会与李开复老师等大牛群内互动!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。点击文末“阅读原文”立刻申请入群~
“本文是ECCV2018处理行人检测中遮挡问题的又一篇力作,通过预测行人目标的可见部分来指导网络学习,实验表明对严重遮挡情况下的行人检测十分有效。”
作者:Panzer
论文地址:
https://cse.buffalo.edu/~jsyuan/papers/2018/Bi-box%20Regression%20for%20Pedestrian%20Detection.pdf
背景介绍
与通用目标检测相比,遮挡情况在行人检测中更为普遍,为此也是行人检测领域最广为关注的问题之一,例如今年的CVPR共有3篇行人检测的工作,均解决的是遮挡情况下的行人检测,同样今年的ECCV共有4篇行人检测的相关工作,其中有两篇重点解决的是行人检测中的遮挡问题,可见遮挡受关注程度之高,故也是极其具有挑战性的一个问题。
对于遮挡情况下的行人检测,总结已有的相关工作,主要有两种思路:一是对目标候选框分成不同part逐一处理、区别对待再加以特征融合;二是从loss的角度使得目标候选框对相互遮挡的情况更具判别性,如CVPR2018的RepLoss[1],ECCV2018的OR-CNN[2]。
目前主流的行人检测算法大多基于两阶段的检测器框架,本文也不例外,但另辟蹊径,通过让网络同时输出目标候选框的可见部分,指导网络在学习的过程中对遮挡情况下的行人目标更具有判别力,实验表明该思路对严重遮挡情况下的行人检测十分有效。
本文方法
本文方法遵循Fast R-CNN检测框架。为了处理遮挡问题,本文提出利用一个网络同时进行行人检测和遮挡估计,具体而言就是让网络并行两个分支,分别输出两个bounding box,一个是完整的行人框,另一个时行人的可见部分,如下图1所示,前者为红色框后者为蓝色框,对于没有行人目标的候选框而言,则可见部分分支的输出要尽量逼近候选框的中心。
文中图2给出了本文算法的具体流程,基于Fast R-CNN检测框架,首先产生目标候选框,将图像和目标候选框输入卷积神经网络,然后通过RoI pooling提取每个目标候选框的特征,对这些特征进行分类和回归,分别得到两个box,图2中的绿色框代表行人目标整体,黄色框代表可见部分。文中图3给出了具体的网络架构示意图,其主要包括两个分支:可见部分估计分支和行人整体估计分支。
对于行人整体估计分支的具体处理流程和通用目标检测一致,不再赘述,这里重点论述下可见部分估计分支,也是本文的贡献所在。
对于网络训练,一个目标候选框P被当成正样本需要满足如下两个条件:
也即目标候选框P不仅要和整个标注框的重叠程度大于一定阈值,还要和标注框内行人可见部分的重叠程度大于一定阈值,这种设定正样本的方式显然是合理的,能够更有效地指导网络学习进而获得更强的特征判别力。以图4为例,如果和已有方法一样,只用式(1)中的第一个条件时,图(b)中的蓝色框也会被当成正样本,然而蓝色框中包含的目标信息非常有限,显然是会干扰网络的正常学习的,而如果加上式(1)中的第二个条件,则只有红色框才会被当成正样本。
对于可见部分估计分支的正样本而言,其回归目标和整体估计分支一致,定义如下:
但对于负样本也应当有回归目标,因为有些负样本和真实目标没有重叠,而有些负样本和真实目标有部分重叠,为了更好地区分正负样本,作者将负样本的回归目标定义为目标候选框的中心区域,实验表明这一点非常重要。如果可见部分估计分支只为正样本分配回归目标的话,这个分支的训练将被没有遮挡的目标所主导(因为这部分目标的可见部分和整体部分基本是一致的),结果会导致预测的负样本的可见部分和整体部分是一致的,这样两个分支就不具有互补性了,也就达不到本文利用两个分支的目的。
实验分析
实验细节:
实验是在Caltech和CityPerson上做的,因为目前只有这两个数据集提供了可见部分的标注。其中Caltech训练和测试均采用原始标注。
实验结果:
首先我们看下在Caltech上的验证实验,下表1展示了式(1)中的两个超参数在不同设定下的评估结果,其中heavy partial代表不同的遮挡程度,α设为固定的0.5,当β逐渐增大时,正样本的质量越高但也意味着正样本数量的降低,可见利用本文这套选择正样本的机制还是很有效的,尤其是在heavy子集上能提升2个点左右。
表2具体展示了本文各个贡献所带来的性能提升,FRCN代表最原始的Fast R-CNN;FRCN+则代表利用了本文的正样本选择机制,在heavy子集上的提升最为明显;VPE,FBE和PDOE分别代表利用可见部分估计分支、整体估计分支和融合两个分支得分的结果,PDOE-代表训练可见部分估计分支的回归目标时,负样本对loss没有任何贡献,可见PDOE在heavy子集上得到了最好结果,比FRCN提升了5.5个点;如果利用RPN来提取目标候选框并融合其得分,本文算法在Reasonable子集上得到了最好结果。
图5展示了本文算法与其他两个遮挡处理算法的对比结果,其中DeepParts就是将目标分成不同part分别进行打分的,可见本文算法的性能优势还是很明显的尤其是在严重遮挡子集上,当然本文算法在Reasonable子集的7.6的表现也是当前Caltech库上的state-of-the-art,论文中有图6为证,这里由于篇幅关系不再展示。
同样在CityPersons验证集上的表现也是state-of-the-art(如下表3),其中Small代表小目标子集,All代表所有标注目标均参与评估。结果基于测试图像扩大1.3倍所得,本文算法在Reasonable设定下取得了11.24的表现,优于该数据集上的FasterRCNN[3]的12.81,此外在Small和Heavy子集上本文方法也比FRCN有较大的提升,足以证明对遮挡情况下的行人检测的优越性。
总结展望
本文贡献:
(1)本文重点关注行人检测中的遮挡问题,并基于Fast RCNN的检测框架提出了一套解决方案。
(2)本文实验给出两个结论:1、预测行人框的可见部分是可行的,并可以带来整体行人检测的性能提升;2、训练时,结合遮挡程度来定义高质量的正样本,可以为训练带来帮助,不失为一种非常经济有效的提升性能的trick。
个人见解:
(1)遮挡问题一直是行人检测领域非常具有挑战性的一个问题。其困难在于:从当前常见的行人检测benchmark的评估的角度,需要检测器输出被遮挡目标的整体部分,为此检测器需要根据仅有的未被遮挡的信息来推断出整个目标的位置,如何利用未被遮挡的信息是解决这一问题的关键,本文则将这一信息直接用于指导网络训练,也即指导网络在输出行人目标整体box的同时也要输出行人目标的可见部分box,实验证明这种思路是有效的,能够显著提升行人检测的准确性,笔者认为该思路有效的原因在于训练过程中给了网络更多的supervision,但这种方法所产生的代价也是显而易见的,也就是其需要数据集额外给出行人目标可见部分的标注,故该方法无法在没有可见部分标注的数据集上使用。
(2)不可否认的是,未来将还会有大量的工作聚焦于行人检测中的遮挡问题。从本文可以得到的一个启发是:只要给予网络训练以正向的指导(例如明确告知其遮挡的程度)就能获得一定的性能提升,因此可以从数据增广的角度考虑增加训练集中行人遮挡类型的丰富程度,也是值得探索的一个方向。
参考文献:
[1] Repulsion Loss: Detecting Pedestrians in a Crowd. CVPR (2018)
[2] Occlusion-aware R-CNN: Detecting Pedestrians in a Crowd. ECCV (2018)
[3] CityPersons: A Diverse Dataset for Pedestrian Detection CVPR (2017)
END