发明内容
为此,本发明所要解决的技术问题在于克服现有技术中存在的问题,提供一种更全面的条纹投影三维测量系统的标定及精度评估方法,以应对不同应用场景的精度评估需求。
为解决上述技术问题,本发明提供一种条纹投影三维测量系统的标定及精度评估方法,包括如下步骤:
S10:建立由相位差到三维空间中的Z轴坐标的数学模型如下:
其中,(x,y)表示二维相机的像素坐标,Δφ(x,y)表示像素坐标(x,y)对应的相位差,Z(x,y)表示像素坐标(x,y)对应的三维空间中的Z轴坐标,a0(x,y)、a1(x,y)、a2(x,y)和a3(x,y)为需要计算的数学模型参数,其计算公式为:
其中,n表示标定数据的总组数,Δφi(x,y)表示第i组标定数据中像素坐标(x,y)对应的相位差,Zi(x,y)表示第i组标定数据中像素坐标(x,y)对应的三维空间中的Z轴坐标,i=1,2,…,n;将二维相机和投影仪安装于伺服驱动器和编码器组成的移动装置上,移动装置的移动方向垂直于标定板平面,获取Δφi(x,y)和Zi(x,y)的操作步骤为:
S11:控制移动装置,使标定板完全覆盖相机视野范围,以此位置的标定板平面为参考平面,记录此位置为i=0,获取此位置的标定板的相位作为参考相位φr(x,y);
S12:控制移动装置向标定板移动一次,令i=i+1,从编码器中读取相对于初始位置的移动距离hi,获取此位置的标定板的相位为φi(x,y),计算Δφi(x,y)和Zi(x,y)为:
S13:判断i<n是否成立,若成立则转到步骤S20,若不成立则将Δφi(x,y)和Zi(x,y),i=1,2,…,n,代入式(2),计算出像素坐标(x,y)对应的参数a0(x,y)、a1(x,y)、a2(x,y)、a3(x,y),完成纵向标定;
S20:建立由三维空间中的Z轴坐标到三维空间中的X轴、Y轴坐标的数学模型如下:
其中,X(x,y)和Y(x,y)分别表示像素坐标(x,y)对应的三维空间中的X轴、Y轴坐标,b0(x,y)、b1(x,y)、b2(x,y)、b3(x,y)为需要计算的数学模型参数,其计算公式为:
其中,X0(x,y)和Y0(x,y)表示当Z(x,y)=0时像素坐标(x,y)对应的三维空间中的X轴、Y轴坐标,XO、YO、ZO表示二维相机的光心在三维空间中的X轴、Y轴、Z轴坐标;
获取X0(x,y)、Y0(x,y)以及XO、YO、ZO的步骤为:
S21:在步骤S11中当i=0的位置时,操作二维相机拍摄标定板,检测标定板上的蓝色同心圆阵列,通过二维相机的标定方法得到标定板平面与二维相机的单应性矩阵
以及外参矩阵
S22:对矩阵H求逆得到矩阵G为:
其中,gi为矩阵G的元素,i=1,2,…,9,并根据矩阵G计算X0(x,y)、Y0(x,y)为:
S23:矩阵E表示为:
其中,rij和ti为矩阵E的元素,i=1,2,3,j=1,2,3,并根据矩阵E计算XO、YO、ZO为:
将XO、YO、ZO和X0(x,y)、Y0(x,y)代入式(5),计算出像素坐标(x,y)对应的参数b0(x,y)、b1(x,y)、b2(x,y)、b3(x,y),完成横向标定;
S30:通过重复测量100次阶梯型标准量块评估三维测量系统的精度,其中阶梯型标准量块存在三阶相互平行的平面,相邻两阶平面的距离为d,使用由投影仪和相机组成的三维测量系统以垂直于三阶平面的角度测量阶梯型标准量块,记测量次数为k=0,其具体评估步骤如下:
S31:获取阶梯型标准量块的表面相位,令k=k+1;
S32:计算第k次测量得到的像素坐标(x,y)对应的相位差Δφk(x,y)为:
Δφk(x,y)=φk(x,y)-φr(x,y) (10)
其中,φk(x,y)表示第k次测量得到像素坐标(x,y)对应的表面相位;
S33:将Δφk(x,y)和步骤S13中得到的参数a0(x,y)、a1(x,y)、a2(x,y)和a3(x,y)代入式(1)中,计算出k次测量得到的像素坐标(x,y)对应的Z轴坐标Zk(x,y);
S34:将Zk(x,y)和步骤S23中得到的参数b0(x,y)、b1(x,y)、b2(x,y)和b3(x,y)代入式(4)中,计算出k次测量得到的像素坐标(x,y)对应的X轴坐标Xk(x,y)和Y轴坐标Yk(x,y);
S35:对二维相机中拍摄到阶梯型标准量块的所有像素坐标执行步骤S32、步骤S33和步骤S35,计算出像素坐标对应的三维空间中的X轴、Y轴、Z轴坐标,得到由阶梯型标准量块的表面三维坐标组成的集合Pk为
Pk={pj|j∈[1,mk]} (11)
其中,mk表示集合Pk包含的三维坐标总数,j表示三维坐标pj在集合Pk中的序号,pj表示为pj=[Xj Yj Zj]T,其中Xj、Yj、Zj表示三维坐标pj的X轴、Y轴、Z轴坐标;
S36:将集合Pk划分为三个单阶平面的三维坐标集合P′k、P″k和P″′k,其中,P′k为第一阶平面的三维坐标集合,P″k为第二阶平面的三维坐标集合,P″′k为第三阶平面的三维坐标集合,选择合适的阈值T1和T2,其划分的方法为:
S37:根据集合P′k、P″k和P″′k中的三维坐标,拟合三个单阶平行平面的方程为:
计算相邻两阶平面的距离与实际距离d的偏差Δdk为:
计算第二阶平面的三维坐标集合P″k中所有三维坐标到第二阶平面的距离的均方差σk为:
其中,m”表示集合P″k的三维坐标总数,Xl、Yl、Zl表示集合P″k中第l个三维坐标的X轴、Y轴、Z轴坐标,l=1,2,L,m”;
S38:判断k<100是否成立,成立则转到步骤S31,不成立则得到100组式(13)中的第二阶平面的方程Akx+Bky+Ckz+D″k=0,k=1,2,L,100,100组通过式(14)计算出的偏差Δdk,k=1,2,L,100,100组通过式(15)计算出均方差σk,k=1,2,L,100;
S39:计算出100组第二阶平面的方程参数的平均值Am、Bm、Cm、D″m为:
计算100组第二阶平面与参数Am、Bm、Cm、D″m表示的平面的距离dk为:
取100组距离dk,k=1,2,L,100,的最大值为dmax;取100组偏差Δdk,k=1,2,L,100,的最大值为Δdmax;取100组均方差σk,k=1,2,L,100,的最大值为σmax;得到三维测量系统的重复精度为±dmax,绝对精度为Δdmax,平面度为±σmax,完成三维测量系统的精度评估。
本发明的上述技术方案相比现有技术具有以下优点:
本发明中条纹投影三维测量系统的纵向标定使用精确移动装置带动相机和投影仪移动,精确地获取到多组对应的相位差和三维空间中Z轴坐标,通过直接拟合相位差和三维空间中Z轴坐标的多项式关系,实现对相机和投影仪镜头畸变的补偿,提高了纵向标定结果的精度;横向标定结合了传统相机标定方法,操作方便且具有较高可靠性;通过测量标准梯形量块,能够一次性评估出条纹投影三维测量系统的绝对精度、平面度、重复精度三种精度指标,具有较高的参考价值,从而提供一种更全面的精度评估方法,以应对不同应用场景的精度评估需求。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
请参阅图1所示,本发明提供一种条纹投影三维测量系统的标定及精度评估方法,具体包括如下步骤。
S10:建立由相位差到三维空间中的Z轴坐标的数学模型如下:
其中,(x,y)表示二维相机的像素坐标,Δφ(x,y)表示像素坐标(x,y)对应的相位差,Z(x,y)表示像素坐标(x,y)对应的三维空间中的Z轴坐标,a0(x,y)、a1(x,y)、a2(x,y)和a3(x,y)为需要计算的数学模型参数,其计算公式为:
其中,n表示标定数据的总组数,Δφi(x,y)表示第i组标定数据中像素坐标(x,y)对应的相位差,Zi(x,y)表示第i组标定数据中像素坐标(x,y)对应的三维空间中的Z轴坐标,i=1,2,…,n;将二维相机和投影仪安装于伺服驱动器和编码器组成的移动装置上,装置的移动方向垂直于标定板平面,获取Δφi(x,y)和Zi(x,y)的操作步骤为:
S11:控制移动装置,使标定板完全覆盖相机视野范围,以此位置的标定板平面为参考平面,记录此位置为i=0,获取此位置的标定板的相位作为参考相位φr(x,y);
S12:控制移动装置向标定板移动一次,令i=i+1,从编码器中读取相对于初始位置的移动距离hi,获取此位置的标定板的相位为φi(x,y),计算Δφi(x,y)和Zi(x,y)为:
S13:判断i<n是否成立,若成立则转到步骤S20,若不成立则将Δφi(x,y)和Zi(x,y),i=1,2,…,n,代入式(2),计算出像素坐标(x,y)对应的参数a0(x,y)、a1(x,y)、a2(x,y)、a3(x,y),完成纵向标定;
S20:建立由三维空间中的Z轴坐标到三维空间中的X轴、Y轴坐标的数学模型如下:
其中,X(x,y)和Y(x,y)分别表示像素坐标(x,y)对应的三维空间中的X轴、Y轴坐标,b0(x,y)、b1(x,y)、b2(x,y)、b3(x,y)为需要计算的数学模型参数,其计算公式为:
其中,X0(x,y)和Y0(x,y)表示当Z(x,y)=0时像素坐标(x,y)对应的三维空间中的X轴、Y轴坐标,XO、YO、ZO表示二维相机的光心在三维空间中的X轴、Y轴、Z轴坐标;
获取X0(x,y)、Y0(x,y)以及XO、YO、ZO的步骤为:
S21:在步骤S11中当i=0的位置时,操作二维相机拍摄标定板,检测标定板上的蓝色同心圆阵列,通过二维相机的标定方法得到标定板平面与二维相机的单应性矩阵
以及外参矩阵
S22:对矩阵H求逆得到矩阵G为:
其中,gi为矩阵G的元素,i=1,2,…,9,并根据矩阵G计算X0(x,y)、Y0(x,y)为:
S23:矩阵E表示为:
其中,rij和ti为矩阵E的元素,i=1,2,3,j=1,2,3,并根据矩阵E计算XO、YO、ZO为:
将XO、YO、ZO和X0(x,y)、Y0(x,y)代入式(5),计算出像素坐标(x,y)对应的参数b0(x,y)、b1(x,y)、b2(x,y)、b3(x,y),完成横向标定;
S30:通过重复测量100次阶梯型标准量块评估三维测量系统的精度,其中阶梯型标准量块存在三阶相互平行的平面,相邻两阶平面的距离为d,使用由投影仪和相机组成的三维测量系统以垂直于三阶平面的角度测量阶梯型标准量块,记测量次数为k=0,其具体评估步骤如下:
S31:获取阶梯型标准量块的表面相位,令k=k+1;
S32:计算第k次测量得到的像素坐标(x,y)对应的相位差Δφk(x,y)为:
Δφk(x,y)=φk(x,y)-φr(x,y) (10)
其中,φk(x,y)表示第k次测量得到像素坐标(x,y)对应的表面相位;
S33:将Δφk(x,y)和步骤S13中得到的参数a0(x,y)、a1(x,y)、a2(x,y)和a3(x,y)代入式(1)中,计算出k次测量得到的像素坐标(x,y)对应的Z轴坐标Zk(x,y);
S34:将Zk(x,y)和步骤S23中得到的参数b0(x,y)、b1(x,y)、b2(x,y)和b3(x,y)代入式(4)中,计算出k次测量得到的像素坐标(x,y)对应的X轴坐标Xk(x,y)和Y轴坐标Yk(x,y);
S35:对二维相机中拍摄到阶梯型标准量块的所有像素坐标执行步骤S32、步骤S33和步骤S35,计算出像素坐标对应的三维空间中的X轴、Y轴、Z轴坐标,得到由阶梯型标准量块的表面三维坐标组成的集合Pk为
Pk={pj|j∈[1,mk]} (11)
其中,mk表示集合Pk包含的三维坐标总数,j表示三维坐标pj在集合Pk中的序号,pj表示为pj=[Xj Yj Zj]T,其中Xj、Yj、Zj表示三维坐标pj的X轴、Y轴、Z轴坐标;
S36:将集合Pk划分为三个单阶平面的三维坐标集合P′k、P″k和P″′k,其中,P′k为第一阶平面的三维坐标集合,P″k为第二阶平面的三维坐标集合,P″′k为第三阶平面的三维坐标集合,选择合适的阈值T1和T2,其划分的方法为:
S37:根据集合P′k、P″k和P″′k中的三维坐标,拟合三个单阶平行平面的方程为:
计算相邻两阶平面的距离与实际距离d的偏差Δdk为:
计算第二阶平面的三维坐标集合P″k中所有三维坐标到第二阶平面的距离的均方差σk为:
其中,m”表示集合P″k的三维坐标总数,Xl、Yl、Zl表示集合P″k中第l个三维坐标的X轴、Y轴、Z轴坐标,l=1,2,L,m”;
S38:判断k<100是否成立,成立则转到步骤S31,不成立则得到100组式(13)中的第二阶平面的方程Akx+Bky+Ckz+D″k=0,k=1,2,L,100,100组通过式(14)计算出的偏差Δdk,k=1,2,L,100,100组通过式(15)计算出均方差σk,k=1,2,L,100;
S39:计算出100组第二阶平面的方程参数的平均值Am、Bm、Cm、D”m为:
计算100组第二阶平面与参数Am、Bm、Cm、D″m表示的平面的距离dk为:
取100组距离dk,k=1,2,L,100,的最大值为dmax;取100组偏差Δdk,k=1,2,L,100,的最大值为Δdmax;取100组均方差σk,k=1,2,L,100,的最大值为σmax;得到三维测量系统的重复精度为±dmax,绝对精度为Δdmax,平面度为±σmax,完成三维测量系统的精度评估。
本发明中条纹投影三维测量系统的纵向标定使用精确移动装置带动相机和投影仪移动,精确地获取到多组对应的相位差和三维空间中Z轴坐标,通过直接拟合相位差和三维空间中Z轴坐标的多项式关系,实现对相机和投影仪镜头畸变的补偿,提高了纵向标定结果的精度;横向标定结合了传统相机标定方法,操作方便且具有较高可靠性;通过测量标准梯形量块,能够一次性评估出条纹投影三维测量系统的绝对精度、平面度、重复精度三种精度指标,具有较高的参考价值,从而提供一种更全面的精度评估方法,以应对不同应用场景的精度评估需求。
上述步骤S10的目的是获取到具体的相位差Δφ(x,y)以及与其对应的Z轴坐标Z(x,y)。参照附图3所示的标定装置,建立的三维空间坐标系的Z轴垂直于标定板平面并指向三维测量系统,因此三维测量系统向标定板移动的距离h相当于Z轴坐标的变换量ΔZ(x,y),若以初始位置的Z轴坐标Z0(x,y)=0,则移动后的Z轴坐标为Z(x,y)=ΔZ(x,y)+Z0(x,y),因此用移动距离h即可等效于标定板平面的Z轴坐标;获取相位差Δφ(x,y)的方式是通过每次移动后向标定板平面投射条纹图案,对采集的条纹图案使用相移法,可获取到标定板平面的表面相位φ(x,y),同样以初始位置的标定板相位φ0(x,y)作为参考相位φr(x,y),则可得到与Z轴坐标Z(x,y)所对应的相位差为Δφ(x,y)=φ(x,y)-φ0(x,y);通过伺服电机和编码器可以精确地获取到多组距离h和表面相位φ(x,y),从而使纵向标定的数据来源充分且可靠。
上述步骤S20的目的是通过蓝色同心圆阵列,在初始位置的标定板平面上建立三维空间坐标系的X轴和Y轴。参照附图3所示的标定装置以及步骤S10中的分析,当标定板位于初始位置时的Z轴坐标Z0(x,y)=0,且Z轴垂直于标定板平面,则此时的标定板平面即为三维空间坐标系的X-Y平面;附图4为同心圆阵列的检测结果示意图,以同心圆阵列右上角的圆心为坐标原点,阵列的行方向(短边)为X轴方向,阵列的列方向(长边)为Y轴,由于已知圆心距离为dc,则可以确定出每个圆心的在三维空间中的三维坐标Cu,v为:
Cu,v=[udc vdc 0] (18)
其中u和v分别表示圆心在阵列中的行序号和列序号;在获取到三维坐标C
u,v以及其对应的像素坐标的情况下,参照传统的张氏相机标定方法,借助OpenCV算法库中的solvePnP函数可以获取到单应性矩阵
以及外参矩阵
在步骤S30中,附图5是阶梯型标准量块的测量结果示意图,当测量角度垂直于阶梯型量块时,可以同时测量到三个平面,且三个平面上三维坐标的Z轴坐标有较明显的分割阈值,列出所有三维坐标的Z轴坐标后,取Z轴坐标的中间值作为阈值T1和T2即可分割三个平面出;本发明评估的三个精度指标中,绝对精度代表三维测量系统的整体精度,在使用三维测量系统对待测物体的位置、整体形状等进行测量时,绝对精度有重要的参考意义;平面度代表三维测量系统的局部精度,在使用三维测量系统对待测物体的光滑度、表面缺陷、局部特征等进行测量时,平面度有重要参考意义;重复精度代表三维测量系统的稳定性,在比如加工质量检测、印刷检测等测量位置固定的重复式工业检测场景中,重复精度有重要的参考意义。
参照附图2对本发明纵向标定中相位差到三维空间中的Z轴坐标的数学模型进行补充说明:
附图2是纵向标定的数学模型示意图,图中,点P为像素坐标(x,y)在平面Plane1位置的标定板上的点,点P'为像素坐标(x,y)在平面Plane0位置的标定板上的点,平面Plane0为初始位置的标定板平面,平面Plane1与平面Plane0的距离为Z(x,y),O
c和O
p分别为相机和投影仪的光心,点P”为点P的等相位点,θ
0为相机光心O
c与点P'的连线O
cP'与平面Plane0的夹角,θ
1为O
cP和投影仪光心O
p与点P'的连线O
pP'的夹角,θ
2为O
pP'和P'P”的夹角;分别用φ
P、φ
P'、φ
P”表示P、P'、P”的展开相位,其中φ
P=φ
P”;由于P'P”平行于投影仪的成像平面,在不考虑投影仪的镜头畸变等非线性因素的情况下,相位在
方向上为线性变化,以φ
P'为参考相位,则待测点的相位差Δφ(x,y)为:
Δφ(x,y)=φP”-φP' (19)
其中,角度θ
0、θ
1、θ
2固定不变,O
pP'的长度不变,
方向上相位差与实际长度的比值λ也是固定值,则有:
P'P”=λΔφ(x,y) (20)
Z(x,y)=PP'gcosθ0 (21)
根据三角形正弦定理可得:
联立式(20)~式(24),消去中间变量β、PP”、PP',保留常量θ0、θ1、θ2、λ、OpP可得线性假设下Δφ(x,y)与Z(x,y)的数学关系模型为:
考虑投影仪的镜头畸变和像素偏差等非线性因素,在式(24)的基础上扩展到三阶多项式以实现非线性补偿,得到式(1)所示的数学模型。
实施例:
采用Dalsa公司生产的型号为GM10-M1280的工业相机与腾聚智能生产的型号为TJ23U3投影仪搭建三维测量系统,相机的分辨率为1280×1024,投影仪分辨率为1280×720。
采用碳纤维材料制作的高精度标定板,标定板尺寸为240×300mm,印有6×8的同心圆阵列,每个同心圆的大圆直径为7mm,小圆直径为5mm,相邻圆心距离为10mm,标定平台的行程为200mm,调整相机的最佳对焦距离为600mm,最大视野为220×280mm,完成三维测量系统的纵向标定和横向标定。
采用相邻两阶平面的距离为d=5mm的阶梯型标准量块,通过精度评估方法对上述三维测量系统的精度进行评估,得到绝对精度为0.05mm,平面度为±0.03mm,重复精度为±0.006mm。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,上述实施例仅仅是为清楚地说明所作的举例,并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引申出的显而易见的变化或变动仍处于本发明创造的保护范围之中。