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

下载本文档

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

文档简介

1、MeiWei 81- 优质适用文档】全景拼接算法简介罗海风20KK.12.11目录1. 概述 22. 主要步骤 22.1. 图像获取 22.2 鱼眼图像矫正 22.3 图片匹配 32.4 图片拼接 32.5 图像融合 32.6 全景图像投射 33. 算法技术点介绍 33.1 图像获取 33.2 鱼眼图像矫正 43.3 图片匹配 53.3.1 与特征无关的匹配方式 53.3.2 根据特征进行匹配的方式 53.4 图片拼接 63.5 图像融合 73.5.1 平均叠加法 73.5.2 线性法 73.5.3 加权函数法 73.5.4 多段融合法(多分辨率样条) 73.6 全景图像投射 73.6.1 柱

2、面全景图 73.6.2 球面全景图 83.6.3 多面体全景图 84. 开源图像算法库 OPENCV 拼接模块 94.1 STITCHING _DETAIL 程序运行流程 94.2 STITCHING _DETAIL 程序接口介绍 94.3 测试效果 1 05. 小结 11参考资料 111. 概述全景视图是指在一个固定的观察点,能够提供水平方向上方位角 360 度,垂直方向上 180 度的自由 浏览(简化的全景只能提供水平方向 360 度的浏览)。附加感目前市场中的全景摄像机主要分为两种:鱼眼全景摄像机和多镜头全景摄像机。鱼眼全景摄像机是由 单传感器配套特殊的超广角鱼眼镜头,并依赖图像校正技术

3、还原图像的鱼眼全景摄像机。鱼眼全景摄像机 最终生成的全景图像即使经过校正也依然存在一定程度的失真和不自然。多镜头全景摄像机可以避免鱼眼 镜头图像失真的缺点,但是或多或少也会存在融合边缘效果不真实、角度有偏差或分割融合后有MeiWei_81- 优质适用文档】MeiWei 81- 优质适用文档】的缺撼。 本文档中根据目前所查找到的资料,对多镜头全景视图拼接算法原理进行简要的介绍。2. 主要步骤2.1. 图像获取 通过相机取得图像。通常需要根据失真较大的鱼眼镜头和失真较小的窄视角镜头决定算法处理方式。单镜 头和多镜头相机在算法处理上也会有一定差别。2.2 鱼眼图像矫正 若相机镜头为鱼眼镜头,则图像需

4、要进行特定的畸变展开处理。2.3 图片匹配 根据素材图片中相互重叠的部分估算图片间匹配关系。主要匹配方式分两种: A与特征无关的匹配方式。最常见的即为相关性匹配。B根据特征进行匹配的方式。最常见的即为根据SIFT,SURF 等素材图片中局部特征点,匹配相邻图片中的特征点,估算图像间投影变换矩阵。2.4 图片拼接根据步骤 2.3 所得图片相互关系,将相邻图片拼接至一起。2.5 图像融合对拼接得到的全景图进行融合处理。2.6 全景图像投射 将合成后的全景图投射至球面、柱面或立方体上并建立合适的视点,实现全方位的视图浏览。图 1:opencvstitching 模块进行图像拼接的处理流程(部分步骤可

5、选)3. 算法技术点介绍3.1 图像获取 由于鱼眼镜头和常规镜头在生成全景图方面存在很大差异,其校正算法完全不同,因此需分开讨论。但是校正后的图像进行拼接步骤时的处理方法一定程度上可通用。A单常规镜头拍摄多张图片方式(手持)MeiWei_81- 优质适用文档】MeiWei 81- 优质适用文档】该方式很常见,在目前多种手机上均有相关全景功能。B多个常规镜头组成的相机(或单镜头旋转扫描方式)图 2:三星 20KK 年发布的 360 度全景照相机 ProjectBeyond ,内置 16 个摄像头C鱼眼镜头拍摄图 3 :理光 20KK 年发布双鱼眼全景相机 RICOHTHETA3.2 鱼眼图像矫正

6、若为鱼眼镜头采集的到的图像,必须对图像进行矫正。鱼眼镜头图像校正算法通常有两种:一种是球面坐标定位法,一种是经纬映射法。具体推导过程见参考资料【1】鱼眼照片生成全景图算法的研究与实现,矫正效果如下图所示:MeiWei_81- 优质适用文档】MeiWei 81- 优质适用文档】图 4 :鱼眼图像及校正后的展开图3.3 图片匹配3.3.1 与特征无关的匹配方式 与特征无关的匹配方式常见的为相关性匹配,一般都用于没有复杂变换的图像拼接情况下。该方式计算简单,仅为普通的灰度模板匹配。具体细节见参考文档【2】全景图生成技术研究 。图 5 :模板匹配法示意图3.3.2 根据特征进行匹配的方式 基于特征的匹

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

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

9、;单应矩阵 ( HomographyEstimationH 效果如下:),B根据特征点匹配的方式,则利用这些匹配的点来估算也就是把其中一张通过个关联性和另一张匹配的方法。单应矩阵通过单应矩阵 H ,可以将原图像中任意像素点坐标转换为新坐标点,转换后的图像即为适合拼接的结果图像。下图即为找出符合几何约束的特征点之后,通过单应矩阵来对齐两张图片的内容。图 7 :根据特征点进行图像拼接的效果图图 8 :多张图像拼接效果MeiWei_81- 优质适用文档】MeiWei 81- 优质适用文档】3.5 图像融合 图像拼接后,需要对图像重叠部分进行融合处理。图像融合技术决定了最终图像合成质量,常用的有 平均

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

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

12、柱面全景图生成模型其中,图 10 :柱面全景图效果图详细的柱面投影模型的推导过程,见参考文档【5 】柱面全景图拼接算法的研究3.6.2 球面全景图球面全景图是通过求取图像映射到球面的参数,将图像映射到球面模型上,然后得到的平面反展开图 就是球面全景图或者部分球面全景图。MeiWei_81- 优质适用文档】MeiWei 81- 优质适用文档】图 11 :球面投影变换结果图图 12 :球面全景图拼接效果3.6.3 多面体全景图以景物中心为固定视点来观察整个场景, 并将周围场景的图像记录在以该点为中心的环境映射到多面 体上,这样环境映射以多面体全景图像的方式来提高其中心视点的场景描述。多面体全景图中

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

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

15、辨 率 低 , 拼 接 的 分 辨 率 compose_megapix 设置为 0.6-try_gpu(yes|no) 是否使用 GPU( 图形处理器 ),默认为 no/K 运动估计参数 K/-work_megapix-work_megapix图 像 匹 配 的 分 辨 率 大 小 , 图 像 的 面 积 尺 寸 变 为work_megapixK100000 ,默认为 0.6-features(surf|orb) 选择 surf 或者 orb 算法进行特征点计算,默认为 surf-match_conf特征点检测置信等级, 最近邻匹配距离与次近邻匹配距离的比值, surf 默认为 0.65 ,o

16、rb 默认为 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 表示置信度/K 图像融合参数 :K/-warp(plane|cylindrical|spherical|fisheye|stereographic|compressed

17、PlaneA2B1|compressedPlane A1.5B1|compressedPlanePortraitA2B1|compressedPlanePortraitA1.5B1|paniniA2B1|paniniA1.5B1 |paniniPortraitA2B1|paniniPortraitA1.5B1|mercator|transverseMercator)选择融合的平面,默认是球形-seam_megapix拼接缝像素的大小默认是 0.1-seam(no|voronoi|gc_color|gc_colorgrad)拼接缝隙估计方法默认是 gc_color-compose_megapix

18、拼接分辨率,默认为 -1-expos_comp(no|gain|gain_blocks)光照补偿方法,默认是 gain_blocks-blend(no|feather|multiband)融合方法,默认是多频段融合-blend_strength融合强度, 0-100. 默认是 5.-output输出图像的文件名,默认是 result,jpg命令使用实例,以及程序运行时的提示:4.3 测试效果MeiWei_81- 优质适用文档】MeiWei 81- 优质适用文档】图 14 : usb 摄像头拍摄的办公室 90 度视角的六张图像图 15 :生成的全景图OpenCV 的图像拼接模块效果良好, 但是由

19、于考虑到及其缺乏条件的情况, 因此算法方面采用了很多 很复杂的方法,如待拼接的图像顺序不明,基于特征点的图像匹配,迭代优化估计相机焦距参数等,耗时 十分长(此例子中,耗时大约十几分钟) 。当有合适的硬件配合时,整个算法流程可以大大简化。5. 小结本文档根据网上搜集到的部分信息,对全景拼接算法进行了概括性的介绍,并展示了开源图像算法库 opencv 的全景图拼接效果测试效果。根据已有的结果,可以看出,以 opencv 全景模块为算法流程蓝本,过程过于复杂,暂时无法实现实 时性。而相对的,利用一些先验知识(如素材图像顺序)和硬件条件(相机参数,拍摄约束等) ,可以大大 简化图像拼接算法流程和难度,关键的步骤如图像几何模型投影等内容,又已经搜集到了相关文献,可以 学习详细推导过程,从而自行编程实现完整算法流程。参考资料1. 鱼眼照片生成全景图算法的研究与实现,程菊明等,计算机工程与应用, 20KK2. 全景图生成技术研究,李艳丽,山东大学硕士毕业论文, 20KK3. 球面全景图

温馨提示

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

评论

0/150

提交评论