from: http://blog.csdn.net/viewcode/article/details/20358367
前方车辆检测,这里指的是基于车辆自身对象,而不是公路交通部分的车辆检测。
前方车辆检测,可以用于防碰撞系统、进而用于自动巡航(ACC)等功能,应用场景广泛,所以,此技术是一项比较基础的技术。而先前的ACC,只是基于正前方车辆的检测,对于侧面的车辆或环境的跟踪能力有限。但随着各种传感器和导航地图的应用,ACC的能力也会大大增强。ACC只用于高速行驶状态,但已有低速跟车系统的研究,某公司已计划未来两年内上市。
1. 传感器
前方车辆检测,常用的传感器有高频雷达(毫米波)、红外激光雷达、摄像头。
每种传感器都有各自的优缺点:
雷达:自己可选用的波段有限,常用24G(厘米波)、79G波段。对雨雾天气的适应能力好,探测距离大150米,但容易受电磁干扰影响。据传,79G雷达技术对国内有限制的。而欧盟和我国的工信部是建议24G作为车载雷达波段。而美国是推荐79G波段作为车载雷达的使用波段。http://www.srrc.org.cn/NewsShow6038.aspx
红外激光:抗干扰能力强,定向性。但对于雨雾天气的穿透能力弱。且成本高。
摄像头:基于视觉的探测。对距离的判断较弱(单目视觉情况下),易受雨雾天气的影响。
所以,想适应各种场景,厂商一般会采用多种传感器收集信息。
这里重点总结下,基于单目视觉的车辆检测技术。
从视觉上来讲,车辆的形状、颜色和大小虽然限定在一定范围,但都是不固定的,而且,其外形会受到自身姿势和外部环境,如光照或旁边物体的影响。
2. 基于先验知识的特征检测
汽车有一些一些典型的特征, 如对称性、颜色、阴影、几何特征(如角点、边缘)、纹理、车灯。
1)对称性
汽车从前方和后方来看,无论是在区域面积还是边缘特征上,具有很好的对称性。
但是,对称性特征易受噪声的干扰,以及角度的影响。
2)颜色
颜色空间一般不直接使用在车辆上,而比较有效的手段是识别路面和车辆阴影。
3)阴影
车辆阴影是与车辆相关的一个重要的特征。因为车辆阴影一般比周围区域都要暗。但具体的参数指标,还与光照,即天气状况有关。
一般做法是采用两个阈值,一高、一低,低阈值用于确定阴影,而高阈值由阴影周围环境来确定,如局部分割算法,均值+方差。
4)角点
先检测出所有角点,然后再根据角点的空间关系,如汽车的四个角点会形成一个矩形,来筛选汽车。
5)垂直或水平边缘
一种方式,直接检测垂直边缘,利用类似直方图计算垂直投影。然后,车辆底盘下方阴影部分也是重要的水平边缘特征。
另外,也有采用多分辨率的方式,在每个层次都
边缘只是作为一种初步的筛选/搜索手段。
6)纹理
熵、共生矩阵都可被作为基于纹理的图像分割的基础。
7)车灯
主要是用于夜间车辆的探测。因为,以上特征在晚上基本都无效了。
8)基于运动的方法
以上其中都是空间特征。而基于运动的方法是对图像连续序列的分析。如光流法。
但光流法会消耗大量的计算资源,时间和空间。
3. 识别
无论是用遍历的方式,还是用特征筛选出的候选区域,对筛选出的子图像需要进一步识别,车辆还是非车辆。
1)基于模板的方法
采用简化过的车辆模板来筛选。
2)基于外观特征的方法
车辆VS非车辆 分类
二类分类问题,一般采用机器学习/模式识别的方法解决。
首先,需要大量的训练图片。
其次,选取合适的特征,如PCA,HOG,harris,haar wavelet feature, SIFT等
再次,选取分类器,如NN,svm等
4. 跟踪
车辆的跟踪的好处:
1)提前预测车辆出现的位置,减少车辆检测的搜索空间,节省计算时间。
2)区分多个车辆,每辆车都有各自的特征,如HOG,边缘,灰度密度等,使用这些特征,就可以区分不同类型的车辆。根据跟踪算法的结果,即使是同款车辆出现在同一场景,也能基本区分。
目前,常用的跟踪算法,有卡曼滤波算法。
5. 近几年热门的车辆检测方法
1)HOG 特征 + haar-like特征;SVM 或 adaboost 分类器; (HOG + SVM ; haar-like + adaboost 速度快)
2)光流法;或增加一个HMM分类器,或SVM分类器
--------------------------------------------
前方车辆检测技术,常见问题:
1. 选取那种分辨率来计算?
mobileye采用的是 640×480 或 752 * 480 彩色CMOS摄像头
2. 如何选取特征?
3. 如何跟踪?
4. 如何计算距离?
5. 如何计算前车速度?
6. 如何区分多个车辆?
--------------------------------------------
基于Haar和HoG特征的前车检测方法,其特征在于,包括以下步骤:
步骤I)人工选取出大量车辆图片和非车辆图片作为训练集的正、负样本,并将正、负样本规格化到24 X 24像素下;
步骤2)使用Haar特征和HoG特征分别对规格化后的每一幅正、负样本进行表征,形成特征向量;
步骤3)针对Haar特征和HoG特征形成的两种特征向量分别构建弱分类器;
步骤4)利用级联的Adaboost算法对弱分类器进行训练,得到级联车辆强分类器;
步骤5)针对车载摄像头获得的前方道路视频图像,将其中各种尺寸、各种位置的子图像输入级联车辆强分类器中进行判断。
也有利用改进的HOG特征值,和SVM训练,来对车辆进行识别
harr特征、hog特征(大量的正、负样本图片训练),利用adboost算法 进行训练、级联,形成强分类器
http://www.google.com/patents/CN102855500A?cl=zh
-------------------------
HOG特征的计算及一些改进:
HOG:histogram of oriented gradient, 方向梯度直方图,就是描述物体的形状和边缘特征,并且不涉及尺度和旋转。
1. 将子图像灰度化,归一化(为了除去光照和阴影的影响)
2. 划分成小cells,如3*3个像素块或6*6个像素块。
3. 计算每个cell中每个pixel的gradient方向,或者说是边缘的方向。
4. 统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor。
5. 连接所有cell形成一个子图像的特征描述子。
6. 子图像之间是一般是由重叠的区域的,这样一个cell影响的就不是一个子图像了。一个矩形子图像,一般有三个参数:每个子图像有多少方格、每个方格有几个像素、以及每个方格直方图有多少頻道(梯度方向)。
由于人体轮廓在局部HOG归一化特征上有良好的稳定性,最初是用于人体检测。
在Dalal和Triggs的人检测实验中,发现最优的单元块划分是3x3或6x6个像素,同时直方图是9通道。