第2章
图像处理硬件系统的设计方法
2.1 图像处理系统的设计流程
设计一个图像处理系统,显然要确定该系统所达到的功能指标,而这些功能指标是与算法及系统结构紧密结合的。图2.1.1给出了图像处理系统的一般设计步骤。
图2.1.1 图像处理系统的设计流程
“应用”阶段是项目立项的最初阶段,项目的策划、系统的总体构思都在这一阶段内进行,这一阶段的任务是解决“做什么”的问题。此时的系统是抽象的,只是一个空架子。对于每一个系统,都要有一个明确的功能清单及性能指标参数,要根据具体的要求给出供需分析,给出输入输出的具体规定,其示意图如图2.1.2所示。
图2.1.2 在“应用”设计阶段系统的示意图
在图2.1.2中,“系统”是未知的,输入信息,通过“系统”的加工,实现输出的要求。
特别值得一提的是,供需分析往往是签订供需合同的依据,一旦发生合同纠纷,其焦点也往往集中在系统的性能指标上。
在计算理论阶段,系统设计者应对系统的合理性、可行性进行科学论证。这一阶段的任务首先是解决“行与不行”的判断问题,继而确定“怎样才行”的策略。显然,科学论证的结果可能反馈回功能清单阶段,去修正功能清单阶段的输入输出指标,使系统可行。当然,科学论证也可能否定原系统的立项。在计算理论阶段,应确定实现系统的技术路线。而计算理论的根据往往是信源的物理特性、算法能力、硬件能力以及计算机总线能力和计算能力等。从某种意义上说,计算理论阶段就是总体设计阶段,是非常重要的。
算法、结构、电路是系统实现中的3个环节。算法设计是系统实现的重要环节,在算法这一阶段里,应对实现任务的算法进行潜心的研究,进而研制出达到系统功能所需要的算法。这一阶段的主要任务就是要解决“怎样做”的理论问题。在算法这一阶段,要对特定情况进行具体化描述,给出一些数学表达式或一些算法的流程。一般的算法设计只是考虑图像处理方法,但在图像并行处理系统的设计中,还要考虑并行性问题,除了采用专用硬件以外,还可能采用集群计算机技术以及MMX/SSE技术,因此还要扩展算法研究的范围,也就是说,算法的研究不仅仅要研究针对特定问题的处理方法,还要研究并行处理的方法。这一阶段的工作具有相当的难度,如果面对的是一些疑难问题,其算法的研制很可能是困难重重,以至于成为整个系统设计的中心和系统研制中最费时的一个环节,系统设计者对这一点应有充分的认识。值得指出的是,最终的系统不管是采用纯硬件的方法还是纯软件的方法或者软硬件混合的方法来实现,算法研究都是必不可少的。对硬件实现而言,软件实现的算法可认为是一种软件模拟,这对于一个以硬件为基础的图像并行处理系统来说是至关重要的,其重要性体现于:
(1)软件模拟的结果可以指导硬件的设计;
(2)软件模拟的结果可以给出软硬件的分工及合作;
(3)软件模拟的结果可以减少硬件设计费用及硬件设计失败。
在图像并行处理系统的设计中,特别是对一个具体应用的高速系统的设计,不进行软件模拟的硬件设计是很危险的,在实际中确实有不少这样的教训。
应该说,在软件模拟研究中,主要追求的是实现任务的方法,而速度问题并不是在这一阶段要解决的主要问题。
在系统结构阶段,算法-结构的联系是非常重要的,在设计中应寻求实现算法的最佳结构。然而,将算法转化为实际的最有效的结构并不是一件容易的工作,如果仅是一个并行实现的点处理,那么算法到结构的转化要相对容易一些,而涉及邻域处理时算法到结构的转化则要难一些。在结构阶段的任务是实现“怎样做”的方案设计,就是要抽象出结构模型,最后要以系统中数据流向的形式画出实现整个系统的逻辑框图。
在系统结构阶段,一定要对并行性问题进行深入的研究,选择进行并行处理的最佳方案,这种最佳方案至少包含两层意思:一层意思是指“何处采用并行处理”,因为在整个算法中并不是全部过程都具有并行性,因此要根据算法的并行性进行选择,特别要优先选择那些相对费时的算法来进行并行处理;另一层意思是指“采用什么样的并行处理方法”,比如采用DSP芯片,把软件加载到DSP的程序RAM中去,或自行设计逻辑电路,实现流水线并行处理等。这种方案要考虑采用的处理器结构、存储结构及数据组织等一系列问题。
在电路的设计过程中,首先要绘制电路框图。电路框图分总的系统框图和分块的电路框图。这种电路框图一般以电路功能块为单元,按数据流的流向用箭头连线把各个功能块连接起来。严格来讲,系统的电路框图应包括所有的电路设计,即包括各个电路功能块、电路功能块之间的逻辑连接、输入输出、总线连接、信号定义(包括分板内部的数据名称)、测试点等。绘制电路框图是非常重要的,是系统实际成功的关键,设计师尤其要精心设计。
在物理实现这一阶段,涉及的内容很多,也很具体,包括信号的输入与输出、处理与存储、电源等。从具体的逻辑电路图到计算机、传感器,甚至于软件,需要将每一个环节有机地集成为一个整体,以完成算法的全部功能。在进行物理实现时,应有一个高的起点,要以先进的软件平台和先进的硬件器件为基础,只有这样才能保证整个系统的设计具有先进性。一颗优良的种子,种在贫瘠的土地上,是难以有好收成的。同样,一个再好的应用题目,一旦建构在落后的软硬件基础之上,其后果必然是:
(1)研制过程困难重重。
如采用DOS操作系统实现对计算机屏幕进行操作,软件编程人员将要涉及计算机显存的物理地址的确定及访问、屏幕划分、鼠标器控制等问题,而这些问题在Windows操作系统中却不复存在,显然采用DOS操作系统的做法增大了软件编程的难度。在硬件器件的选取上,如主要采用74系列的芯片来设计硬件系统,则所用器件多,致使系统复杂、布线困难、可靠性较差;如改用大规模的逻辑阵列芯片如EPLD芯片,上述问题不但不复存在,而且还可能因为先进器件的强大功能而增强系统的功能。
(2)面临重新改造的压力。
当系统设计完成乃至成为产品的时候,系统设计者可能面临重新改造的压力,这一点是明显的,因为在竞争如此剧烈的IT业中,系统中的任何缺陷都是竞争对手和用户所“关心”的,他们从不同的角度出发,都在迫使你重新改造系统。
测试环节包含了很多内容,包括确定测试的明细表、测试的规范、测试的形式以及测试结果的发布。测试的明细表一般是指系统所具有的性能,包括功能项及实现该项功能的运行时间。一般来讲,一个行业的测试规范应视同于行业标准,应由本行业的权威部门确定。在没有本行业官方的测试规范的情况下,可能存在本行业内流行的测试规范或自行制定的一个测试规范,测试的目的也有所不同。
当然,系统的设计很难做到一次成功,往往要对原始方案进行一定的修改,在工厂中还有“中试”“定型”等过程。
下面以“模糊图像复原系统”“在线啤酒瓶口缺陷检测系统”和“多路数字视频监控报警系统”的设计为例说明图像处理系统的设计过程。
1.模糊图像复原系统
模糊图像复原系统包括硬件和软件两部分。
模糊图像复原是从退化的模糊图像中恢复出清晰的图像。散焦模糊和运动模糊是两类常见的模糊,笔者单位1997年研制成功的“TH模糊复原系统”,采用维纳滤波的算法,针对实际的散焦模糊和运动模糊,取得了较好的复原效果。
维纳滤波算法是在频域上实现的线性滤波器,因此存在一些限制,一是瑞利分辨距离对分辨率的限制,二是吉布斯效应。吉布斯效应是因为相邻像素点之间的振荡而覆盖了原始信息的一种现象,使得在灰度变化剧烈的地方出现了干扰条纹。
对于小目标的模糊图像来说,从它们的频谱来看,高频分量严重缺失,在某些频率点处衰减为零。这说明在退化过程中,这些频率的谐波分量处的信号被衰减。在高频范围内,信噪比大大降低,可以利用的频率只是在一定信噪比水平上的一段中低频范围,这种限带的信号中有一个物理常数:瑞利分辨距离。
设模糊图像的高频极限为Ω,则有
式中,α为最小可分辨距离;为瑞利分辨距离;γ为一个经验常数,表示最小可分辨距离与瑞利分辨距离的关系。
为了克服维纳滤波算法存在的缺点,我们采用边缘扩展技术来抑制吉布斯振荡效应,同时采用光学放大技术来克服瑞利分辨距离对分辨率的限制。具体采用以下两种输入方法中任何一种输入方法来形成放大的模糊图像。
1)扫描仪输入的方法
扫描仪和计算机的连接如图2.1.3所示。当采用扫描仪输入时,要采用高分辨率输入方式,如采用1200dpi或更高的输入方式。
图2.1.3 扫描仪和计算机的连接
2)摄像机输入的方法
摄像机和计算机的连接如图2.1.4所示。其中,图像卡的作用是把摄像机传来的模拟信号转换为数字信号并送入计算机。选用摄像机时,最好配有微焦输入功能,可以进行放大输入。
图2.1.4 摄像机和计算机的连接
对于录像机录制的图像,则先采用视频拷贝机形成照片,然后再用扫描仪放大送入计算机,具体做法是把视频拷贝机的输入端连接到录像机的输出端上,把录像带装入录像机,进而把录像带所需要复原的图像送入视频拷贝机,再由视频拷贝机输出相应照片。视频拷贝机和录像机的连接如图2.1.5所示。如果直接把录像机的输出通过图像卡送入计算机,所获得的图像很小,模糊图像复原难以达到复原的效果。如果用计算机进行放大,则出现马赛克现象,不利于复原。图2.1.6~图2.1.9分别给出了模糊复原的结果。
图2.1.5 视频拷贝机和录像机的连接
图2.1.6 摄像机散焦模糊复原效果
图2.1.7 照相散焦模糊复原效果
图2.1.8 照相运动模糊复原效果
图2.1.9 视频模糊图像复原效果
在图2.1.9所示的视频模糊图像复原的效果中,可以看到图中人面图像的嘴、眼、鼻、脸的人脸特征。所复原的图像之所以在效果上得到了一定的改善,主要是因为采用了视频打印机形成照片、扫描放大输入的方法。在大多数情况下,录像带不清晰的原因是分辨率低下。采用扫描仪放大输入,以此来获得高分辨率的录像带数字模糊,继而再用维纳滤波进行散焦模糊的复原,取得了明显的复原效果。TH模糊复原系统是一项重要的科研任务,包括硬件和模糊图像复原软件。系统研制的时间很长,远远超过了原定研究计划。按工期硬件早已完成,而软件却拖了后腿。究其原因,还是待复原的模糊图像区域过小(如人脸区域)。这个问题是我们在计算理论阶段没有意识到的。值得指出的是,这是1997年的水平,现在应用人脸超分辨技术,已经有了更好的处理效果。
2.在线啤酒瓶口缺陷检测系统
在线啤酒瓶口缺陷检测,其流水线检测示意图如图2.1.10所示。
图2.1.10 在线啤酒瓶口缺陷检测示意图
这是一个在2000年研发的应用系统,用户对该系统的要求为:
检测啤酒瓶口的缺陷包括瓶口的裂纹、气泡等缺陷,检测的速度指标是200瓶/min,要求在生产流水线中进行在线检测。在检测的过程中,要求“不旋转、不接触”,即啤酒瓶不旋转、系统和啤酒瓶之间没有直接的接触。系统输出一个踢瓶(不合格品)的信号,并统计出不合格品的缺陷类型。
当时,国际水平处在“有旋转、有接触”的水平,即在检测点,由机械手抓住啤酒瓶进行旋转。所以该项目具有很强的挑战性。
在计算理论阶段,考虑到本系统要在360°全方位检测瓶口的缺陷,因此采用4台摄像机来检测缺陷(每一台摄像机检测90°)。200瓶/min即3.3瓶/s的检测速度相当于7帧时间(每帧时间为40ms)检测完一个啤酒瓶。由于4路同时检测,计算量比单路要多3倍。由于工期较短,可采用视频摄像机和成熟的图像卡。流水线中啤酒瓶是运动的,考虑到帧间相邻两行的时间长(20ms),如果奇偶场都采集啤酒瓶的动态图像,则所采集的图像在垂直方向上将出现明显的交叉锯齿,这将给检测带来不利影响;而相同场中相邻两行的时间短(64μs),若只采集奇数场(或只采集偶数场)的图像,将有效地克服运动图像的交叉锯齿现象。为了减少啤酒瓶运动带来的误差,也为了利用已有的单路视频图像采集卡,我们采用了两场两帧的图像输入方式,即奇数帧的奇数场输入1号摄像机的图像,奇数帧的偶数场输入2号摄像机的图像,偶数帧的奇数场输入3号摄像机的图像,偶数帧的奇数场输入4号摄像机的图像,图像输入共占用2帧的时间,检测处理最多只有5帧的时间(200ms)。当时考虑到PⅢ微机速度较高,用MMX/SSE技术仅用10ms即可完成一般算法,所以采用MMX/SSE技术加速的方案。通过以上计算,可以认为系统设计方案可行,可以进一步展开具体研究。
4台摄像机的安装图如图2.1.11所示。
图2.1.11 4台摄像机的安装图
为了适应不同颜色的瓶子,在摄像机后面加有相应颜色的背景。
在整体方案设计完成以后,余下的事情就是研制算法,以MMX/SSE指令来改写C语言算法,最后再设计出系统电路(包括模拟电路和数字电路)。待实验系统完成之后,即进行现场测试。经测试发现,原方案存在一些缺陷,主要是4台摄像机所获取的图像不能有效地突出缺陷部分的图像。为了适应灯光照明和啤酒瓶结构的特点,我们把原方案中的4台摄像机改成了8台。8台摄像机的安装图如图2.1.12所示。
图2.1.12 8台摄像机的安装图
图2.1.12中,6台摄像机采用斜拍的形式,进行瓶口侧面的微裂纹检测,每台摄像机只检测60°;2台摄像机采用顶拍的形式。为了保证检测速度,系统增加了一台计算机,每台计算机带4台摄像机,2台计算机联网工作。每个啤酒瓶的检测时间为80ms。
图2.1.13~图2.1.16给出了在线啤酒瓶口微裂纹检测实例。
图2.1.13 封锁环的横裂纹检测
图2.1.14 气泡的检测
图2.1.15 瓶颈的斜裂纹检测
图2.1.16 瓶口的斜裂纹检测
图2.1.13~图2.1.16的图(a)是流水线中采集的动态图像,图(b)是缺陷检测的结果。啤酒瓶在线缺陷检测的性能测试如图2.1.17所示。
图2.1.17 玻璃瓶在线缺陷检测的性能测试
啤酒瓶在线微裂纹检测是非常困难的。有些微裂纹,即使在灯光下旋转转动,人眼也很难看清。由于对表面皱纹、瓶口破损研究不够,因此在线检测性能很差,其他的一些指标还是不错的。
3.96路视频监控报警系统
2000年笔者单位研制成功的“96路视频监控报警系统”主要是为户外监控报警系统设计的,也适应于室内的监控报警,应用范围较为广泛。需求方提出了96个点的户外监控报警的应用,其环境是别墅小区的复杂环境(如树叶摆动、雨天雷电、阳光灯光等)。早期的监控报警一般采用模拟的视频监控报警方法,多路监控点的摄像机视频图像送入监控室的电视墙,由保安人员监视电视墙的图像。显然,这种方式人工劳动强度较大。同时,由于电视墙显示的图像通道有限,需要切换图像通道来选择不同的监视区域,因此不能实时监视全部视频图像。显然,监控报警需要从人工的监视方式发展为计算机自动监视的方式,由此实现从“看”到“认知”的飞跃。
在系统总体设计阶段,首先选定采用计算机自动监视的方案。根据当时的技术水平,设计为每台计算机负责8个点的监控报警,12台微机负责96个点的监控报警,一台计算机为服务器,形成客户机/服务器的结构,由此组成了96路视频监控报警系统。系统框图如图2.1.18所示。
图2.1.18 96路数字视频监控系统框图
在算法方面,我们提出了一种基于事件的多路视频监控与图像检索技术。该技术由以下几方面组成:
(1)建立事件模型;
(2)事件的辨识;
(3)事件的处理;
(4)基于事件的图像检索。
首先需要定义什么是事件。例如,在户外监控系统中,把人的非法侵入定义为事件;在交通监控系统中,把车辆闯红灯定义为事件;在超市里,以顾客把超市内的物品放入怀里这一动作定义为事件;在银行储蓄所里,把营业人员的违规操作或把储户的存取过程的某一动作或姿态定义为事件;等等。这种事件有两个属性,即变化性和偶然性。变化性是指事件的发生是动态的,可以用运动检测技术加以检测。而偶然性是指事件的特殊性,在诸多变化中是与众不同的,可以用模式识别的方法加以识别。在一个基于事件的多路视频监控系统中,既可以定义为一个事件,也可以定义为多个事件。
例如,把人的非法侵入作为一种事件。在智能监控中,事件的检测是至关重要的。
人的非法侵入有一定的特点。在一个较短的时间间隔内,人体可能沿着某一个方向运动[图2.1.19(a)],而树叶的摇曳则是随机摆动的[图2.1.19(b)]。
图2.1.19 人体与树叶运动特征比较
利用人体运动规律和树叶摆动规律,在检测人的非法侵入时,可以在一定程度上避免树叶摆动的影响。这仅仅是一个简单的分析,而智能监控的算法要复杂得多。
事件的处理包括事件的日志记录(事件发生的时间、地点等)、事件的现场图像存储、报警信号的产生等。
我们运用智能分析算法构成户外监控报警系统,并在2000年成功应用于杭州九溪玫瑰园别墅区。
显然,这是早期的一套后端软件智能分析的户外监控报警系统。今天看来,尚有许多不足之处。例如,一台计算机控制8个监控点,而每一个监控点轮巡一次大约需要6s的时间。主要的原因在于摄像机之间切换时锁相时间过长(经实际测试,锁相稳定需大于13帧时间),算法运行时间需3帧时间,8路合计将超过5s。由于摄像机之间切换时间较长,所以增大了事件的漏报率。当然,这种设计局限于当时的计算机性能等客观条件。不过,通过对图像卡的设计,可以有效地克服摄像机之间切换时锁相时间长的缺陷。图2.1.20给出了一种采用系统同步方式的8路视频图像顺序采集的图像采集卡的硬件设计。
图2.1.20 采用系统同步方式的8路视频图像采集卡的硬件框图
在图2.1.20所示电路中,图像采集卡增加了同步时序发生器,产生标准的系统行场扫描时序,并将系统行场扫描时序送到各台摄像机,同步各摄像机的扫描电路。这种系统同步方式将原来每一个监控点轮巡一次需要6s的时间降低为2s,有效地解决了摄像机之间切换时锁相时间过长的问题。
图2.1.20所示的电路虽然解决了摄像机之间切换时锁相时间过长的问题,也带来两个其他问题,其一是要求摄像机具有外同步的功能,其二是要铺设监控系统到摄像机的同步电缆。第二个问题是用户不太愿意接受的,原因是大部分的应用场景电缆早已铺设好,用户不愿意重新施工。
上述的在线啤酒瓶口缺陷检测系统,有成功的地方,也有失败的地方。关键在于计算理论环节存在问题,即项目能不能实现?成功的把握有多大?有人曾对我说过,冒大险,有大赏;冒中险,有中赏;冒小险,有小赏。科研需要一种冒险精神,不能够“骑着毛驴”搞科研。当然,从积极意义上来看,科研需要有一些探索的勇气,即使面对失败。然而对于用户的合同,那就另当别论了。TH模糊复原系统,1990年开始研制,合同期为3年,1997年鉴定,历时6年多。3年期满时,图像硬件系统已经完成,但对于小尺寸的模糊图像复原仍然毫无进展。委托方很着急,也进行了广泛的调研,但没查到更好的技术。委托方坚持和我们一道努力,直到取得较好的科研成果。对于委托方的宽容,笔者心存感激,也坚定了笔者对超低分辨率人脸图像重建的攻关决心。
当前,公共安全面临严峻挑战,视频监控在全球获得了大规模的应用。仅在中国,2012年视频监控摄像头已超过2300万个,2012年视频监控产业市场规模高达523亿元,视频图像已成为公安办案的重要线索来源,视频图像侦察技术已成为公安部门新的案件侦破技术。图像侦察技术尚需解决一些实际问题,如:
(1)清晰化监控中目标人的人脸图像;
(2)确定监控中目标人的真实身份;
(3)追踪监控中目标人的运动轨迹。
在著名的周克华案件的办案过程中,为寻找案犯周克华的行踪,数千名警察人工查看视频录像资料(导致发生视网膜脱落等伤害),工作量十分巨大。
图像侦察技术的发展为视频监控的发展注入了新的活力,视频监控深度应用需要实现从“看”到“认知”的飞跃,而实现从“看”到“认知”,其核心技术是智能分析技术,包括周界、拌线、遗留、丢失、人数统计、斗殴、徘徊、行人检测与跟踪、人脸识别、目标人关联等内容,智能分析系统包括后端软件智能分析系统和前端硬件智能分析系统。后端软件智能分析系统的拓扑结构如图2.1.21所示。
图2.1.21 后端软件智能分析系统的拓扑结构
图2.1.21中,IVAS为智能分析服务器;VMS为视频分析管理服务器;DBS为数据库服务器;SDU为数据管理服务器。摄像机的监控图像直接送到智能分析服务器,实现各种智能分析算法。一个监控群的摄像机数量一般都大于500台,如果说每台智能分析服务器带4台摄像机,智能分析服务器的数量是可观的。同时,监控图像已从标清(如704×576)发展到高清(如1920×1280),还将发展到超高清(如4096×2160)。视频图像的数据量急剧增大,对网络带宽和计算机的处理能力也提出了更高的要求。目前的技术瓶颈不仅存在于后端软件智能分析系统,同样也存在于前端硬件智能分析系统。目前前端硬件智能分析系统主要采用DSP芯片来做智能分析,DSP芯片的运算能力不仅大大低于GPU,甚至还低于CPU,难以实现计算复杂度高的智能分析算法。我们期待着出现新的技术,实现高速高准确性的高性能智能分析系统。
“在线啤酒瓶口缺陷检测系统”和“96路视频监控报警系统”是图像并行处理系统的实例,具有一定的代表性。在设计这类系统时,特别要强调系统性,不仅要注重算法的研究,还要注意应用系统的周边环境。