论文阅读:Adaptive NMS: Refining Pedestrian Detection in a Crowd

2019年04月11日 23:08:02 Kivee123 阅读数 836
 
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

Adaptive-NMS(CVPR 2019)

文章
  又是一篇在NMS上面做文章的paper。。读完之后感觉,哇!自己再想的深一点也能想出来呀,可是想出来和做出好效果真是两码事。。尤其是没有人告诉你这个idea的价值只能靠自己判断的时候。扯远了。。。还是说一说这篇文章吧。
  NMS是目前基于深度学习的目标检测模型的重要的后处理步骤,针对目标检测来讲,NMS具体操作就是将所有检测结果(设为集合A)中score最大的结果取出来加入到最后的检测结果集合(设为集合B),然后将A中其它检测结果i中与该结果进行比较,如果如该结果的相似度(往往使用IoU)超过一个阈值就将i从A中去掉。重复上述操作,直到A为空空集,伪代码如下(greedy-NMS就是普通的NMS):

  然而普通NMS的问题在于,如果两个ground truth本身就有overlap的话,这个时候就不好办了,如果overlap较小,没有问题,但如果overlap较大呢?比crowd这种场景,这时候要想能检测出两个gt,只能设置较大的阈值来保证较小score的结果不被抑制。可矛盾在于,在crowd这种情况下,人群有时候密集有时候稀疏,高的阈值又会导致对于稀疏的情况下产生过多的False Positive(即被错认为positive的结果)。为了尝试解决这个问题呢,ICCV 2017一篇soft-NMS横空出世(靠一行代码就发了ICCV,牛逼。。。。)。soft-NMS的思想是,NMS所谓的“抑制”可以看做将检测结果的分数置0了,从而就不要该结果了,那么可不可以不置0,而是减小score呢,不过是IoU越大,score减小的越多。

为什么可以这样弄呢?其实细想一下,虽然会存在gt之间存在overlap的情况,但我们的目的是抑制那些overlap更大的(比如有三个结果ABC,分数分别为0.9,0.8,0.7,其中AC是正确结果,A和B的overlap大于A和C的,这样经过一轮NMS后BC的分数可能就变了0.6,0.5,从而将B抑制了)最后实验证明。。。这个想法还真有效!
  这篇论文呢,针对crowd中的行人检测这一特殊的应用场景,对soft-NMS又进行了优化,使得在人群密集的地方,NMS阈值较大,而人群稀疏的地方NMS阈值较小。但是问题在于怎么判断人群是否密集,又怎么根据密集程度定NMS阈值呢?对于第一个问题。。。当然是用CNN啦!于是文章就定义了第i个物体处的密度如下:

因此在训练CNN时,每次还需要求出密度作为监督信号,训练网络能够拟合这个密度函数,即输入一张图片,能输出每个位置的物体密度,但这个参数怕是作者调了不短的时间,模型如下:

有了密度之后,soft-NMS就改进成了

  emmmm,文章的方法就是这样,感觉也是很自然的发现一个问题然后想办法去解决,不过个人以为这个模型恐怕真不好调参。

论文阅读:Adaptive NMS: Refining Pedestrian Detection in a Crowd的更多相关文章

  1. 论文阅读 | ExtremeNet:Bottom-up Object Detection by Grouping Extreme and Center Points

    相关链接 论文地址:https://arxiv.org/abs/1901.08043 论文代码:https://github.com/xingyizhou/ExtremeNet 概述 ExtremeN ...

  2. 论文阅读: End-to-end Learning of Action Detection from Frame Glimpses in Videos

      End-to-End Learning of Action Detection from Frame Glimpses in Videos  CVPR 2016  Motivation:    本 ...

  3. 论文阅读之:Is Faster R-CNN Doing Well for Pedestrian Detection?

    Is Faster R-CNN Doing Well for Pedestrian Detection? ECCV 2016   Liliang Zhang & Kaiming He 原文链接 ...

  4. 论文阅读 | FCOS: Fully Convolutional One-Stage Object Detection

    论文阅读——FCOS: Fully Convolutional One-Stage Object Detection 概述 目前anchor-free大热,从DenseBoxes到CornerNet. ...

  5. 论文笔记之:Pedestrian Detection aided by Deep Learning Semantic Tasks

    Pedestrian Detection aided by Deep Learning Semantic Tasks CVPR 2015 本文考虑将语义任务(即:行人属性和场景属性)和行人检测相结合, ...

  6. 论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline

    论文阅读:Prominent Object Detection and Recognition: A Saliency-based Pipeline  如上图所示,本文旨在解决一个问题:给定一张图像, ...

  7. 论文笔记:Ten years of pedestrian detection, what have we learned?

    最近正在研究行人检测,学习了一篇2014年发表在ECCV上的一篇综述性的文章,是对行人检测过去十年的一个回顾,从dataset,main approaches的角度分析了近10年的40多篇论文提出的方 ...

  8. 【计算机视觉】论文笔记:Ten years of pedestrian detection, what have we learned?

    最近正在研究行人检测,学习了一篇2014年发表在ECCV上的一篇综述性的文章,是对行人检测过去十年的一个回顾,从dataset,main approaches的角度分析了近10年的40多篇论文提出的方 ...

  9. 论文笔记之:Learning Cross-Modal Deep Representations for Robust Pedestrian Detection

    Learning Cross-Modal Deep Representations for Robust Pedestrian Detection 2017-04-11  19:40:22  Moti ...

随机推荐

  1. git仓库与项目源码分离

    在服务器上初始化git仓库 cd mkdir gitrepo cd gitrepo git init --bare runoob.git 本地 若是已经有git项目了,直接添加一个仓库地址就行了 gi ...

  2. 解决jenkins日志爆满 DNS查询错误

    一.故障 公司的jenkins因为日志量太大把磁盘占满,进而影响了其他程序,仔细一看日志文件"/var/log/jenkins/jenkins.log"几分钟产生了30G的日志 日 ...

  3. C#问答题与附解收集(三)

    post.get的区别 答: GET把参数包含在URL中,POST通过request body传递参数.GET请求在URL中传送的参数是有长度限制的,而POST没有.使用post提交的页面在点击[刷新 ...

  4. python笔记4 内置函数,匿名函数.递归函数 面向对象(基础, 组合,继承)

    内置函数 eval和exec eval :执行字符串中的代码并将结果返回给执行者,有返回值 exec:执行字符串中的代码,往往用于执行流程语句,没有返回值. s1 = '1+2' s2 = 'prin ...

  5. Qt编写自定义控件32-等待进度条控件

    一.前言 在各种各样的执行任务界面,有时候需要比较多的时间,需要给出一个直观的等待进度条表示当前正在执行的进度,而不至于懵逼在那里,用户不会觉得程序死了还是干嘛了. 等待进度条有好几种办法,比如直接叫 ...

  6. MobileNet V2深入理解

    转载:https://zhuanlan.zhihu.com/p/33075914 MobileNet V2 论文初读 转载:https://blog.csdn.net/wfei101/article/ ...

  7. HDFS数据定期清理

    HDFS数据清理一些办法: datanode数据做reblance清理临时目录.日志目录文件全量分区表历史分区清理使用lzo,orc格式进行数据压缩清理或者归档历史冷数据增加datanode横向扩容附 ...

  8. 【python画图】

    1.热力图 import numpy as np import numpy.random import matplotlib.pyplot as plt # Generate some test da ...

  9. Spring Cloud(5):服务路由(Zuul)

    Zuul简介 所有微服务之间的调用,都应该通过服务网关进行路由,服务网关充当服务与服务之间的中介.服务网关像交通警察一样指挥交通,将用户引导到目标微服务实例.服务网关还充当着应用程序内所有微服务调用的 ...

  10. webview的学习总结:

    1.1: Weview常见的坑 及其 内存泄漏的解决方案: WebView 1. WebView常见的坑 API 16之前版本存在远程代码执行漏洞,该漏洞源自于程序没有正确限制使用WebView.ad ...