更新时间:2024-07-02 13:02
实时图像采集是利用现代化技术进行实时图像信息获取的手段,在现代多媒体技术中占有重要的地位。在日常生活中、生物医学领域、航空航天等领域都有着广泛的应用。图像采集的速度、质量直接影响到产品的整体效果。
图像信息是人类获取的最重要的信息之一,图像采集在数字图像处理、图像识别等领域应用十分广泛。实时图像的采集和处理在现代多媒体技术中占有重要的地位。日常生活中所见到的数码相机、可视电话、多媒体IP电话和电话会议等产品,实时图像采集是其中的核心技术。图像采集的速度、质量直接影响到产品的整体效果。
目前,传统的图像采集是采用图像采集卡或视霸卡将 CCD(Charge Coupled Device,电荷耦合器件)摄像机的模拟视频信号经 A/D 后存储,然后送计算机进行处理。这种方法使用较普遍,技术比较成熟,但是也存在一些问题。首先,CCD 摄像机的输出已转换为模拟的 NTSC 或 PAL 制式,并以SVideo 或混合视频信号方式输出,这样采集卡的采样点在输出时序上很难与摄像机的象素点一一对应,造成数字化后的视频图像质量损失较大,图像分辨率也受到限制。其次,这种方法的硬件电路复杂、成本较高,不利于推广和普及使用。
常用的图像传感器主要有 CCD 和CMOS(互补金属氧化物半导体)两种。目前市场上,CCD 仍占据主要地位,而随着 CMOS 技术的发展,CMOS传感器也得到了广泛的应用。 CCD 的优点是灵敏度高、象素小、读取噪音低、动态范围大,因此在固体成像领域占据主要地位。它的缺点是不能将图像传感阵列和控制电路集成在同一芯片内,还需要外加脉冲驱动电路,信号放大,A/D 转换等辅助电路,造成系统结构复杂,成本较高;而 CMOS 传感器则具有较小的几何尺寸,分辨率也逐渐接近 CCD 的水平,最重要的是 CMOS 传感器的制造技术与 CMOS工艺兼容,每个象素传感单元都有自己的缓冲放大器,可以非常方便的将 AD转换器等辅助电路集成到芯片内部,其外围电路简单,功耗低,编程也很方便,很容易实现对帧频、曝光时间、图像尺寸等的控制,为视频图像采集提供了一种低成本高品质的解决方式。
在高速图像采集和处理过程中,往往需要在片外使用随机存储器。常用的随机存储器主要有动态存储器 DRAM 和静态存储器 SRAM 两种。目前业界主流的SRAM 的存储单元一般都是采用六晶体管的结构,而 DRAM 的存储单元则一般是采用单晶体管加上一个无源的电容构成。由此,两者的优点和缺点都比较明显。SRAM 的访问时间短,总线利用率高,静态功耗相对较低,但是占用硅片的面积较大,容量小,价格较贵。它适用于存储容量不大,性能要求较高的领域。而DRAM 的读写访问过程比较复杂,访问时间较长,总线利用率相对较低,而且由于电容器会不断的漏电,需要周期性的去刷新,所以静态功耗较大。其优点是存储容量可以做的很大,价格便宜。
对图像传感器的采样控制,可以使用单片机、CPLD 或 FPGA等。在设计中,既要控制图像传感器采样,还有对 SRAM 的控制,图像采集完成后,还有后续的滤波处理模块。单独使用单片机或 CPLD 都不能独立完成这样的功能。可以使用单片机或 CPLD 实现控制功能,后续滤波模块使用 FPGA;也可以整体使用一个 FPGA 芯片完成所有功能,这样做将使外围电路设计最为简单。
目前,随着 VLSI 技术的发展,越来越多的算法可以用硬件来实现。同时,由于生产线的专业化,在同一环境下生成或传输的图像,其受污染的噪声类型有相似性和稳定性,这也使专用集成电路有很大的实用性。但是,由于图像处理算法的复杂性、多样性,一个系统只能采用一种结构,因而限制了其应用范围。这是目前报道的图像处理系统的共同特点。
针对图像预处理阶段运算结构的特点,FPGA 芯片是目标硬件的理想选择之一。采用 FPGA 芯片,只需少数芯片和简单的外围电路,即可实现比较复杂的图像预处理算法,而且只要改变 FPGA 芯片内部参数值就可以实现对不同尺寸、不同灰度级图像的处理,具有一定的灵活性。目前,FPGA 已在图像处理中得到广泛的应用。
如图1所示为FPGA设计流程。
图2所示将针对利用FPGA实现的实时图像采集系统做一简单介绍。
在本设计中,在满足设计要求,最主要的是图像分辨率和采样速率的要求下,为了简化电路结构,采用 CMOS 图像传感器。具体选用美国 Omni Vision 公司生产的 130 万象素的 CMOS 图像传感器 OV9121。
本设计的图像采集部分,包括 OV9121 初始化模块、采样控制模块和 SRAM控制模块。初始化模块主要是根据设计要求,设定 OV9121的工作模式;采样控制模块负责提供 OV9121 采集图像需要的控制信号;SRAM 控制模块主要负责缓存OV9121 输出的图像数据,并将图像数据送 FPGA 滤波模块处理,本模块使用了两片相同规格的 SRAM。
根据设计要求,通过改变OV9121内部寄存器的值,使OV9121工作在设定好的模式,包括工作模式、图像的分辨率、象素输出频率和帧频等参数。
在实际设计中,有两种方法可以得到需要的控制信号。一是采用锁相环。在很多设计中,往往需要多个频率和相位的时钟,于是各家 FPGA 厂商便在其 FPGA 内部设计了一些时钟管理元件,锁相环是其中一个有代表性的电路[35]。Altera 公司的许多系列的 FPGA 内都有锁相环,在开发环境 Quartus II 里对锁相环的参数作出修改,可以改变初始时钟信号的分频系数或倍频倍数,并可调整时钟相位。第二种方法是自己编写分频程序。
本设计采用两片相同规格的 SRAM,在同一时间,只有一片 SRAM 接收图像数据,也只有一片 SRAM 向 FPGA 输出数据。SRAM 工作程序如下:首先 SRAM1 写使能,OV9121 向 SRAM1 写图像数据,当向其写完一帧图像后,SRAM2 写使能,OV9121 开始向 SRAM2 写下一帧图像,同时,SRAM1 写禁止,读使能,FPGA 开始读取 SRAM1 中的图像数据。然后,SRAM1 写使能,开始向 SRAM1 写图像数据,同时 SRAM2 读使能,从 SRAM2 读数据,依次交替进行。这样做,可以使 OV9121 输出的图像数据连续地存储在片外存储器中,同时,FPGA 也可以连续地从片外存储器中读取数据。同时,在同一时间,一个芯片只有读或只有写操作,可以避免对一个芯片同一地址的读写冲突。
实时图像采集有着广泛的应用。在日常生活中,常用于数码相机、可视电话、多媒体 IP 电话和电话会议等产品;在工业生产中,图像采集卡可用于材料分析、锅炉火焰监测等;在生物医学领域,图像采集卡可以用于B超、CT、病理分析等;在金融领域,图像采集卡可以用于票证处理,柜员机自动检测等;在航空航天领域,可以用于各种运动目标的自动制导、运动物体的经纬度测定以及夜间侦察等。