一种基于fpga的车道线检测方法

文档序号:6425858阅读:173来源:国知局
专利名称:一种基于fpga的车道线检测方法
技术领域
本发明主要涉及到车辆主动安全系统领域,特指一种在可编程逻辑门阵列(FPGA) 上实现的车道线检测方法。
背景技术
随着汽车工业的发展,汽车越来越成为社会生产与日常生活中的重要组成部分; 与此同时,汽车安全问题也逐渐成为人们关注的焦点。据统计,道路交通事故中大约有75% 是由于人为失误导致的,而在这些人为导致的事故中,又有19%是由于无意识的车道跑偏导致的,26%是由于前向追尾导致的,这两类事故的发生都直接与驾驶员的精神状态有关, 最终表现为驾驶员对车辆运行环境估计不准和驾驶员的反应滞后等。而车道偏离提醒系统的目的正是对驾驶员精神不集中时无意识的车道偏离行为进行提醒,让驾驶员及时纠正行车路线,避免发生车祸;同时,规范驾驶员的驾驶行为,帮助驾驶员养成良好的驾驶习惯。车道偏离提醒系统中最核心的部分就在于如何快速、可靠的检测车道线的位置。 在直线检测方面,Hough变换具有较强的鲁棒性,是直线检测中效果最好的算法之一。Hough 变换由P. V. C. HOUGH于1962年在美国提出,它的主要思想是利用点-线变换,通过在参数空间寻找点来获得坐标空间中的直线位置信息。点-线变换原理如图1所示在直角坐标系中直线L上的点(xl,yl)通过公式(1) 可对应于极坐标中的曲线Li,点(x2,y2)对应于极坐标中的曲线L2,且两曲线Ll与L2有唯一的交点(θ 1,ρ 1),即直角坐标系中的直线L与极坐标系中的点(θ 1,ρ 1) —一对应。ρ = xXcos( θ )+yXsin( θ )(1)Hough变换检测直线的原理如下对图像空间中的每一点(X,y),利用公式(1)将其转化为参数空间(θ,P )中的一条正弦曲线,然后对所有的(θ,P )值进行投票累加。如果图像坐标系中存在直线,则直线上的所有点在极坐标系中的变换曲线必然交于同一点, 即这一点的投票累加值会远大于其他点的值,因此找出了这一点就可以找出对应的图像中的直线。Hough变换把寻找直线转换成了寻找极大值点,具有比较好的鲁棒特性。但是, Hough变换算法需要对每一个边缘点进行0-180度的坐标变换,涉及到大量的三角函数运算,计算量大;并且,为了存储坐标变换后的参数,需要开辟一个较大的存储空间。这样的运算在当前类似工控机等平台上实现难以满足实时性要求,在嵌入式系统(FPGA、DSP)中实现更是受存储空间的约束。专利号为200910059349. 1的专利提出了一种基于灰度估计和级联Hough变换的车道线检测方法,该方法在WinXP 2GHz的环境下实现,对于656X491像素的图像,平均每幅图像的处理时间为0. 3s。显然,对于汽车主动安全产品而言,3. 3帧/s的帧率无法满足系统的实时处理要求,而且,基于WinXP的PC机或者工业控制计算机庞大的体积也无法满足车载电子产品的要求。文献《基于FPGA的实时Hough变换》(商尔科等.计算机工程· 2010. 36 (3)161-163,以下简称文献[1])提出了一种分角度区域的并行Hough变换,如图2所示,它利用超大规模集成电路(VLSI)并行计算的特点,把Hough变换的角度均勻的分成了 η等份, 对每一格区域角度同时进行Hough变换,分别存储到η个不同的存储器中,因此,Hough变换的运算时间就降为原来的1/η。虽 然文献[1]的方法理论上能够把Hough变换的运算时间降低为原来的1/n, 但是η值的选择与系统的存储能力密切相关。可以做如下分析,对于一幅748X400像素的图像,假设Hough变换的单位步长为1度,存储深度为1023,则其参数空间大小为 180X849X1023 = 149M位;如果步长为0. 5度,则共需要298M位的存储空间,目前基于 FPGA的单芯片系统无法满足如此巨大的存储空间要求,因此,文献[1]利用外部存储器来存储Hough变换的参数。使用外部存储器有以下一些缺点第一,需要增加额外的成本和面积;第二,系统通过10 口与外部存储器相连,而10 口是有限的资源;第三,与外部存储器之间的工作频率和稳定性都远远低于芯片内部。在众多因素制约之下,η值就不可能选择很大。因此,文献 [1]中系统实现时取值η = 2。

发明内容
本发明要解决的技术问题就在于针对现有技术存在的技术问题,本发明提供一种原理简单、效率高、能够降低对存储空间需求、进而降低硬件成本的基于FPGA的车道线检测方法。为解决上述技术问题,本发明采用以下技术方案一种基于FPGA的车道线检测方法,其特征在于步骤为(1)设置初始参数,所述初始参数包括初始消失点位置(X(l,y0)、并行度η、约束范围P;(2)在车辆行驶过程中,实时采集车辆前方路况的原始图像Ii,所述原始图像Ii为第i帧的原始图像;(3)对原始图像Ii进行图像预处理,包括中值滤波和边缘二值化,得到边缘图像
Τ ·
丄 edge ‘(4)对边缘图像Iiedge进行坐标平移已知上一帧图像的消失点位置(X^yi-IW 该消失点为原点的坐标系Px2y2来替换以图像左上角为原点的坐标系PX1Y1,实现坐标平移,则公式⑴可以转化为 P = (x-xi_1)xcos(0) + (y-yi_1)xsin(0);(5)在新的坐标系Px2y2中进行并行Hough变换运算,对于第i帧图像,通过公式 P = (X-Xh) Xcos(0) + (y-yi_1)xsin(0 )得到ρ,然后进行判断如果P满足约束| P <Ρ,Ρ为约束值,则保存参数(Θ,P),否则就舍去。(6)找出参数空间中的极大值位置,得到对应的直线,即需要检测的车道线;通过计算两条车道线的交点,更新当前帧的消失点Upyi);(7)转到步骤(2),进行下一帧图像的处理。作为本发明的进一步改进通过对大量的实验数据进行统计后发现,消失点的分布可以被μ = 0,δ = 4. 25 的高斯分布近似,因此所述P的范围P = 4δ = 17,此为最佳的优化方案。
与现有技术相比,本发明的优点在于 1、本发明的检测方法,利用消失点的范围约束,降低了系统对存储空间的需求,极大地降低了算法对存储空间的需求,省去了外部的存储设备,大大降低了硬件上的要求,降低了成本;2、本发明的检测方法,把所需的存储空间降低之后,其存储完全可以在一块100 万门以上的FPGA内部实现;因此,η值可以很灵活的选择,也可以设置的很大。通过提高η 的值,本方法可以比目前的车道线检测方法快很多;3、本发明通过对消失点进行约束,去掉了不经过消失点的直线干扰,既提高了系统检测直线的可靠性,而且免去了不必要的运算,降低了运算量,节省了运算时间;4、本发明在单芯片的系统上实现,直接可以作为一项产品作为汽车辅助驾驶系统使用,能够产生很高的经济效益。


图1是现有技术中Hough变换的原理示意图;图2是现有技术中并行Hough变换的流程示意图;图3是本发明中车道线从大地坐标系映射到图像坐标系的示意图;其中3(a)为车道线在大地坐标系中的位置示意图,3(b)为3(a)中的车道线在图像坐标系中的示意图。图4是本发明与现有技术两种方法所对应的参数空间极大值点的分布示意图;其中4(a)为原图,4(b)为传统方法中极大值点在参数空间中的分布图,4(c)为本发明中坐标变换后极大值点在参数空间中的分布图;图5是消失点分布状态统计示意图;其中5 (a)为车辆换道过程中消失点位置变化状态图,5(b)是消失点位置变化分布模型图;图6是存储空间比较示意图;其中虚横线上半部分为传统技术所需的参数空间, 虚横线下半部分为本发明所需的参数空间;图7是本发明中坐标平移的示意图;图8是本发明在具体应用实例中存储单元读写操作示意图;图9是本发明的流程示意图。
具体实施例方式以下将结合说明书附图和具体实施例对本发明做进一步详细说明。如图7和图9所示,本发明基于FPGA的车道线检测方法的步骤为步骤1 设置初始参数,所述初始参数包括初始消失点位置(Χ(ι,%)、并行度η、约束范围P;步骤2 在车辆行驶过程中,实时采集车辆前方路况的原始图像Ii,所述原始图像 Ii为第i帧的原始图像;步骤3 对原始图像Ii进行图像预处理,包括中值滤波和边缘二值化,得到边缘图
像 I'edge ;步骤4 对边缘图像Iiedge进行坐标平移已知上一帧图像的消失点位置(χ", Yi^1),以该消失点为原点的坐标系Px2y2来替换以图像左上角为原点的坐标系PX1Y1,实现坐标平移。步骤5 在新的坐标系Px2y2中进行并行Hough变换运算;对于第i帧图像,通过公式P = (X-Xi^1) Xcos(0) + (y-yi_1)xsin(0 )计算得到P,并对P进行判断当P满足约束,则保存参数(Θ,P),否则就舍去。通过分析已经得出,变换过程中需要的存储空间由芯片内部存储单元实现,其工作原理框图如图8所示。由于内部存储单元不受系统端口数目、控制信号等资源的约束,因此,理论上并行度η可以设置的无限高,从而使Hough变换高度并行实现,进而降低了 Hough 变换的运算时间。步骤6 找出参数空间中的极大值位置,得到对应的直线,即需要检测的车道线; 通过计算两条车道线的交点,更新当前帧的消失点(Xi,Yi)。步骤7 转到步骤2,进行下一帧图像的处理。通过以上步骤,就能够通过单芯片系统从车辆前方原始图像中快速的检测出车道线。由上可知,本发明正是根据“平移变换原点”可以使直线对应的极值点规律分布这个特点,提出了利用消失点来降低Hough变换存储空间的思路;即,利用上一帧图像中检测到的消失点作为当前帧Hough变换的坐标原点。这时,参数空间中车道线对应的极大值就规律的分布在P =0的直线上。因此,理论上只需要建立一维存储空间保存P =0的参数,就能够完成车道线的检测。该方法与传统的Hough变换相比,对于大小为748X400像素的图像,其存储空间从149M位降到了 0. 175M位。为了验证上述理论,首先介绍消失点的概念在真实世界的三维空间中,任意一组不与主光轴平行的直线,在图像之中的延长线必将交汇与一点,该点被称为“消失点”。如图 3所示,在3 (a)中,大地坐标系Pxy下的两条平行车道线,经过摄像机投影变换,得到3 (b) 中图像坐标系Pct下的两条相交直线,它们的焦点(0,C(I)就是消失点,直线r = 0就是消失线,也称为地平线。 在传统的Hough变换中,是以图像的左上角作为变换原点,如图4中的4 (a)所示, 其Hough变换的参数空间分布如图4中的4(b)所示,图中的极值点与原图中的直线一一对应;当把坐标原点移到原图中直线的交点处时,其参数空间分布如图4中的4(c)所示,由于 P的物理意义就是变换原点到对应直线之间的距离,因此,与直线对应的极值点很有规律的分布在P = 0的直线之上。本发明通过对大量消失点的数据进行统计发现,在车速大于30公里,系统工作频率大于30帧/秒的状态下,前、后帧之间消失点的位置变化是在一定范围之内的,以前、后两帧内两个消失点之间的像素距离作为统计数据,虽然当车体进行不同的运动时分布状态不同,但是基本上都在一个有限的区域之内。如图5所示,图5中的横坐标表示帧号,纵坐标表示消失点位置的变化值,单位为像素个数。5(a)为车辆换道过程中统计得到的消失点位置变化状态,5 (b)是在较长一段时间内,在车速变化且故意左右摇晃的行车过程中,得到的消失点位置变化的分布状态。从图中可以看出,即使在车速变化、换道、测量精度等因素干扰下,其消失点的变化在一个可以确定的范围之内,其分布基本上可以由高斯分布Ν(μ, δ2)来近似。

因此,通过以上分析,本发明认为,只需要存储Hough变换参数空间中某一个区域P I <p的值来代替对所有参数的存储,就能包含直线对应的极大值点,实现与标准Hough 变换一样的功能。本发明经过大量的数据统计,发现其近似的高斯分布参数μ =0,δ = 4. 25,则取P = 4δ = 17就能够满足系统应用的需求。此时,本发明需要的存储空间为 180X 17X2X 1023 = 5. 95Μ位,不到传统Hough变换存储空间的二十分之一,图6为传统 Hough变换需要的存储空间与本发明需要的存储空间的直观对比图。图6中,虚横线上半部分为传统Hough变换所需的存储空间,虚横线下半部分为本发明所需的存储空间,其大小与传统存储空间中用两条虚曲线构成的区域等价。从具体应用上来说,本发明是在基于FPGA的单芯片系统上实现,整个系统可以由摄像机和视觉处理单元两部分组成。工作时,系统安装在车辆前挡风玻璃板内侧顶端,主光轴与车体平行,摄像机朝向前安装,拍摄车辆前方道路信息。安装完成后,系统通过一般的标定方法基本就能够保证消失点在图像中间地平面上预期的一个位置范围之内。因此,假设该范围之内的任意 一点作为初始消失点位置(X(l,,对后续工作没有影响。本实施例中,本发明进一步用VHDL语言在一块FPGA芯片上编程实现,所用的FPGA 芯片型号为Xilinx公司的Spartan3adsp-3400,编程软件为Xilinx公司提供的ISE11. 5, 使用的内部存储单元为Xilinx免费提供的Single Port RAM IP核,系统工作时钟为 40MHz,Hough变换时钟为80MHz,当Hough变换步长s = 1°,η = 4的工作条件下,在白天室外的场景中平均每幅图像的Hough变换处理时间为7. 2ms。本发明结合系统在实际环境中进行了大量实验,在一般天气条件下,系统在车速大于30公里时开始工作,在标准的高速公路上车道线检测的正确率在95%以上。以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例, 凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。
权利要求
1.一种基于FPGA的车道线检测方法,其特征在于步骤为(1)设置初始参数,所述初始参数包括初始消失点位置(X(l,y。)、并行度η、约束范围P;(2)在车辆行驶过程中,实时采集车辆前方路况的原始图像Ii,所述原始图像Ii为第i 帧的原始图像;(3)对原始图像Ii进行图像预处理,包括中值滤波和边缘二值化,得到边缘图像Iiedge;(4)对边缘图像Iiedge进行坐标平移已知上一帧图像的消失点位置(χ",y^),以该消失点为原点的坐标系Px2y2来替换以图像左上角为原点的坐标系PX1Y1,实现坐标平移;(5)在新的坐标系Px2y2中进行并行Hough变换运算;对于第i帧图像,通过公式P= (X-Xi^1) X cos ( θ ) + (y-y,^) X sin ( θ )得到 ρ,然后进行判断当 P 满足约束 I P I < P,P 为约束值,则保存参数(θ,ρ ),否则就舍去;(6)找出参数空间中的极大值位置,得到对应的直线,即需要检测的车道线;更新当前帧的消失点(Xi^yi);(7)转到步骤(2),进行下一帧图像的处理。
2.根据权利要求1所述的基于FPGA的车道线检测方法,其特征在于所述P等于17。
全文摘要
一种基于FPGA的车道线检测方法,其步骤为(1)设置初始参数;(2)在车辆行驶过程中,实时采集车辆前方路况的原始图像Ii;(3)对Ii进行图像预处理,得到边缘图像Iiedge;(4)对边缘图像Iiedge进行坐标平移已知上一帧图像的消失点位置(xi-1,yi-1),以该点为坐标原点的坐标系PX2Y2来替换以图像左上角为原点的坐标系PX1Y1,实现坐标平移;(5)在PX2Y2中进行并行Hough变换运算;对于第i帧图像,通过公式ρ=(x-xi-1)×cos(θ)+(y-yi-1)×sin(θ)得到ρ,当ρ满足约束|ρ|<P,则保存参数(θ,ρ),否则就舍去。(6)找出参数空间中的极大值位置,得到对应的直线,即需要检测的车道线;更新当前帧的消失点(xi,yi)(7)转到步骤(2)。本发明具有原理简单、效率高、能够降低对存储空间需求、进而降低硬件成本等优点。
文档编号G06K9/00GK102324017SQ20111015395
公开日2012年1月18日 申请日期2011年6月9日 优先权日2011年6月9日
发明者刘肖琳, 商尔科, 安向京, 李健, 潘升东, 聂一鸣 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1