X的全景影像功能是基于什么原理?
首先想搞懂这个问题,你需要这个是如何转换的,其次去知道如何用特征匹配来计算。开头简单的说就是,你拍了几张图片,高度不一,首先第一步就需要对图像进行变形,变形之后才更好匹配(至于根据什么算法去变形,这个我还没了解到。。可能和图像识别有关吧)
然后接着把这个计算的步骤分为三步 1、图像变形 2、匹配特征3、图形拼接
一、图形变形
这个比较好理解的就是,这就是对于一个图片的处理,包括图片的上下左右移动,部分的放缩和变形
但是在全景图拼接中会用到一个单应性矩阵(Homography matrix)这个对于图像的透视处理很关键,我的理解是通过这个变换把照片中的三维元素进行一个较为自然的调整。
这里除了用单应性矩阵来进行透视变换以外,对于一些图像处理还涉及到forward warping 和 inverse warping,也是文末链接可看
二、特征匹配
这是全景图拼接过程中的一个重点,这里比较好理解的地方在于,既然是全景图拼接,肯定就是把相同的地方拼在一起,所以就需要找出来相同的特征,进行匹配
1、识别interest points(兴趣点/关键点)即图中白点
2提取围绕每个兴趣点的矢量特征描述符。
3确定两个视图中描述符之间的对应关系
要确定每个点是否是相似的,就要确定哪些像素是唯一的(如何判断一个像素点是唯一的,对它进行任意方向的转换,是否造成大的变化)
如何用数学的方式去完成这个任务呢,这里会用到机器学习的一个方法主成分分析(PCA),主要成分是最大方差的方向。最高成分是与先前成分正交的方差最大的方向。
当你确定了这些像素点之后,需要用一个经典的CV算法Harris角点检测,这展开讲又多了,如果之后又时间再展开讲一下,现在你知道是通过harris这个方法实现了特征的识别就好。
现在识别出来之后,就要想办法匹配,用的是SIFF的方法(中文翻译是尺度不变特征变换匹配算法)
三、图像拼接
用上之前找出来的特征点,进行拼接,在匹配的过程中会出现一些异常点,就是outliers,我们需要拼接的只是inliers
这里用到的算法是RANSAC算法去找outliers并去除。
总结一下,生成全景图的几大步骤:
–步骤1:检测特征
–步骤2:匹配特征
–步骤3:使用RANSAC算法计算单应性(Homography)
–步骤4:将图像变形并合并在一起
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有