博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Double Anchor R-CNN for Human Detection in a Crowd论文笔记
阅读量:4147 次
发布时间:2019-05-25

本文共 2063 字,大约阅读时间需要 6 分钟。

论文链接:

论文题目表明该算法应用场景为 拥挤人群的人体检测。

一、摘要

  1. 人体检测的难题:1)拥挤遮挡问题;2)后处理的NMS,很难确定阈值,太大会导致误检多,太小漏检较多,如图1所示;

    图1

  2. 现象:相比于人体,头部特征更为明显,头和头之间的交叉肯定比人小很多;

  3. 思想:将头部检测添加到人体检测中。

二、Faster R-CNN

在这里插入图片描述

1.Conv layers:作为一种CNN网络目标检测方法,Faster RCNN首先使用一组基础的conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。

2.Region Proposal Networks:RPN网络用于生成region proposals。该层通过softmax判断anchors属于positive或者negative,再利用bounding box regression修正anchors获得精确的proposals。

3.Roi Pooling:该层收集输入的feature maps和proposals,综合这些信息后提取proposal feature maps,送入后续全连接层判定目标类别。

4.Classification && Regression:利用proposal feature maps计算proposal的类别,同时再次bounding box regression获得检测框最终的精确位置。

三、Double Anchor R-CNN

在这里插入图片描述

  1. Backbone: RestNet50 + FPN(特征金字塔);
  2. RPN:提出double anchor RPN,生成人体和头部的推选框对;
  3. 特征融合:融合头部和人体的特征;
  4. Joint NMS: 用于后处理。

3.1 Double Anchor RPN

在这里插入图片描述

  1. Double Anchor RPN: 一个anchor同时预测头部位置偏移和人体位置偏移,一个分类得分(前景or背景);

  2. loss:

    在这里插入图片描述
    第一项为分类的交叉熵损失,第二项为头部框的Smooth L1损失,第三项为人体框的Smooth L1损失。

  3. 正例选取方法: head-body 分支(anchor和头部gound truth iou > 0.7为正例)。

3.2 Proposal Crossover

1.问题:因为Double Anchor RPN只考虑了头框groundtruth来选正样本anchor,这样的话该anchor往往和对应的人框groundtruth偏差较大,这就带来了很大的回归难度,因此RPN阶段得到的人框proposal质量并不高。

2.解决方案:训练时并联body-head分支作为训练增强,利用人框选正例anchor,可以保证人框proposal的质量,之后该分支的人框proposal和之前分支的人框proposal通过规则匹配(IOU>0.5),然后质量高的人框proposal就可以替换掉质量低的人框proposal,最终就可以得到一对质量高的头框和人框。

3.3 特征融合

将特征通过RoIAlign变成相同大小,再通过FC层,得到head FC向量特征和Body FC向量特征,对两个FC特征进行融合(具体方式未知)。

3.4 Joint NMS

在这里插入图片描述

1.得分:利用head和body得分的加权和;

2.过滤:head和body框必须同时满足条件才会留下;

四、实验

实验数据:CrowdHuman(框框之间IOU>0.5的占比比较大)

1. 整体表现

在这里插入图片描述

MR:在每张图像固定误检率的情况下计算的漏检率

DA-RCNN: 本文算法,后处理采用普通的NMS

DA-RCNN+J-NMS:本文算法

对比结论:1.本文算法效果较好;2.Joint NMS好于NMS

在这里插入图片描述

在这里插入图片描述
本文算法会减少误检。

2. 消融实验

2.1 Proposal crossover

在这里插入图片描述

1.解释

  • sample by head:只有head-body rpn一个分支,利用anchor和head的iou选择正例;
  • sample by both-0.4: 只有head-body rpn一个分支, 当anchor和head及body的ground true都大于0.4时为正例;
  • sample by both-0.4: 只有head-body rpn一个分支, 当anchor和head及body的ground true都大于0.5时为正例;
  1. 结论:
    proposal crossover效果较好。

2.2 特征融合

在这里插入图片描述

说明: 这两种方式我也没太弄明白

结论: 本文的特征融合方式较好。

2.3 Joint NMS

在这里插入图片描述

3. 常用数据

在这里插入图片描述

结论:在普通数据集上效果也不差,但在’crowd’的数据集上效果显著。

五、结论

1) 本文算法通过对每个人的头部和人体同时进行检测,直观有效地解决了人体检测中人群遮挡问题;

2) 对“Crowd”数据最有效;

3) 具有较强的扩展性,扩展检测其他部位。

转载地址:http://umjti.baihongyu.com/

你可能感兴趣的文章
JSP的内置对象及方法
查看>>
android中SharedPreferences的简单例子
查看>>
android中使用TextView来显示某个网址的内容,使用<ScrollView>来生成下拉列表框
查看>>
andorid里关于wifi的分析
查看>>
Spring MVC和Struts2的比较
查看>>
Hibernate和IBatis对比
查看>>
Spring MVC 教程,快速入门,深入分析
查看>>
Android 的source (需安装 git repo)
查看>>
Commit our mod to our own repo server
查看>>
LOCAL_PRELINK_MODULE和prelink-linux-arm.map
查看>>
Simple Guide to use the gdb tool in Android environment
查看>>
Netconsole to capture the log
查看>>
Build GingerBread on 32 bit machine.
查看>>
How to make SD Card world wide writable
查看>>
Detecting Memory Leaks in Kernel
查看>>
Linux initial RAM disk (initrd) overview
查看>>
Timestamping Linux kernel printk output in dmesg for fun and profit
查看>>
There's Much More than Intel/AMD Inside
查看>>
CentOS7 安装MySQL 5.6.43
查看>>
使用Java 导入/导出 Excel ----Jakarta POI
查看>>