python计算机视觉--全景图像拼接

目录

一、RANSAC算法

1.1 RANSAC算法简介

1.2 算法基本思想和流程

1.3 RANSAC求解单应性矩阵

二、图像映射与全景拼接

2.1 简介

2.2 计算第二张图像与第一张图像之间的变换关系

2.3 将第二张图像叠加到第一张图像的坐标系中

2.4 图像映射的流程

2.5 图像拼接流程

三、全景拼接测试

3.1 代码展示

3.2 结果展示

3.2.1 场景一

3.2.2 场景二

3.2.3 场景三

3.3 实验总结

四、遇到的错误


一、RANSAC算法

1.1 RANSAC算法简介

RANSAC (随机一致性采样)是一种迭代算法,该算法从一组包含“外点(outlier)”的观测数据中估计数学模型的参数。“外点”指观测数据中的无效数据,通常为噪声或错误数据,比如图像匹配中的误匹配点和曲线拟合中的离群点。与“外点”相对应的是“内点(inlier)”,即用来估计模型参数的有效数据。因此,RANSAC也是一种“外点”检测算法。此外,RANSAC算法是一种非确定算法,它只能在一定概率下产生可信的结果,当迭代次数增加时,准确的概率也会增加。RANSAC算法是用来找到正确模型来拟合带有噪声数据的迭代方法。

1.2 算法基本思想和流程

RANSAC是通过反复选择数据集去估计出模型,一直迭代到估计出认为比较好的模型。具体的实现步骤可以分为以下几步:

(1)随机采样K个点,K是求解模型参数的最少点个数(对于直线拟合来说就是两个点(两点确定一条直线),对于拟合圆就是3个点)

(2)使用采样出的k个点估计模型参数,得到数据模型;

(3)将所有数据带入这个模型,计算出“内点”的数目;(累加在一定误差范围内的适合当前迭代得出的模型的数据);

(4)比较当前模型和之前推出的最好的模型的“内点“的数量,记录最大“内点”数的模型参数和“内点”数;

(5)重复1-4步,直到迭代结束或者当前模型已经足够好了(“内点数目大于一定数量”)。

1.3 RANSAC求解单应性矩阵

单应性变换:是将一个平面内的点映射到另一个平面内的二维投影变换。

RANSAC 循环:

(1)随机选择四对匹配特征

(2)根据DLT计算单应矩阵 H (唯一解)

(3)对所有匹配点,计算映射误差ε= ||p i ’, H p i ||

(4)根据误差阈值,确定inliers(例如3-5像素)

(5)针对最大inliers集合,重新计算单应矩阵 H。

二、图像映射与全景拼接

2.1 简介

        首先是在连续图像对间使用SIFT特征寻找匹配对应点对,SIFT是具有较强稳健性的描述子,能够比其他描述子产生更少的错误点,但是该方法仍不是很完美;使用RANSAC算法估计出图像间的单应性矩阵,判定哪些点对是正确的,哪些点对是错误的,即使用一个阈值来决定哪些单应性矩阵是合理的;然后将所有的图像扭曲到一个公共的图像平面上。

        通常,这里的公共平面为中心图像平面。一种方法是创建一个很大的图像,比如将图像中全部填充0,使其和中心图像平行,然后将所有的图像扭曲到上面。由于我们所有的图像是由照相机水平旋转拍摄的,因此我们可以使用一个较简单的步骤:将中心图像左边或者右边的区域填充为0,以便为扭曲的图像腾出空间。
图像拼接的几何原理:全景融合的 3D 几何解释,图像被投影到共同的拼接平面上(同一坐标系), 在拼接平面上实现全景融合。在拼接的应用中,其实可以简化理解为 2D图像的变换,叠加过程。

基础流程:

① 针针对某个场景拍摄多张/序列图像;
② 计算第二张图像与第一张图像之间的变换关系;
③ 将第二张图像叠加到第一张图像的坐标系中;
④ 变换后的融合/合成;
⑤ 在多图场景中,重复上述过程;

2.2 计算第二张图像与第一张图像之间的变换关系

(1)变换类型选择

将两幅图像叠加在一起,选择需要采用模型,如位移、旋转、尺度大小、仿射和透视等。

(2)2D 图像变换原理:

图像滤波: 改变图像的像素点取值范围

图像变换: 改变图像的坐标取值范围g\left ( x \right )=f\left ( h\left ( x \right ) \right )

 (3)2D 图像变换类型

(4)参数求解

针对不同问题,需要多少对匹配特征才能计算出模型参数。

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值