车辆是视频场景中最关键的对象之一,车辆 和 人 是视频检测永恒的话题。
车辆检测 是车辆分析中关键的一步,是后续进行 车型识别、车标识别、车牌识别、车辆特征 的基础。
关于检测的方法和框架有很多,不外乎是特征训练和分类,这里推荐两篇综述性文章:
[1] Benenson R, Omran M, Hosang J, et al.Ten Years of Pedestrian Detection, What Have We Learned? [M]// Computer Vision - ECCV 2014 Workshops. Springer International Publishing, 2014:613-627. http://rodrigob.github.io/documents/2014_eccvw_ten_years_of_pedestrian_detection_with_supplementary_material.pdf [2] P.Dollar, C. Wojek,B. Schiele, et al.Pedestrian detection: an evaluation of the state of the art[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2012, 34(4): 743-761. http://vision.ucsd.edu/~pdollar/files/papers/DollarPAMI12peds.pdf
• 开放检测算法框架及代码:
关于目标检测的框架及代码非常多,这里列出来几个:
名声在外的 DPM
Deformable Part Models,专业做行人检测,对于车辆检测等刚体目标 并无太多优势。
参考代码:https://people.eecs.berkeley.edu/~rbg/latent/index.html
INRIA Object Detection and Localization Toolkit
基于HOG特征的行人检测方法,由Dalal于 2005年 提出,经典中的经典(虽然稍微有点老)。
参考代码:http://pascal.inrialpes.fr/soft/olt/
doppia code
这是一个代码集合,2015年 更新,内容包含:
a) Pedestrian detection at 100 frames per second, R. Benenson. CVPR, 2012. b) 实时的 Stixels estimation without depth map computation. c) Fast stixels estimation for fast pedestrian detection. d) Seeking the strongest rigid detector. e) Ten years of pedestrian detection, what have we learned? f) Face detection without bells and whistles.
下载地址:https://bitbucket.org/rodrigob/doppia
Pitor Dollar Detector
有一个代码集合,大牛名字命名,全称为:Piotr’s Computer Vision Matlab Toolbox
下载地址:https://pdollar.github.io/toolbox/
• 开放训练数据集 (行人检测):
MIT 行人数据集
MIT 早期公开数据集(2000年),共924张行人图片(ppm格式,宽高为64×128),只含正面和背面两个视角,无负样本,未区分训练集和测试集。
该数据集目前已很少使用,但由于公开较早,影响力比较大,因此作者把它列在第一个。
下载地址:http://cbcl.mit.edu/software-datasets/PedestrianData.html
Caltech Pedestrian 行人数据集
该数据库是目前规模较大的行人数据库(2014年),采用车载摄像头拍摄,约10个小时左右,视频的分辨率为640×480,30帧/秒。
标注了约250,000帧(约137分钟),350000个矩形框,2300个行人,提供了相应的Matlab工具包。
下载地址:
http://www.vision.caltech.edu/Image_Datasets/CaltechPedestrians/
NICTA 行人数据集
目前规模较大的静态图像行人数据库,25551张含单人的图片,5207张高分辨率非行人图片(2008年)。
数据库中已分好训练集和测试集,方便不同分类器的比较。
下载地址:http://www.nicta.com.au/category/research/computer-vision/tools/automap-datasets/
INRIA Person
目前使用最多的静态行人检测数据集,由“HOG+SVM”的作者Dalal创建(2005年)。
训练集有正样本614张(包含2416个行人),负样本1218张;测试集有正样本288张(包含1126个行人),负样本453张。
下载地址:http://pascal.inrialpes.fr/data/human/
另外,还有 TUD、ETHZ、USC、CVC 等数据集,当然你可能也知道大名鼎鼎的 ImageNet(里面会有少部分行人),当然公版数据集也仅仅在于自己测试用,想要得到更好的检测效果,你必须训练自己的数据集。
• 开放训练数据集 (车辆检测):
MIT - CBCL 车辆数据集
由 MIT 提供的车辆数据集(2000年),主要用于车辆检测和识别中,共有516张128*128格式为ppm的图像。
下载地址:http://cbcl.mit.edu/software-datasets/CarData.html
KITTI
这是一个测试交通场景中 车辆检测、追踪、语义分割等算法的公开数据集。由丰田汽车主导,目前在测试自动驾驶等识别算法中应用比较多。
实际上,KITTI 已经成为 ADAS行业的 实际效果检测标准。
下载地址:http://www.cvlibs.net/datasets/kitti/index.php
UA-DETRAC
车辆检测和跟踪的大规模数据集,可以作为 KITTI 的补充。
数据集主要拍摄于北京和天津的道路过街天桥(京津冀场景有福了),并 手动标注了 8250 个车辆 和 121万目标对象外框。
附带的 Toolkit 统一了数据接口,里面包含了几种 State-Of-The-Art 的检测和跟踪方法(大家可以进行测试比较)。
数据集:DETRAC-Train-Images (5.22GB, 60 sequences)
DETRAC-Test-Images (3.94GB, 40 sequences)
检测:DETRAC-Train-Detections (DPM, ACF, R-CNN, CompACT)
DETRAC-Test-Detections (DPM, ACF, R-CNN, CompACT)
下载地址:http://detrac-db.rit.albany.edu/
• ACF 算法
ACF 是指 Aggregate Channel Features,包含在 Piotr Dollar 工具箱内(目前更新至3.50),作为目标检测算法,在行人检测领域有不错的表现。
这里我们把他应用在车检上,借助 DETRAC 数据集进行训练。
Piotr Dollar 工具箱采用 Matlab接口,因此,在实际应用中需要 封装为 C++接口 ,基本步骤如下:
1. 安装Matlab编译器 命令行输入mex -setup,根据提示安装matlab compilers; 注意选择compiler类型,matlab自带的编辑器 或者对应你用的VS版本。 2. 安装生成器 命令行中输入mbuild -setup。 3. 生成c++库文件 调用命令mcc -W cpplib:XXX -T link:lib XXX.m; 前面的XXX表示生成的dll文件名,后面的XXX.m对应matlab源文件,生成后文件包括:XXX(.h. lib .dll)。
关于 Matlab 的其他调用方式 根据需要也可以尝试。
数据训练:
作者采用 Detrac 数据进行训练,具体训练过程按住不表,直接看 检测效果(近端检测还是很不错的):