摘 要:介绍了基于浮点DSP处理器与双CMOS摄像头的数字图像采集处理系统,探讨了系统的基本原理和设计方法,并给出了系统的实现方案。在该系统中,数据采集由两个相互独立的CMOS摄像头完成,并由DSP进行图像处理,FPGA协同DSP完成时序逻辑控制和组合逻辑控制。处理后的图像可以通过1394接口输出。该系统主要由FPGA和DSP实现,设计灵活,具有很强的重构性。
关键词:图像 图像处理 DSP FPGA IEEE1394
传统的数字图像处理通常采用图像采集卡,将模拟电视信号转换成数字信号,然后由PC机进行软处理。这样不仅不够灵活,处理能力也受到PC机和软件的限制。随着CMOS成像芯片工艺的改进和数字信号处理器功能的提升,使得数据量与计算量较大的图像硬处理成为可能。本文详细介绍了通过两路CMOS摄像头采集图像,以浮点DSP为核心处理器,采用60万门FPGA实现逻辑控制的数字图像采集处理系统的设计原理和实现方法。本系统所采用的芯片与器件,在保证性能的同时,兼顾低功耗,整个系统可以由1394线缆供电。
1 原理概述
整个系统的原理框图如图1所示。系统上电后,FPGA配置子板把配置文件加载到FPGA中。DSP由外部 FLASH引导,通过FPGA先设置1394接口芯片的内部寄存器,再通过I2C总线设置摄像头1、2的控制寄存器。FPGA提供摄像头的工作时序和图像序列的读写时序。云台在DSP的控制下可以上下左右调整,捕捉感兴趣的目标。8片1MB的SRAM作为两路摄像头的数据存储器,16MB的SDRAM则充当DSP的外部数据缓冲。处理后的图像既可以直接输出至LCD进行显示,也可以通过1394总线传送至PC机。
图1 数字图像采集处理系统原理框图
2系统设计
整个系统由三部分构成:图像采集模块、图像处理模块和图像传输模块。
2.1 图像采集模块
该模块主要由两组CMOS摄像头和云台组成。该模块的接口信号见图2。
图2 图像采集模块连接图
摄像头采用韩国现代的HV7131R和五层玻璃透镜。HV7131R采用0.3μm的CMOS工艺,有效像素30万,功耗低于90mW,具有曝光控制、增益控制和白平衡处理等功能,最大帧率30fps@VGA。通过标准的I2C接口设置HV7131R的内部寄存器,可以调节图像的曝光时间、分辨率、帧率、RGB增益、镜像等。HV7131R输出10位的RGB原始数据,本系统采用了其中的高8位。多层玻璃透镜可以滤除波长大于630nm的红外线,并采用超焦距对焦方式,最小成像距离为3cm。
摄像头借助云台跟踪运动目标,水平旋转范围为-180%26;#176;~180%26;#176;;垂直旋转范围为-45%26;#176;~45%26;#176;。
考虑到运动图像处理至少需要3帧的序列图像,每组摄像头配备了4片RAM。3片做数据采集缓冲,1片存储DSP处理后的结果。
2.2 图像处理模块
该模块由DSP、FPGA和数据缓存器组成。
2.2.1 主要器件的选型
DSP主要完成的功能有:
(1)加电自举,初始化1394接口芯片;
(2)通过I2C接口设置摄像头的寄存器;
(3)对图像进行预处理,提高成像质量;
(4)控制云台的转动,实现运动目标的跟踪。
FPGA在本系统中的作用有:
(1)提供图像采集、存储与传输的工作时序;
(2)协同DSP实现复杂的组合逻辑控制电路;
(3)实现标准的VGA接口,外接LCD显示器。
基于以上要求,本系统采用TI公司的32位浮点DSP TMS320C6711B。6711B采用改进的哈佛总线结构,主频为150MHz,内部集成硬件乘法器和累加器,采用流水线VelociTITM甚长指令字(VLIW)指令,具有丰富的片上外设,并有专门针对数字信号处理的指令系统,运算能力可达1200MFLOPS,适用于计算量大、实时性高的数字图像处理领域。FPGA 则采用Altera公司Apex系列的EP20K600EBC652。EP20K600EBC652具有高速度(622MHz的数据速率)、高密度(有效逻辑60万门)、低噪声和低功耗的特点。有4个PLL、480个低电压差分信号(LVDS)的I/O口,工作电压为2.5V和1.8V。
2.2.2 图像的预处理
运动目标检测与跟踪、目标的识别与提取等基于图像内容的处理,对图像质量要求较高。影响成像质量的两个重要因素为曝光和白平衡:人眼对外部环境的明暗变化非常敏感,在强光环境下,瞳孔缩小,使得景物不那么刺眼;而光线较弱时,瞳孔扩大,使景物尽可能地变清楚。这在成像中,称为曝光。当外界光线较弱时,CMOS成像芯片工作电流较小,所成图像偏暗,这时要适当增加曝光时间进行背光补偿;光线充足或较强时,要适当减少曝光时间,防止曝光过度,图像发白。改善成像质量,仅靠调节曝光时间是不够的。因为物体颜色会随照射光线的颜色发生改变,在不同的光线场合图像有不同的色温。这就是白平衡问题。传统光学相机或摄像机通过给镜头加滤镜消除图像的偏色现象。对于CMOS成像芯片,可以通过调整RGB三基色的电子增益解决白平衡问题。
本系统的自动曝光控制和白平衡处理实现方法如下:
采集一帧RGB原始图像,在6711B中先计算出整幅图像亮度的均值m(Y);然后对图像做直方图均衡化,再计算出此时图像的亮度均值并作为一个阈值Yt。将m(Y)与Yt进行比较,如果m(Y) < Yt,则调大HV7131R的INT(Integration Time)寄存器的值以增加曝光时间;反之,减小曝光时间。白平衡的调节与此相似,根据原始图像与均衡化后的Cr和Cb的均值,通过HV7131R的RCG(Red Color Gain)、BCG(Blue Color Gain)调节红色、蓝色通道的增益。YCrCb和RGB的转换关系式为:
Y=0.59G+0.31R+0.11B
Cr=0.713%26;#215;(R-Y)
Cb=0.564%26;#215;(B-Y)
其中,Y是亮度分量,Cr和Cb则是色差分量。
HV7131R的曝光时间范围为0~(224-1)个像素时钟周期,即0~1.34s@12.5MHz;增益范围一般为30~63。试验结果表明,经过5~10次的迭代就能取得较为理想的效果。上述过程示意图以及成像效果如图3和图4所示。
图3 曝光控制和白平衡处理
图4 成像效果
2.3 图像传输模块
本系统图像传输模块采用IEEE1394高速串行总线。1394总线支持点对点通信、即插即用和热插拔,有等时和异步两种传输模式,速率高达400Mbps,最大有效距离为4.5m。1394线缆可以提供8V~40V的DC电压以及最高可达1.5A的电流,完全满足整个系统的供电需求。该模块主要包括链路层和物理层两个控制器。
2.3.1链路层控制器(LLC)
TSB12LV32具有2KB的通用接收FIFO(GRF)与2KB的通用发送FIFO(ATF),支持异步传输与等时传输。微控制器接口支持8/16位的数据宽度,工作时钟最高达60MHz。TSB12LV32提供DMA方式,待发送数据边读取边传送,传输效率较高。
2.3.2 物理层控制器(PLC)
TSB41AB3提供三个1394端口,3.3V单独供电,符合1394a标准,支持等时传输和异步传输,支持100/200/400Mbps的传输速率,可以与TSB12LV21、TSB12LV31、TSB12LV32、TSB12LV41或TSB12LV01A等链路层控制器实现无缝连接,具有较高的通信速率与可靠性。
本系统为了便于调试,PC机被设定为根节点控制器,应用程序和硬件通过驱动程序进行交互。Win32应用程序通过设备驱动程序、总线驱动程序、端口驱动程序与1394设备进行通信,如图5所示。
图5 主机与1394设备之间的通信
其中,1394总线驱动程序和端口驱动程序处理所有繁琐的底层通信,只需提供设备驱动程序。LLC和PLC的内部寄存器通过6711B设置,设备的发现与识别、驱动程序的安装、1394总线的初始化等也需要6711B的控制和响应。
本系统图像的最大数据量为640%26;#215;480%26;#215;30%26;#215;2=18.4Mbps,1394a最高支持400Mbps的传输速率,图像实时传输不需要经过压缩。实际传输过程中,为确保每帧图像的完整,采用异步传输模式,图像序列之间加入了帧同步信号,使带宽利用率有所下降,最终的实测速率为20fps@640%26;#215;480。该系统采用32位浮点DSP和大容量、多I/O口的高速FPGA,数据处理能力强,电路设计灵活,为今后运动目标检测与跟踪算法的研究提供了软硬件支持。
引用地址:基于DSP与双目CMOS摄像头的数字图像处理系统