8-2 实时、高速的图像处理和系统设计
对于图像处理来说,除了要完成视觉系统所要求的处理结果,最基本的设计因素就是快。“实时”和“高速”是图像处理经常用到的两个词,而且经常互换。
8-2-1高速处理
很多图像处理产品和系统自称为高速,其实并没有一个通用意义上的“高速”定义。所以有两个问题需要回答:一个是速度是如何测量的;另一个是确定系统为高速的准则是什么。
一种测试方法是物体到达指定位置而产生的触发脉冲和图像处理后获得的结果输出之间的时间。这个时间主要取决于图像的大小和处理的复杂性,作为一个基准,小于10ms已经是很快了。
另一种测试的方法是系统能够接受的输入图像的速率,即能安全接收两幅图像之间的间隔。即使是在系统处理的时间比两幅相邻的可接受输入图像之间的时间还要长,也可认为该系统是高速的。通常的设计方法是采用多个缓存,并将多个处理器级联起来,这样它就可以高速地接受图像,而从接收一幅图像到获得处理结果的时间可以大于两幅相邻的输入图像之间的时间,见图8-6。对于这样的系统,其速度的限制是处理源的数量。使用为这一目的而特别设计的器件,就可以实现每秒几百幅图像的持续处理能力。
确定一个系统是否高速是相对而言的。如果一个视觉系统在高速的环境中使用,而视觉系统又能跟上大环境的要求,那么联系起来,该图像处理是高速的。
如果一个系统的处理速度比其它类似的系统快,那么,相比较而言,也可称其为高速的。
8-2-2实时处理
实时系统的基本要求不光是它的速度有多快,而是它的实时性,要求它按需按时提供处理结果。在一个生产线上,所获得的处理结果太迟或者太早都可能形成误动作,而产生错误。例如在生产线上,一个次品被视觉系统检测出来,需要在正确的位置用拨杆将它剔除,拨杆动作太晚或者太早,都可能将此次品漏过,而流入正品箱内。所以视觉系统的处理时间,又称为延时应该尽可能是确定的,它的变化应尽可能小,才能在生产线上可靠地工作。
8-2-3视觉系统的延时
延时就是一个操作的开始和结束之间的时间。对于一个机器视觉系统来说,延时就是从触发脉冲开始启动摄像头曝光,直至获得了处理结果之间的时间。视觉系统的延时是系统中各部件的延时之和。现在我们来看看一个典型的机器视觉系统的延时会出现在哪些地方:
l 物体到达指定位置和触发信号产生之间的时间;
l 触发脉冲和摄像头开始曝光之间的延时;
l 摄像头的曝光时间,以及在CCD摄像头的情况下,将被曝光的图像传送到电荷移位寄存器的时间;
l 将图像从摄像头传送至图像卡缓存的时间;
l 将图像从图像卡缓存传送至计算机内存的时间;
l 图像到达计算机到开始图像处理的时间;
l 图像处理时间;
l 图像处理完成到合适的输出信号产生的时间。
实际的系统可能没有上述所有的延时;当然还可能有一些上述未列出的延时。为了叙述方便,假设取曝光时间为10ms,通过图像卡将摄像头的数据传送到CPU内存的时间为20ms,图像处理时间为15ms,那么简单的时序图如图8-7所示,系统的总延时为45ms。如果45ms是不可接受的延时,设计者还是有机会挑选一些部件来构成系统,获得更高速的运算。如果增加光照强度,同时选择更灵敏的CCD就可以缩短曝光时间;具有多数据输出的数字摄像头以及与之相配合的图像卡就可以缩短图像的传送时间;仔细选择处理速度高的处理器,甚至使用多个处理器,并有合理的系统结构,就可以缩短图像处理时间。
上述系统的一些动作是可以并行进行的,所以不必等待45ms,就可以接受新的外触发脉冲。不对硬件系统作任何改变,将CCD的曝光时间与处理时间重叠,就可以提前到图像处理结束之前10ms接受下一个新的外触发脉冲,见图8-8。系统的延时仍为45ms,但相邻两幅图像的接收时间缩短至35ms。在图8-8的系统中,进一步缩短时间的通用技术是使用图像缓存,使用多个缓存有可能更进一步增加图像输入的速度。但是,这个技术不会减少延时,只有选择高速处理的硬件和软件,并精心设计系统才能减少延时。
8-2-4系统延时的确定性
如果一个系统的延时可以预先按可接受的精度计算出来,那这个系统被称作延时可确定系统。上述图8-7和图8-8所述的系统都是可确定的。
在实际世界中,不是所有的元件、硬件或软件的延时都是可以确定的。例如异步可重置CCD对外触发响应的不确定时间为正负一个行周期,约为±30μs,也可能为正负一个像元的周期,短至±50ns;CCIR的CCTV摄像头延时为±20ms。
专用数据线通常都是确定的,但是像计算机总线这类专用线路,由于要和其它活动共享,或者因噪音破坏了数据,引起系统重新发送等原因,而使之变成了延时的不可确定因素。
对于完全专用于某一任务的处理器的延时是可确定的,但如果它是多任务的,或者要接受异步中断,它的延时确定性就难以保证了。
有一些图像算法,例如上节所述的基于点、区域、全图的运算,多为确定的;但是像图像分割、特征抽出这一类基于目标的算法,因目标大小和内容是不一样的,所以其操作时间也是变化不确定的。
8-2-4-1硬实时系统
有一些生产系统对时间是非常敏感的,决不能容忍不按时完成它的任务。这些系统有非常陡峭的截止值,见图8-9,图中横坐标为延迟时间,纵坐标表示系统对延时的适应性,1:完全适应,0:不适应,并会出现严重失误。图8-9(a)表示当延时小于T1时,系统工作正常,但当延时大于T1后,会引来整个生产线的严重失误。
有一些系统会有上下两个延时限制,见图8-9(b),这种情况就如在第8-2-2节所述的传送皮带上出现次品,用拨杆剔除时的情况。
8-2-4-2软实时系统
图8-10表示软实时系统的函数图,如果在一个生产系统中,机器视觉在大部分时间是按时的,但因视觉系统延时的不确定性,偶然会不能按时完成检测,但平均起来延时还是可容忍的,不会引起生产线的失误,甚至不会影响生产线的平均速度;但是,如果随着延时次数和延时时间的增加,平均时间超过标称值,或者有的产品延时过大,超过允许值,整个生产线会逐渐地引起失误,增加了失误的可能性,这样的系统称为软实时系统。
8-2-5视觉系统设计的要点
机器视觉的设计工程师要做大量的重要决策。其中最关键的是:如何简化输入图像中的内容;使用什么处理硬件、操作系统和编程语言;如何使用时间邮戳来恢复操作的延时确定性等等。本节将就上述关键之点逐一加以讨论。
8-2-5-1简化图像
图像内容的复杂性和质量不会影响到图像获取的时间,然而却会大大影响图像处理的时间,甚至处理结果。例如,如果图像内有较大噪音,就可能需要低通滤波去除它,这就会增加处理时间,而为了减少处理时间就可能选择昂贵的专用处理器 ,甚至更多的处理器。如果输入图像中的目标数量和特征数量随着不同输入而变化,那么,分割目标、抽取每一个目标的特征、在特征的基础上作出分析和识别的决策都可能变化。这些图像处理时间的变化因素都会影响到延时的确定性。
简化图像就是要限制图像中的内容。虽然这不总是图像处理系统设计工程师能控制的范畴,但是保证图像的目标和背景无噪音并均匀一致,以及限制在视场范围内目标的数量是简化图像的两个最基本因素。
图像的照明、光学镜头和摄像头是图像质量的关键,例如我们在第1章讨论过,好的光源结构和照明方式会大大突出目标和背景的差异,从而大大简化了二值化的阈值算法,提高了二值化的质量,降低了图像处理的延时。
8-2-5-2处理硬件
有很多图像处理硬件可供选择:
l 硬件式查找表(LUT),大多数高档的摄像头或图像卡内已具备;
l Field-Programming Gate Array(FPGA)和Application-Specific Integrated Circuit(ASIC),它们可以是智能摄像头(smart camera)、图像卡、或者嵌入式处理卡中的一个部件;
l 数字信号处理器(DSP),可以驻留在智能摄像头内、图像卡内或者作为一块嵌入式板插入主计算机内;
l 通用处理器(GP),例如英特尔的奔腾、摩托罗拉的Power PC。它们都可以是个人计算机或嵌入式计算机的一个部件。
l 在机器视觉系统中使用上述大于一个部件的系统是很通常的,甚至多个同一部件使用在一个系统中,例如几个GP处理器。这时设计者就会碰到一个问题,如何去组织它们。有四种基本的组织结构方式:
l SISD(Single Instruction,Single Date),单指令单数据结构。这就是说,在一个时间段内只有一个处理部件,执行一条指令,对一个图像数据,例如一个像元作处理。在一个简单的图像处理系统中是常有的形式。
l MISD(Multiple Instruction,Single Data),多指令单数据结构。在这种结构中,一个数据,例如一个像元,甚至一幅图像,并行地由几个不同的指令对它进行处理。它的典型结构是pipeline式多处理,是高速图像处理系统中常用的结构。
l SIMD(Single Instruction,Multiple Data),单指令多数据结构。这种结构不管是在图像处理,还是其它系统中都是常用的,多个处理器使用同一条指令处理不同的数据。最熟知的例子是在奔腾Ⅲ以上的处理器中的MMX指令集,使用MMX可以同时对8个数据,例如8个像元,作为一个64bits字同时处理。
l MIMD(Multiple Instruction,Mlultiple Data)多指令多数据结构。这种结构也是通用的,一个典型的例子是多个处理器串行连接,每一处理器作一种处理,并将结果传送至串行连接中的下一个处理器。另外一种安排是在运行同一软件时,使用由多个同一种处理器构成的阵列处理器,输入图像无论经由哪一个处理器处理都可以获得实时而正确的结果。
l 这四种结构仅仅是原则性的,应根据图像处理的具体过程和对延时的要求来灵活地构造系统。
8-2-5-3软件
实时或高速图像处理系统的设计工程师需要特别关注软件,因为软件会严重影响系统的功能,硬件也会大大影响软件的选择。设计者面对的决策包括:
l 使用什么操作系统,如何使它的操作最佳化;
l 使用什么图像处理软件包;
l 使用什么算法,事先计算运行时间,估算和测试它的延时的确定性;
l 使用什么程序语言,要在运行速度和编程难易、维护方便之间作好权衡;
l 如何组织数据流,使得总线带宽不要成为瓶颈。
以上的每一条都是图像处理系统设计中要考虑的重要因素。
8-2-5-4缓存
在连续处理的过程中,将图像数据临时存放在缓存中,是实时和高速图像处理系统通用的技术。它能匹配两个处理时间有差异的部件之间数据的传送;它可以允许图像处理系统将处理操作作为任务来管理,例如图像采集和上一帧已采集图像的处理并行进行操作,图像处理过程中的不同处理同时操作;它还能增加延时确定性差的处理过程的灵活性,使它们的处理时间能偶尔更长一些。在多专用芯片和处理器的系统中,缓存是必不可少的,是影响系统结构的重要部件。
8-2-5-5时间标戳
在硬延时实时系统中,处理过程启动后,在一个固定的时间内获得结果是强制性的。因为对图像的处理是可变的,它可能是因为输入图像的复杂性的变化,也可能是其它操作使处理器离开了对图像的操作,这就必须对处理结果重新定位同步。如果输入图像具有时间标戳,而且此标戳随着处理结果共同前进,那么这个结果的身份就可被认识,并插入基于图像触发器而形成的阵列中去。
时间标戳可以由软件产生,然而由获取图像的硬件自动产生的时间标戳会更精确可靠。
8-2-6 系统延时的分析
经过上述的分析和叙述,我们再归纳一下机器视觉系统的不同延时:
a. 图像数据获取和传送时间tgrab:图像数据从摄像头曝光、数据传送到处理器内存或缓存所需的时间;
b. 外触发最短重复时间trepeat:由于系统延时和结构的不同,系统能接收的外触发最短重复时间,即被测物件的最快重复出现时间;
c. 图像处理时间tprocess:图像完全传送到内存或缓存后,系统对图像作处理并最终获得结果所需的时间。
d. 总延时ttotal:物体到达视场中心,发出外触发脉冲,系统接收到脉冲后,获取图像,传送图像至内存或缓存,对其进行处理并获得结果的完整工作时间。
ttotal=tgrab+tprocess
一个简单的视觉系统,其总延时
ttotal= tgrab +tprocess
ttotal = tgrab +tprocess= trepeat
见图8-11,即该系统的延时是图像获取和图像处理的延时之和,同时也是外触发最短的重复时间,即相邻出现的两个目标的最短间隔时间。
如果一个视觉系统有足够的缓存,有多个专用处理器或DSP,并且它们之间有合理的结构,则这些延时的关系可能为:
ttotal= tgrab +tprocess
trepeat= tgrab
tprocess大于tgrab
见图8-12,即外触发最短重复时间trepeat等于图像获取和传送时间tgrab,这个时间就是CCD的帧周期,要降低相邻的被测工件的间隔时间,应增加CCD的帧频,例如增加CCD的主时钟频率、使用binning技术等都可以增加帧频,如果系统的成本许可,有的系统采用多通道摄像头及与其相配的图像卡来成倍地提高trepeat。对每一个工件来说,从它到达视场中心时,发出外触发脉冲开始,到获得处理结果的总延时ttotal也是tgrab 和tprocess之和,但是该系统允许tprocess大于tgrab。即图像的获取和传送与图像处理可以并行进行。对于视觉系统所处的控制系统来说,工件的最快出现重复时间trepeat和总延时ttotal都是重要的设计参数。