结构光成像系统 | Chapter 3.1 移轴/沙姆/Scheimpflug 结构的相机标定
结构光的系统标定与传统的视觉中单相机标定相比，还需要考虑投影仪标定（即将投影仪等效为相机的方法）、多目标定，另外在有些特殊测量场景中，还需要引入移轴结构增加景深。因此还涉及到移轴标定，尽管看上去十分复杂，但是所有的内容都是基于单相机重投影模型引申而来，只需要考虑上述因素，相应修改模型，最后依然使用LM算法求解即可。      首先来回顾一下张氏标定法中使用的相机的重投影模型，即VSLAM中常说的光束平差法（BA，Bundle Adjustment），标定时借助的标定物是一个物理的棋盘格平面，平面上棋盘格通常有数百个等距分布的角点，因此已知这些控制点的世界坐标为    ，通过假设为未知数的内、外参数将控制点世界坐标重投影回像素坐标系得到控制点像素坐标的预测值   ， 控制点的真实像素坐标  由相机采集并经过图像角点提取算法计算得到。   与   进行差分得到重投影误差， 以所有角点重投影误差平方和最小化为目标进行非线性优化即可得到所有待求解的标定参数，即相机畸变、倾斜角度、内参数（镜头焦距、像元尺寸、像元数目）、外参数（旋转向量、平移向量）等。        因此对于相机标定来说， 需要获取的数据就是借助标定板采集一组准确的  点对      成像过程中忽略相机镜头内镜片组产生的复杂光路，认为所有光线都通过镜头光心的小孔， 即相机视场内的所有目标经过透视投影映射到像素坐标系上而成像。 这也就是被广泛使用的相机小孔模型， 而整个映射过程就被称为重投影过程。如图2所示， 重投影过程按照世界坐标系→相机坐标系→图像物理坐标系→像素坐标系的顺序依次投影：（1） 世界坐标系→相机坐标系      相机坐标系是一个三维坐标系，其原点在镜头光心。 世界坐标系也是一个三维坐标系，其原点可以放置在空间中任意位置， 但是为了方便，通常选定每个标定板左上角为原点建立世界坐标系，这也是不同位置标定板会有一个独立的外参数的原因。      利用旋转矩阵 、平移向量 构成的外参数可以将世界坐标系下的点坐标映射到相机坐标系下。 令空间任意点世界坐标为  ，  为该点在相机坐标系下的坐标， 可以得到如下公式： （2） 相机坐标系→图像物理坐标系      图像物理坐标系是一个二维坐标系，其原点在像平面的中点， 并且其单位选取实际物理长度单位，而非像素单位， 令相机焦距为 ，  重投影到相机坐标系下的坐标为  ，  重投影到图像物理坐标系下得到的坐标为  ， 根据相似三角形的规则，有公式(2)成立： （3） 图像物理坐标系-&gt;像素坐标系    像素坐标系是以像平面左上角为原点建立的二维坐标系，其与图像物理坐标系之间存在一个尺度以及平移的关系：      其中  表示  最终投影到图像上的像素坐标，  分别表示   方向上单位物理距离对应的像素数目，  为主点像素坐标。      令：       联立公式(2~4)则相机坐标系到像素坐标系的投影关系可以用一个统一的内参矩阵表示： 结合公式(1~5),得到未考虑畸变的完整重投影模型：      公式(6)为理想的重投影模型，实际操作过程中还需要考虑镜头畸变的影响，常用的畸变校正在像素坐标系下进行， 为了方便模型计算， 本文采用了一种在相机坐标系下的畸变矫正算法：      当得到相机坐标系下的坐标  后， 首先计算齐次坐标  ：       再执行畸变矫正得到无畸变坐标  ：      其中  是径向畸变参数，  是切向畸变参数。因此考虑了镜头畸变模型后的式子(5)变为 :      沙姆定律（ Scheimpflug principle） 由奥地利陆军上尉 Theodor Scheimpflug 于1902 年提出， 定律指出只要满足成像、镜头、测量三个平面交于同一条直线（对于未移轴的镜头，认为三个平行平面相交于无限远处）的条件，则可以保证测量平面的物体能够清晰成像， 因此能够起到调整景深区域位置的作用。        Scheimpflug 镜头就是根据沙姆定律所设计的一种特殊的镜头，如图3(b)所示，通过机械结构使镜头与相机本体发生一定程度的偏转，保持成像、镜头、测量三个平面的位置关系满足沙姆定律即可。 结构光系统由于共视场的需求，各相机本体采用了倾斜的结构。 如图3(a)所示，若采用正常镜头，则公共景深区域很小，难以满足测量需求， 因此为了增大各个相机的公共景深范围， 采用了图3(b)所示的 Scheimpflug 镜头，保证相机能够对测量区域清晰成像。      Scheimpflug 结构引起的镜头旋转可以等效看作成像平面发生旋转，图 4 按从左到右的顺序依次为旋转前、旋转中、旋转后的等效成像平面旋转示意图。 平面  为旋转前成像平面， 平面 为旋转后成像平面，平面 为具有 Scheimpflug结构的相机中真正的成像平面，在进行模型推导前先对一些重要的符号进行说明：（1）  ： 旋转前相机坐标系  （2）  ： 旋转后相机坐标系  （3）  ： 旋转前图像物理坐标系  （4）  ： 旋转后图像物理坐标系  （5）  ：如图 4(b)所示， 直线  与旋转后成像平面  的交点  在坐标系  下的坐标（6）  ：如图 4(c)所示， 直线  与旋转后成像平面  的交点  在坐标系  下的坐标  （7）  ：直线  与旋转后成像平面  的交点  在旋转后图像物理坐  标系  下的坐标  （8）  ： 世界坐标系中的一个目标点  （9）  ： 点  在坐标系  下的坐标  （10）  ： 点  在坐标系  下的坐标旋转前成像平面  绕主点  旋转到平面  ，我们采用  描述这个旋转关系，旋转矩阵  由 ,  两个方向的旋转角度  构成，即： 在旋转前相机坐标系  下， 平面  的法向量  为： 如图 4(b)所示， 点  与点  位于同一条直线上，因此点  的坐标形式为  ，  为尺度因子。焦距  ,则在旋转前相机坐标系  下向量  为： 因为  ，因此向量  与  正交： 求解得到尺度因子  ： 利用逆变换将向量  转换到旋转后相机坐标系  下得到向量 ： 在旋转后图像物理坐标系  中  ， 因此点  重投影到旋转后图像物理坐标系  中为点  ： 由式(2)得到： 结合式子(16)可得： 令 Scheimpflug 矩阵  为： 当得到公式(4)中经过畸变校正后的相机齐次坐标  之后，进行一次Scheimpflug 校正： 其中  为尺度因子，跟  齐次化有关。式子(9)变为：至此本系统用到的单目 Scheimpflug 相机重投影模型推导完毕， 公式(19)所示的  是引入 Scheimpflug 结构后用于更新小孔模型的核心参数，使用这个矩阵能够解决小孔结构与 Scheimpflug 结构相结合后的重投影描述问题， 下节介绍得到重投影误差构成的目标函数后使用非线性优化算法对参数进行估计的方法。