一种交叉光轴光栅投影测量仿真系统及其实现方法与流程

文档序号:11577486阅读:514来源:国知局
一种交叉光轴光栅投影测量仿真系统及其实现方法与流程

本发明涉及一种交叉光轴光栅投影测量仿真系统及其实现方法,更确切的说,它是一种利用计算机仿真现实中光栅调制过程的一种结构光投影仿真系统,结构光测量领域。



背景技术:

随着科学技术的快速发展、社会生产率的持续提升,各个领域对测量技术的需求也在不断提高,特别是对其测量方式、测量效率和测量精度的要求变得更加苛刻。随着计算技术的。光学测量技术和数字图像处理技术快速发展,三维形貌测量方法层出不穷。结构光测量技术凭借其非接触和高精度的优点,在众多的测量方法中脱颖而出。

传统的接触式三维测量技术,需要通过机械探针接触被测物体,通过出点获得物体表面精确的坐标信息。接触式三维测量技术有很多优点如测量精度较高,对被测物体的色泽没有要求,但是也存在很大的缺点如测量过程耗时较长,机械探针在跟物体接触的过程中会造成物体表面接触变形。更重要的是有些物体表面形状太复杂导致机械探针无法抵达,对于这类物体接触式三维测量技术对其就无法进行测量。

光学测量技术是一种非接触式三维测量技术,可以弥补以上接触式三维测量技术存在的缺点。光栅投影测量技术就是一种很有效的光学三维测量技术,它是通过将光栅投影到物体表面,经过物体表面的调制光栅造成形变,接着利用图像采集器捕获变形后的光栅条纹,最后经过解调即可得出物体的表面信息。由于该技术信息量大,高效率和高精确度而备受关注,具有广阔的市场前景。

为了运用条纹光栅投影系统(fringeprojectionsystem,以下简称fps)获取三维物体表面形貌信息,在实验之前最好采用仿真验证一下设计方案。仿真可以免除了搭建fps平台的麻烦,而且仿真的速度更快,更灵活,而且可以方便他人使用。fps理论验证需要建立一个高精度光栅投影系统,图像采集器,实验设备校准装置等设。因此有必要开发一个fps仿真系统作为替换。fps仿真系统相比搭建fps平台,不仅具有高速、经济的有点,而且具有更高的灵活性和精度,除此之外它还能为系统参数的设置和误差的分析提供很大的便利。

许多研究人员已经提出了基于条纹投影技术的光学仿真系统。在大多文献中所使用的仿真算法都主要是运用光线追迹技术。目前光线追迹法被广泛应用与光学仿真领域,但是光线追迹法还存在许多问题:首先,由于布尔联合的问题,使三维信息减小一维,从而产生两个问题,对三维物体的操作应规范化,机器运算的有限精度带来了线面交点计算的误差。引入简单的接近正则化规则可以忽略一些小的误差,但是会产生一些副作用。其次,由于浮点运算的局限性,许多常用的求交点算法存在一些明显的数值问题。特别是光线经过自由曲面,要通过复杂的算法,对不同的情况进行讨论。

研究物体表面对光栅条纹的调制过程,对于研究光栅的调制方法、研究系统参数对测量的影响、评价算法的优劣、确定合理的技术方案和系统结构具有重要意义。但是现今存在的光栅投影仿真系统的仿真方法都是建立在两光轴相交于一点的基础之上,如果依然用此类方法对交叉光轴的光栅投影测量系统仿真模拟,则仿真出来的结果图像会产生严重的形状畸变。



技术实现要素:

本发明要解决的技术问题是提供一种交叉光轴光栅投影测量仿真系统及其实现方法,用以解决以往光栅投影仿真系统存在结果图像形状畸变的问题。

本发明采用的技术方案是:一种交叉光轴光栅投影测量仿真系统,

以windows系统为开发平台,通过逆光线追迹法,运用计算机编程语言,编写光栅投影模块-projecter、模拟被测物体-object和工作台模块-平面r1r2r3r4、图像采集模块-camera,实现具有光栅投影测量系统的仿真模型,其中模拟的投影机和照相机的光轴无交点,

所述光栅投影模块用于模拟投影机生成光栅条纹图像,设置光栅调制频率和初始相位,从而将光栅条纹图像投射到被测物体表面;

所述被测物体和工作台模块用于仿真将要被测量的物体和物体所在的实验台;

所述的图像采集模块用于模拟照相机采集调制过的光栅条纹,模拟光栅投影到物体表面后,光栅条纹会收到物体表面的调制,从而产生形变,通过模拟工业照相机采集形变光栅条纹图像。

一种交叉光轴光栅投影测量仿真系统的实现方法,包括如下具体步骤:

step1、计算与ccd阵列中e点相对应的d点的坐标,其中:e点为ccd象元中心,d点为线段ec的延长线与参考平面r1r2r3r4的交点;

step2、计算直线cd与物体表面的交点a的坐标;

step3、对求出的a点、d点的坐标进行从世界坐标系到投影机坐标系中的变换,得到投影机坐标系中的a'、d'点坐标;

step4、根据求出的a'、d'点坐标,计算直线pa'与投影机参考面的交点b'的x'坐标及直线pd'与投影机参考平面的交点w'的x'坐标;

step5、根据step4中的b'、w'的x'坐标计算ccd阵列上与a点、d点所对应的像素的强度值;

step6、运用向量法判断物体表面上出现阴影的区域;

step7、运用交点个数法判断平面r1r2r3r4上阴影出现的区域。

所述步骤step1中运用相似三角形原理进行计算,具体如下:

e点为ccd象元,每个象元的长和宽分别用sx,sy来表示,e点在ccd阵列上的行和列分别用i,j来表示,象元e与光心连线ec的延长线与物体表面相交于a点,与平面r1r2r3r4相交于d点,根据相似三角形原理可以得出公式(1)、(2)计算d点坐标,

其中,i表示第i行的象元,f表示照相机焦距,l表示照相机光心到参考平面r1r2r3r4的距离。

所述步骤step2中直线cd与物体表面的交点a的坐标计算运用变步长迭代法进行计算,具体如下:

由于a点在直线cd上,根据相似三角形原理我们可以得出公式(3)、(4)、(5),

za=f(xa,ya)(5)

在三维空间中采用迭代法直接计算出交点a坐标,a点是直线cd和物体表面的交点,设想cd直线上有一点q(xq,yq,zq),过q点做辅助线gh垂直于参考平面,h为直线gh和参考平面的交点,g为直线gh和物体表面的交点令h1=qh,h2=gq,期中h1,h2分别可由公式(6)、公式(7)计算得到,

h2=f(xq,yq)(7)

其中,z=f(x,y)为曲面的函数表达式,

令d点为初始迭代点,初始步长s=1,向c点方向进行迭代搜索,每进行迭代一次得到的结果如下:

是n+1次迭代之后得到的q点的横坐标和纵坐标,k表示q点纵坐标和横坐标的比值,k=j/i,其中i,j表示e点像素的横坐标和纵坐标,

确定迭代停止点,定义三个变量d1、d2、kd,令第一次计算h1、h2的差值d1=h1-h2,对q点迭代之后计算出h1、h2的差值d2=h1-h2,令kd=d1·d2,此过程每迭代一步就重新将d1、d2赋值一次,当q点在da线段上时h1>h2(qh>gh),有h1-h2<0;当q点在ac线段上时h1>h2,有h1-h2>0;如果kd的符号在第n次迭代时发生变化,说明第n-1迭代时q点在da线段上,第n-1迭代时q点在ac线段上,即说明q点已经迭代到a点附近,q点超过a点之后开始减小步长s的值并进行反方向迭代,令s=-s/2,然后运用上面的方法进行多次迭代,直到|s|<0.001迭代停止。

所述步骤step4中,根据求出的a'、d'点坐标,计算直线pa'与投影机参考面的交点b'的x'坐标及直线pd'与投影机参考平面的交点w'的x'坐标,具体如下:

a'、b'、d'、w'点分别对应世界坐标系中的a、b、d、w点,在投影机坐标系下观察,b'点是直线pa与平面r5r6r7r8的交点,直线b'f'与y'轴垂直;w'点是直线pd'与平面r5r6r7r8的交点,直线w'g'与y'轴垂直,根据相似三角形原理可以得到公式(10)、(11),继而可求出b'、w'点的x'坐标,

所述步骤step5根据step4中的b'、w'点的x'坐标计算ccd阵列上与a点、d点所对应的像素的强度值,具体如下:

在平面x'o'y'上投射的光栅栅距为λ,令o'点的初始相位为0,则b'点、w'点处的光栅相位分别可由公式(12)、(13)计算得到:

其中,b'f'=xb',w'g'=xw',

如果直线ed和物体表面有交点,则ccd阵列上的e(i,j)点表示经过物体表面调制后的光栅条纹强度图像,e点强度和参考平面r5r6r7r8上的b'点强度相对应,它的强度值可以根据公式(14)计算得到,如果直线ed和物体表面之间不存在交点,则ccd阵列上的e(i,j)点表示参考平面上光栅条纹强度图像,e点强度和参考平面r5r6r7r8上的w'点强度相对应,它的强度值可以根据公式(15)计算得到,

其中,a表示背景光强,b表示投射光栅的最大强度。

所述步骤step7、运用交点个数法判断参考平面上阴影出现的区域,具体如下:

平面上的d点,对于d点照相机可以看到,但投影机的光线照不到,所以照相机看到的a点的强度是黑色的背景光线,对于此种情况适用插值方法,从d点开始,向p点进行迭代搜索,判断直线pd和物体表面之间有几个交点,如果直线pd和物体表面的交点多于1个那么就可以判定d点处一定被物体遮挡住了,其光强就等于背景光强,判断交点的个数的方法如下:

h是直线pd上一点,令mh=h1,mn=h2,其大小可由公式(16)计算得出,

令d点为初始迭代点,向p的方向进行迭代计算,设置迭代步长为s=1,用公式(17)进行迭代搜索,

其中,是n+1次迭代之后得到的q点的横坐标和纵坐标,

定义四个变量d1、d2、kd、n,令第一次计算h1、h2的差值d1=h1-h2,对q点迭代之后计算出h1、h2的差值d2=h1-h2,令kd=d1·d2,此过程每迭代一步就重新将d1、d2赋值一次,令n=0,如果kd<0,则执行n=n+1,按照此方法从d点到p点依次进行迭代计算,直到p点迭代停止,若最后得出的结果是n的值就是交点的个数,如果n≥1则可得出直线pd是有交点的,由此可判断d点是在阴影区域内,此时可以用背景光强对在ccd阵列上与d点所对应的e点进行赋值。

本发明的有益效果是:

1.使用方便

为了运用条纹光栅投影系统(fps)获取三维物体表面形貌信息,在实验之前最好采用仿真验证一下设计方案。仿真可以免除了搭建fps平台的麻烦,而且仿真的速度更快,更灵活,而且可以方便他人使用。fps理论验证需要建立一个高精度光栅投影系统,图像采集器,实验设备校准装置等设。fps仿真系统相比搭建fps平台,不仅具有高速、经济的有点,而且具有更高的灵活性和精度,除此之外它还能为系统参数的设置和误差的分析提供很大的便利。

2.交叉光轴式光栅投影测量仿真

所谓交叉光轴是该系统中投影机光轴和照相机光轴的相互位置是交叉的,克服了现有仿真系统中两光轴必须相交于一点的缺点。现今存在的光栅投影仿真系统的仿真方法都是建立在两光轴相交于一点的基础之上,如果依然用此类方法对交叉光轴的光栅投影测量系统仿真模拟,则仿真出来的结果图像会产生严重的形状畸变。该方法的提出解决了以往光栅投影仿真系统存在此种结果图像形状畸变问题。

附图说明

图1为本发明系统原理图;

图2为迭代法计算a点(直线和曲面交点)的二维示意图;

图3a点算法流程图;

图4为投影机坐标系下各点坐标的三维示意图;

图5为平面r1r2r3r4上阴影区域判别方法二维示意图;

图6为本发明中交叉光轴的光栅投影仿真系统的实现方法流程图。

具体实施方式

以下结合实施例和附图对本发明作进一步阐述,但本发明的保护内容不限于所述范围。

实施例:参看图1-图6,一种交叉光轴光栅投影测量仿真系统,采用64位win7操作系统,intel(r)core(tm)i5-2410mcpu@2.30处理器,4gb内存,选取c++builder6.0为开发软件。通过逆光线追迹法,运用c++语言,通过编写光栅投影模块-projecter、模拟被测物体和工作台模块、图像采集模块-camera(其中c点是照相机的光心),实现具有光栅投影测量系统的仿真模型;其中模拟的投影机和照相机的光轴不需要有交点。实施例中仿真系统参数选取如下:ccd像素为800x600,摄像机焦距f=1.5mm,象元尺寸sx=0.0032mm,sy=0.0032mm,照相机距参考平面r1r2r3r4距离l=100mm,投影仪距参考平面r5r6r7r8的距离l`=150mm,投影仪安装位置:xp=-150mm,yp=0mm,zp=100mm。

一种交叉光轴光栅投影测量仿真系统,包括如下具体步骤:

step1、计算与ccd阵列中e点相对应的d点的坐标,e点为ccd象元中心,d点为线段ec的延长线与参考平面r1r2r3r4的交点;

step2、计算直线cd与物体表面的交点a的坐标;

step3、对求出的a点、d点的坐标进行从世界坐标系到投影机坐标系中的变换,得到投影机坐标系中的a'、d'点坐标;

step4、根据求出的a'、d'点坐标,计算直线pa'与投影机参考面的交点b'的x'坐标及直线pd'与投影机参考平面的交点w'的x'坐标;

step5、根据step4中的b'、w'的x'坐标计算ccd阵列上与a点、d点所对应的像素的强度值;

step6、运用向量法判断物体表面上出现阴影的区域;

step7、运用交点个数法判断参考平面上阴影出现的区域;

进一步地,所述步骤step1中运用相似三角形原理进行计算,具体如下:如图1,e点为ccd象元,每个象元的长和宽分别用sx,sy来表示,e点在ccd阵列上的行和列分别用i,j来表示,象元e与光心连线ec的延长线与物体表面相交于a点,与平面r1r2r3r4相交于d点,根据相似三角形原理可以得出公式(1)、(2)计算d点坐标,

其中,i表示第i行的象元,f表示照相机焦距,l表示照相机光心到参考平面r1r2r3r4的距离。

进一步地,所述步骤step2中直线cd与物体表面的交点a的坐标计算运用变步长迭代法进行计算,具体如下:如图1,由于a点在直线cd上,根据相似三角形原理我们可以得出公式(3)、(4)、(5)。

za=f(xa,ya)(5)

由于在三维空间中无法利用上述公式直接计算出交点a坐标,因此要采用迭代法进行数值计算。如图2,a点是直线ed和物体表面的交点,设想cd直线上有一点q(xq,yq,zq),过q点做辅助线gh垂直于参考平面,h为直线gh和参考平面的交点,g为直线gh和物体表面的交点令h1=qh,h2=gq,期中h1,h2分别可由公式(6)、公式(7)计算得到,

h2=f(xq,yq)(7)

令d点为初始迭代点,初始步长s=1,向c点方向进行迭代搜索,每进行迭代一次得到的结果如下:

是n+1次迭代之后得到的q点的横坐标和纵坐标,k表示q点纵坐标和横坐标的比值,k=j/i,其中i,j表示e点像素的横坐标和纵坐标,

确定迭代停止点,定义三个变量d1、d2、kd,令第一次计算h1、h2的差值d1=h1-h2,对q点迭代之后计算出h1、h2的差值d2=h1-h2,令kd=d1·d2,此过程每迭代一步就重新将d1、d2赋值一次。当q点在da线段上时h1>h2(qh>gh),有h1-h2<0;当q点在ac线段上时h1>h2,有h1-h2>0;如果kd的符号在第n次迭代时发生变化,说明第n-1迭代时q点在da线段上,第n-1迭代时q点在ac线段上,即说明q点已经迭代到a点附近。q点超过a点之后开始减小步长s的值并进行反方向迭代,令s=-s/2,然后运用上面的方法进行多次迭代,直到|s|<0.001迭代停止,得到的q点就是交点a。a点算法流程图如图3所示。

进一步地,所述步骤step4中,根据求出的a'、d'点坐标,计算直线pa'与投影机参考面的交点b'的x'坐标及直线pd'与投影机参考平面的交点w'的x'坐标,具体如下:如图4(a'、b'、d'、w'分别对应世界坐标系中的a、b、d、w),在投影机坐标系下观察,b'点是直线pa与平面r5r6r7r8的交点,直线b'f'与y'轴垂直;w'点是直线pd'与平面r5r6r7r8的交点,直线w'g'与y'轴垂直。根据相似三角形原理可以得到公式(10)、(11),继而可求出b'、w'点的x'坐标。

进一步地,所述步骤step5根据step4中的b'、w'的x'坐标计算ccd阵列上与a点、d点所对应的像素的强度值,具体如下:在平面x'o'y'上投射的光栅栅距为λ,令o'点的初始相位为0,则b'点、w'点处的光栅相位分别可由公式(12)、(13)计算得到:

其中,b'f'=xb',w'g'=xw',

如果直线ed和物体表面有交点,则ccd阵列上的e(i,j)点表示经过物体表面调制后的光栅条纹强度图像,e点强度和参考平面r5r6r7r8上的b'点强度相对应,它的强度值可以根据公式(14)计算得到。如果直线ed和物体表面之间不存在交点,则ccd阵列上的e(i,j)点表示参考平面上光栅条纹强度图像,e点强度和参考平面r5r6r7r8上的w'点强度相对应,它的强度值可以根据公式(15)计算得到。

其中,a表示背景光强,b表示投射光栅的最大强度。

进一步地,所述步骤step7、运用交点个数法判断参考平面上阴影出现的区域,具体如下:

如图5,工作台平面上的d点,对于d点照相机可以看到,但投影机的光线照不到,所以照相机看到的a点的强度是黑色的背景光线。对此类情况,本专利用一种插值方法来判别阴影区域,从d点开始,向p点进行迭代搜索,判断直线pd和物体表面之间有几个交点,如果直线pd和物体表面的交点多于1个那么就可以判定d点处一定被物体遮挡住了,其光强就等于背景光强,判断交点的个数的方法如下:

如图5,h是直线pd上一点,令mh=h1,mn=h2,其大小可由公式(16)计算得出。

令d点为初始迭代点,向p的方向进行迭代计算,设置迭代步长为s=1,用公式(17)进行迭代搜索。

其中,是n+1次迭代之后得到的q点的横坐标和纵坐标。

定义四个变量d1、d2、kd、n,令第一次计算h1、h2的差值d1=h1-h2,对q点迭代之后计算出h1、h2的差值d2=h1-h2,令kd=d1·d2,此过程每迭代一步就重新将d1、d2赋值一次,令n=0,如果kd<0,则执行n=n+1,按照此方法从d点到p点依次进行迭代计算,直到p点迭代停止,若最后得出的结果是n的值就是交点的个数,如果n≥1则可得出直线pd是有交点的,由此可判断d点是在阴影区域内,此时我们可以用背景光强对在ccd阵列上与d点所对应的e点进行赋值。该系统的实现方法流程如图6所示。

本发明通过具体实施过程进行说明的,在不脱离本发明范围的情况下,还可以对本发明进行各种变换及等同代替,因此,本发明不局限于所公开的具体实施过程,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可显而易见地得到的技术方案的简单变化而应当落入本发明的保护范围内。

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