【论文解读】Count- and Similarity-aware R-CNN for Pedestrian Detection(基于计数和相似度感知的R-CNN用于行人检测)

本文主要是介绍【论文解读】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=Ncls1iLcls(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=λNreg1iLreg(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=Ncls1iwiLcls(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=λNreg1iwiLreg(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(ci1,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(设定的阈值) IoUth()的真实边界框的数量。

    计数和相似度分支

    • 计数和相似度的结合使用
      • 在存在人群遮挡的情况下,会生成很多高度重叠的建议框并有较高的检测分数,当使用固定的阈值来进行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=1Ncpcici22
      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 IoUth的重叠建议框。 b j b_j bj是其中一个真实标签计数 c i ∗ ≥ 1 c_i^*≥1 ci1的重叠建议框,其嵌入特征为 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=Nseij(yijdij2+(1yij)max(ωdij,0)2)
      d i j = ∥ F i − F j ∥ 2 d_{ij} = \lVert F_i-F_j \rVert ^2 dij=FiFj2表示嵌入特征 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 IoUth的一个预测框,其与 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用于行人检测)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/188754

相关文章

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告:

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

解读Pandas和Polars的区别及说明

《解读Pandas和Polars的区别及说明》Pandas和Polars是Python中用于数据处理的两个库,Pandas适用于中小规模数据的快速原型开发和复杂数据操作,而Polars则专注于高效数据... 目录Pandas vs Polars 对比表使用场景对比Pandas 的使用场景Polars 的使用

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

Python如何实现PDF隐私信息检测

《Python如何实现PDF隐私信息检测》随着越来越多的个人信息以电子形式存储和传输,确保这些信息的安全至关重要,本文将介绍如何使用Python检测PDF文件中的隐私信息,需要的可以参考下... 目录项目背景技术栈代码解析功能说明运行结php果在当今,数据隐私保护变得尤为重要。随着越来越多的个人信息以电子形

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相

MySQL中的MVCC底层原理解读

《MySQL中的MVCC底层原理解读》本文详细介绍了MySQL中的多版本并发控制(MVCC)机制,包括版本链、ReadView以及在不同事务隔离级别下MVCC的工作原理,通过一个具体的示例演示了在可重... 目录简介ReadView版本链演示过程总结简介MVCC(Multi-Version Concurr

关于Gateway路由匹配规则解读

《关于Gateway路由匹配规则解读》本文详细介绍了SpringCloudGateway的路由匹配规则,包括基本概念、常用属性、实际应用以及注意事项,路由匹配规则决定了请求如何被转发到目标服务,是Ga... 目录Gateway路由匹配规则一、基本概念二、常用属性三、实际应用四、注意事项总结Gateway路由