一种基于双目相机及结构光编解码的测量系统及方法与流程

文档序号:15552686发布日期:2018-09-29 00:24阅读:155来源:国知局

本发明涉及一种基于双目相机及结构光编解码的测量系统及方法。



背景技术:

近二三十年以来,随着计算机技术的高速发展,计算机视觉的应用已经从固定的二维平面过渡到了直观灵活的立体三维。在生产高度自动化的工业时代传统的二维测量和三维接触式测量方法已经不能满足现代生产的需求,因此,现代化的工业生产对三维非接触式测量提出了迫切的需求。

光学三维测量技术是一种非接触式测量,具有测量精度高,容易实现且能够测量表面复杂的物体等优点,所以光学三维测量技术已经广泛的应用于视觉导航、工业检测等领域。结构光测量技术是一种典型的光学测量方法,被广泛的应用于逆向工程、工业检测、艺术雕像外观恢复,医学整容美容等领域,随着三维测量技术的不断发展,测量精度的要求也越来越高。

在工业检测领域中,比如涡轮机的叶片、汽车车身的震动、飞行器的机翼风洞测试引起的变形和震动等都需要对它们的关键部件的震动、变形、运动的三维信息进行测量,分析其性能,从而保证其质量和安全。而且我们还能对产品的设计和加工过程进行及时的反馈,进一步提高其技术性能。在产品设计过程中,人们也越来越注重面向客户的个性化设计如鞋子、服装、眼镜等行业通过获取人体的局部或者整体的三维信息,更加有利于产品个性化的设计与快速加工。

目前,在三维测量领域中,大多数的测量方法都是基于被测物体表面特征的,效果比较好。但是,对被测物体表面无纹理或者纹理较少的物体的检测效果不理想。随着工业生产自动化的高速发展,工业上对于物体表面无纹理或者纹理较少的物体的检测需求越来越大,但是目前的三维检测技术并不能完全满足其需求。

因此,有必要设计一种基于双目相机及结构光编解码的测量系统及方法。



技术实现要素:

本发明所要解决的技术问题是提供一种基于双目相机及结构光编解码的测量系统及方法,该基于双目相机及结构光编解码的测量系统及方法易于实施,成像及测量速度快。

发明的技术解决方案如下:

一种基于双目相机及结构光编解码的测量系统,包括控制主机、投影仪和2台相机;投影仪和2台相机均受控于控制主机;投影仪位于2台灰度相机之间;

控制主机形成结构条纹光并将需要投影的图像传输给投影仪;由投影仪将结构条纹光投射到作为投影对象的被测物上;

2台灰度相机并排布置形成双目灰度相机组,由该2台灰度相机分别获取左右投影图像;并将获取的左右投影图像发送到控制主机;

控制主机还用于对左右投影图像进行解码、条纹匹配以及视差计算从而实现对被测物的三维视觉重建。

所述的结构条纹光为5元3阶的非重复的debruijn序列;所述序列为:

{2,5,4,1,3,5,4,5,2,3,5,1,2,1,2,3,2,5,3,1,4,1,2,5,1,4,3,1,3,4,1,5,4,3,2,1,4,2,1,3,2,4,5,4,2,5,2,4,2,4,1,4,5,1,5,1,3,1,2,4,3,5,2,1,5,3,2,3,4,3,4,5,3,5,3,4,2,3,1,5}。

在相邻的彩色条纹之间设有黑色条纹作为间隔,使彩色条纹边缘更加清晰,增强条纹识别的抗干扰能力;

表2颜色码字查找表

颜色与码字的对应关系如表2。

投影仪为dlp投影仪,灰度相机为ccd相机或cmos相机

所述的相机为灰度相机;将彩色结构光条纹分解,得到对应的r、g、b三个通道的灰度条纹结构光图案;由投影仪将得到的r、g、b三个通道的灰度条纹结构光图案分别投射至被测物体表面。

控制主机上设有2个图像采集卡用于采集2个灰度相机获取的数字图像。

一种基于双目相机及结构光编解码的测量方法,采用前述的基于双目相机及结构光编解码的测量系统;其步骤为:

步骤1:由控制主机形成条纹光编码并生成结构条纹光图像;

步骤2:投影条纹光图像以及获取左右投影图像;

将彩色结构光条纹分解,得到对应的r、g、b三个通道的灰度条纹结构光图案;

由投影仪将得到的r、g、b三个通道的灰度条纹结构光图案分别投射至被测物体表面,并用2个灰度相机获取投影图像;

控制主机合成灰度相机获取的投射至物体表面的r、g、b三个通道的灰度条纹结构光图案,得到2幅含有被测物纹理位置信息的三通道彩色结构光条纹图像,记为左右投影图像;

步骤3:控制主机分别对左右投影图像进行解码;

步骤4:在控制主机执行条纹匹配与视差计算。

步骤3中,先对左右投影图像进行预处理;所述的预处理是指采用中值滤波进行处理。

步骤3中包括以下步骤:

步骤31:运用canny算子提取条纹边缘,保存边缘坐标;

步骤32:对每行的每个条纹采用几何中心法提取算法,得到条纹的几何中心线,即粗略中心线:几何中心线为中心坐标点集;二值图像中的灰度值为255的坐标点集;

步骤33:在条纹的粗略中心位置(即粗略中心线上的某一点)pc处的左右两边各取m个像素,使它们之间宽度(2m+1个像素对应的宽度)大于条纹的宽度(如1.1~1.5倍条纹宽度);采用自适应阈值法确定灰度阈值,将背景像素与条纹像素分离;

步骤34:根据公式1计算条纹像素的梯度值g(x,y);

为条纹边界处的灰度阈值;

步骤35:根据上文提到的公式2计算条纹像素的亚像素位置p(x,y);

步骤36:利用梯度重法提取中心线算法公式3计算条纹中心线的亚像素位置,其中g(x,y)是权重,p(x,y)为对应权重的梯度位置;

因为所用条纹是竖条纹,并且是按行提取中心线的,所以行坐标是已知的,这里的亚像素位置公式是计算列坐标的。

亚像素位置的行列坐标存放于mat类图像中,图像中强度值非零点的坐标点集;

步骤3中,基于hsi颜色空间的聚类算法对图像中的条纹的颜色进行聚类,各颜色对应的色调值h的范围如表1所示:

表1hsi颜色空间颜色与色调角范围对应表

基于表2,依据具体条纹颜色获取条纹对应的码字。

有益效果:

本发明提供了一种基于双目相机及结构光编解码的测量系统及方法。

本发明的编码方法,先通过计算机编码出de-bruijn序列的彩色结构光条纹图案,并分离出其bgr每通道灰度条纹结构光分别投射至被测物体表面;再通过灰度相机获取上一步骤投射至被测物表面的结构光,将灰度相机获取的物体表面的bgr三通道的三幅灰度图合成一幅彩色结构光条纹图,完成编码过程。这种编码方法能明显提高后期解码过程中码字的提取条纹的识别的准确率与效率,增加系统的抗干扰能力与鲁棒性。生成彩色条纹编码图案满足下面几个条件:

(1)任意相邻的两条条纹的颜色不相同;

(2)任意一个由相邻的n条条纹组成的子序列在整个序列中不重复,即子序列在整个序列中是唯一的;

(3)编码方案时颜色不过多,每种颜色的区分度很大,保证投射到被测物体表面的彩色条纹不容易受到被测物体表面颜色和环境光的干扰而产生误码,影响重建的精度。

以上特点为后续条纹的边缘线或中心线的提取提供了有利条件,尤其是在被测物表面不连续或者深度信息急剧变化的情况下。

在编码过程中,利用debruijn序列窗口的唯一性来确保子序列条纹在整幅编码图案中的唯一性,同时通过改进debruijn序列来确保相邻两条彩色条纹不相同。同时还通过引入黑色条纹间隔使彩色条纹边缘更加清晰,增强系统的抗干扰能力。虽然该编码方案的精度没有时空编码方法的精度高,但是通过加入颜色信息提高了三维重建的精度,增加了系统的干扰能力和鲁棒性,实现精确的条纹识别与匹配。

根据debruijn序列生成一幅彩色编码图案,每一种颜色条纹代表序列中的一个元素,根据debruijn序列的窗口唯一性可知,某个特定宽度的彩色条纹组合在编码图案中都是唯一的,所以只需要在左右图像中正确的提取出对应子窗口中条纹的颜色信息和排列顺序就可以完成对应条纹位置信息的解码。在进行实验时,由于受到环境光,硬件设备的性能、被测物表面颜色及其表面的反射与吸收等一系列因素的影响,相机获取到条纹颜色很容易失真为后续的颜色识别增加了难度。因此本发明还进一步设计了将彩色条纹分解为灰度条纹的策略。

本发明还针对彩色debruijn编码双目视觉系统提出了一套高效精确的解码方法,能够求出中心线的亚像素级像素坐标和左右图像的像素级匹配,从而得到图像的视差矩阵。canny算子检测边缘有一个非极大值的抑制过程,采用两个阈值进行边缘连接,具有良好的抗干扰能力。由于在实际拍摄中存在边际效应,即高强度条纹会向低强度背景偏移,所以计算条纹中心线坐标用于视差计算。本发明采用的自适应阈值法能够有效地将条纹区域与背景区域分割开来,利用梯度重心法能够计算出条纹中心线的亚像素级坐标。但是亚像素坐标对噪声极为敏感,需要再结合之前的粗略像素级坐标设置约束条件,这样计算出来的亚像素级中心线将非常精确,也提高了系统的抗干扰能力。获取的彩色图像转换到his颜色空间进行颜色聚类,可以克服拍摄过程中光照被测物表面的颜色、反射及吸收等一系列因素的干扰,在一定程度上修正了相机获取的彩色条纹的颜色值与投射时的标准值之间的偏差。接着再转回到rgb空间给彩色条纹写码字标签。在实际拍摄中几乎无法使双目相机严格平行,这是显而易见的,运用极线约束原则对图像进行立体校正可以使匹配转化为一维空间。在左右图像的同一行上遍历条纹解码码字标签,利用debruijn窗口唯一性可实现像素与像素间的精确匹配,再对对应的左右图像像素点坐标求差即可得到该点的视差。当遍历所有行就能得到视差矩阵。

本发明的双目彩色结构光测量系统是通过把双目视觉技术和结构光技术进行结合,对表面无纹理或者纹理较少的物体进行三维重建,该系统结构比较简单,精度较高,成像速度快。

附图说明

图1为双目结构光系统总体结构图;

图2为双目结构光视觉系统简图;

图3为基于双目相机及结构光编解码的测量方法的总体流程图;

图4为debruijn序列有向图(图4(a)为2元2阶的debruijn有向图,(b)为3元2阶的debruijn有向图)

图5为5元3级非重复debrujin编码图;

图6为结构光编码图,其中图6(a)-(d)分别是彩色编码条纹图、r通道灰度图、g通道灰度图和b通道灰度图。

图7为工件投影示意图;其中图7(a)为r通道灰度条纹捕获图,图7(b)为b通道灰度条纹捕获图,图7(c)为b通道灰度条纹捕获图,图7(d)为彩色条纹合成图;

图8为结构光解码流程图;

图9为几何中心法流程图;

图10为自适应阈值法原理图;

图11为定板亚像素中心线图;

图12为工件亚像素中心线提取图;

图13为颜色识别流程图;

图14为标定板彩色中心线图;

图15为彩色条纹匹配示意图。

具体实施方式

以下将结合附图和具体实施例对本发明做进一步详细说明:

实施例1:如图1-3,一种基于双目相机及结构光编解码的测量系统,包括控制主机、投影仪和2台相机;投影仪和2台相机均受控于控制主机;投影仪位于2台灰度相机之间;

控制主机形成结构条纹光并将需要投影的图像传输给投影仪;由投影仪将结构条纹光投射到作为投影对象的被测物上;

2台灰度相机并排布置形成双目灰度相机组,由该2台灰度相机分别获取左右投影图像;并将获取的左右投影图像发送到控制主机;

控制主机还用于对左右投影图像进行解码、条纹匹配以及视差计算从而实现对被测物的三维视觉重建。

所述的结构条纹光为5元3阶的非重复的debruijn序列;所述序列为:

{2,5,4,1,3,5,4,5,2,3,5,1,2,1,2,3,2,5,3,1,4,1,2,5,1,4,3,1,3,4,1,5,4,3,2,1,4,2,1,3,2,4,5,4,2,5,2,4,2,4,1,4,5,1,5,1,3,1,2,4,3,5,2,1,5,3,2,3,4,3,4,5,3,5,3,4,2,3,1,5}。

在相邻的彩色条纹之间设有黑色条纹作为间隔,使彩色条纹边缘更加清晰,增强条纹识别的抗干扰能力;

表2颜色码字查找表

颜色与码字的对应关系如表2。

投影仪为dlp投影仪,灰度相机为ccd相机或cmos相机

所述的相机为灰度相机;将彩色结构光条纹分解,得到对应的r、g、b三个通道的灰度条纹结构光图案;由投影仪将得到的r、g、b三个通道的灰度条纹结构光图案分别投射至被测物体表面。

控制主机上设有2个图像采集卡用于采集2个灰度相机获取的数字图像。

一种基于双目相机及结构光编解码的测量方法,采用前述的基于双目相机及结构光编解码的测量系统;其步骤为:

步骤1:由控制主机形成条纹光编码并生成结构条纹光图像;

步骤2:投影条纹光图像以及获取左右投影图像;

将彩色结构光条纹分解,得到对应的r、g、b三个通道的灰度条纹结构光图案;

由投影仪将得到的r、g、b三个通道的灰度条纹结构光图案分别投射至被测物体表面,并用2个灰度相机获取投影图像;

控制主机合成灰度相机获取的投射至物体表面的r、g、b三个通道的灰度条纹结构光图案,得到2幅含有被测物纹理位置信息的三通道彩色结构光条纹图像,记为左右投影图像;

步骤3:控制主机分别对左右投影图像进行解码;

步骤4:在控制主机执行条纹匹配与视差计算。

下面对编码方法详细说明如下:

一种结构光条纹编码方法,设k=(1,2,3…k)是一个k个元素的集合,n为一个正整数,那么k元n阶的debruijn序列定义如下:(di,di+1,di+2,…di+n-1)为从集合k中选取n个元素进行排列组合产生的kn个不同的子序列,采用非重复的debruijn序列进行条纹光编码;非重复的debruijn序列最大长度为k*(k-1)n-1;每一个编码对应一种颜色,不同的编码对应不同的颜色。条纹光编码用于形成投射到被测物体上的编码条纹光,再由双面相机获取图像,实现针对被测物的三维测量。

备选的色彩有红色(255,0,0)、绿色(0,255,0)、蓝色(0,0,255)黄色(255,255,0)、品红(255,0,255)、青色(0,255,255);其中颜色后括号内的数值为该颜色对应的rgb值。编码时每种颜色对应表格2中的一种码字,如同给每种颜色的结构光条纹取一个计算机能识别的名字。

在debruijn图中进行哈密顿回路或欧拉回路搜索,每个回路中边的标签顺序就组成了一个k元n阶的debruijn序列。图中的方格组成了节点,方格数字代表从集合k中选取n个元素进行的排列组合(数字即为各种不同颜色条纹光对应的码字),总节点数为kn。哈密顿回路是指从图中的一个节点出发,沿着图中的边,刚好经过图中的每一个节点,且仅只经过一次的回路。

表2a颜色码字查找表

基于表2a,依据具体条纹颜色获取条纹对应的码字。

非重复的debruijn序列为2元2阶的序列、3元2阶的序列或5元3阶的序列。

例如:2元2级的非重复debruijn序列(12),3元2阶的非重复debruijn序列(123132),其中三元2阶序列中任意相邻两个码字不重复

对应的5元3阶序列为

{2,5,4,1,3,5,4,5,2,3,5,1,2,1,2,3,2,5,3,1,4,1,2,5,1,4,3,1,3,4,1,5,4,3,2,1,4,2,1,3,2,4,5,4,2,5,2,4,2,4,1,4,5,1,5,1,3,1,2,4,3,5,2,1,5,3,2,3,4,3,4,5,3,5,3,4,2,3,1,5}。

在相邻的彩色条纹之间设有黑色条纹作为间隔,使彩色条纹边缘更加清晰,增强条纹识别的抗干扰能力;

表2颜色码字查找表

颜色与码字的对应关系如表2。

一种投影图像获取系统,包括控制主机、投影仪和2台灰度相机;投影仪和2台灰度相机均受控于控制主机;

控制主机基于所述的结构光条纹编码方法形成结构条纹光并将需要投影的图像传输给投影仪;由投影仪将结构条纹光投射到投影对象上;

2台灰度相机并排布置形成双目灰度相机组,由该2台灰度相机分别获取左右投影图像;并将获取的左右投影图像发送到控制主机进行后续处理。

投影仪为dlp投影仪,灰度相机为ccd相机或cmos相机。

一种投影图像获取方法,其特征在于,采用所述的投影图像获取系统,其特征在于,包括以下步骤:

步骤1:通过控制主机(如pc机或工控机等)编码出de-bruijn序列的彩色结构光条纹图案;

步骤2:将彩色结构光条纹分解,得到对应的r、g、b三个通道的灰度条纹结构光图案;

步骤3:将得到的r、g、b三个通道的灰度条纹结构光图案分别投射至被测物体表面,并用2个灰度相机获取投影图像;

步骤4:合成灰度相机获取的投射至物体表面的r、g、b三个通道的灰度条纹结构光图案,得到2幅含有被测物纹理位置信息的三通道彩色结构光条纹图像(即左右投影图像)。

如图4,de-bruijn序列是改进的非重复de-bruijn序列,即在解码过程中如果相邻两条颜色相同的条纹有一条缺失,可能会产生误匹配,影响三维重建的结果,此外为了满足彩色条纹结构光编码的要求,需要对传统的debruijn序列进行改进。通过对debruijn序列的数学模型和debruijn图的研究发现,为了消除debruijn序列中相邻两个元素相同的情况,只需要将debruijn图g(n,k)中含有相邻元素相同的子序列的顶点和该顶点对应的边移除,得到一个修改后的debruijng’(n,k),如果g’(n,k)中存在哈密顿回路,回路上标签顺序就是改进的非重复debruijn序列,根据排列组合可知,非重复的debruijn序列最大长度为k*(k-1)n-1。如下图4(a)是改进之后的2元2级的非重复debruijn序列(12)的debruijn图,实线边组成的回路为其对应的哈密顿回路,如下图4(b)是改进之后的3元2阶的非重复debruijn序列(123132)的debruijn图,实线边组成的回路为其对应的哈密顿回路。

所述的彩色结构光条纹,为了使解码时消除环境光以及噪声的干扰,更好的区分识别条纹颜色,备选的色彩有红色(255,0,0)、绿色(0,255,0)、蓝色(0,0,255)黄色(255,255,0)、品红(255,0,255)、青色(0,255,255)。

下面对解码方法详细说明:

一种基于双目视觉彩色条纹编码的解码方法

一种基于双目视觉彩色条纹编码的解码方法,包括以下步骤:

步骤1:采用双目相机拍摄投影图像;

投影图像为2幅,即左图像和有图像;步骤2:对获取的投影图像进行预处理;

所述的预处理是指采用中值滤波进行处理;

步骤3:提取每条条纹的中心线;

步骤4:识别条纹颜色对应的码字;

步骤5:条纹匹配与视差计算;

其中,步骤2~5分别对2幅图像进行处理。

所述的步骤3包括以下步骤:

步骤31:运用canny算子提取条纹边缘,保存边缘坐标;

步骤32:对每行的每个条纹采用几何中心法提取算法,得到条纹的几何中心线,即粗略中心线:几何中心线为中心坐标点集;二值图像中的灰度值为255的坐标点集;步骤33:在条纹的粗略中心位置(即粗略中心线上的某一点)pc处的左右两边各取m个像素,使它们之间宽度(m+1个像素对应的宽度)大于条纹的宽度(如1.1~1.5倍条纹宽度);采用自适应阈值法确定灰度阈值,将背景像素与条纹像素分离;

步骤34:根据公式1计算条纹像素的梯度值g(x,y);

为条纹边界处的灰度阈值;

步骤35:根据上文提到的公式2计算条纹像素的亚像素位置p(x,y);

步骤36:利用梯度重法提取中心线算法公式3计算条纹中心线的亚像素位置,其中g(x,y)是权重,p(x,y)为对应权重的梯度位置;

因为所用条纹是竖条纹,并且是按行提取中心线的,所以行坐标是已知的,这里的亚像素位置公式是计算列坐标的。

亚像素位置的行列坐标存放于mat类图像中,图像中强度值非零点的坐标点集。

步骤4中,基于hsi颜色空间的聚类算法对图像中的条纹的颜色进行聚类,各颜色对应的色调值h的范围如表1所示:

表1hsi颜色空间颜色与色调角范围对应表

表2颜色码字查找表

基于表2,依据具体条纹颜色获取条纹对应的码字。

步骤5包括如下步骤:

步骤51:参见图14,15,首先将左图像的中心线l1(匹配的时候是从最左边开始,这里只是取中间位置说明一下匹配过程)(对应的码字为3)作为匹配起始条纹,图中所标段的编码序列为35121…),需要找到该条纹右边的相邻的n条条纹,组成目标窗口序列lp1(对应的窗口序列为351),由于n条条纹组成一个目标窗口序列,匹配时是一个窗口与一个窗口进行匹配;步骤52:

将左图像的目标窗口序列作为模板在右图像的条纹中心线图的相同行上进行遍历,若找到和目标窗口序列相同的匹配窗口序列rp2,即完成匹配;

步骤53:

左右图像已经匹配好的中心线对应点亚像素坐标的差值即为该点的视差;

遍历整幅图像即得到了对应左右图像的视差矩阵。

步骤33中的自适应阈值法包括以下步骤:

步骤a:先计算出图像中第x行上的第pci-m列至pci+m列范围内的灰度值i(x,y)的平均值ia;

步骤b:设ith为条纹边界处的灰度阈值,ith为条纹上的第pci-m列至pci+m列范围内的灰度值i(x,y)小于平均值ia的像素点的灰度的平均值;采用ith能够自适应的将条纹区域和背景区域分割开来。

进行中心点的求取时,只要知道任意一个条纹截面左右两个端点(点对)的坐标就可以得到条纹中心的坐标。通过canny算子进行边缘检测后的边缘线都是单像素的白色线条,t1和t2为彩色条纹和黑色条纹的期望宽度,一个完整的点对经过被测物体表面的调制之后左右端点的纵坐标之差即xr-xl的范围是大于4/5t1小于6/5t1。

提取条纹中心线具体步骤如下:

提取条纹中心线具体步骤如下:

1)设pl(xl,yl)为条纹截面的左端点,pr(xr,yr)为条纹截面的右端点坐标,在提取边缘线的效果图上对某一水平方向进行遍历时将读取的第一个边缘点作为左端点pl(xl,yl),第二个边缘点作为右端点pr(xr,yr);

2)如果4/5t1≤yr-yl,则pl,pr是一个完整的点对,中心点的坐标为pc(xc,yc)。如果yr-yl≥6/5t1,则右边缘点缺失,令pl=pr,pr为下一个边缘点坐标;

3)如果yr-yl≤4/5t1,当4/5t2<yr-yl<6/5t2为真,则向右取点p1(x1,y1)、p2(x2,y2);

4)如果4/5t1<yr-yl<6/5t1且4/5t2<yr-yl<6/5t2为真,则pl,pr为黑色条纹的两个端点,令pl=pr,pr为下一个边缘点,当4/5t2<yr-yl<6/5t2为假,继续取下一个边缘点pr1(xr1,yr1),

5)如果yr1-yl≤4/5t1,则令pr=pr1,继续取下一个边缘点pr1;如果yr1-yl≥6/5t1,则pl,pr为完整边缘对,然后再继续进行判断。

中心点pc(xc,yc)的坐标计算公式如下:

步骤14:在条纹的粗略中心位置pc处的左右两边各取m个像素,使它们之间宽度略大于条纹的宽度。在确定了光带的范围之后,还需要精确的确定条纹的边界,以提高利用梯度重心法提取的亚像素中心线的准确度。本文采用了自适应阈值法来确定条纹边界的灰度阈值,该算法具体步骤如下:

1)先计算出图像中第x行上的第列至列范围内的灰度值i(x,y)的平均值ia;

2)设为条纹边界处的灰度阈值,为条纹上的第列至列范围内的灰度值i(x,y)小于平均值ia的像素点的灰度的平均值。会略大于条纹区域的背景灰度,它能够自适应的将条纹区域和背景区域分割开来。

3)在本文中梯度是指在图像的行方向上相邻的像素点的灰度值的差分结果的绝对值,设g(x,y)为在图像第x行上第y列与第y+1列中间位置的梯度值。

4)计算条纹边界处的梯度值所对应的位置,可以根据灰度值i(x,y)和i(x,y+1)通过线性插值计算得到。梯度值所对应的位置p(x,y)的表达式如下所示;

5)在利用梯度重法提取中心线的方法中g(x,y)是权重,p(x,y)为对应权重的梯度位置,其中pc为粗略中心线位置,w为粗略中心线位置到条纹边界的距离。对图像每一行进行上述处理之后,就可以获得每一行上的条纹中心点的亚像素位置,从而就可以得到每一条条纹的亚像素中心线。条纹中心的亚像素位置的计算公式如下所示

步骤21:相机获取的彩色条纹的颜色值与投射时的标准值会有一定的偏差,所以我们需要对这些颜色进行识别与处理,以便将每条条纹的颜色与投射的编码图案中所使用的五种颜色一一对应。本发明采用了基于hsi颜色空间的聚类算法对图像中的颜色进行聚类。rgb颜色空间的颜色对应的色调h、饱和度s、强度i的计算公式如式所示:

对颜色进行聚类时,只需对色调分量h进行处理,而不需要对亮度i进行处理,尤其对有阴影或者光照不均匀的彩色图像特别有效。本文选用的条纹颜色都是rgb颜色模型立方体上的顶点的颜色,其中包括黑色和红色。由上面的计算公式可知,黑色和红色的色调值都是0,所以我们无法仅仅只通过色调值h进行判断。在对红色和黑色进行判断时,引入了亮度分量i,当h=0时,亮度i大于阈值th,则为红色,否则为黑色,本文选取的th=25。其他的颜色根据其对应的色调值进行判断,并将其设置为对应的投影颜色,下表为各颜色对应的色调值h的范围。

表1hsi颜色空间颜色与色调角范围对应表

步骤22:本发明选择的红色(255,0,0)、绿色(0,255,0)、黄色(255,255,0)、品红(255,0,255)、青色(0,255,255)五种颜色都是rgb彩色模型中正方体的五个顶点的颜色,每种颜色的三个通道上的值都是255或0。每种颜色对应的码字如下表所示。

表2颜色码字查找表

根据读取的颜色信息,对颜色进行识别,进而完成码字的识别。在实际的处理中,如果通道的值小于50,将其当做0处理,大于200,则按255处理。

步骤23:本发明中的条纹匹配基于两个准则:极线约束准则和debruijn序列窗口唯一性准则。极线约束准则可以保证两幅图像的行是对齐的,那么基于窗口唯一性的匹配就可以在左右图像的对应行上进行。

1)首先将左图像的中心线l1(对应的码字为1)作为目标条纹,由于编码时我们选取的是5元3级的debruijn序列,所以需要找到其右边的相邻的两条条纹,组成目标窗口序列lp1(对应的窗口序列为121);

2)将左图像的目标窗口序列作为模板在右图像的条纹中心线图的相同行上进行遍历,很快就可以找到和目标窗口序列相同的匹配窗口序列rp2;

3)左右图像对应点亚像素坐标的差值即为该点的视差;

由于获取彩色条纹图像,条纹具有空间有序性,不会因为被测物体表面的形貌变化而使条纹顺序出现混乱,所以当lp1匹配成功之后,下一个目标窗口序列lp2的匹配从条纹r2所在列的下一列进行遍历。这样缩小了目标序列的遍历范围,提高了图像的匹配效率和匹配的准确性,遍历整幅图像就得到了视差矩阵。

输入为双目相机拍摄的投影图像,输出为图像的左右相机对视差矩阵:

一种基于彩色debruijn编码双目视觉的解码方法,包括以下步骤:

步骤1:双目相机拍摄投影图像;

两个相机需要适当向内旋转一个角度(10°左右),保持两个相机水平方向上的对称,被测物体需要放置在双目相机的公共视场内;

步骤2:对获取的原图像进行预处理,运用中值滤波去除噪声;

步骤3:提取中心线;

具体步骤如下:

步骤31:运用canny算子提取条纹边缘,保存边缘坐标;

步骤32:既然已知的边缘坐标,采用上文提出的改进的几何中心法提取算法,如图3所示,就可以得到条纹的几何中心线,即粗滤中心线;

步骤33:在条纹的粗略中心位置pc处的左右两边各取m个像素,使它们之间宽度略大于条纹的宽度。在确定了光带的范围之后,还需要精确的确定条纹的边界,以提高利用梯度重心法提取的亚像素中心线的准确度。采用自适应阈值法确定灰度阈值,将背景像素与条纹像素辨别出来,;

步骤34:根据上文提到的公式(1)计算条纹像素的梯度值g(x,y);

步骤35:根据上文提到的公式(2)计算条纹像素的亚像素位置p(x,y);

步骤36:利用梯度重法提取中心线算法公式(3)计算条纹中心线的亚像素位置,其中g(x,y)是权重,p(x,y)为对应权重的梯度位置;

步骤4:识别条纹颜色的码字:

利用公式(4)将rgb图像转换到hsi颜色空间中,利用hue值判断条纹的颜色,再利用阈值对条纹颜色赋码字的值;

步骤5:条纹匹配与视差计算:

条纹匹配基于两个准则:极线约束准则和debruijn序列窗口唯一性准则。极线约束准则可以保证两幅图像的行是对齐的,那么基于窗口唯一性的匹配就可以在左右图像的对应行上进行。

步骤51:

首先将左图像的中心线l1(对应的码字为1)作为目标条纹,由于编码时我们选取的是5元3级的debruijn序列,所以需要找到其右边的相邻的两条条纹,组成目标窗口序列lp1(对应的窗口序列为121);

步骤52:

将左图像的目标窗口序列作为模板在右图像的条纹中心线图的相同行上进行遍历,很快就可以找到和目标窗口序列相同的匹配窗口序列rp2;

步骤53:

左右图像对应点亚像素坐标的差值即为该点的视差。

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