全景拼接算法简介解读_全景拼接算法简介

2020-02-27 其他范文 下载本文

全景拼接算法简介解读由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“全景拼接算法简介”。

全景拼接算法简介

罗海风 2014.12.11

目录

1.概述...................................................................................................................................1 2.主要步骤............................................................................................................................2 2.1.图像获取............................................................................................................................................2 2.2鱼眼图像矫正.....................................................................................................................................2 2.3图片匹配.............................................................................................................................................2 2.4 图片拼接.............................................................................................................................................2 2.5 图像融合.............................................................................................................................................2 2.6 全景图像投射....................................................................................................................................2 3.算法技术点介绍..................................................................................................................3 3.1 图像获取............................................................................................................................................3 3.2鱼眼图像矫正.....................................................................................................................................4 3.3 图片匹配............................................................................................................................................4

3.3.1与特征无关的匹配方式............................................................................................................4 3.3.2根据特征进行匹配的方式........................................................................................................5

3.4图片拼接.............................................................................................................................................5 3.5图像融合.............................................................................................................................................6

3.5.1 平均叠加法................................................................................................................................6 3.5.2 线性法........................................................................................................................................7 3.5.3 加权函数法................................................................................................................................7 3.5.4 多段融合法(多分辨率样条)...............................................................................................7

3.6全景图像投射.....................................................................................................................................7

3.6.1 柱面全景图................................................................................................................................7 3.6.2 球面全景图................................................................................................................................7 3.6.3 多面体全景图............................................................................................................................8

4.开源图像算法库OPENCV拼接模块...................................................................................8 4.1 STITCHING_DETAIL程序运行流程.....................................................................................................8 4.2 STITCHING_DETAIL程序接口介绍.....................................................................................................9 4.3 测试效果..........................................................................................................................................10 5.小结.................................................................................................................................10 参考资料.............................................................................................................................10

1.概述

全景视图是指在一个固定的观察点,能够提供水平方向上方位角360度,垂直方向上180度的自由浏览(简化的全景只能提供水平方向360度的浏览)。

目前市场中的全景摄像机主要分为两种:鱼眼全景摄像机和多镜头全景摄像机。鱼眼全景摄像机是由单传感器配套特殊的超广角鱼眼镜头,并依赖图像校正技术还原图像的鱼眼全景摄像机。鱼眼全景摄像机最终生成的全景图像即使经过校正也依然存在一定程度的失真和不自然。多镜头全景摄像机可以避免鱼眼镜头图像失真的缺点,但是或多或少也会存在融合边缘效果不真实、角度有偏差或分割融合后有“附加”感的缺撼。

本文档中根据目前所查找到的资料,对多镜头全景视图拼接算法原理进行简要的介绍。

2.主要步骤

2.1.图像获取

通过相机取得图像。通常需要根据失真较大的鱼眼镜头和失真较小的窄视角镜头决定算法处理方式。单镜头和多镜头相机在算法处理上也会有一定差别。

2.2鱼眼图像矫正

若相机镜头为鱼眼镜头,则图像需要进行特定的畸变展开处理。

2.3图片匹配

根据素材图片中相互重叠的部分估算图片间匹配关系。主要匹配方式分两种: A.与特征无关的匹配方式。最常见的即为相关性匹配。

B.根据特征进行匹配的方式。最常见的即为根据SIFT,SURF等素材图片中局部特征点,匹配相邻图片中的特征点,估算图像间投影变换矩阵。

2.4 图片拼接

根据步骤2.3所得图片相互关系,将相邻图片拼接至一起。

2.5 图像融合对拼接得到的全景图进行融合处理。

2.6 全景图像投射

将合成后的全景图投射至球面、柱面或立方体上并建立合适的视点,实现全方位的视图浏览。图1:opencv stitching模块进行图像拼接的处理流程

(部分步骤可选)

3.算法技术点介绍

3.1 图像获取 由于鱼眼镜头和常规镜头在生成全景图方面存在很大差异,其校正算法完全不同,因此需分开讨论。但是校正后的图像进行拼接步骤时的处理方法一定程度上可通用。A.单常规镜头拍摄多张图片方式(手持)

该方式很常见,在目前多种手机上均有相关全景功能。B.多个常规镜头组成的相机(或单镜头旋转扫描方式)

图2:三星2014年发布的360度全景照相机Project Beyond,内置16个摄像头

C.鱼眼镜头拍摄

图3:理光2013年发布双鱼眼全景相机RICOH THETA

3.2鱼眼图像矫正 若为鱼眼镜头采集的到的图像,必须对图像进行矫正。鱼眼镜头图像校正算法通常有两种:一种是球面坐标定位法,一种是经纬映射法。具体推导过程见参考资料【1】《鱼眼照片生成全景图算法的研究与实现》,矫正效果如下图所示:

图4:鱼眼图像及校正后的展开图

3.3 图片匹配

3.3.1与特征无关的匹配方式 与特征无关的匹配方式常见的为相关性匹配,一般都用于没有复杂变换的图像拼接情况下。该方式计算简单,仅为普通的灰度模板匹配。具体细节见参考文档【2】《全景图生成技术研究》。

图5:模板匹配法示意图

3.3.2根据特征进行匹配的方式

基于特征的匹配首先从图像上选取特征信息,然后识别出两幅图像对应的特征信息。常用的特征信息有特征轮廓,特征曲线,特征点,多采用特征点匹配法。

进行特征点匹配的第一步是提取所有素材图片的局部特征点。普遍来讲,一张图片所包含的特征点通常就是周围含有较大信息量的点,而仅通过这些富有特征的局部,基本就可以推测出整张图片。常见的特征点包括SIFT,FAST,SURF等。

图6:SITF特征点检测效果图。青色内容为检测到的SIFT特征点。由于特征点由特征向量表示,所以图中每个特征点显示为一个箭头。

形成特征向量之后下一个问题就是如何匹配了。最基本的方式可以称作“最邻近搜索”(Nearest

Neighbour),实际上也就是找在128维空间上直线距离最近的的特征向量,这个求直线距离的方式和2维无异,最近的特征向量也就被认为是互相匹配。SIFT原作者使用的方式是增加了k-d tree算法来高效率地完成高维度上的最邻近搜索。特征点匹配效果如下图所示。

图6:SITF特征点匹配效果图

3.4图片拼接

在以上步骤中得到了图像间的匹配关系,就可以根据这些关系进行图像的拼接了。按照图像匹配的不同方式,拼接处理也分两大类:

A.根据模板匹配的方式,可得到图片见的平移(或者包括缩放)参数,继而根据参数进行图像拼接操作;

B.根据特征点匹配的方式,则利用这些匹配的点来估算“单应矩阵”(Homography Estimation),也就是把其中一张通过个关联性和另一张匹配的方法。单应矩阵H效果如下:

通过单应矩阵H,可以将原图像中任意像素点坐标转换为新坐标点,转换后的图像即为适合拼接的结果图像。下图即为找出符合几何约束的特征点之后,通过单应矩阵来对齐两张图片的内容。

图7:根据特征点进行图像拼接的效果图

图8:多张图像拼接效果

3.5图像融合3.5.1 平均叠加法

平均叠加法是直接对图像进行平均叠加。这是最简单的融合方法,会出现明显的拼接缝隙。

图像拼接后,需要对图像重叠部分进行融合处理。图像融合技术决定了最终图像合成质量,常用的有平均叠加法,线性法,加权法,多段融合法等。具体见参考文档【2】《全景图生成技术研究》。3.5.2 线性法

合。

3.5.3 加权函数法

3.5.4 多段融合法(多分辨率样条)

3.6全景图像投射 3.6.1 柱面全景图 固定视点,使相机在水平面内旋转一周拍摄场景,得到一组具有重叠区域的连续环视图像序列,将这组图像序列无缝拼合,并投影到柱面空间坐标,就得到了衣服柱面全景图。柱面投影就是讲图像投影到柱面上,它是一种透视投影而非平行投影,通俗的讲就是要活的从投影中心这一点上观察图像在柱面上的成像。下图表示将三维空间上的点(X,Y,Z)映射到柱面模型上得到对应于柱面模型上的点(x,y,z)的过程。其中θ为观察视域中心与X轴夹角,h为柱面模型高度,(x,y,z)为(X,Y,Z)在柱面模型上的投影。多段融合法是目前比较好的融合方法,拼接成的图像既清晰又光滑无缝,能避免缝隙问题和叠影现象。另外,如果选取好的最佳缝隙线,还能处理有轻微运动物体的图像拼接。但该方法运算量大是其明显缺陷。加权函数法与线性法类似,也是广泛应用的融合方法之一。该方法能有效去除边界缝隙,但在拼合区往往出现叠影模糊的现象。柱面图像的拼接多采用简单的线性法。图像映射到柱面坐标下,图像间就是简单的纯平面平移变换,局部对准后,对重叠区域用线性法融合。该方法适合柱面全景图生成,或者仅具有平移变换的两幅图像融

图9:柱面全景图生成模型

其中,图10:柱面全景图效果图

详细的柱面投影模型的推导过程,见参考文档【5】《柱面全景图拼接算法的研究》。

3.6.2 球面全景图 球面全景图是通过求取图像映射到球面的参数,将图像映射到球面模型上,然后得到的平面反展开图就是球面全景图或者部分球面全景图。

图11:球面投影变换结果图

图12:球面全景图拼接效果

3.6.3 多面体全景图 以景物中心为固定视点来观察整个场景,并将周围场景的图像记录在以该点为中心的环境映射到多面体上,这样环境映射以多面体全景图像的方式来提高其中心视点的场景描述。多面体全景图中以立方体最为简单,立方体全景图是由6幅广角为90度的画面组成。

图13:立方体全景图效果

4.开源图像算法库OpenCV拼接模块

4.1 stitching_detail程序运行流程

1.命令行调用程序,输入源图像以及程序的参数

2.特征点检测,判断是使用surf还是orb,默认是surf。

3.对图像的特征点进行匹配,使用最近邻和次近邻方法,将两个最优的匹配的置信度保存下来。4.对图像进行排序以及将置信度高的图像保存到同一个集合中,删除置信度比较低的图像间的匹配,得到开源图像算法库OpenCV在2.4.0版本后集成了一个全景图拼接模块stitch,其中一个较详细的样例代码stitching_detail.cpp简要介绍如下: 能正确匹配的图像序列。这样将置信度高于门限的所有匹配合并到一个集合中。5.对所有图像进行相机参数粗略估计,然后求出旋转矩阵 6.使用光束平均法进一步精准的估计出旋转矩阵。7.波形校正,水平或者垂直 8.拼接

9.融合,多频段融合,光照补偿,4.2 stitching_detail程序接口介绍 img1 img2 img3 输入图像

--preview 以预览模式运行程序,比正常模式要快,但输出图像分辨率低,拼接的分辨率compose_megapix 设置为0.6

--try_gpu(yes|no)是否使用GPU(图形处理器),默认为no /* 运动估计参数 */

--work_megapix > 图像匹配的分辨率大小,图像的面积尺寸变为work_megapix*100000,默认为0.6

--features(surf|orb)选择surf或者orb算法进行特征点计算,默认为surf

--match_conf 特征点检测置信等级,最近邻匹配距离与次近邻匹配距离的比值,surf默认为0.65,orb默认为0.3

--conf_thresh 两幅图来自同一全景图的置信度,默认为1.0

--ba(reproj|ray)光束平均法的误差函数选择,默认是ray方法

--ba_refine_mask(mask)---------------

--wave_correct(no|horiz|vert)波形校验 水平,垂直或者没有 默认是horiz

--save_graph 将匹配的图形以点的形式保存到文件中,Nm代表匹配的数量,NI代表正确匹配的数量,C表示置信度 /*图像融合参数:*/

--warp(plane|cylindrical|spherical|fisheye|stereographic|compreedPlaneA2B1|compreedPlaneA1.5B1|compreedPlanePortraitA2B1|compreedPlanePortraitA1.5B1|paniniA2B1|paniniA1.5B1|paniniPortraitA2B1|paniniPortraitA1.5B1|mercator|transverseMercator)

选择融合的平面,默认是球形

--seam_megapix 拼接缝像素的大小 默认是0.1------------

--seam(no|voronoi|gc_color|gc_colorgrad)拼接缝隙估计方法 默认是gc_color

--compose_megapix 拼接分辨率,默认为-1

--expos_comp(no|gain|gain_blocks)光照补偿方法,默认是gain_blocks

--blend(no|feather|multiband)融合方法,默认是多频段融合--blend_strength 融合强度,0-100.默认是5.--output 输出图像的文件名,默认是result,jpg

命令使用实例,以及程序运行时的提示: 4.3 测试效果

图14:usb摄像头拍摄的办公室90度视角的六张图像

图15:生成的全景图

OpenCV的图像拼接模块效果良好,但是由于考虑到及其缺乏条件的情况,因此算法方面采用了很多很复杂的方法,如待拼接的图像顺序不明,基于特征点的图像匹配,迭代优化估计相机焦距参数等,耗时十分长(此例子中,耗时大约十几分钟)。当有合适的硬件配合时,整个算法流程可以大大简化。

5.小结

本文档根据网上搜集到的部分信息,对全景拼接算法进行了概括性的介绍,并展示了开源图像算法库根据已有的结果,可以看出,以opencv全景模块为算法流程蓝本,过程过于复杂,暂时无法实现实opencv的全景图拼接效果测试效果。

时性。而相对的,利用一些先验知识(如素材图像顺序)和硬件条件(相机参数,拍摄约束等),可以大大简化图像拼接算法流程和难度,关键的步骤如图像几何模型投影等内容,又已经搜集到了相关文献,可以学习详细推导过程,从而自行编程实现完整算法流程。

参考资料

1.鱼眼照片生成全景图算法的研究与实现,程菊明等,计算机工程与应用,2007 2.全景图生成技术研究,李艳丽,山东大学硕士毕业论文,2007 3.球面全景图像生成技术的研究,杨燕等,2007 4.全景图像拼接技术研究现状综述,江铁等,重庆工商大学学报,2012 5.柱面全景图拼接算法的研究,付金红,哈尔滨理工大学硕士毕业论文,2005 6.Stitching Pipeline, OpenCV Reference, http://docs.opencv.org/modules/stitching/doc/introduction.html 7.合成全景图中计算机视觉技术的知识和原理 http://

11.理光发布双鱼眼镜头全景相机http://www.daodoc.com.hk/dc/talk/1439/4389/1/

12.Stitching_detail算法介绍 http://blog.csdn.net/skeeee/article/details/19480693

读书的好处

1、行万里路,读万卷书。

2、书山有路勤为径,学海无涯苦作舟。

3、读书破万卷,下笔如有神。

4、我所学到的任何有价值的知识都是由自学中得来的。——达尔文

5、少壮不努力,老大徒悲伤。

6、黑发不知勤学早,白首方悔读书迟。——颜真卿

7、宝剑锋从磨砺出,梅花香自苦寒来。

8、读书要三到:心到、眼到、口到

9、玉不琢、不成器,人不学、不知义。

10、一日无书,百事荒废。——陈寿

11、书是人类进步的阶梯。

12、一日不读口生,一日不写手生。

13、我扑在书上,就像饥饿的人扑在面包上。——高尔基

14、书到用时方恨少、事非经过不知难。——陆游

15、读一本好书,就如同和一个高尚的人在交谈——歌德

16、读一切好书,就是和许多高尚的人谈话。——笛卡儿

17、学习永远不晚。——高尔基

18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向

19、学而不思则惘,思而不学则殆。——孔子

20、读书给人以快乐、给人以光彩、给人以才干。——培根

《全景拼接算法简介解读.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
全景拼接算法简介解读
点击下载文档
相关专题 全景拼接算法简介 全景 算法 简介 全景拼接算法简介 全景 算法 简介
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文