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

最近正在研究行人检测,学习了一篇2014年发表在ECCV上的一篇综述性的文章,是对行人检测过去十年的一个回顾,从dataset,main approaches的角度分析了近10年的40多篇论文提出的方法,发现有三种方法(DPM变体,Deep networks,Decision forests)都取得了相似的最好结果,并总结了feature,additional data以及context information等对于detection quality的影响。

1、Introduction

行人检测主要的方法有:Viola&Jones variants,HOG+SVM rigid templates, deformable part detectors (DPM), and convolutional neural networks(ConvNets) 。

2、Datasets

主要的datasets有6个:INRIA, ETH, TUD-Brussels, Daimler(Daimler stereo), Caltech-USA, KITTI。

2.1 INRIA数据库

http://pascal.inrialpes.fr/data/human/ 
介绍:该数据库是“HOG+SVM”的作者Dalal创建的,该数据库是目前使用最多的静态行人检测数据库,提供原始图片及相应的标注文件。训练集有正样本614张(包含2416个行人),负样本1218张;测试集有正样本288张(包含1126个行人),负样本453张。图片中人体大部分为站立姿势且高度大于100个象素,部分标注可能不正确。图片主要来源于GRAZ-01、个人照片及google,因此图片的清晰度较高。在XP操作系统下部分训练或者测试图片无法看清楚,但可用OpenCV正常读取和显示。

更新:2005

2.2 ETHZ行人数据库

Robust Multi-Person Tracking from Mobile Platforms

https://data.vision.ee.ethz.ch/cvl/aess/dataset/

Ess等构建了基于双目视觉的行人数据库用于多人的行人检测与跟踪研究。该数据库采用一对车载的AVT Marlins F033C摄像头进行拍摄,分辨率为640×480,帧率13-14fps,给出标定信息和行人标注信息,深度信息采用置信度传播方法获取。

更新:2010

2.3 TUD行人数据库

https://www.mpi-inf.mpg.de/departments/computer-vision-and-multimodal-computing/research/people-detection-pose-estimation-and-tracking/multi-cue-onboard-pedestrian-detection/

介绍:TUD行人数据库为评估运动信息在行人检测中的作用,提供图像对以便计算光流信息。训练集的正样本为1092对图像(图片大小为720×576,包含1776个行人);负样本为192对非行人图像(手持摄像机85对,车载摄像机107对);另外还提供26对车载摄像机拍摄的图像(包含183个行人)作为附加训练集。测试集有508对图像(图像对的时间间隔为1秒,分辨率为640×480),共有1326个行人。Andriluka等也构建了一个数据库用于验证他们提出的检测与跟踪相结合的行人检测技术。该数据集的训练集提供了行人的矩形框信息、分割掩膜及其各部位(脚、小腿、大腿、躯干和头部)的大小和位置信息。测试集为250张图片(包含311个完全可见的行人)用于测试检测器的性能,2个视频序列(TUD-Campus和TUD-Crossing)用于评估跟踪器的性能。

更新:2010

2.4 Daimler行人数据库

http://www.gavrila.net/Datasets/Daimler_Pedestrian_Benchmark_D/daimler_pedestrian_benchmark_d.html

该数据库采用车载摄像机获取,分为检测和分类两个数据集。检测数据集的训练样本集有正样本大小为18×36和48×96的图片各15560(3915×4)张,行人的最小高度为72个象素;负样本6744张(大小为640×480或360×288)。测试集为一段27分钟左右的视频(分辨率为640×480),共21790张图片,包含56492个行人。分类数据库有三个训练集和两个测试集,每个数据集有4800张行人图片,5000张非行人图片,大小均为18×36,另外还有3个辅助的非行人图片集,各1200张图片。

更新:2009?

2.5 Caltech Pedestrian Detection

http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/

该数据库是目前规模较大的行人数据库,采用车载摄像头拍摄,约10个小时左右,视频的分辨率为640×480,30帧/秒。标注了约250,000帧(约137分钟),350000个矩形框,2300个行人,另外还对矩形框之间的时间对应关系及其遮挡的情况进行标注。数据集分为set00~set10,其中set00~set05为训练集,set06~set10为测试集(标注信息尚未公开)。性能评估方法有以下三种:(1)用外部数据进行训练,在set06~set10进行测试;(2)6-fold交叉验证,选择其中的5个做训练,另外一个做测试,调整参数,最后给出训练集上的性能;(3)用set00~set05训练,set06~set10做测试。由于测试集的标注信息没有公开,需要提交给Pitor Dollar。结果提交方法为每30帧做一个测试,将结果保存在txt文档中(文件的命名方式为I00029.txt I00059.txt ……),每个txt文件中的每行表示检测到一个行人,格式为“[left, top,width, height, score]”。如果没有检测到任何行人,则txt文档为空。该数据库还提供了相应的Matlab工具包,包括视频标注信息的读取、画ROC(Receiver Operatingcharacteristic Curve)曲线图和非极大值抑制等工具。

更新:2014

2.6 KITTI Vision Benchmark

http://www.cvlibs.net/datasets/kitti/index.php

KITTI是德国卡尔斯鲁厄理工学院和芝加哥丰田技术研究所联合创办的一个算法评测平台,旨在评测对象(机动车、非机动车、行人等)检测、目标跟踪等计算机视觉技术在车载环境下的性能,为机动车辅助驾驶应用做技术评估与技术储备。

2.7 小结

http://www.cvpapers.com/datasets.html 
绝大多数的数据集都可以在上面网址中找到。 
INRIA最旧图像也最少,不过好处是它拥有比较丰富的背景环境(如城市,沙滩,山地等),所以被使用的比较多。 
ETH和TUD-Brussels是中等大小的视频数据集,Daimler缺乏彩色信息,Daimler stereo, ETH, and KITTI 提供立体信息。除了INRIA之外的数据集都是从视频中获取的,因此可以使用光流作为additional cue。 
现在用的最多的数据集是Caltech-USA和KITTI,二者都是比较大且具有挑战性的。Caltech-USA有大量的方法使用因而比较起来比较方便,而KITTI的数据集更加丰富一些但是用的。这篇文章主要是以Caltech数据集作为标准,以INRIA和KITTI作为辅助。

3 Main approaches to improve pedestrian detection

首先介绍了近十年的主要发展:

2003, VJ detector.

2005, HOG detector.

2008, DPM.

2009, Caltech dataset, 评价方法FPPW->FPPI.

然后比较了40种左右方法的missing rate,给出了图表。 
表1

图3

3.1 Training data

很显然,上图3显示了训练数据的大小比较明显的影响了结果的好坏。红色部分使用的训练集也是由Caltech数据集扩展而来。

3.2 Solution families

表1的40多种方法,大体可以分为3类:DPM变体,DN和DF。这三种方法都大体达到了state of art 。

3.3 Better classifiers

HOG+SVM 和 HikSvm 这些古老的方法,在当时的评价方法(FPPW)下,表现很好,但是却在FPPI下性能比较差。MultiFtrs 方法说明Adaboost以及线性SVM在给定足够多feature的条件下是可以达到同样的检测效果的。

并没有经验性的证据表明非线性核比线性核的性能更好。也没有证据表明某种分类器是最适合做行人检测的。

3.4 Additional data

使用额外的数据可以取得有效的提高,但是像立体和光流等线索都没有被完全利用起来。现在,基于单眼的方法已经达到了有额外信息方法的水平了。

3.5 Exploiting Context

环境信息也可以给行人检测带来提升,尽管不如额外数据和深度结构那样明显。

3.6 Deformable Parts

DPM detector就是为了做pedestrian detection而被提出来的。这种方法及其变体都很流行,尽管检测结果都很不错,但是却并不突出。越来越多的仅仅使用单个部件的方法都超越了DPM,这样就让我们产生了疑问:究竟有没有必要使用多个部件,即使是在有遮挡的情况下?这个问题目前也是没有明确答案的。

3.7 Multi-scale models

多尺度(多分辨率)的模型提供了一个对于已有检测子的更简洁和一般化的延伸。尽管有所提升,但对于最终的结果提升相当小。

3.8 Deep Architecture

随着数据量的增加和计算能力的增强,在计算机视觉领域(包括行人检测方面)使用深度网络(尤其是CNN)变得流行。

ConvNet结构混合了监督的和无监督的训练来搭建卷积神经网络,在INRIA,ETH,TUD-Brussels上得到了一般的结果,但在Caltech集上却失败了。这是从像素层面直接获取特征的方法。

而另一些结构(DBN, JointDeep, SDN)将part model和遮挡结合起来 都放进了深度结构,但它并不是从原始像素点之中去发现特征,而是从使用了边缘和色彩特征,或者将网络权重初始化时设置对边缘敏感的滤波器。值得注意的是,目前还没有人事先在ImageNet上预训练过。

虽然没有证据显示神经网络适合进行行人检测,但是很多性能良好的模型都使用了这种结构,不过其性能也只是和DPM和DF差不多,优势并不明显。

3.9 Better features

在改进行人检测的工作中,做的最多的就是增加或者多样化输入图像的特征。通过更多的和更高维度的特征,分类的任务似乎是变简单了,结果也有了改进。很多种类的特征已经被发现:边缘信息,颜色信息,纹理信息,局部形状信息,协方差特征,还有其他等等。越来越多的特征已被证明可以系统性的改善性能。

很多decision forest 方法采用10个feature channel,有些则采用了多达上百个feature channel。尽管增加channel可以提升性能,但目前表现最好的方法都是采取10个channel的:6个梯度方向,1个梯度幅值,3个颜色通道,叫做 HOG+LUV.

过去十年,特征的提升是检测效果提升的动力,显然,接下来的日子里,提升特征效果将依然是主流。这些提升都是在大量的实验和错误下累积起来的。接下来的研究将集中在为什么这些特征这么好以及如何设计更好的特征上。

4 Experiments

基于上面的分析,可以得出检测效果的提升主要集中在3个方面:better features,additional data 和context information。所以我们做实验来研究他们之间的互补性。

在3.2 中给出的3中主要方法里,我们选择了 Integral Channels Features 框架(DF方法)来做实验,因为这种方法表现突出且训练较快。

4.1 Reviewing the effect of features

所有方法都是在INRIA上训练,在Caltech上测试。如图5所示 
这里写图片描述 
第一批实验都是复现那些具有里程碑式的方法,如 VJ , HOG+linear SVM , and ChnFtrs 。

从VJ以来,性能的提升多半可以归功于采用了更好的特征,梯度方向和颜色信息等。即使是在已有特征基础上加入的一点点微调也能产生显著的提升(如SquaresChnFtrs 加入DCT变换)。

4.2 Complementarity of approaches

接下来,作者又做了大量实验来研究better features(HOG+LUV+DCT), additional data (via optical flow), and context (via person-to-person interactions)之间的互补性。

在上文SquaresChnFtrs+DCT 的基础上,作者用和 ACF+SDt 中同样的方法将光流信息编码,同时用+2Ped 中的re-weighting技巧把环境信息加入。这种 SquaresChnFtrs+DCT+SDt+2Ped 的方法被称为Katamari-v1。 
这里写图片描述 
如图7 所示,Katamari-v1 方法达到了在Caltech上的最好结果,图7还显示了其他方法所获得最好效果。

结论:实验证明——通过加入额外的特征,光流,和环境信息是可以很大程度的互补的,获得了12%的提升。

4.3 How much model capacity is needed?

我们的目标是要从训练集到测试集推广,那么在研究模型泛化能力的时候,一个重要的问题就是,模型在训练集上的效果如何呢? 
这里写图片描述 
图6显示模型在训练集上的效果,不幸的是,这些方法都在训练集上就表现不佳,所以,目前还没有发现过拟合的问题。

所以,我们还是应该研究更有区分力的检测子来提升检测结果。这些更有区分力的检测子可以通过寻找更好的features和更复杂的分类器来实现。

4.4 Generalisation across datasets

对于真实世界应用来说,模型的泛化能力才是关键。

表2 展示了SquaresChnFtrs 用不同训练集训练时在Caltech上的表现(对于KITTI,评价指标是AUC,越高越好;对于其他数据集,评价指标是MR,越小越好)。 
这里写图片描述 
从表中可以看出,在Caltech和KITTI上训练,对于INRIA数据集的泛化性能很差。而反过来,INRIA确实对于Caltech和KITTI第二好的选择。这些结果表明,Caltech的行人相对更加单一的,而INRIA却因为它的多样性而更加有效。

这里写图片描述 
如图8,训练和测试如果都在KITTI上,SquaresChnFtrs (在KITTI上叫SquaresICF )比普通的DPM好,而且还和最好的DPM变体(DA-DPM )相当。目前在KITTI上表现最好的方法,pAUC 是ChnFtrs 的变体,只是它使用了250个特征通道而已。 这也和我们在3.9 和4.1 中的结论一致。

小结:尽管在一个训练集上训练之后再在另一个数据集上测试效果不一定好,但是排名大体还是基本一致的。也就是说,只要方法足够好,无论benchmark是什么都能得到好的结果。

5 Conclusion

做了这么多实验,发现这么多年在pedestrian detection上的进步基本上都得益于特征的提升,目前来看,这种趋势还将继续。

实验结果表明,better features ,optical flow ,context 是互补的。将它们结合起来,得到了在Caltech数据集上的最好模型。

尽管三种主要的方法——DPM,DF,DN——是基于完全不同的学习技巧的,它们的state of art 结果却是惊人相似的。

最后,未来的挑战将是更深层次的理解好的特征为什么好,这样才能设计出更好的特征!

参考文献

http://janhosang.com/pdfs/2014_eccvw_ten_years_of_pedestrian_detection_with_supplementary_material.pdf
http://blog.csdn.net/mduke/article/details/46582443

转载于:https://www.cnblogs.com/huty/p/8517965.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

02-合并frame

进入IJKMediaPlayer工程--->--->选择release--->选择6s或者其他模拟器,Commandb编译--->选择真机版本,Commandb编译,查看finder,生成真机和模拟器两个版本的frameWork--->找到这个文件----> 真机和模拟器的IJKm…

mysql lib 5.5.28_mysql5.5.28在Linux下的安装

mysql5.5.28在Linux下的安装1. 下载mysql2. 解压假如tar包在/home/zdw/software目录下#tar -xvf mysql-5.5.28-linux2.6-i686.tar.gz3. 移动到/usr/local/mysql#mv mysql-5.5.28-linux2.6-i686 /usr/local/添加快捷方式mysql指向mysql-5.5.28-linux2.6-i686#ln -s mysql-5.5.28…

mysql与缓存脏读_MySQL 事务的隔离级别问题 之 脏读

1. 脏读所谓的脏读就是指一个事务读取了另一个事务未提取的数据。试想一下:a账户要给b账户100元购买商品,如果a账户开启一个事务,执行下面的update语句做了如下转账的工作:update account set moneymoney-100 where namea;update …

easyUI文本框textbox笔记

知识点&#xff1a; 1.图标位置 Icon Align属性&#xff0c;有left和right两个&#xff1b; 2.textbox的setvalue方法&#xff0c;getvalue方法。 <div style"margin:10px 0 20px 0"><span>Select Icon Align: </span><select οnchange"$…

《A First Course in Probability》-chape4-离散型随机变量-几种典型分布列

超几何分布&#xff1a; 超几何分布基于这样一个模型&#xff0c;一个坛子中有N个球&#xff0c;其中m个白球&#xff0c;N-m个黑球&#xff0c;从中随机取n(不放回)&#xff0c;令X表示取出来的白球数&#xff0c;那么&#xff1a; 我们称随机变量X满足参数为(n,m,M)的超几何分…

java内联_JAVA中的内联函数

在说内联函数之前&#xff0c;先说说函数的调用过程。调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址&#xff0c;将函数的程序内容执行完后&#xff0c;再返回到转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址&#xff0…

两端对齐布局与text-align:justify

百分比实现 首先最简单的是使用百分比实现&#xff0c;如下一个展示列表&#xff1a; 1 <!DOCTYPE html>2 <html>3 <head>4 <meta charset"UTF-8">5 <title></title>6 <style type"text/cs…

java拆分单元格_Java 拆分Excel单元格数据为多列

一、概述及使用工具在Excel表格里面&#xff0c;可设置将单元格中的文本数据按分隔符拆分为多列&#xff0c;下面通过Java程序来介绍具体实现方法。这里使用Free Spire.XLS for Java(免费版)来实现数据分列&#xff0c;需要导入Spire.Xls.jar文件到Java程序&#xff0c;可参考以…

win10下安装centos7双系统

国庆最后一天了&#xff0c;闲来无事装个双系统&#xff0c;用虚拟机的linux总有些不方便。 window下安装linux双系统有两中方法&#xff1a; 1.U盘安装 &#xff08;我采用的方法&#xff0c;后面详述&#xff09; 2.EasyBCD工具安装 &#xff08;使用EasyBCD完美实现Windows7…

java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

本文将讲解如何做一个类似MyEclipse启动画面的闪屏&#xff0c;为Java Swing应用程序增添魅力。首先看一下效果图吧&#xff0c;原理很简单&#xff0c;就是创建一个Dialog&#xff0c;Dialog有一个进度条和一个Label用来分别显示进度和进度信息&#xff0c;而Dialog的宽度和高…

【JZOJ4817】【NOIP2016提高A组五校联考4】square

题目描述 输入 输出 样例输入 3 4 1 1 0 1 0 1 1 0 0 1 1 0 5 1 1 2 3 2 1 3 2 3 2 3 4 1 1 3 4 1 2 3 4 样例输出 1 1 1 2 2 数据范围 解法 设f[i][j]为以(i,j)为右下角的正方形的最大边长。 则f[i][j]min(f[i−1][j],f[i−1][j−1],f[i][j−1])1(a[i][j]1) 考虑…

java单例模式 uml_Java设计模式系列之单例模式

单例模式的定义一个类有且仅有一个实例&#xff0c;并且自行实例化向整个系统提供。比如&#xff0c;多程序读取一个配置文件时&#xff0c;建议配置文件时&#xff0c;建议配置文件封装成对象。会方便操作其中的数据&#xff0c;又要保证多个程序读到的是同一个配置文件对象&a…

Linux安全基础:grep命令的使用

grep &#xff08;缩写来自Globally search a Regular Expression and Print&#xff09;是一种强大的文本搜索工具&#xff0c;它能使用正则表达式搜索文本&#xff0c;并把匹配的行打印出来。Unix的grep家族包括grep、egrep和fgrep。 grep的工作方式是这样的&#xff0c;它在…

php面试题2018mysql_PHP程序员必会的MySQL面试题

01数据库字段类型MySQL常见的数据类型有哪些&#xff1f;MySQL数据类型分为数值类型、日期时间型和字符串类型。数值类型常见的是TINYINT、INT、DECIMAL&#xff0c;日期类型常见的有DATE、DATETIME&#xff0c;字符串类型常见的有CHAR、VARCHAR、TEXT。详细介绍见文章末尾的图…

【开发软件】推荐一款MAC OS X 下php集成开发环境mamp

这里给大家推荐一款在mac上搭建WEB服务器环境的集成环境安装软件&#xff0c;非常的好用&#xff0c;需要的朋友可以拿去&#xff0c;不用谢 ^_^之前苦于mac上搭建本地服务器之艰辛&#xff0c;找寻好久都没找到一款类似windows上集成的本地服务器环境&#xff0c;诸如phpstudy…

java 2分钟_java开发中的那些事(5)--------一点经历,败给2分钟的2个小时

特意记下这个经历&#xff0c;这个让我感慨万千又斗志昂扬的一次经历&#xff0c;这是经验&#xff0c;也是生活。故事的始末是这种&#xff0c;先给大家上几句代码&#xff0c;如今身在家中&#xff0c;仅仅能凭记忆敲打几行&#xff0c;大致意思倒不会错&#xff1a;{field:c…

java cygwin 乱码_windows10乱码怎么解决

如 图组360没有乱码 但字体明显不对字体不正常更明显了第三方浏览器要么乱码 要么根本打不开安装java时也是乱码 要不是我安装过 我根本不知道按钮在哪里eclipse也逃脱不了显示错误的命运(ps:第一行代码 或是说注释)酷狗音乐就更惨了这是cmd命令执行 dir /?时得到的帮助信息 我…

java怎么打增量包_eclipse实现JavaWeb应用增量打包

很多情况下&#xff0c;项目是不允许全量发布的&#xff0c;所以你得把有做修改的文件一个个挑出来&#xff0c;如果有成千上百的文件&#xff0c;你是不是要头大了? 以下方法应该可以让你得到解救!前提是你是用装有svn plugin的eclipse上做开发。第一步&#xff0c;用svn生成…

java 定时器框架_java定时器

java定时器什么是Java定时器&#xff1f;Java 定时器就是在给定的间隔时间执行自己的任务; Java实现定时器有以下几种:通过Timer来实现定时任务Timer 是来自 java.util.Timer指定时间执行任务/*** author spp* date 2020-10-14 09:04**/public class TimerTest {public static …

Flume之核心架构深入解析

我们一起来了解Source、Channel和Sink的全链路过程。 一、Flume架构分析 这个图中核心的组件是&#xff1a; Source&#xff0c;ChannelProcessor&#xff0c;Channel&#xff0c;Sink。他们的关系结构如下&#xff1a; Source {ChannelProcessor {Channel ch1Channel ch2……