关于automatic_Panoramic_Image_Stitching_using_Invariant_features 的阅读笔记
并没有都读完,不过感觉还是有必要做一个笔记的,毕竟这只是随笔不是文章,所以可以有多少写多少,也算是工作总结了,最重要的是这个好在可以,完成所有有意义文档的检索,比起自己的word来说高级很多~~~。
以下部分内容
以下
全文翻译。不过我真的是一点儿一点儿在读。。。
http://www.docin.com/p-817312337.html
一、简介:
段一:我们的拼接不需要手动校直。
段二:根据文献,图像自动对其和拼接有两套方式:1、直接的 2、基于特征的
直接的方法:1、提供非常准确的定位,2、但是需要初始化处理。
基于特征的配准:1、不需要初始化,2、但是可靠性上不足。(有可能是Harris)
段三:
我们的匹配具有:
1、可靠匹配,在旋转,缩放和光照都不稳定的情况下。
2、给出无关图,也能找到有关图之间的关系。【
有东西需要实现一下了,刚刚的拼接,并没有控制变量。
再试一次。
的确发现了autostitch具有更高的可靠性,stitch会跑出异常,不稳定。不知道 stitching_detail具有多高的稳定性。
所以我们可以先stitch 然后再 detail 最后再 autostitch?
】
3、多波段融合,结果更加可靠。
4、增益补偿
5、自动校直
6、捆绑调整, 展示了对于多个波段的重叠图像进行多波段融合。
段四:
其余部分结构如下:
第二部分说明,所研究问题的几何学,以及选择不变特征的原因。
第三部分介绍了:图像匹配方法(RANSAC)和验证图像匹配的概率模型。
第四部分:描述图像对准算法(捆绑调整),共同优化摄像头的参数。
五到七部分:处理过程 自动校直,增益补偿,多波段融合
【八部分去哪里了?】
九部分:结论和未来展望
二、特征匹配:
段一:
全景识别算法的第一步是在所有图像之间提取和匹配SITF特征点。
Sift特征监测子位于不同尺度空间高斯差值函数的极值点处。
Sift特征点使得特征尺度和方向被确定。为测量提供了一个相似不变的结构。对于仿射变化具有一定的健壮性。【什么是放射变换?】
空间累积计算实现平移不变性。
亮度不变性由梯度(消除偏差)
描述子矢量归一化(消除增益)
段二:sift在旋转和尺度变化时是不变的,因此可以处理缩放图像,旋转图像。
Harris角点图像修补的相关性特征匹配技术就不能实现。
【
所以我是不是也要试一下旋转图像方向。
】
传统技术实现的相关性在图像旋转时候是变化的。
Harris不仅在旋转时候变化,在尺度变换时,也是变化的。
段三:
假设相机绕光学中心旋转,图像的变化群是一个对应矩阵的特殊群。由一个旋转矢量
和焦距将每个摄像头参数化,就给出了成对的对应矩阵,
,其中
(1)
并且
,
是均匀的图像左边(
,其中
是二维的图像坐标)。4参数相机模型定义为:
(2)
对旋转使用指数表示:
,
(3)
段四:
在这个变换群中,理想的条件下将会使用不变的图像特征。可是,在图像左边中对于小的变换表示如下:
(4)
或者等价于
其中,
(5)
是通过一个关于
的对应线性化得到的仿射变化。这意味着每个小的图像修补经过依次仿射变换,并且合理利用了在仿射变换下局部不变的SIFT特征。
段五:
一旦从所有n个图像中提取特征点后(线性时间内),需对特征点进行匹配。由于多个图像可能重叠在一个单一的光线上,在特征空间内每个特征点需和它最近的k个临域点匹配(k=4),通过使用k-d树算法找到近似最近的临域点,时间复杂度为O(nlogn)。K-d树是一种周对其的二进制空间划分,它在平均最高方差维递归划分特征空间。
三、图像匹配
段一:图像匹配的目标是找到所有匹配(例如重叠)图像,然后图像匹配联通集会成为全景图。由于每个图可能和任意其他一个匹配,这个问题一开始就呈现出是图像数的2次方。【所以这个数字应该是几?对于我们已经输入的n张图片来讲。】为了得到一个好的拼接结果,对于图像而言,每个图像只需要和少数重叠的图像来匹配。【如果重叠那拼接结果自是最好】
段一总结:问题难度巨大,要是有重叠就好办。
段二:从特征匹配步骤中,已经找出大量匹配的图像间具有大量匹配点的图像。对于当前图像,我们将m幅图形作为可能的匹配图像(假设m=6),这m幅图像与当前图像有最大数量的特征匹配点。首先,使用RANSAC算法选择一系列和图像间对应矩阵兼容的内点,然后应用概率模型做进一步的验证。
段二总结:用RANSAC算法。
【备选图像有m张,那么到底要不要入选,需要RANSAC算法来决定】
3.1使用RANSAC算法的健壮对应矩阵估计
段三:RANSAC(随机抽样一致性算法)【RANSAC算法是使用最少的一组随机采样匹配点的一种健壮估计过程,这个看下原文那这句话是想说,这种算法采用的匹配点少,并且也十分健壮?】用来估计图像变换参数,并找到与数据具有最好一致性的解决方案。【使用RANSAC算法来估计图像变换参数,来找到最佳解决方案。】在全景图的情况下,选择r=4对匹配特征点,使用直接线性变换(DLT)方法计算图像间的对应矩阵H。【r是什么?R代表匹配特征点,此处数量为4.】使用直接线性变换方法计算图像间的对应矩阵H。【什么事直接线性变换方法?图像间的对应矩阵又是指什么?】重复试验500次,选择内点数量最大的解决方案(在像素误差范围内,其预测和H是一致的)。假设一对匹配图像间的特征匹配点的正确率(内点概率)为,n次试验后找到正确变换概率为:
(6)
经过大量实验后,找到正确对应矩阵的概率非常大。例如,对于内点概率
=0.5,在500次试验后,未找到正确对应矩阵的概率为
。【那这个地方我们是不是可以稍微弄得小一点。以提高运行的效率,抑或者因为某些用途,可以继续让这个数字变小。不过显然已经没有必要了,又或者我们可以调整这个比例参数,在某些重合区域的图像内点概率就会很大,那么实验次数就可以对应的小,来减小计算压力,对于某些内点概率小,地方我们可以要求实验次数尽量的大,所以什么是内点呢?】
段三总结:当内点采用某一数值的情况下,我们可以通过增加实验次数来提高对应矩阵的匹配程度。
段四:RANSAC算法本质上是一种估计H的采样方法,如果用对数似然和的最大化代替内点数量的最大化,结果是最大似然估计(MLE)。此外,如果变换参数的先验值是有效的,可以计算出最大后验概率(MAP)。这些算法被分别成为MLESAC和MAPSAC。
段四总结:RANSAC本质上是一种估计图像间对应矩阵的采样方法。如果用对数似然和的最大化代替内点数量的最大化,结果是最大似然估计(MLE)。如果参数先验值有效,可以计算出最大后验概率MAP。对应的算法分别成为:MLESAC 和MAPSAC。不过为什么对数似然和的最大化为什么可以代替内点数量的最大化。内点指得是什么?
3.2图像匹配关系验证的概率模型
段五:对两两图像间是否存在匹配关系,我们使用一系列几何一致的特征匹配点(RANSAC内点)和一系列在重叠区域内,但不一致的特征点(RANSAC外点)来验证。【我好像想起来了,RANSAC貌似是一种算法,界外的就是外点,属于不合格的点,不相匹配的点,而RANSAC内点,就是特征匹配点。】验证模型通过比较这些正确匹配产生的一系列内点和错误匹配产生的一系列外点的概率来进行验证。
段五总结:是否匹配 通过 特征一致点和特征不一致点来判定。那下面就要说判定方法了:
段六:对于一副给定的图像,重叠区域内总的匹配特征点数量为
,内点数为
。图像是否有效匹配通过二进制变量
表示。第i个匹配特征点
是否为内点被假定为独立的伯努利分布,以便于内点总数服从伯努利分部:
(7)
(8)
其中,
是可以正确匹配图像时特征点内点的概率,
是不能实现图像匹配时特征点为内点的概率;
表示特征匹配点变量的集合
,内点数
,
是伯努利分部,表示如下:
.(9)
选择
=0.6,
=0.1,则可以使用贝叶斯规则(式10、11)计算正确图像匹配的先验概率。
(10)
=
(11)
如果满足
(12)
我们可以实现图像拼接。假定
,
,进一步得出正确图像匹配的判定条件:
(13)
其中,
=8.0,
=0.3。尽管在这我们选择了
,
,
,
和
是我们假设的值,这些数据我们可以变动的,或者 是可以让他更加精确的。比如,我们可以通过在大的数据集中计算一部分匹配点和正确的对应矩阵相一致,来估计
。最终只是为了总结这样一个公式
,要想正确匹配,必须满足内点数大于这么一个与总匹配特征点的一个函数。如果小于等于,就不能实现正确匹配。其中
。(内点数必须小于总点数。)
段七:
一旦图像间的匹配点对 确定,我么你可以找到全景序列作为连接匹配图像集,它可以识别图像集中的多个全景,拒绝 不匹配的噪声 图像。(见图2)


(g)根据对应矩阵的图像对准
图1,从所有图像中提取SIFT特征点。使用k-d数匹配所有特征点后,对于一个给定图像,用最多特征匹配点的m幅图像进行图像匹配。首先执行RANSAC算法计算出对应矩阵,然后利用概率模型验证基于内点数的图像匹配,在这个例子中,输入图像是517*374,有247个正确特征匹配点。


图2,可识别全景图。考虑一个特征匹配点的噪声集,我们使用RANSAC算法好概率验证过程找到一致的图像匹配(a),每个图像对 间的 箭头表示在图像对 间找到一致的特征匹配点集,图像匹配连接分量被找到(b),拼接成全景图(c);注意到该算法对 不属于全景图的噪声图像 不敏感。
捆绑调整下一个阶段在处理。。。
关于automatic_Panoramic_Image_Stitching_using_Invariant_features 的阅读笔记的更多相关文章
- 关于automatic_Panoramic_Image_Stitching_using_Invariant_features 的阅读笔记(2)
接上一篇: http://www.cnblogs.com/letben/p/5446074.html#3538201 捆绑调整 (好开心有同学一起来看看这些问题,要不然就是我自己的话,我应该也不会看的 ...
- 阅读笔记 1 火球 UML大战需求分析
伴随着七天国庆的结束,紧张的学习生活也开始了,首先声明,阅读笔记随着我不断地阅读进度会慢慢更新,而不是一次性的写完,所以会重复的编辑.对于我选的这本 <火球 UML大战需求分析>,首先 ...
- [阅读笔记]Software optimization resources
http://www.agner.org/optimize/#manuals 阅读笔记Optimizing software in C++ 7. The efficiency of differe ...
- 《uml大战需求分析》阅读笔记05
<uml大战需求分析>阅读笔记05 这次我主要阅读了这本书的第九十章,通过看这章的知识了解了不少的知识开发某系统的重要前提是:这个系统有谁在用?这些人通过这个系统能做什么事? 一般搞清楚这 ...
- <<UML大战需求分析>>阅读笔记(2)
<<UML大战需求分析>>阅读笔记(2)> 此次读了uml大战需求分析的第三四章,我发现这本书讲的特别的好,由于这学期正在学习设计模式这本书,这本书就讲究对uml图的利用 ...
- uml大战需求分析阅读笔记01
<<UML大战需求分析>>阅读笔记(1) 刚读了uml大战需求分析的第一二章,读了这些内容之后,令我深有感触.以前学习uml这门课的时候,并没有好好学,那时我认为这门课并没有什 ...
- Hadoop阅读笔记(七)——代理模式
关于Hadoop已经小记了六篇,<Hadoop实战>也已经翻完7章.仔细想想,这么好的一个框架,不能只是流于应用层面,跑跑数据排序.单表链接等,想得其精髓,还需深入内部. 按照<Ha ...
- Hadoop阅读笔记(六)——洞悉Hadoop序列化机制Writable
酒,是个好东西,前提要适量.今天参加了公司的年会,主题就是吃.喝.吹,除了那些天生话唠外,大部分人需要加点酒来作催化剂,让一个平时沉默寡言的码农也能成为一个喷子!在大家推杯换盏之际,难免一些画面浮现脑 ...
- Hadoop阅读笔记(五)——重返Hadoop目录结构
常言道:男人是视觉动物.我觉得不完全对,我的理解是范围再扩大点,不管男人女人都是视觉动物.某些场合(比如面试.初次见面等),别人没有那么多的闲暇时间听你诉说过往以塑立一个关于你的完整模型.所以,第一眼 ...
随机推荐
- HDU 1560 DNA sequence DFS
题意:找到一个最短的串,使得所有给出的串是它的子序列,输出最短的串的长度,然后发现这个串最长是40 分析:从所给串的最长长度开始枚举,然后对于每个长度,暴力深搜,枚举当前位是哪一个字母,注意剪枝 注: ...
- SQL竖表转横表 / 横表转竖表
竖表转横表 竖表结构: Name Course Grade 张三 语文 75 张三 数学 80 张三 英语 90 李四 语文 95 李四 数学 55 转换后横表结构: Name 语文 数学 英语 张三 ...
- office在线预览方案
一.服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览 微软方:利用Office2007以上版本的一个PDF插件SaveAsPDFandXPS.exe可以导出PDF文件,然后再利用免 ...
- POJ3016-K-Monotonic(左偏树+DP)
我觉得我要改一下签名了……怎么会有窝这么啰嗦的人呢? 做这题需要先学习左偏树<左偏树的特点及其应用> 然后做一下POJ3666,这题的简单版. 思路: 考虑一下维护中位数的过程原数组为A, ...
- spring3.0的BeanFactory上下文context获取不到bean
开门见山,背景: 系统初始化的时候扫包实例化bean,然后一个工具类实现ServletContextAware接口,拿到servletContext之后: WebApplicationContextU ...
- D3D游戏编程系列(六):自己动手编写第一人称射击游戏之第一人称视角的构建
说起第一人称射击游戏,不得不提第一人称视角啊,没有这个,那么这个第一就无从谈起啊,我作为一个观察者究竟如何在这个地图上顺利的移动和观察呢,那么,我们一起来研究下. 我们首先来看下CDXCamera类: ...
- HDU 1226 BFS
注意密码位数<=500 输出注意十六进制改成字母 要点题目都已说明 ac就好 #include<iostream> #include<stdio.h> #include& ...
- 依賴注入入門——Unity(一)
參考資料http://blog.csdn.net/m13666368773/article/details/7802126 背景介紹 在设计模式中,尤其是结构型模式很多时候解决的就是对象间的依赖关系, ...
- 在高版本SDK中打开现存低版本SDK工程
直接打开低版本SDK工程会出现错误提示:“Unable to resolve target 'android-xx” 解决方法: 1.将project.properties文件中的“target=an ...
- Datatable的Select()方法简介
DataTable是我们在进行开发时经常用到的一个类,并且经常需要对DataTable中的数据进行筛选等操作,下面就介绍一下Datatable中经常用到的一个方法——Select,微软提供了四个函数的 ...