相机标定(一)-原理及内参、外参

相机标定(一)-原理及内参、外参在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。…

大家好,又见面了,我是你们的朋友全栈君。

>>>文章索引<<<

相机标定(一)-原理及内参、外参
相机标定(二)-畸变校正,张正友标定法
相机标定(三)-相机成像模型


在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数。在大多数条件下这些参数必须通过实验与计算才能得到,这个求解参数的过程就称之为相机标定(或摄像机标定)。无论是在图像测量或者机器视觉应用中,相机参数的标定都是非常关键的环节,其标定结果的精度及算法的稳定性直接影响相机工作产生结果的准确性。因此,做好相机标定是做好后续工作的前提,提高标定精度是科研工作的重点所在。

1 坐标系基础

理解四个坐标系是进行相机标定的基础,它们是:

  • 图像像素坐标系
  • 图像物理坐标系
  • 相机坐标系
  • 世界坐标系

1.1 图像像素坐标系、图像物理坐标系

在这里插入图片描述

  • 图像像素坐标系:是一个二维直角坐标系,反映了相机CCD芯片中像素的排列情况。其原点 O O O位于图像的左上角, u u u、 v v v坐标轴分别余图像的两条边重合。像素坐标为离散值(0,1,2,…),以像素(pixel)为单位。
  • 图像物理坐标系:为了将图像与物理空间相关联,需要将图像转换到物理坐标系下。原点 O O O位于图像中心(理想状态下),是相机光轴与像平面的交点(称为主点)。 X X X、 Y Y Y坐标轴分别与 u u u、 v v v轴平行。两坐标系实为平移关系,平移量为 ( u 0 , v 0 ) (u_0,v_0) (u0​,v0​)。

假设相机感光器件中单个像素的物理尺寸为 d X × d Y dX \times dY dX×dY,有:

{ u = x d X + u 0 v = y d Y + v 0 (1) \begin{cases} u=\frac{x}{dX}+u_0 \\ v=\frac{y}{dY}+v_0 \end{cases} \tag{1} {
u=dXx​+u0​v=dYy​+v0​​
(1)

把上式写成齐次形式,有:

[ u v 1 ] = [ 1 d X 0 u 0 0 1 d Y v 0 0 0 1 ] [ x y 1 ] (2) \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = \begin{bmatrix} \frac{1}{dX} & 0 & u_0 \\ 0 & \frac{1}{dY} & v_0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x \\ y \\ 1 \end{bmatrix} \tag{2} ⎣⎡​uv1​⎦⎤​=⎣⎡​dX1​00​0dY1​0​u0​v0​1​⎦⎤​⎣⎡​xy1​⎦⎤​(2)

公式(2)完成了图像物理坐标系到图像像素坐标系的转换。

1.2 相机坐标系

相机坐标系(camera coordinate) ( X c , Y c , Z c ) (X_c,Y_c,Z_c) (Xc​,Yc​,Zc​),也是一个三维直角坐标系,原点位于镜头光心处, X c X_c Xc​、 Y c Y_c Yc​轴分别与像面的两边平行,z轴为镜头光轴,与像平面垂直。

在这里插入图片描述

点 P ( X c , Y c , Z c ) P(X_c,Y_c,Zc) P(Xc​,Yc​,Zc)为空间中任意一点,其通过投影中心的光线投影到图像平面上,在图像物理空间的投影点为 p ( x , y ) p(x,y) p(x,y),扩展到相机坐标系下其坐标为 ( x , y , f ) (x,y,f) (x,y,f)。根据相似三角形原理,有:

Z c f = X c x = Y c y ⇒ { x = f X c Z c y = f Y c Z c (3) \frac{Z_c}{f}=\frac{X_c}{x}=\frac{Y_c}{y} \Rightarrow \begin{cases} x=f\frac{X_c}{Z_c} \\ y=f\frac{Y_c}{Z_c} \end{cases} \tag{3} fZc​​=xXc​​=yYc​​⇒{
x=fZc​Xc​​y=fZc​Yc​​​
(3)

转为齐次形式为:

Z c [ x y 1 ] = [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ X c Y c Z c 1 ] (4) Z_c \begin{bmatrix} x \\ y \\ 1 \end{bmatrix}= \begin{bmatrix} f & 0 & 0 & 0\\ 0 & f & 0 & 0\\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} X_c \\ Y_c \\ Z_c \\ 1 \end{bmatrix} \tag{4} Zc​⎣⎡​xy1​⎦⎤​=⎣⎡​f00​0f0​001​000​⎦⎤​⎣⎢⎢⎡​Xc​Yc​Zc​1​⎦⎥⎥⎤​(4)

公式(4)完成了相机坐标系到图像物理坐标系的转换。

1.3 世界坐标系

世界坐标系(world coordinate) ( X w , Y w , Z w ) (X_w,Y_w,Z_w) (Xw​,Yw​,Zw​),也称为测量坐标系、参考坐标系,是一个三维直角坐标系,以其为基准可以描述相机和待测物体的空间位置。世界坐标系的位置可以根据实际情况自由确定。

在这里插入图片描述

世界坐标系到相机坐标系的变换,实际上就是一个刚体变换,可以由旋转矩阵 R R R和平移矢量 t t t来表示。设 ( X w , Y w , Z w ) T (X_w,Y_w,Z_w)^T (Xw​,Yw​,Zw​)T表示世界坐标系中的点, ( X c , Y c , Z c ) T (X_c,Y_c,Z_c)^T (Xc​,Yc​,Zc​)T表示相机坐标系中的点,则它们之间的转换可由下式表示:

[ X c Y c Z c ] = R [ X w Y w Z w ] + t (5) \begin{bmatrix} X_c \\ Y_c \\ Z_c \end{bmatrix}= R \begin{bmatrix} X_w \\ Y_w \\ Z_w \end{bmatrix} +t \tag{5} ⎣⎡​Xc​Yc​Zc​​⎦⎤​=R⎣⎡​Xw​Yw​Zw​​⎦⎤​+t(5)

即:

[ X c Y c Z c 1 ] = [ R 3 × 3 t 3 × 1 0 1 × 3 1 1 × 1 ] [ X w Y w Z w 1 ] (6) \begin{bmatrix} X_c \\ Y_c \\ Z_c \\ 1 \end{bmatrix}= \begin{bmatrix} R_{3\times3} & t_{3\times1}\\ 0_{1\times3} & 1_{1\times1} \end{bmatrix} \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} \tag{6} ⎣⎢⎢⎡​Xc​Yc​Zc​1​⎦⎥⎥⎤​=[R3×3​01×3​​t3×1​11×1​​]⎣⎢⎢⎡​Xw​Yw​Zw​1​⎦⎥⎥⎤​(6)

公式(6)完成了世界坐标系到相机坐标系的转换。

1.4 世界坐标系到像素坐标系

联立上面的(2)、(4)、(6)式,可以得到世界坐标系与像素坐标系之间的转换关系,有:

Z c [ u v 1 ] = [ 1 d X 0 u 0 0 1 d Y v 0 0 0 1 ] [ f 0 0 0 0 f 0 0 0 0 1 0 ] [ R t 0 T 1 ] [ X w Y w Z w 1 ] = M 1 M 2 [ X w Y w Z w 1 ] = M [ X w Y w Z w 1 ] (7) \begin{aligned} Z_c \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} &= \begin{bmatrix} \frac{1}{dX} & 0 & u_0 \\ 0 & \frac{1}{dY} & v_0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} f & 0 & 0 & 0\\ 0 & f & 0 & 0\\ 0 & 0 & 1 & 0 \end{bmatrix} \begin{bmatrix} R & t\\ 0^T & 1 \end{bmatrix} \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} \\ &=M_1M_2 \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} \\ &=M \begin{bmatrix} X_w \\ Y_w \\ Z_w \\ 1 \end{bmatrix} \end{aligned} \tag{7} Zc​⎣⎡​uv1​⎦⎤​​=⎣⎡​dX1​00​0dY1​0​u0​v0​1​⎦⎤​⎣⎡​f00​0f0​001​000​⎦⎤​[R0T​t1​]⎣⎢⎢⎡​Xw​Yw​Zw​1​⎦⎥⎥⎤​=M1​M2​⎣⎢⎢⎡​Xw​Yw​Zw​1​⎦⎥⎥⎤​=M⎣⎢⎢⎡​Xw​Yw​Zw​1​⎦⎥⎥⎤​​(7)

M 1 = [ 1 d X 0 u 0 0 1 d Y v 0 0 0 1 ] [ f 0 0 0 0 f 0 0 0 0 1 0 ] = [ f x 0 u 0 0 0 f y v 0 0 0 0 1 0 ] (8) M_1= \begin{bmatrix} \frac{1}{dX} & 0 & u_0 \\ 0 & \frac{1}{dY} & v_0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} f & 0 & 0 & 0\\ 0 & f & 0 & 0\\ 0 & 0 & 1 & 0 \end{bmatrix}= \begin{bmatrix} f_x & 0 & u_0 & 0 \\ 0 & f_y & v_0 & 0 \\ 0 & 0 & 1 & 0 \end{bmatrix} \tag{8} M1​=⎣⎡​dX1​00​0dY1​0​u0​v0​1​⎦⎤​⎣⎡​f00​0f0​001​000​⎦⎤​=⎣⎡​fx​00​0fy​0​u0​v0​1​000​⎦⎤​(8)

M 2 = [ R t 0 T 1 ] (9) M_2= \begin{bmatrix} R & t\\ 0^T & 1 \end{bmatrix} \tag{9} M2​=[R0T​t1​](9)

其中:

  • M 1 M_1 M1​称为相机的内部参数矩阵
  • M 2 M_2 M2​称为相机的外部参数矩阵
  • M M M称为投影矩阵
  • f x f_x fx​、 f y f_y fy​分别为相机在x、y轴方向上的归一化焦距,单位为像素,具体解释可以参考这里
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/140391.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • python alpha量化交易软件_2019AI量化交易教程视频 AI量化交易模型教程 alpha量化选股模型交易系统 CTA型量化策略教程…

    python alpha量化交易软件_2019AI量化交易教程视频 AI量化交易模型教程 alpha量化选股模型交易系统 CTA型量化策略教程…第一部分:量化交易基础第1章量化交易基础:成对交易与模型自动化1.1量化交易简介1.2大纲简介与课程设置1.3成对交易算法1.4【Python实战】基于成对交易算法的目标股票池选取和自动化交易1.5成对交易问题探讨与模型优化1.6【Python实战】案例算法优化之动态成对交易模型第二部分:Alpha策略篇第2章寻找市场中的alpha2.1利用技术面数据挖掘A股中具有超额收益的股票…

    2022年6月26日
  • C# 图书管理系统【含 源代码+数据库】

    C# 图书管理系统【含 源代码+数据库】1.系统分析1.1基本需求功能点分析图书借阅管理系统,主要目标是简化现有的人工管理,通过科学的计算机管理图书借阅管理,提高工作效率,实现日常管理信息化,无纸化。1)系统用户主要分为两大类:a.管理员用户类(相当于一名有各种操作权限的超级用户)b.普通用户类。系统根据登录页面不同的身份选择登录进入不同页面进行后续操作。2)管理员用户的主要功能:a.管理功能:用户管理、图书管理(图书类别管理、图书信息管理)、读者管理(读者类别管理、读者信息管理)、借阅记录管理、系统管理(注销、退出);b.统计

    2022年6月18日
  • 网络舆情分析与研判的指标还应有哪些_舆情监测是什么

    网络舆情分析与研判的指标还应有哪些_舆情监测是什么网络聚集的人气、展开的场景与揭示的真相,不仅会推动新闻事件的发展、形成网络舆论,甚至还会直接影响社会主流舆论、推动社会变革。对舆情监测主体来说,如何加强对网络舆情的实时全面监测,并对其做出及时反馈、防患于未然;如何利用现代信息技术做好网络舆情分析,从而进行有效引导和控制;如何化解网络舆情危机,实现网络舆情的高效管理是一项任重而道远的任务。在网络舆情分析和管理中,舆情监测主体的业务需求是基础和根本,业务需求的满足与否,是评判网络舆情分析系统的核心指标。网络舆情分析系统的评判指标参考项,如下:网络舆情分析

    2022年9月16日
  • 【可视化爬虫】scrapinghub 可视化抓取 portia环境搭建全过程

    【可视化爬虫】scrapinghub 可视化抓取 portia环境搭建全过程文章目录scrapinghub可视化抓取portia环境搭建全过程一、install_deps:安装系统级依赖二、install_splash:安装splash三、install_python_deps:安装python依赖四、安装ember.js五、安装并配置nginx六、ember.js依赖安装scrapinghub可视化抓取portia环境搭建全过程一、insta…

    2022年11月2日
  • LeetCode 700题 题解答案集合 Python

    LeetCode 700题 题解答案集合 Python2019.5.12更新至题号796,目前共有265题。2019.5.26更新至题号72,目前共有347题。2019.6.16更新至题号70,目前共有382题。2019.7.7更新至题号5120,目前共有442题。2019.8.5更新至题号1147,目前共有502题。2019.9.6更新至题号288,目前共有551题。2019.11.13更新至题号426,目前共有602题…

    2022年7月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号