行人检测 (pedestrian detection)是智能交通视频分析的基础技术之一。
1 现有的方法
- 基于HOG方法
- 基于DPM
- 基于卷积神经网络
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的时代)
这篇文章是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?
推荐阅读
- Computer|sobel算子
- Machine|OpenCV中Canny边缘检测
- OpenCV|OpenCV计算机视觉实战(Python)| 04、图像形态学处理
- Machine|Gabor滤波器与特征提取