林英杰,李东杰,梁光静,郭健平
(华南师范大学 信息光电子科技学院,广东 广州 510000)
基于FPGA的快速车道偏离预警系统硬件实现
林英杰,李东杰,梁光静,郭健平
(华南师范大学 信息光电子科技学院,广东 广州510000)
摘要针对现今采用PC机实现的车道偏离预警系统实时性低的问题,介绍了一种以FPGA为核心的车道偏离预警系统的纯硬件语言实现方法。整个系统由纯硬件语言设计,主要包含图像采集模块,中值滤波模块,Sobel边缘检测模块和Hough变换模块。每个模块均采用并行结构同时系统以流水线方式运行,充分利用了FPGA的并行处理优势,显著的提高了数据处理的速度。结果表明,系统边缘检测效果良好,能清晰地检测出车道线;同时系统响应速度满足实际需求。
关键词FPGA;并行处理;Sobel边缘检测;Hough变换
车道偏离预警系统是解决汽车驾驶安全的重要手段,其研究的关键是如何快速和准确检测出车道偏离。传统的车道线检测都是基于PC机,采用软件实现,算法复杂,速度慢,无法满足实时性的要求。随着近年来FPGA和DSP等可编程器件的快速发展,使得在小型芯片上也能得以实现车道偏离预警,如Pankiewicz研究小组用FPGA实现了车道线检测。而Hsiao Pei-yung研究小组开发出了用于车道线检测的芯片[1-2]。
基于这些可编程器件的并行结构,以往需要一步一步运算的复杂算法得以在一个时钟内完成多步运算,大幅提高了算法的运算速度。然而这些研究工作主要是将传统的检测算法流程的一部分或者几个部分做成专用的硬件实现。即使是现有的将所有算法都集成到FPGA芯片的实现方案,也仅是部分算法采用纯硬件实现,仍有相当大一部分算法是采用内建Nios CPU实现的[3]如此,虽在一定程度上提升了算法的运算速度,但仍存在软件实现部分,算法运算速度慢的问题,还存在提升的空间。
本文提出一种完全由硬件语言设计的车道偏离系统,将所有模块均整合到FPGA内部,所有模块由硬件实现。系统采用OV7670摄像头进行图像数据的采集;采用Altera公司的CycloneⅣ作为整个系统的主控芯片,实现图像数据的预处理及车辆偏离判别。系统的流水线工作方式和模块的并行数据处理结构使得系统在理论上得以在一个时钟内完成传统设计方法中需要几十甚至上百个时钟才能完成的运算量。最终,系统实现了车道线的快速判别,满足实际应用中的实时性要求。
1总体设计方案
本设计将系统的数据处理流程分为3个阶段:图像采集及预处理、车道线信息提取和偏离程度判别。如图1所示。
图1 系统理论框图
(1)图像采集及预处理。通过COMS摄像头采集车道图像数据,对采集到的图像进行有效面积的截取和中值滤波以有效消除图像数据的噪声;
(2)车道线信息提取。利用Sobel边缘检测算法检测出图像中的车道线,并将车道线坐标提供给Hough变换模块完成车道线的极坐标参数计算;
(3)偏离程度判别。根据检测出的车道标志线信息进行车道偏离程度判别,当超过设定阈值时,发出声光提醒。
2系统的硬件实现
基于FPGA的车道偏离检测系统的硬件组成如图2所示。
图2 系统的硬件实现框图
系统利用OV7670摄像头采集实时路况数据,并通过FPGA芯片内部的图像采集模块和SDRAM控制器将图像数据转存至片外SDRAM中。为同步异步时钟域,实现数据的不间断流水线处理,片外SDRAM采用乒乓操作。当SDRAM存满一帧图像后,FPGA芯片再读取数据,图像数据将不间断的经过中值滤波模块和边缘检测模块[4],分别实现图像数据的噪声滤除和边缘检测。经处理的数据一方面送至显示器进行显示作为人机接口界面;另一方面作为Hough变换模块的输入数据,计算出车道线极坐标参数并作出判别。
2.1Sobel边缘检测模块
Sobel算法是数字图像处理中的最常用的算法之一,其基本原理是计算图像中灰度值的梯度来求出图像的边缘[5-6]。系统将梯度计算中的卷积分解为乘法和加法运算,利用FPGA中的乘加器实现Sobel边缘检测。Sobel边缘检测算法的原理如图3所示。
图3 Sobel边缘检测原理图
边缘检测模块设计的关键就在于原理图中水平梯度与垂直梯度的实现。由于IP核经开发人员多次调试和优化,具有占用资源少和稳定的特点,本文调用了多个乘加器IP核实现了边缘检测的梯度运算。梯度运算的结构原理图如图4所示。
图4 Sobel边缘梯度运算结构原理图
图4为边缘检测模块的梯度运算模块,由一个移位寄存器、3个乘加器组成,3个乘加模块的值经过相加和取绝对值即可得到图像梯度值。移位寄存器用于生成3×3窗口,乘加器用于实现边缘检测模板的卷积。数据经过此模块后即可完成梯度运算。
2.2Hough变换模块
Hough变换用于检查图像中的车道线信息[7],是本系统的核心模块之一。由于Hough变换算法中包含大量的三角函数运算、乘加运算和排序求局部最大值的运算,需要占用大量的资源和时钟[8]。所以Hough在PC机上的工作效率较低。而利用FPGA的并行处理能力和流水线结构则有可能开发出运算速度较高的Hough变换算法[9-11]。为充分利用FPGA的优势,实现Hough变换的过程中对其进行了两方面改进:(1)空间并行化,将映射空间参数θ的取值范围平均分成n个子集;(2)时间并行化,即计算参数ρ的模块内部的子模块采用同一时钟,以流水线方式工作。
2.2.1空间并行结构
为充分利用FPGA的并行优势,本系统将空间参数θ取值范围(-90°,90°)平均分成n份,每个运算模块进行ρ=xcosθ+ysinθ运算时,只需运算对应取值范围内θ值即可。由于对每个ρ运算模块来说,θ取值范围变小了,每个模块的运算时间也就相应缩短。此时由于各模块是并行执行的,这样各个模块就能同时得到在各θ子集内的局部最大值。最后所有ρ运算模块在对应θ取值范围内所运算得到的局部极大值均可能是图像空间的车道线。此方法是利用空间换取时间,即本来应由一个模块完成的运算量,均分给n个相同的模块,每个模块只需完成1/n的运算量。如此,所要消耗的FPGA内部资源变为原来的n倍,但计算所需的时间却变为原来的1/n。具体的并行结构如图5所示。
图5 改良Hough变换的并行结构
2.2.2时间并行结构
在计算ρ=xcosθ+ysinθ的过程中包括了大量的三角函数运算和乘加运算,如此每计算一个ρ都将需要消耗多个时钟周期,从而造成Hough变换的效率低下。为提高运算速度,本设计采用空间并行结构,即流水线方式实现计算ρ的运算模块。流水线结构示意图如图6所示。
图6 流水线结构图
每个流水线结构单元实现ρ运算的其中一个步骤,同时每个结构单元采用同一时钟实现并行工作。通过流水线结构使得计算在一个时钟周期内完成,具体的原理如图7所示。
图7 参数ρ计算原理图
在原理图中输入的是特征点的x坐标和y坐标以及参数θ,sinθ和cosθ由Cordic模块进行计算,图中每一个模块分别实现了ρ运算中的一个步骤,而这些模块又采用同一个时钟,从而在一个时钟内计算出ρ。采用上述空间和时间并行结构设计的Hough变换模块大幅提高了此算法的运算速度,从而提升了系统整体的运算速度。
3FPGA实现及实验结果
FPGA采用Altera公司的Cyclone Ⅳ EP4CE10,整个系统所消耗的资源如表1所示。
表1 FPGA资源消耗表
为了对比系统的图像预处理效果,对同一图片先后通过Matlab处理和系统实际处理的效果图进行了对比,如图8所示。可以看出,系统能准确地识别并提取出车道线,为Hough变换模块提供有效的数据。
图8 图像预处理效果对比图
表2是系统各模块的时间开销表。由于系统采用流水线结构,各模块同时工作,因此系统的等效时间开销为20 ms,帧率达到50 fip·s-1。表3列出了传统设计与本文设计的对比,由表可见,本文提出的纯硬件语言实现方法能显著的提高系统运算速度,具备良好的实时性。
表2 系统各模块时间开销表
表3 系统帧率对比
4结束语
为充分利用FPGA的并行结构,尽可能的提高系统运行速度,本系统完全摒弃软件实现方法,所有算法采用硬件方式实现。同时本系统对Hough变换算法进行了改进,引入了空间并行化和时间并行化的实现方案,因此系统与传统方案相比具有较高的实时性。经实际检测,本系统反应速度较传统系统提高了70%,同时由于所有模块都集成到FPGA芯片内部,本系统具有抗干扰能力强、稳定性好、外围电路简单、体积小等特点。
参考文献
[1]李元金,张万成,吴南健.一种基于并行处理器的快速车道线检测系统及FPGA实现[J].电子与信息学报,2010,32(12):2901-2903.
[2]顾柏园,王荣本,余天洪,等.基于视觉的前方车辆探测技术研究方法综述[J].公路交通科技,2005,22(10):114-119.
[3]郑存芳,史洪玮,刘利晖.基于FPGA的车道偏离预警系统的设计[J].电子技术,2012(8):67-69.
[4]胡越黎,计慧杰,吴频,等.图像的中值滤波算法及其FPGA实现[J].计算机测量与控制,2008,16(11):1672-1675.
[5]冯辉宗,陈叶,徐洋.基于FPGA的实时图像采集与Sobel边缘检测[J].传感器与微系统,2011,30(6):116-118.
[6]官鑫,王黎,高晓蓉,等.图像边缘检测Sobel算法的FPGA仿真与实现[J].现代电子技术,2009(8):109-111.
[7]徐友春,王荣本,李克强,等.一种基于直线模型的道路识别算法研究[J].中国图象图形学报,2004(7):94-100.
[8]王荣本,余天洪,顾柏园,等.基于边界的车道标识线识别和跟踪方法研究[J].计算机工程,2006,32(18):195-196,239.
[9]郭磊,王建强,李克强.存在车辆干扰的车道线识别[J].汽车工程,2007,29(5):372-376,400.
[10]田炳香,郑榜贵,吴晴.高速公路车道线检测与跟踪算法研究[J].现代电子技术,2008(9):180-183.
[11]Huang Peiyung,Yeh Chunwei,Huang Shihshinh.A portable vision-based real-time lane departure warning system based on embedded calculating technique[C].Basel,Australia:Vehicular Technology Conference,2006.
Verilog HDL Implementation of A Lane Departure Warning System Based on FPGA
LIN Yingjie,LI Dongjie,LIANG Guangjing,GUO Jianping
(School of Information and Optoelectronic Science and Engineering,South China Normal University,Guangzhou 510000,China)
AbstractIn order to,a system based on FPGA is proposed for improving the speed of a rapid lane departure warning system based on PC.The whole system consists of several modules including the median filtering module,the Sobel edge detection module,and the Hough transform module.Each module is achieved by using Verilog HDL Language and designed in the way of parallel structure so as to make full use of the super power in parallel processing of the FPGA.The system is demonstrated to be fast enough to detect the lanes departure and applicable in daily life.
KeywordsFPGA;parallel processing;Sobel;Hough transform
doi:10.16180/j.cnki.issn1007-7820.2016.05.036
收稿日期:2015-08-03
基金项目:广东省光电信息实验教学示范中心建设项目(C10554);广东省质量工程战略新兴产业特色基金资助项目(C1085021)
作者简介:林英杰(1994—),男,本科。研究方向:电子通信。
中图分类号TN432
文献标识码A
文章编号1007-7820(2016)05-135-04