王 敏,郑嘉豪,王金宝
(1.西安电子科技大学电子工程学院,陕西 西安 710071;2.西安电子科技大学机电工程学院,陕西 西安 710126)
车辆视频检测技术是当今研究的热门课题,有着广泛的应用前景。在智能交通系统中,利用视频处理技术对交通信息,如车流量、违章车辆、车牌号等的检测和识别,与传统电磁线圈检测、红外检测、雷达检测[1]等方法相比有着成本低、安装方便、信息量大的特点。而将这些信息从视频图像中提取出来,需要使用光流法、帧差法、背景差法、边缘检测法[2]等方法,其中背景差法具有速度快,准确性高的特点,适用于资源有限,对实时性要求较高的嵌入式检测设备。背景差法关键在于找到一种背景更新算法实时获得与实际背景相同或接近的道路背景,常用的背景更新算法有平均法、自适应更新法以及高斯模型法等。首先简单介绍多帧平均法和自适应更新法两种背景更新算法,其次将两种算法在ADSP-BF561平台上实现,并对两者的实时性做出比较和分析。
在车辆视频检测背景差法中采用当前帧与背景帧相减的方法提取运动车辆,导出诸如车速等其他交通信息。为保证检测的准确性,获取一个与实际交通道路相同或贴近的背景至关重要,本节简单介绍多帧平均法和自适应法两种背景获取与更新算法。
多帧平均法是连续采集多帧图像,将各图像对应像素点的值相加后求平均值,各均值像素构成新的图像即为背景图像。对于只有亮度信息的黑白图像,只需对各像素点的亮度作平均即可;对于有色度和饱和度的YUV图像或RGB图像,则需要分别对亮度、色度和饱和度或R,G,B这3个参数作平均运算。设连续采集N帧图像,第n,n=0,1,…,N-1帧图像的某个像素为In(x,y),采用多帧平均法后,背景图像中对应的像素为 Bn(x,y),则
对于多帧平均算法,背景每N帧更新一次,N太小会影响背景的真实性,太大则会使背景相对滞后,具体可根据道路交通流疏密情况和系统对实时性要求而定。图1是一帧原始图像以及取各种值时所获的背景图像。
自适应背景更新算法[3]是先取1帧图像作为原始背景,然后利用当前帧对其不断更新。具体做法是:以亮度信息的变化量为依据,判断出当前帧相对于前一帧的运动像素点和静止像素点;运动像素点所对应的背景点不更新,保持不变;而静止像素点所对应的背景点则更新为当前帧像素点与背景点的加权值,即
图1 一帧原始图像及N取各种值情况下所获得的背景图像
设某像素点在当前帧中的值为In(x,y),对应的前一帧和背景中的值分别为 In-1(x,y) 和 Bn-1(x,y),Bn(x,y)为更新后的背景值,Sn(x,y)为当前帧与前一帧之差的绝对值
求出 Sn(x,y)的均值 μn和方差 σn,按式(3)对Sn(x,y)作二值化处理,其中k的值可根据实验结果而定,文中取1,获得了较理想效果,如图2(b)所示。
至此可以找出An(x,y)中为255的点即为运动像素点,其他则是静止像素点,背景更新为旧背景Bn-1(x,y)与当前帧 In(x,y)的线性加权[3],经多次更新后得到如图2(c)所示的背景图像。
其中,∂为背景更新速率,它等于当前帧中运动像素点数除以总像素点数。
图2 更新后背景图像
文中将多帧平均和自适应两种背景更新方法在ADSP-BF561处理器上实现,这里先介绍BF561硬件平台和软件实现流程,然后通过测试数据对两种算法的实时性进行比较和分析。
硬件采用ADI公司ADSP-BF561 EZ-KIT开发平台[4],从摄头输出的模拟视频信号经开发平台上的视频解码器ADV7183,转换成YUV格式的数字视频信号,数字视频信号通过BF561芯片上的PPI接口存入外部SDRAM中,一帧数据传输完成继续下一帧数据传输,与此同时BF561对上一帧数据进行处理,如图3所示。
图3 信号处理流图
ADV7183是ADI公司一款视频解码器,支持混合和分量视频输入,采样率27 MHz,数字视频以Cb Y Cr Y 4∶2∶2的格式并行输出,其输出接口可与BF561的PPI口无缝相连。
BF561是一款双核32位DSP处理器[5],每个内核时钟最高可达600 MHz。片内共含有328 kB的SRAM,分为L1和L2两级,每个内核含有100 kB的L1SRAM,可用于指令和数据存储,工作在核时钟速率,L2为两个内核共享的存储区,共128 kB,工作在1/2核时钟频率。BF561有2个DMA(Direct Memory Access)控制器,每个DMA支持12通道的DMA传输,共24通道,此外还有2个存储器DMA(MDMA)控制器,每个支持2通道存储器到存储器的DMA访问,BF561片上外设PPI接口(Parallel Peripheral Interface)为数字视频信号的输入提供无缝接口。
ADSP-BF561 EZ-KIT开发平台上有两片、共64 MB、可32位访问的SDRAM,作为BF561的外部存储器,时钟速率可达120 MHz。
模拟视频信号通过ADC转换后,输出数字视频信号,每帧含有576行,每行720个像素点,数据量为810 kB,在DSP内存中放不下,只能通过PPI口DMA存入到外部SDRAM中,当要进行数据处理时再从SDRAM中调入到内存中运行。SDRAM的时钟速率相对于DSP内核时钟来说较慢,因此在内存中开辟出2倍于一次需要处理的数据容量的空间,然后通过MDMA的方式,进行数据传输,当一个在进行数据处理时,另一个可以传输数据,这样可以减少数据传输对时间的浪费,从而提高处理速度。另外BF561有两个内核,每个内核有2个MDMA通道,可同时独立运行,因此可使双核同时工作,进一步提高处理速度。
背景更新算法在BF561上的实现,主要是要将一帧图像分成若干部分,分先后输入到内部存储器中再作处理。文中将一帧图像分成64部分,按顺序以32位MDMA的方式输入到L2存储器中,L2存储器分成A,B两部分,当A在作1/64帧数据处理时,B则进行1/64帧数据传输,数据处理和传输交替进行,保证内核以全速率处理数据而不用停下等待数据传输。图4是A,B两区交替进行MDMA数据传输和数据处理完成一帧视频数据处理的流程图。
图4 一帧视频数据处理流程图
道路交通状况以及通过两种方法获得的背景分别如图1(a),图1(f)和图2(c)所示,由图可知两种方法都能获得较理想的背景帧。下面从实时性方面比较两者的区别。
对于多帧平均法,每64帧更新一次,分别在10 s,20 s,40 s内测试,测得实际更新次数与理论更新次数一致,可见多帧平均法实时性较好,若只对感兴趣的区域进行更新,也就是在一帧视频中绘出若干个虚拟检测线圈,线圈内部作为感兴趣的区域,只对此部分进行更新和处理,运算量会减少很多,在背景更新的同时就有足够的时间进行车辆检测等其他运算。
对于自适应更新法,用10 s,250帧作测试,分别以每1帧更新一次、每2帧更新一次和每4帧更新一次测试自适应更新法实际更新次数,得表1数据。从表中可知,对于分辨率为720×576的YUV 4∶2∶2图像,采用自适应背景更新方法,10 s内250帧视频最多只能更新100次,若数据量为原来的1/2.5,则可以满足1帧更新一次的实时性要求,可以在下一帧数据到来之前完成一次背景更新。对于车辆视频检测,除背景更新外,还有车辆的检测和速度测量等处理,假设车辆检测等其他处理所占的时间与背景更新时间相同,则当数据量为原来的1/5时,可满足背景实时更新和车辆实时检测要求。同多帧平均法一样,为减少数据处理量,在一帧图像上画出几个虚拟检测线圈,使线圈包围的像素点的总数不大于整幅图像的1/5,就可以在一帧之内完成背景更新和其他检测处理运算,因为我们只关心线圈内的部分,背景更新和检测运算也只针对这部分。
表1 自适应法10 s内理论与实际更新次数
文中在ADSP-BF561处理器平台上实现了多帧平均法和自适应法两种背景更新方法,实验证明两种方法均能较好地获取背景图像并有办法满足实时性要求。两种算法不仅可以很好地应用于后续的基于背景差法的车辆视频检测中,也可用于其他基于视频的动目标检测场合。
[1]刘相莹.智能交通中的车辆检测技术及其发展[J].科技信息,2007(28):263-264.
[2]张晖,董育宁.基于视频的车辆检测算法综述[J].南京邮电大学学报,2007,27(3):88 -94.
[3]LEI MANCHUN,DAMIEN L,PIERRE G,et al.A video -based real-time vehicle counting system using adaptive background method[C].IEEE International Conference on Signal Image Technology and Internet Based Systems,2008:523-528.
[4]Analog Devices,Inc.ADSP - BF561 EZ - KIT lite®evaluation system manual[M].USA:Analog Devices,Inc,2008.
[5]Analog Devices,Inc.ADSP - BF61 blackfin®processor hardware reference[M].USA:Analog Devices,Inc,2010.