内嵌于FPGA的软核处理器Nios II为整个系统的控制核心,完成系统整体软件流程执行控制、Hough变换、车道检测以及碰撞预警任务;Nios II处理器通过Avalon交换架构与SOPC系统其他组件完成数据交换和控制。FPGA内部构件的图像信号处理单元完成对数字图像信号的预处理、中值滤波除噪、Sobel边缘检测等任务,其处理结果作为Nios II进行车道偏离检测的依据。

外围存储器件SDRAM、FLASH、SRAM,SDRAM用以存储图像信息,FLASH用以存储程序以及系统参数配置,SRAMN以存储软件暂存数据:系统以按键、LCD作为人机接口。

附加逻揖完成系统的其他辅助任务。

3 、软件流程

3.1 系统软件流程

车道偏离检测系统的软件执行流程图如图5所不。上电后,完成初始化,将EPCS中FPGA的相关配置信息及Flash中的程序配置入FPGA,并完成摄像机等系统部件的初始化。

d.jpg

系统完成初始化后,进入车道偏离检测及预警流程。启动摄像机开始图像采集,并调用FPGA内部图像处理模块对图像进行颜色空间转换、灰度化、中值滤波、边缘检测等操作。

程序载入经边缘检测的图像后,将图像分为左右两部分进行直线检测。考虑到在实际应用中,车道接近水平或垂直的几率极小的事实,同时也为了滤除干扰(如地平线、路边灯杆、前方车辆边缘等),在利用Hough变换进行直线检测的过程中采用了如下策略:在左半部图像中,方向角在95°~175°之间进行直线检测;在右半部图像中,方向角在5°~85°之间进行直线检测。搜寻过程遍历整幅图像,搜寻计算完毕,在累加器A(ρ,θ)中寻找局部极大值,由此确定车道标志线的位置和参数。

调用Hough变换函数进行直线的识别后,如果图像处理后有可利用的车道信息,进入车道偏离预警及判决过程,车道偏离预警也采用两级预警机制,当偏离角度大于警告值时,发出声光警告;当偏离角度小于警告值但大于提醒值时,发出声光提醒。若经图像处理后没有相关车道信息则返回障碍物检测与碰撞预警流程。

4 、结语

系统充分利用了FPGA的可编程和SoPC系统可重构的特点,系统升级维护非常方便,可以极大地延长系统的生存周期;同时采用以FPGA为核心的单芯片解决方案,外围电路简单,可以使系统的体积做得很小;另外,本系统还可通过自定义模块、自定义指令、C2H等方式进行加速,其思想都是以牺牲硬件资源换取运算速度的提升。通过加速,可以做到图像处理的实时性要求,从而进一步提高车道偏离检测系统的实时性,提高系统的实用性。