一、论文
CVPR 2012 与行人检测相关的论文
[1] Contextual Boost for Pedestrian Detection YuanyuanDing, Jing Xiao
[2] Understanding Collective CrowdBehaviors:Learning Mixture Model of Dynamic Pedestrian-Agents Bolei Zhou, Xiaogang Wang
[3] Pedestrian detection at 100 frames persecond Rodrigo Benenson, Markus Mathias, Radu Timofte, Luc Van Gool
[4] Multi-Pedestrian Detection in CrowdedScenes: A Global View Junjie Yan, Zhen Lei, Dong Yi, Stan.Z. Li
[5] A Discriminative Deep Model forPedestrian Detection with Occlusion Handling Wanli Ouyang, Xiaogang Wang
[6] Transferring a Generic PedestrianDetector Towards Specific Scenes MengWang, Wei Li, Xiaogang Wang
[7] Geodesic Flow Kernel for UnsupervisedDomain Adaptation Boqing Gong, Yuan Shi, Fei Sha, Kristen Grauman
综述类的文章
[1]P.Dollar, C. Wojek,B. Schiele, et al. Pedestrian detection: an evaluation of the state of the art [J].IEEE Transactions on PatternAnalysis andMachine Intelligence, 2012, 34(4): 743-761.
[2]M. Enzweiler, and D.Gavrila. Monocular pedestrian detection: survey and experiments [J]. IEEE Transactions on Pattern Analysis andMachine Intelligence, 2009, 31(12): 2179-2195.
[3]D. Geronimo, A. M.Lopez and A. D. Sappa, et al. Survey of pedestrian detection for advanced driverassistance systems [J]. IEEE Transactionson Pattern Analysis and Machine Intelligence, 2010, 32(7): 1239-1258.
[4]苏松志, 李绍滋, 陈淑媛等. 行人检测技术综述[J]. 电子学报, 2012, 40(4): 814-820.
[5]贾慧星, 章毓晋.车辆辅助驾驶系统中基于计算机视觉的行人检测研究综述[J], 自动化学报, 2007, 33(1): 84-90.
[6] 许言午, 曹先彬,乔红. 行人检测系统研究新进展及关键技术展望[J], 电子学报, 2008, 36(5): 368-376.
[7] 杜友田; 陈峰;徐文立; 李永彬;基于视觉的人的运动识别综述, 电子学报, 2007. 35(1): 84-90.
[8]朱文佳. 基于机器学习的行人检测关键技术研究[D]. 第一章, 硕士学位论文, 上海交通大学. 2008. 指导教师: 戚飞虎.
二、Source Code
1.INRIA Object detection and Localization Toolkit, Dalal于2005年提出了基于HOG特征的行人检测方法,行人检测领域中的经典文章之一。HOG特征目前也被用在其他的目标检测与识别、图像检索和跟踪等领域中。
2. Real-time Pedestrian Detection. Jianxin Wu实现的快速行人检测方法。
3. Hough Transfom for Pedestrian Detection. Olga Barinova, CVPR 2010 Paper: On detection of multiple object instances using Hough Transforms
4. HIKSVM, HOG+LBP+HIKSVM, 行人检测的经典方法.
5. GroundHOG, GPU-based Object Detection with Geometric Constraints, In: ICVS, 2011. CUDA版本的HOG+SVM, video.
三、数据集
MIT数据库
该数据库为较早公开的行人数据库,共924张行人图片(ppm格式,宽高为64x128),肩到脚的距离约80象素。该数据库只含正面和背面两个视角,无负样本,未区分训练集和测试集。Dalal等采用“HOG+SVM”,在该数据库上的检测准确率接近100%。
INRIA数据库
该数据库是目前使用最多的静态行人检测数据库,提供原始图片及相应的标注文件。训练集有正样本614张(包含2416个行人),负样本1218张;测试集有正样本288张(包含1126个行人),负样本453张。图片中人体大部分为站立姿势且高度大于100个象素,部分标注可能不正确。图片主要来源于GRAZ-01、个人照片及google,因此图片的清晰度较高。在XP操作系统下部分训练或者测试图片无法看清楚,但可用OpenCV正常读取和显示。
Daimler行人数据库
该数据库采用车载摄像机获取,分为检测和分类两个数据集。检测数据集的训练样本集有正样本大小为18x36和48x96的图片各15560(3915x4)张,行人的最小高度为72个象素;负样本6744张(大小为640x480或360x288)。测试集为一段27分钟左右的视频(分辨率为640x480),共21790张图片,包含56492个行人。分类数据库有三个训练集和两个测试集,每个数据集有4800张行人图片,5000张非行人图片,大小均为18x36,另外还有3个辅助的非行人图片集,各1200张图片。
Caltech行人数据库
该数据库是目前规模较大的行人数据库,采用车载摄像头拍摄,约10个小时左右,视频的分辨率为640x480,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)曲线图和非极大值抑制等工具。
TUD行人数据库
TUD行人数据库为评估运动信息在行人检测中的作用,提供图像对以便计算光流信息。训练集的正样本为1092对图像(图片大小为720x576,包含1776个行人);负样本为192对非行人图像(手持摄像机85对,车载摄像机107对);另外还提供26对车载摄像机拍摄的图像(包含183个行人)作为附加训练集。测试集有508对图像(图像对的时间间隔为1秒,分辨率为640x480),共有1326个行人。Andriluka等也构建了一个数据库用于验证他们提出的检测与跟踪相结合的行人检测技术。该数据集的训练集提供了行人的矩形框信息、分割掩膜及其各部位(脚、小腿、大腿、躯干和头部)的大小和位置信息。测试集为250张图片(包含311个完全可见的行人)用于测试检测器的性能,2个视频序列(TUD-Campus和TUD-Crossing)用于评估跟踪器的性能。
NICTA行人数据库
该数据库是目前规模较大的静态图像行人数据库,25551张含单人的图片,5207张高分辨率非行人图片,数据库中已分好训练集和测试集,方便不同分类器的比较。Overett等用“RealBoost+Haar”评估训练样本的平移、旋转和宽高比等各种因素对分类性能的影响:(1)行人高度至少要大于40个象素;(2)在低分辨率下,对于Haar特征来说,增加样本宽度的性能好于增加样本高度的性能;(3)训练图片的大小要大于行人的实际大小,即背景信息有助于提高性能;(4)对训练样本进行平移提高检测性能,旋转对性能的提高影响不大。以上的结论对于构建行人数据库具有很好的指导意义。
ETH行人数据库
Ess等构建了基于双目视觉的行人数据库用于多人的行人检测与跟踪研究。该数据库采用一对车载的AVT Marlins F033C摄像头进行拍摄,分辨率为640x480,帧率13-14fps,给出标定信息和行人标注信息,深度信息采用置信度传播方法获取。
CVC行人数据库
该数据库目前包含三个数据集(CVC-01、CVC-02和CVC-Virtual),主要用于车辆辅助驾驶中的行人检测研究。CVC-01[Geronimo,2007]有1000个行人样本,6175个非行人样本(来自于图片中公路区域中的非行人图片,不像有的行人数据库非行人样本为天空、沙滩和树木等自然图像)。CVC-02包含三个子数据集(CVC-02-CG、CVC-02-Classification和CVC-02-System),分别针对行人检测的三个不同任务:感兴趣区域的产生、分类和系统性能评估。图像的采集采用Bumblebee2立体彩色视觉系统,分辨率640x480,焦距6mm,对距离摄像头0~50m的行人进行标注,最小的行人图片为12x24。CVC-02-CG主要针对候选区域的产生,有100张彩色图像,包含深度和3D点信息;CVC-02-Classification主要针对行人分类,训练集有1016张正样本,7650张负样本,测试集分为基于切割窗口的分类(570张行人,7500张非行人)和整张图片的检测(250张包含行人的图片,共587个行人);CVC-02-System主要用于系统的性能评估,包含15个视频序列(4364帧),7983个行人。CVC-Virtual是通过Half-Life 2图像引擎产生的虚拟行人数据集,共包含1678虚拟行人,2048个非行人图片用于测试。
USC行人数据库
该数据库包含三组数据集(USC-A、USC-B和USC-C),以XML格式提供标注信息。USC-A[Wu, 2005]的图片来自于网络,共205张图片,313个站立的行人,行人间不存在相互遮挡,拍摄角度为正面或者背面;USC-B的图片主要来自于CAVIAR视频库,包括各种视角的行人,行人之间有的相互遮挡,共54张图片,271个行人;USC-C有100张图片来自网络的图片,232个行人(多角度),行人之间无相互遮挡。
四、其他
相关资料资料
1. Edgar Seemann维护的行人检测网站,比较全,包括publications, code, datasets等。
2. Pedestrian detection: state of the art. A video talk byPitor Dollar. Pitor Dollar做了很多关于行人检测方法的研究,他们研究小组的Caltech Pedestrian Dataset也很出名。
现有方法:
1.harr特征+SVM:
* Papageorgiou & Poggio, 2000; Mohan et al 2000
2.Rectangular differential features + adaBoost:
* Viola & Jones, 2001
3.Edge templates + nearest neighbour:
* Gavrila & Philomen, 1999
4:Model based methods:
* Felzenszwalb & Huttenlocher, 2000; Ioffe & Forsyth, 1999
5. Other works:
* Leibe et al, 2005; Mikolajczyk et al, 2004
6. Orientation histograms:
* Freeman et al, 1996; Lowe, 1999 (SIFT); Belongie et al, 2002 (Shape contexts)
看了将近半年的行人检测的资料,最近开题了,我也趁着这个机会把脑袋里的东西总结一下:
先说下常用的数据库:最早的是MIT,这个库比较简单,行人图片背景简单,只有正面和背面。在2005年以前流行,2005年后随着HOG的提出,MIT库上的准确率已经达到100%,所以INRIA成为标准数据库中的大家通用的数据库。这个库背景复杂,人的姿势也比较多,还有些光照等环境的影响。另外一个关于车辆内行人的图像库是Daimler,不过我总下载不下来。。。
现在常用的方法分这么几类—
行人检测的目标是得到每个行人在视频中每帧的空间位置。根据对行人描述(表达)方法的不同,行人检测算法可以基本分为三类:基于形状模板匹配的方法和基于表观特征描述的方法,以及将形状和纹理结合的方法。根据对人体是以一个整体进行检测还是分部件进行检测,又可以将行人检测算法分为基于部件的检测方法和基于整体的检测方法。下面针对国际上常用的行人检测方法进行阐述。
(1)基于形状模板匹配的检测方法
形状是人体明显的一个特征,例如头肩部的“Ω”形、躯干部分的竖直边缘轮廓,可以利用形状之间的相似性来判断图像中是否有行人的存在。Gavrila[3-5]使用一系列人体形状来表示人体形状,然后在测试图像中提取边缘,基于Chamfer距离来评测图像与模板之间的相似性。LinZhe[6]等将人体分为头肩躯干、大腿和小腿三个部件,然后按照从上倒下使用Gavrila提出的方法分层次进行匹配,最后和基于背景建模得到的前景图像进行形状匹配,在检测行人的同时将其大致形状从背景中分割出来。
基于形状匹配方法的优点是直接描述人体的形状,比较直观,检测完成以后可以根据模板的形状和姿势,判断检测到行人的姿势并切割出行人的大致轮廓。但由于其在线检测时很难获得待匹配图像中目标的轮廓,且其利用样本来描述类别的形状,导致其一些显著的缺点:离线训练时的人体外围轮廓需手工标定,边缘提取受背景的影响,没有采取鉴别性学习等
(2)基于表观特征向量的检测方法
基于表观特征向量的检测方法使用能够描述目标表观特性的特征向量表示目标模式和非目标模式,然后使用基于统计学习得到的分类器根据特征向量做出判决。
特征提取将原始的图像灰度(彩色)信息映射到特征空间,其目的是减小待分类类别的类内变化和增大类间变化,理想的特征是不同类别的分布没有交叠,完全可分。特征提取的方法有两种:基于整体特征向量的方法和基于关键点提取的方法。
在基于整体特征向量的方法中,较早用于行人检测的是Haar小波,Papageorgiou[7]等使用Haar小波变化系数描述行人,然后使用线性SVM分类器进行判决,建立了一个基于统计学习和表观特征相结合的行人检测系统。之后,为了避免边缘提取误差,很多方法直接使用梯度信息来表示人体的形状,提高的鲁棒性。例如局部边缘方向直方图EOH[8](Local Edge Orientation Histograms)、Edgelet[9]和Shapelet[10]等,这其中以Dalal[1]等人提出的HOG(Histograms of Oriented Gradients)的工作影响最大。HOG特征成为最近一个主流使用的特征。在找寻更好描述行人特征的同时,另一个发展的趋势的特征融合。实验证明:融合多种能够描述人不同特点的特征,能够获得比仅利用单一特征类型时的检测性能。
基于感兴趣区域的人体描述方法,首先使用感兴趣点(或关键点)提取算法,提取关键区域,然后使用这些感兴趣区域内提取到的特征向量,描述相关的区域,然后使用关键区域的空间位置关系描述人体。由于衣服多样性和人体姿势变化等因素的影响,人体上的感兴趣区域提取不够稳定,限制了该方法的性能。
(3)基于部件检测的方法
Felzenszwalb[11]等人根据人体的关节特性,将人体的分为十个部件,每个部位都有自己的表观特征,部位之间的几何关系允许一定的变化,建立了一个运行形变的基于部件的检测模型。之后对部件的数量进行了改进,以及检测结果的一些特征融合。
基于部件检测的方法在一定程度上可以客服局部遮挡带来的问题,,但是由于这种方法都是人工将人体划分部件,而且要求训练数据中标定每一个部件的位置,造成了人力资源的消耗和性能的不确定性。因此,现在在使用这一方法时,经常与HOG等特征结合使用,以提高性能。
现在主要的检测方法还是以HOG特征为主,我把我看过的几篇论文放在这里,需要的朋友们可以点击下载:
最初提出HOG特征的论文:hog_cvpr2005
这篇文章是研究行人检测的必看文章
Dalal(上面那篇文章的作者)的博士论文:Dalal-phd06(较大,链接在俺的机子上,可能不能下载) 对大家进一步了解HOG会有很大帮助
Fast Hog,对最初的HOG特征进行了改进:Zhu_Fast Human Detection Using a Cascade of Histograms of Oriented Gradients
这篇论文在原文的基础上加入了积分图,cascade结构。我没有把这篇论文实现,因为cascade中的每一级所使用的弱分类器是svm,训练时间会很长——如文中所述的“a few days”
另外还有Edgelet特征貌似也不错。不过,我没研究过。不做评论。
再链接两篇中国人发的关于行人检测的cvpr:Granularity-tunable Gradients Partition (GGP) Descriptors for Human Detection(翻过,没细研究)
cvpr09-0515-Adaptive Contour Features in Oriented Granular Space for Human Detection(仔细研读了:提出一种新的特征,但是有些特别重要的地方没讲清楚)
现在在INRIA库上的最好结果是:Maji S., Berg A C, Malik J. Classification using Intersection Kernel Support Vector Machine is Efficient. 是对SVM进行了改进。
上面主要是针对图像库来检测的。不能达到实时,要做到实时是不可能的。下面是我草拟的一个行人检测的流程:
离线训练过程:
1.输入为标准图像库中的图像,对于正样本,直接提取特征;对于负样本,多尺度遍历整幅图像,进行特征提取。提取Harr,LBP,HOG三种特征并保存为积分图形式。
2.对于cascade的每一级进行如下操作:用Adaboost进行特征选择,选出最好的特征。
在前面的几级用Harr和LBP这两种计算较快的特征,后几级用HOG。
3.进行级数调整,直到达到要求的检测率和错误率。
![](http://filer.blogbus.com/11139779/11139779_1295591569x.jpg)
检测过程: 1.输入图像,多尺度遍历整幅图像,进行特征提取:提取Harr,LBP,HOG三种特征并保存为积分图形式。 2.将所有子窗口输入训练得到的模型中,如下图,经cascade分类器后,根据检测结果即可标定行人区域,通过一些后处理(例如,合并临近的窗口),就可以对行人进行定位,达到检测的目的。
![](http://filer.blogbus.com/11139779/11139779_12955919699.png)