基于声与图像融合的车辆识别硬件系统设计
2011-09-04彭冬亮郭宝峰
黄 亮,彭冬亮,郭宝峰
(杭州电子科技大学通信信息传输与融合技术国防重点学科实验室,浙江杭州310018)
0 引言
车辆识别就是通过分析处理车辆特征信号,将车辆归为事先规定的某一类型。车辆识别信息是交通规划和管理部门重要的信息来源。目前,国外和国内使用到的车辆识别方法有基于图像、感应线圈、微波、压电特性、声音等原理。其中基于图像的车辆识别率可达到90%,但是基于图像的车辆识别最大的局限性在于系统特性受到环境和光线的影响较大[1]。信息融合是20世纪70年代发展起来的信息科学领域,它主要是应用于军事领域,但近年在民用领域得到广泛的应用,多传感器采集的信息经过融合大大地提高了目标识别的准确率,所以信息融合技术在车辆识别领域有着非常实用的价值[2]。本文提出的方法是利用无线传感网络布置传感器节点采集声音信号和图像信号进行信息融合来分辨车辆目标。
图1 声信号融合系统的工作示意图
1 硬件系统设计
在十字交通路口布置基于zigbee协议的无线传感网络,采集终端节点利用声传感阵列采集声信号然后传送到路由器上,最后转发到网关节点即协调器上[3]。如图1所示,协调器是整个ZigBee网络的核心,系统中协调器不仅负责声信号的以太网传送而且还要完成视频图像的采集以及远端的传送。协调器上有视频采集器进行视频图像的采集,采集的视频图像和声信号数据传送到监控中心进行数据融合,通过融合的得到的最终结果可以很准确的判断车辆目标,从而达到车辆识别的目的。
1.1 采集终端的电路设计
无线传感网络中的各个采集终端主要是实现声信号采集的功能。采集终端是一个以ADSP-218x为核心的嵌入式系统。ADSP-218x是具有50MIPS处理能力的16位定点DSP芯片,它不仅数据处理能力强,而且功耗较小[4]。在采集终端上,ADSP-218x主要是负责声信号的初步处理,声传感阵列采集的声信号中有很多杂波信号,采集的数据在ADSP-218x上进行FFT变换可以帅选出有用数据。采集终端的电路原理图如图2所示,最前端为声传感阵列平面图,声传感阵列由6个微音监听器在二维平面圆内按照60°角等均匀分布,圆的半径为1m。利用声传感阵列采集6路声信号通过信号调理电路后经过AD转换器TLC2543转换传送到ADSP-218x上进行数据处理,处理后的数据再通过串口传输到无形传感芯片CC2530上进行无线通讯。
图2 终端设备电路原理图
1.2 声信号调理电路设计
声信号是双极性的信号,所以在对声信号进行A/D转换前要进行一定的信号处理。如图3所示,声传感阵列采集的声信号Vi通过放大器U1A进行比例运算,V1=Vi,R2用来调节比例系数,使得输入信号转换为-2~+2V[5]。输出的V1信号再经过电容C1把双极性信号耦合叠加到由R4和R5组成的分压电路上,这样双极性信号就转换为单极性的信号,Vout=V1+2.5V。前端的输入信号Vi通过放大器把信号进行比例缩小后再进行叠加后输出的电压控制在5V以下。
1.3 协调器的电路设计
无线传感网络中的协调器是整个网络的中心,协调器主要是实现网络的启动和配置,一旦这些都完成后,协调器的工作就像一个路由器。路由器的功能主要是:允许其他设备加入网络,多跳路由和协助它自己的由电池供电的子终端设备的通讯。在本系统的无线传感网络中,路由器和协调器的电路结构基本一致,只不过协调器上要进行视频的采集以及以太网的通讯,而在路由器上只进行数据的转发。
在本系统的设计中,路由器和协调器都是以 ARM11处理器 S3C6410为核心的嵌入式系统。S3C6410处理器是ARM公司近年推出的新一代RISC处理器,它不仅低功耗而且处理性能强大,而且可以实现视频的H.264、MPEG4硬编码和解码。本系统就是利用它的硬件H264编码器MFC对采集视频进行编码从而进行网络传输。协调器的电路结构图如图4所示。
2 系统软件设计
无线传感网络中的网络协调器和路由器都是通过移植嵌入式linux操作系统来进行软件的开发。但是,由于在无线传感网络中扮演的角色不同,所以协调器和路由器实现的功能也不尽相同。路由器在整个网络中主要是实现数据的传递,可以看做是单任务系统,而协调器是整个网络的核心,不仅是采集数据的接收,而且还有进行视频采集以及以太网传送,所以是多任务系统。在协调器上的软件设计主要是围绕两个核心任务进行设计:一是声信号数据包的接收和传输,二是视频图像信号的采集以及传输。
图3 声信号调理电路
图4 协调器电路结构图
2.1 声信号的数据处理
无线传感网络中各个终端节点包含6个声信号采集通道,所有的6路数据都要通过无线传感网络传递到路由器上,假设各通道的数据是分散的传输,这样的话不仅效率低下而且容易出现数据混乱,所以在本系统中,6通道的数据统一封装成一个数据包然后进行传递。终端节点上各个通道循环采集的100次数据,数据保存在浮点型的数组里,然后对6个数组进行封装。用struct PID0_PACKET表示终端节点1采集的数据包。
在网络协调器上,S3C6410通过串口读入声信号数据包然后经过以太网传输到监控中心,但是串口的数据读入与以太网的数据发送是异步的,所以在设计中要设立一个缓冲区使得串口读入的数据与以太网发送的数据实现同步。在本系统中设计一个环形队列作为数据同步的缓冲区实现数据同步。如图5所示,建立两个互斥线程:写线程和读线程。写线程的工作过程是处理器经过串口从CC2530读入数据包后再写入到环形队列中,而读线程主要是把环形缓冲区的数据包读出并通过以太网传送。这两个线程是互斥线程,数据读写都要进行保护。
图5 数据同步示意图
2.2 视频的采集以及H.264编码
Video4linux2是linux内核中关于视频设备的内核驱动,它为linux中视频设备的访问提供了通用接口,也是下开发视频设备程序的接口标准。S3C6410处理器内部自带了高性能的视频编码器MFC[6],MFC支持视频H.263、MPEG-4以及H.264的编解码,在对采集的视频进行编码时,只需要调用MFC函数库的函数即可完成。本系统就是利用V4L2接口函数采集视频然后进行MFC的H.264编码,最后进行UDP传送。在S3C6410上的视频编码主要是调用编码函数库的函数,实现的主要步骤如下:
(1)采集的视频格式必须设置为 YUV420,codec_fmt.fmt.pix.pixelformat=V4L2_PIX_FMT_YU V420。打开视频设备open("/dev/video0",O_RDWR);开始采集视频ioctl(fd,VIDIOC_STREAMON,&buf_type);取出FIFO缓存中已经采样的帧缓存,ioctl(fd,VIDIOC_DQBUF,&buf)。帧缓存就是视频待处理的数据;
(2)视频编码初始化,SsbSipH264EncodeInit(width,height,frame_rate,bitrate,gop_num);其中,width、heigh表示视频的宽度和高度,frame_rate表示帧编码率,rame_size=(width* height* 3)>>1;
(3)在完成视频编码的初始化后,利用SsbSipH264EncodeGetInBuf(handle,0)函数可以得到视频编码去的函数地址,通过memcpy函数把视频帧填充到编码缓冲区然后执行编码,SsbSip H264 Enco deExe(handle)。编码完成后取出视频帧,SsbSipH264EncodeGetOutBuf(handle,size)。最后得到的帧就是编码得到的图像信息;
(4)完成所有的编码后,退出编码并调用SsbSipH264EncodeDeInit(handle)函数,停止视频的采集,ioc(fd,VIDIOC_STREAMOFF,&buf_type),并且关闭视频设备,close(fd)。
3 结束语
本文利用无线传感网络布置声信号采集节点采集声信号,然后利用嵌入式硬件平台采集声信号并进行数据融合进而辨别车辆信息。无线网络技术不仅很好的实现采集节点间的数据的传递,而且它扩大了车辆识别的区域范围。它的低功耗、价格低廉、布设简单等特点也决定了它在车辆识别领域可以发挥重要作用。数据融合技术应用到车辆识别中提高了识别的正确率。当前,实际的硬件系统设计已通过测试,后续研究的重点就是融合算法。
[1] 崔逊学,赵湛,王成.无线传感网网络的领域应用与设计技术[M].北京:国防工业出版社,2009:103-126.
[2] 李文仲,段朝玉.ZigBee无线网络技术入门与实战[M].北京:北京航空航天大学出版社,2007:23-45.
[3] 彭冬亮,文成林,薛安克.多传感信息多源信息融合理论及应用[M].北京:科学出版社,2010:20-41.
[4] 王维强,陈勇,闫琳.ADSP-218x在某嵌入式系统上的应用[J].现代电子技术,2007,29(6):73-77.
[5] 魏伟,胡玮,王永清.嵌入式硬件系统接口电路设计[M].北京:北京化学工业出版社,2010:165.
[6] 李岸,许雪梅,郭巧云,等.基于ARM11的视频实时传输系统[J].计算机系统应用,2010,19(11):15-18.