2.2 图像处理系统的设计准则
2.2.1 设计适应于机器
我们应该从广义上来理解系统设计适应于机器的设计准则,这里所指的“机器”,是泛指现存的设备、规范、方法等。在图像处理系统中,必不可少地要使用计算机,因此系统设计适应于计算机的设计准则就属于系统设计适应于机器的设计准则。
图像处理系统的结构受多方面因素的影响,其中受CPU、计算机总线、操作系统、网络数据库、集成电路水平的影响尤为显著。显然,构造图像处理系统的准则之一就是设计适应于机器,具体来讲,就是适应于当时的CPU、计算机总线、操作系统、网络数据库、集成电路等外部条件的能力和要求。1981年美国IBM公司推出了第一台IBM PC(个人计算机),同时推出了PC/XT总线,该总线最大数据传输速率为4Mbps,即使是256×256×8bit这种最低分辨率的图像,实时的数据传输速率至少也要达到5Mbps。显然,受计算机PC/XT总线的限制,视频图像不能实时地输入计算机。为了适应计算机的这种数据传输能力,当时的图像处理系统设立了图像帧存,把视频图像先存入图像帧存,然后再送入计算机进行处理,这样逐渐形成了一种以图像帧存为中心的图像处理系统结构。20世纪80年代,这种结构的图像处理系统在应用上达到了鼎盛的阶段。以图像帧存为中心的图像处理系统结构所配备的计算机有大型机、小型机,后来逐渐转向微机并以PC为主流机种。20世纪90年代初,美国Intel等公司联合推出了高性能的PCI总线,这种总线的最大数据传输速率高于视频图像实时数据传输速率,早期在计算机总线上进行图像传输的瓶颈已不复存在。由于这一主要特点,使得新型的PCI总线刚一问世,就立刻受到了图像界的普遍欢迎,图像处理系统的生产厂家纷纷摈弃原来基于ISA总线的产品而转向PCI总线,于是出现了以计算机内存为中心的图像处理系统结构。20世纪90年代,Intel公司先后推出了MMX/SSE技术,这样就形成了一种PCI+MMX/SSE的高性能价格比的图像处理系统结构,这种结构在相当长的时间内成为图像处理系统的主流结构。
以图像帧存为中心的图像处理系统结构和以计算机内存为中心的图像处理系统结构各有特点,在高性能的PCI总线普及以后,以计算机内存为中心的图像处理系统结构成为图像处理系统的主流形式。尽管如此,以图像帧存为中心的图像处理系统依然存在,主要用在高速图像处理系统和一些立体电视、医疗图像等特殊系统方面。
近年来,基于Internet的图像处理系统应运而生,于是形成了以网络为中心的图像处理系统结构。一些大型的系统往往采用这种系统结构,如清华大学2000年研制成功的人脸识别系统就采用了这种系统结构。这种系统的特点是采用了网络数据库,可以实现远程的查询与处理。在这种系统结构下,一些系统采用Client/Server方式,另一些系统则采用客户浏览器/Web服务器方式。而基于Web的全新的网络管理模式被誉为是将改变用户网络管理方式的革命性网络管理解决方案。它针对Client/Server结构的缺陷,加强了服务器的处理能力和网络传输能力,把数据和应用都安装到服务器上,而客户端只安装操作系统和必要的浏览器。因此,采用了客户浏览器/Web服务器方式的图像处理系统,将具有更大的优越性。
还有许多设计适应于机器的系统结构例子,例如,在采用DSP的图像处理系统中设置程序RAM来固化软件,软件人员根据MMX/SSE的具体指令来编制各自的软件等。
“设计适应于机器”积极的意义在于图像处理系统建筑在先进的机器上,广义来讲,建筑在先进的软件和硬件基础之上。一个在DOS操作系统上形成的应用软件在Windows流行的时候很难推广使用,同样,一个建筑在ISA总线的图像处理系统在PCI总线流行的时候也很难推广使用,这使DOS操作系统和ISA总线目前已不具备先进性,这种先进性正是系统设计者必须要考虑的。类似的问题也出现在硬件的设计上,要尽可能选用集成度高的芯片,尽量避免使用分立元件,而采用可编程的逻辑芯片。在科研过程中有许多这样的教训。要采用先进的软硬件平台不是一件容易的事情,这就需要不断地学习、掌握先进的软硬件平台知识。
2.2.2 设计适应于算法
“设计适应于算法”的设计思想包含着确立目标和实现目标、提出算法和实现算法、提出问题和解决问题的内容。广义来讲,“设计适应于算法”是一种“实现理想”的设计方法。
“设计适应于算法”的设计方法要研究系统的结构,以达到执行算法的最高效率。当然,由于算法的多样性,所研究的结构是要解决带有共性的问题。首先我们来研究一下点处理的系统结构,图2.2.1给出了一种适应点处理的系统结构框图。
图2.2.1 一种适应点处理的系统结构框图
图2.2.1所示的系统可以准确地实现帧间运算,如相邻帧图像的加减,当ALU功能块选择为直通时,可以通过LUT进行灰度变换。显然,这种结构是一个完整的系统结构,而且是属于带硬件处理的面向计算机内存的图像硬件系统结构。
下面通过两个具体设计来说明“设计适应于算法”的设计思想。
设计一:邻域图像处理的邻域数据的存取问题
由于许多图像处理算法涉及邻域图像处理,邻域数据的存取效率将严重影响图像处理的速度。如进行3×3卷积,需要读出3×3邻域的9点数据,通常的方法是每次读出一点,要花费9个读周期读出整个邻域的数据,显然这种方法是低效的。我们要实现的目标就是并行地形成邻域图像数据。图2.2.2给出了一种3×3行延迟卷积器的示意图。
图2.2.2 3×3行延迟卷积器
从图2.2.2中可以看出,3×3行延迟卷积器的输入数据是串行的,为了得到3×3的数据邻域,采用了两级N像素行延迟的办法(一行有N个像素)。这个方案能够实时地形成3×3的邻域数据,但是也存在一些缺点,例如,硬件开销较大,数据邻域的行数越多,需要的N像素行延迟的级数就越多。另外,用行延迟来形成数据邻域的方法只能并行地提供行顺序的邻域图像数据,而无法并行地提供随机邻域图像数据;在处理速度上,用读改写的方法实现行延迟线的方法没有读操作的速度高。
针对行延迟电路的一些缺点,我们设计了邻域图像帧存储体,既能并行地提供行顺序的邻域图像数据,又能并行地提供随机邻域图像数据,具体设计将在第10章给出。
设计二:最佳二维人脸图像的形成
人脸检测可以在较小的图像区域(如20×20)内检测到人脸,然而并不能说每次检测到的人脸都达到人脸识别的要求。在活动人脸的识别中,最重要的问题是如何在被识别人不主动配合的情况下获得被识别人的最佳人脸图像,从而达到人脸识别的最佳效果。图2.2.3给出了一种最佳二维人脸图像形成的框图。
图2.2.3 最佳二维人脸图像的形成
在人脸检测的基础上,对人脸关键点进行精确定位并获得所检测人脸几何特征,判别同一人相邻两次(或多次)检测到的人脸,看被检测到的人当前的姿态是否是处于最佳姿态,如果不是处在最佳姿态,则再跟踪检测同一人的人脸,期间可调整摄像机的聚焦和左右、俯仰姿态,最终获得被检测人的最佳姿态。对这幅最佳姿态的人脸图像,先进行尺寸归一化处理,再估计所获得的人脸的姿态(左右、俯仰的角度),在此基础上进行人脸校正,得到被检测人的正面人脸图像。经过上述一系列处理,达到了更好的人脸识别效果。
类似的例子还有很多,如基于MMP-PCA的理想人脸识别率等。
“设计适应于算法”的系统结构方法是最具有创造性的,也是最吸引人的。在设计中,对于一些有创意的想法,不论是组织者还是具体研发的提出者,都要十分重视,因为这种想法是十分珍贵的。
2.2.3 设计适应于系统
“设计适应于系统”的准则是从系统性的角度出发,考虑系统的综合性、实效性、完备性和先进性。
2.2.3.1 科学的任务分解
在图像处理系统的设计中,首先要解决任务分解的问题,力图做到周密、严谨,也可以用天衣无缝来比喻。图2.2.4给出了任务分解的示意图。
图2.2.4 系统的任务分解示意图
一个好的任务划分来源于对任务的好的理解,这种透彻认识的内容包括系统总的组成部分、流程、规模、难点、器件与设备、实施人员等。在通常意义上来说,这种任务的划分既包含总体设计,又包含任务的调度。从广义上来说,这种任务的划分既包含物理实现,又包含方法研究。图2.2.4所示的任务划分示意图表明,一个系统由N部分组成,每一部分又包含若干功能块(每个功能块还可以包含若干子功能块)。我们以两个具体的例子来说明这种任务分解。
实例1:TS-84图像图形处理系统。由于当时受器件等条件的限制,所以硬件系统采用了机箱式结构,分为5块线路板,分别是图像数字化器、存储体板、显示板、计算机接口板A)、计算机接口板B,其中计算机接口板A是插入计算机的,计算机接口板B则插入图像处理系统机箱中。对于每一块电路板,又有自己独立的电路。
实例2:TH-2005人脸识别系统。这是一个国家“十五”攻关项目,具有相当大的难度。根据研究内容,我们进行了如图2.2.5所示的研究任务划分。
图2.2.5 TH-2005人脸识别系统研究任务的划分示意图
图2.2.5中所示的每一类研究都包含了很多独立的研究内容,如系统集成研究,既要研究并行查询、图文混查、程序优化问题,还要研究系统采用的查询方式以及多通道的人脸检测等问题,更要研究其他分类研究成果的系统实现问题。研究任务划分之后,再根据所研究问题的难易程度,配备相应的研究人员。
一个系统,牵扯到方方面面,需要制定系统的各个部分的完成时间以及总调试、总测试的时间,实现科学的调度,进而完成该系统的预期研制计划。
2.2.3.2 多技术综合
设计适应于系统的设计准则,更多的是强调多技术综合的设计方法。仍以人脸识别系统为例,2005年我们在设计一个大型的人脸识别查询系统时,除了面临人脸识别率问题外,还面临识别的速度问题。一个人的人脸特征的数据量为2KB,要创建256万人的人脸特征数据库,才能实现256万人的辨识型人脸识别。设计时,限于当时计算机的运算能力以及项目经费的原因,我们选用了集群计算机技术,并采用分库的系统结构,即采用5台计算机作为从机,每台进行50万人的特征比对。采用1台主服务器,进行16万人的特征比对(因为主服务器还要承担综合从服务器的比较结果等工作),这条技术路线确实可行,但是提高的速度不明显。即使采用集群计算机技术,如果应用面对硬盘计算的大数据人脸比对,显然是不合适的,因为访问硬盘的速度太慢。因此,我们将人脸特征数据预存在内存中,识别时则采用内存计算技术,并采用MMX技术来提高处理速度。显然,“集群计算机技术+MMX技术(内存数据)”是一种正确的技术方案。这种综合技术的应用,达到了256万人/s的查询速度。这在当时,确实带来了意想不到的效果,实现了“1+1>2”的速度提升。
“1+1>2“是业界中常提的一种追求的理想目标,但是大于2,这个范围很宽,其中也包含了一种效率提升的确切数值,即乘法效率。假定一种技术的加速比为N(N≥2),而另一种技术的加速比为M(M≥2),如果这两种技术综合运用,则能实现M×N的加速比,我们将这种处理速度的提升称为乘法效率的提升。显然,乘法效率的提升效果要大于加法效率,这是一种更值得追求的重要目标。
这里再举一个有关乘法效率提升的具体实例。
为了有效克服冯·诺依曼瓶颈,我们用DDR存储芯片构成了邻域存储体。邻域存储体采用了存储芯片的堆叠技术和分段裂变技术以及不完全轮换矩阵技术。假定采用了N个(N≥2)存储芯片的垂直堆叠,则对存储体数据存取效率实现了N倍的提升;而每个存储芯片又实现了M段垂直分段裂变,则对存储体数据存取效率实现了M倍的提升;两种技术的综合运用,则实现了M×N的存储体数据存取效率的提升。显然,这也属于乘法效率的提升。
多技术综合,既有算法层面的综合,也有系统层面的综合。上述的大型人脸识别查询系统的设计和邻域存储体的设计,均属于算法层面的综合。下面介绍一种系统层面的综合。
当前,视频监控在全球已获得大规模应用。截至2012年,我国已拥有2300万视频监控摄像头,这些视频监控在我国公共安全中发挥了重要的作用。随着视频监控的发展,特别是随着公安图侦和视频人脸识别运用的发展,一个目前急需解决的问题摆在大家面前,即人脸分辨率低下的问题。直白一点,就是说,视频图像中人脸太小。在视频图像中,一个只有3×4像素的人脸能识别吗?看都看不清楚,又何谈识别。对这类分辨率低下的人脸,采用人脸超分辨技术是一种选择,目前用人工智能技术,已能够将低分辨率人脸进行重建,进而进行人脸识别。5年前可以识别瞳距为30像素的人脸,现在能识别瞳距为20像素左右的人脸,但仍存在一个很大的盲区。我们设计了一个综合系统,综合集成了人脸超分辨、人像组合和人脸识别功能,实现了瞳距更小的人脸重建与识别。人脸超分辨,是由多种技术实现的,可以是一个独立系统。人像组合,同样是由多种技术实现的,也可以是一个独立系统。人脸识别,涉及的技术更多,自然也是独立的系统。这个综合系统,输入的是分辨率低下的人脸图像,输出是分辨率高的重建人脸图像、识别人脸图像、意象人脸图像,从而将某些超低分辨率的人脸图像识别这种貌似不可解的问题变成了可能。
多技术的综合,对其效果的评价是多方面的。如果是人脸识别,多技术综合将看对人脸识别率是否有提升,对识别速度是否有提升。也可能是对单一指标有提升,这也是我们需要的。如果某一指标提升了,而另一指标下降了,那么就需要权衡得失,或者需要进行下降指标的补救工作。就拿墨镜、口罩问题来说,要解决这类问题,就带来计算复杂度提升的问题。所以,补救措施就是追加系统的算力。
在后续章节中还可以看到多技术综合的设计思想,这里不再赘述。
在竞争异常剧烈的环境中,我们特别要强调新技术的快速应用。一旦取得了某项学术成果,我们应围绕该项新成果,尽快地搭配与其相关的技术,构成可以实用的系统,继而推广应用,形成应用成果,做到学术成果到应用成果的快速转化。人脸识别技术在应用成果的转化上还是成功的。
系统的模块化设计思想,体现在功能的独立性、可调用性、可替代性上。比如2.2.3.1节实例2中的人脸识别算法研究,根据系统设计的要求,将一种人脸识别算法编制成recog.dll,并给出具体的调用说明,当我们打算应用另一种人脸识别算法时,则按原recog.dll的规定,编制成相同的recog.dll,这样就可以实现识别算法的互换。同时,由于有了recog.dll,就可以实现不同用户的调用,也就很方便地形成不同应用的人脸识别系统。这样一来,就在很大程度上避免了重复劳动。
设计图像处理系统,常常面临着以下两方面的考虑。
一个方面是系统的主控方式。在许多专用系统中(如医用B超),使用单片机或ARM芯片作为主控部件,形成了内嵌CPU的系统结构,这类系统有时也称为脱机系统。在许多通用系统中,常采用计算机作为主控部件,形成外挂式的系统结构,早期的机箱形的图像处理系统就是典型的外挂式系统,到后来成为主流型的板卡式的图像处理系统,也采用计算机作为主控部件。
另一个方面即是否需要采用专用硬件。一般来说,专用硬件比通用部件的效率高,而在灵活性方面不如通用部件,当然,专用系统可以优先考虑专用硬件,而通用系统则更多地考虑灵活性方面的问题,常常在处理速度和灵活性之间取一个适当的折中。
20世纪八九十年代可以称为PC时代,PC高性能和低价格的发展事实,使图像处理无论在理论上还是在应用上都取得了空前的发展,基于PC的图像处理系统采取了网络数据库的技术,采取了多CPU、多微机并行处理技术,同时融合了计算机庞大的外设。现在,计算机业界在谈论“后PC时代”,这也只是业界的重心有所转移,对图像处理来说,融入Internet技术、Java技术……形式也将更加多样化,系统的功能也就更加强大。