一种基于循环互补格雷码的三维面形测量方法与流程

文档序号:17237913发布日期:2019-03-30 08:27阅读:738来源:国知局
一种基于循环互补格雷码的三维面形测量方法与流程

本发明涉及一种机器视觉测量方法,特别涉及一种基于循环互补格雷码的三维面形测量方法。



背景技术:

随着硬件技术和计算机科学的快速发展,人们越来越需要利用高速动态过程中获取的三维面形来分析物体变化的细节。高速高精度的测量越来越多的被应用到实验力学,材料力学等学科当中。如何获取高速,高精度的测量结果成为了近些年的研究热点。

阵列投影技术被用来代替商用投影仪来实现高速投影以及三维面形重建,重建速度可达到330hz;另外利用旋转光栅高速投影非周期正弦条纹的思路也被用来实现高速面形测量,可以获得1300hz的重建速率。但这两种方法都需要自行设计和制造投影设备,比起直接利用商用投影仪,会花费更高的成本。

将相移技术和互补格雷码技术相结合方法用于三维面形的重建和测量,设计简单,不需要特殊的投影设备,成本较低,应用越来越广泛,但是需要在传统格雷码编码图的基础上增加投影一幅格雷码编码图,在高速面形重建过程中,每增加一帧图像,都要多采集一幅经过调制后的格雷码编码图,增加了编码图的采集量,影响了数据处理的效率。



技术实现要素:

本发明的目的在于克服现有技术中的不足,提供一种基于循环互补格雷码的三维面形测量方法。

为了实现上述发明目的,本发明提供了以下技术方案:

一种基于循环互补格雷码的三维面形测量方法,步骤包括:

s1:向被测物体表面循环投影二值序列图案,二值序列图案由一系列二值化正弦条纹图和一系列互补格雷码图组成,一系列正弦条纹图由投影仪镜头轻微离焦,投影产生的周期数为n的m幅正弦条纹图组成;一系列互补格雷码图由传统格雷码中的第二幅图到最后一幅图,并加上一幅格雷码码字宽度为正弦条纹图正弦条纹宽度一半的格雷码图组成,一系列互补格雷码图为log2n幅互补格雷码图,一系列互补格雷码图中,周期数为二的互补格雷码图第二周期按照二值序列图案循环投影的时间顺序黑白翻转,奇数序列周期数为二的互补格雷码图的第二周期码字与第一周期图案相同,偶数序列周期数为二的互补格雷码图的第二周期码字黑白翻转,与第一周期码字相反;

s2:采集经过被测物体调制的序列图集;

s3:利用二值化正弦条纹图计算序列图集中每一组序列图的截断相位基础值;

s4:对序列图集中的互补格雷码进行解码,利用解码码字对截断相位进行展开,解码码字包括第一解码值、第二解码值和第三解码值,

第三解码值是将序列图集中当前序列周期数为二的互补格雷码与当前序列上一序列周期数为二的互补格雷码二值化处理后,做异或运算,解码计算得到,

第二解码值是将获得的序列图集中每个序列的互补格雷码图进行二值化处理后,将偶数序列周期为二的格雷码图的第二周期码字黑白翻转,采用互补格雷码解码方法得到,

第一解码值是将获得的序列图集中每个序列的互补格雷码图进行二值化处理后,将偶数序列周期为二的格雷码图的第二周期码字黑白翻转,采用传统格雷码解码方法得到;

s5:通过相位和高度的映射关系,以及摄像机标定,获得物体三维面形信息。

对序列图集中的互补格雷码进行解码,利用解码码字对截断相位进行展开,是指:在解码的过程中,针对每一组序列互补格雷码图,

当截断相位基础值小于等于时,由截断相位基础值、第二解码值和第三解码值进行截断相位展开;

当截断相位基础值小于并且大于时,由截断相位基础值、第一解码值和第三解码值进行截断相位展开;

当截断相位基础值大于等于时,由截断相位基础值、第二解码值、第三解码值进行截断相位展开。

截断相位展开的计算公式为:

其中,φ为截断相位基础值,k1、k2、k3分别为第一解码值、第二解码值和第三解码值,φ(x,y,n)为截断相位展开后的值,n为序列图集中的序列图个数,n为一系列正弦条纹图的周期数。

第一解码值和第二解码值求解步骤为:

s11:设定阈值,将获得的序列图集中每个序列log2n幅循环互补格雷码图进行二值化处理,n为一系列正弦条纹图的周期数;

s12:判断当前序列奇偶,如果是偶数序列,修正该序列周期为二的循环互补格雷码图,使得第二周期码字翻转回与第一周期相同,如果是奇数序列,则保持不变;

s13:利用当前序列前log2n幅格雷码,采用互补格雷码解码方法得到第二解码值k2;

s14:利用当前序列log2n-1幅格雷码,采用传统格雷码解码方法得到第一解码值k1。

第三解码值计算公式为:

式中,n为序列图集中的序列图个数,gray1(n-1)为前一序列周期数为二的互补格雷码,gray1(n)为当前序列周期数为二的互补格雷码。

判断当前序列奇偶,如果是偶数序列,修正该序列周期数为二的互补格雷码图,使得第二周期码字翻转回与第一周期相同,如果是奇数序列,则保持不变,修正公式为:

式中,n为序列图集中的序列图个数,gray1(n)是第n个序列中周期数为二的互补格雷码图,k3(n)是第n个序列的第三解码值。

步骤s1中一系列互补格雷码图的投影顺序可以改变,经过被测物体调制的序列图集中的互补格雷码图的顺序与一系列互补格雷码图的投影顺序依次对应。

与现有技术相比,本发明的有益效果:

1、通过在时间域和空间域上重新对传统格雷码进行编码和解码,解决了相位级次跳变处误码的问题,提高了解码的鲁棒性,与现有技术相比,不需要额外增加投影条纹幅数,提高了图片处理的效率,保证了高速三维测量的实时性。

2、在投影图案数目相同的情况下,可以编码的条纹周期是现有技术的两倍,测量精度提高至两倍,提高了测量的精度。

附图说明:

图1为本发明一种基于循环互补格雷码的三维面形测量方法的流程图;

图2为本发明一种基于循环互补格雷码的三维面形测量方法的测试装置图;

图3为本发明实施例1中编码规则示意图;

图4为本发明实施例1中的投影光路示意图;

图5为本发明实施例1中序列一和序列二投影到实物上的效果图;

图6为本发明实施例1中解码过程示意图;

图7为本发明实施例1中实物图和高度恢复图;

图8为本发明实施例2中序列一和序列二投影到实物上的效果图;

图9为本发明实施例2中实物图和高度恢复图。

具体实施方式

下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。

实施例1

本发明的方法以结构光技术中的三角测距原理为基础,先对投影图案进行编码,然后将这些图案投射到被测物体上并利用相机进行拍摄。由于图案经过了编码,所以找到图像上的点和编码图案上的对应点,经过解码,就可以得到被测物体的三维信息,整个过程中的重点在于图像的编码和解码。测试装置主要有投影机、相机和电脑,电脑主要用于数据处理,测试环境如图2所示。

第一步:进行投影图案编码。

为更好的说明本发明方法,本实施例以m=3,n=16为例对方法进行说明。为实现高速投影,本发明在每个序列中,通过抖动二值化技术对周期数为16的正弦条纹进行二值化处理,然后将二值化相移条纹i1,i2,i3投影到被测物体表面,如图3所示,二值化相移条纹i1,i2,i3之间有2pi/m的相位偏移,此处,因为m=3,计算得出,二值化条纹i1,i2,i3之间的偏移量为2pi/3。

为了标记16个条纹周期,传统格雷码方法中需要投影4(log2n)幅格雷码,区别于传统格雷码方法,在序列一中,本发明方法投影的是传统格雷码方法中第2到第5幅格雷码,如图3方框中所示。随着序列数的增加,在投影的第一幅格雷码的右半部分被设计成循环黑白翻转的模式,也就是说,在奇数投影序列中,投影的第一幅格雷码第二周期和第一周期相同,而在偶数投影序列中,投影的第一幅格雷码第二周期和第一周期黑白翻转,从而构建时间序列上的不同。将序列一和序列二投影到实物上的效果,如图5所示,可以看到,序列一gray1的右边投影效果和序列二gray1的右边投影效果不一样,投影码字黑白翻转。

第二步,投影。

将3幅二值化条纹i1,i2,i3和4幅格雷码图作为一个序列图,依次投影到运动中的物体上,循环投影n个序列图,高速相机同步采集物体表面变形的条纹和格雷码。

对于运动中的物体,采用本发明方法进行三维测量,对物体的运动速度有限定如下所述:

如图4左图所示,t为码字k2的一个周期,θ为投影光线入射角,s为在x轴上一个码字图案所引起的位移,所以在x轴上,物体最大运动速度vxmax计算公式如式(1)所示:

其中,δt为前后两个序列周期数为二的两幅格雷码投影间隔时间,f为投影仪和高速相机的同步工作频率,m为相移条纹数目,n为格雷码周期个数。

如图4右图所示,在z轴上,物体运动引起一个码字变化的距离为h,在z轴上,物体最大运动速度vxmax计算公式如式(2)所示:

所以,物体在这两个方向上的运动速度只要不超过最大速度,本方法就不会失效。

第三步,对采集的图像进行解码。

首先,利用式(3)求取截断相位。

其次,为了确定截断相位级次,需要对投影格雷码进行解码,如图6所示,解码过程如下:

1)选择合适的阈值将拍摄到的格雷码进行二值化处理。

2)利用当前序列和上一序列中的第一幅格雷码进行异或运算得到解码值k3,计算过程如式(4)所示。

式中,n表示序列数,本实例中,n为2,gray1(n-1)和gray1(n)分别表示序列n-1和序列n中周期数最小,也就是2的互补格雷码。

通过异或计算,就能得到传统格雷码的第一幅图,就可采用传统格雷码的方法求得第三解码值k3。

3)利用式(5)纠正偶数序列中的第一幅格雷码,将第二周期黑白翻转部分翻转回与第一周期相同,以便后续正确求取解码值k1,k2,奇数序列右半部分未翻转不需纠正。

4)利用前三幅二进制格雷码利用式(6)转化为十进制码。

式中,grayi(n)表示序列n中第i幅格雷码,i越小,格雷码周期数越小,v1(n)是序列n中传统格雷码的十进制码。

5)查找格雷码表,将十进制码v1(n)转化为对应解码值i(v1(n)),此值就是解码值k1。

6)利用全部4幅二进制格雷码利用式(7)转化为十进制码。

式中,v2(n)是序列n中互补格雷码的十进制码。

7)查找格雷码表,将十进制码v2(n)转化为对应解码值i(v2(n)),再利用式(8)求取解码值k2。

k2(n)=int((i(v2(n))+1)/2)(8)

在得到k1、k2、k3之后,利用式(9)对截断相位进行解码,获取连续相位。

其中,φ为截断相位基础值,k1、k2、k3分别为第一解码值、第二解码值和第三解码值,φ(x,y,n)为截断相位展开后的值,n为所述序列图集中的序列数,n为所述一系列正弦条纹图的周期数,在此实例中,n为16。

最后,在获取展开相位后,再通过相位高度映射,以及摄像机标定就可以获得物体三维面形信息,实物和采用本发明方法解码得到的高度恢复图如图7所示,图7左边为实物图,右边为高度恢复图。

实施例2

实施例2与实施例1的区别在于,在序列一中,投影的第2到第5幅格雷码顺序进行了调整,投影顺序变为先投影第5幅,再依次投影第4幅,第3幅和第2幅,序列二也相应的做了顺序调整。投影的最后一幅格雷码的右半部分被设计成循环黑白翻转的模式,也就是说,在序列一中,投影的最后一幅格雷码第二周期和第一周期相同,而在序列二中,投影的最后一幅格雷码第二周期和第一周期黑白翻转,从而构建时间序列上的不同。将序列一和序列二投影到实物上的效果,如图8所示,可以看到,序列一gray1的右边投影效果和序列二gray1的右边投影效果不一样,投影码字黑白翻转。

利用相机采集物体表面变形条纹和格雷码,相应的,每个序列格雷码图的顺序和编码时的顺序一致,解码步骤和实施例1的相同,此处不再赘述。解码后实务图和高度恢复图如图9所示,图9左边为实物图,右边为高度恢复图。

以上仅为说明本发明的实施方式,并不用于限制本发明,对本领域的技术人员来说,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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