相机校准—外参矩阵

ccef50ca3579fcd6dbbeb7589b2d6acf.png

在本文中,我们将探讨摄影机的外参,并通过Python中的一个实践示例来加强我们的理解。

相机外参

摄像头可以位于世界任何地方,并且可以指向任何方向。我们想从摄像机的角度来观察世界上的物体,这种从世界坐标系到摄像机坐标系的转换被称为摄像机外参。

90e3cee9039be76e4ac8d24caf555819.png

那么,我们怎样才能找到相机外参呢?一旦我们弄清楚相机是如何变换的,我们就可以找到从世界坐标系到相机坐标系的基变换的变化。我们将详细探讨这个想法。

具体来说,我们需要知道相机是如何定位的,以及它在世界空间中的位置,有两种转换可以帮助我们:

  • 有助于确定摄影机方向的旋转变换。

  • 有助于移动相机的平移变换。

让我们详细看看每一个。

旋转

通过旋转改变坐标

让我们看一下将点旋转一个角度的变换。让我们举一个在ℝ²的简单例子,对点𝑃逆时针旋转角度𝜃 得到点𝑃′, 如下图所示:

a605ebfe56b45bec7677190141b27283.png

𝑃的坐标是(𝑥,𝑦) 以及𝑃′的坐标是(𝑥′,𝑦′). 我们需要找到(𝑥′,𝑦′).

从图来看,
      sinα = y/r , cosα = x/r − [1]
⟹    xsinα = ycosα − [2]
同样的, x′ = rcos(θ+α)
⟹    x′ = (x/cosα) ∗ cos(θ+α) (from [1])
但,  cos(θ+α) = cosθcosα − sinθsinα
⟹    x′ = (x/cosα) ∗ (cosθcosα − sinθsinα)
⟹    x′ = xcosθ − xsinα ∗ (sinθ / cosα)
⟹    x′ = xcosθ − ycosα ∗ (sinθ / cosα) (from [2])
⟹    x′ = xcosθ − ysinθ

同样地,
      y′ = rsin(θ+α)
⟹    y′ = (y/sinα) ∗ sin(θ+α) (from [1])
但,  sin(θ+α) = sinθcosα + cosθsinα
⟹    y′ = (y/sinα) ∗ (sinθcosα + cosθsinα)
⟹    y′ = ycosθ + ycosα ∗ (sinθ / sinα)
⟹    y′ = ycosθ + xsinα ∗ (sinθ / sinα) (from [2])
⟹    y′ = ycosθ + xsinθ
⟹    y′ = xsinθ + ycosθ

因此我们有,
      x′ = xcosθ − ysinθ
      y′ = xsinθ + ycosθ

旋转是一种线性运算,上述方程可以表示为矩阵乘法:

6df229756a52192ff28091a3345cdb53.png

这个操作是一个线性变换。

扩展到R3

我们可以很容易地将旋转变换扩展到𝐑³. 旋转的变换矩阵𝐑关于标准X轴、Y轴和Z轴,如下所示:

绕Z轴旋转:

9a6b770ade0d64e205eaf8a28dd1595b.png

绕X轴旋转:

be81bf55e2799c708c079d3df19bfb79.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值