摘要:图像拼接技术是将相互间存在重叠区域的图像序列实施配准和融合,形成一幅包含各图像信息的宽视野的、完整的、高分辨率的新图像。在此基于该目的,依据计算智能构建一个能够完成具有相关性图像配准和融合的自动化软件系统。该系统给出了详细需求分析、功能设计、类设计和界面设计。通过一系列测试和分析,证明该系统具有很好的兼容性,并且能够较好、较快地完成序列图像的拼接。
0 引言
随着互联网的迅猛发展,人们对图像数据传输的要求也越来越高,基于图像拼接的方法逐渐获得人们的青睐。然而由于原有的物理设备、光学成像设备获取的图像分辨率有限、很难实现全景拍摄等问题的困扰,人们便提出了基于图形学的图像拼接。而该技术同时也是基于图像的绘制技术中的一项关键技术,目前在虚拟现实、计算机视觉等多个领域获得广泛的应用。所谓图像拼接简单地讲就是将两张相邻并具有一定重叠区域的图像无缝拼接在一起,是生成全景图的关键技术,拼接算法直接影响到全景图的真实感。
图像拼接主要是根据两幅图像重叠区域的相似度来实现的,其难点在于如何保证生成图像的几何性质和颜色协调性。常见的图像拼接算法主要分为3大类:基于面积、基于特征和互信息测度的方法。基于面积的方法是指把一幅图像中某一像素的像素值邻域作为模板,在另一幅图像中搜索具有相同(或相似)像素值分布的对应点邻域,从而确定两幅图像的重叠范围。如Peleg和Herman的多重投影拼接方法就是典型的针对图像重20世纪80年代中期,传统人工智能在感知、理解、学习、联想及形象思维等方面遇到了严重困难,经典优化算法在求解日益复杂的世纪工程问题时出现了很大的局限性。然而,随着计算机容量和计算速度的不断提高、大规模并行处理技术的产生和自身理论的逐步成熟,为计算智能技术的产生和发展提供了条件和机遇。
计算智能是从模拟自然界生物体系和生物智能现象发展而来的,用计算机模拟和再现生物的某些智能行为,并用于改造自然的工程实践的一种新型人工智能研究领域。计算智能是一个内蕴相当丰富的概念。
本文是基于互信息测度的方法和计算智能算法构造图像拼接算法的,并依据该算法进行图像拼接系统设计。设计图像拼接系统的初衷在于构建一个图像拼接算法的测试平台,另外也能够为实现高效、适用的全景拼接软件进行一系列思维上的探索。
1 图像拼接系统的需求分析图像拼接系统的主要功能是对具有相关性的图像或序列图像进行拼接融合,计算相关图像基于相关信息的拼接融合区域,并能够输出一幅无缝拼接的大视域、高分辨率的新图像。而且能够根据未来需求,预留出新的拼接算法接口。具体来讲,图像拼接系统应该具有如下3类功能:
(1)图像校正与去噪。由于待拼接图像或图像序列都来源于摄像头或视频片段,由于摄像机的曝光差异、旋转缩放等原因会造成不同程度的噪声。为此,必须对待拼接图像进行校正,尽可能地将扭曲图像还原成真实图像的大小和形状,然后利用中值滤波器等实现噪声剔除。
(2)图像匹配。图像拼接的关键步骤之一是图像匹配。所谓图像匹配就是对参考图像和待拼接图像中的匹配信息进行提取,在提取出的信息中寻找的拼接区域,然后使参考图像和待拼接图像间对齐。在引言中已经详细讨论了匹配的三类方法,本文将采用基于计算智能的互信息测度的方法实现图像匹配。
(3)图像融合。图像融合是实现图像终无缝拼接的重要步骤。在实际拼接过程中,一幅图像的图像区域过渡到另一幅图像的图像区域,由于存在光照特性、拍照时间、位置等差异,两个区域的表现不会完全相同,因此会出现跃变。图像融合技术即是消除这种跃变的有效工具,即让图像自然过渡。
2 系统设计
2.1 功能设计
根据给出的图像拼接的系统需求分析,系统主要由4个部分组成(见图1):图像预处理(校正、去噪)、图像拼接(算法设定、人工微调)、图像融合(线性差值)、和算叠区域中的对应相似灰度值进行计算的。基于特征的方法一般不直接利用图像像素值,而是通过像素值导出符号特征(如特征点、特征线段或边缘特征等)实施匹配,该方法比面积法执行速度快。基于互信息测度是近几年提出的一种基于图像熵的方法,该方法也同样不直接利用图像的灰度特征,而是利用两幅图像的灰度概率分布,通过求取其联合概率分布而获取他们之间的联合图像熵,当联合熵时,联合信息量,互信息量的原理,转而利用极大化测度函数获取两幅图像的重合区域。
对3个部分的解释:
(1)算法设置。这里算法的设置作为一个Interface进行设计。其好处在于不仅可以根据计算智能算法的要求对拼接细节进行设定,同时也可以在系统加入新的算法时进行系统扩展。
(2)拼接算法/本文采用的拼接算法是基于蚁群算法的互信息测度全景图像拼接。图像拼接过程中图像A中的窗口在B 搜索迭代的过程看成是“ i 只蚂蚁的城市模型”,从而使得蚂蚁可以在这个模型图上进行爬行,并且保证了蚂蚁爬行所获得的每个哈密顿路都对应一个互信量。可以将蚂蚁爬行的城市模型用图2描述。
对上图的理解是将图像A 中的窗口看作映射S(x,y) ,其中 x,y 表示窗口的位置。以窗口的中心坐标为顶点和 l =|S|i-Si+1为边,构造图 G=(V,E) .可选的路径则为图像A 中的窗口到图像B 窗口的搜索路径。
(3)融合算法。设拼接图像分别为A ,B ,在x 轴上的重叠区间为[xmin ] ,xmax ,则重叠区域的颜色值为f0 ,可表示为:
2.2 类关系设计
图3和图4是系统的类关系图和关键类结构图。该系统是采用Visual Studio 2012开发平台基于C#编程实现的。在设计过程中,利用平台即查看类图工具,可得到系统的类关系图。图3给出了系统部分类之间的继承和关联关系。需要说明的有如下几个类:
(1)Form1 类。这是系统的框架类,该系统是基于C#开发而成,即所有的视图和框架都集中在类里面。
其主要包括系统初始化Form(1)、系统载入Form1_Load()。另外,菜单、工具栏等功能出发函数也都集中在该类里面实现。
(2)Pragram 类。Pragram 是C#程序的程序入口,即main()函数。利用这个类实现体系的启动和退出。
(3)Drawshpe类。这个类主要用于实现系统各类绘制、统计、蚁群算法迭代等功能。包括蚁群初始种群的初始化、图像拼接算法到蚁群搜索的映射,以及搜索循环迭代控制等功能。
(4)HiPerTimer 类。HiPerTimer 这个类是对系统Timer的一个扩展,系统原有Timer时钟计时比较粗糙,通过该类的扩展,可以实现精准计时。其目标在于对算法的精准控制和统计。
2.3 界面设计
基于人机交互界面友好、简洁、实用的原则,将图像拼接系统操作界面设计为如图5所示的形式。目前,该系统仅支持三幅相关图像的拼接工作,系统预留了接口可以扩展更多的图像和序列图像拼接。
系统启动之后的所有操作都显示在左侧的树型视图里,其中包括读取图片、拼接区域计算以及拼接输出和算法统计等子项。右侧由具有4 个分页的选项卡(TabControl)组成,页显示读取的待拼接图像,然后分别是拼接过程、拼接结果和算法执行统计。算法的设定和操作在菜单中实现。图6是读取图像后系统截图。
3 测试及分析
3.1 测试设计
为了更好地说明本文给出的图像拼接系统的应用情况,下面对实际3幅图片进行拼接实验,按照拼接过程进行逐步实验。待拼接图像读取后的界面效果如图6所示。
3.2 测试结果
图7、图8 给出了算法计算后的拼接带和拼接区域。在效果较差的情况下点击拼接带可以进行微调。
图9给出了拼接的结果。图10给出了蚁群算法的迭代收敛结果。
4 结语
本文通过分析常用的图像拼接系统以及图像拼接常见的3类算法,以计算智能的蚁群算法为基础,利用图像间的互信息测度为拼接依据构建本文给出的图像拼接系统。再根据拼接的典型过程,分析了图像拼接系统的系统需求,从而完成了拼接系统的功能设计和类实现,并终给出了界面和扩展接口设计。论文第3节利用一个拼接实例说明了本文设计的系统的友好界面和可用性。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。