单目结构光三维视觉测量的基本原理是基于三角测距的。

如下图所示,为结构光三维视觉测量系统数学模型,若明确了投影仪与摄像机之间的位置关系,则可根据三角测距的原理计算被测物体的三维信息。

单目结构光重建opencv 单目结构光原理_三角测距

其中\(OXY\)为自由选取的参考平面,假设所选取的参考平面与摄像机和投影仪之间连线平行

  • \(O_p\):为投影仪镜头光心即投影中心,\(O_p\)在参考平面的投影点为\(O\)。
  • \(O_c\):为摄像机镜头光心,\(O_c\)在参考平面的坐标为\(O'_c\)。
  • \(d\):为投影中心\(O_p\)到摄像机光心\(O_c\)之间的距离,称为基线距离。
  • \(L\):为\(O_p\)到参考面之间的距离。由于\(O_cO_p\)连线平行于参考平面,所以\(L\)也同样为摄像机光心\(O_c\)到参考平面的距离。
  • \(P\):为被测物体表面上一点,该点在参考平面上的投影为\(P'\),摄像机与投影仪和物点\(P\)的连线分别交参考平面于\(A,B\)两点。

三角测距的核心原理是根据上图中的相似三角形关系和相位坐标关系由被测物体表面一点的相位得到该点的高度信息。

由于选取的参考平面\(OXY\)平行于投影面,其Y轴平行于光栅条纹。则由相似三角形关系\(\Delta BPP'\sim\Delta BO_pO\)有:

\(\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \frac{BP'}{BO}=\frac{PP'}{O_pO}=\frac{PP'}{L} \quad \quad \quad (1)\)

由于\(Y\)轴平行于光栅方向,所以在参考平面上,相位沿着\(X\)轴方向不断变化,则在参考平面上一点\((x,y)\),设其相位为\(\theta\),有:

\(\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad x = \frac{\theta}{2\pi}\lambda \quad \quad \quad (2)\)

其中,\(\lambda\)为光栅节距,即为在参考面上,沿着\(X\)轴方向上相位每变化一个周期对应的长度。

由于摄像机光心于投影仪光心连线平行于参考面,所以由\(\Delta APP'\sim\Delta AO_cO'_c\)则有:

\(\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \frac{AP'}{AO'_c}=\frac{PP'}{O_cO'_c}=\frac{PP'}{L} \quad \quad \quad (3)\)

联立\((1)(3)\)可得【一般情况下,如 \(q =\frac{a}{c}=\frac{b}{d}\),则 \(\frac{b}{d}\) 可表示为 \(\frac{ka}{kc}\) 这种形式,\(k\)为常量 ==> \(q =\frac{a+b}{c+d}=\frac{(1+k)a}{(1+k)c}\)

\(\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \frac{PP'}{L}=\frac{AP'+BP'}{AO'_c+BO}=\frac{BA}{BA+O_cO'_c}=\frac{BA}{BA+d} \quad \quad \quad (4)\)

联立\((2)(4)\)可得【 这里的BA为\(\Delta x = \frac{\Delta \theta}{2\pi}\lambda\):

\(\quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad \quad PP'=\frac{L\Delta\theta}{\Delta\theta+2\pi d/\lambda} \quad \quad \quad (5)\)

其中\(PP'\)为所求物点高度,\(L、d、\lambda\)为系统标定或结构光光栅编码时可确定的参数。所以只需要通过结构光解码求得物点\(P\)处相位相对于参考平面相位变化值\(\Delta \theta\)即可完成三维信息测量。