1、引言
随着人口数目的增长,给交通带来的压力越来越大,智能交通系统成为近些年研究的热门。车流量检测是智能交通的基础部分,在系统中占有重要地位。目前有多种方法检测车流量,例如:电磁感应装置法和车流信息的超声波检测法。而实际上,前进中的车辆速度、种类始终变化,所以普遍存在反射信号不稳定,丈量误差大的题目。与以上方法相比,基于视频的车流量检测方法具有很多优点:1、从视频图像中提取可靠信息,完成道路交通的监视工作,可进步道路、车辆的自动化程度。2、交通监视控制系统中安装的视频摄像机比安装其它传感器更经济、且破坏性低。3、实际道路交通系统中已经安装了很多摄像机用于道路交通监视和控制,可一举两得。
现有的传统视频检测方法基于工控机,其算法成熟,且已形成相关产品。但其也有缺点:1、是由于通用CPU没有专用的硬件乘法器,故很难实现图像的时实性处理。2、是采用通用工控机,运行Windows系统,本钱高,要时刻关心机器有没死机,系统有没感染病毒,操纵系统的补丁升级等题目。基于以上两点,本文提出了基于TMS320DM642(以后简称为DM642 )的嵌进式图像识别方案,解决了存在的题目。
2、车流量检测系统的原理与组成
2.1车流量检测系统的工作原理
车流量检测系统是由视频采集、车流量数字视频信号处理、不同环境下车流量检测算法、以及车流量检测结果输出等几部分组成。数字图像采集部分的核心芯片是TVP5150,它可将模拟视频信号转换为数字视频信号。DM642运行图像算法对采集进来的图像进行数字图像处理。车流量数字视频检测算法白天主要是使用改进后的帧差法进行运动检测,夜间使用车灯检测法。按照车道将采集到的公路图像化分为四部分,每部分对应一条车道。在每条车道中开设一个虚拟线圈(指图像中一个矩形检测区域,统称为虚拟线圈),当有车压过虚拟线圈时会引起虚拟线圈内像素值发生变化。根据此变化控制I/O口产生每条车道的相应脉冲,处理后发出脉冲给公路交通讯号机,控制交通灯,从而达到实现智能交通的目的。同时,可以通过网络将车流量信息传到监控中心。
2.2车流量检测系统硬件
DM642是德州仪器公司专门为多路视频输进输出设计的数字信号处理芯片。其运算功能强大,建立在第二代高性能超长指令字结构上,可以8条指令并行执行,使这款芯片非常适用于数字图像处理。考虑到实际工作的要求和系统的稳定性,将DM642的主频设置为600MHz。根据实际应用环境和嵌进式系统的需要,系统除了扩展了系统必须的存储器部分和视频采集回放部分外,主要扩展了多路数字I/O和异步串口以及网络接口功能,方便系统与外部通讯。具体硬件实物如图1所示。说明如下:1、外扩SDRAM,容量为4M×64位;2、外扩Flash,容量为4M×8位;3、2路PAL/NTSC标准模拟视频输进(CVBS或S端子),1路PAL/NTSC标准模拟视频输出;4、 通过CPLD扩展8路数字I/O口,用于输出车道上车流的信息;5、2路UART接口,接口标准RS232/RS422/RS485可配置;6、实时时钟RTC+看门狗电路;7、10M/100Mbase-TX标准以太网接口。
图1 硬件实物图
图2系统组成图
系统组成如图2所示,在图中TMS320DM642通过64位宽的EMIF总线扩展外部存储器部分,包括32Mbytes的同步的DRAM,用于存放实际运行时用户代码和图像数据。4M的Flash用于存放bootloader,以及用户的应用程序,启动时将FLASH中的代码和数据加载到内存中(SDRAM中),用户对与虚拟线圈的配置参数也可以存放在FLASH中。SDRAM的数据宽度为64位,FLASH的数据宽度为8位,分别对应TMS320DM642的CE0和CE1空间。同样地,通用异步收发器UART和CPLD也是通过EMIF总线与DM642相连。UART用来扩展串口,本系统中可用其扩展了RS232接口。CPLD用来实现FLASH和UART的粘合逻辑及扩展通用数字I/O。为了方便软件的实现,本系统中将这两部分也连接到了DM642的CE1空间,其内部寄存器作为CE1存储空间的一部分。
2.3视频采集输出部分
为了统计十字路口车流量的信息,本系统设计了两路模拟视频输进。系统将摄像头采集得模拟视频信号由TVP5150按ITU-R BT.656转化为数字视频流,内嵌同步信号发送到DM642的VP1口和VP2口上。图像的行同步、场同步信号均内嵌在视频数据流中的EAV和SAV时基信号中,视频口只需要视频采样时钟和采样使能信号即可。DM642可通过FIFO实现数字视频图像三帧连续采集,当有一帧图像正在处理时,其它两个缓冲区还可以实现图像的循环采集,从而解决了恒速的视频采集与变速的图像处理之间的矛盾。本系统扩展了一路视频输出,用于本地回放,当系统调试完毕后此部分功能可以不使用。视频输出由Phillips公司的SAA7121芯片实现。SAA7121将DM642的VP0口传出的数字视频信号转化为PAL(50Hz)制式或者NTSC(60Hz)制式模拟信号送外接视频口输出。
3、软件部分
3.1 车流量统计算法
由于白天和晚上路面光强变化非常大,这对算法的适应性提出了更高的要求,为了能全天得到车流量的信息,所以整个算法将白天和晚上分别开来处理。程序结合当时光线的不同情况,对两种算法进行自动的切换,从而保障整个算法的运行环境。
3.1.1 虚拟线圈的选取:
虚拟线圈的选取关系到检测算法的精度和速度,并且受到摄像头安装的高度和倾角,以及摄像头景深的影响。一般情况下,虚拟线圈靠近图像底部的位置,车辆的间距较大,便于检测。虚拟线圈越大,相对检测精度就越高,相应的算法执行的时间也会越长。由于整个系统要适应各种路口、路面,所以虚拟线圈的选取交给了用户。我们用VC6.0开发了PC机软件,用户使用此软件,通过串口,对各个车道的虚拟线圈的大小和位置进行设置。
3.1.2相邻检测帧的时间间隔:
由于整个系统要与信号机通讯,所以要求我们处理每条道路上图像的总时间不能超过0.25秒。这里选取每帧相隔0.125秒。
3.1.3车流量检测算法www.51kaifa.com/html/jswz
由于白天车流量检测算法已经在工控机上有很成熟的应用, 在此就不再赘述。晚上的路面能见度比较低,算法主要是对车灯的识别。在晚上,车灯有很强的亮度,所以只要能正确的检测到车灯就可以进行车辆的丈量。算法的干扰来自路面对车灯发出来的光线的反射。通过使用Matlab仿真试验后发现,二值化往噪以后,图像的亮斑基本上是车灯的外形,而路面反光区向前发散,据此可以通过检测窗上亮斑的外形特征来识别车灯和路面反光区。对图像二值化的阈值选取是通过大津法得到的,与经验法相比,大津法是通过计算方差得到阈值,环境适应能力比较强,但这也增加了算法的时间和空间复杂度。图像往噪是使用3*3的中值滤波器,我们对其进行了快速算法的改进,并且只对虚拟线圈进行。
采集到路面原始灰度图像如图3,图4为其二值化处理后的图像,图中矩形区域为虚拟线圈,线圈中有两个白色区域。以像素为单位,根据白色区域的最大长宽比确定是否为车灯。车灯对应的白色区域长一般长小于即是宽,如图5所示。路面反光对应的白色区域长大于宽如图8所示,虚拟线圈内的白色区域为路面反光。
3.2系统基于DSP/BIOS的软件框架
系统软件开发环境为CCS,使用了TI提供的DSP/BIOS内核以及TI倡导的RF5软件参考框架。通过DSP/BIOS,配置了输进、处理、输出等线程,这些线程之间的同步通过旗语进行。使用DSP/BIOS内核,配置DSP/BIOS方便易行,便于更改,比传统方法有很多上风。使用DSP软件架构RF5(Reference Framework 5),大大缩短了开发时间,同时也最大限度的保证了代码的可移植性和健壮性。软件架构从下往上依次为CSL(芯片支持库)、DSP/BIOS以及Driver层,信号处理库层,算法标准层,这三层构成RF5,最上面一层是用户应用程序层。用户修改维护代码方便,只需要上层改动即可。
输进驱动采用TI公司提供的FVID类驱动,此驱动通过对结构体配置参数,实现DM642视频口的配置以及IIC模块对A/D转换芯片TVP5150的配置,使TVP5150输出PAL制式的数字视频流,并将采集到的图像通过视频口的FIFO写进到指定内存区。当图像采集完成后,通过旗语发送消息给处理模块,消息结构存储了图像数据所在内存的空间的首地址。随后输进模块等待输出模块的回复,以继续处理下一帧的图像。处理模块负责执行车流量统计算法。从输进模块发送的消息结构中提取图像数据地址,以进行图像算法处理,运算结果通过CPLD扩展的I/O口输出,将车流量的监测信息传给信号机。
3.3代码优化
程序主要用C语言编写,一些核心的代码要满足实时性的要求进行了汇编优化。C语言程序优化的好坏直接影响程序的效率。程序中广泛运用以空间换时间的方法来进步代码的运行效率。代码优化的方法比较多,主要的方法有1、编译器优化,在编译时选择不同的编译优化选项,如-pm –oe 选项。2、优化C语言编写的代码,加进指示性信息。常用的指示性的信息如#Pragma MUST_ITERATE等。3、编写线性汇编程序,进步程序运行速度。4、编写汇编程序,实现软件流水。排流水线可以使用多种技术手段,如依靠图和迭代间隔时序表。在TI提供的技术文档中有具体描述,这里不再重复。
4、实验结果与分析
为验证车流量检测系统的可靠性,将算法移植进检测系统,在多处公路天桥上使用三角架安装摄像头进行了实际检测试验。由于天桥上有一定数目的行人,导致天桥稍微晃动,对摄像头的稳定性有一定影响。另外车辆骑线现象等造成检测结果有一定误差,但是检测效果依然良好。一组测试如表1车流量检测结果所示,在自然环境下,采集图像大小为720×576。其中白天的丈量时间为下午3点27分,晚上的时间为下午6点50分,天气晴朗,测试地点为北京市海淀区学院路的两条车道。采用CCD大小为1/3英寸。镜头焦距为3.5-8mm, 最大孔径比为1:1.4。
表1车流量检测结果
从表1车流量检测结果中得知,白天视频检测的结果略好,夜间车灯的外形和亮度有较大差异,有一定误差,但系统识别正确率都在80%以上。试验证实了该方法检测精度高,实现本钱低,系统运行可靠。
本文作者的创新点:1、以往的基于视觉的车流量检测硬件是工控机,本文提出了新的解决方案,先容了基于TMS320DM642的嵌进式车流量检测系统。通过试验证实了该系统体积小、本钱低、稳定可靠。2、文中先容了夜间车流量的检测算法,算法复杂度低,处理速度快,既能保证车流量检测的实时性,又能满足精度要求。