Tsai两步标定法

Tsai说:在对摄像机进行标定时如果考虑过多的非线性畸变会引入过多的非线性参数,这样往往不仅不能提高标定精度,反而会引起解的不稳定,与线性模型标定类似,只是正交了,理想成像平面到实际成像平面之间的转换。因此,Tsai两步标定法只考虑了径向畸变,也是大多数情况下会存在的畸变类型。
Tsai存在的弊端: 无法通过一个平面标定全部的外参数,涉及非线性运算可能使得结果不稳定。
两步
第一步利用最小二乘法解超定线性方程组,给出外部参数,求得的参数为:r1-r9,sx,tx,ty
第二步求解内部参数,如果摄像机无透镜畸变,可一个超定线性方程解出,如果存在径向畸变,则通过一个三变量的优化搜索求解,求得参数为:有效焦距f, T中的tz和透镜畸变系数k
存在径向畸变的坐标系之间的关系:

Pu:理想成像点,pd:实际成像点,畸变没有导致方向发生改变

由像素坐标系和世界坐标系之间的关系,添加畸变系数后得到如下公式,其中,(xc,yc,zc)为某物在摄像机坐标系下的坐标,(xw,yw,zw)为某物在世界坐标系下的坐标。将前面所述的矩阵关系写成方程
的形式:

由于方向一致,及方向平行:

整理得:

将标定板设置为Z平面,可选取世界坐标系z=0(则含有zw项为零)

对于一张图像中的N个点进行计算,上式可以修改如下:

此时,求得r1,r2,tx,r4,r5
利用R(旋转矩阵)的正交性,求得ty,r1—r9
此时求得了相机模型的外部参数
第二步:求解内部参数
设置畸变系数K=0为初始值,暂时不考虑K得到超定方程组。


求得f和tz,作为初始值,使用优化算法进行迭代更新,得到更精确的相机参数k,f,tz,比如最小二乘法。

【相机标定】传统相机标定技术-Tsai两步法相关推荐

  1. Tsai两步法求手眼标定矩阵

    Tsai两步法求手眼标定矩阵 Tsai方法介绍 术语概念 齐次变换矩阵和坐标系的定义 旋转轴和旋转角度 引理的证明和解释 AX=XB构造 引理1 引理2 引理3 引理4 引理5 引理6 --得到公式( ...

  2. 工业机器人手眼标定(眼在手)方程AX=XB采用Tsai两步法进行求解的过程并分析

    参考博客: https://blog.csdn.net/yunlinwang/article/details/51622143 该博客内容基本把Tsai求解该方程的过程已经阐述清楚了.只是没有写一个反 ...

  3. 相机模型与标定(八)--传统相机标定算法简介

    原文: http://blog.sina.com.cn/s/blog_b364631a0101iopy.html 一.相机数学模型 相机模型为以后一切标定算法的关键,只有这边有相当透彻的理解,对以后的 ...

  4. 标定代码:Tsai两步标定法(matlab)

    Tsai考虑的是,在相机标定环节如果考虑过多的非线性畸变会引入过多的非线性参数,这样往往不仅不能提高标定精度,还会引起解的不稳定,所以Tsai两步标定法只考虑了径向畸变. 算法步骤:先求解外参,在求解 ...

  5. 相机模型与标定(一)--相机标定概述

    以下内容来自: http://baike.baidu.com/link?url=RAjUg33ftcbDDjE_tFKS80p_azC9REyLOzBTbqqSq5iIIXo0sp20NJk28RW- ...

  6. OpenCv相机标定——圆形标定板标定

    OpenCv相机标定--圆形标定板标定 0.前言 1.标定图案 2.OpenCv标定 3.标定结果分析 0.前言   OpenCv中,相机标定所使用的标定图案分为棋盘格.对称圆形及非对称圆形特征图.A ...

  7. 机器人抓取—— 相机参数与标定 camera_calibration

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 整理丨古月居 相机的参数 参考: https://blog.csdn.net/weixin_4320 ...

  8. 张正友相机标定Opencv实现以及标定流程标定结果评价图像矫正流程解析(附标定程序和棋盘图)

    from:https://blog.csdn.net/dcrmg/article/details/52939318 使用Opencv实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么 ...

  9. 相机模型与标定(四)--opencv单目标定例子使用说明

    原文: http://blog.csdn.net/t247555529/article/details/47836233 最近一个项目要进行相机的标定,作为一个菜鸟,瞎搞一下午才搞定,于是写篇博客记录 ...

最新文章

  1. Web开发的机器学习框架
  2. 实践操作:六步教你如何用开源框架Tensorflow对象检测API构建一个玩具检测器
  3. 【软件工程】CMMI 能力成熟度模型集成 ( CMMI 过程管理过程域 | CMMI 项目管理过程域 ) ★
  4. TCP实现在不同局域网下的两台电脑网络通信(Python实现)
  5. afe模拟前端的重要性_UCD3138模拟前端(AFE)模块:模拟前端模块(AFE)简介
  6. How to create a Python dictionary with double quotes as default quote format?
  7. 微信小程序 全局变量异步函数_微信小程序制作简述
  8. 我如何向团队解释依赖注入
  9. 使用html记笔记,开始学习HTML,并记下笔记
  10. [DP]Luogu 2014NOIP提高组 飞扬的小鸟题解
  11. 分位数回归--基于R
  12. 使用Python获取100以内的质数
  13. c/c++回车不换行
  14. Linux: meld软件使用
  15. Mysql 中 case when then else end 用法
  16. android 您的手机上未安装应用程序的解决方法
  17. 日本疫情 和 goto旅行优惠
  18. 删除迅雷看看文件夹右键菜单的卸载残留
  19. Facebook开源Linux内核组件和工具:BPF、Btrfs、Netconsd、Cgroup2、PSI、Oomd
  20. Unable to load project

热门文章

  1. A*算法中的估价函数
  2. 给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大 java实现
  3. Matlab的曲线拟合工具箱CFtool的使用
  4. 慧算账以互联网模式撬动财税服务市场
  5. 安装Visual Studio 2015(VS2015)时提示安装包JavaScript_ProjectSystem.msi丢失或损坏的解决方法
  6. 【MySQL】mysql数据库安装失败的解决办法
  7. 求救!搞不明白(?u)代表什么
  8. 微信公众号授权openid(php实现)
  9. 神笔马良——把图形「画」在音频里(译文 Draw Into Sound)
  10. 手把手教你安卓蓝牙显示歌词