论文: Repulsion Loss: Detecting Pedestrians in a Crowd
论文地址: https://arxiv.org/abs/1711.07752
代码地址: https://github.com/bailvwangzi/repulsion_loss_ssd
这是一篇 face++ 和同济大学联合出品的论文,主要的 motivation 是解决密集人群中的遮挡检测问题,从两个方面入手,一个方面是吸引目标框向 target 靠拢,另外一个方面是同时防止候选框向周围的目标移动。
介绍
我们知道在密集人群检测中,遮挡是一个非常大的挑战,同时遮挡也分为两个类型,一种是类内遮挡(inter-class occlusion),也就是被相同种类的目标遮挡,一种是类间遮挡(intra-class occlusion),也就是被不同种类的目标遮挡。遮挡会导致一些严重的后果,比如两个人很近的重叠在一起,检测的时候框就会 confused 该靠近哪个目标,这个时候框会出现偏移,可以看看图1的结果,预测的虚线框会往蓝色的框上面靠拢。在用 non-maximum supression (NMS) 做后处理的时候,偏移的框就有可能被 NMS 抑制,出现漏检的情况,换句话说,遮挡会让检测器对 NMS 的 threshold 比较敏感,如果 threshold 设置的比较高,会出现很多的误检,如果 threshold 设置的比较低,目标偏移的框就会被抑制,从而出现漏检。考虑到密集人群周围的物体对 target 的影响,这篇文章设计了一个新的 loss 函数叫做 repulsion loss 来解决这个问题。除此之外,我觉得这篇文章还有一个比较好的贡献就是研究了密集人群检测中到底是哪些因素会对检测器的效果有影响。
![](https://ws4.sinaimg.cn/large/006tNbRwly1fwq4x1sle3j30ow0c60tg.jpg)
人群遮挡的影响
作者通过 baseline Faster R-CNN
来探索人群遮挡对 detector 的影响,将 CityPersons
的数据集分成了三个部分,分别叫做 Reasonable-crowd
, Reasonable-occ
和 Resonable
。所有的验证集就是 Reasonable
,而 CityePerons
提供了每个行人的可见区域,所以根据公式 o c c ≜ 1 − a r e a ( B B o x v i s i b l e ) a r e a ( B B o x ) occ \triangleq 1 - \frac{area(BBox_{visible})}{area(BBox)} occ≜1−area(BBox)area(BBoxvisi