深度卷积神经网络的行人检测 (pedestrian detection)

行人检测 (pedestrian detection)是智能交通视频分析的基础技术之一。
1 现有的方法

  • 基于HOG方法
  • 基于DPM
  • 基于卷积神经网络
基于HOG方法已经研究了很多年,有一些现成的代码实现,速度看起来也是比较快的,可以做到500帧每秒的检测速度(640*480,GTX295)。基于DPM的方法其实也是基于HOG的,只不过为行人的图像构建可以变形的模型,这样在检测行人的时候更为鲁棒。基于DCNN的模型是最近随着深度学习的盛行而来的,目前看起来正确率相对较高,但是速度相对较慢。
Denso IT Laboratory在网上Post的这段视频是我看到的第一个基于DCNN的实时行人检测监测。impressive! 实现的平台是AMD的Tegra K1,适合嵌入式设备。(昨天还有AMD的工程师来问我们是否有兴趣在APU上搞点东西,我现在也比较看好APU了。)使用了9层CNN网络,还可以输出行人到摄像头的距离,行人高度,是否摔倒等信息(orientation)。

2 数据集 目前大家常用的行人检测数据集主要是:
INRIA数据库: 训练集有正样本614张(包含2416个行人),负样本1218张;测试集有正样本288张(包含1126个行人),负样本453张。图片中人体大部分为站立姿势且高度大于100个象素,部分标注可能不正确。
Caltech行人数据库: 规模较大的行人数据库,采用车载摄像头拍摄,约10个小时左右,视频的分辨率为640x480,30帧/秒。标注了约250,000帧(约137分钟),350000个矩形框,2300个行人,另外还对矩形框之间的时间对应关系及其遮挡的情况进行标注。
ETH行人数据库:该数据库采用一对车载的AVT Marlins F033C摄像头进行拍摄,分辨率为640x480,帧率13-14fps,给出标定信息和行人标注信息。
3 算法分析 paper: Real-time Pedestrian Detection Using LIDAR and Convolutional Neural Networks
【深度卷积神经网络的行人检测 (pedestrian detection)】Denso是一个做视频分析的公司,文章比较难找到。这篇Denso2006年的文章,描述了这个系统的早期版本:
  • 使用了两层的CNN网络。输入是30*60。这个结构还是一个Classification的网络。这个网络比较小。
  • 然后对整个图片使用滑动窗口。1. 结合LIDAR光线探测器来减少搜索的区域; 2. 基于flat world假设(就是人总是站在路上的,所以可以实事先画出道路区域,这个对固定摄像头是有效的),减少搜索区域。
  • 实现的速度(那时候还是P4的时代)
Beyond Pedestrian Detection: Deep Neural Networks Level-Up Automotive Safety
这篇文章是Denso在GPU计算网站给出的算法框架,看起来很简单,就是3层卷积,3层Maxpool和3层的Full connected .

最后一层既包括Classification,又有Regression。

others: Tegra 1:
NVIDIA? Kepler? 架构 (NVIDIA 4-加-1 (4-Plus-1?) 四核 ARM Cortex-A15 )
192 个 NVIDIA CUDA
最大内存容量 8 GB
28 纳米
364.8 GFLOPs (Intel i7 只有91.87 GFLOPS)
power: <2W (while Titian >250w,能效比是GPU的10倍?)
如何做Location?

    推荐阅读