发展概述
对于传统的冯.诺依曼结构的计算机,是属于标准串行机,大部分工作是在存储器和ALU之间交换数据,而数据的流动速率限制了计算机的速度,这也就是通常所说的瓶颈效应,它很难完成实时高速的图像处理工作。
随着PCI总线的出现,这个问题得到了一定的解决,有人把数据传输的时间压缩在13ms,剩下的27ms用来处理算法,但是,现在随着处理的复杂性加大,算法也越来越复杂,这种处理是准实时的。因此,多处理器系统、并行处理结构计算机成为发展的必然趋势。
并行处理是利用计算过程中的并发性事件进行有效的信息处理,并发性含有并行性、同时性和流水线三种含义。并行时间可在同一时间间隔内在多重资源中发生,同时性事件是在同一瞬间发生,而流水线事件可在重叠的时间段发生。这些并发性事件可以在计算机系统的各处理级获得。最高级并行处理是通过多道、分时和多处理来实施多作业或多程序,该级需要研究并行处理的算法.,通过并行算法把有限的软硬件资源有效的配置给求解大的计算问题的多个程序;次高级并行处理是实施同一程序内部的过程和任务,这涉及把一个程序分解为多个任务;第三级是利用多条指令的并发性,通过指令的并发性达到快速的并发作业。
并行处理不仅在计算机中得到应用,其处理思想也贯彻到硬件电路的各个方面。数字图像处理系统在硬件结构方面也发生了重大变化,即已由基本的串行结构发展成并行处理结构,由单处理器发展成多处理器系统,或带阵列处理器的高速处理系统。随着并行结构理论、并行算法和语言、VLSI技术及CAD工具的发展,并行处理器阵列现已被广泛应用于通信、生物医学、工业检测和军事等各个方面,也成为满足实时图像处理超高强度运算能力要求的一个有效途径。
图像处理技术、压缩编码技术的不断发展和完善,以及VLSI技术的迅猛发展使得用硬件电路实现实时图像处理成为可能。随着综合业务数字网(ISDN)的不断推广以及多媒体技术的兴起,图像实时处理在各个领域得到了广泛的应用。近年来不断涌现的各种高性能的专用芯片,数字信号处理器(DSP)以及超大规模可编程逻辑器件(FPGA/ASIC),使现代实时图像处理系统的设计和以往相比已不可同日而语。过去的一个机箱,甚至一个机柜的信号处理系统,现在完全可以集成在单个芯片上。可编程逻辑器件的出现,使得硬件设计人员可根据应用系统需要,通过软件设计编程来实现大规模数字逻辑控制电路。1
技术技术要求图像处理系统接收的图像数据由两部线阵ccD摄像机周视扫描实时获得。一部为有激光照射的前景摄像机,获得前景图像;另一部为无激光照射的背景摄像机,获得背景图像。前景图像数据接口和背景图像数据接口均包括8bit图像灰度数据、时钟信号、列同步信号以及列结尾信号。接口电平特性符合RS644(LVDS)接口电平要求。线阵CCD摄像机按列扫描,每列像素点为512个,这里约定400列为一幅图像,认为一幅图像为512 X 400像素的灰度图像。实时图像处理系统以每秒钟80幅图像的速度接收图像数据,之后,进行相关图像处理,并将相关处理结果实时上报至上位机。
实时图像处理系统的主要技术要求有:
(1)实时性要求,且图像处理系统必须具有多目标处理能力。为满足实时性要求,每幅图像的处理(包括图像数据传输、算法运算、上位机命令解析与通信等)耗时不能超过12.5ms。
(2)嵌入性要求,实时图像处理系统为典型的定制嵌入式系统,在结构尺寸、输入输出接口、功耗上均有严格限制:图像数据输入接口定义、通过以太网与上位机进行通信;系统220V交流输入供电,整机功耗在25W以下。
(3)适应性要求,图像处理系统需要完成高温、低温、湿热、冲击、振动等环境适应性试验。2
应用和需求实现图像处理技术的应用是多方面的,可以说,凡是在图像处理技术应用的地方都可以应用实时图像处理技术,原因在于实时图像处理技术可以提高图像处理的速度。但是,这要付出一定的代价,这种代价包括设备上和开发上的代价。在可用、不可用的地方,代价问题会成为考虑的重点,而在必须应用的地方,考虑的重点则是实时图像处理系统的性能及可行性。从应用图像处理技术的紧迫性来看,其应用领域主要集中在消费类产品、军事、工业自动化以及公安的形式侦察上,在这些领域强有力的推动下,实时图像处理技术得到了迅速的发展。对图像处理系统和并行图像处理技术最前沿技术得跟踪和掌握,及针对图像处理系统的走势,无疑高速率、高质量的实时图像显示画面将代表着未来十几年,甚至几十年的图像处理系统的发展方向。
图像并行处理技术是图像处理中的一个重要方面,是提高图像处理速度的最有效技术,其发展水平一直受到图像界的关注,原因在于:一方面,图像并行处理技术的发展难度很大,这种难度不仅在于图像并行处理系统的硬件及系统结构本身,以及它对计算机技术和集成电路等技术的依赖关系,而且在于实际应用的复杂性和应用部门对系统价格的承受能力;另一方面,图像并行处理技术的发展所产生的效益也是十分显著的,它在处理速度上所获得的加速比是令人振奋的,其实际应用系统也将产生很大的经济效益和社会效益。3
FPGA与实时图像处理实时图像处理系统是指定时采集图像、分析图像以获得数据,并用这些数据来控制一些行为的系统。所有的处理必须发生在事先定义的时间内(通常是图像采集速率)。也就是说,整个图像处理算法的执行必须在有限的时间内完成,这就意味着某些操作级的算法将被排除在实时处理之外。例如基于迭代或递归算法的操作,必须在事先确定的重复操作次数后可以得到满意的收敛的情况下才能够使用。
实时图像处理系统的例子有很多,在机器视觉中,通常用图像处理算法来实现路径规划和过程控制,在这些场合,时间点是非常重要的。自主车辆控制需要利用视觉或其他形式的传感器使车辆实现动态环境下的导航或避障。在视频传输系统中,图像的连续帧必须以正确的顺序传输和显示并且使跳动最小化,以避免在最终的视频图像上出现质量损失。在图像采集和显示的应用系统中,时间限制的数量级为几十纳秒,因此需要采用硬件完成。
FPGA通过为每个功能建立单独的硬件来实现整个系统所需要的逻辑,具有硬件并行处理的特点,一方面具有较高的运行速度,另一方面又具有软件可重新编程的灵活性。以大量像素表达为主的低级图像处理阶段可以充分利用图像处理操作所固有的并行性,通过使用并行硬件代替顺序循环操作,对诸多图像处理算法进行加速。
当图像数据从摄像头或显示器上以数据流的形式串行通过单一的功能模块时,可以很方便地映射为硬件实现,如果所有的操作都可以使用流处理,那么整个算法便能够以高效的流水线的方式来实现。综上所述,FPGA在实时图像处理中具有得天独厚的优势。
系统设计本系统由实时图像采集模块、帧缓存模块(处理前)、实时图像处理模块、帧缓存模块(处理后)、实时图像显示模块以及调试接口模块组成。处理流程如下:FPGA上电配置后,利用FPGA通信模块对CMOS摄像头进行功能配置,并通过图像捕获模块获取实时的数字图像数据流,缓存到帧缓存模块(处理前);FPGA实时图像处理模块读取帧缓存模块(处理前)中的图像数据流并进行处理,处理完后存储到帧缓存模块(处理后);FPGA实时图像显示模块从帧缓存模块(处理后)中读取图像数据,送到视频DA转换模块输出模拟信号,并根据VGA协议送出相应的行同步和场同步信号,实现实时图像处理后的显示。
系统主要结构如图所示。
系统采用两个帧缓存模块,利用实时图像处理接口将实时图像处理功能与前端采集模块、终端显示模块隔离开,并且每个帧缓存模块只采用一块帧缓存,并没有采用大家普遍使用的两块帧缓存进行乒乓操作来提高效率并保证图像的完整性。本系统能够使用一块帧缓存同时进行读写处理是基于实时图像两幅连续的图像之间差异很小的特点,由于图像连续高速刷新,所以人眼几乎察觉不到不完整的画面,实验证明确实如此。这样设计带来的好处是结构更为简单,帧缓存模块的读写端不需要采用握手信号,图像处理模块的处理速率也不对采集端和显示端的速率产生依赖,减少了图像处理模块与其他模块的祸合性,使得本系统更具有通用性的特点。4