摘要:

每张图片有m个棋盘格角点,m≥4.----------->用于获得单应矩阵
需要拍摄n张标定图片,n≥3------------------->用于从单应矩阵中分离得到内参和外参

问题:如何从H中,分离内参和外参?

思路:利用旋转向量的约束关系

推导:

根据《单应矩阵与四点标定》,
H=K⋅[r1r2T]=[fx0u00fyv0001][r1r2T]=[h1h2h3]H=K·\begin{bmatrix} r_1&r_2&T \end{bmatrix}= \begin{bmatrix}f_x&0&u_0\\0& f_y&v_0\\0&0&1 \end{bmatrix} \begin{bmatrix}r_1&r_2&T \end{bmatrix} =\begin{bmatrix} \mathbf{ h_1}&\mathbf{ h_2}&\mathbf{ h_3} \end{bmatrix} H=K⋅[r1​​r2​​T​]=⎣⎡​fx​00​0fy​0​u0​v0​1​⎦⎤​[r1​​r2​​T​]=[h1​​h2​​h3​​]
其中h1,h2,h3\mathbf{ h_1,h_2,h_3}h1​,h2​,h3​表示单应矩阵的列向量。矩阵运算得到
r1=λM−1h1r2=λM−1h2t=λM−1h3\mathbf{ r_1}=\lambda M^{-1}h_1\\ \mathbf{ r_2}=\lambda M^{-1}h_2\\ \mathbf{ t}=\lambda M^{-1}h_3 r1​=λM−1h1​r2​=λM−1h2​t=λM−1h3​
根据r1,r2r_1,r_2r1​,r2​的正交,一个单应矩阵H得到两个约束条件:

  • 旋转向量点积=0(两垂直平面上的旋转向量相互垂直),r1Tr2=0r_1^Tr_2=0r1T​r2​=0
  • 旋转向量长度相等(旋转不改变尺度),∣∣r1∣∣=∣∣r2∣∣=1||r_1||=||r_2||=1∣∣r1​∣∣=∣∣r2​∣∣=1

对于内参矩阵,令B=(K−1)TK−1B=(K^{-1})^TK^{-1}B=(K−1)TK−1,分析得B为3*3对称矩阵,真正有用的元素为6,带入约束条件得:

  • h1TBh2=0\mathbf{ h_1}^TB\mathbf{ h_2}=0h1​TBh2​=0
  • h1TBh1=h2TBh2\mathbf{ h_1}^TB\mathbf{ h_1}=\mathbf{ h_2}^TB\mathbf{ h_2}h1​TBh1​=h2​TBh2​

定义第i列列向量:
hi=[hi1hi2hi3]T\mathbf{ h_i}=\begin{bmatrix} h_{i1}&h_{i2}&h_{i3} \end{bmatrix}^Thi​=[hi1​​hi2​​hi3​​]T


hiTBhj=vijTb\mathbf{ h_i}^TB\mathbf{ h_j}=v_{ij}^Tbhi​TBhj​=vijT​b

其中
vij=[hi1hj1hi1hj2+hi2hj1hi2hj2hi3hj1+hi1hj3hi3hj2+hi2hj3hi3hj3],b=[B11B12B22B13B23B33]v_{ij}=\begin{bmatrix} h_{i1}h_{j1}\\h_{i1}h_{j2}+h_{i2}h_{j1} \\ h_{i2}h_{j2}\\h_{i3}h_{j1}+h_{i1}h_{j3}\\ h_{i3}h_{j2}+h_{i2}h_{j3}\\ h_{i3}h_{j3} \end{bmatrix} ,b= \begin{bmatrix}B_{11}\\B_{12}\\B_{22}\\ B_{13}\\B_{23}\\B_{33}\\ \end{bmatrix}vij​=⎣⎢⎢⎢⎢⎢⎢⎡​hi1​hj1​hi1​hj2​+hi2​hj1​hi2​hj2​hi3​hj1​+hi1​hj3​hi3​hj2​+hi2​hj3​hi3​hj3​​⎦⎥⎥⎥⎥⎥⎥⎤​,b=⎣⎢⎢⎢⎢⎢⎢⎡​B11​B12​B22​B13​B23​B33​​⎦⎥⎥⎥⎥⎥⎥⎤​

则约束条件可以表示为:

[v12Tv11T−v22T]b=0\begin{bmatrix}v_{12}^T\\v_{11}^T-v_{22}^T \end{bmatrix}b=0 [v12T​v11T​−v22T​​]b=0
如果n张不同角度的标定图片,每张图片得到2个等式,矩阵vij可以通过单应矩阵得到,b中有6个位置元素,所以至少需要图片数n>=3

得到矩阵B之后,容易得到内参fx,fy,u0,v0,γ,λf_x,f_y,u_0,v_0,\gamma,\lambdafx​,fy​,u0​,v0​,γ,λ,从而得到外参 r1,r2,r3,tr_1,r_2,r_3,tr1​,r2​,r3​,t

小结:

每张图片有m个棋盘格角点,m≥4.----------->用于获得单应矩阵
需要拍摄n张标定图片,n≥3------------------>用于从单应矩阵中分离得到内参和外参

参考资料

计算机视觉life公众号,作者:sixgod《从零开始学习 【张氏相机标定法】》系列

Step4:从单应矩阵中分离得到内参和外参(需要拍摄n=3张标定图片)相关推荐

  1. 4.从单应矩阵中分离得到内参和外参(需要拍摄n=3张标定图片)

    https://blog.csdn.net/weixin_43206570/article/details/85037869

  2. 单应矩阵(Homography)基本概念和代码测试

    简 介: 应用棋盘格图片或者相机图片中与标准棋盘格之间的单应矩阵.其中应用到opencv中的findChessboardCorners, findHomographys等函数. 这位利用单应矩阵进行下 ...

  3. 通过SVD求解单应矩阵

    我们现在知道原则上4对匹配点对就可以唯一确定单应矩阵,但是在实际应用中我们无法保证两个视图严格满足使用条件(只有旋转变换:远景:平面场景),所以要使用拟合的方法求一个最优解.现在就来以SIFT算法源码 ...

  4. 什么是单应矩阵和本质矩阵

    知乎上面的大牛还是很多,直接搜Homography或者单应矩阵就能得到很多大神的回答,可能回答中的一句话或者一个链接就够自己学习很久. 其实在之前研究双目视觉的时候就接触了对极几何,通过视觉就可以得到 ...

  5. SLAM笔记(四)运动恢复结构的几何数学(本征矩阵、单应矩阵、基础矩阵)

    1. 间接法进行运动恢复的前提假设 对于结构与运动或视觉三维重建中,通常假设已经通过特征匹配等方法获取了匹配好的点对. 先求出匹配点对再获取结构和运动信息的方法称作间接法. 间接法最重要的三个假设是: ...

  6. 异构系统中的UUV、异构系统模型统一化及单应矩阵在异构系统中的应用

    异构系统中的UUV.异构系统模型统一化及单应矩阵在异构系统中的应用 UUV发展趋势及关键技术 异构编队系统编队 异构系统模型统一化 单应矩阵在异构系统中的应用 UUV发展趋势及关键技术 上一篇多智能体 ...

  7. H(单应矩阵homography),本质矩阵(Essential Matrix)和F(基础矩阵fundamental)

    文章目录 A x = 0 Ax=0 Ax=0 问题的求解 H(单应矩阵homography),本质矩阵(Essential Matrix)和F(基础矩阵fundamental) 单应矩阵 求解H步骤 ...

  8. ORB-SLAM2从理论到代码实现(四):相机成像原理、基本矩阵、本质矩阵、单应矩阵、三角测量详解

    由于ORBmatcher.cc中有三角化和重投影等内容,所有我先写相机成像等多视图几何内容. 1. 相机的成像原理 假设空间中有一点P,它在世界坐标系中的坐标为,在相机坐标系中的坐标为,在图片中的像素 ...

  9. 计算机视觉三维重建的几何基础:坐标系与关键矩阵(基础矩阵、本质矩阵、单应矩阵)...

    作者丨李迎松@知乎 来源丨https://zhuanlan.zhihu.com/p/159194599 编辑丨3D视觉工坊 你站在桥上看风景, 看风景人在楼上看你. 明月装饰了你的窗子, 你装饰了别人 ...

  10. 多视图几何总结——单应矩阵和基础矩阵的兼容关系

    多视图几何总结--单应矩阵和基础矩阵的兼容关系 多视图几何总结--单应矩阵和基础矩阵的兼容关系 (1)单应矩阵和基础矩阵的兼容性 (2)基础矩阵 -> 单应矩阵 (3)单应矩阵 -> 基础 ...

最新文章

  1. python爬虫自学笔记分析解密_Python爬虫自学系列(七) -- 项目实战篇(一)
  2. 同步模式下的端口映射程序
  3. mac搭建本地svn
  4. extjs 验证消息不显示
  5. Keras学习---RNN模型建立篇
  6. ref: 九大数据仓库方案特点比较
  7. mysql分析语句方法_Mysql分析-常用分析语句总结
  8. pdf 复制文本 乱码_如何在保留格式的同时从PDF复制文本?
  9. 百度指数和股票的相关性
  10. 数据集-知识图谱:FreeBase(通用知识图谱)【英文】
  11. 用python爬取交大图书馆图书信息
  12. win7 linux ssh key,Windows下创建SSH Key并登录Linux服务器
  13. 阿里云面经之实习二面
  14. 中台战略全解读(三):业务中台建设
  15. 《高效的项目和团队》
  16. RabbitMQ学习笔记(高级篇)
  17. Stlink固件更新问题“ST-Link is not in the dfu mode Please restart it“的解决方法
  18. pandas——数据移位、数据转换、数据合并、数据导出和日期数据的处理,时间序列等
  19. #C语言学习——第一周 求长方形周长面积
  20. 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)。

热门文章

  1. QA:filter-自适应均衡器
  2. 快速锁定计算机的按键的快捷键,win7系统如何设置锁定计算机快捷键
  3. 如何有效地描述软件缺陷(Defect)?
  4. Surface Defect Detection Methods for Industrial Products : A Review
  5. SpringBoot-logback日志管理
  6. 七大江河水系--淮河
  7. 【设计模式】-状态模式->APP抽奖活动(源码与类图解析)
  8. 运用C语言文件编写自动评分系统,C语言程序题自动评分系统的研究与实现
  9. Predicting microbial interactions through computational approaches
  10. 抑郁症治疗过程中有哪些变化?