褚玮 周皓
摘要:基于行车前方的场景图像,该文提出了一种融合车底阴影、车道线和SIFT(尺度不变特征变换)光流的汽车识别方法。用高斯拟合法算出路面区域的灰度阈值生成二值图,结合水平边缘检测获得车底阴影,再根据车道线等场景信息建立候选汽车区域;在设置的三个感兴趣的特征区域中,用尺度不变特征变换匹配生成特征光流场,进而识别车道上汽车位置及行车状态。结果表明:该方法检测情况稳定,准确率高,检测结果可应用于汽车驾驶辅助系统。
关键词:SIFT 光流场 特征区域 车底阴影
中图分类号:TP391.41 文献标识码:A 文章编号:1007-9416(2016)08-0072-02
基于视觉的汽车识别在汽车驾驶辅助系统中占据重要价值,能提供给驾驶员汽车行驶环自身状态(包括速度、方向等)、车辆间距、占道情况等。
光流场是一个二维矢量场,可理解为三维运动场在成像平面上的投影,反映了图像上每一点灰度的变化趋势,是一种对真实运动场的近似估计。光流运动分析[1]主要包括两个步骤:第一步,由时变图像序列的连续两帧或多帧图像计算光流场;第二步,解释所得的光流场,检测观察场景中的运动,推断运动参数和运动物体的表面结构。
1 生成可靠光流场
1.1 SIFT特征
实际行车环境中前车图像序列是在摄像机有抖动、光照有变化、噪声较严重、目标尺度发生变化的情况下获得的。SIFT特征[2]是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性,而对物体运动、遮挡、噪声等因素也保持较好的可匹配性,从而可以实现差异较大的两幅图像之间特征的匹配。SIFT算法其基本思想是在尺度空间寻找极值点,提取关键点后对关键点附加详细的局部特征信息,生成描述器(一个128维度的向量),通过特征点的两两比较找出相互匹配的若干对特征点,从而建立了目标间的对应关系。
1.2 SIFT光流场
通过计算每个像素点128维度的SIFT特征向量,整个图像区域构成一个SIFT图像。为了将可视化,将每个SIFT特征向量通过最主元分析选择前3个主元投射到3维的RGB颜色空间,生成了如图1中左图的效果,图中相同的颜色部分意味着有类似的空间结构。
通过对连续两帧图像的SIFT特征向量的匹配,得到稳定、可靠、致密的SIFT光流场。对生成的光流场同样采用一种可视化表达方法,如图1所示的中图和右图,用不同色度和饱和度表达不同的光流方向和大小。
2 感兴趣区域分割
2.1 估计FOE(Focus of Expansion)
当摄像机在稳定的场景中按照光轴平行于路面的方式向前移动时,图像序列计算出的光流场中会存在一个向外扩张的聚焦点,它的光流值为零,理想情况下,通过光流场的结构可以估算FOE的位置,但是车载摄像机的震动或倾斜以及汽车的行驶轨迹会导致FOE的位置剧烈变化,影响光流场结构。通过Hough直线检测方法检测出原图像边缘图中的车道界线,车道界线的交点认定为FOE的位置。
2.2 行车环境光流场的特征区域设置
基于FOE和车道线的检测将图像分割成A、B、C、D和E五个区域, 如图2(a)所示。A和B区域属于水平线以上的场景,这两个区域中信息较为丰富(如道路两边的建筑物),能较好地生成体现出主车运动状态的光流场结构。C、D和E区域属于水平线以下的场景,包含路面和可能存在的汽车。如图2(b)所示,显示了光流场的五个区域平均光流矢量,圆圈代表光流矢量起点,线段长度代表光流矢量的大小。根据图中A、B区域的平均光流矢量的方向和幅值可以初步判断行车自运动状态为向前行驶。将C、D、E区域的平均光流矢量与A、B区域对比后,可初步判断在C区域或E区域中可能存在运动汽车。在下一阶段计算中,仅考虑C、D、E区域作为兴趣区域。
3 目标汽车的行车状态
3.1 通过车底阴影获得候选汽车区域
车底阴影的灰度值依赖于图像中的环境光照强度,因此无法定量描述其灰度值的下界阈值。通常情况下,车底阴影要明显比汽车所在行驶路面的任何部分都暗,可以通过分析路面区域的灰度值自动地估算出一个上界阈值,且满足车底阴影区域灰度值小于这个上界阈值,从而分割出车底阴影区域。
利用色彩信息[3]或熵可以分割出图像中的行驶路面,虽然分割出的区域更精确但计算耗时多,因此选择一种基于边缘的快速分割方法,首先采用canny算子计算原图像的边缘图,从下往上考察边缘图中的每一列,以遇到的第一个边缘点为分割点,分割点以下的像素点归类为路面区域。实验证明,该法运算更快速,分割精度也满足后续操作的要求,见图3。
3.2 SIFT特征光流场及车辆状态判断
如图4所示,对车载摄像机在高架道路环境下所拍摄的行车前方连续10帧的图像进行了车底阴影进行分析,车道线使用红色虚线表示,红色“+”号为多帧图像检测到的FOE位置。对于每帧图像都会生成候选区域,于是联合多帧中的信息对候选区域出现的可能性用灰度级别来表示,图中越黑的区域表示存在汽车目标的可能性越大,全黑表示在10帧图像中该区域均出现。因为只有在C、D、E区域中可能存在车辆信息,针对感兴趣区域提取SIFT特征计算光流场,节省计算时间。如图5所示,通过多帧信息的融合,确定在E区域中有一辆靠近主车的车辆,大小如图中所示黑色矩形框,它相对于主车的向后行驶,同时在这区域可能有两辆较远的车辆;C区域可能有一辆车,距离主车较远;D区可能有一辆车,非常靠近FOE区域,距离主车较远。之所以在SIFT光流场分析中未见到有些车辆候选区域的明显光流特征是因为这些区域中的车辆相对于主车基本静止,作为局部的前景未见明显变化。
4 实验结果
准确检测前方运动车辆的位置等状态信息是车辆安全驾驶的前提,本文对连续的图像序列处理,在主车未变道的情况下,FOE点和车道线的相对稳定,用帧间信息融合比对进行快速判断,不用实时检测,对于生成的目标假设区域,SIFT光流信息可以很好排除虚假车辆。对实际图像情况下的各种干扰能初步有效的排除,提高了检测效率。实验结果显示,该算法的正确识别率达到96.2% ,白天环境能满足准确的识别要求。
5 结语
在行车前方的复杂情况下,全局方法获得的光流场稳定性差,采用融合车辆特征和SIFT光流场的方法可完成行车前方复杂场景下的汽车识别任务。本文方法将进一步处理提取自身行车速度、弯道、上下坡等特征信息,以及处理夜间行车环境问题,进而更加完善地判定行车状态。
参考文献
[1]马颂德.计算机视觉[M].科学出版社,1998.
[2]Lowe D G. Distinctive Image Features from Scale-Invariant Keypoints[J]. International Journal of Computer Vision, 2004, 60(60):91-110.
[3]Raboisson S, Schmouker P. Obstacle detection in highway environment by colour CCD camera and image processing prototype installed in a vehicle[C]// Intelligent Vehicles ‘94 Symposium, Proceedings of the. 1994:44 - 49.