全景拼接算法简介_第1页
全景拼接算法简介_第2页
全景拼接算法简介_第3页
全景拼接算法简介_第4页
全景拼接算法简介_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、全景拼接算法简介罗海风2014.12.11目录1 .概述12 .主要步骤22.1 .图像获取22.2 鱼眼图彳t矫正22.3 图片匹配22.4 图片拼接22.5 图像融合22.6 全景图彳t投射23 .算法技术点介绍33.1 图像获取33.2 鱼眼图彳t矫正43.3 图片匹配43.3.1 与特征无关的匹配方式43.3.2 根据特征进行匹配的方式53.4 图片拼接53.5 图像融合63.5.1 平均叠加法63.5.2 线性法73.5.3 加权函数法73.5.4 多段融合法(多分辨率样条)73.6 全景图彳t投射73.6.1 柱面全景图73.6.2 球面全景图73.6.3 多面体全景图84 .开源

2、图像算法库OPENCV拼接模块84.1 STITCHING_DETAIL程序运行流程84.2 STITCHING_DETAIL程序接口介绍94.3 测试效果105 .小结10参考资料101 .概述全景视图是指在一个固定的观察点,能够提供水平方向上方位角360度,垂直方向上180度的自由浏览(简化的全景只能提供水平方向360度的浏览)。目前市场中的全景摄像机主要分为两种:鱼眼全景摄像机和多镜头全景摄像机。鱼眼全景摄像机是由单传感器配套特殊的超广角鱼眼镜头,并依赖图像校正技术还原图像的鱼眼全景摄像机。鱼眼全景摄像机最终生成的全景图像即使经过校正也依然存在一定程度的失真和不自然。多镜头全景摄像机可以

3、避免鱼眼镜头图像失真的缺点,但是或多或少也会存在融合边缘效果不真实、角度有偏差或分割融合后有"附加"感的缺撼。本文档中根据目前所查找到的资料,对多镜头全景视图拼接算法原理进行简要的介绍。2 .主要步骤2.1 .图像获取通过相机取得图像。通常需要根据失真较大的鱼眼镜头和失真较小的窄视角镜头决定算法处理方式。单镜头和多镜头相机在算法处理上也会有一定差别。2.2 鱼眼图像矫正若相机镜头为鱼眼镜头,则图像需要进行特定的畸变展开处理。2.3 图片匹配根据素材图片中相互重叠的部分估算图片间匹配关系。主要匹配方式分两种:A.与特征无关的匹配方式。最常见的即为相关性匹配。B.根据特征进行匹

4、配的方式。最常见的即为根据SIFT,SURF等素材图片中局部特征点,匹配相邻图片中的特征点,估算图像间投影变换矩阵。2.4 图片拼接根据步骤2.3所得图片相互关系,将相邻图片拼接至一起。2.5 图像融合对拼接得到的全景图进行融合处理。2.6 全景图像投射将合成后的全景图投射至球面、柱面或立方体上并建立合适的视点,实现全方位的视图浏览。RMIBmauuimthicfl9rdrtKimon图2:三星2014年发布的360度全景照相机ProjectBeyond,内置16个摄像头Find:时!#>»ReglsHatjan网WHlIfEmmahtMpMureer-ora.图1:openc

5、vstitching模块进行图像拼接的处理流程(部分步骤可选)3.算法技术点介绍3.1图像获取由于鱼眼镜头和常规镜头在生成全景图方面存在很大差异,其校正算法完全不同,因此需分开讨论。但是校正后的图像进行拼接步骤时的处理方法一定程度上可通用A.单常规镜头拍摄多张图片方式(手持)该方式很常见,在目前多种手机上均有相关全景功能。B.多个常规镜头组成的相机(或单镜头旋转扫描方式)同网产EUmMaStarve-COTMC&Fnal押no在*BardimgHCcrapcMSltrngrbaigu«B-andfn3tchosturn?mkiporoMilch*冲”督F2C4mptrrtin

6、teocposuBFewnisE*MC.鱼眼镜头拍摄图3:理光2013年发布双鱼眼全景相机RICOHTHETA2.7 鱼眼图像矫正若为鱼眼镜头采集的到的图像,必须对图像进行矫正。鱼眼镜头图像校正算法通常有两种:一种是球面坐标定位法,一种是经纬映射法。具体推导过程见参考资料【11鱼眼照片生成全景图算法的研究与实现,矫正效果如下图所示:图4:鱼眼图像及校正后的展开图2.8 图片匹配2.8.1 与特征无关的匹配方式与特征无关的匹配方式常见的为相关性匹配,一般都用于没有复杂变换的图像拼接情况下。该方式计算简单,仅为普通的灰度模板匹配。具体细节见参考文档【2】全景图生成技术研究。糜差区域图5:模板匹配法

7、示意图2.8.2 根据特征进行匹配的方式基于特征的匹配首先从图像上选取特征信息,然后识别出两幅图像对应的特征信息。常用的特征信息有特征轮廓,特征曲线,特征点,多采用特征点匹配法。进行特征点匹配的第一步是提取所有素材图片的局部特征点。普遍来讲,一张图片所包含的特征点通 常就是周围含有较大信息量的点,而仅通过这些富有特征的局部,基本就可以推测出整张图片。常见的特 征点包括SIFT, FAST, SURF等。图6:SITF特征点检测效果图。青色内容为检测到的SIFT特征点。由于特征点由特征向量表示,所以图中每个特征点显示为一个箭头。形成特征向量之后下一个问题就是如何匹配了。最基本的方式可以称作“最邻

8、近搜索”(NearestNeighbour),实际上也就是找在128维空间上直线距离最近的的特征向量,这个求直线距离的方式和2维无异,最近的特征向量也就被认为是互相匹配。SIFT原作者使用的方式是增加了k-dtree算法来高效率地完成高维度上的最邻近搜索。特征点匹配效果如下图所示。图6: SITF特征点匹配效果图2.9 图片拼接在以上步骤中得到了图像间的匹配关系,就可以根据这些关系进行图像的拼接了。按照图像匹配的不同方式,拼接处理也分两大类:A.根据模板匹配的方式,可得到图片见的平移(或者包括缩放)参数,继而根据参数进行图像拼接操作;H效果如下:B.根据特征点匹配的方式,则利用这些匹配的点来估

9、算"单应矩阵"(HomographyEstimation),也就是把其中一张通过个关联性和另一张匹配的方法。单应矩阵通过单应矩阵H,可以将原图像中任意像素点坐标转换为新坐标点,转换后的图像即为适合拼接的结果图像。下图即为找出符合几何约束的特征点之后,通过单应矩阵来对齐两张图片的内容。If'lKANSAC:堂KI(fiUAHWi*前i;m口:注上1屿二阳VjLmnkr用x&anomeanffev图7:根据特征点进行图像拼接的效果图图8:多张图像拼接效果2.10 像融合图像拼接后,需要对图像重叠部分进行融合处理。图像融合技术决定了最终图像合成质量,常用的有平均叠

10、加法,线性法,加权法,多段融合法等。具体见参考文档【2】全景图生成技术研究。2.10.1 平均叠加法平均叠加法是直接对图像进行平均叠加。这是最简单的融合方法,会出现明显的拼接缝隙2.10.2 性法柱面图像的拼接多采用简单的线性法。图像映射到柱面坐标下,图像间就是简单的纯平面平移变换,局部对准后,对重叠区域用线性法融合。该方法适合柱面全景图生成,或者仅具有平移变换的两幅图像融合。2.10.3 权函数法加权函数法与线性法类似,也是广泛应用的融合方法之一。该方法能有效去除边界缝隙,但在拼合区往往出现叠影模糊的现象。2.10.4 段融合法(多分辨率样条)多段融合法是目前比较好的融合方法,拼接成的图像既

11、清晰又光滑无缝,能避免缝隙问题和叠影现象。另外,如果选取好的最佳缝隙线,还能处理有轻微运动物体的图像拼接。但该方法运算量大是其明显缺陷。2.11 景图像投射2.11.1 面全景图固定视点,使相机在水平面内旋转一周拍摄场景,得到一组具有重叠区域的连续环视图像序列,将这组图像序列无缝拼合,并投影到柱面空间坐标,就得到了衣服柱面全景图。柱面投影就是讲图像投影到柱面上,它是一种透视投影而非平行投影,通俗的讲就是要活的从投影中心这一点上观察图像在柱面上的成像。下图表示将三维空间上的点(X,Y,Z)映射到柱面模型上得到对应于柱面模型上的点(x,y,z)的过程其中。为观察视域中心与X轴夹角,h为柱面模型高度

12、,(x,y,z)为(X,Y,Z)在柱面模型上的投影。(r)相机应定,锚坏拍搔6幅图像(b)世界坐标系内租柱面坐标摹上点对应关系示意图图9:柱面全景图生成模型其中,图10:柱面全景图效果图详细的柱面投影模型的推导过程,见参考文档【5】柱面全景图拼接算法的研究2.11.2 面全景图球面全景图是通过求取图像映射到球面的参数,将图像映射到球面模型上,然后得到的平面反展开图就是球面全景图或者部分球面全景图。图11:球面投影变换结果图图12:球面全景图拼接效果2.11.3 面体全景图以景物中心为固定视点来观察整个场景,并将周围场景的图像记录在以该点为中心的环境映射到多面体上,这样环境映射以多面体全景图像的

13、方式来提高其中心视点的场景描述。多面体全景图中以立方体最为简单,立方体全景图是由6幅广角为90度的画面组成。图13:立方体全景图效果4.开源图像算法库OpenCV拼接模块开源图像算法库OpenCV在2.4.0版本后集成了一个全景图拼接模块stitch,其中一个较详细的样例代码stitching_detail.cpp简要介绍如下:4.1 stitching_detail程序运行流程1. 命令行调用程序,输入源图像以及程序的参数2. 特征点检测,判断是使用surf还是orb,默认是surf。3. 对图像的特征点进行匹配,使用最近邻和次近邻方法,将两个最优的匹配的置信度保存下来。4. 对图像进行排序

14、以及将置信度高的图像保存到同一个集合中,删除置信度比较低的图像间的匹配,得到能正确匹配的图像序列。这样将置信度高于门限的所有匹配合并到一个集合中。5. 对所有图像进行相机参数粗略估计,然后求出旋转矩阵6. 使用光束平均法进一步精准的估计出旋转矩阵。7. 波形校正,水平或者垂直8. 拼接9. 融合,多频段融合,光照补偿,4.2stitching_detail程序接口介绍img1img2img3输入图像- -preview以预览模式运行程序,比正常模式要快,但输出图像分辨率低,拼接的分辨率compose_megapix设置为0.6- -try_gpu(yes|no)是否使用GPU(图形处理器),默

15、认为no/*运动估计参数*/- -work_megapix<-work_megapix<float>>图像匹配的分辨率大小,图像的面积尺寸变为work_megapix*100000,默认为0.6- -features(surf|orb)选择surf或者orb算法进行特征点计算,默认为surf- -match_conf<float>特征点检测置信等级,最近邻匹配距离与次近邻匹配距离的比值,surf默认为0.65,orb默认为0.3- -conf_thresh<float>两幅图来自同一全景图的置信度,默认为1.0- -ba(reproj|ray)光

16、束平均法的误差函数选择,默认是ray方法- -ba_refine_mask(mask)- -wave_correct(no|horiz|vert)波形校验水平,垂直或者没有默认是horiz- -save_graph<>将匹配的图形以点的形式保存到文件中,Nm代表匹配的数量,NI代表正确匹配的数量,C表示置信度/*图像融合参数:*/- -warp(plane|cylindrical|spherical|fisheye|stereographic|compressedPlaneA2B1|compressedPlaneA1.5B1|compressedPlanePortraitA2B1|

17、compressedPlanePortraitA1.5B1|paniniA2B1|paniniA1.5B1|paniniPortraitA2B1|paniniPortraitA1.5B1|mercator|transverseMercator)选择融合的平面,默认是球形- -seam_megapix<float>拼接缝像素的大小默认是0.1- -seam(no|voronoi|gc_color|gc_colorgrad)拼接缝隙估计方法默认是gc_color- -compose_megapix<float>拼接分辨率,默认为-1- -expos_comp(no|gain

18、|gain_blocks)光照补偿方法,默认是gain_blocks- -blend(no|feather|multiband)融合方法,默认是多频段融合- -blend_strength<float>融合强度,0-100.默认是5.-output<result_img>输出图像的文件名,默认是result,jpg命令使用实例,以及程序运行时的提示:4.3测试效果图14:usb摄像头拍摄的办公室90度视角的六张图像图15:生成的全景图OpenCV的图像拼接模块效果良好,但是由于考虑到及其缺乏条件的情况,因此算法方面采用了很多很复杂的方法,如待拼接的图像顺序不明,基于特征点的图像匹配,迭代优化估计相机焦距参数等,耗时十分长

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论