CS231A:Camera Calibration

射影矩阵 M M M

内参部分,图像平面到像素平面

在这里插入图片描述
在有 θ \theta θ的情况下:
在这里插入图片描述
其他的参数还是那样的,此时:
在这里插入图片描述
内 参 相 关 公 式 内参相关公式
M = ( K   0 ) M = (K\ 0) M=(K 0)

外参部分,世界坐标系到像素坐标系

在这里插入图片描述
C P ^CP CP是相机坐标系的点,就是和内参相关的公式的右边的 P P P
W P ^WP WP是世界坐标系的点
此时:

外 参 相 关 公 式 外参相关公式
关于 Z Z Z,是一个很重要的信息,而且是和 M M M P P P相关的,现在假定 m 1 T , m 2 T , m 3 T m_1^T, m_2^T,m_3^T m1T,m2T,m3T M M M的三行,那么:
Z = m 3 ⋅ P Z= m_3 \cdot P Z=m3P

m 3 m_3 m3是列啊,怎么能和P点乘,还是说这里不是矩阵运算,而是对位相乘? M M M的第三行
这里应该就是点乘的意思

外参相关公式也常写成下面这种形式,这种形式有利于求 M M M
在这里插入图片描述
再假定 r 1 T , r 2 T , r 3 T r_1^T ,r_2^T ,r_3^T r1T,r2T,r3T R R R矩阵的行, t 1 , t 2 , t 3 t_1,t_2,t_3 t1,t2,t3 t t t向量的元素,此时 M M M矩阵可以写成:

在这里插入图片描述
将 11 个 参 数 明 确 显 示 的 M 矩 阵 将11个参数明确显示的M矩阵 11M


解决的问题

从场景的特定位置估计相机的内外参,通过校正可以让实际的位置理论上的位置之间的误差最小化。

在这里插入图片描述
校 准 装 置 , 由 三 个 画 在 正 交 平 面 的 网 格 构 成 校准装置,由三个画在正交平面的网格构成
假设 P i ( i = 1 , . . . , n ) P_i(i=1,...,n) Pi(i=1,...,n)是一直的齐次坐标向量 P i P_i Pi的基准点,位置是 ( x i , y i ) (x_i,y_i) (xi,yi)

在没有建模和测量误差的情况下,校正就相当于寻找一个内外参的参数 ξ \xi ξ:
在这里插入图片描述
公 式 1 公式1 1
m i T ( ξ ) m_i^T(\xi) miT(ξ)表示射影矩阵 M M M i t h i^{th} ith行, M M M:
在这里插入图片描述
一般,测量出来的值的数量要大于未知数的数量(比如11个参数需要6个点,但是现实中采集的数据一般都是有噪声的,所以会使用很多点),上面的式子解不出精确的结果,还是要看最小二乘法的解。

在这里插入图片描述
左 : 491 个 3 D 点 在 校 准 装 置 上   右 : 对 应 的 图 像 点 左:491个3D点在校准装置上\ 右:对应的图像点 4913D 

校准装置也就是个坐标系,通过对这个坐标系中的点进行投影,得到图像点的信息,就能看出校准程度,也能用来校准

线性方法

校准问题分为两步:

  1. 与摄像机相关的透视投影矩阵 M M M的计算
  2. 利用该矩阵估计相机的内外参数

M M M里面不是已经包含内外参了吗?

估计投影矩阵

首先假定是nonzero skew,投影矩阵 M M M不是奇异的,而是任意的

只有行数和列数相同才有奇异非奇异概念,显然 M M M 3 × 4 3\times 4 3×4矩阵
奇异矩阵就是不可逆矩阵

公式 1 做去分母操作,然后移项让右边为0 ( ξ \xi ξ省略没写):

在这里插入图片描述
公 式 2 公式2 2
其中的 x , y x,y x,y就是像素平民啊这两个式子包含了 M M M的所有参数,然后联立所有的 n n n个基准点,就能得到 2 n 2n 2n个等式,约束所有的等式,得到方程:
在这里插入图片描述
在这里插入图片描述
如上所说,11个参数,至少要12个信息,就是 n > 6 n>6 n>6

解法
齐次线性最小二乘可以用最小化 ∣ ∣ p m ∣ ∣ 2 ||pm||^2 pm2 来计算单位向量m的值,其中 m m m服从于 ∣ ∣ m ∣ ∣ 2 = 1 ||m||^2=1 m2=1,求出来的值 12 × 12 12\times 12 12×12矩阵 p T p p^Tp pTp和最小的特征值相关的特征向量

最小二乘计算的条件就是等式和误差值,这两个都有了
也可以用上节课学到的方法,直接计算P的SVD,其中V的列,也就是 V T V^T VT的行就是 p T p p^Tp pTp的特征向量, V V V的最小一列就是最小特征值对应的解,就是想要的 m m m

但是这个 m m m是有比例因子在其中的,就是下文的 ρ \rho ρ

Degenerate Point Configurations

这块没看懂,就是说这个方法有失效的时候,比如说所有的点都在一个平面的时候,就无法求解

估计内外参

现在把估计出来的 M M M写成 M = ( A   b ) M=(A\ b) M=(A b),用 a 1 T , a 2 T , a 3 T a_1^T,a_2^T,a_3^T a1T,a2T,a3T来表示 A A A的行。

就跟第一节课的约束一样,将 M M M拆分开,其中 A A A部分与 R R R相关,与 t t t无关。
不过为什么约束只拿 A A A做文章呢?

在这里插入图片描述

在这里插入图片描述
公 式 3 公式3 3
这里的 ρ \rho ρ是一个未知的比例因子,复原出来的单位矩阵 M M M具有 unit Frobeius 形式:
∣ ∣ M ∣ ∣ F = ∣ ∣ m ∣ ∣ = 1 ||M||_F = ||m|| = 1 MF=m=1

这个约束有什么用呢?

利用旋转矩阵的每一行都有单位长度并且互相垂直,可以得出:
在这里插入图片描述
其中 ε = ∓ 1 \varepsilon = \mp 1 ε=1

这里, r 3 r_3 r3是旋转矩阵的行,而 a 3 a_3 a3未经缩放 M M M A A A的行,由 公式 3 得出的,这里应该是为了让 M M M满足上面那个约束把,所以才需要一个缩放。
答:不是为了满足约束,而是本来就存在一个缩放因子
所以之前求出来的 M M M,就是未缩放的,也就是生成 A A A M M M,所以 r 3 r_3 r3才是我们需要求的
r 3 r_3 r3只是单位向量,能表示某一轴的旋转即可

之后, θ \theta θ的大小是 π 2 \frac{\pi}{2} 2π附近,这个数值范围内的 s i n e sine sine是正的,用如下公式可得 θ   α   β \theta \ \alpha \ \beta θ α β:

在这里插入图片描述

并没有手动算,应该就是利用了不同的 r r r之间相互垂直的属性,简化成了右式

剩下的 r 1 , r 2 r_1,r_2 r1,r2求法公式:
在这里插入图片描述
位移 t t t可以由公式 K t = ρ b Kt = \rho b Kt=ρb得出:
t = ρ K − 1 b t = \rho K^{-1}b t=ρK1b
由于之前使用的 ε \varepsilon ε有两个解,所以求出的 R , t R,t R,t的解也有两个,这时候,一般 t 3 t_3 t3的正负是已知的,这样就能锁定一个解

t 3 t_3 t3的正负就是物体在摄像头的前面或后面,一般都是已知的

至此,相机的内外参数就已经全部求出来了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值