目录

1、求解单应矩阵H

1.1 归一化

1.2 H矩阵求解原理

1.3 SVD分解

1.4 为什么 ​的第9个奇异向量就是最优解?

2. 求解基础矩阵F

2.1 推导F矩阵约束方程

2.2 SVD

2.3 F矩阵秩为2

2.4 对极约束

3 卡方检验

3.1 为什么要引用卡方检验?

3.2 卡方分布用途?

3.3 卡方分布假设检验步骤?

3.4 一个例子:抽奖机之谜

3.5 什么是显著性水平?

3.6 卡方分布是什么?

3.7 根据自由度和显著性水平查询检验统计量临界值

3.8 ORB-SLAM2中的卡方检测剔除外点策略

4 检查位姿的有效性

5 单目投影恢复3D点


本周课程重点:
1. 掌握基础矩阵F,单应矩阵H的原理(重要),可以手推过程。
2. 理解卡方检验的原理及应用。
3. 掌握检查位姿有效性的方法(重要)。

1、求解单应矩阵H

1.1 归一化

对应函数: Initializer::Normalize

原理参考:

Multiple view geometry in computer vision P109 算法4.4 . Data normalization is an essential step in the DLT algorithm. It must not be considered optional. Data normalization becomes even more important for less well conditioned problems,such as the DLT computation of the fundamental matrix or the trifocal tensor, which will be considered in later chapters.

为什么要归一化?  A*h=0  

矩阵A是利用8点法求基础矩阵的关键,所以Hartey就认为,利用8点法求基础矩阵不稳定的一个主要原因就是原始的图像像点坐标组成的系数矩阵A不好造成的,而造成A不好的原因是像点的齐次坐标各个分
量的数量级相差太大。基于这个原因,Hartey提出一种改进的8点法,在应用8点法求基础矩阵之前,先对像点坐标进行归一化处理,即对原始的图像坐标做同向性变换,这样就可以减少噪声的干扰,大大的
提高8点法的精度。
预先对图像坐标进行归一化有以下好处:
能够提高运算结果的精度, 利用归一化处理后的图像坐标,对任何尺度缩放和原点的选择是不变的。归一化步骤预先为图像坐标选择了一个标准的坐标系中心,消除了坐标变换对结果的影响。
归一化操作分两步进行,首先对每幅图像中的坐标进行平移(每幅图像的平移不同)使图像中匹配的点组成的点集的质心(Centroid)移动到原点;接着对坐标系进行缩放使得各个分量总体上有一样的平均值,各个坐标轴的缩放相同的 (看视屏比较容易理解

使用归一化的坐标虽然能够在一定程度上消除噪声、错误匹配带来的影响,但还是不够的。 参考资料 ,具体归一化操作 :一阶矩就是随机变量的期望,二阶矩就是随机变量平方的期望;一阶绝对矩定义为变量与均值绝对值的平均。

            

疑问:变换矩阵T为何这样?
答案:就是把上述变换用矩阵表示了而已

1.2 H矩阵求解原理

 
我们写成矩阵形式:

写成矩阵形式:
展开计算得到

写成齐次方程 (展开,一边化成等式
转化为矩阵形式
等式左边两项分别用A, X表示,则有
一对点提供两个约束等式,单应矩阵H总共有9个元素,8个自由度(尺度等价性,最后一个是1),所以需要4对点提供 8个约束方程就可以求解。

1.3 SVD分解

1.4 为什么 的第9个奇异向量就是最优解?

问题:这个最优解是怎么样转化为求最小特征向量问题的?
证明:当 ||x||=1时,Ax=0的最小二乘解是ATA的最小特征值对应的特征向量

证:上式等同于证明如下命题:ATA的最小特征值所对应的特征向量可使||Ax||最小。

(1)若x为ATA的特征向量,则

(2)若x不为ATA的特征向量,则可对A做SVD分解,得
因此,n维向量x可用该组基来表示:

2. 求解基础矩阵F

2.1 推导F矩阵约束方程

展开后:
等式左边两项分别用A, f表示,则有
一对点提供一个约束方程,基础矩阵F总共有9个元素,7个自由度(尺度等价性,秩为2),所以8对点 提供8个约束方程就可以求解F。

2.2 SVD

SVD分解结果:

假设我们使用8对点求解,A 是 8x9 矩阵,分解后 U 是左奇异向量,它是一个8x8的 正交矩阵, V 是右奇异向量,是一个 9x9 的正交矩阵, 是V的转置;D是一个8 x 9 对角矩阵,除了对角线其他元素均为0,对角线元素称为奇异值,一般来说奇异值是按照 从大到小的顺序降序排列。因为每个奇异值都是一个残差项,因此最后一个奇异值最小,其含义就是最 优的残差。因此其对应的奇异值向量就是最优值,即最优解。中的每个列向量对应着D中的每个奇异值,最小二乘最优解就是对应的第9个列向量,也就是基础矩阵F的元素。这里我们先记做 Fpre,因为这个还不是最终的F

2.3 F矩阵秩为2                                

理解上面矩阵处理的流程

2.4 对极约束

对极约束(极线约束)示意图

3 卡方检验

3.1 为什么要引用卡方检验?

以特定概率分布为某种情况建模时,事物长期结果较为稳定,能够清晰进行把握。比如抛硬币实验。 但是期望与事实存在差异怎么办?偏差是正常的小幅度波动?还是建模错误?此时,利用卡方分布分析
结果,排除可疑结果。 简单来说:当事实与期望不符合情况下使用卡方分布进行检验,看是否系统出了问题,还是属于正常波动

3.2 卡方分布用途?

检查实际结果与期望结果之间何时存在显著差异。
1、检验拟合程度:也就是说可以检验一组给定数据与指定分布的吻合程度。如:用它检验抽奖机收益的 观察频数与我们所期望的吻合程度。
2、检验两个变量的独立性:通过这个方法检查变量之间是否存在某种关系。

3.3 卡方分布假设检验步骤?

1、确定要进行检验的假设(H0)及其备择假设H1.
2、求出期望E.
3、确定用于做决策的拒绝域(右尾).
4、根据自由度和显著性水平查询检验统计量临界值.
5、查看检验统计量是否在拒绝域内.
6、做出决策.

3.4 一个例子:抽奖机之谜

抽奖机,肯定都不陌生,现在一些商场超市门口都有放置。正常情况下出奖概率是一定的,综合来看,商家收益肯定大于支出。 倘若突然某段时间内总是出奖,甚是反常,那么到底是某阶段是小概率事件还是有人进行操作了?抽奖 机怎么了?针对这种现象或者类似这种现象问题则可以借助卡方进行检验,暂且不着急如何检验,还是补充一下基础知识,再逐步深入解决问题。【常规事件中出现非常规现象,如何检查问题所在的情况下 使用卡方分布】  
下面是某台抽奖机的期望分布,其中X代表每局游戏的净收益(每局独立事件):

目的:在5%的显著性水平下,看看能否有足够证据证明判定抽奖机被人动了手脚。 要检验的原假设是什么?备择假设是什么?

3.5 什么是显著性水平?

显著性水平是估计总体参数落在某一区间内,可能犯错误的概率,用α表示。 显著性水平是假设检验中的一个概念,是指当原假设为正确时人们却把它拒绝了的概率或风险。它是公认的小概率事件的概率值,必须在每一次统计检验之前确定,通常取α=0.05α=0.01。这表明,当作出 接受原假设的决定时,其正确的可能性(概率)为95%99%。 卡方分布指出观察频数与期望频数之间差异显著性,和其他假设一样,这取决于显著性水平。
1显性水平α进行检验,则写作:(常用的显著性水平1%和5%)
2检测标准:卡方分布检验是单尾检验且是右尾,右尾被作为拒绝域。于是通过查看检验统计量是否位于右尾的拒绝域以内,来判定期望分布得出结果的可能性。

3卡方概率表的使用:卡方临界值表是给定可以查询的
问题简述 :抽奖机平常收益者总是商家,突然一段时间总是出奖。本来小概率事件频发,我们利用卡方的检验拟合 优度看看能否有足够证据证明判定抽奖机被人动了手脚

3.6 卡方分布是什么?

通过一个检验统计量来比较期望结果实际结果之间的差别,然后得出观察频数极值的发生概率。 计算统计量步骤: (期望频数总和与观察频数总和相等)
1、表里填写相应的观察频数和期望频数
2、利用卡方公式计算检验统计量:

利用抽奖机的观察频率和期望频率表计算检验统计量

3.7 根据自由度和显著性水平查询检验统计量临界值

自由度的影响 。自由度:用于计算检验统计量的独立变量的数目。

当自由度等于1或者2时:卡方分布先高后低的平滑曲线,检验统计量等于较小值的概率远远大于较大值 的概率,即观察频数有可能接近期望频数。 当自由度大于2:卡方分布先低后高再低,其外形沿着正向扭曲,但当自由度很大时,图形接近正态分 布。 自由度的计算, 对于单行或单列:自由度 = 组数-限制数 ,对于表格类:自由度 = (行数 - 1) * (列数 - 1)

对于 抽奖机的例子,自由度为5-1=4
自由度为4, 5%显著水平的拒绝域是多少? 查表,自由度F=4,显著性为0.05,对应拒绝域 为。也就是说检验统计量大于9.49 位于拒绝域内

决策原则:
如果位于拒绝域内我们拒绝原假设H0,接受H1。 如果不在拒绝域内我们接受原假设H0,拒绝H1 ,检验统计量38.272 > 9.49 位于拒绝域内 ,于是拒绝原假设:抽奖机每局收益如何概率分布,也就是说抽奖机被人动了手脚 ,检验统计量拒绝域内外判定:
1、求出检验统计量a
2、通过自由度和显著性水平查到拒绝域临界值b
3、a>b则位于拒绝域内,反之,位于拒绝域外。

3.8 ORB-SLAM2中的卡方检测剔除外点策略

误差的定义:

为多维标准正态分布。 也就是说不同金字塔层提取的特征,计算的重投影误差都被归一化了,或者说去量纲化了,那么,我们 只用一个阈值就可以了。 可见: 金字塔层数越高,图像分辨率越低,特征提取的精度也就越低,因此协方差越大 。单目投影为2自由度,在0.05的显著性水平(也就是95%的准确率)下,卡方统计量阈值为5.99 。双目投影为3自由度,在0.05的显著性水平(也就是95%的准确率)下,卡方统计量阈值为7.81,
disparity就是另一个自由度 ,LocalMapping.cc 里面
双目相机
参考1,参考2

4 检查位姿的有效性

针对函数Initializer::CheckRT 。第2个相机光心在第1个相机下的坐标:

5 单目投影恢复3D点

为方便推导,简单记为
两对匹配点

第3周课件-全网最详细的ORB-SLAM2精讲相关推荐

  1. oracle数据库sql培训,Oracle数据库SQL语言实战培训教程(全面、详细、案例、精讲)套餐...

    风哥oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 套餐介绍: 风哥Oracle数据库SQL语言实战培训教程(案例.精讲)套餐,DBA必备技能. 内容: SQL语言基础入 ...

  2. Python精讲Numpy基础,大牛笔记详细解释

    https://www.toutiao.com/a6664936105076326920/ 总认为Numpy是渣渣,直到深入接触以后才知道功能这么强大.堪比Matlab啊.果然是人生苦短,我用Pyth ...

  3. pythonnumpy详解_Python精讲Numpy基础,大牛笔记详细解释

    以前总认为Numpy是渣渣,直到深入接触以后才知道功能这么强大.堪比Matlab啊.果然是人生苦短,我用Python.所以本文作为一个记录&笔记,文章内容大多数取自网络以&官网快速入门 ...

  4. 赢在微点答案专区英语_高考英语怎么拿140+?全网最详细分阶段学习方法!

    作者介绍: 小胖学长,毕业于某省重点高中,在校期间英语单科多次排名年级前列.全国一卷高考英语145,现就读于西南政法大学. "在高中阶段所有学科中,英语是提分性价比最高的科目.只要你有付出, ...

  5. “是男人就下一百层”h5游戏全网最详细教学、全代码,js操作

    "是男人就下一百层"h5游戏全网最详细教学.全代码,js操作 博主的话 游戏展示 编程工具介绍 游戏代码 代码讲解 js 第一步 切换div的显示与隐藏 js 第二步 在菜单页面用 ...

  6. 全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解)

    全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案(图文详解) 参考文章: (1)全网最详细的Windows里Anaconda-Navigator启动后闪退的解决方案 ...

  7. 全网最详细的大数据集群环境下如何正确安装并配置多个不同版本的Cloudera Hue(图文详解)...

    不多说,直接上干货! 为什么要写这么一篇博文呢? 是因为啊,对于Hue不同版本之间,其实,差异还是相对来说有点大的,具体,大家在使用的时候亲身体会就知道了,比如一些提示和界面. 全网最详细的大数据集群 ...

  8. 全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问题的解决办法(图文详解)

    全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问题的解决办法(图文详解) 参考文章: (1)全网最详细的HBase启动以后,HMaster进程启动了,几秒钟以后自动关闭问 ...

  9. 全网最详细的深度学习pytorch-gpu环境配置

    学习深度学习第一步就是环境的配置,相信很多小伙伴已经被什么anaconda,tensorflow,Pytorch,cuda这些东西搞得晕头转向,今天带大家详细配置深度学习的环境,这一篇准要教书Pyto ...

最新文章

  1. UART0串口编程(五):串口编程(UART0)之UC/OS(一)UC/OS下的串口发送任务编程
  2. NTU 课程辅助笔记: NFA到DFA的转化
  3. web业务系统权限控制
  4. E:Johnny and Grandmaster
  5. 从Java程序员进阶到架构师,6大核心技能要领详解
  6. 统计表达式二叉树操作数个数
  7. pg_restore使用
  8. Node编写API接口,ajax实现增删改查
  9. 取得数组最大值与最小值
  10. breakall lisp文件_CAD导入草图大师后自动成面
  11. 破解TexturePacker加密资源
  12. 牛客网Python篇入门编程习题
  13. 如何抓取图片php,PHP网络爬虫之图片抓取
  14. 机器学习 入门详细解析(三)线性回归、岭回归、逻辑回归、聚类
  15. 3、NC系统接口集(持续更新)
  16. 【arduino 问题记录】 psram: PSRAM ID read error: 0xffffffff
  17. 关于 vue项目 中实现导入Excel表 + 预览生成的Excel
  18. 新用户腾讯云国外服务器2核4G服务器使用攻略
  19. 未定义标识符ULONG_PTR,BOOL等错误解决方法
  20. 工欲善其事,必先利其器(Eclipse篇)

热门文章

  1. JS在数组对象中添加新字段
  2. Win7管理受信任证书 - CA证书 - 系统根证书
  3. docker安装apollo
  4. 海思3559A的一些工具探索尝试
  5. 如何自己编写字符串处理函数
  6. 《阴阳师》手游分析报告
  7. React的Render的简单实现
  8. 针对网络层的DoS攻击
  9. red5 FAQ - 刚接触red5的可以看看
  10. 用EFS加密文件的方法