基于单目视频流的前方车辆检测系统研究

2015-05-30 10:48周士杰徐向华
计算机时代 2015年8期

周士杰 徐向华

摘 要: 针对现有的前方车辆检测系统漏检率较高的问题,在检测算法的不同阶段提出了新的方法以降低漏检率。在车辆特征提取阶段提出了一种基于影线扫描的算法提取车辆阴影特征,找到可能包含车辆的疑似区域;在疑似区域验证阶段提出了一种多特征投票机制。通过这两种方法,使系统在保证实时性的同时,提高了对前方车辆的检测率。

关键词: 车辆特征提取; 疑似区域验; 影线扫描; 投票机制

中图分类号:TP391.4 文献标志码:A 文章编号:1006-8228(2015)08-12-03

Study on front-view vehicle detection system based on monocular vision

Zhou Shijie, Xu Xianghua

(Hangzhou Dianzi University, Zhejiang Provincial Key Lab of Data Storage and Transmission Technology, Hangzhou, Zhejiang 310037, China)

Abstract: This paper presents a new method for monocular vision real-time vehicle detection system to reduce the detection missing rate. We extract vehicle shadow features and generate a hypothesis with a new algorithm based on shadow line scanning, then a multi-feature voting system is used to verify the hypothesis. By this way, detection system can achieve both real-time performance and high detection rate.

Key words: vehicle features extraction; hypothesis verification; shadow line scanning; voting system

0 引言

基于单目视觉的前车检测系统使用随车的单一摄像头作为检测系统的输入设备拍摄前方场景,通过机器视觉算法对输入的视频流进行检测,从而获取前方车辆位置信息。现有的车辆检测算法多遵循Sun Z等人于2006年提出的两步检测框架[1]:在特征提取(Hypothesis Generation,HG)阶段,检测系统通过车辆的先验特征从视频中提取出可能含有车辆的区域(Region of Interest,ROI),然后在假设验证(Hypothesis Verification,HV)阶段验证这些区域中是否存在车辆。

HG阶段的主要问题即为选择何种先验特征。常有的特征有对称性特征,颜色特征,边缘特征等,这些特征易受环境影响,导致在HG阶段的漏检。阴影特征是车辆底部的连续较暗区域[2],由于阴影区域不受直射光的影响,其亮度总是低于其邻域。较之其他特征,在不同的行车环境中前方车辆的阴影特征总能保持其特性,因此有着较强的普适性,此外,由于阴影特征总是定位于车辆底部,通过其可以简单地获取车辆位置。因此现有的前车检测系统多采用阴影特征作为特征提取阶段使用的车辆先验特征[3]。现有的车辆阴影特征提取算法采用颜色分割的方法提取图像中连续区域的轮廓,使用Hu不变矩判断轮廓形状与矩形的相似度,以此来提取阴影特征并决定可能包含车辆的ROI[4]。远方车辆的阴影区域较小且易受散射光影响,导致其阴影特征区域分布较为离散,现有算法极易发生漏检;此外,中近距离的车辆在相对运动时易覆盖前车,导致车辆的底部阴影发生形变。这些车辆也难以被现有算法检测出来。

HV阶段多采用基于机器学习的验证算法。基于机器学习的方法利用特征向量对样本进行学习,获取分类车辆所需的决策向量[5]。由于车辆尾部近似矩形,基于Haar-like特征与Adaboost算法[6]的验证算法得到了较多的应用。然而其实时性较差,难以满足实际需求,此外,HG阶段所提取的ROI往往部分覆盖车辆,现有验证算法难以对其进行分类,进一步提高了系统漏检率。

本文采用以下两种方法提高系统的检测率。在提取阶段,提出了一种基于影线扫描的阴影特征提取算法,通过同一阴影区域的影线相互融合来模拟基于区域的阴影特征提取算法;在验证阶段,添加一个由多种耗时较少的算法所组成的对ROI进行权值投票的机制,根据投票权值对对ROI进行分类。经实验验证,系统的检测率与实时性有着明显的提升。

1 基于影线扫描的阴影特征提取算法

针对现有算法漏检率较高的问题,本文提出了基于影线扫描的阴影特征提取算法。使用阈值扫描图像,提取车辆底部阴影直线,通过多条在同一阴影区域的影线的融合模拟基于区域的阴影提取。算法的中心思想是利用在同一区域的多条影线之间几何关系进行融合,扩展区域底部影线的左右边界,使之等同于阴影区域的宽度,模拟阴影区域特征。本算法对阈值要求较低,有实时性较高,漏检率极低的优点。其具体步骤如下。

⑴ 对输入图像进行预处理,提取算法使用的阴影阈值。

⑵ 使用阴影阈值扫描图像,提取阴影直线集合。

⑶ 对检测得到的集合进行融合,从而提取阴影特征,获取可能含有车辆的ROI集合。

基于影线扫描的阴影特征提取算法如图1所示。

[查询图像][阈值计算][影线提取][影线分类][影线融合] [按行扫描] [检测结果]

图1 提取算法流程图

1.1 阴影灰度阈值计算

目标阴影区域总是定位于路面上,因此合适的阴影阈值需将阴影与路面分开。图像中的路面区域的灰度分布满足如下正态分布:

其中m为平均灰度值,σ为标准差。当阴影阈值设为m-3σ时,可以保证该阈值对路面区域与阴影区域有着良好的区分度。因此,如能得到m与σ,即可计算出算法所需的阈值。而该值可以通过对路面灰度图进行高斯卷积求出。因此,只要得到路面灰度图,即可得到阴影阈值。本文采用路面扫描的方法提取路面。通过水平边缘值限定路面的边界,自底向上扫描路面区域,得到路面图像。通过对该图进行高斯卷积,获取下一步所需要的阴影阈值。

1.2 基于影线的阴影特征提取

实际场景中的阴影分布如图2所示。

图2 阴影特征的实际分布

图2中,位于阴影区域底部的影线被称为基准影线。系统提取阴影区域的目的是根据阴影区域的位置信息定位车辆,因此,如基准影线与阴影区域等宽,就可以使用其模拟阴影区域。由于周围邻域散射光的影响,基准影线较为破碎,难以标示阴影区域的边界。阴影区域由不同行上的多条重叠影线组合而成,通过这些重叠的影线之间的几何关系,可以对基准影线进行补全,从而提取阴影特征。以下是具体方法。

⑴ 影线提取与分类

使用阈值从底向上按行扫描图像,如行上的像素点P灰度小于阈值,则认定P点为阴影点并生成影线,向右侧扫描并计算当前影线的平均灰度值Dgray,直至在点S,Dgray小于阈值。若P,S点之间的距离在长度阈值之间且P到S点之间的像素均值小于其下方邻域的均值的一半,则将从P到S的像素点视为一条基准影线;否则将其视为普通影线SLine。如S点右侧5个像素点内存在阴影点I,则将从S到I点的值设为阴影阈值,重新开始扫描。

⑵ 影线融合

根据基准影线BSL与普通影线SL之间的位置关系,将在同一区域中的影线融合,以模拟车底阴影特征。根据BSL与SL的高度差HM与公共部分OverRider的长度决定是否进行融合。当len(OverRider)>0且HM<10×len(BSL)/9时,则认为普通影线FSL与基准影线BSL之间存在匹配关系。如len(OverRider)

图6中左侧为SA的提取效果,而右侧为SL的提取效果。当车辆距离摄像机较远,或被其他车辆阻挡时,传统的阴影特征提取算法漏检较多。其在漏检率上的对比如表2所示。

图6 提取效果对比图

表2 算法漏检率对比

[场景\&总漏检率\&远距漏检\&覆盖漏检\&平均耗时\&SA\&SL\&SA\&SL\&SA\&SL\&SA\&SL\&a\&16.5%\&0.61%\&59.1%\&2.11%\&42.1%\&3.69%\&13.5ms\&4.6ms\&b\&15.4%\&0.79%\&21.3%\&2.67%\&31.0%\&1.6%\&12.7ms\&3.8ms\&]

从表2可以看出,基于影线融合的阴影特征提取在漏检率方面有着非常明显的优势。特别是在传统特征提取算法表现较差的区域,本算法有着较好的检测效果。

本文提出的投票机制(VM)与文献[6]中使用的Haar-like+adaboost验证算法(HA),其对比效果图如图7所示。