- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于TI TM320DM642的仿生眼视觉 像处理系统
近年来,国内外开展了大量对视频图像处理系统的研究,主要是针对一定范围内的静、动态场景进行监控或跟踪,并应用于智能车辆检测、视频监控、人脸识别、目标跟踪等方面。如文献[3]成功设计了一个基于视觉的低空跟踪系统;文献[4]成功设计一个基于视频图像处理的车辆流量实时检测系统。调查研究表明,国内外嵌入式机载视频图像处理系统的核心处理器多采用DSP、FPGA或者ARM来处理海量的图像数据。其主要采用的结构有单片高性能DSP、FPGA+DSP结构及ARM+FPGA+DSP结构等。文献[5]设计了一种单DSP的视频图像处理系统。文献[6]设计了一种FPGA+DSP结构的视频图像处理系统。文献[7]设计了一种基于DSP+FPGA+ARM体系结构的嵌入式实时图像处理系统。这些系统代表了目前嵌入式视频图像处理系统的基本类型和主要成果。随着数字信号处理器的高速发展,针对视频和图像解决方案而设计的高性能数字多媒体处理器TMS320DM642在实时视频处理领域得到了广泛应用。因此,根据仿生眼对图像处理性能的实际要求,可以采用基于单片高性能DSP结构的系统。
本文设计的仿生眼嵌入式机载视频图像处理系统采用TI公司的TMS320DM642高性能数字多媒体处理器作为核心处理器,系统实现了实时采集图像、实时处理图像、实时输出目标信息、实时显示等功能,具有针对性强、电路简单、集成度高、可靠性好等优点。此外,本系统实现了对经典Prewitt算法及其改进算法的验证。结果表明,该系统能够满足实时图像处理系统运算量大、数据传输率高以及实时性的要求。
1 系统整体结构与硬件设计
1.1 系统整体框架结构
系统以TM320DM642为核心,由4个部分组成:视频采集、图像处理、视频输出、串口通信。系统流程如图1所示。首先CCD摄像头采集的视频图像,经过视频解码芯片转化为便于DSP处理的视频码流;然后在DSP中设计合适的视频图像处理算法,分割、识别出运动目标,并计算出目标的位置参数;最后将位置参数通过串口发送给眼动控制模块。同时利用视频编码芯片编码DSP输出的视频码流,送到显示器实时显示,便于人机交互。
1.2 系统硬件设计
系统硬件设计分为6个模块:视频采集模块、图像处理模块、视频输出模块、串口通信模块、电源时钟模块、存储模块。其结构图如图2所示。
1.2.1 TMS320DM642图像处理模块
TMS320DM642是整个嵌入式系统的核心,它是TI公司推出的一款专用于数字媒体应用的高性能32 bit定点DSP,具有丰富的外设接口和高速的处理能力,是目前实时视频处理领域性价比较高的芯片[8]。DM642最高主频达600 MHz,并行处理指令最高可达每个指令周期处理8条32 bit指令,最大指令处理速度为4 800 MIPS。DM642的高性能主要体现在采用了二级缓存结构和64 bit的EDMA控制器,使其在没有CPU参与的情况下,进行数据搬移,大大提高了程序的运行效率[9]。因此,为提高系统实时性[10],采用EDMA传输是必要之举。此外,DM642具有丰富的外围接口,其3个可配置的视频口可以与视频编解码芯片进行无缝连接;片内64 bit的EMIF接口可以与SDRAM、FLASH 等存储器无缝连接;利用I2C还可以方便地控制外围器件等。
该模块的主要功能是将输入的BT.656格式的视频信号进行中值滤波、图像分割等预处理,然后通过目标识别算法计算目标位置参数,最后将结果通过串口模块实时地送给眼动控制模块,眼动控制模块再结合仿生控制率对眼球进行实时控制。由于系统采用EDMA传输,大大保证了图像传输的实时性。CPU的开销主要用于图像处理的识别算法上。
1.2.2 视频图像采集模块
视频图像采集模块由CCD摄像头XL-3130CP4和视频解码芯片TVP5150组成,用于实现视频数据的A/D转换。DM642具有3个视频口,每个视频口包括A、B 2个通道,每个通道均可配置为输入或输出口。本系统将VP0A配置成视频输入,VP1A配置成视频输出。CCD采集的视频信号采用PAL制式,即:分辨率为720×576,帧频为25帧/s。通过TVP5150视频解码器将其转换成数字色差信号(YUV4:2:2),输出格式为ITU-R BT.656,输入到VP0A口。DM642支持BT.656格式的视频数据流的输入格式,能与TVP5150的视频数据流无缝连接。视频编解码器与DSP的连接框图如图3所示。
TVP5150的配置是通过标准的I2C总线完成的。I2C标准总线由串行数据输入/输出线(SDA)和时钟输入/输出线(SCL)组成。TVP5150作为从设备,TMS320DM642作为I2C总线的主设备。主设备初始化TVP5150配置的写操作步骤如下:(1)DSP产生一个起始条件;(2)DSP发出一个TVP5150的地址(0xBA或0Xb8),并表明写操作,等待TVP5150响应;(3)接收到TVP5150的响应后,DSP发出要配置寄存器地址,等待TVP5150响应;(4)接收TVP5150的响应后,发送要配置的数据,等待TVP5150响应;(5)接收到TVP5150响应后,发送停止位,结束一次配置。
1.2.3 视频图像输出模块
视频输出模块由视频编码器SAA7121和显示器组成。SAA7121支持PAL/NTSC格式的视频编码,输入支持BT.656格式的数字视频,输出为一路复合视频(CVBS)和一路超级视频(S-Video)。SAA7121的配置也是通过标准的I2C总线完成的,并且只能作为从设备。显示器用于实时显示视频图像信息,便于人机交互。
1.2.4 串口通信模块
串口通信部分包括TL16C752B和MAX3160。采用TL16C752B作为通用异步收发器(UART),采用MAX3160将UART接口配置成RS232接口电平标准,用于为眼动控制器传递参数。该模块是视觉识别系统与眼动控制模块的接口,所传递的参数是目标偏离图像中心的位置信息,眼动控制系统根据这个参数实时调整眼球运动,确保目标位于图像中心。因此,该参数是整个眼球运动系统的前提。
1.2.5 外部存储模块
外部存储模块包括SDRAM和FLASH 2种。TMS320-DM642通过外部存储器接口EMIFA访问片外存储器。EMIFA是一个64 bit的接口,可以实现与多种同步和异步存储器的无缝连接。系统中,DM642的CE0子空间被作为64 bit的SDRAM接口,SDRAM选用HY57V283220T芯片,用于缓存待处理的图像数据;CE1子空间被配置为8 bit的FLASH接口,FLASH选用Am29LV033C芯片,用于存储DSP的固化程序和系统配置数据。 [p]
1.2.6 电源和时钟模块
本系统需要3种不同的供电电压,分别是+3.3 V(外部存储器、DSP的外部I/O、视频格式转换电路、通用异步收发器、时钟芯片)、+1.4 V(DSP的内核)、+1.8 V(视频格式转换电路)。采用TPS54310和TPS76718这2款电源芯片。本电源系统中,TPS54310输入电压为5 V,一路调节成3.3 V,另一路调节为1.4 V。TPS54310输出3.3 V电压经TPS76718固定输出1.8 V。
本系统共需要4种时钟频率:50 MHz送DSP锁相环电路(PLL),倍频到200 MHz作为DSP芯片的工作时钟;133 MHz送EMIFA接口,同步扩展外部SDRAM存储器;30.72 MHz送TL16C752B芯片,为通用异步串行接口通信提供时钟;14.318 18 MHz送TVP5150A芯片,作为视频格式转换电路的工作时钟。
2 系统软件功能设计
系统的软件功能设计包括:(1)系统引导;(2)初始化。主要包括DM642的初始化、EDMA数据传输、编解码芯片的初始化等。DM642的初始化包括片内外设的选择、EMIF初始化、I2C接口的初始化、视频口初始化;(3)实现视频数据的采集、数据搬移、图像处理、参数输出、实时显示等功能。系统软件实现框图如图4所示。
系统上电后,由DSP先从FLASH中加载程序,完成系统初始化及相关寄存器和外围器件的配置。由CCD摄像头采集的视频图像传送到TVP5150解码器,将视频模拟信号经过A/D转换成BT.656视频数据流,接着送入DM642视频口;然后视频口解码该视频数据流,得到YUV(4:2:2)格式的图像,并通过EDMA传输到SDRAM中存储。CPU通过访问SDRAM中的图像数据,根据图像处理算法对图像数据进行实时处理和计算。一方面将计算结果通过串口发送出去,另一方面将视频数据送到SAA7121编码器,实现D/A转换并实时显示。
3 图像处理算法的应用
3.1 经典Prewitt边缘检测算法
经典的Prewitt算子是利用像素点上下、左右邻点灰度差在边缘处达到极值检测边缘,去掉部分伪边缘,对噪声具有平滑作用。其原理是在图像空间利用2个方向模板与图像进行邻域卷积完成。这2个方向模板中一个是垂直梯度方向,检测水平边缘;另一个是水平梯度方向,检测垂直边缘,如图5所示。
Prewitt算法步骤:(1)分别将2个方向模板沿图像从一个像素移到另一个像素,并将像素的中心与图像中的某个像素位置重合;(2)将模板内的系数与其图像上相对应的像素值相乘,并将所有相乘的值相加;(3)将两个卷积的最大值赋给图像中对应模板中心位置的像素,作为该像素新的灰度值;(4)选取合适的阈值,若新像素灰度值大于等于所设阈值,则判断该像素点为图像边缘点。
3.2 改进的Prewitt边缘检测算法
经典的Prewitt边缘检测算法只检测水平和垂直2个方向的边缘,通常图像的边缘还有其他的方向。为了能够在不影响实时性的前提下将边缘提取得更精确,本文将Prewitt算子扩张到8个方向的边缘样板算子。这些样板算子由理想的边缘子图像构成,依次用边缘样板去检测图像,与被检测区域最为相似的样板给出最大值,用这个最大值作为输出值,并将此输出值与所设的阈值进行比较,大于阈值即为边缘点,这样就可以更精确地检测出边缘。8个方向的Prewitt边缘检测算子模板如图6所示。8算子样板对应的边缘方向如图7所示。
3.3 软件实现步骤
本文使用CCS2.2开发环境进行软件开发,采用C语言编程。CCS具有实时、多任务、可视化的软件开发特点。使用CCS提供的工具,可以方便地对DSP软件进行设计、编码、编译、调试、跟踪和实时性分析。系统程序的具体实现步骤为:
(1)初始化并配置资源库,包括片内外设的选取,DSP的片上支持库提供了一系列的C语言程序接口,可以设置或者控制外设;
(2)实现对EMIFA的初始化,CE0子空间被配置为64 bit的SDRAM空间,具体定位:0x80000000H-0x81FFF-
FFFH。CE1子空间被配置为8 bit Flash空间,具体定位:0x90000000H-0x9007FFFFH。
(3)对I2C总线进行初始化;
(4)TVP5150和SAA7121的初始化,选择I2C总线,并设置为相应的数据通路;
(5)初始化视频口Video Port1,设为视频输入;
(6)利用bt656_capture_start()函数采集一帧图像,并将其存入显示缓冲区;
(7)完成一帧图像的采集,使用DAT_copy()函数将图像数据送SDRAM暂存;
(8)对存储区数据进行算法处理;
(9)对处理的数据使用DAT_copy()函数,送显存进行显示。
3.4 实验结果
采用系统在线编程技术,对系统的性能进行测试。为了减少运算量,算法只对图像的中心部分进行2种算法处理。CCD采集的PAL制式的图像,对图像中心的80×100的区域进行计算。其结果表明:改进的算法比传统的算法能提取更多的边缘细节,对目标识别更有利。在实时性上,传统算法处理时间为0.02 s,而改进算法的处理时间为0.1 s。因此,该算法具有准实时性,基本能够达到仿生眼球对图像识别的要求。
系统CPU的开销主要耗费在算法处理上,因此,未来的工作可以针对算法进行不断改进,以提高系统的实时性。
本文成功设计了一个以TMS320DM642为核心的嵌入式视觉图像处理系统,并创新地将其作为仿生眼球的视觉部分嵌入到眼球结构中。系统具有处理速度快、接口简单、集成度高、电路稳定、体积小等优点。在此系统上实现了对经典的2模板Prewitt算法与改进的8模板算法的边缘检测。结果表明,改进的算法具有精确度高、检测效果好等优点,为视觉识别提供了算法基础。
射频工程师养成培训教程套装,助您快速成为一名优秀射频工程师...
天线设计工程师培训课程套装,资深专家授课,让天线设计不再难...
上一篇:高速异步FIFO的设计与实现
下一篇:高取光率低热阻功率型LED封装技术