微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 汽车电子 > 基于机器视觉的公路车流量检测系统

基于机器视觉的公路车流量检测系统

时间:09-27 来源:互联网 点击:
3 软件部分

3.1 车流量统计算法

由于白天和晚上路面光强变化非常大,这对算法的适应性提出了更高的要求,为了能全天得到车流量的信息,所以整个算法将白天和晚上分别开来处理。程序结合当时光线的不同情况,对两种算法进行自动的切换,从而保障整个算法的运行环境。


图3夜间算法流程图


3.1 虚拟线圈的选取

虚拟线圈的选取关系到检测算法的精度和速度,并且受到摄像头安装的高度和倾角,以及摄像头景深的影响。一般情况下,虚拟线圈靠近图像底部的位置,车辆的间距较大,便于检测。虚拟线圈越大,相对检测精度就越高,相应的算法执行的时间也会越长。由于整个系统要适 应各种路口、路面,所以虚拟线圈的选取交给了用户。我们用VC6.0开发了PC机软件,用户使用此软件,通过串口,对各个车道的虚拟线圈的大小和位置进行设置。

3.2 相邻检测帧的时间间隔

由于整个系统要与信号机通信,所以要求我们处理每条道路上图像的总时间不能超过0.25秒。这里选取每帧相隔0.125秒。

3.3 车流量检测算法

由于白天使用改进后的帧差法已经在PC上有很成熟的应用。如公式1所示:



i=1,2,3,......80, j="1",2,3,......10

在公式1中,E保存帧差后的检测窗平均值,R是当前帧检测窗灰度值,R'是前一帧检测窗灰度值,m,n为虚拟线圈的长宽,在此就不再赘述。

晚上的路面能见度比较低,算法主要是对车灯的识别。在晚上,车灯有很强的亮度,所以只要能正确的检测到车灯就可以进行车辆的测量。算法的干扰来自路面对车灯发出来的光线的反射。通过使用Matlab仿真试验后发现,二值化去噪以后,车灯的亮斑基本上是车灯的形状,而路面反光区向前发散,据此可以通过检测窗上亮斑的形状特征来识别车灯和路面反光区。夜间的算法如图2夜间算法流程图所示。对虚拟线圈二值化的阈值选取是通过大津法得到的,与经验法相比,大津法是通过计算方差得到阈值,环境适应能力比较强,但这也增加了算法的时间和空间复杂度。图像去噪是使用3×3的中值滤波器,我们对其进行了快速算法的改进,并且只对虚拟线圈进行。

采集到路面原始灰度图像如图4,图5为其二值化处理后的图像,图中矩形区域为虚拟线圈,线圈中有两个白色区域。以像素为单位,根据白色区域的最大长宽比确定是否为车灯。车灯对应的白色区域长一般长小于等于宽,如图6所示。路面反光对应的白色区域长大于宽如图9所示,虚拟线圈内的白色区域为路面反光。


图4夜间路面灰度图



 
图5路面二值化后图



 
图6虚拟线圈



 
图7夜间路面灰度图



 
图8路面二值化后图



 
图9虚拟线圈


4 系统基于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类驱动,如图10所示,此驱动通过对结构体配置参数,实现DM642的IIC模块对视频采集口,以及对A/D转换芯片TVP5150的配置,使TVP5150输出PAL制式的数字视频流,并将采集到的图像通过视频口的FIFO写入到指定内存区。当图像采集完成后,通过旗语发送消息给处理模块,消息结构存储了图像数据所在内存的空间的首地址。随后输入模块等待输出模块的回复,以继续处理下一帧的图像。处理模块负责执行车流量统计算法。从输入模块发送的消息结构中提取图像数据地址,以进行图像算法处理,运算结果通过CPLD扩展的I/O口输出,将车流量的监测信息传给信号机。

5 代码优化

程序主要用C语言编写,一些核心的代码要满足实时性的要求进行了汇编优化。C语言程序优化的好坏直接影响程序的效率。程 序中广泛运用以空间换时间的方法来提高代码的运行效率。代码优化的方法比较多,主要的方法有:编译器优化,在编译时选择不同的编译优化选项,如-pm-oe选项;优化C语言编写的代码,加入常用的指示性信息如#Pragma MUST_ITERATE等;编写线性汇编程序,提高程序运行速度;编写汇编程序,实现软件流水。排流水线可以使用多种技术手段,如依赖图和迭代间隔时序表。在TI提供的技术文档中有详细描述,这里不再重复。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top