0 引言
随着我国国民经济的发展,汽车拥有量剧增,同时公路建设事业的迅速发展,造成目前公路交通呈现行驶高速化、车流密集化和驾驶员非职业化的趋势,由汽车碰撞引起的交通事故危害着人民的生命财产安全。根据美国国家公路交通安全管理局(NHTSA)2009年乘用车在交通事故中碰撞位置的统计数据,在各种交通事故中,车辆前部碰撞占到总事故的62%,而这其中多数是由于车道偏离车道所引起的交通事故,因此通过设计汽车车道偏离预警系统有效地减少前向碰撞的发生几率,可以有效降低公路交通事故的损失。
本文利用SoPC(可编程片上系统)技术设计方式灵活、可裁减、可扩充、可升级、设计周期短的优势,设计了一种可以灵活配置,易升级维护的车道偏离预警系统。
1 系统的总体技术路线
根据系统功能需求,将系统的处理流程分为图像预处理、特征提取、特征判别三个阶段,如图1所示。
(1)图像预处理。系统通过摄像机获取车辆行驶前方的车道图像,通过数字图像处理技术完成数字图像的采集、灰度化和滤波增强;
(2)特征提取。利用Sobel边缘检测算法完成图像的边缘检测,并以此为基础利用Hough变换完成车道线检查;
(3)特征判别。根据检测出的车道标志线信息,利用边缘检测函数EDF做出相关的偏离判决。
2 系统的硬件设计
基于FPGA的车道偏离检测系统的硬件组成如图2所示。系统利用CCD摄像机采集车道图像,通过视频模数转换芯片ADV7181对获取的视频进行解码,得到数字视频信启,并将其存储于SDRAM中供LCD进行显示,并作为原始信息供之后的图像信号处理单元完成图像处理任务,从中提取车道信息。
内嵌于FPGA的软核处理器Nios II为整个系统的控制核心,完成系统整体软件流程执行控制、Hough变换、车道检测以及碰撞预警任务;Nios II处理器通过Avalon交换架构与SOPC系统其他组件完成数据交换和控制。FPGA内部构件的图像信号处理单元完成对数字图像信号的预处理、中值滤波除噪、Sobel边缘检测等任务,其处理结果作为Nios II进行车道偏离检测的依据。
外围存储器件SDRAM、FLASH、SRAM,SDRAM用以存储图像信息,FLASH用以存储程序以及系统参数配置,SRAMN以存储软件暂存数据:系统以按键、LCD作为人机接口。
附加逻揖完成系统的其他辅助任务。
2.1 SOPC系统的设计
SOPC系统的核心为Nios II CPU,本文选用的是标准型Nios II IP核,用以在硬件规模和性能之间取得平衡;JTAG UART用以完成FPGA配置及系统调试;显示接口IP包括SDRAM、SRAM、FLASH的IP核完成SOPC系统与FPGA外部存储器件的连接与通信;人机界面器件接口完成LED、LCD、按键与SOPC系统的连接。
2.2 图像信号处理单元的设计
图像信号处理单元利用Verilog HDL实现了基于FPGA的图像预处理、中值滤波及Sobel边缘检测功能,设计过程中,充分利用TFPGA适于并行处理和流水处理的特性。
2.2.1 快速中值滤波单元
快速中值滤波单元主要由3×3模板生成模块、中值滤波算法模块及行列计数模块组成,其单元框图如图3所示。
2.2.2 Sobel边缘检测单元
Sobel边缘检测单元由3×3模板生成模块、梯度运算模块、梯度比较输出模块三部分组成,其单元框图如图4所示。三部分按照流水线的方式工作,通过窗口模板的移动,完成整幅图像的边缘检测任务。
3 软件流程
3.1 系统软件流程
车道偏离检测系统的软件执行流程图如图5所不。上电后,完成初始化,将EPCS中FPGA的相关配置信息及Flash中的程序配置入FPGA,并完成摄像机等系统部件的初始化。
系统完成初始化后,进入车道偏离检测及预警流程。启动摄像机开始图像采集,并调用FPGA内部图像处理模块对图像进行颜色空间转换、灰度化、中值滤波、边缘检测等操作。
程序载入经边缘检测的图像后,将图像分为左右两部分进行直线检测。考虑到在实际应用中,车道接近水平或垂直的几率极小的事实,同时也为了滤除干扰(如地平线、路边灯杆、前方车辆边缘等),在利用Hough变换进行直线检测的过程中采用了如下策略:在左半部图像中,方向角在95°~175°之间进行直线检测;在右半部图像中,方向角在5°~85°之间进行直线检测。搜寻过程遍历整幅图像,搜寻计算完毕,在累加器A(ρ,θ)中寻找局部极大值,由此确定车道标志线的位置和参数。
调用Hough变换函数进行直线的识别后,如果图像处理后有可利用的车道信息,进入车道偏离预警及判决过程,车道偏离预警也采用两级预警机制,当偏离角度大于警告值时,发出声光警告;当偏离角度小于警告值但大于提醒值时,发出声光提醒。若经图像处理后没有相关车道信息则返回障碍物检测与碰撞预警流程。
4 结语
系统充分利用了FPGA的可编程和SoPC系统可重构的特点,系统升级维护非常方便,可以极大地延长系统的生存周期;同时采用以FPGA为核心的单芯片解决方案,外围电路简单,可以使系统的体积做得很小;另外,本系统还可通过自定义模块、自定义指令、C2H等方式进行加速,其思想都是以牺牲硬件资源换取运算速度的提升。通过加速,可以做到图像处理的实时性要求,从而进一步提高车道偏离检测系统的实时性,提高系统的实用性。