基于OpenCV进行图像拼接原理解析和编码实现(提纲 代码和具体内容在课件中)

Posted GreenOpen专注图像处理

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于OpenCV进行图像拼接原理解析和编码实现(提纲 代码和具体内容在课件中)相关的知识,希望对你有一定的参考价值。

一、背景

1.1概念定义

我们这里想要实现的图像拼接,既不是如题图12这样的图片艺术拼接,也不是如图3这样的显示拼接,而是实现类似“BaiDU全景这样的全部的或者部分的实际场景的重新回放。

对于图像拼接的流程有很多定义方式,本教程中主要介绍实现主流方法,总结梳理如下:

图像采集->投影变换->特征点匹配->拼接对准->融合->反投影

图像采集不仅仅指的是普通的图像数据的获取。为了能够拼接过程能够顺利进行、拼接结果能够满足要求,我们在采集图像的时候就使用了一些方法、固化了一些参数;

投影变换为了采集的图像能够方便拼接,我们需要将各个图片变换到统一的平面上去。而变换的依据就是在图像采集的设定下来的采集方法。

特征点匹配先进的特征寻找方法,一般是SHIFT/SURF/ORB,简单介绍模板匹配。所谓特征点,就是这样同样的一个点,在不同的图片上面都会显示为同样的特征。那么如果掌握了足够的可信度高的特征点,就可以将图片中各个物体变换到同意的平面上去。RANSAC特征点提纯也是较为重要的内容。

拼接对准是图像拼接的核心部分,就是根据前面寻找到的匹配关系,将投影变换后的图片再次变换并合并成一张图片。需要注意的是,当大量图片拼接的时候,会出现错误累积的情况,我们采用光束平差法应对;同时还有插值计算的相关内容。

图像融合是用来消除由于几何校正、动态的场景或光照变化引起的相邻图像间的强度或颜色不连续问题,也就是缝隙消除我们介绍一种复杂的方法和一种直接的方法,用于不同的情况。

反投影没有名字听起来那么玄乎,实际上就是将拼接的结果重新生成的过程。一般还是生成图片,但是也可以变成其它的类型。

1.2国内外研究现状

关于图像拼接的方法国内外已有不少的论文发表,其算法大致可分为基于模型的方法、基于变换域的方法、基于灰度相关的方法和基于特征的方法,而如何提高图像拼接的效率,减少处理时间和增强拼接系统的适应性一直是研究的重点。

历史有兴趣可以看,不影响主要内容学习)1996,微软研究院的瓦chadrSezhski提出了一种ZD空间八参数投影变换模型,采用LvenebegrMarquadrt迭代非线性最小化方法(简称LM算法)求出图像间的几何变换参数来进行图像配准。这种方法在处理具有平移、旋转、仿射等多种变换的待拼接图像方面效果好,收敛速度快,因此成为图像拼接领域的经典算法。

2000,shmuelPeleg等人在瓦chardszeliski的基础上作了进一步的改进,提出了自适应图像拼接模型,根据相机的不同运动而自适应选择拼接模型,通过把图像分成狭条进行多重投影来完成图像的拼接。这一研究成果推动了图像拼接技术的进一步的发展,从此自适应问题成为图像拼接领域新的研究热点。匹兹堡大学的SevketGumustekin对消除在固定点旋转摄像机拍摄自然景物时形成的透视变形和全景图像的拼接进行了研究。通过标定摄像机来建立成像模型,根据成像模型将捕获到的图像投影到统一的高斯球面上,从而得到拼接图像。这种方法拼接效果好、可靠性高,但是要求对摄像机进行精确的标定,同时要求摄像机透镜本身的畸变参数引起的图像变形可以忽略不计。

1975,KuglniHines提出了相位相关法,利用傅立叶变换将两幅待配准的图像变换到频域,然后利用互功率谱直接计算出两幅图像间的平移矢量。1987,DeCasrt断口Mornadi提出了扩展相位相关法,利用傅立叶变换的性质能够实现具有旋转和平移变换的图像的配准。随着快速傅立叶变换算法的提出以及信号处理领域对傅立叶变换的成熟应用,Rdedychatterji提出了基于快速傅立叶变换F(FTbasde)的方法,利用极坐标变换和互功率谱,对具有平移、旋转和缩放变换的图像都能够实现精确配准。相位相关法计算简单精确,但要求待配准图像之间有较大重叠比例,同时计算量和适用范围与图像的大小有很大关系。除了傅立叶变换外,人们还选择更可靠、更符合人眼视觉生理特征的Gbaor变换和小波变换进行图像匹配。基于灰度相关的方法是以两幅图像重叠部分所对应在RGBCMY颜色系统中灰度级的相似性为准则寻找图像的配准位置。常用的算法有比值匹配法、块匹配法和网格匹配法。比值匹配法是从一幅图像的重叠区域中部分相邻的两列上取出部分像素,然后以它们的比值作为模板,在另一幅图像中搜索最佳匹配,这种算法计算量较小,但精度低;块匹配法是以一幅图像重叠区域中的一块作为模板,在另一幅图像中搜索与此模板最相似的匹配块,这种算法精度较高,但计算量过大;网格匹配法嗜先进行粗匹配,每次水平或垂直移动一个步长,记录最佳匹配位置,然后再进行精确匹配,每次步长减半,循环此过程直至步长减为O,这种算法较前两种运算量有所减小,但如果粗匹配步长过大会造成较大的误差。基于特征的方法首先从待匹配图像中提取特征集,利用特征的对应关系进行匹配。基于特征的方法利用了图像的显著特征,具有计算量小,速度快的特点,对与图像的畸变、噪声、遮挡等具有一定的鲁棒性,但是它的匹配性能在很大程度上取决于特征提取的质量。提出了一种轮廓的图像匹配方法,采用LOG算子提取出两幅图像的特征轮廓,用链码来表示轮廓,根据相同轮廓的链码差分值不变的特性找出对应轮廓,从而确定图像间的变换关系。这种方法在特征轮廓的提取上容易受到噪声的干扰,其计算量随着轮廓数量的增多而增长。使用HarriS检测器提取兴趣点,通过计算归一化相关系数,沿极线寻找一幅图像中兴趣点的对应点,然后使用第三幅图像来得到更准确的对应;Jnae提出了基于小波变换的分层图像匹配算法,在分解后的每一层图像中提取兴趣点进行匹配,用并行策略提高了计算速度。

图像匹配算法经过几十年的发展已经取得了很大的进展,但由于拍摄环境复杂多变,现在还没有一种算法能够解决所有图像的匹配问题。现有的几种方法各有其优缺点,如果能综合利用这些方法的优点将会取得更好的匹配结果。

应该整理出最新的知识 以及经典的综述)

这里要注意学习)软件方面,以微软研究院“Image Composite Editor”(下称ICE)效果最好我判断ICE的作者很可能就是图像拼接相关论文的作者,或者至少是在其指导下完成的。ICE基本是将论文中的特性全部都体现出来了。

 

正是因为ICE的优良特性(和不开源性),我一般将其作为图像拼接的验证工具来使用。
1.3图像拼接技术的广泛运用

图像序列包含了实际场景在空间和时间上的信息,其中的每一幅图像只反映了实际场景在空间、时间上的局部信息。由于它们在空间和时间上具有很大的冗余,因此采用图像拼接技术可以将一组图像序列转换为单个场景的表示,大大减小了场景表示的数据量,最大程度上压缩了场景数据信息。因此,图像拼接技术在摄影测量学、计算机图形学、图像处理、视频通信和计算机视觉等科学领域得到了广泛的应用。具体应用有虚拟场景的构建和虚拟漫游、医学图像分析、大型航空照片和卫星遥感图像的拼接、环境监测等领域。   

1)消费类VR

虚拟现实技术(Virtual Reality)就是利用计算机构建一个逼真的虚拟环境,即以仿真的方式给人们创造一个反映实体对象变化及其相互作用的三维世界,使得人们能够通过使用专用设备,就能像在自然环境中一样对虚拟环境中的实体进行观察与控制。

TIP 注意,这里就是反投影的一个灵活使用。拼接的结果最后不是以单幅图片显示出来的,而是处理以后,通过VR双屏幕显示出来的。所谓指的就是逆过程)

2)遥感技术

随着航空航天技术的发展,侦察卫星或航空遥感器能够实时获得目标的高清晰图像。为了扩大视野,提高分辨率,获得质量更高、位置更精确的信息,需要将来自不同传感器的两幅或多幅遥感图像拼接成一幅影像图。下图所示,是由多幅遥感图像拼接成的月球表面拼接图像。

      

3)医学方面

在医学领域,从CT图像、X光照片到人体的细胞照片,医学对图像的质量和处理手段都有极高的要求,许多图像处理技术也是在解决医学图像问题的过程中产生的。全景图由于其宽视角的特点也被应用在医学领域。在远程会诊中,把拍摄的序列病理图片拼接成全景图,不仅可以使远程终端用户能够看到当地医院的完整现场,还能在当地医院再现观测病理切片时的现场,这对于病理切片存档、病理研究学习等都有着重要的意义。

在超声检查中,超声图像的质量直接影响着医生对病情的诊断,由于普通超声探头较小,对大的组织器官和病变难以在一个断面显示,利用图像拼接技术可以将探头连续移动时的图像拼接成为宽视角的全景图,就可以显示出组织的完整结构,为诊断提供更好的依据。

在外科手术中,由于缺少对视网膜整体状况进行检查的工具,视网膜激光手术的成功率很低。Alican  Charles等人提出了利用图像拼接的方法构建视网膜的整体视图,作为外科手术的依据。他们将视网膜近似为一个二维的曲面,以视网膜上血管的三叉点作为匹配的特征点,通过求解一个12参数的变换矩阵找到相邻两幅视网膜图像之间的变换关系,将一系列视网膜的图像拼合成一张大的视网膜图像,如图所示。视网膜的整体视图为视网膜激光手术的发展做出了巨大的贡献。

 

图像拼接可以说在很多方面都会有强烈的需求、重要的作用,所以学习学懂图像拼接,对于一名图像方面的学生、工作者或者是研究人员来说都是必须的,值得付出的。
1.4图像拼接技术的特点

图像拼接技术是以多幅图像为处理对象,需要对两幅或两幅以上的图像进行综合的分析,因此相对于图像压缩、图像分割、图像编码等图像处理技术来说,有其自身的特点:多样性针对性复杂性缺乏客观评价约束

1多样性

客观世界中的自然物体和人造物体种类繁多、形状各异,使得图像的内容千变万化;由于光照条件的变化和景物中不可避免的物体移动,所以相机从不同角度采集的图像之间以及在不同时间采集的同一物体的图像之间都存在着差异;相机在采集图像的过程中,存在着多种运动方式,如平移、旋转、倾斜等,这也使得到的图像具有不同的特点。以上多方面的原因造成了图像拼接技术的处理对象的复杂性不可把握,也决定了图像拼接技术的多样性。因此,对于不同类型的图像,需要不同的处理方法。

2针对性

不同内容的图像,以及在不同条件下得到的图像,如柱面图像、球面图像和视频图像序列等,它们都具有鲜明的特点。因此,针对这些特点产生了特定的图像拼接算法。一般来说,图像拼接算法的针对性都很强,对于某种条件下产生的图像拼接算法可能完全不适合另外一种情况下的图像拼接算法;

3复杂性

图像采集和相机模型原理联系紧密;在采集的过程中涉及到多个模型;从图像的采集到最后生成效果良好的拼接结果,中间需要经过多个环节。而这些环节之间又相互关联,前后约束。这就决定了图像拼接算法比较复杂。同时容易出现各种现场问题。

4缺乏客观评价约束

因为最后生成的是一副图片,那么就缺乏客观、统一的评价标准,衡量一个算法的优劣只能依靠人的主观视觉感知。反过来也会造成提高算法质量的时候缺乏依据。

 

正是因为图像拼接复杂且难以评价,所以在学习的时候需要理清框架、打牢基础、注重方法,并且注重由易到难编码实践

这里收集整理了多方的资料,还是为了让大家对拼接的重要意义有充分认识,对需要克服的困难有初步了解。如果能够理解困难出现的原因,那么对于解决困难肯定是有帮助的。


二、图像拼接技术的基本流程

(原因是什么07前面已经说过了,我们这里将图像拼接划分为以下流程

图像采集->投影变换->特征点匹配->拼接对准->融合->反投影

2.1图像的采集(摄像头模型)

首先来看例子:

2.1.1精密图像采集体系:

如这是从上海凯视力成信息有限公司官网上下载的商品信息图片。可以看到这一个设计精密的图像采集系统。可以通过传感头的模型看出来。这种就叫做全景相机。在BaiDu上搜索全景相机的图片,能够得到很多信息。

 

 

 

虽然形状各异充满了GEEK的感觉,但是共同点很明显:围绕中心排列一系列的相机。

这样一次采集就能够获得360度的图像,而且由于相机是固定的,所以采集获得的图像质量很高。

以上是关于基于OpenCV进行图像拼接原理解析和编码实现(提纲 代码和具体内容在课件中)的主要内容,如果未能解决你的问题,请参考以下文章

基于Python和openCV实现图像的全景拼接

Opencv实现图像无缝拼接,Sift查找特征点,Flann进行匹配

openCV 第四篇 角点检测图像特征图片拼接

全景视频拼接--OpenCV源码解析

图像配准使用OpenCV进行多图配准拼接

图像配准使用OpenCV进行多图配准拼接