1、相机标定原理

这篇具有很好参考价值的文章主要介绍了1、相机标定原理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


   相机标定可以说是计算机视觉/机器视觉的基础,也是面试过程中经常出现的问题。相机标定涉及的知识面很广,成像几何、镜头畸变、单应矩阵、非线性优化等。在双目测距系统中,相机标定能消除畸变,进行立体校正,从而提高视差计算的准确性,这样才能得到精确的深度图。

1、相机模型

1.1 各个坐标系

  确定空间某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型(各个坐标系),这些坐标系之间的转换参数就是相机参数,求解参数的过程叫做相机标定(摄像机标定)。建立立体视觉系统所需要的各个坐标系,包括世界坐标系、相机坐标系、以及图像坐标系(物理和像素坐标系)。

坐标系名称 坐标系描述
世界坐标系(3D) 描述目标在真实世界中的位置引入的参考坐标系(Xw,Yw,Zw)
相机坐标系(3D) 联系世界坐标系与图像坐标系的桥梁,一般取摄像机的光学轴为z轴(Xc,Yc,Zc)
图像物理坐标系(2D) 根据投影关系引入,方便进一步得到像素坐标,单位为毫米,坐标原点为摄像机光轴与图像物理坐标系的交点位置(x,y)
图像像素坐标系(2D) 真正从相机内读到的信息,图像物理坐标的离散化,以像素为单位,坐标原点在左上角(u,v)

首先明确各个坐标系之间的转换关系:

1.世界坐标系与相机坐标系
相机标定原理,人工智能,人工智能
  这是将一个三维的坐标系(Xw,Yw,Zw) 转换成另一个三维的坐标系(Xc,Yc,Zc),这两个坐标系之间的转换属于刚体转换,物体只改变在两个坐标系中的空间位置(平移)和朝向(旋转),而不改变其形状。它们之间的转换关系可以用旋转矩阵R和平移矩阵T来完成,这两个矩阵反映了世界坐标系与相机坐标系之间的转换关系,合称外参矩阵Lw。获得了外参矩阵,这样已知世界坐标系中的一点通过转换关系就可以得到此点在相机坐标系的位置,反之亦成立。

2.相机坐标系与图像物理坐标系

  这是一个将三维的坐标系转化为二维的坐标系,这两个坐标系之间的转换要通过几何投影模型关系获得,下面是两个坐标系的投影关系示意图:
相机标定原理,人工智能,人工智能
3.图像物理坐标系与图像像素坐标系

   首先以一个形象的例子来说明两个坐标系间的区别。物理坐标系是一个连续的概念,它是以毫米为单位,就好比某一观众在电影院里的具体坐标值(3.4,5.9);而像素坐标系是一个离散的概念,它是以像素作为单位,只能是整数值坐标,就好比某一观众在电影院里的位置是(第三排,第六列)。另外还需要注意的是,这两个坐标系的原点位置也不相同,物理坐标系将原点定为摄像机光轴与图像物理坐标系的交点位置,通常称其为主点;而像素坐标系则以像素图像的左上角为原点。

世界坐标系转换为像素坐标系
相机标定原理,人工智能,人工智能

   其中 f 为摄像机的焦距,单位一般是mm;dx,dy 为像元尺寸;u0,V0为图像中心。fx = f/dx, fy = f/dy,分别称为x轴和y轴上的归一化焦距。

1.2 相机畸变模型

一般只考虑径向畸变k和切向畸变p
x d i s t o r t e d = x ∗ ( 1 + k 1 r 2 + k 2 γ 4 + k 3 γ 6 ) + 2 p 1 x y + p 2 ( γ 2 + 2 x 2 ) y d i s t o r t e d = y ∗ ( 1 + k 1 r 2 + k 2 γ 4 + k 3 γ 6 ) + 2 p 1 x y + p 2 ( γ 2 + 2 y 2 ) \begin{matrix} x_{distorted} = x * (1 + k_{1}r^{2} + k_{2}γ^{4} + k_{3}γ^{6}) + 2p_{1}xy + p_{2}(γ^{2} + 2x^{2})\\ y_{distorted} = y * (1 + k_{1}r^{2} + k_{2}γ^{4} + k_{3}γ^{6}) + 2p_{1}xy + p_{2}(γ^{2} + 2y^{2}) \end{matrix} xdistorted=x(1+k1r2+k2γ4+k3γ6)+2p1xy+p2(γ2+2x2)ydistorted=y(1+k1r2+k2γ4+k3γ6)+2p1xy+p2(γ2+2y2)
其中 γ 2 = x 2 + y 2 γ^{2} = x^{2} + y^{2} γ2=x2+y2
   一般选择2或3个k值,这个是经验证过可以获得较好的结果,如果k取得再多影响不会很大可以忽略,甚至可能反而导致效果不好。

畸变模型:枕型畸变(k>0)和桶型畸变(k<0)
相机标定原理,人工智能,人工智能

当k>0时,r越大(点离中心越远),畸变量越大,r越小,畸变量越小,呈枕型。

当k<0时,r越大(点离中心越远),畸变量越小,r越小,畸变量越大,呈桶型。

1.3 相机标定参数

内参:

(单位长度的像素个数)fx、fy

(主点坐标)cx、cy

(畸变系数)k1、k2、k3、p1、p2

外参:
(旋转和平移矩阵)R、T

2、张友正标定法

   张正友标定法利用如下图所示的棋盘格标定板,在得到一张标定板的图像之后,可以利用相应的图像检测算法得到每一个角点的像素坐标(u,v) 。

   张正友标定法将世界坐标系固定于棋盘格上,则棋盘格上任一点的物理坐标 W=0,由于标定板的世界坐标系是人为事先定义好的,标定板上每一个格子的大小是已知的,我们可以计算得到每一个角点在世界坐标系下的物理坐标(U,V,W=0)。

   利用这些信息:每一个角点的像素坐标(u,v) 、每一个角点在世界坐标系下的物理坐标(U,V,W=0),来进行相机的标定,获得相机的内外参矩阵、畸变参数。

张正友标定法标定相机的内外参数的思路如下:

1)、求解内参矩阵与外参矩阵的积;

2)、求解内参矩阵;

3)、求解外参矩阵。

2.1 求解内参矩阵与外参矩阵的积

  将世界坐标系固定于棋盘格上,则棋盘格上任一点的物理坐标W=0 ,因此,原单点无畸变的成像模型可以化为下式。其中,R1,R2 为旋转矩阵R 的前两列。为了简便,将内参矩阵记为A 。
相机标定原理,人工智能,人工智能
   我们对于上式做一定的说明。对于不同的图片,内参矩阵A 为定值;对于同一张图片,内参矩阵A,外参矩阵(R1 R2 T) 为定值;对于同一张图片上的单点,内参矩阵A,外参矩阵(R1 R2 T),尺度因子 Z 为定值。

   我们将A(R1 R2 T) 记为矩阵H ,H 即为内参矩阵和外参矩阵的积,记矩阵 H 的三列为 (H1,H2,H3) ,则有:

利用上式,消去尺度因子Z,可得:

   此时,尺度因子Z已经被消去,因此上式对于同一张图片上所有的角点均成立。(u,v) 是像素坐标系下的标定板角点的坐标,(U,V) 是世界坐标系下的标定板角点的坐标。通过图像识别算法,我们可以得到标定板角点的像素坐标 (u,v),又由于标定板的世界坐标系是人为定义好的,标定板上每一个格子的大小是已知的,我们可以计算得到世界坐标系下的 (U,V)。

   由于这里的 H 是齐次矩阵,有8个独立未知元素。每一个标定板角点可以提供两个约束方程(u,U,V 的对应关系、v,U,V 的对应关系提供了两个约束方程),因此,当一张图片上的标定板角点数量等于4时,即可求得该图片对应的矩阵 H 。当一张图片上的标定板角点数量大于4时,利用最小二乘法回归最佳的矩阵 H。

2.2 求解内参矩阵

   我们已知了矩阵H=A(R1 R2 T),接下来需要求解相机的内参矩阵A 。我们利用R1,R2作为旋转矩阵 R 的两列,存在单位正交的关系,即:
R 1 T R 2 = 0 R 1 T R 1 = R 2 T R 2 = 1 \begin{matrix} R_{1}^{T} R2 = 0\\ R_{1}^{T}R_{1} = R_{2}^{T}R_{2} = 1 \end{matrix} R1TR2=0R1TR1=R2TR2=1
则由 H 和 R1,R2 的关系,可知:
R 1 = A − 1 H 1 R 2 = A − 1 H 2 \begin{matrix} R_{1} = A^{-1}H_{1}\\ R_{2} = A^{-1}H_{2} \end{matrix} R1=A1H1R2=A1H2
代入可得:
H 1 T A − T A − 1 H 2 = 0 H 1 T A − T A − 1 H 1 = H 2 T A − T A − 1 H 2 = 1 \begin{matrix} H_{1}^{T}A^{-T}A^{-1}H_{2} = 0\\ H_{1}^{T}A^{-T}A^{-1}H_{1} = H_{2}^{T}A^{-T}A^{-1}H_{2} = 1 \end{matrix} H1TATA1H2=0H1TATA1H1=H2TATA1H2=1
   另外,我们发现,上述两个约束方程中均存在矩阵A−T A−1 。因此,我们记A−T A−1=B ,则 B为对称阵。我们试图先求解出矩阵 B ,通过矩阵 B 再求解相机的内参矩阵 A 。

同时,为了简便,我们记相机内参矩阵 A 为:
相机标定原理,人工智能,人工智能
则:
相机标定原理,人工智能,人工智能
则用矩阵 A表示矩阵 B 得:
相机标定原理,人工智能,人工智能
注意:由于 B 为对称阵,上式出现了两次B12,B13,B23

这里,我们可以使用B=A−T A−1 将前面通过R1,R2 单位正交得到的约束方程化为:

H1 TBH2 = 0
H1 TBH1 = H2 TBH2 = 1
因此,为了求解矩阵 B ,我们必须计算H iTB H j 。则:

相机标定原理,人工智能,人工智能
上述方程看起来有点复杂,但是其实不然,我们可以记:
相机标定原理,人工智能,人工智能

则上述方程化为:HiTBHj = vijb
此时,通过 R1,R2 单位正交得到的约束方程可化为:
v 12 T b = 0 v 11 T b = v 22 T b = 1 \begin{matrix} v_{12}^{T}b = 0\\ v_{11}^{T}b = v_{22}^{T}b = 1 \end{matrix} v12Tb=0v11Tb=v22Tb=1
即:
[ v 12 T v 11 T − v 22 T ] b = v b = 0 \begin{bmatrix} v_{12}^{T}\\ v_{11}^{T} - v_{22}^{T} \end{bmatrix}b = vb = 0 [v12Tv11Tv22T]b=vb=0
其中,矩阵
v = [ v 12 T v 11 T − v 22 T ] v = \begin{bmatrix} v_{12}^{T}\\ v_{11}^{T} - v_{22}^{T} \end{bmatrix} v=[v12Tv11Tv22T]
由于矩阵 H 已知,矩阵 v 又全部由矩阵 H 的元素构成,因此矩阵 v 已知。

   此时,我们只要求解出向量 b ,即可得到矩阵 B 。每张标定板图片可以提供一个vb=0 的约束关系,该约束关系含有两个约束方程。但是,向量 b 有6个未知元素。因此,单张图片提供的两个约束方程是不足以解出来向量 b。因此,我们只要取3张标定板照片,得到3个 vb=0 的约束关系,即6个方程,即可求解向量 b。当标定板图片的个数大于3时(事实上一般需要15到20张标定板图片),可采用最小二乘拟合最佳的向量 b ,并得到矩阵 B。
相机标定原理,人工智能,人工智能
根据矩阵 B 的元素和相机内参 α, β, γ, u0, v0 的对应关系(如上式),可得到:
相机标定原理,人工智能,人工智能
即可求得相机的内参矩阵
相机标定原理,人工智能,人工智能

2.3 求解外参矩阵

   这里再次强调一下,对于同一个相机,相机的内参矩阵取决于相机的内部参数,无论标定板和相机的位置关系是怎么样的,相机的内参矩阵不变。这也正是在第2部分“求解内参矩阵”中,我们可以利用不同的图片(标定板和相机位置关系不同)获取的矩阵 H ,共同求解相机内参矩阵 A 的原因。

   但是,外参矩阵反映的是标定板和相机的位置关系。对于不同的图片,标定板和相机的位置关系已经改变,此时每一张图片对应的外参矩阵都是不同的。

   在关系:A(R1 R2 T)=H 中,我们已经求解得到了矩阵 H (对于同一张图片相同,对于不同的图片不同)、矩阵 A (对于不同的图片都相同)。通过公式:(R1 R2 T)=A−1 H ,即可求得每一张图片对应的外参矩阵 (R1 R2 T) 。

   注意,这里值得指出,完整的外参矩阵为:
( R T 0 1 ) \begin{pmatrix} R&T\\ 0&1\\ \end{pmatrix} (R0T1)
但是,由于张正友标定板将世界坐标系的原点选取在棋盘格上,则棋盘格上任一点的物理坐标 W=0,将旋转矩阵的 R 的第三列 R3 消掉,因此,R3 在坐标转化中并没有作用。但是 R3 要使得 R 满足旋转矩阵的性质,即列与列之间单位正交,因此可以通过向量 R1,R2 的叉乘,即 R3=R1×R2 ,计算得到 R3。

此时,相机的内参矩阵和外参矩阵均已得到。

3 标定相机的畸变参数

张正友标定法仅仅考虑了畸变模型中影响较大的径向畸变。

径向畸变公式(2阶)如下:

x ^ = x ( 1 + k 1 r 2 + k 2 r 4 ) y ^ = y ( 1 + k 1 r 2 + k 2 r 4 ) \begin{matrix} \widehat{x} = x(1+ k_{1}r^{2} + k_{2}r^{4})\\ \widehat{y} = y(1+ k_{1}r^{2} + k_{2}r^{4}) \end{matrix} x =x(1+k1r2+k2r4)y =y(1+k1r2+k2r4)

其中,(x, y),( x ^ \widehat{x} x , y ^ \widehat{y} y )分别为理想的无畸变的归一化的图像坐标、畸变后的归一化图像坐标,r 为图像像素点到图像中心点的距离,即 r2=x2+y2

图像坐标和像素坐标的转化关系为:
( u v 1 ) = ( 1 d X − c o t θ d X u 0 0 1 d Y s i n θ v 0 0 0 1 ) ( x y 1 ) \begin{pmatrix} u \\ v \\ 1 \end{pmatrix} = \begin{pmatrix} {1 \over dX} & -{cotθ \over dX} & u_{0} \\ 0 & {1 \over dYsinθ} & v_{0} \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} x \\ y \\ 1 \end{pmatrix} uv1 = dX100dXcodYsinθ10u0v01 xy1

其中, (u,v)为理想的无畸变的像素坐标。由于 θ 接近于 90∘ ,则上式近似为
u = x / d X + u 0 v = y / d Y + v 0 \begin{matrix} u = x/dX + u_{0}\\ v = y/dY + v_{0} \end{matrix} u=x/dX+u0v=y/dY+v0
同理可得畸变后的像素坐标 ( u ^ \widehat{u} u , v ^ \widehat{v} v )的表达式为:
u ^ = x ^ / d X + u 0 v ^ = v ^ / d Y + v 0 \begin{matrix} \widehat{u} = \widehat{x}/dX + u_{0}\\ \widehat{v} = \widehat{v}/dY + v_{0} \end{matrix} u =x /dX+u0v =v /dY+v0
代入径向畸变公式(2阶)则有:
u ^ − u 0 = ( u − u 0 ) ( 1 + k 1 r 2 + k 2 r 4 ) v ^ − v 0 = ( v − v 0 ) ( 1 + k 1 r 2 + k 2 r 4 ) \begin{matrix} \widehat{u} - u_{0} = (u-u_{0})(1 + k_{1}r^{2} + k_{2}r^{4})\\ \widehat{v} - v_{0} = (v-v_{0})(1 + k_{1}r^{2} + k_{2}r^{4}) \end{matrix} u u0=(uu0)(1+k1r2+k2r4)v v0=(vv0)(1+k1r2+k2r4)
可化简得:
u ^ = u + ( u − u 0 ) ( k 1 r 2 + k 2 r 4 ) v ^ = v + ( v − v 0 ) ( k 1 r 2 + k 2 r 4 ) \begin{matrix} \widehat{u} = u + (u-u_{0})( k_{1}r^{2} + k_{2}r^{4})\\ \widehat{v} = v + (v-v_{0})( k_{1}r^{2} + k_{2}r^{4}) \end{matrix} u =u+(uu0)(k1r2+k2r4)v =v+(vv0)(k1r2+k2r4)
即为:
[ ( u − u 0 ) r 2 ( u − u 0 ) r 4 ( v − v 0 ) r 2 ( v − v 0 ) r 4 ] [ k 1 k 2 ] = [ u ^ − u v ^ − v ] \begin{matrix} \begin{bmatrix}(u - u_{0})r^{2} & (u-u_{0})r^{4}\\ (v - v_{0})r^{2} & (v-v_{0})r^{4} \end{bmatrix} \begin{bmatrix}k_{1}\\ k_{2} \end{bmatrix} = \begin{bmatrix}\widehat{u} - u\\ \widehat{v} - v \end{bmatrix} \end{matrix} [(uu0)r2(vv0)r2(uu0)r4(vv0)r4][k1k2]=[u uv v]
上式中的 u ^ \widehat{u} u v ^ \widehat{v} v 可以通过识别标定板的角点获得,每一个角点可以构造两个上述等式。有m幅图像,每幅图像上有n个标定板角点,则将得到的所有等式组合起来,可以得到个mn未知数为的k=[k1,k2]T 约束方程,将约束方程系数矩阵记为D ,等式右端非齐次项记为d ,可将其记着矩阵形式:
D k = d \begin{matrix} Dk = d \end{matrix} Dk=d
则使用最小二乘法可求得:
k = [ k 1 k 2 ] = ( D T D ) − 1 D T d \begin{matrix} k = \begin{bmatrix}k_{1}\\ k_{2} \end{bmatrix} = (D^{T}D)^{-1}D^{T}d \end{matrix} k=[k1k2]=(DTD)1DTd
此时,相机的畸变矫正参数已经标定好。

需要指出,上述公式推导的时候以2阶径向畸变为例,但实际上更高阶的径向畸变同理,只是需要的约束方程个数更多而已。文章来源地址https://www.toymoban.com/news/detail-765271.html

4、L-M算法参数优化

到了这里,关于1、相机标定原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人工智能原理课后习题(考试相关的)

    什么是人工智能? 人工智能就是让机器看起来像人类表现出的智能水平一样 人工智能就是人工实现人类智能,通过将初始信息生成和调度知识,在目标的引导下,生成求解问题的策略,并由推理策略转换成智能行为,从而生成解决问题的能力。 什么是图灵测试?他必须具备

    2024年01月16日
    浏览(36)
  • 人工智能原理概述 - ChatGPT 背后的故事

    大家好,我是比特桃。如果说 2023 年最火的事情是什么,毫无疑问就是由 ChatGPT 所引领的AI浪潮。今年无论是平日的各种媒体、工作中接触到的项目还是生活中大家讨论的热点,都离不开AI。其实对于互联网行业来说,自从深度学习出来后就一直很火。但由于之前 AI 在可变现

    2024年02月13日
    浏览(40)
  • 【Python/人工智能】TensorFlow 框架原理及使用教程

    TensorFlow 是一款由 Google 开源的人工智能框架,是目前应用最广泛的深度学习框架之一。它可以在各种硬件平台上运行,包括单个 CPU、CPU 集群、GPU,甚至是分布式环境下的 CPU 和 GPU 组合。 除了深度学习领域,TensorFlow 还支持其他机器学习算法和模型,如 决策树 、 SVM 、 k-m

    2024年04月28日
    浏览(45)
  • 【初学人工智能原理】【4】梯度下降和反向传播:能改(下)

    本文教程均来自b站【小白也能听懂的人工智能原理】,感兴趣的可自行到b站观看。 本文【原文】章节来自课程的对白,由于缺少图片可能无法理解,故放到了最后,建议直接看代码(代码放到了前面)。 在引入b后绘制代价函数界面,看看到底是不是一个碗 在w和b两个方向

    2024年02月05日
    浏览(41)
  • 了解人工智能生成内容(AIGC)的基本原理和应用

    • AIGC的定义和背景 人工智能生成内容(Artificial Intelligence Generated Content,简称AIGC)是指利用人工智能技术和算法来自动生成各种形式的内容,例如文章、新闻、广告、代码等。AIGC的发展可以追溯到机器学习和自然语言处理等领域的进展,以及深度学习模型的快速发展。 •

    2024年02月03日
    浏览(62)
  • 标题:人工智能绘画Midjourney:探究其原理和应用价值

    人工智能绘画系统Midjourney日前引起了广泛关注,它可以自动绘制出极具艺术感的图像,展现了人工智能技术在创意领域的潜力。那么Midjourney是如何实现这一功能的呢?本文将对其原理进行解析,并探讨其在未来的应用价值。 1.基于生成对抗网络技术(GAN) Midjourney采用了生成

    2024年02月16日
    浏览(60)
  • 【初学人工智能原理】【3】梯度下降和反向传播:能改(上)

    本文教程均来自b站【小白也能听懂的人工智能原理】,感兴趣的可自行到b站观看。 本文【原文】章节来自课程的对白,由于缺少图片可能无法理解,故放到了最后,建议直接看代码(代码放到了前面)。 dataset.py 事实上三种方法的效果图是差不多的,所以只放出两张图 上一

    2024年02月06日
    浏览(34)
  • 人工智能 Agent 简介:核心原理 / 数学公式 / 实现算法 / 代码实例

    人工智能Agent(AI Agent)是一个自动化的系统,它可以感知其环境并根据其感知进行决策以实现特定的目标。这些Agent可以是简单的程序,如搜索引擎的爬虫,也可以是复杂的系统,如自动驾驶汽车。AI Agent的主要目标是通过学习和优化来提高其性能。 AI Agent的实现原理主要基

    2024年02月12日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包