Structured light calibration method based on local RANSAC
-
摘要:
在结构光三维测量技术中,系统的标定是测量的基础。介绍了一种通过向棋盘格标定板投射编码光栅,由角点处的相位值计算其投影像素坐标的方法;考虑到角点邻域位置存在相位缺失和相位异常的问题,提出了一种基于局部随机样本一致性(random sample consensus,RANSAC)的拟合算法进行相位异常值剔除以及曲面拟合插值,从而计算出特征点的亚像素级投影像素坐标进行标定。该方法不依赖相机的标定结果,同样适用于圆点标定板,对特征点附近相位值的异常和噪声进行了有效的过滤。实验结果表明:该方法对异常值具有较好的鲁棒性,重投影误差达到0.09 pixels,对标定板的种类和成本要求更低,具有一定的实用价值。
Abstract:In structured light 3D measurement technology, the system calibration is the basis of measurement. A method was introduced that projected a coding grating onto a checkerboard calibration plate and calculated its projected pixel coordinates from the phase values at the corner points. Considering the problems of phase missing and phase anomalies in the corner neighborhood, a fitting algorithm based on local random sample consensus (RANSAC) was proposed to eliminate phase outliers and surface fitting interpolation, thereby calculating the sub-pixel level projected pixel coordinates of the feature points for calibration. This method does not rely on the calibration results of the camera and is also applicable to the dot calibration plate, effectively filtering the anomalies and noise of the phase values near the feature points. Experimental results show that this method has good robustness to outliers, and the reprojection error reaches 0.09 pixels, which has lower requirements on the type and cost of calibration plates, and has certain practical values.
-
引言
结构光三维测量技术是一种主动光学测量方法,通过向物体表面投射特定的编码光源,在物体表面形成标记点,并由相机捕获图像。然后,根据标记点在不同高度的位置变化,计算出物体的高度和尺寸信息[1-3]。这种方法具有计算简单、成本低、精度高等优点,因此在实际的三维测量中得到了广泛的应用[4-5]。要实现结构光测量,首先对系统进行标定,这是影响测量精度的关键因素[6-10]。目前,相机标定的方法已经比较成熟。但是,由于投影仪只能将信息输出到空间中,无法建立投影像素平面与空间中点的映射关系,其标定的方法还存在一些挑战。通常,结构光系统的求解模型可分为两类:相位高度模型和三角立体模型[11]。
相位高度模型是通过相位和高度的映射函数,相对于一个高度为0的参考平面来测量物体的高度。这种模型的约束较多,虽然LU J等研究者们提出了一些广义的相位高度模型,使系统可以自由地布置相机和投影仪,不受几何约束限制[12],但是这种模型多数需要一个参考平面和精密的移动平台,且依赖于相机标定结果求解映射函数,增加了测量的成本和误差。三角立体模型源于立体视觉模型,在此模型中,投影仪被视作逆相机,可以按照与校准相机相同的方式校准投影仪。此方法成本较低,对投影仪的镜头畸变系数同样可以标定获得。MORENO D等人提出了一种使用局部单应性矩阵进行投影仪标定的方法,并提供了相关软件[13],但是由于该方法仅使用格雷码进行编码,在实际计算中仅可达到像素级坐标精度。HUANG Z等人提出了一种通过提取CCD上标定板圆边缘的一组像素并映射到DMD上,为了实现DMD上圆心位置的亚像素精度标定,采用了最小二乘法进行拟合[14]。该方法虽然能够达到亚像素水平的标定效果,但是只适用于圆形图案的标定目标,并且圆形目标会产生偏心误差,导致标定精度不够理想。为了解决圆形目标的投影偏心误差,杜哲琪等人基于摄像机的非线性成像模型,提出了一种利用透视变换和圆心排序实现圆心自动匹配的算法[15],但是由于使用不准确的圆心坐标进行透视变化,标定结果仍不够理想。XING S等人提出了一种使用有理函数拟合测量的相位进行估计参数,然后使用迭代策略进行畸变矫正和内外参数修正,虽具有较高的精度,但是需要进行误差修正,大量数据的迭代无疑会影响求解的速度[16]。前人虽然做了许多相关研究,但是精度较低,对特定标定板适用,求解模型过于复杂等问题仍有待改进。
在现有研究基础上,本文提出了一种优化方法。首先,向棋盘格标定板投射一组x方向和y方向编码的光栅,以及一张纯白的图片,通过相移法结合多频外差方法求解x和y方向上的相位;然后,通过相机检测出棋盘格的亚像素级角点坐标,并在相位图上以该点为中心,截取一个a×a相位值矩阵。棋盘格黑色区域无法进行相位求解,且在黑白交界尤其是角点位置,由于相机的低通特性,容易出现相位求解异常点。因此,考虑到投影镜头畸变以及噪声干扰,本文通过局部RANSAC算法,将相位值中的异常点剔除,并进行多项式曲面拟合;最后,将相机检测出的角点坐标带入曲面方程,得到相位值,进而求解出角点对应的投影像素坐标系下的亚像素精度坐标,利用此坐标对应关系进行投影标定。该方法适用于棋盘格和圆点标定板的特征点求解,降低了标定成本,且对噪声和相位误差有较好的鲁棒性。
1 系统模型
本文在三角立体模型的基础上进行标定。相较于相位高度模型,三角立体模型中投影仪和相机可以任意部署,只要被测物体位于共同视场中即可。该方法数学模型简单,投影仪的标定可以不依赖相机的标定结果。
三角立体模型测量原理如下:对于空间中任意一个点P(X, Y, Z),投影仪将一组编码的光栅投射到该点上,相机采集到的P点在相机像平面上为Pcam,P点上投射的条纹对应投影仪像平面上Pproj点,3点在空间中构成一个三角形,通过标定获得相机和投影的相关参数,就可以利用几何关系求解P点在世界坐标下的位置。三角立体模型如图1所示。
2 基本原理与方法
2.1 相机标定
相机标定方法主要是利用标定板(例如棋盘格、圆点标定板等),根据标定板上特征点(比如角点、圆心等)在图像坐标系和世界坐标系中的对应关系求解相机的内外参数和畸变。
针孔成像模型是研究相机成像常用的模型,如图2所示。设空间中有一点P,摄像机的光心为O,点P在世界坐标系的坐标为$({X_{\text{W}}},{Y_{\text{W}}},{Z_{\text{W}}})$,该点穿过光心O,最终在像素坐标系成像的坐标为$P''({u_{\text{c}}},{v_{\text{c}}})$。
根据射影几何原理中坐标系的转换关系及摄像机的线性成像模型,将两者转化到齐次坐标系[17],其对应关系为
$$ \begin{split} {Z_{\text{c}}}\left[ {\begin{array}{*{20}{c}} {{u_{\text{c}}}} \\ {{v_{\text{c}}}} \\ 1 \end{array}} \right] =& \left[ {\begin{array}{*{20}{c}} {{\alpha _{\text{c}}}}&{{\gamma _{\text{c}}}}&{{u_{{\text{c0}}}}} \\ 0&{{\beta _{\text{c}}}}&{{v_{{\text{c0}}}}} \\ 0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{R}}_{\text{c}}}}&{{{\boldsymbol{T}}_{\text{c}}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X_{\text{W}}}} \\ {{Y_{\text{W}}}} \\ {{Z_{\text{W}}}} \\ 1 \end{array}} \right] =\\ &{{\boldsymbol{A}}_{\text{c}}}\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{R}}_{\text{c}}}}&{{{\boldsymbol{T}}_{\text{c}}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X_{\text{W}}}} \\ {{Y_{\text{W}}}} \\ {{Z_{\text{W}}}} \\ 1 \end{array}} \right] \end{split}$$ (1) 式中:Ac表示相机的内参矩阵;αc,βc,γc,uc0,vc0为内参矩阵中的各项系数;Rc,Tc分别为世界坐标系到相机坐标系变换的旋转矩阵和平移向量,即外参矩阵。式(1)为理想情况下的线性相机模型,但是由于存在凸透镜,镜头会导致图像发生畸变。相机畸变有径向畸变和切向畸变两种类型,径向畸变的数学形式如下:
$$ \left\{ {\begin{array}{*{20}{c}} {{x_{{\text{dr}}}} = {x_{\text{c}}} + {x_{\text{c}}}\left( {{k_{{\text{c1}}}}{r^2} + {k_{{\text{c2}}}}{r^4} + {k_{{\text{c3}}}}{r^6} + ...} \right)} \\ {{y_{{\text{dr}}}} = {y_{\text{c}}} + {y_{\text{c}}}\left( {{k_{{\text{c1}}}}{r^2} + {k_{{\text{c2}}}}{r^4} + {k_{{\text{c3}}}}{r^6} + ...} \right)} \end{array}} \right. $$ (2) 式中:$({x_{\text{c}}},{y_{\text{c}}})$为理想图像坐标;$({x_{{\text{d}}r}},{y_{{\text{d}}r}})$为含有径向畸变的原始图像坐标;变量r为像素点至图像中心的径向距离;${k_{{\text{c1}}}},{k_{{\text{c2}}}},{k_{{\text{c3}}}},...$为描述畸变程度的系数,在非鱼眼镜头模型中,一般取前两项系数。
切向畸变是镜头与相机传感器平面或图像平面不完全平行造成的,通常为镜头安装时产生的偏差。这种畸变会导致图像在水平或垂直方向上出现偏移,影响图像的整体几何形状和准确性。切向畸变由以下2个参数来描述[18]:
$$ \left\{ {\begin{array}{*{20}{c}} {{x_{{\text{tr}}}} = {x_{\text{c}}} + \left[ {2{p_{{\text{c1}}}}{x_{\text{c}}}{y_{\text{c}}} + {p_{{\text{c2}}}}\left( {{r^2} + 2x_{\text{c}}^2} \right)} \right]} \\ {{y_{{\text{tr}}}} = {y_{\text{c}}} + \left[ {2{p_{{\text{c2}}}}{x_{\text{c}}}{y_{\text{c}}} + {p_{{\text{c1}}}}\left( {{r^2} + 2y_{\text{c}}^2} \right)} \right]} \end{array}} \right. $$ (3) 式中:$({x_{{\text{tr}}}},{y_{{\text{tr}}}})$为含有切向畸变的原始图像坐标;变量r为像素点至图像中心的径向距离;${p_{{\text{c1}}}},{p_{{\text{c2}}}}$为描述切向畸变程度的系数。
2.2 投影标定
将投影仪视作光路相反的相机,其成像原理与相机类似,故可以用相同的数学模型来描述空间中某点与投影仪像素坐标的转换关系和镜头的畸变,即:
$$\begin{split} {Z_{\text{p}}}\left[ {\begin{array}{*{20}{c}} {{u_{\text{p}}}} \\ {{v_{\text{p}}}} \\ 1 \end{array}} \right] = & \left[ {\begin{array}{*{20}{c}} {{\alpha _{\text{p}}}}&{{\gamma _{\text{p}}}}&{{u_{{\text{p0}}}}} \\ 0&{{\beta _{\text{p}}}}&{{v_{{\text{p0}}}}} \\ 0&0&1 \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{R}}_{\text{p}}}}&{{{\boldsymbol{T}}_{\text{p}}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X_{\text{W}}}} \\ {{Y_{\text{W}}}} \\ {{Z_{\text{W}}}} \\ 1 \end{array}} \right] = \\ &{{\boldsymbol{A}}_{\text{p}}}\left[ {\begin{array}{*{20}{c}} {{{\boldsymbol{R}}_{\text{p}}}}&{{{\boldsymbol{T}}_{\text{p}}}} \end{array}} \right]\left[ {\begin{array}{*{20}{c}} {{X_{\text{W}}}} \\ {{Y_{\text{W}}}} \\ {{Z_{\text{W}}}} \\ 1 \end{array}} \right] \end{split} $$ (4) $$ \left\{ {\begin{array}{*{20}{c}} {{x_{{\text{dr}}}} = {x_{\text{p}}} + {x_{\text{p}}}\left( {{k_{{\text{p1}}}}{r^2} + {k_{{\text{p2}}}}{r^4} + {k_{{\text{p3}}}}{r^6} + ...} \right)} \\ {{y_{{\text{dr}}}} = {y_{\text{p}}} + {y_{\text{p}}}\left( {{k_{{\text{p1}}}}{r^2} + {k_{{\text{p2}}}}{r^4} + {k_{{\text{p3}}}}{r^6} + ...} \right)} \end{array}} \right. $$ (5) $$ \left\{ {\begin{array}{*{20}{c}} {{x_{{\text{tr}}}} = {x_{\text{p}}} + \left[ {2{p_{{\text{p1}}}}{x_{\text{p}}}{y_{\text{p}}} + {p_{{\text{p2}}}}\left( {{r^2} + 2x_{\text{p}}^2} \right)} \right]} \\ {{y_{{\text{tr}}}} = {y_{\text{p}}} + \left[ {2{p_{{\text{p2}}}}{x_{\text{p}}}{y_{\text{p}}} + {p_{{\text{p1}}}}\left( {{r^2} + 2y_{\text{p}}^2} \right)} \right]} \end{array}} \right. $$ (6) 式中各参数含义与相机模型相同,通过下标c(camera)和p(project)来区分相机和投影仪的各类参数。投影仪只能输出数据到外界,无法将一个点的世界坐标与投影像素坐标相对应,因此,投影标定的关键问题就转化为如何得到特征点对应的投影像素坐标。
在结构光三维重建中,通过特定的编码模式投影(如格雷码或正弦编码)标记投影中的每一个区域。当这些编码的投影被相机捕获并解码时,可以准确地确定每个相位值对应的投影像素位置,从而实现精确的深度估计和三维重建。因此,可以向标定板投射特定的编码图像,通过相机辅助来确定特征点在投影像素坐标系上的位置并进行标定。
相较于格雷码,使用相移法结合多频外差[19]的正弦编码,抗干扰能力强、细节保留良好、精度较高。本文使用三频六相光栅来主动标记区域。正弦光栅生成公式为
$$ \begin{gathered} {I_k} = A + B\cos \left( {2{\text{π}}fx + \frac{{2k{\text{π }}}}{N}} \right) \\ (k = 0,1,...,N - 1) \\ \end{gathered} $$ (7) 式中:Ik为光栅中某一点的灰度值;A为背景光强;B为调制强度;N为相移步数; f=1/T为相移频率,T为单个周期内像素的数量;x为编码方向上的像素坐标;k为相移图像的索引。
在式(7)中存在多个未知数,利用相移法获得多张图片联立方程组,通过式(8)进行相位求解,得到每一点对应的相位值,即:
$$ \varphi (x) = - \arctan \left\{ {\frac{{\displaystyle\sum\limits_{k = 0}^{N - 1} {\left[ {{I_k}\sin (2k{\text{π }}/N)} \right]} }}{{\displaystyle\sum\limits_{k = 0}^{N - 1} {\left[ {{I_k}\cos (2k{\text{π }}/N)} \right]} }}} \right\} $$ (8) 通过式(8)求解出的结果周期太短,无法编码整个视场,导致同一个相位值下有多个对应的横坐标。故采用多频外差法,利用该点在2个不同频率上相位值的差异,重新合成一个覆盖整个视场的大周期相位,以消除相位的歧义性。多频外差的相位合成如式(9)和式(10)所示:
$$ {\varphi _{12}} = \left\{ {\begin{array}{*{20}{l}} {{\varphi _1} - {\varphi _2},}&{{\varphi _1} \geqslant {\varphi _2}} \\ {2{\text{π }} + {\varphi _1} - {\varphi _2},}&{{\varphi _1} \lt {\varphi _2}} \end{array}} \right. $$ (9) $$ {T_{12}} = \frac{{{T_1}{T_2}}}{{{T_2} - {T_1}}} $$ (10) 式中:${\varphi _1}$,${\varphi _2}$分别为x在2个不同频率相位图上的相位值;${\varphi _{12}}$为通过多频外差合成后的相位值;${T_1}$,${T_2}$分别为用来合成的2个光栅的周期;${T_{12}}$为合成后的周期。多频外差合成周期示意图如图3所示。
至此,通过相位求解与展开,可以确保在x方向编码的光栅每一行任意一个点都对应着唯一的相位值,即对应着投影像素坐标系下的唯一横坐标。同理,y方向编码的光栅对应着唯一的纵坐标。通过投射2个方向编码的光栅,即可确定标定板上每一个特征点在投影像素坐标系下的坐标。
实验中除了投射编码的光栅,还投射一张纯白图像,用于角点检测。通过相机图像的角点坐标可得到其对应位置的相位值。但是,由于角点位置处于边界,实际相位情况较为复杂。在棋盘格的黑色区域,反射率较低,无法求解出具体的相位值;在棋盘格白色区域,存在噪声干扰、灰尘等因素导致异常值的出现;且由于相机的低通特性,棋盘格黑白边界处的相位求解会出现误差,如图4所示。故需要对异常值进行过滤,并进行拟合插值来求解亚像素坐标角点处的具体相位值。
2.3 局部RANSAC算法
随机样本一致性(random sample consensus,RANSAC)算法是一种迭代方法,旨在从含有离群点的数据集中估计出模型参数[20]。其工作原理是,随机选取数据子集,基于这些子集构建模型,并计算模型与所有数据点的误差。通过这种方式,算法能够识别并使用误差小于特定阈值的数据点来精确估计模型参数。RANSAC的一个显著优势是,对于异常数据具有高度的容忍性,在处理含有噪声的数据时特别有效。图5所示为二维线性RANSAC对带有误差值的数据进行拟合的曲线。由图5可以看出,此方法相较于传统的最小二乘拟合,对误差点不敏感,拟合曲线更贴合真实分布。
求解出的完整相位图,通常含有数百万甚至上千万个数据点,对所有数据进行迭代拟合是一个繁琐的工作。且由于畸变误差的引入,用简单的方程对整个相位进行拟合,难以精确还原角点细节处的相位值。因此,本文提出了一种简化的局部RANSAC算法,以减少迭代数据集数量,并使拟合曲面更准确地还原每个特征点附近的相位值。
为了去除相位图中的异常点,求解角点亚像素级投影像素坐标,按照以下步骤进行迭代拟合。
1) 角点检测。在纯白投影图片下,使用角点检测算法求解出标定板某一位姿下角点的相机亚像素坐标$({u_1},{v_1}),({u_2},{v_2}),({u_3},{v_3}),...$
2) 相位值矩阵截取。在x方向编码的相位图中,以每一个角点为中心,截取大小为a×a的相位值矩阵${M_1},{M_2},{M_3},...$
3) 多项式曲面拟合。设定多项式曲面拟合方程、阈值d和最大迭代次数N,并根据方程未知系数个数设置最小采样个数s。随机在${M_i}$中选取s个点,使用这些数据点来计算模型,并将所有数据带入模型,计算出误差小于d的“内点”数量n。
4) 模型比较和记录。重复上述步骤,比较当前模型和之前最好模型的n,记录n最大的模型参数,直到达到预设的迭代次数,或者当前模型“内点”数量超过一定值。将角点坐标代入,求解出角点在投影像素坐标系的x坐标。对y方向编码的相位图进行同样操作,求解出角点在投影像素坐标的y坐标。
算法的流程图如图6所示。
通过上述算法,对角点处相位图进行局部曲面拟合迭代,将识别为外点的异常值过滤掉并拟合出亚像素精度的投影像素坐标。最后使用该结果对投影仪进行标定。对于畸变较小的投影和相机,且截取的邻域矩阵较小时,可以使用局部平面拟合提高计算速度。
3 实验结果与分析
本文进行实验的结构光标定系统如图7所示。该系统采用YOGA T500 DLP投影仪,投影仪的DMD芯片尺寸为8.382 mm(0.33 inch),分辨率为1 280 pixel×720 pixel,相机采用海康威视 MV-CE200-10UC型CMOS相机,分辨率为5 472 pixel ×3 648 pixel。使用的标定板型号为GP150棋盘格标定板,精度为±0.01 mm。采用三相六步相移法,分别生成x方向编码和y方向编码的正弦光栅条纹各18张,外加一张纯白图片,共37张图片。
3.1 实验步骤
利用一张白色图像来识别不同位姿下的棋盘格角点坐标,如图8所示。图中圆圈为检测到的棋盘格角点,记录下不同位姿下每个角点在相机像素坐标系下的坐标,用于后续的求解。
对投射到棋盘格的光栅图案进行相位求解,求解结果如图9所示。从图9可以看出,在棋盘格的黑白交界区域出现大量相位求解的误差点,这些点会干扰角点处相位值拟合的结果,因此需要剔除。
为了验证该算法对噪声的鲁棒性,在求解出的相位图中加入随机噪声,模拟标定板上灰尘或破损带来的相位错误。以每个角点为中心,截取101 pixel×101 pixel局部相位矩阵进行RANSAC迭代,将内外点进行区分,如图10所示。图10中‘·’ 标记为迭代后的内点,‘*’标记为相位值错误的外点。
从图10可以看出,不符合整体相位分布的离群点和误差点已经被区分开,利用内点进行拟合插值,得到亚像素角点处的相位值。由于使用多频外差方法,求解出的绝对相位值具有唯一性且位于[0, 2π]区间,因此进行归一化处理,然后根据投影仪分辨率按照式(11)进行缩放,即可得到角点对应的投影像素坐标系下的坐标[11]。
$$ \left\{ {\begin{array}{*{20}{c}} {{x_{\text{p}}} = ph{a_x} \times {W_{\text{p}}}/2{\text{π }}} \\ {{y_{\text{p}}} = ph{a_y} \times {H_{\text{p}}}/2{\text{π }}} \end{array}} \right. $$ (11) 式中:$ {x_{\text{p}}} $和$ {y_{\text{p}}} $分别为某一点在投影仪坐标系下的横坐标和纵坐标;$ ph{a_x} $和$ ph{a_y} $分别为该点在x方向和y方向编码的绝对相位值;$ {W_{\text{p}}} $和$ {H_{\text{p}}} $分别为投影仪的横向与纵向分辨率。
通过上述方法对不同位姿下每个角点的投影像素坐标进行求解,得到的分布结果如图11所示。
为验证所提出算法对圆形标定板的适用性,使用型号为GE120、精度为±0.01 mm的圆点标定板进行投影仪标定实验。圆点标定板的特征点(圆心)检测结果如图12所示。
向圆点标定板投射编码光栅并进行相位求解与展开后,同样使用局部RANSAC算法去除相位中的异常点,特征点附近异常相位值去除效果如图13所示。
从图13中可以看出,异常点被有效地识别为外点,将外点去除后进行相位拟合,并求解投影像素坐标系下的特征点坐标,完成后续标定。
3.2 实验结果
根据计算的角点像素坐标和世界坐标的对应关系,使用张正友标定法进行标定,求解出相机和投影仪的内参矩阵、畸变系数和外参矩阵。由于从标定获得的内外参矩阵和畸变系数中无法看出标定结果的改进,后续将通过误差大小来分析本文所提出方法的优势。使用棋盘格标定板进行标定的结果如表1和表2所示。
参数 标定结果 内参矩阵 $\left[ {\begin{array}{*{20}{c}} {5\;202.3}&0&{2\;697.3} \\ 0&{5\;201.1}&{1\;797.8} \\ 0&0&1 \end{array}} \right]$ 径向畸变 $\begin{gathered} {k_{{\text{c1}}}} = - 0.094\;194 \\ {k_{{\text{c2}}}} = 0.110\;861 \\ \end{gathered} $ 切向畸变 $\begin{gathered} {p_{{\text{c1}}}} = 0.000\;341 \\ {p_{{\text{c2}}}} = - 0.000\;046 \\ \end{gathered} $ 外参矩阵 $ \left[ {\begin{array}{*{20}{c}} {0.983\;2}&{0.041\;2}&{ - 0.177\;8}&{ - 33.307\;0} \\ { - 0.052\;3}&{0.996\;9}&{ - 0.058\;1}&{ - 28.054\;7} \\ {0.174\;8}&{0.066\;4}&{0.982\;4}&{191.592\;4} \end{array}} \right] $ 参数 标定结果 RANSAC异常点过滤前 RANSAC异常点过滤后 内参矩阵 $\left[ {\begin{array}{*{20}{c}} {1\;255.3}&{ - 4.2}&{668.3} \\ 0&{1\;245.7}&{694.5} \\ 0&0&1 \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} {1\;502.6}&{ - 1.4}&{676.5} \\ 0&{1\;487.6}&{728.4} \\ 0&0&1 \end{array}} \right]$ 径向畸变 $\begin{array}{*{20}{c}} {{k_{{\text{p}}1}} = - 0.030\;899} \\ {{k_{{\text{p}}2}} = {\text{0}}{\text{.078\;910}}} \end{array}$ $\begin{array}{*{20}{c}} {{k_{{\text{p}}1}} = 0.018\;768} \\ {{k_{{\text{p}}2}} = 0.001\;807} \end{array}$ 切向畸变 $\begin{gathered} {p_{{\text{p1}}}} = - {\text{0}}{\text{.006\;108}} \\ {p_{{\text{p2}}}} = - {\text{0}}{\text{.005\;741}} \\ \end{gathered} $ $\begin{gathered} {p_{{\text{p1}}}} = - 0.000\;998 \\ {p_{{\text{p2}}}} = - 0.001\;061 \\ \end{gathered} $ 外参矩阵 $\left[ {\begin{array}{*{20}{c}} {0.999\;5}&{0.027\;2}&{0.013\;6}&{ - 65.510\;4} \\ { - 0.027\;0}&{0.999\;5}&{ - 0.014\;0}&{ - 108.472\;8} \\ { - 0.014\;0}&{0.013\;6}&{0.999\;8}&{297.166\;0} \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} {0.999\;6}&{0.026\;0}&{0.007\;8}&{ - 67.399\;8} \\ { - 0.025\;9}&{0.999\;6}&{ - 0.014\;6}&{ - 116.306\;2} \\ { - 0.008\;2}&{0.014\;4}&{0.999\;9}&{352.510\;4} \end{array}} \right]$ 3.3 标定误差分析
重投影误差是利用上一步计算得到的三维点的坐标和相机投影的内外参矩阵进行第二次映射,计算2次投影过程得到的像素点的差值。重投影误差的产生示意图如图14所示。
空间点P的坐标在相机像平面和投影像平面的对应点分别记为Pc和Pp,通过标定结果计算得到的坐标分别记为Pc'和Pp'。重投影误差是标定参数计算得到的像素点坐标与实际检测的像素点坐标之间的欧氏距离,即图14中的ret1和ret2。重投影误差越小,即计算值与实际值误差越小,表明标定的结果越准确[21]。通过分析标定的重投影误差可定量比较标定结果,重投影误差计算公式为
$$ ret = \sqrt {{{\left( {u - u'} \right)}^2} + {{\left( {v - v'} \right)}^2}} $$ (12) 式中:$(u,v)$为世界坐标三维点转化为摄像机坐标系下的投影坐标;$(u',v')$为相机采集的图像点的坐标。对于投影仪同理。通过式(12)计算重投影误差,计算结果如图15所示。
从图15可以看出,棋盘格对相位值进行局部RANSAC迭代去除异常值后进行拟合,标定的重投影误差从0.81 pixels降低到0.09 pixels,误差降低了89 %,即标定结果计算得到的像素点坐标与实际的像素点坐标之间偏差显著降低。此外,该方法在圆点标定板上仍具有较好的标定精度。由于本实验中,投影仪与参考平面近乎垂直,而相机与参考平面夹角较大,在放置标定板时,相机视角的圆形被透视变换为椭圆,导致圆心检测出现偏心误差。文献[15]提到了相关误差产生的原因和补偿方法。本文旨在提高存在相位求解误差和噪声时测量的稳定性,并降低运算量,因此没有调整系统布置,也没有对该误差进行补偿。此外,本文使用的两块标定板并非同一厂家生产,实际精度可能存在一些差异。因此,在本实验中尽管标定板的理论精度相同,但圆点标定板的标定精度略低于棋盘格标定板。
4 结论
本文提出一种在相位求解基础上通过局部RANSAC方法,对标定板特征点附近的相位进行异常值过滤并拟合求解的标定方法,使用棋盘格和圆点标定板进行验证。实验结果表明,该方法对相位求解过程中产生的误差和噪声具有较好的鲁棒性,降低了模型的复杂程度和计算的数据量,适用于多种标定板,且标定精度较高,具有一定的实用价值。
-
表 1 相机棋盘格标定结果
Table 1 Camera calibration results of checkerboard
参数 标定结果 内参矩阵 $\left[ {\begin{array}{*{20}{c}} {5\;202.3}&0&{2\;697.3} \\ 0&{5\;201.1}&{1\;797.8} \\ 0&0&1 \end{array}} \right]$ 径向畸变 $\begin{gathered} {k_{{\text{c1}}}} = - 0.094\;194 \\ {k_{{\text{c2}}}} = 0.110\;861 \\ \end{gathered} $ 切向畸变 $\begin{gathered} {p_{{\text{c1}}}} = 0.000\;341 \\ {p_{{\text{c2}}}} = - 0.000\;046 \\ \end{gathered} $ 外参矩阵 $ \left[ {\begin{array}{*{20}{c}} {0.983\;2}&{0.041\;2}&{ - 0.177\;8}&{ - 33.307\;0} \\ { - 0.052\;3}&{0.996\;9}&{ - 0.058\;1}&{ - 28.054\;7} \\ {0.174\;8}&{0.066\;4}&{0.982\;4}&{191.592\;4} \end{array}} \right] $ 表 2 投影仪棋盘格标定结果
Table 2 Projector calibration results of checkerboard
参数 标定结果 RANSAC异常点过滤前 RANSAC异常点过滤后 内参矩阵 $\left[ {\begin{array}{*{20}{c}} {1\;255.3}&{ - 4.2}&{668.3} \\ 0&{1\;245.7}&{694.5} \\ 0&0&1 \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} {1\;502.6}&{ - 1.4}&{676.5} \\ 0&{1\;487.6}&{728.4} \\ 0&0&1 \end{array}} \right]$ 径向畸变 $\begin{array}{*{20}{c}} {{k_{{\text{p}}1}} = - 0.030\;899} \\ {{k_{{\text{p}}2}} = {\text{0}}{\text{.078\;910}}} \end{array}$ $\begin{array}{*{20}{c}} {{k_{{\text{p}}1}} = 0.018\;768} \\ {{k_{{\text{p}}2}} = 0.001\;807} \end{array}$ 切向畸变 $\begin{gathered} {p_{{\text{p1}}}} = - {\text{0}}{\text{.006\;108}} \\ {p_{{\text{p2}}}} = - {\text{0}}{\text{.005\;741}} \\ \end{gathered} $ $\begin{gathered} {p_{{\text{p1}}}} = - 0.000\;998 \\ {p_{{\text{p2}}}} = - 0.001\;061 \\ \end{gathered} $ 外参矩阵 $\left[ {\begin{array}{*{20}{c}} {0.999\;5}&{0.027\;2}&{0.013\;6}&{ - 65.510\;4} \\ { - 0.027\;0}&{0.999\;5}&{ - 0.014\;0}&{ - 108.472\;8} \\ { - 0.014\;0}&{0.013\;6}&{0.999\;8}&{297.166\;0} \end{array}} \right]$ $\left[ {\begin{array}{*{20}{c}} {0.999\;6}&{0.026\;0}&{0.007\;8}&{ - 67.399\;8} \\ { - 0.025\;9}&{0.999\;6}&{ - 0.014\;6}&{ - 116.306\;2} \\ { - 0.008\;2}&{0.014\;4}&{0.999\;9}&{352.510\;4} \end{array}} \right]$ -
[1] ENGEL T. 3D optical measurement techniques[J]. Measurement Science and Technology, 2023, 34(3): 032002. doi: 10.1088/1361-6501/aca818
[2] 郑太雄, 黄帅, 李永福, 等. 基于视觉的三维重建关键技术研究综述[J]. 自动化学报, 2020, 46(4): 631-652. ZHENG Taixiong, HUANG Shuai, LI Yongfu, et al. Key techniques for vision based 3D reconstruction: a review[J]. Acta Automatica Sinica, 2020, 46(4): 631-652.
[3] 苏显渝, 张启灿, 陈文静. 结构光三维成像技术[J]. 中国激光, 2014, 41(2): 9-18. SU Xianyu, ZHANG Qican, CHEN Wenjing. Three-dimensional imaging based on structured illumination[J]. Chinese Journal of Lasers, 2014, 41(2): 9-18.
[4] 虞梓豪, 刘瑾, 杨海马, 等. 多频光栅物体高精度廓形三维测量及重建研究[J]. 应用光学, 2020, 41(3): 580-585. doi: 10.5768/JAO202041.0303006 YU Zihao, LIU Jin, YANG Haima, et al. Research on 3D measurement and reconstruction of high-precision profile of multi-frequency grating object[J]. Journal of Applied Optics, 2020, 41(3): 580-585. doi: 10.5768/JAO202041.0303006
[5] QI Z, WANG Z. Error of image saturation in the structured-light method[J]. Applied Optics, 2018, 57(1): A181-A185. doi: 10.1364/AO.57.00A181
[6] 吴文丽, 周哲海, 刘芳玲, 等. 基于局部单应性的投影仪标定精度研究[J]. 激光杂志, 2023, 44(6): 53-59. WU Wenli, ZHOU Zhehai, LIU Fangling, et al. Research on projector calibration accuracy based on local homography[J]. Laser Journal, 2023, 44(6): 53-59.
[7] 张美航, 张华, 鄢威. 结构光自标定方法综述[J]. 传感器与微系统, 2023, 42(2): 1-4. ZHANG Meihang, ZHANG Hua, YAN Wei. Review on self-calibration methods of structured light[J]. Transducer and Microsystem Technologies, 2023, 42(2): 1-4.
[8] JUAREZ-SALAZAR R, DIAZ-RAMIREZ V H. Flexible camera-projector calibration using superposed color checkerboards[J]. Optics and Lasers in Engineering, 2019, 120: 59-65. doi: 10.1016/j.optlaseng.2019.02.016
[9] JIANG C, XING S, GUO H. Fringe harmonics elimination in multi-frequency phase-shifting fringe projection profilometry[J]. Optics Express, 2020, 28(3): 2838-2856. doi: 10.1364/OE.384155
[10] FENG S, ZUO C, ZHANG L, et al. Generalized framework for non-sinusoidal fringe analysis using deep learning[J]. Photonics Research, 2021, 9(6): 1084-1098. doi: 10.1364/PRJ.420944
[11] ZUO C. Calibration of fringe projection profilometry: a comparative review[J]. Optics and Lasers in Engineering, 2021, 143: 106622. doi: 10.1016/j.optlaseng.2021.106622
[12] LU J, MO R, SUN H,et al. Flexible calibration of phase-to-height conversion in fringe projection profilometry[J]. Applied Optics, 2016, 55(23): 6381-6388. doi: 10.1364/AO.55.006381
[13] MORENO D, TAUBIN G. Simple, accurate, and Robust projector-camera calibration[C]// 2012 Second International Conference on 3D Imaging, Modeling, Processing, Visualization & Transmission. Zurich, Switzerland: IEEE, 2012: 464-471.
[14] HUANG Z,XI J,YU Y,et al. Accurate projector calibration based on a new point-to-point mapping relationship between the camera and projector images[J]. Applied Optics, 2015, 54(3): 347-356. doi: 10.1364/AO.54.000347
[15] 杜哲琪, 王国珲. 一种基于圆阵列标定板的光栅投影系统标定方法[J]. 兵器装备工程学报, 2022, 43(2): 259-266. doi: 10.11809/bqzbgcxb2022.02.041 DU Zheqi, WANG Guohui. Calibration method of grating projection system based on circular array calibration board[J]. Journal of Ordnance Equipment Engineering, 2022, 43(2): 259-266. doi: 10.11809/bqzbgcxb2022.02.041
[16] XING S, GUO H. Iterative calibration method for measurement system having lens distortions in fringe projection profilometry[J]. Optics Express, 2020, 28(2): 1177-1196. doi: 10.1364/OE.382595
[17] ZHANG Z. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330-1334. doi: 10.1109/34.888718
[18] 刘艳, 李腾飞. 对张正友相机标定法的改进研究[J]. 光学技术, 2014, 40(6): 565-570. doi: 10.3788/GXJS20144006.0565 LIU Yan, LI Tengfei. Reaserch of the improvement of Zhang's camera calibration method[J]. Optical Technique, 2014, 40(6): 565-570. doi: 10.3788/GXJS20144006.0565
[19] 李中伟. 基于数字光栅投影的结构光三维测量技术与系统研究[D]. 武汉: 华中科技大学, 2009. LI Zhongwei. Research on structured light 3D measureing technology and system based on digital fringe projection[D]. Wuhan: Huazhong University of Science and Technology, 2009.
[20] FISCHLER M A, BOLLES R C. Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography[J]. Communications of the ACM, 1981, 24(6): 381-395. doi: 10.1145/358669.358692
[21] 朱勇建, 黄振, 马俊飞, 等. 光栅投影三维测量系统标定技术研究[J]. 应用光学, 2020, 41(5): 938-946. doi: 10.5768/JAO202041.0502002 ZHU Yongjian, HUANG Zhen, MA Junfei, et al. Study on calibration method of grating projection 3D measuring system[J]. Journal of Applied Optics, 2020, 41(5): 938-946. doi: 10.5768/JAO202041.0502002