一种刚性运动物体的动态三维测量方法与流程

文档序号:17934991发布日期:2019-06-15 01:18阅读:292来源:国知局
一种刚性运动物体的动态三维测量方法与流程

本发明属于光栅投影三维测量技术领域,具体涉及一种刚性运动物体的动态三维测量方法。



背景技术:

自动化生产线上的被测产品,其形状不变、位置移动。由于工业产品往往形状较为复杂,测量精度要求较高,因此难以实现单幅条纹三维测量。而多幅条纹投影的静态物体三维测量技术成熟、测量精度高、可靠性高,因此将静态物体的三维测量技术推广到刚性运动物体的三维测量中,可以极大的提高生产线上产品的检测效率。

zhang等在基于三步相移的基础上,提出了标定算法、相位补偿算法、空间相位展开算法和gpu并行处理技术,构建了一套高速、高精度、实时的动态三维测量系统,不但能进行静态物体的三维测量,而且能实现40帧/秒的动态三维测量。但上述方法测量速度不高,仅能实现慢动态物体的三维测量。liu等将格雷码解相位技术推广至动态物体的三维测量,实现了1000帧/秒的高速动态三维测量。但在物体质心提取上存在偏差,导致同步误差补偿存在偏差,影响了动态物体的三维测量精度。



技术实现要素:

为克服上述现有技术的不足,本发明的目的是提供一种刚性运动物体的动态三维测量方法,以实现自动化传输线上运动产品的有效测量,避免了传输线停止运行、测量、传输线运行的复杂过程,提高了测量效率。

为实现上述目的,本发明采用的技术方案是:

一种刚性运动物体的动态三维测量方法,包括以下步骤:

步骤1,通过相机视野中物理尺寸和像素尺寸的比值,以及已知的传输线物理速度来获得运动物体的像素速度,估计多幅采集条纹之间的像素偏移,具体做法是:

在传输线上放置一个标尺,记录相机视野中沿x坐标的物理尺寸,相机视野中沿x坐标的像素大小是已知的,可获得像素尺寸与物理尺寸之间的关系,kx=512(pixels)/118(mm)≈4.34(pixels/mm);pixels表示像素;

如果传输线的物理速度是已知的,vm=40(mm/s),则可获得像素速度为vp=k×vm≈174(pixels/s),三维测量系统同步投影和采集,相邻帧之间的周期t相等且已知,t=0.01s,则相邻帧之间的像素偏移p也相等,即p=vp×0.01≈1.74(pixels),当使用四步相移算法和三频外差展开算法来计算相位信息时,第i帧图像和第一帧图像之间的像素偏移表示为:

pi-1=1.74(i-1),i∈[2,12](1)

四步相移算法和三频外差展开算法的投影条纹为三频、四相移共计12幅条纹,当投影和采集的频率为100hz(即t=0.01s)、vm=40(mm/s)时,第2~12幅条纹相较于第1幅条纹的像素偏差见表1;

步骤2,估计相位偏移,新的投影条纹可以描述为:

gi,j(x,y)=a(x,y)+b(x,y)cos[2πfjx+2π(i-1)/n+δφi,j](2)

式中,a(x,y)为背景光强值,b(x,y)为调制强度,n为总的相移次数,由于选择四步相移算法,因此n=4,i表示第i次相移,i∈[1,4],fj为投影条纹的频率,由于选择三频外差相位展开算法,j∈[1,3];δφi,j表示相位偏移,它可以由像素偏差pi-1计算;

公式(2)的关键是如何根据像素偏差计算得到相位偏差δφi,j,显然,δφ1,1=0,即第1帧条纹图像不需要偏移,第2~12帧条纹图像需要偏移;

由于投影三套不同频率的条纹,因此相位偏差计算公式是不一致的,需要计算相机采集的三套不同频率的像素周期为nf1,nf2和nf3,以nf1计算过程为例,频率为f1的参考条纹的包裹相位由四步相移算法计算获得,沿着x坐标提取第256行的包裹相位,得到具有包裹相位跳变点,两个相邻wpjp之间的像素数即为nf1;

nf1计算的伪代码程序,其中ψf1为频率f1的参考条纹的包裹相位,ψf1(256,:)为参考条纹的包裹相位的第256行,wpjp_cost(j)为存储wpjp的数组,当ψ(256,j)是wpjp时,wpjp_cost(j)=1;当ψ(256,j)不是wpjp时,wpjp_cost(j)=0,函数zeros(m,n)可以生成所有元素都为0的m×n矩阵,wpjp_no用于存储wpjp的相位值,wpjp_index(j)用于存储wpjp在图像中索引号,即行号和列号,函数findindex能寻找某数值的索引号;

分别计算nf1,nf2和nf3,并代入式(3),得到三套、12幅条纹的相位偏差,根据公式(3)计算得到的11个相位偏差代入公式(2),第一幅不需要偏移,生成12幅新的投影条纹,除了第一幅投影条纹,其他11幅投影条纹均作了相位偏移,

式中,δφi,1为频率f1的第i幅条纹的相位偏差,pi-1为像素偏差,nf1,nf2和nf3为三套不同频率的像素周期;

最后,相机采集12幅物体调制后的条纹,根据公式(1)计算得到的像素偏移,对采集的条纹进行偏移,由于假设运动方向平行于投影条纹的x坐标,所以捕获到的条纹也沿x坐标偏移,在y坐标方向上不需要偏移,物体沿着投影条纹的x和y坐标运动将是未来的研究内容,

相机采集的12幅条纹分别表示为g1,1~g4,1,g1,2~g4,2,g1,3~g4,3,这与公式(2)的定义相一致,以g4,3的计算过程为例,伪代码程序见表3,其中g’4,3表示偏移后的采集条纹,tras表示变换矩阵,表达式为

式中,pxi-1和pxi-1为x和y方向的像素偏差;假设运动方向平行于投影条纹的x坐标,所以

12幅偏移后的条纹表示为g’1,1~g’4,1,g’1,2~g’4,2,g’1,3~g’4,3,根据四步相移算法和三频外差相位展开算法,计算实际相位,然后代入到预标定的相位-高度关系式中,重建物体的三维形貌。

步骤1所述的物理尺寸测量,采用多种不同精度的丁字尺对其测量,且保证丁字尺与条纹图像的左或右侧边界垂直,并计算多次测量的平均值,作为最终的物理尺寸。

本发明的有益效果是:

本发明是基于相移法和三频外差相位展开的刚性运动物体的三维测量技术。本发明基于相移法和三频外差相位展开技术,对投影条纹和采集条纹进行处理,其基本原理是:首先,通过相机视野中物理尺寸和像素尺寸的比值,以及已知的传输线物理速度来获得运动物体的像素速度,从而可以估计多幅采集条纹之间的像素偏移。其次,利用提出的方法计算多幅采集条纹之间的相位偏移,从而生成一套新的、用于运动物体的三维测量的投影条纹。最后,根据像素偏移量对采集到的条纹进行偏移,得到一套修正的条纹图像,并计算相位信息,从而获得接近于静态三维测量精度的结果。

采用本发明的方法时无需停止传输线的运动,可以实现产品运动中的三维测量,提高了测量效率。

附图说明

图1(a)是本发明三维测量系统的位置调整的投影条纹图。

图1(b)是本发明三维测量系统的位置调整的运动方向平行于投影条纹的x坐标照片。

图1(c)是本发明三维测量系统的位置调整的运动方向不平行于投影条纹的x坐标照片。

图2是本发明相机视场中物理尺寸与像素尺寸的比值计算图。

图3(a)是本发明频率f1的参考条纹的包裹相位。

图3(b)是本发明图3(a)某一行的横截面。

图4(a)是本发明12幅采集条纹偏移后的结果图。

图4(b)是未采用本发明方法测量的输送线上运动物体的三维结果图。

图4(c)是未采用本发明方法测量的输送线上运动物体的二维结果图。

图4(d)是图4(c)中虚线的横截面图。

图4(e)是采用本发明方法测量的输送线上运动物体的三维结果图。

图4(f)是采用本发明方法测量的输送线上运动物体的二维结果图。

图4(g)是图4(f)中虚线的横截面图。

具体实施方式

下面结合附图和实施例对本发明作进一步详细说明。

一种刚性运动物体的动态三维测量方法,包括以下步骤:

首先,通过相机视野中物理尺寸和像素尺寸的比值来获得运动物体的像素速度,估计多幅采集条纹之间的像素偏移,具体做法是:

在传输线上放置一个标尺,记录相机视野中沿x坐标的物理尺寸,如附图2所示。为了保证上述物理尺寸测量的准确性,需要采用多种不同精度的丁字尺对其测量,且保证丁字尺与条纹图像的左或右侧边界垂直,并计算多次测量的平均值,作为最终的物理尺寸。由于相机视野中沿x坐标的像素大小是已知的,因此可以获得像素尺寸与物理尺寸之间的关系。譬如,本测量系统中,kx=512(pixels)/118(mm)≈4.34(pixels/mm);

如果传输线的物理速度是已知的,譬如vm=40(mm/s),则可以获得像素速度为vp=k×vm≈174(pixels/s)。三维测量系统同步投影和采集,相邻帧之间的周期t相等且已知,譬如t=0.01s,则相邻帧之间的像素偏移p也相等,即p=vp×0.01≈1.74(pixels)。当使用四步相移算法和三频外差展开算法来计算相位信息时,第i帧图像和第一帧图像之间的像素偏移表示为:

pi-1=1.74(i-1),i∈[2,12](1)

四步相移算法和三频外差展开算法的投影条纹为三频、四相移共计12幅条纹。当投影和采集的频率为100hz(即t=0.01s)、vm=40(mm/s)时,第2~12幅条纹相较于第1幅条纹的像素偏差见附表1;

其次,新的投影条纹可以描述为:

gi,j(x,y)=a(x,y)+b(x,y)cos[2πfjx+2π(i-1)/n+δφi,j](2)

式中,a(x,y)为背景光强值,b(x,y)为调制强度,n为总的相移次数,由于选择四步相移算法,因此n=4。i表示第i次相移,i∈[1,4],fj为投影条纹的频率,由于选择三频外差相位展开算法,j∈[1,3],δφi,j表示相位偏差,它可以由像素偏差pi-1计算;

公式(2)的关键是如何根据像素偏差计算得到相位偏差δφi,j,显然,δφ1,1=0,即第1帧条纹图像(即频率为f1的四幅相移条纹中的第一幅)不需要偏移,而第2~12帧条纹图像需要偏移;

由于投影三套不同频率的条纹,因此相位偏差计算公式是不一致的。首先,需要计算相机采集的三套不同频率的像素周期为nf1,nf2和nf3。以nf1计算过程为例,频率为f1的参考条纹的包裹相位由四步相移算法计算获得,如附图3(a)所示,沿着x坐标提取附图3(a)中的第256行的包裹相位,得到附图3(b),附图3(b)中具有包裹相位跳变点(wrappedphasejumppoint,即wpjp),在附图3(b)中,两个相邻wpjp之间的像素数即为nf1。

nf1计算的伪代码程序如附表2所示,其中ψf1为频率f1的参考条纹的包裹相位,ψf1(256,:)为参考条纹的包裹相位的第256行,wpjp_cost(j)为存储wpjp的数组,当ψ(256,j)是wpjp时,wpjp_cost(j)=1;当ψ(256,j)不是wpjp时,wpjp_cost(j)=0,函数zeros(m,n)可以生成所有元素都为0的m×n矩阵,wpjp_no用于存储wpjp的相位值,wpjp_index(j)用于存储wpjp在图像中索引号(即行号和列号),函数findindex能寻找某数值的索引号;

按附表2分别计算nf1,nf2和nf3,并代入式(3),得到三套(12幅)条纹的相位偏差。公式(3)计算得到的11个相位偏差(第一幅不需要偏移)代入公式(2),从而生成12幅新的投影条纹。除了第一幅投影条纹,其他11幅投影条纹均作了相位偏移,

式中,δφi,1为频率f1的第i幅条纹的相位偏差,pi-1为像素偏差,nf1,nf2和nf3为三套不同频率的像素周期;

最后,对采集条纹进行像素偏移,投影新的12幅条纹,然后相机采集12幅物体调制后的条纹,根据公式(1)计算得到的像素偏移,对采集的参考条纹和变形条纹进行偏移,由于假设运动方向平行于投影条纹的x坐标,所以捕获到的条纹也沿x坐标偏移,在y坐标方向上不需要偏移。物体沿着投影条纹的x和y坐标运动将是未来的研究内容;

相机采集的12幅条纹分别表示为g1,1~g4,1,g1,2~g4,2,g1,3~g4,3,这与公式(2)的定义相一致,以g4,3的计算过程为例,伪代码程序见附表3,其中g’4,3表示偏移后的采集条纹,tras表示变换矩阵,表达式为

式中,pxi-1和pxi-1为x和y方向的像素偏差;假设运动方向平行于投影条纹的x坐标,所以

12幅偏移后的条纹表示为g’1,1~g’4,1,g’1,2~g’4,2,g’1,3~g’4,3。根据四步相移算法和三频外差相位展开算法,计算实际相位,然后代入到预标定的相位-高度关系式中,重建物体的三维形貌。

本发明的方法,基于以下理论:

1)测量系统的位置调整

首先,通过调整三维测量系统,使运动方向平行于投影条纹的x坐标。具体方法为:投影仪投影如附图1(a)所示的条纹,该投影条纹的中心有一条与x坐标平行的白线。在传送台上粘贴一个标识点,往返移动工作台和不断调整三维测量系统,使标识点始终在白线内,即表示工作台运动方向平行于投影条纹的x坐标。如附图1(b)所示的三个运动位置。附图1(c)表示工作台运动方向与投影条纹的x坐标不平行,需要调整。

2)像素偏差计算

在传输线上放置一个标尺,记录相机视野中沿x坐标的物理尺寸,如附图2所示,为了保证上述物理尺寸测量的准确性,需要采用多种不同精度的丁字尺对其测量,且保证丁字尺与条纹图像的左或右侧边界垂直,并计算多次测量的平均值,作为最终的物理尺寸。由于相机视野中沿x坐标的像素大小是已知的,因此可以获得像素尺寸与物理尺寸之间的关系。譬如,本测量系统中,kx=512(pixels)/118(mm)≈4.34(pixels/mm);

如果传输线的物理速度是已知的,譬如vm=40(mm/s),则可以获得像素速度为vp=k×vm≈174(pixels/s)。三维测量系统同步投影和采集,相邻帧之间的周期t相等且已知,譬如t=0.01s,则相邻帧之间的像素偏移p也相等,即p=vp×0.01≈1.74(pixels)。当使用四步相移算法和三频外差展开算法来计算相位信息时,第i帧图像和第一帧图像之间的像素偏移表示为:

pi-1=1.74(i-1),i∈[2,12](1)

四步相移算法和三频外差展开算法的投影条纹为三频、四相移共计12幅条纹。当投影和采集的频率为100hz(即t=0.01s)、vm=40(mm/s)时,第2~12幅条纹相较于第1幅条纹的像素偏差见表1:

3)生成新的投影条纹

新的投影条纹可以描述为

gi,j(x,y)=a(x,y)+b(x,y)cos[2πfjx+2π(i-1)/n+δφi,j](2)

式中,a(x,y)为背景光强值,b(x,y)为调制强度,n为总的相移次数,由于选择四步相移算法,因此n=4,i表示第i次相移,i∈[1,4];fj为投影条纹的频率,由于选择三频外差相位展开算法,j∈[1,3],δφi,j表示相位偏差,它可以由像素偏差pi-1计算;

公式(2)的关键是如何根据像素偏差计算得到相位偏差δφi,j,显然,δφ1,1=0,即第1帧条纹图像(即频率为f1的四幅相移条纹中的第一幅)不需要偏移,而第2~12帧条纹图像需要偏移;

由于投影三套不同频率的条纹,因此相位偏差计算公式是不一致的。首先,需要计算相机采集的三套不同频率的像素周期为nf1,nf2和nf3。以nf1计算过程为例,频率为f1的参考条纹的包裹相位由四步相移算法计算获得,如附图3(a)所示,沿着x坐标提取附图3(a)中的第256行的包裹相位,得到附图3(b),附图3(b)中具有包裹相位跳变点(wrappedphasejumppoint,即wpjp)。在附图3(b)中,两个相邻wpjp之间的像素数即为nf1;

nf1计算的伪代码程序如附表2所示,其中ψf1为频率f1的参考条纹的包裹相位,ψf1(256,:)为参考条纹的包裹相位的第256行,wpjp_cost(j)为存储wpjp的数组,当ψ(256,j)是wpjp时,wpjp_cost(j)=1;当ψ(256,j)不是wpjp时,wpjp_cost(j)=0,函数zeros(m,n)可以生成所有元素都为0的m×n矩阵,wpjp_no用于存储wpjp的相位值,wpjp_index(j)用于存储wpjp在图像中索引号(即行号和列号),函数findindex能寻找某数值的索引号;

按表2分别计算nf1,nf2和nf3,并代入式(3),得到三套(12幅)条纹的相位偏差。公式(3)计算得到的11个相位偏差(第一幅不需要偏移)代入公式(2),从而生成12幅新的投影条纹。除了第一幅条纹,其他条纹均作了相位偏移。

式中,δφi,1为频率f1的第i幅条纹的相位偏差,pi-1为像素偏差,nf1,nf2和nf3为三套不同频率的像素周期;

4)相机采集条纹的偏移

投影新的12幅条纹,然后相机采集12幅条纹图像。根据公式(1)计算得到的像素偏移,对采集的参考条纹和变形条纹进行偏移。由于假设运动方向平行于投影条纹的x坐标,所以捕获到的条纹也沿x坐标偏移,在y坐标方向上不需要偏移。物体沿着投影条纹的x和y坐标运动将是未来的研究内容。

相机采集的12幅条纹分别表示为g1,1~g4,1,g1,2~g4,2,g1,3~g4,3,这与公式(2)的定义相一致。以g4,3的计算过程为例,伪代码程序见表3,其中g’4,3表示偏移后的采集条纹,tras表示变换矩阵,表达式为

式中,pxi-1和pxi-1为x和y方向的像素偏差;假设运动方向平行于投影条纹的x坐标,所以

12幅条纹偏移后的条纹表示为g’1,1~g’4,1,g’1,2~g’4,2,g’1,3~g’4,3,根据四步相移算法和三频外差相位展开算法,计算实际相位。然后代入到预标定的相位-高度关系式中,重建物体的三维形貌。

5)实验

研究人员投影的三套条纹的频率分别为f1=73、f2=64和f3=56,计算得到nf1=37.4、nf2=43.4和nf3=48.8。dlplightcraft4500投影图像尺寸必须为912×1140pixels,则生成新的12幅投影条纹表示为

附图4(a)~(g)为传输线上运动物体的三维测量结果对比。附图4(a)为相机采集的、经过偏移后的12幅变形条纹。第1幅图没有偏移,第2~12幅图的偏移量见附表1。譬如,四舍五入后,第12幅变形条纹的偏移量为19pixels。为了实现高速投影,采用投影条纹二值化技术和投影仪离焦技术。

附图4(b)显示了未采用所提方法时、运动物体三维测量的三维视图,附图4(c)显示了未采用所提方法时、运动物体三维测量的二维视图。附图4(d)显示了附图4(c)中的第226行(即红色虚线的横截面)。附图4(e)显示了采用所提方法对运动物体三维测量的三维视图,附图4(f)显示了采用所提方法对运动物体三维测量的二维视图。附图4(g)显示了附图4(f)中的第226行(即红色虚线的横截面)。

实验结果表明,所提方法能准确测量传输线上的运动物体,其优点如下:

(1)提高了传输线上产品的检测效率。对于传统的静态三维测量方法,测量时需要停止输送线的运动,三维测量完成后再继续传输线的运动。或者将被测物体搬运至三维检测台,测量完成后再搬运回传输线。所提方法避免了这一问题,极大地提高了输送线的检测效率。

(2)硬件成本低。所提方法不需要增加任何硬件,因此具有较低的硬件成本。

(3)高速投影。该方法采用二值条纹进行投影,具有极高的刷新频率,大大提高了测量效率。

(4)所提算法简单,易于扩展。可推广到二维运动物体或旋转物体的三维测量中,这将是未来的主要研究内容。

表1是t=0.01s、vm=40(mm/s)时的像素偏差。

表2是nf1计算的伪代码程序。

表3是采集条纹偏移量计算的为代码程序。

表1

表2

表3

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1