5
10
15
20
25
30
35
40
中国科技论文在线
http://www.paper.edu.cn
基于逆透视变换和卡尔曼滤波的车道线识
别算法 #
李扬威 1,黄影平 1,胡兴 1,慈文彦 2**
(1. 上海理工大学光电信息与计算机工程学院, 上海 200093;
2. 南京师范大学泰州学院电力工程学院,泰州 225300)
摘要:提出了一种基于逆透视变换和卡尔曼滤波的车道线识别跟踪算法。给出一种简单的逆
透视变换方法,该方法不需要获取摄像机的内外参数,计算简单。采用高斯核函数对图像进
行卷积,使得车道线信息呈现出最强的响应。在逆透视变换基础上,通过搜索检测车道线的
特征点及其位置,结合自定义的投票区间,将车道线特征点拟合成直线。采用卡尔曼滤波对
检测到的车道线进行优化和预测跟踪,提高了算法的鲁棒性。实验结果表明,本算法对不同
道路场景下的车道线均具有很好的识别效果。
关键词:车道线检测;逆透视变换;卡尔曼滤波;直线拟合算法
中图分类号:TK317.4
Lane Detection Based on Inverse Perspective Transform
and Kalman Filter
LI Yangwei1, HUANG Yingping1, HU Xing1, CI Wenyan2
(1. School of Optical-Electrical and Computer Engineering,University of Shanghai for Science
2. School of Electric Power Engineering, Nanjing Normal University Taizhou Colledge, Taizhou
and Technology, Shanghai 200093;
225300)
Abstract: This paper proposes a novel algorithm for lane detection based on inverse perspective
transform and Kalman filter. A simple inverse perspective transform is presented to remove perspective
effects. The method does not need to obtain the internal and external parameters of the camera. The
Gauss kernel function is used to convolution the image to highlight the lane line information. A searching
method is applied in the image obtained from the inverse perspective transform to determine the lane
points and their positions. Combining with feature voting mechanism, the detected lane points are fitted
as a straight line. Kalman filter is then applied to optimize and track the lane and achieve detection
robustness. The experimental results show that the proposed method works well in various road
conditions.
Key words: Lane detection; Inverse perspective transform; Kalman filter; Line fitting
0 引言
近年来,高级辅助驾驶系统(ADAS)受到了国内外研究者的普遍关注,ADAS 能有效
的辅助驾驶员对车辆进行驾驶,其中车道线的识别和跟踪技术是 ADAS 的重要组成部分。
车道线检测可以分为基于特征的和基于模型拟合的检测方法。基于特征的方法通过分析图像
底层特征对路面图像进行分割提取,检测出车道线。基于特征的方法有:文献[1]提出利用
极角约束 Hough 变换进行车道线初始定位,并且使用基于动态 ROI 的 Hough 变换进行车道
线跟踪。文献[2]提出一种基于成像模型的线扫描车道线检测与跟踪算法。文献[3]提出一种
基金项目:教育部博士点基金资助项目(20133120110006),国家自然科学基金资助项目(61374197)
作者简介:李扬威,(1993-),男,硕士研究生,从事机器视觉,图像处理的研究
通信联系人:黄影平,(1966-),教授, 博士导师,智能汽车,模式识别,汽车电子. E-mail:
huangyingping@usst.edu.cn
- 1 -
中国科技论文在线
http://www.paper.edu.cn
基于边缘分布和特征聚类的车道线标记方法。文献[4]提出一种基于法向车道线的特征提取
方法,结合线特征的方向信息和强度信息进行车道线直线检测。基于模型的方法根据提取的
车道线特征对预先定义好的车道线模型进行匹配,如事先假定车道线的形状为直线或抛物线,
将车道线的检测看做是计算这些模型参数的过程。基于模型拟合的方法有:文献[5]采用广
义曲线的车道线参数模型,利用随机霍夫变换和禁忌搜索算法来计算车道线模型中的各个参
数。文献[6]、[7]采用 B-Snake 车道模型,将车道线检测的问题通过道路模型转换为确定样
条曲线所需的控制点的问题。文献[8]提出一种利用图像梯度信息的似然估计来对车道线进
行拟合的算法。文献[9]提出采用一个可变形的模板来匹配车道线的边界,采用基于最大后
验概率的禁忌搜索算法来估计模板的参数。文献[10]提出通过主方向和边缘方向确定估计模
型的参数,再进一步用 Gabor 滤波器挑选出最佳的车道线参数。
基于特征的方法,往往在获取道路信息时会受到光照,车道线破损,树木阴影和道路标
线等因素的影响,鲁棒性不够强。基于模版的方法较难找到合适的道路模型,而且模型的参
数求解复杂,算法难度较大。本文提出一种基于道路特征点提取的直线拟合算法,并且结合
卡尔曼滤波来进行车道线的跟踪。
45
50
55
算法的结构框图如下:
图 1 算法结构框图
Fig.1 Algorithm structure diagram
1 图像预处理
60
1.1 感兴趣区域的获取
车载摄像机获得的原始图像中含有大量的非车道信息,如天空,道路两旁的树木等,如
果对原始图像进行全局处理,将增加算法的运算量,降低算法的效率及实时性,而且这些无
效区域会对车道线的信息造成干扰,影响车道线的识别精度。因此在进行车道线检测之前首
先提取车道线识别的有效区域,剔除大量的无效信息。图 2 的红色方框所示的区域是用来进
行车道线识别的感兴趣区域。
65
- 2 -
中国
国科技论
论文在线
线
http
://www.paper.e
edu.cn
图 2 感兴趣区
图
2 Region of in
Fig.2
区域
nterest
1.2
逆透视变
变换
由于成像的
的透视效果,
线呈现为两条
条不平行线。
逆透视变换
换就是要消除
除成像
的透
透视效果,以
产生与实际情
在产生的俯视
视图中,车道
道线为垂直而
而且相
图 2 中车道线
情况一致的俯
俯视图像。在
车道线。
互平
平行的线,有
有利于后续算
算法中的识别
1.2.1
1 一种简单
单的逆透视变
变换方法
严格的逆透
透视变换需要
要综合考虑摄
小等
等物理量。本
本文采用一个
个简单的梯形
后将
将呈现为一个
),vu 表示 R
令(u
个倒梯形的形
OI 坐标系,
P
形状,所以该逆
yx 表示变
,(
QM
)
像机安装时的
变换产生俯视
的倾斜角度、
视图。图 2
可以简化为一
、高度、以及
中的 ROI 为
一个矩形至倒
逆透视变换可
变换后的俯视
视图坐标系,
其映射关系
及摄像机的光
光圈大
为矩形区域,
变换
射过程。
倒梯形的映射
为
系可以表示为
(1)
为矩
形至
gd
he
1f
da
eb
fc
y
w
。利
利用矩阵运算
算,上
fve
f
1
vh
(2)
后的倒梯形中
所示,在 R
作为对应的
中的 4 个顶点
OI 中我们选
的变换后的倒
点,即
选取 4
梯形
变换后的区域
域呈现倒梯形
形的形
0
70
5
75
0
0
5
5
85
0
80
式中
中:
P
Qwy
[x
,,
],
]1,,[ vuQ
为坐标点的
的其次坐标;
M
倒梯
梯形的变换矩
矩阵。对应得
得到变换后俯视
视图的坐标
x
x
w
y
y
,
述变
变换公式可以
以写成
x
x
w
所以
以只要已知变
变换对应的四
实际应用过
可求
求出变换矩阵
点 A,B,C,
四个顶点,变
个点
的四
过程中,我们只
阵 M。为了得
D 作为要进
变换后的俯视
,
y
y
个点就可以
cv
bua
1
v
hug
求解出变换矩
矩形中的 4 个
逆透视变换效
坐标,选取 A
示,从图中可
ud
ug
矩阵 M。
个点和变换后
效果,如图 3
A,E,F,D
可以看出,变
进行变换的坐
图如图 4 所示
只要确定了矩
得到最好的逆
状,
且图中车道
道线基本呈现
现平行而且垂
直的状态。
- 3 -
90
95
100
105
110
中国科技论文在线
http://www.paper.edu.cn
A
B
E
F
图 3 逆透视变换实际坐标选取
Fig.3 The coordinate choose of Inverse perspective transformation
C
图 4 逆透视变换图
Fig.4 Inverse perspective transformation
1.3 车道线增强
D
从图 4 可以看出逆透视变换得到俯视图后,已经获得了姿态较好的车道线。为了进一步
突出车道线信息,弱化周边无关区域,采用高斯核函数对图像进行卷积,其表达式如下:
)(
xf
u
1
2
x
exp(
2
x
2
2
x
1(
2
x
2
x
))
(3)
)(
yf
v
exp(
1
2
y
2
2
y
)
(4)
其中(3)式为水平方向的高斯核响应函数,(4)式为垂直方向的高斯核响应函数,图 5(a)和图
5(b)为高斯核响应函数曲线。
图 5(a) 水平方向高斯核响应 图 5(b) 垂直方向高斯核响应
Fig.5(a) Horizontal gauss nuclear response Fig.5(b) Vertical gauss nuclear response
对图像使用高斯核函数进行卷积以后,车道线所在区域的水平方向上增强了中央的响应,
弱化了周围的响应,同时,垂直方向的响应得到了拉伸。图 6 为车道线在图像中显示出最强
的响应。
图 6 车道线增强
- 4 -
中国科技论文在线
http://www.paper.edu.cn
1.4 基于幅度的图像分割
Fig.6 Lane enhancement
基于幅度的图像分割是根据图像的灰度值来设置对应的阈值,从而实现图像的分割,该
方法的关键在于阈值的确定。本文采用迭代阈值法,来确定图像的最佳阈值,对图像进行二
值化操作。该方法能区分出图像中的前景和背景的主要区域所在,有利于车道标志线的检测
和提取。首先,设定初始阈值为
0
Th
g
max
g
min
2
(5)
式中, maxg 、 ming 分别为图像的最大和最小灰度值。根据阈值
划分为 A、B 两个区域,这两个区域的平均灰度为
ig
j
),(
Th
ig
j
),(
Th
jig
),(
jig
),(
g
g
k
,
,
B
A
k
k
1
Th
k
jig
),(
1
Th
k
jig
),(
kThk
,
1,0
...
n
,将图像
n
...1,0
(6)
则得到的新的阈值为
其中,
1
k
Th
1 表示图像中像素灰度值大于等于阈值 kTh 的像素个数,
(7)
1 表示图像中
kTh
jig
),(
kThjig
),(
gg
B
A
2
像素灰度值小于等于阈值 kTh 的像素个数。
重复上述步骤,直到
Th
k Th
k
1
迭代停止,此时得到的阈值即为最佳阈值。根据此
阈值二值化后的图像效果如图 7 所示。
图 7 二值化操作
Fig.7 Binarization operation
2 车道线检测算法
2.1 车道线特征的提取
经逆透视变换后车道线基本呈现为垂直平行线,可以采用搜索的方法来确定车道线的位
置。由于车道线具有一定的宽度,搜索的时候根据实际车道的宽度,设定一个邻域 R,以图
像中点为起点,分别往左右两边搜寻车道线的特征点。具体步骤如下:
步骤一:在二值化的图像中,以图像的中点为起点,分别往左和右在邻域 R 内按列扫
描图像,对于每一列,统计该列上像素值不为 0 的点的个数,得到一个函数 )(xf ,其中x是
图像横坐标,函数值表示该列上像素值不为 0 的个数。
步骤二:计算
)(xf 将会是一
个极大值,但由于车道线具有一定的宽度,特别是双实线车道线,一条车道线可能被识别为
)(xf 的值,若是在该列上存在一条接近垂直的线,那么
- 5 -
115
120
125
130
135
140
中国科技论文在线
http://www.paper.edu.cn
多条直线,也就是说在车道线宽度范围内存在多个极大值。此时再对 )(xf 进行高斯滤波,
合并大部分的极大值点。
步骤三:高斯滤波后,一些距离较远的极值点仍无法被合并,设定一个领域范围a,把
距离在a以内的极值点进行合并。假设两个极值点的位置分别为 1x 、 2x ,那么合并后的极
值点为:
x
xfx
1
1
xf
1
)(
)(
)
(
xfx
2
xf
)
2
2
(
(8)
这是一个把 )(xf 的值作为权重,对两个极值点的位置进行加权求和的过程。合并后的
极值点的位置将会更偏向于 )(xf 值更大的极值点。最后将这些极值点的x坐标存入一个一
维数组 H 中,并且按照从大到小的顺序排列。在二值化的图像中绘出极大值响应曲线如图 8
所示。
145
150
图 8 极大值响应曲线
Fig.8 Maximum response curve
155
2.2 直线拟合
上述处理得到的一维数组 H 中包含的每一个点分别对应每一条车道线中极大值点所在
的位置,利用这些极大值点的可以拟合出车道线。对 H 数组中的每一个点x都进行下述步
骤:
160
165
170
步骤一:选择一个邻域 b,任意选取一个 1bx ,保证
bx
)0,
为 1P ,任意选取一个 2bx ,保证
1bx
bx
(
的高度,连接 1P 和 2P ,得到一条直线 Q。
x
b
2
xbx
b
1
2 h
),
(
bx
,令点
为 2P ,其中h为图像
xb
,点
步骤二:对 H 数组中的每一个点x在邻域 b 内都能得到
条直线,不妨
设这些直线为 nQ ,对于每一条直线 nQ ,遍历经过这条直线上的所有像素点,统计值不为 0
的像素点的个数,将其记为这条直线的投票分数。
a
2)1
2(
N
步骤三:所有的直线分数都计算出来后,取投票分数最大的直线,作为实际的车道线。
步骤四:重复上述 3 个步骤,将 H 数组中所有极大值点所对应的直线求解出来。
上述操作可以得到对应每一个 x 的一条拟合直线,为了得到当前车辆的左右车道线,假
定车辆行驶在两条车道线的中间位置,利用车道线间距约束去除车道中间的干扰信息,比如
行人线,以及本车道外部的其他直线。
3 车道线跟踪算法
车道标线的破损、路面污渍、阴影、以及其他车辆的干扰等情况的出现,都可能导致某
一帧或几帧图像识别不出车道线。为了在车道线无法识别的情况下,也能根据前面帧的信息
对当前车道线位置做出预测,采用卡尔曼滤波器进行车道线跟踪。车道线跟踪算法可以减小
图像上各种因素的干扰,提高检测的精度和速度。
- 6 -
中国科技论文在线
http://www.paper.edu.cn
3.1 基于卡尔曼滤波的车道线跟踪
175
卡尔曼滤波器是一种高效率的自回归滤波器。它既可以对当前目标所在的位置进行优化,
又可以对将来目标所在的位置进行预测。卡尔曼滤波使用反馈机制来实现滤波估计,主要依
靠两个方程:状态方程和观测方程,如下式
180
185
kAX
)1
(
kVkHX
)(
)(
)(
kW
(9)
)(
kX
)(
kZ
式中,
)(kX 是 m 维的状态矢量, )(kZ 是 n 维的观测矢量, A 是 mm 维的状态转移
矩阵,H 是 mn 维的观测矩阵, )(kW 是 m 维的过程噪声, )(kV 是 n 维的测量噪声, )(kW
,Q 、 R 分别为过程噪声协方差矩
和 )(kV 为高斯白噪声,
kW
阵和测量噪声协方差矩阵。
,0(~)(
,0(~)(
kV
Q
R
,
)
)
卡尔曼滤波就是根据最小均方差,利用前一时刻的估计值
(ˆ
kx
)1
和当前的观测值 )(kz
来求当前时刻的估计值 )(ˆ kx ,这一过程主要分为预测和修正两个步骤进行。
第一步:预测(时间更新)
根据状态方程利用
( k
)1
(ˆ
kx
)1
得到当前时刻的估计值:
时刻的估计值
(ˆ
kxA
)1
)1
(ˆ
kkx
|
(10)
190
最小均方误差矩阵:
)1
根据观测方程得到 k 时刻的观测值:
kkP
|
(
kAP
(
)1
QA
T
(11)
)(ˆ
kz
第二步:修正(测量更新)
kkxH
|
(ˆ
)1
(12)
195
200
205
根据实际的 k 时刻的观测值 )(kz ,利用增益矩阵
)(kK 修正估计值得到修正后的估计值:
(ˆ
kz
kzkK
)[
)(
)1
(
kkHx
kzkK
)[
)(
(
|
(ˆ
kkx
kx
|
)(
(ˆ
kkx
)1
|
(13)
)]
)]1
(
其中,增益矩阵:
kK
)(
kkP
|
(
)1
H
T
[
kHP
(
)1
H
T
R
1]
(14)
最小均方误差矩阵:
kP
)(
(15)
得到当前时刻的估计值 )(ˆ kx 和最小均方误差矩阵 )(kP 后,就可以对下一时刻进行估计了,
这就是一个迭代的过程,不断的预测和更新。
kkPHkKI
|
)(
)1
[
(
]
在使用卡尔曼滤波器进行滤波之前,首先对卡尔曼滤波器的状态和参数进行定义和初始
,其中: 1x 、 2x 表示左车道线的上部和下部 x 坐标, 3x 、
,
化,状态向量
4x 表示右车道线的上部和下部 x 坐标。状态转移矩阵
]1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1[A
Txxxx
]
1
kx
)(
[
,
,
,
2
3
4
观测矩阵
]1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1[H
,协方差矩阵
P
9
0
0
0
0
25
0
0
00
00
04
40
,过程噪声
- 7 -
中国
国科技论
论文在线
线
http
://www.paper.e
edu.cn
和测
测量噪声的协
协方差矩阵对
对角线元素均
为 510 ,即
RQ
假设大部分
分情况下车辆
辆无变道,且车
车道的曲率较
较小,即车道
线。
当车辆及道
道路满足这两个
个条件时,车
车道线在图像
像中的位置可
车道
道线位置称为
为理想车道线
线,作为车道线
线的状态初始
始值。当两条
5
5
0
10
0
0
10
0
0
0
0
道线在近视场
0
0
10
0
0
0
0
10
场区域可近似
5
5
。
可看作是固定
条车道线有 1
定不变的,此
条或 2 条都
都没有
似为直
此时的
道线位置加上
上车道线的宽
宽度,
检测
测出来时,做
做如下处理:
出左车道线的
①只检测出
的位置:则右
将左
左右车道线的
的位置作为测
测量值传给卡
将左
左右车道线的
的位置作为测
测量值传给卡
尔曼
曼滤波器作为
道线位置均未
为测量值。
置等于左车道
车道线的位置
。
尔曼滤波器。
车道线的位置
置等于右车道
。
尔曼滤波器。
道线的位置作
则将理想车道
②只检测出
出右车道线的
的位置:则左
道线位置减去
去车道线的宽
宽度,
③左右车道
未检测出来:则
作为左右车道
道线的位置传
传给卡
4
果
实验结果
4.1
车道线检
检测结果
本文算法的
不同
同的道路场景
的实现基于 V
景来进行试验
VS2013 和 op
验。车道线检测
pencv3.0,为
测测试图片来
为验证本文所
所提出的算法
法的有效性,
选取
来源于加州理
理工大学的数
数据库和采集
集的高
速公
公路图像,图
车区
区域所在的左
9 为不同的工
左右车道线。从
工况条件下车
车道线的检测
测结果,所识
识别出来的车
车道线均为当
前行
从实验结果可
可以看出,本
本文的算法针
针对不同环境
境下的车道线
均具
有比
比较好的识别
别效果,由于采
采用了改进过
过的直线拟合
合算法,相对
对于传统霍夫
产生
生一条较宽的
的车道线被识
识别为多条车
道线,或虚线
线型车道线不
不连续的问题
夫变换而言,
题。
不会
a 阴影
影干扰
b
b 道路文字干扰
扰
c 人行
道标志干扰
d 隧道灯光
光干扰
e
图 9 不同
9 Lane detect
e 道路黄线干扰
环境下的车道
tion results und
扰
道线检测结果
der different env
Fig.
vironments
f 道路右
右线缺失较多
- 8 -
210
5
5
215
0
220
0
225
0
230