image-20210114193109534

相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程 能够用一个几何模型进行描述。这个模型有很多种,其中最简单的称为针孔模型

单目相机

针孔模型

image-20210114193141067

image-20210114193213213

  • : 焦距
  • : 三维空间相对于光心的坐标(相机坐标系)
  • : 投影到相对于的坐标

像素坐标系

原点 o′ 位于图像的左上角,u 轴向右与 x 轴平行,v轴向下与 y 轴平行。像素坐标系与成像平面之间,相差了一个缩放和一个原点的平移

设像素坐标在 u 轴上缩放了 α 倍,在 v 上缩放了 β 倍。同时,原点平移了

  • : 相机内参数矩阵
  • : 相机坐标系下的点的坐标

畸变

  • 径向畸变(穿过图像中心和光轴有交点的直线还能保持形状不变)

    1. image-20210114193241973
    2. image-20210114193254789
  • 切向畸变

    image-20210114193324591

总结

image-20210114193400782

Camera库

project_point_radial

  1. 世界坐标系转换到相机坐标系
N = P.shape[0]
X = R.dot(P.T - T)  # rotate and translate
  1. 归一化
XX = X[:2, :] / X[2, :]  # 2x16
  1. 调整过畸变的相机坐标转像素坐标(物理成像面)
Proj = (f * XXX) + c  # 2x16
Proj = Proj.T
  1. 相机坐标的深度
D = X[2, ]

load_camera_params

  1. : 相机旋转矩阵
  2. : 相机平移矩阵
  3. : 相机焦距长度
  4. : 相机中心
  5. : 相机径向变形系数
  6. : 相机切向变形系数

双目相机

基础模型

首先这个模型是基于针孔模型的

image-20210114193412461

  • : 像素坐标
  • : 光心
  • : 基线
  • : 需要求的深度

为左右图的横坐标之差,称为视差