计算机视觉 全景拼接

本文介绍了全景拼接中的RANSAC算法,通过特征点匹配和SIFT方法来处理图像,利用RANSAC排除错误匹配,以实现稳健的单应性矩阵估计,从而创建全景图。在实践中,RANSAC能有效处理观测数据中的噪音,提高拼接准确性。

前言

在学习计算机视觉的课程当中,我们会接触到有关于全景图的知识。
在生活当中,我们使用手机摄像功能时会时常使用到全景摄像。然而我们会经常遇到全景图拍摄失败。例如我们拍摄一个场景的时候,人会被拉扯成两个人的宽度,或是被压缩成一条线的宽度,或是建筑物被扭曲等等诡异画面。这是由于全景拼接算法不完善或是有问题的表现。例如:
在这里插入图片描述在这里插入图片描述
全景图拼接算法现在仍是一个世人需要解决和完善的难题。

全景拼接原理

本次学习研究的全景拼接算法是RANSAC(随机一致性),该算法的基本思想是,数据中包含正确的点和噪声点,合理的模型应该能够在描述正确数据点的同时摒弃噪声点。
全景照片的拼接的简述步骤:
1、特征点匹配:找到图片之间的共有部分。
2、图片匹配:将匹配的特征点连接起来。

特征点匹配
在合成全景图时,我们特征点匹配选取的方法是SIFT方法。
SIFT是具有很强稳健性的描述子,能够比其它描述子例如Harris角点,产生更少的错误匹配。然而SIFT方法仍然远非完美。
提取SIFT特征有两方面:侦测、描述。
SIFT算法的原理在我的前几篇博客中有介绍

SIFT兴趣点管理: https://blog.youkuaiyun.com/weixin_44037639/article/details/88626168

压缩包中包含的具体内容: 对给定数据中的6个不同场景图像,进行全景拼接操作,具体要求如下: (1) 寻找关键点,获取关键点的位置和尺度信息(DoG检测子已由KeypointDetect文件夹中的detect_features_DoG.m文件实现;请参照该算子,自行编写程序实现Harris-Laplacian检测子)。 (2) 在每一幅图像中,对每个关键点提取待拼接图像的SIFT描述子(编辑SIFTDescriptor.m文件实现该操作,运行EvaluateSIFTDescriptor.m文件检查实现结果)。 (3) 比较来自两幅不同图像的SIFT描述子,寻找匹配关键点(编辑SIFTSimpleMatcher.m文件计算两幅图像SIFT描述子间的Euclidean距离,实现该操作,运行EvaluateSIFTMatcher.m文件检查实现结果)。 (4) 基于图像中的匹配关键点,对两幅图像进行配准。请分别采用最小二乘方法(编辑ComputeAffineMatrix.m文件实现该操作,运行EvaluateAffineMatrix.m文件检查实现结果)和RANSAC方法估计两幅图像间的变换矩阵(编辑RANSACFit.m 文件中的ComputeError()函数实现该操作,运行TransformationTester.m文件检查实现结果)。 (5) 基于变换矩阵,对其中一幅图像进行变换处理,将其与另一幅图像进行拼接。 (6) 对同一场景的多幅图像进行上述操作,实现场景的全景拼接(编辑MultipleStitch.m文件中的makeTransformToReferenceFrame函数实现该操作)。可以运行StitchTester.m查看拼接结果。 (7) 请比较DoG检测子和Harris-Laplacian检测子的实验结果。图像拼接的效果对实验数据中的几个场景效果不同,请分析原因。 已经实现这些功能,并且编译运行均不报错!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值