【论文解读】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

相关文章

Linux jq命令的使用解读

《Linuxjq命令的使用解读》jq是一个强大的命令行工具,用于处理JSON数据,它可以用来查看、过滤、修改、格式化JSON数据,通过使用各种选项和过滤器,可以实现复杂的JSON处理任务... 目录一. 简介二. 选项2.1.2.2-c2.3-r2.4-R三. 字段提取3.1 普通字段3.2 数组字段四.

MySQL之搜索引擎使用解读

《MySQL之搜索引擎使用解读》MySQL存储引擎是数据存储和管理的核心组件,不同引擎(如InnoDB、MyISAM)采用不同机制,InnoDB支持事务与行锁,适合高并发场景;MyISAM不支持事务,... 目录mysql的存储引擎是什么MySQL存储引擎的功能MySQL的存储引擎的分类查看存储引擎1.命令

Python内存管理机制之垃圾回收与引用计数操作全过程

《Python内存管理机制之垃圾回收与引用计数操作全过程》SQLAlchemy是Python中最流行的ORM(对象关系映射)框架之一,它提供了高效且灵活的数据库操作方式,本文将介绍如何使用SQLAlc... 目录安装核心概念连接数据库定义数据模型创建数据库表基本CRUD操作创建数据读取数据更新数据删除数据查

Spring的基础事务注解@Transactional作用解读

《Spring的基础事务注解@Transactional作用解读》文章介绍了Spring框架中的事务管理,核心注解@Transactional用于声明事务,支持传播机制、隔离级别等配置,结合@Tran... 目录一、事务管理基础1.1 Spring事务的核心注解1.2 注解属性详解1.3 实现原理二、事务事

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

MySQL8.0临时表空间的使用及解读

《MySQL8.0临时表空间的使用及解读》MySQL8.0+引入会话级(temp_N.ibt)和全局(ibtmp1)InnoDB临时表空间,用于存储临时数据及事务日志,自动创建与回收,重启释放,管理高... 目录一、核心概念:为什么需要“临时表空间”?二、InnoDB 临时表空间的两种类型1. 会话级临时表

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1