参考代码:CrowdDetection

1. 概述

导读:在一些密集场景下检测算法由于算法自身问题导致其对密集场景检测存在问题,整篇文章正是解决这样的场景下的检测问题。这篇文章主要的思想就是将原来单个框检测的方式修改为预测一个相互关联框的集合(instance set)(可以看作是一块区域目标的集合),并且针对这种改进提出了EMD Loss和Set NMS去监督与提取最后的结果。文章的方法使用FPN-Res50作为backbone在CrowdHuman数据集上获得了4.9%(without RM),在CityPersons数据集上提升1%的MR−2MR^{-2}MR−2。并且文章的方法具有较好的可移植性(适配很多现有的检测算法)和通用性(其在COCO数据集上也有较好的性能表现)。

密集场景下的检测一直是传统检测算法较难解决的问题,这主要有两个原因:

  • 1)密集场景下检测的目标一般具有近似的特征表达,这就使得网络很难将这些单独的个体分离开;
  • 2)由于不同个体的检测框相互存在较多的重叠部分,这就使得这些检测结果很大可能被NMS算法给去除掉;

下图是传统的检测算法检测结果(上图,虚线框就是被漏掉的)和文章提出方法的检测结果(下图):

文章针对这样的密集场景处理办法是去预测目标集合的位置,而不是单独的个体目标,其示意图见下图所示:

上图(a)中分别使用红绿蓝表示刀子/叉子/空,(b)图将这些划分为集合进行预测。对于这样的改进文章提出了三点改进优化:

  • 1)使用EMD Loss监督集合目标的回归;
  • 2)使用Set NMS作为集合目标检测结果的后处理;
  • 3)提供一个可选择的RM(refinement module),用以排除一些错误的定位;

2. 方法设计

2.1 网络结构

这篇文章采用的检测网络架构师Res50-FPN,之后使用RCNN的检测头进行目标检测,其结构见下图所示:

2.2 instance set定义

既然相互重叠较多的目标较难单个进行处理,因而一个很自然的理念就是将几个重叠较为严重的融合成一个进行预测,因而融合之后的样本描述为:
G(bi)={gi∈G∣IoU(gi,bi)<θ}G(b_i)=\{g_i\in G|IoU(g_i,b_i)\lt \theta\}G(bi​)={gi​∈G∣IoU(gi​,bi​)<θ}
其中,GGG是实际的训练标注样本,θ\thetaθ是设定的划分阈值。

2.3 instance set 预测

对于每个instance set样本bib_ibi​其经过网络预测之后得到预测结果(ci,Ii)(c_i,I_i)(ci​,Ii​),用以分别代表检测框的置信度和坐标值(注意这里的预测结果可能是存在多个的)。因而这个instance set样本的预测结果可以描述为:
P(bi)={(ci(1),Ii(1)),(ci(2),Ii(2)),…,(ci(K),Ii(K))}P(b_i)=\{(c_i^{(1)},I_i^{(1)}),(c_i^{(2)},I_i^{(2)}),\dots,(c_i^{(K)},I_i^{(K)})\}P(bi​)={(ci(1)​,Ii(1)​),(ci(2)​,Ii(2)​),…,(ci(K)​,Ii(K)​)}
其中,KKK是对应instance set保留的最大预测结果数量,为一个常量。在实际情况下可能经过匹配之后预测的结果不满足数量KKK,对此文章是通过使用一些fake实例进行填充,这些实例填充背景类别,并不参与回归损失计算。

2.4 EMD损失函数

对于一个instance set计算损失函数是使用上文中提到的P(bi)P(b_i)P(bi​)实现的,这里将其损失定义为:
Lbi=min⁡π∈∏∑k=1K[Lcls(ci(k),gπk)+Lreg(li(k),gπk)]L_{b_i}=\min_{\pi \in \prod}\sum_{k=1}^K[L_{cls}(c_i^{(k)},g_{\pi_k})+L_{reg}(l_i^{(k)},g_{\pi_k})]Lbi​​=π∈∏min​k=1∑K​[Lcls​(ci(k)​,gπk​​)+Lreg​(li(k)​,gπk​​)]
其中,π\piπ是匹配之后实例排列顺序。在当K=1K=1K=1的时候就退化为了传统的检测回归机制。

Set NMS:
完成检测框的回归之后接下来就是去除多余的检测结果,由于EMD损失函数的性质,一个proposal中的不同instance具有唯一性,因而这就导致了那些存在重叠的检测instance只会存在于不同的proposal中,因而在做instance抑制的时候只会去抑制来自不同proposal的检测结果。将文章的NMS方法与之前的一些NMS算法进行比较,见下表4所示:

2.5 Refinement module(RM)

在使用proposal去预测多个instance的时候可能会存在一些假阳性的情况,文章采取了二次预测级连优化的策略,见图3中b图所示。下图是文章的Set NMS和RM模块对于性能的影响:

3. 实验结果

CrowdHuman validation set:

CityPersons valida- tion set:

《CrowdDetection:Detection in Crowded Scenes: One Proposal, Multiple Predictions》论文笔记相关推荐

  1. 论文笔记之Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 论文链接:http://dwz.cn/6qPeIb 本文的主要思想是为了剖析出一个跟踪算法中到 ...

  2. 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    本人为目标追踪初入小白,在博客下第一次记录一下自己的论文笔记,如有差错,恳请批评指正!! 论文相关信息:<Understanding and Diagnosing Visual Tracking ...

  3. 论文笔记Understanding and Diagnosing Visual Tracking Systems

    最近在看目标跟踪方面的论文,看到王乃岩博士发的一篇分析跟踪系统的文章,将目标跟踪系统拆分为多个独立的部分进行分析,比较各个部分的效果.本文主要对该论文的重点的一个大致翻译,刚入门,水平有限,如有理解错 ...

  4. 目标跟踪笔记Understanding and Diagnosing Visual Tracking Systems

    Understanding and Diagnosing Visual Tracking Systems 原文链接:https://blog.csdn.net/u010515206/article/d ...

  5. 追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems)

    追踪系统分模块解析(Understanding and Diagnosing Visual Tracking Systems) PROJECT http://winsty.net/tracker_di ...

  6. ICCV 2015 《Understanding and Diagnosing Visual Tracking Systems》论文笔记

    目录 写在前面 文章大意 一些benchmark 实验 实验设置 基本模型 数据集 实验1 Featrue Extractor 实验2 Observation Model 实验3 Motion Mod ...

  7. Understanding and Diagnosing Visual Tracking Systems

    文章把一个跟踪器分为几个模块,分别为motion model, feature extractor, observation model, model updater, and ensemble po ...

  8. CVPR 2017 SANet:《SANet: Structure-Aware Network for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做SANet.作者在论文中提到,CNN模型主要适用于类间判别,对于相似物体的判别能力不强.作者提出使用RNN对目标物体的self-structure进行建模,用于提 ...

  9. ICCV 2017 UCT:《UCT: Learning Unified Convolutional Networks forReal-time Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文模型叫做UCT.就像论文题目一样,作者提出了一个基于卷积神经网络的end2end的tracking模型.模型的整体结构如下图所示(图中实线代表online trackin ...

  10. CVPR 2018 STRCF:《Learning Spatial-Temporal Regularized Correlation Filters for Visual Tracking》论文笔记

    理解出错之处望不吝指正. 本文提出的模型叫做STRCF. 在DCF中存在边界效应,SRDCF在DCF的基础上中通过加入spatial惩罚项解决了边界效应,但是SRDCF在tracking的过程中要使用 ...

最新文章

  1. 用border-width,border-color画三角形
  2. Linux运维系统工程师与java基础学习系列-6
  3. 第二章 系统设置及基本操作
  4. linux安装vnc4server,Ubuntu 18.04安装vnc4server
  5. EPSON-LQ 300K II驱动安装问题
  6. 手把手教你sql触发器的使用
  7. MySQL安装步骤(ZIP版)
  8. 做企业要有磨刀不误砍柴工的精神
  9. 5G首秀北京CBD 将在智能交通等方面打造“智慧CBD”
  10. Solidity简单例子-代理投票
  11. C# 30分钟完成百度人脸识别——进阶篇(文末附源码)
  12. 返回ajax有几种方式,java ajax返回 Json 的 几种方式
  13. xml 入门 shema_01
  14. 自编码器(Autoencoder)基本原理与模型实现
  15. 对于‘用C#编写一个员工工资计算’问题的代码编写风格和结构设计考虑的比较【发现自己还是太弱,大家可以在评论区中提出我代码中的不足】
  16. 你会在 JitPack 上创建依赖库吗?
  17. 寻求激光雕刻机软件开发合作。有意者请联系
  18. 同惠LCR测试仪TH2829产品技术参数
  19. 短时间近视度数暴涨?除了屈光不正,还有可能是这个原因…
  20. ios画pdf圈圈~

热门文章

  1. POJ1511 ZOJ2008[Invitation Cards]
  2. 华钜同创:跨境开店如何选择跨境电商平台
  3. 原码、反码与补码及其意义
  4. 三相同步电机怎么接线图_三相变频电机接线图及详细讲解
  5. 建立自己的封装库(一)
  6. 桌球歷史:削球、快攻、弧圈球
  7. 简单实用 铃铛运动动画制作AE教程
  8. CPLD和FPGA的区别
  9. 太原网络营销师揭秘每个老板最头疼的百度竞价(SEM)如何提供转化率?
  10. mysql宕机日志查询_Mysql容器异常宕机