基于时域空域混合编码的结构光条纹投射方法与流程

文档序号:11099881阅读:626来源:国知局
基于时域空域混合编码的结构光条纹投射方法与制造工艺

本发明涉及视觉检测技术中的结构光投射条纹编码方法,具体涉及一种基于时域空域混合编码的结构光条纹投射方法。



背景技术:

结构光三维视觉测量技术,具有视觉测量的非接触、速度快、自动化程度高,柔性好等优点。结构光三维视觉基于光学三角法原理,通过计算采集图像的各种光模式特征点的偏移信息反算出被测物体的表面轮廓。光学投射器投射确定的光模式,使得结构光图像信息易于提取,因而测量精度较高,广泛应用于各种工业产品的在线检测。

面结构光投射方式相比较于点结构光和线结构光具有不需要运动机构协助,可实现实时测量,系统成本低等优点在近些年来得到了发展。因结构光光学投射器投射出的图案和摄像机需要拍摄的图片数量不同,可以分为彩色编码投射法,灰度编码法,基于傅里叶变换的投射方法,条纹序列投射法和混合图案投射法等。其中彩色编码投射法只需要拍摄一幅图片就可以完成测量,但是其缺点也显而易见,在测量部分彩色物体时,这种方法的测量信息会受到被测物表面颜色的干扰,使测量结果变得不可靠。灰度编码法同样需要拍摄一幅图片就可以完成测量,并且测量结果不受被测物表面色彩的干扰,但是由于其解码原理是在空域上实现的,因此为了测量表面不连续的物体这种方法编码时需要采用pseudo随机二维序列(PRBA)的原理实现。基于傅里叶变换的条纹投射方法是一种比较经典的空域结构光测量方法,但是如何防止其频谱泄露一直是难以解决的问题,而且这种方法解相位算法复杂,不适合测量表面不连续的物体,在具体应用时具有较多问题。条纹序列投射法是一种时域条纹投射方法,可以测量具有任意表面特征的物体,但是由于其需要拍摄的图像过多,在实际测量时难以提高测量速度。当测量速度的要求不是很高时,可以将以上的两种或更多的方法结合来进行测量,这就是混合图案投射法。一种比较经典的方法就是格雷码结合相移的方法,这种方法不仅克服了相移法解相位算法复杂的问题,而且也相较于格雷码测量方法具有更高的测量精度。斯坦福大学的Hall-HoltO等人设计了一种条纹投射方法,通过投射四幅不同的二值条纹图案实现了三维形貌测量,但是这种方法只能达到像素级精度且测量结果容易受被测物表面纹理的影响。清华大学徐静等人设计了一种时域结合空域编码的条纹投射方法,通过投射三幅不同的二值条纹图案,实现了物体表面的三维形貌测量。但是这种方法提取条纹亚像素级坐标方法困难,并且各条纹之间具有较多约束,因而编码过程较为复杂。总结上述研究可以发现,一种好的条纹投射方法不仅要求编码方法相对简单,测量精度高,鲁棒性强,且要求需要拍摄的图像数量尽量少。



技术实现要素:

为克服现有技术的不足,本发明旨在提供一种时域结合空域混合编码的结构光投射方式,使得结构光测量方法编码原理相对简单,测量速度较快,鲁棒性强,且获得的测量结果具有亚像素级精度等优点。本发明采用的技术方案是,基于时域空域混合编码的结构光条纹投射方法,包括编码投影步骤、条纹检测步骤;

编码投影步骤包括时域编码、空域编码,时域编码具体是,采用十进制来表述在时域上的编码方式,单个周期的投影条纹随着时间变化有001,010,011,100,101,110六种编码情况,在这里,001代表投影仪投射的第一幅图像和第二幅图像的条纹编码值是0,而对应的第三幅图像的编码值是1,其中0对应着相应图像中的暗条纹,1对应着相应图像中的亮条纹,将每个周期条纹的灰度分布设计为正弦式分布,如条纹编码为1,则投射出的条纹灰度按正弦波的上半部分规律分布,反之,则按正弦波的下半部分规律分布,其具体约束如式(1):

其中,(ui,vi)为图像坐标,w为每个条纹的周期宽度,(1)中上式为条纹编码值为1的条纹灰度分布规律,下式则为条纹编码值为0的条纹灰度分布规律;

空域编码具体步骤是,利用相邻几个周期的条纹的编码值在空域进行编码,对于第一个周期的条纹,共有6种编码值的选择方式,而其相邻周期的条纹编码值共有5种选择,第三个周期的条纹编码值也有5种选择,以此类推;设n为空域上每组编码子序列需要的连续条纹周期数目,可知可能的子序列的数量共有

m=6×5n-1 (2)

也就是存在m种编码值,在空域编码时每相邻四个周期的条纹组成一个编码子序列,对应一个编码值p,以保证每个周期的条纹对应一个单独的编码值;

获得满足要求的编码序列首先需要利用穷举法列出所有编码子序列的可能性,然后利用欧拉环形算法将各个序列连接起来,假设子序列的长度为n,则需要满足前一子序列的后n-1位与后一子序列的前n-1的时域编码值相同,这样的一种完整的序列满足系统要求用来进行测量;

条纹检测步骤具体是,首先,对摄像机拍摄得到的三幅条纹投射图像进行均值滤波去除高斯噪声,对经过滤波的图像进行二值化处理获得每个周期的条纹在对应图像中的编码值,最后参照编码方法,利用获得的二值图像解码,从而获得各个周期条纹对应的编码值p以及条纹中心的坐标(u,v)。

图像二值化方法如下:

(1)遍历采集到的三幅图像,将图像对应像素的灰度值进行大小排序,从小到大依次是G1,G2,G3

(2)计算各像素点的对比度

设定一个阈值,当对比度小于这个阈值时,认为这个像素点处在低对比度区域,将三幅图像对应点的二值化结果都设为0。这种情况有两种可能的原因造成,第一种情况是摄像机拍摄到了投影仪条纹没有照射到的区域,即阴影区域,第二种是由于条纹编码特征造成的,即当三组条纹的值均接近于正弦条纹的灰度中间值时,三组条纹灰度值非常接近,造成对比度偏低,这种情况多发生在每组条纹的边缘区域。

(3)当对比度大于阈值contrast时,认为这个像素点处在高对比度区域,可以进行下一步处理,对于高对比度区域,设定

M1=G2-G1,M2=G3-G2 (4)

对二者求商,

M2/M1=(G3-G2)/(G2-G1) (5)

若M2/M1>1,则令G3对应图像的二值化结果为255,对应的编码值为1,G1和G2对应图像的二值化结果和编码值均为0,反之,令G1对应图像的二值化结果和编码值为0,G2和G3对应图像的二值化结果为255,编码值为1。

图像完成二值化后,需识别每组条纹中心以及完成解码过程,具体过程如下:

(1)获取编码图像,在时域上获取每个周期内条纹在时域上的编码值q;

(2)对图像的每一行从左到右进行遍历,若图像像素点的编码值q=0,则不处理此点。若不为0,则检查下一个像素点的编码值是否和此点相同;

(3)若编码值相同,则返回步骤(2),若不同,则计算之前具有相同编码点的数量,设定一阈值,若编码点数小于此阈值,则认为这些像素点是由于杂散光影响造成的噪声点,不进行处理。

(4)若编码点数大于此阈值,则利用灰度重心法求经中值滤波后的亮条纹中心点坐标作为此周期条纹的坐标,进行空域解码后对应的灰度条纹的编码值作为此周期内条纹的编码值。

在获取了每个条纹中心的亚像素精度坐标(u,v)以及对应的编码值p后,就可以利用(u,v,p)和对应的世界坐标(xw,yw,zw)可以建立图像坐标系和世界坐标系之间的对应关系。

本发明的特点及有益效果是:

本发明提出了一种基于时域空域混合编码的结构光条纹投射方法,通过投射三幅编码图像,利用摄像机拍摄被条纹照射到的被测物图像,采用本发明提出的方法对三幅图像进行二值化,条纹亚像素级坐标获取和解码,进而获取被测物表面的三维信息。

该方法适合于在各种测量条件下进行结构光测量,尤其在被测物表面纹理复杂,测量环境光照条件变化较大,实时性要求较高的条件下,本发明均能得到较好的测量结果,具有较好的技术优势。

附图说明:

图1.依据编码原则设计的投射条纹图案。

图2.拍摄到的条纹图像。

图3.图像二值化结果。

图4.(a)编码图像(b)条纹中心提取结果图。

具体实施方式

本发明采用的技术方案是,

1.条纹编码规则

本发明设计了一种条纹投射编码方法,这种条纹投射方法每次测量时利用投影仪投射三幅图像,进行图像处理获取每个周期的条纹中心坐标以及对应的编码值,用来建立投影仪和摄像机之间的对应关系。

为了简化条纹图样随时间变化的表述,采用十进制来表述本发明在时域上的编码方式。单个周期的投影条纹随着时间变化有001,010,011,100,101,110六种编码情况,也就是1,2,3,4,5,6这六种编码值。在这里,001代表投影仪投射的第一幅图像和第二幅图像的条纹编码值是0,而对应的第三幅图像的编码值是1,其中0对应着相应图像中的暗条纹,1对应着相应图像中的亮条纹。如果每个周期的条纹灰度按二值条纹分布方式进行设计,则实际测量时,本发明提出的编码方式只能获得条纹的边缘坐标信息而非条纹中心信息,其坐标也必然只能达到像素级精度。因此,需要将每个周期条纹的灰度分布设计为正弦式分布,如条纹编码为1,则投射出的条纹灰度按正弦波的上半部分规律分布,反之,则按正弦波的下半部分规律分布。其具体约束如式(1)。

其中,(ui,vi)为图像坐标,w为每个条纹的周期宽度,(1)中上式为条纹编码值为1的条纹灰度分布规律,下式则为条纹编码值为0的条纹灰度分布规律。

下面说明如何在空域对条纹进行编码。在利用不同时间点的三幅图像进行时域编码后,每个周期条纹的编码值必然是1,2,3,4,5,6这六种情况之一。由于在测量中每个周期的条纹需要存在单独的编码值,因此需要利用相邻几个周期的条纹的编码值在空域进行编码。对于第一个周期的条纹,共有6种编码值的选择方式,而其相邻周期的条纹编码值共有5种选择,第三个周期的条纹编码值也有5种选择,以此类推。设n为空域上每组编码子序列需要的连续条纹周期数目,可知可能的子序列的数量共有

m=6×5n-1 (2)

也就是存在m种编码值。比如说,我们利用分辨率为912*1180的投影仪想得到456个数值条纹,则子序列的长度最少为4。在空域编码时每相邻四个周期的条纹组成一个编码子序列,对应一个编码值p,这样做可以保证每个周期的条纹对应一个单独的编码值。

按照上述编码规律进行时域和空域编码在实际测量时具有很高的精度和很好的鲁棒性。

首先,每个周期条纹的灰度在时域上的分布情况需要随着投射图像的变化而变化可以使解码效果不受被测量物体表面颜色、纹理等的影响。如果被检测物体的表面颜色有深有浅,那么当亮条纹投射到深色区域和暗条纹投射到浅色区域时,摄像机获取的图像中,两个条纹对应的灰度值有可能很接近,因此,很难利用求取全局阈值的方法对得到的图像进行二值化,解码过程会变得很困难。相反,可以利用三幅图像同样位置的条纹互相之间的约束关系使解码过程变得容易且准确。基于这个原因,在时域上由三幅投射图像共同组成的三位二进制编码中000和111这两种编码方式被剔除掉了。

其次,同一时间点上相邻两个周期的条纹编码值不同,这样做可以消除掉由于投射深度的变化造成的条纹周期的变化给解码带来的影响。由于条纹的周期宽度随着投影仪投射深度的增加而增大,若允许相邻两个周期在时域上的编码值相同的情况存在,则在实际测量中很难判断单个周期条纹包含的实际条纹周期数,会造成解码错误。

最后,为了获得条纹中心的亚像素精度级坐标,单周期内条纹的亮度分布规律是正弦的,这样可以类比线激光测量的方法,在检测到了每个周期条纹的坐标范围后,可以利用灰度重心法求取条纹中心的亚像素级精度的坐标,提高系统测量精度和分辨力,且方法简单易行。

获得满足要求的编码序列首先需要利用穷举法列出所有编码子序列的可能性,然后利用欧拉环形算法将各个序列连接起来。假设子序列的长度为n,则需要满足前一子序列的后n-1位与后一子序列的前n-1的时域编码值相同,这样的一种完整的序列满足系统要求,可以用来进行测量。

2.条纹检测

首先,对摄像机拍摄得到的三幅条纹投射图像进行均值滤波去除高斯噪声,对经过滤波的图像进行二值化处理获得每个周期的条纹在对应图像中的编码值,最后按照上文所述的编码方法,利用获得的二值图像解码,就可以获得各个周期条纹对应的编码值p以及条纹中心的坐标(u,v)。

图像二值化方法如下:

(1)遍历采集到的三幅图像,将图像对应像素的灰度值进行大小排序,从小到大依次是G1,G2,G3

(2)计算各像素点的对比度

设定一个阈值,当对比度小于这个阈值时,认为这个像素点处在低对比度区域,将三幅图像对应点的二值化结果都设为0。这种情况有两种可能的原因造成,第一种情况是摄像机拍摄到了投影仪条纹没有照射到的区域,即阴影区域,第二种是由于条纹编码特征造成的,即当三组条纹的值均接近于正弦条纹的灰度中间值时,三组条纹灰度值非常接近,造成对比度偏低,这种情况多发生在每组条纹的边缘区域。

(3)当对比度大于阈值contrast时,认为这个像素点处在高对比度区域,可以进行下一步处理,对于高对比度区域,设定

M1=G2-G1,M2=G3-G2 (4)

对二者求商,

M2/M1=(G3-G2)/(G2-G1) (5)

若M2/M1>1,则令G3对应图像的二值化结果为255,对应的编码值为1,G1和G2对应图像的二值化结果和编码值均为0,反之,令G1对应图像的二值化结果和编码值为0,G2和G3对应图像的二值化结果为255,编码值为1。

图像完成二值化后,需识别每组条纹中心以及完成解码过程,具体过程如下:

(1)获取编码图像,在时域上获取每个周期内条纹在时域上的编码值q;

(2)对图像的每一行从左到右进行遍历,若图像像素点的编码值q=0,则不处理此点。若不为0,则检查下一个像素点的编码值是否和此点相同;

(3)若编码值相同,则返回步骤(2),若不同,则计算之前具有相同编码点的数量,设定一阈值,若编码点数小于此阈值,则认为这些像素点是由于杂散光影响造成的噪声点,不进行处理。

(4)若编码点数大于此阈值,则利用灰度重心法求经中值滤波后的亮条纹中心点坐标作为此周期条纹的坐标,进行空域解码后对应的灰度条纹的编码值作为此周期内条纹的编码值。

在获取了每个条纹中心的亚像素精度坐标(u,v)以及对应的编码值p后,就可以利用(u,v,p)和对应的世界坐标(xw,yw,zw)可以建立图像坐标系和世界坐标系之间的对应关系。

根据本发明提出的编码条纹设计方法,设计的一种编码条纹如图1。利用投影仪投射出设计的条纹,摄像机同时拍摄被条纹照射到的被测物,得到如图2所示的三幅图像。首先对三幅图像进行均值滤波去除高斯噪声,利用本文提出的二值化方法对三幅图像二值化处理,得到如图3所示的三幅图像。进一步处理图像,利用本发明提出的条纹编码方法和灰度重心法,获得了编码图像以及每个周期条纹的中心坐标,分别如图4(a)(b)所示。

通过本发明提出的条纹投射方法,利用2.5mm量块在三种不同光照条件下各测得10组数据进行实验验证,实验结果如表1所示。

表1实验数据(单位:mm)

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