文献标识码: A
DOI:10.16157/j.issn.0258-7998.2017.04.004
中文引用格式: 赵午峰,乔瑞萍,孙贺. 基于TMS320DM6437的车道线检测与跟踪[J].电子技术应用,2017,43(4):17-20.
英文引用格式: Zhao Wufeng,Qiao Ruiping,Sun He. Lane detection and tracking on TMS320DM6437[J].Application of Electronic Technique,2017,43(4):17-20.
0 引言
高级驾驶辅助系统(ADAS)已成为当前世界交通领域的研究热点之一,基于视觉的车道线检测技术是高级驾驶辅助系统的重要部分。
针对车道线检测的实时性,本文在低成本高性能DSP处理器TMS320DM6437平台上,通过两级Hough变换进行车道线的检测然后利用视频帧与帧之间的相关性对车道线进行跟踪。将算法移植后,根据DSP的特点,对算法在数据处理、算法结构以及流程等方面再次进行优化。
1 硬件结构
TMS320DM6437是TI公司的32位定点DSP达芬奇技术的处理器,主频最高可达700 MHz,具有32 bit、256 MB寻址空间的DDR2存储器接口和8 bit、64 MB寻址空间的异步存储器接口, 片上集成了视频处理子系统VPSS,支持汽车上用于电子设备通信的CAN总线,因此TMS320DM6437非常适合车载视频设备的开发应用[1]。系统所用板卡结构图如图1所示。
硬件系统主要组成部分有:视频输入模块、外围存储模块、视频输出模块、通信接口和电源。
视频输入模块:系统采用的是TVP5146视频解码芯片,该芯片对CCD镜头采集来视频信息进行模数转换以及编码后送到TMS320DM6437进行处理。
外围存储模块:系统外扩了2 GB的DDR2,和128 KB的Flash。
视频输出模块:TMS320DM6437用4个输出DAC来接口多种标准输出,通过编程,DAC的输出支持复合视频,分量视频或RGB视频。
通信接口:系统通过JTAG接口对程序进行调试,预留了可以连接汽车OBD接口的CAN总线。
2 算法设计
本文中车道线检测与跟踪算法的流程图如图2所示。
本文算法总流程共分为两大部分:车道线检测与车道线跟踪。
(1)车道线检测
本文通过两级Hough变换进行车道线检测。
Step1.扩大角度步长,进行第一级Hough变换。
Step2.利用Step1检测结果,约束范围,进行第二级Hough变换,精确检测车道线。
(2)车道线跟踪
利用视频帧之间的相关性,以上一帧图像车道线检测结果为基础,对参数进行区间约束,进行Hough变换,便可以跟踪检测后续帧的车道线。
2.1 两级Hough变换检测车道线
Hough变换[2,4]是经典的直线检测模型,车道线的检测问题,经过Hough变换,变成了直线参数的求取过程。
Hough变换的基本原理可以用式(1)表示:
本文提出的两级Hough变换检测车道线的具体过程可以用仿真实验中以下2步来说明:
第一级Hough变换:以10°为角度步长检测车道线。
第二级Hough变换:在第一级Hough变换检测结果周围以一定的区域作为约束区间,进行第二级Hough变换,得到精确的车道线参数。
两级Hough变换的检测结果如表1所示。
一次基本Hough变换如式(1),即为一次乘加运算。Hough变换中计算量最大的部分为坐标空间变换部分,假设二值图像中非零像素数为N。
按照传统Hough变换,则一帧图像在坐标空间变换部分计算量为:
不同步长下计算量如表2所示。
计算量相比结果为该步长下计算量与传统Hough变换计算量相比的结果,从表中可以看出步长越大优化效果越好。经过大量实验测试,当步长超过10°,检测准确性将不能保证,所以将步长限定在10°以内。
检测结果示意图如图3所示。
2.2 车道线跟踪
车道线跟踪是依据相邻视频帧之间的相关性更加快速地检测车道线,下一帧图像的车道线参数可以以上一帧图像车道线参数为基础限定范围进行得到约束区间,在约束区间内可以快速地检测到车道线。以三帧图像为例:
(1)前一帧图形的车道线参数为(ρ1,i-1,θ1,i-1)和(ρ2,i-1,θ2,i-1),对前一帧参数进行约束就能够得到目前帧的感兴趣区域。
(2)在感兴趣区域进行Hough变换得到目前帧的车道线参数(ρ1,i,θ1,i)和(ρ2,i,θ2,i),得到当前帧的参数之后可以确定下一帧图像的感兴趣区域;
(3)在下一帧图像的感兴趣区域内进行Hough变换得到车道线参数,重复(1)和(2),便可得到视频流的车道线跟踪。
3 算法移植优化
本文在算法移植阶段使用的是CCS3.3集成开发环境,以及DSP/BIOS操作系统和数字视频软件开发包DVSDK,充分利用了TI提供的的Vlib和IMGLIB函数库。算法在TMS320DM6437平台实现过程中,本文对算法进行了优化,进一步提高了运算效率。
(1)根据DSP特点进行数据处理
TMS320C64x+DSP每个指令周期可以完成一次short*short运算,但是一个int*int运算需要5个指令周期,所以数据尽量采用了short型进行存储。而且因为像素数据大小在0~255之间,所以像素数据以及部分其他数据均可以使用short型存储。
DSP中整数乘除运算指令的计算量远远超过逻辑移位指令的计算量,所以算法中的乘除运算,尽量使用移位运算。
(2)循环部分优化。尽量将循环展开,减少循环嵌套层数,并且减少循环内部计算。
(3)对于车道线的验证部分,由每一行都进行验证,缩减为隔行验证。
(4)将算法中的“与、或”条件语句展开。
(5)对车道线验证过程再次进行优化。传统算法的验证过程为将像素坐标以及车道线参数带入Hough变换进行验证,本文提出利用像素之间的位置关系进行验证,示意图如图4所示。
假设图像高度为h,该车道线参数为(ρ0,θ0),则对于第一行有:
所以对于待检测像素(x,y),符合式(8):
(6)CCS3.3编译选项中Opt Level优化控制。Opt Level能够控制优化级别,其中-o后面的数字代表优化程度,数字越高优化越明显,-o3为最高优化程度。
以上各个优化过程对应计算量如表3所示。
4 结果及分析
4.1 算法仿真结果
本文在算法仿真阶段中所用图库为加利福尼亚理工学院的Caltech Lanes dataset。该图库一共1 330张道路图片,分别为科尔多瓦和华盛顿两个城市的道路图片。Caltech Lanes dataset样图如图5所示,对应检测结果图片如图6所示。
经过实验该方法正确率为79.8%。出现检测错误的图片全部是不存在车道线或者车道线较远不可检测的图片,示意图如图7所示。
从时间消耗来看,经过对不同尺寸的共计3 000幅图片进行测试,运用本文中算法与传统Hough变换算法相比较,本文中算法时间消耗比传统算法时间消耗少50%。
4.2 系统测试结果
在室外搭建了实验平台对系统进行测试。经过测试,系统对车道线检测与跟踪达到了实时性要求,测试平台每帧图像大小为720×480,最终检测速度为一帧图像33 ms,帧率可以达到30 帧/s,并且可以在一定程度上克服行人等障碍物的影响。DM6437平台上结果截图如图8所示。
5 结论
针对车道线检测的实时性要求,本文在TMS320DM6437平台上实现了车道线实时检测与跟踪。本文通过两级Hough变换进行车道线的检测,然后利用视频帧与帧之间的相关性,对车道线进行跟踪。将算法移植到TMS320DM6437平台上后,根据DSP特点,对算法在结构以及流程等方面再次进行优化。该方法减少了车道线检测与跟踪的计算量,提高了算法效率,达到了车道线检测的实时性要求,并且保证了检测结果的正确性。本文车道线检测与跟踪可以应用在车辆防碰撞预警,车辆检测以及自动驾驶等系统中,对ADAS有很高的应用价值。
参考文献
[1] 周猛,乔瑞萍,王效鹏,等.基于DaVinciTM的360°全景泊车影像系统的设计与实现[J].电子技术应用,2014,40(10):20-22,26.
[2] LI X,WU Q X,KOU Y,et al.Lane detection based on spiking neural network and hough transform[C]//2015 8th International Congress on Image and Signal Processing(CISP),Shenyang,China,2015:626-630.
[3] 申长安,段新涛,焦晓君,等.基于同态滤波的车道线检测技术[J].公路,2015(11):22-25.
[4] 段建民,刘冠宇,郑榜贵.基于整体最优阈值的车道线快速识别方法[J].北京工业大学学报,2015,41(1):42-47.
作者信息:
赵午峰,乔瑞萍,孙 贺
(西安交通大学 电子与信息工程学院,陕西 西安710049)