具体实施方式
下面将结合示意图对本发明的车道偏移警示系统及方法进行更详细的描述,其中表示了本发明的优选实施例,应该理解本领域技术人员可以修改在此描述的本发明,而仍然实现本发明的有利效果。因此,下列描述应当被理解为对于本领域技术人员的广泛知道,而并不作为对本发明的限制。
为了清楚,不描述实际实施例的全部特征。在下列描述中,不详细描述公知的功能和结构,因为它们会使本发明由于不必要的细节而混乱。应当认为在任何实际实施例的开发中,必须做出大量实施细节以实现开发者的特定目标,例如按照有关系统或有关商业的限制,由一个实施例改变为另一个实施例。另外,应当认为这种开发工作可能是复杂和耗费时间的,但是对于本领域技术人员来说仅仅是常规工作。
在下列段落中参照附图以举例方式更具体地描述本发明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比例,仅用以方便、明晰地辅助说明本发明实施例的目的。
图1为本发明的车道偏移警示系统的方块图。在图1中,车道偏移警示系统20包含一数据处理装置22、一影像感测组件24、一缓冲存储器26、一警示装置28及一数据显示装置30。数据处理装置22可以为链接库,其可由CPU执行,亦可为硬件加速器,以加速车道偏移警示系统20的执行效能。
数据处理装置22包含一影像输入与输出模块32、一边缘类型分类地图撷取模块34、一车道标记种子区域侦测模块36、一车道线侦测模块38及一车道偏移警示模块40。
边缘类型分类地图撷取模块34计算一影像的每个像素的一水平梯度绝对值、一垂直梯度绝对值及一边缘方向值,而将每个像素的水平梯度绝对值、垂直梯度绝对值及边缘方向值与多个门槛值进行比较,以将每个像素分类为多个边缘类型的一种,如图2A及图2C为本发明的影像感测组件所拍摄的影像画面的示意图,图2B及图2D为本发明的影像经边缘类型分类的示意图所示,图2A及图2C为原始的影像画面经边缘类型分类的影像的边缘类型地图如图2B及图2D所示,为了方便表示,将五种边缘类型(ES0~ES4)使用深浅不一的灰阶值表示(仅在图2B中标注)。
传统侦测车道标记所使用的方法,大多分析影像的梯度,但是在较复杂的画面中(例如:含有车辆、阴影、人造物等)会侦测出过多的边缘像素,并增加后续对车道线侦测的困难度。有鉴于此,本发明提出“边缘类型分类地图(Edge Style Map,ESM)”,可以有效率的将影像画面中的像素,依据其特性,分成至少五类的“边缘类型(Edge Style)”其分类如下,
其中,ES(x,y)为影像中像素坐标位置(x,y)点的边缘类型的分类结果,AHG(x,y)以及AVG(x,y)分别为像素点(x,y)的水平梯度绝对值及垂直梯度绝对值,其值范围为0≤AHG(x,y)≤255以及0≤AVG(x,y)≤255,HdV(x,y)为边缘方向值,其为水平梯度绝对值AHG(x,y)与垂直梯度绝对值AVG(x,y)的比值,其范围为0≤HdV(x,y)≤∞,ThE1、ThE2、ThE3、ThE4分别为四种门槛值,其范围为5≤ThE1≤8、12≤ThE2≤16、0.4≤ThE3≤0.6、1.8≤ThE4≤2.2。
车道标记种子区域侦测模块36将影像分割成多个子区块(Sub-Box),如图3为本发明的影像画面分割成多个子区块的示意图所示。在图3中,为了求得最佳结果,在经多次实验发现,以下的分割策略在车道线侦测时,能够提供最佳的结果,其中(Wd_Img,Ht_Img)为影像画面的(宽,高),而(Wd_Box,Ht_Box)为子区块的(宽,高)。其中,子区块的表示如下:
(0.08×Wd_Img)≤Wd_Box≤(0.14×Wd_Img)
(0.08×Ht_Img)≤Ht_Box≤(0.12×Ht_Img)
在本实施例中,图3为非重迭(non-overlapping)的区块分割示意图,在另一实施例中,可以使用重迭(overlapping)方式来撷取子区块。
图4A及图4B为本发明的车道标记边缘出现的位置的示意图。在图4A及图4B中,一张影像经过“边缘类型分类(Edge Style Classification)”之后,影像中的所有像素将会分成以下五种类型:
无边缘(non-Edge,在本文中标记成ES0),弱边缘(Soft Edge,在本文中标记成ES1),水平边缘(Horizontal Edge,在本文中标记成ES2),斜角边缘(Diagonal Edge,在本文中标记成ES3),垂直边缘(Vertical Edge,在本文中标记成ES4)。
车道标记种子区域侦测模块36界定不同类型的车道标记边缘中,仅会部分的车道标记边缘出现在影像画面的特定区域中,例如斜角边缘(ES3)、垂直边缘(ES4)以及弱边缘(ES1)仅会出现在影像画面的中间区域,如图4A的填充区域所示,而水平边缘(ES2)、斜角边缘(ES3)以及弱边缘(ES1)仅会出现在影像画面的两侧位置,如图4B的填充区域所示。其填充区域(出现位置的区域)的决定公式如下,其中X_Img_Cen为影像中X轴的中间位置:
(0.15×Wd_Img)≤Wd_A1≤(0.25×Wd_Img)
(0.15×Wd_Img)≤Wd_A2≤(0.25×Wd_Img)
图5为本发明的说明子区块的列及行基准的特征说明图。为了找出“车道标记种子区域(Road Marker Seed Region)”,本发明提出一种“线段评估(Line Evaluation,LE)”的方式以检验每个子区块。简而言之,根据子区块在影像画面的位置以决定该子区块所应被检验的“边缘类型”,然后对每个“边缘类型”做线段评估的检验。
图5的(a)部分表示子区块大小为9×6,原点在左上方的子区块中标示“ES3”是表示该像素为斜角边缘;图5的(b)部分表示子区块中ES3的列基准特征表,其包含X轴方向的坐标加总(SumX)、ES3个数(Count)、以及坐标平均值(AveX);图5的(c)部分表示子区块中ES3的行基准特征表,其包含Y轴方向的坐标加总(SumY)、ES3个数(Count)、以及坐标平均值(AveY)。然后,车道标记种子区域侦测模块36检验列及行基准特征表中的坐标平均值,若坐标平均值呈现“递增”或是“递减”的现象,表示该子区块为一车道标记种子区域;反之,该子区块则不会包含车道标记。
车道线侦测模块38使用门槛值筛选(thresholding)的方式,将“车道标记”由“车道标记种子区域”中标示出来,接着使用“最小误差法(Minimum Error Method,MEM)”的策略以侦测出“局部车道线(Local Lane)”,最后通过“车道线延展(Lane Extension)”以侦测出完整的车道线。
“车道标记”的像素的亮度(intensity)会比其周围“道路区域”的像素还要亮,因此,使用门槛值筛选的方式,便可以得到车道标记。本实施例利用以下两个特性,而仅用部分像素(即子区块的像素)以决定适当的门槛值。第一,每个车道标记种子区域侦测中,都会有构成线段特征的边缘类型;第二,边缘像素会出现在车道标记的边缘像素的两侧。
因此,车道线侦测模块38先根据车道标记种子区域侦测的“边缘类型”,在子区块中将没有具备线段特征的像素的亮度设为0,然后求得其他像素的非零亮度的直方图(Histogram),最后,分析非零亮度的直方图以求得门槛值。
图6A至图6D为本发明的车道标记侦测的说明图。图6A是大小为16×10的子区块的原始图案,图6B为子区块的原始图案的“边缘类型分类地图”,其中数字0~4分别代表边缘类型ES0~ES4,图6C为子区块依据线段特征筛选后的结果,由于只有ES2以及ES3符合线段评估(递增/递减特性)的检验,因此仅有ES2以及ES3的像素具有非零值。
本实施例利用最简单的分析方法(计算所有非零像素的平均值)来分析出图6D的结果,在图6C的子区块中所有像素的非零亮度的平均值经计算的平均值为81,同时设定门槛值为81,因此将图6A中亮度大于或等于门槛值为81的所有像素的亮度保留于图6D中,以得到车道标记侦测的结果。其中,门槛值设定的方式有许多种,本实施例使用最简单的平均值方法并非用以限制本发明。
车道线侦测模块38将所侦测出来的“车道标记”利用局部车道线侦测(Local LaneDetection,LLD)算法来求得“局部车道线”。其中,局部车道线侦测算法如下所示:
A.针对每个列(Row)中的车道标记像素(Road Marker Pixels)决定有车道标记区间(Road Marker Period,RMP)的数目,并且决定每个车道标记区间中在子区块中的最左边以及最右边的像素的位置。
B.令Row_Tp以及Row_Bm表示在子区块中含有车道标记像素的上方列位置以及下方列位置,Row_Ht为找出所有含有车道标记像素的列高度(Row Height=Row_Bm–Row_Tp+1),并且决定最上方的Row_Tp,以及最下方的Row_Bm以计算出最大的列高度Row_Ht,并且令n=Row_Ht。
C.在子区块中含有车道标记像素的左侧位置的像素为主,找出子区块中以Row_Ht为n的所有“合适列配对(Good Row Pair)”,并且由该配对的Row_Tp以及Row_Bm的坐标,推得作为局部车道线的直线方程式(y=ax+b)的两个参数(斜率a以及偏移量b)。其中,所谓合适列配对系表示该列配对的Row_Tp以及Row_Bm的X轴坐标值,但子区块的边界值不能作为合适列配对。
D.根据推得的直线方程式(即局部车道线)推估该列配对中其他列中的“X轴坐标值预测值(predicted X value)”,并且估算与该列的误差,并且计算所有列的误差总值,亦即,在子区块中配对的上方列位置及下方列位置的其它列,计算局部车道线的形成直线的其它列的坐标与所述车道标记像素的其它列的坐标的误差的误差总值。
E.在子区块中以车道标记像素的右侧位置的像素为主,执行与步骤C、D相同的步骤。
F.令n=n-1,重复步骤C到F,直到n<=3为止。
G.根据每个列配对的误差总值,以及该列配对的高度,决定最佳的局部车道线,其中,决定最佳的局部车道线是最小的误差总值及最大的列高度。
图7A至图7D为本发明的局部车道线侦测的示意图。以图7A至图7D来说明车道线侦测模块38将所侦测出来的“车道标记”利用局部车道线侦测算法来求得“局部车道线”。
图7A是大小为16×10的子区块的图案,其中,C0为第0行、C1为第一行…、C15为第15行,R0为第0列、R1为第一列…、R9为第九列;非空白的格子为车道标记像素;车道标记像素若属于同一个车道标记区间(Road Marker Period,RMP),则会有相同的标记,例如R0有两个车道标记区间,则依序标记为0A以及0B。
在子区块中每个车道标记区间的最左侧以及最右侧如图7B所示。以车道标记区间的左侧像素为基础,拥有最长的列高度的局部车道线区间如图7C所示,其中R0及R7各自为该列配对Row-Tp以及Row_Bm,请注意,列R8及R9的车道标记区间,其最左侧的像素(8AL以及9AL)刚好位于边缘(第0行),因此该二列不能做为合适的列配对。
首先,在子区块中以车道标记区间的左侧像素的位置为主的局部车道线侦测,车道线侦测模块38在子区块中R0的0BL以及R7的7AL求得作为局部车道线的直线方程式的两个参数(斜率a以及偏移量b),然后依照此直线方程式在其他列(即R1至R6)的“X轴坐标值预测值”标示为图7C的深灰阶色的格子。因此,车道线侦测模块38计算该列配对的误差值总合为1(为R4的深灰阶色的格子与4AL格子的误差),同时,车道线侦测模块38计算该列配对的Row_Ht为8(即R0至R7)。
图7D说明在子区块中以车道标记区间的右侧像素的位置为主的局部车道线侦测,如上述,车道线侦测模块38在子区块中R2的2AR以及R9的9AR求得的直线方程式来计算该列配对R2及R9的误差值总合为2(为R6的深灰阶色的格子与6AR格子以及R8的深灰阶色的格子与8AR格子的误差),同时,车道线侦测模块38计算该列配对R2及R9的列高度Row_Ht为8(即R2至R9)。
重复局部车道线侦测算法的步骤A至G,车道线侦测模块38将所有Row_Ht>3的列配对来计算误差值总合以及相对应的列高度Row_Ht。经过比对所有的列配对后,发现图7C的列配对R0及R7(即0BL,7AL)拥有最小的误差值总和及最大的列高度Row_Ht,因此,子区块中的局部车道线侦测为图7C所示。
图8为本发明的车道线延展的示意图。车道线侦测模块38在得到影像中的某个子区块(图8的原始子区块)的局部车道线之后,车道线侦测模块38在该子区块朝上、下两个方向求得延展方向的延展子区块,然后车道线侦测模块38以原始子区块的局部车道线(直线方程式)朝上、下的延展子区块进行延展,而对每个延展子区块进行车道标记侦测以得到车道标记,并利用局部车道线侦测算法来求得“局部车道线”,而得到所有子区块的延展车道线,如图8所示。
车道线侦测模块38侦测出“局部车道线”及“延展车道线”,以侦测出影像完整的车道线,而将此完整的车道线标注在影像中的实际车道线影像上。
图9A至图9C为本发明的车道偏移警示的示意图。如上述可得到每一影像画面的完整的车道线,车道偏移警示模块40通过分析连续的影像画面的车道线变化,当局部车道线与水平方向的夹角逐渐变大或变小时,说明车辆朝夹角变大的方向偏移靠近或朝夹角变小的方向偏移远离,此时车道偏移警示模块40会产生一车道偏移警示讯号,如图9A至图9C所示。
在图9A至图9C中,车道偏移警示模块40检测到左侧的局部车道线与水平方向的夹角逐渐变大(θL1<θL2<θL3),同时右侧的局部车道线与水平方向的夹角逐渐变小(θR1>θR2>θR3),此时车道偏移警示模块40发现车辆正往实际的道路中左侧的车道线偏移,同时会产生车道偏移警示讯号。
影像输入与输出模块32与边缘类型分类地图撷取模块34、车道标记种子区域侦测模块36、车道线侦测模块38及车道线偏移警示模块40连接。
边缘类型分类地图撷取模块34从影像输入与输出模块32接收影像的所述像素,并传送影像的所述像素的边缘类型至影像输入与输出模块32,车道标记种子区域侦测模块36从影像输入与输出模块32接收影像的所述像素及其边缘类型,并输出影像的包含有为车道标记种子区域的子区块的像素包含有局部车道线及延展车道线所构成的完整的车道线的影像至影像输入与输出模块32,车道线侦测模块38从影像输入与输出模块32接收车道标记种子区域的子区块中的像素的亮度值,并输出局部车道线的斜率及偏移量与延展车道线至影像输入与输出模块32,车道线偏移警示模块40从影像输入与输出模块32接收局部车道线的斜率及偏移量,并输出车道偏移警示讯号至影像输入与输出模块32。
影像感测组件24拍摄车道的影像,并转换成数字格式的影像的多个像素,且由影像输入与输出模块32从影像感测组件24读取影像的所述像素。缓冲存储器26储存影像感测组件24的影像的所述像素,亦可由影像输入与输出模块32从缓冲存储器26读取影像的所述像素。数据显示装置30从影像输入与输出模块32读取包含有局部车道线及延展车道线所构成的完整的车道线的影像,并将包含有完整的车道线标注于影像中的实际车道线影像上的影像显示在数据显示装置30。影像输入与输出模块32输出车道偏移警示讯号至警示装置28,而警示装置28根据此车道偏移警示讯号以发出一偏移警讯。
参照上述车道偏移警示系统的方块图及与车道偏移警示系统相关的示意图,以说明本发明的车道偏移警示方法的操作。
图10为本发明的车道偏移警示方法的流程图。在图10中,由影像感测组件24拍摄车道的影像,并转换成数字格式的影像的多个像素,影像感测组件24将影像的所述像素储存到缓冲存储器26中。由数据处理装置22的影像输入与输出模块32从影像感测组件24或缓冲存储器26读取影像的所述像素(步骤S50)。
由数据处理装置22的边缘类型分类地图撷取模块34从影像输入与输出模块32读取影像的所述像素。由边缘类型分类地图撷取模块34计算一影像的每个像素的一水平梯度绝对值、一垂直梯度绝对值及一边缘方向值。
由边缘类型分类地图撷取模块34将每个像素的水平梯度绝对值、垂直梯度绝对值及边缘方向值与上述的多个门槛值ThE1、ThE2、ThE3、ThE4进行比较,以将每个像素分类为上述五种边缘类型(ES0~ES4)的一种(步骤S52)。
如图2A及图2C为影像感测组件所拍摄的影像画面,图2B及图2D为影像经边缘类型分类,图2A及图2C为原始的影像画面经边缘类型分类的影像的边缘类型地图如图2B及图2D所示,为了方便表示,将五种边缘类型(ES0~ES4)使用深浅不一的灰阶值表示。
由车道标记种子区域侦测模块36将影像分割成多个子区块,如图3所示。
在图4A及图4B中,一张影像经由边缘类型分类地图撷取模块34进行“边缘类型分类”之后,影像中的所有像素将会分成五种类型。
由车道标记种子区域侦测模块36界定不同类型的车道标记边缘中,仅会部分的车道标记边缘出现在影像画面的特定区域中,例如斜角边缘(ES3)、垂直边缘(ES4)以及弱边缘(ES1)仅会出现在影像画面的中间区域,如图4A的填充区域所示,而水平边缘(ES2)、斜角边缘(ES3)以及弱边缘(ES1)仅会出现在影像画面的两侧位置,如图4B的填充区域所示。
为了由车道标记种子区域侦测模块36找出“车道标记种子区域”,利用“线段评估”的方式以检验每个子区块。简而言之,根据子区块在影像画面的位置以决定该子区块所应被检验的“边缘类型”,然后对每个“边缘类型”做线段评估的检验,如图5所示。
然后,车道标记种子区域侦测模块36检验列基准特征表及行基准特征表中的坐标平均值,若坐标平均值呈现“递增”或是“递减”的现象,表示该子区块为一车道标记种子区域;反之,该子区块则不会包含车道标记(步骤S54)。
由车道线侦测模块38使用门槛值筛选的方式,将“车道标记”由“车道标记种子区域”中标示出来,接着使用“最小误差法”的策略以侦测出“局部车道线”,最后通过“车道线延展”以侦测出完整的车道线(步骤S56)。
车道线侦测模块38先根据车道标记种子区域侦测的“边缘类型”,在子区块中将没有具备线段特征的像素的亮度设为0,然后分析非零亮度像素的特性以求得门槛值。
本实施例利用最简单的分析方法(计算所有非零像素的平均值)来分析出图6D的结果,在图6C的子区块中所有非零亮度像素的平均值经计算为81,同时设定门槛值为81,因此将图6A中亮度大于或等于门槛值为81的所有像素的亮度保留于图6D中,以得到车道标记侦测的结果。其中,直方图分析的方式有许多种方式,本实施例使用最简单的平均值方法并非用以限制本发明。
由车道线侦测模块38将所侦测出来的“车道标记”利用上述局部车道线侦测算法来求得“局部车道线”。以图7A至图7D来说明由车道线侦测模块38将所侦测出来的“车道标记”利用局部车道线侦测算法来求得“局部车道线”。
由车道线侦测模块38在得到影像中的某个子区块(图8的原始子区块)的局部车道线侦测之后,车道线侦测模块38在该子区块朝上、下两个方向求得延展方向的延展子区块,然后车道线侦测模块38以原始子区块的局部车道线(直线方程式)朝上、下的延展子区块进行延展,而对每个延展子区块进行车道标记侦测以得到车道标记,并利用局部车道线侦测算法来求得“局部车道线”,而得到所有子区块的延展车道线,如图8所示。
由车道线侦测模块38侦测出“局部车道线”及“延展车道线”,以侦测出影像完整的车道线,而将此完整的车道线标注在影像中的车道线影像上。
车道线侦测模块38将完整的车道线标注在影像中的车道线影像上的影像传送至影像输入与输出模块32,数据显示装置30从影像输入与输出模块32读取包含有局部车道线及延展车道线所构成的完整的车道线的影像,并将包含有完整的车道线标注于影像中的实际车道线影像上的影像显示在数据显示装置30(步骤S58)。
如上述可得到每一影像画面的完整的车道线,由车道偏移警示模块40通过分析连续的影像画面的车道线变化,当局部车道线与水平方向的夹角逐渐变大或变小时,说明车辆朝夹角变大的方向偏移靠近或朝夹角变小的方向偏移远离,此时车道偏移警示模块40会产生一车道偏移警示讯号,如图9A至图9C所示。
在图9A至图9C中,由车道偏移警示模块40检测到左侧的局部车道线与水平方向的夹角逐渐变大(θL1<θL2<θL3),同时右侧的局部车道线与水平方向的夹角逐渐变小(θR1>θR2>θR3),此时车道偏移警示模块40发现车辆正往实际的道路中左侧的车道线偏移,同时会产生车道偏移警示讯号(步骤S60)。
当发生车辆偏移车道线时,由车道偏移警示模块40将所产生的车道偏移警示讯号输出至影像输入与输出模块32,而由影像输入与输出模块32输出车道偏移警示讯号至警示装置28,此时警示装置28根据此车道偏移警示讯号以发出一偏移警讯。
本发明的目的是提供一种车道偏移警示系统及方法,其优点为在梯度变化不明显或在反光或有障碍物的情况下,利用边缘类型分类地图、车道标记种子区域侦测及车道线侦测等可以侦测出车道线的边缘像素且辨别出真正属于车道标记的边缘像素,进而判断出完整的车道线,并有效找出“兴趣区域”以简化车道线侦测的程序。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。