极几何是机器人视觉分支——双目视觉中,最为重要的概念。与结构光视觉不同,双目视觉是主!动!测!量!方法。

1、极几何的研究前提

  极几何的研究对象是两幅有重叠区域图像。研究目标是提取相机拍摄位姿之间的关系。一旦得到两次拍摄位姿之间的关系,我们就可以对场景点进行三维重建。

  极几何定义的物理量包括4个:1、极点,2、极线,3、基本矩阵,4、本征矩阵;定义如左图。

  极几何研究的物理量包括4个:C1坐标,C2坐标,R,T,定义如右图。

  

   极点的本质是另一台相机光心在本图像上的映射点。极线的本质是另一台相机光线在本图像上的映射线。(极点和极线都是在图像上的)

1.1、本征矩阵

  本征矩阵携带了相机相对位置信息。其推导如下:

  在相机2的坐标系中,场景点坐标:X2 = RX1+ t

            相机1光心坐标:t

         极线在空间中的映射 :X2 - t = RX1

  此时,三个向量在同一个平面上,则有: X2tRX1  = 0

  其中,tx  代表 t 的叉乘矩阵。tR 称为本征矩阵E. 两幅图片一旦拍摄完成R与T都是确定的。空间中任何一组对应点都必须满足本征矩阵!

1.2、基本矩阵

  空间中的点满足E矩阵,则该点坐标Zoom后,仍然必须满足E矩阵。坐标的Zoom显然和相机内部矩阵有关。

  在相机坐标系下:

  x1 = KX1; x2 = KX2

  其中,x1 ,x2 是齐次像素坐标。那么,X1  =  K-1x1 ;X =  K-1x2

  带入本征矩阵可得:

  x2 T K-TtRK-1 x = 0  ======>      K-TEK-1  = 0  =========>  x2 F  x = 0

  F  =   K-TEK-1  称为基本矩阵。基本矩阵所接受的是齐次像素坐标。

  基本矩阵的秩是2,因为它有0空间。同时,其自由度是8,因为它接受的是齐次坐标。每组图像点可以提供1个方程,所以由8组点就可以线性解出F矩阵。当然,解法是化成Ax = 0,然后使用奇异值分解取v的最后一列。然后2次奇异值分解去掉最小奇异值正则化。

1.3、极点与极线

  从基本矩阵可知:x2 F  x = 0

  显然这里有熟悉的身影,由点线对偶可知,x在直线 F  x1  上。 该直线是极线在图像2上的方程。x1 在直线 x2 F   。 该直线是极线在图像1上的方程。

  极点是多条极线的交点(最少两条)

2、由本征矩阵恢复R,T

  E =  tR = [ tr1  tr2  tr3 ]

  E的秩为2,因为其有0空间。同时,由于r1 r2 r3 是正交的,所以其叉乘之后必然也是正交的。所以不妨假设其叉乘完之后依然满足旋转矩阵的某些性质。比如:每一列,模相等。

  由  tE = 0 可知,对E奇异值分解之后,t 为最小奇异值所对应的 u(:,end). 如下:

  

  

  这里假设了 R = UYV.因为U,V和R是同族的。所以必然由矩阵Y使得上式成立。V是相互垂直的,R的作用是旋转,U则必然是相互垂直的。所以这里R一定有解,不妨设一个中间变量Y。并很容易解得:

  

  综合来看,由4组可能的解,对应以下四种情况,其中只有第一种是可能的。故det(R) = 1 则猜z中了正确的解,如果det(R) = -1 则解为:t = -t 。R = -R

  

3、由空间位置关系恢复三维坐标

  在已知标定信息,两相机位置关系的情况下,就已知了两个相机的投影矩阵P,对于空间中一点X1,有以下关系:

  x1 =  P*X1

  [x1]P X1 = 0;

  显然,我们又有了Ax = 0的神奇形式。奇异值分解搞定之。

4、由RANSAC求 F 矩阵

   有了8个对应点,我们就可以求得F矩阵,再加上K,我们就可以对两幅图片进行三维重建。然而想要自动的求取8个对应点还是有一定难度。

  SIFT算法提供了一种自动匹配的可能性,然而,匹配结果还有很多误匹配的点。本节的目标是利用RANSAC作为算法基础,基础矩阵作为方法,来对匹配结果进行判断。

  首先,由于检测误差等因素,像素点不可能恰好满足基本方程。所以点到极线会有一定的距离。我们采用垂直距离来建模,有以下表达式:

   

  F1表示F的第一列。只要误差小于阈值,都认为该点符合 F 方程。

  算法流程如下:

  1、随机取8个点

  2、估计F

  3、计算所有点的e,并求#inlier

  4、回到1,2,3,如果#inlier变多则更新F_candidate

  5、迭代很多次结束,F_candidate 为F的估计值

  RANSAC算法又一次证明了其对噪声超级好的控制能力。

  

 

  

机器人学 —— 机器人视觉(极几何)相关推荐

  1. 机器人学 —— 机器人视觉(基础)

    机器人视觉是一种处理问题的研究手段.经过长时间的发展,机器人视觉在定位,识别,检测等多个方面发展出来各种方法.其以常见的相机作为工具,以图像作为处理媒介,获取环境信息. 1.相机模型 相机是机器人视觉 ...

  2. 视觉SLAM⑦---视觉里程计Ⅰ(特征点法、2D-2D对极几何)

    目录 7.0 本章主要目标 7.1 特征点法 7.1.1 特征点 7.1.2 ORB特征 7.1.3 特征匹配 7.2 实践:特征提取和匹配 7.2.1 OpenCV的ORB特征 7.2.2 手写OR ...

  3. 机器人锤石下路组合_下周二,极智嘉研发总监讲解物流机器人视觉感知与定位关键技术...

    工业互联网浪潮下,智慧物流已从概念走上快速发展的道路.作为劳动密集型行业,仓储物流对效率的要求也在不断提高.在这样的背景之下,物流机器人成为仓储物流行业在解决高度依赖人工.业务高峰期分拣能力有限等瓶颈 ...

  4. 视觉SLAM笔记(32) 2D-2D: 对极几何

    视觉SLAM笔记(32) 2D-2D: 对极几何 1. 匹配点几何关系 2. 对极约束 3. 本质矩阵 4. 八点法 5. 单应矩阵 1. 匹配点几何关系 现在,假设从两张图像中,得到了一对配对好的特 ...

  5. 高博14讲--第七讲 视觉里程计-7.3 2D-2D:对极几何

    高博14讲--第七讲 视觉里程计-7.3 2D-2D:对极几何 基本问题 对极约束 对极约束推导过程 本质矩阵 八点法 八点法推导过程 本质矩阵$\ E$的SVD分解 单目SLAM的一些问题 尺度不确 ...

  6. 视觉SLAM14讲笔记04:ch7对极几何(epipolar geometry)

    2D-2D:对极几何(epipolar geometry) 对极约束 现在,假设我们从两张图像中,得到了一对配对好的特征点,像图7-7里显示的那样.如果我们有若干对这样的匹配点,就可以通过这些二维图像 ...

  7. 基于图像的三维模型重建——相机模型与对极几何

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:梦寐mayshine https://zhuanlan.zhihu.com/p/12968108 ...

  8. 计算机网络和机器视觉,一文读懂计算机视觉和机器人视觉

    计算机视觉与机器人视觉有很多的相似之处,两者的基本理论框架.底层理论.算法等是相似的,但计算机视觉与机器人视觉研究的最终目的不同:前者主要研究视觉检验,精度要求高,速度不是主要考虑的问题:而机器人视觉 ...

  9. 3月9日 笔记:RANSAC随机样本一致性,灭点、对极几何计算、H矩阵、PNP估计相机位置,3D匹配、投影变换、N点定位求解姿态

    [修订]: 2020-03-11:特征匹配 分为:(1)2D-2D : (2)2D-3D : (3)3D-3D https://www.zhihu.com/question/51510464 2D-2 ...

最新文章

  1. PageAdmin CMS网站建设教程:如何实现信息的定时发布
  2. 移相全桥 matlab仿真,MATLAB中的SISOTOOL在数字式移相全桥中的应用
  3. android git提交整个项目_使用git管理嵌入式软件版本
  4. 【对讲机的那点事】450MHz模拟无线列调的工作原理(连载五)
  5. H5的Websocket基本使用
  6. dat文本导入mysql_mysql学习笔记(九) 增删改查的优化
  7. 信息学奥赛一本通 1091:求阶乘的和 / 2026:【例4.12】阶乘和 / OpenJudge NOI 1.5 34
  8. oracle交流 提问,Oracle常见提问6(转)
  9. tensorflow之control_dependencies
  10. 每天学一点Scala之 take、takeRight、takeWhile 与 filter
  11. 堆排序(C语言实现)
  12. 编译原理第三章词法分析知识点思维导图版
  13. (九) LBP特征提取
  14. matlab折线参数,matlab画含参数曲线族
  15. 用计算机弹麻雀,玩麻雀弹
  16. 强化学习——蒙特卡洛方法
  17. 青龙-聚看点(稳定的毛)
  18. 使用planttml 画流程图
  19. kali linux nmap扫描(二)_商洛学院司徒荆_新浪博客
  20. 【Windows】之搭建 Go 语言环境

热门文章

  1. 三维重建4:Jacobian矩阵和Hessian矩阵
  2. android 下滑,Android实现下滑和上滑事件
  3. Micronaut for Spring支持Spring Boot应用以Micronaut形式运行
  4. 2018.12.30|区块链技术头条
  5. 2016 Top 10 Android Library
  6. 磁盘分区原理:从MBR到GPT
  7. POJ 1287 Prim算法模板
  8. 线程(CreateThread)
  9. select下拉option跳转页面
  10. Windows10 手机应用程序开发 - 3. 做一个简单的计算器界面