本文主要是介绍【论文解读】Count- and Similarity-aware R-CNN for Pedestrian Detection(基于计数和相似度感知的R-CNN用于行人检测),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
论文题目:Count- and Similarity-aware R-CNN for Pedestrian Detection
论文出处:European Conference on Computer Vision(ECCV)2020
论文链接:文章下载
代码链接:代码
一、创新点
- 提出了计数和相似性分支网络——count-and-similarity branch(CSB)
- 提出了计数加权检测损失——count-weighted detection loss(CW-loss)
- 提出了新的NMS算法——count and similarity-aware NMS(CAS-NMS)
二、基准网络
采用Faster R-CNN作为基础框架,其工作原理为:
- 第一阶段:使用区域建议网络(region proposal network,RPN)来产生建议框和置信度得分;
- 第二阶段:也称为Fast R-CNN,从每个建议框中提取感兴趣区域(region of interest,RoI)特征,然后是一个检测分支,生成类别置信度得分和每个建议框的回归坐标。
在RPN和Fast R-CNN模块中,目标检测问题可以表述为分类损失和回归损失的联合最小化: L d e t = L r p n + L f r c L_{det} = L_{rpn} + L_{frc} Ldet=Lrpn+Lfrc
L c = 1 N c l s ∑ i L c l s ( p i , p i ∗ ) L_{c} = \frac 1{N_{cls}}\sum_iL_{cls}(p_i,p_i^*) Lc=Ncls1i∑Lcls(pi,pi∗)
L r = λ 1 N r e g ∑ i L r e g ( l i , l i ∗ ) L_{r} = \lambda \frac 1{N_{reg}}\sum_iL_{reg}(l_i,l_i^*) Lr=λNreg1i∑Lreg(li,li∗)
p i p_i pi表示建议框i为行人的预测概率, p i ∗ p_i^* pi∗是对应的真实标签; l i l_i li是建议框i的预测位置, l i ∗ l_i^* li∗是对应的真实位置。 λ \lambda λ是平衡参数。
三、新框架
3.1 动机
以前的遮挡检测算法都是利用行人的全身标注或者额外的可见区域表标注进行训练。
本文提出的框架不依赖于额外的可见区域监督,而是利用RoI内的行人计数信息,这些信息可以通过全身标注获得
3.2 框架分析
整个网络框架包括一个检测分支,一个计数分支和一个相似度分支。
-
检测分支
检测分支用来预测行人的概率 p i p_i pi及其位置 l i l_i li -
计数分支
计数分支在Faster R-CNN的RPN和Fast R-CNN模块中对损失进行加权,用来生成计数加权检测损失 -
相似度分支
相似度分支用来计算重叠行人之间的相似性检测分支
- 计数加权检测损失
为了解决拥挤遮挡情况下,行人之间会高度重叠影响检测效果。在分类损失和回归损失中,引入了与建议框对应的真实标签成比例的权重 w i w_i wi,旨在对高度重叠的行人上发生的检测错误赋予更高的权重。计数加权损失函数 L d e t ′ L_{det}^{'} Ldet′为:
L c ′ = 1 N c l s ∑ i w i L c l s ( p i , p i ∗ ) L_c^{'} = \frac 1{N_{cls}}\sum_iw_iL_{cls}(p_i,p_i^*) Lc′=Ncls1i∑wiLcls(pi,pi∗)
L r ′ = λ 1 N r e g ∑ i w i L r e g ( l i , l i ∗ ) L_r^{'} = \lambda \frac 1{N_{reg}}\sum_iw_iL_{reg}(l_i,l_i^*) Lr′=λNreg1i∑wiLreg(li,li∗)
w i w_i wi是一个损失权重,其将更高的权重分配给大量真实边界框重叠的建议框。每个建议框
b i b_i bi的权重可以从真实标签的数量 c I ∗ c_I^* cI∗中获得:
w i = 1 + α ⋅ m a x ( c i ∗ − 1 , 0 ) w_i = 1 + \alpha · max(c_i^*-1,0) wi=1+α⋅max(ci∗−1,0) - 建议框的计数
一个建议框 b i b_i bi的真实标签数量 c i ∗ c_i^* ci∗取决于全身边界框的重叠数量。
首先,计算 b i b_i bi与其重叠的所有真实边界框之间的交并比(IoU);
然后, c i ∗ c_i^* ci∗被定义为: I o U ≥ t h ( 设 定 的 阈 值 ) IoU≥th(设定的阈值) IoU≥th(设定的阈值)的真实边界框的数量。
计数和相似度分支
- 计数和相似度的结合使用
- 在存在人群遮挡的情况下,会生成很多高度重叠的建议框并有较高的检测分数,当使用固定的阈值来进行NMS时,会导致错误抑制。在这种情况下,可以使用RoI的计数预测来获得重叠行人的数量并以此来调整阈值,从而降低错误抑制的出现。
- 但是,在遮挡情况下,计数对于识别不同的建议框可能不是最优的,因为拥有较高置信度的几个建议框可能属于同一个行人实例。因此,理想的结果是能够识别出不同行人的不建议。
- 利用相似性嵌入将RoI特征映射到低维表示中,获取重叠行人之间的不同表示
- 建议框计数
建议框 b i b_i bi的行人计数网络由三层全连接层组成,其中最后一层输出计数 c i c_i ci,其损失函数定义为:
L c p = 1 N c p ∑ i = 1 N c p ∥ c i − c i ∗ ∥ 2 2 L_{cp} = \frac 1{N_{cp}}\sum_{i=1}^{N_{cp}}\lVert c_i-c_i^*\rVert_2^2 Lcp=Ncp1i=1∑Ncp∥ci−ci∗∥22
N c p N_{cp} Ncp表示建议框, c i c_i ci和 c i ∗ c_i^* ci∗分别表示预测的计数以及真实的计数。 - 建议框相似度
为了解决预测的计数来识别不同的建议框是次优的,引入了一种相似性嵌入分支,该分支将建议框 b i b_i bi的RoI特征映射到低维特征 F i F_i Fi中,相似性嵌入网络也是由三层全连接组成,最后一层输出嵌入特征 F i F_i Fi。
对于给定的建议框 b i b_i bi,首先选择 I o U ≥ t h IoU≥th IoU≥th的重叠建议框。 b j b_j bj是其中一个真实标签计数 c i ∗ ≥ 1 c_i^*≥1 ci∗≥1的重叠建议框,其嵌入特征为 F j F_j Fj。使用至少有一个真实标签计数的建议框训练相似性嵌入子网络,其损失函数为:
L s e = ∑ i j ( y i j d i j 2 + ( 1 − y i j ) m a x ( ω − d i j , 0 ) 2 ) N s e L_{se} = \frac {\sum_{ij}(y_{ij}d_{ij}^2+(1-y_{ij})max(\omega-d_{ij},0)^2)}{N_{se}} Lse=Nse∑ij(yijdij2+(1−yij)max(ω−dij,0)2)
d i j = ∥ F i − F j ∥ 2 d_{ij} = \lVert F_i-F_j \rVert ^2 dij=∥Fi−Fj∥2表示嵌入特征 F i F_i Fi和 F j F_j Fj之间的距离;
y i j y_{ij} yij表示真实标签相似度,同一个真实边界框的建议框被标记为相似,即 y i j = 1 y_{ij}=1 yij=1;
N s e N_{se} Nse是训练相似度嵌入损失时使用的建议框数量。
后处理机制
遮挡情况下,由于建议框之间严重重叠,传统的NMS算法会导致正确的预测框丢失。为了解决这个问题,引入了通过计数和相似度感知进行后处理的NMS算法,称为CAS-NMS,它考虑了建议框之间的计数和相似度:
- 首先,根据预测框的置信度分数进行排序;
- 选择置信度分数最高的预测框 b H b_H bH;
- 假设 b j b_j bj是与 b H b_H bH的 I o U ≥ t h IoU≥th IoU≥th的一个预测框,其与 b H b_H bH对应一个不同行人的情况需要满足:(1) b H b_H bH中有多个行人;(2) b j b_j bj中至少有一个行人;(3) b j b_j bj和 b H b_H bH不相似,即距离较远;
- CAS-NMS利用 b H b_H bH和 b j b_j bj的预测计数和相似度嵌入,将 b j b_j bj归类为一个重复建议框,当不满足上面的三种情况,则 b j b_j bj将被抑制。
- 注意:由于相似度 d j H d_{jH} djH仅在第三个条件中被使用,因此只有满足前两个条件的预测框需要进行相似度计算。
- 计数加权检测损失
四、实验验证
4.1 CityPersons数据集
- 检测算法的比较
- 消融实验
- 损失函数比较
- NMS比较
4.2 CrowdHuman数据集(目标检测)&OCHuman数据集(实例分割)
五、总结
- 在两阶段行人检测框架基础上增加了两个并行子网络,用来获取行人计数和建议框相似性。其中,行人计数和提议相似性信息都来自于训练行人检测器的标准全身标注。
- 引入一个计数加权的检测损失函数,对高重叠情况下的检测错误赋予更高的权值。
- 引入了一个计数和相似度感知的NMS策略来识别不同的建议。
注意:本博客的初衷是用做个人笔记并进行交流探讨,由于个人能力有限,若存在解读错误问题,或者您在阅读本文有不理解的地方,欢迎指正交流。
这篇关于【论文解读】Count- and Similarity-aware R-CNN for Pedestrian Detection(基于计数和相似度感知的R-CNN用于行人检测)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!