一种用于高反光表面工件的结构光三维扫描方法

文档序号:25791757发布日期:2021-07-09 11:30阅读:198来源:国知局
一种用于高反光表面工件的结构光三维扫描方法

1.本发明涉及光学三维测量方法,特别是涉及一种用于高反光表面工件的结构光三维扫描方法。


背景技术:

2.结构光三维扫描技术是一类高精度的光学三维测量技术。近年来,随着数字投影技术的不断发展,基于数字条纹投影的结构光三维扫描技术以非接触式、全场扫描、高分辨率等优势被广泛应用于工业制造、医疗、娱乐以及文物保护等领域。然而,在扫描一些表面反射率变化较大的对象时,仍然存在问题,即反射率大的区域因太亮导致相机图像饱和,而反射率小的区域则太暗导致相机不能成像。投射在这些区域的条纹图案将无法被正确解算,最终难以扫描这些区域。
3.针对这一问题,专利cn101694375a公开了一种将亮暗条纹投射与多曝光时间采集图像相结合以合成高动态范围条纹图像的方法,其能够实现金属等强反射表面三维形貌测量。但这类采用多曝光时间的方法对于未知场景,通常无法在测量初期直接确定所需的光源强度、曝光次数和每次曝光的时间,一般依赖于经验或尽可能曝光多次,具有一定的盲目性,测量效率不高。专利cn104019767a公开了一种利用灰度直方图的波峰和波谷来估算被测对象所需的曝光次数和最佳曝光时间的方法,据此对被测对象分别进行曝光,然后将不同的最佳曝光时间下拍摄的条纹图像进行融合,最终恢复被测对象的三维形貌。然而,对于一些复杂的场景,如果利用灰度直方图不能呈现出明显的波峰和波谷,则该方法将不能准确的扫描被测对象的三维形貌。


技术实现要素:

4.基于此,本发明的目的在于,提供一种用于高反光表面工件的结构光三维扫描方法,其能够根据被测对象表面反射率的分布,预测几个最优的投射亮度。该方法能够适用高反光表面工件甚至复杂的未知场景的三维扫描,无需依赖经验,减少人为干预,提高系统的智能性。
5.其通过以下技术方案实现:
6.一种用于高反光表面工件的结构光三维扫描方法,包括以下步骤:
7.s1:向被测对象投射一幅白光图案,并相应拍摄被测对象的白光图像i;
8.s2:将白光图像i中每个像素的灰度值划分为k个集合s={s1,s2,...,s
k
},计算k个集合的质心c={c1,c2,...,c
k
};
9.s3:计算每个像素的灰度值与其对应质心c的误差平方和sse;
10.s4:k值递增1,重复步骤s2

s3,直至步骤s3计算得到的误差平方和sse急剧下降并出现拐点,则拐点处的k值为最优投射亮度的数量;
11.s5:向被测对象投射一系列亮度不同的白光图案l={l1,l2,...,l
n
},并相应拍摄被测对象的白光图像i={i1,i2,...,i
n
};
12.s6:根据不同亮度的白光图案l={l1,l2,...,l
n
}和白光图像在k个质心位置的灰度值计算被测对象的表面反射率r
c
和环境光强a
c
;并根据被测对象的表面反射率r
c
和环境光强a
c
,计算相机图像平面k个质心位置的最佳投射亮度值
13.s7:系统扫描时采用s6计算得到的最佳投射亮度值相机拍摄k组不同亮度的条纹图像,将k组不同亮度的条纹图像融合成高动态条纹图像f
n
(x,y);
14.s8:对步骤s7得到的高动态条纹图像f
n
(x,y)进行解相、求解三维坐标和表面重建,最终还原被测对象的三维形貌。
15.本发明所述的一种用于高反光表面工件的结构光三维扫描方法,能够根据被测对象表面反射率的分布,预测几个最优的投射亮度,具有较好的自适应性以及通用性。
16.进一步地,所述步骤s2包括如下步骤:
17.s201:初始化k=2;
18.s202:在像素灰度值范围内选取k个灰度值作为质心c={c1,c2,...,c
k
},对应k个集合s={s1,s2,...,s
k
};
19.s203:根据以下公式计算每个像素的灰度值与k个质心的欧拉距离,并将其划分到欧拉距离最小的那个质心所属的集合;
[0020][0021]
s204:根据以下公式重新计算k个集合的质心;
[0022][0023]
s205:计算新的质心和原来的质心之间的差值;
[0024]
s206:如果新的质心和原来的质心之间的差值大于预设阈值,则重复步骤s203

s205,直至差值小于该阈值;输出此时的k个集合s={s1,s2,...,s
k
}和k个集合的质心c={c1,c2,...,c
k
}。
[0025]
进一步地,所述步骤s202中,在像素灰度值范围内选取k个灰度值作为质心的方式为随机或等间隔;k=2时,选取64和192作为质心。
[0026]
进一步地,所述步骤s3中,计算每个像素的灰度值与其对应质心c的误差平方和sse的公式为:
[0027][0028]
进一步地,所述步骤s6中,计算相机图像平面k个质心位置的反射率r
c
和环境光强a
c
的公式为:
[0029]
[0030]
其中,为白光图像在k个质心位置的灰度值,r
c
为k个质心位置的表面反射率,a
c
为k个质心位置的环境光强。
[0031]
进一步地,所述步骤s6中,所述计算相机图像平面k个质心位置的最佳投射亮度值p
c
={p1,p2,...,p
k
}的公式为:
[0032][0033]
其中,i
ideal
为像素灰度值的最大值

15,对于8位的相机即i
ideal
=240。
[0034]
进一步地,所述步骤s7中,对于系统采用4步相移算法,8位的相机,相机拍摄k组不同亮度的条纹图像后根据以下公式生成掩码图像
[0035][0036]
其中,均表示所拍摄的条纹图像在像素位置(x,y)处的灰度值;i和j都是表示k幅条纹图像的序号,j表示从k幅条纹图像选出最亮的,比如是第3幅最亮,则i=3时对应的其余i=1,2,4,..即为0;
[0037]
为最大值时,表示采用第i个亮度进行投射,所获得的条纹图像在像素位置(x,y)的灰度值是有效的,且是最大值,取得最大的信噪比;
[0038]
如果所有则表示系统即使采用最低的亮度依然导致相机饱和,此时应适当减小光圈值、曝光时间和相机增益,并重新执行步骤s1,直至存在小于255的最大值使
[0039]
进一步地,所述步骤s7中,根据以下公式将k组不同亮度的条纹图像融合成高动态条纹图像f
n
(x,y):
[0040][0041]
进一步地,所述步骤s5中,n=9。
[0042]
进一步地,白光图案l={l1,l2,...,l
n
}的亮度依次增大,分别为20,50,80,110,140,170,200,230,255。为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
[0043]
图1为本发明一实施例提供的一种用于高反光表面工件的结构光三维扫描方法的步骤图;
[0044]
图2为本发明一实施例提供的一种用于高反光表面工件的结构光三维扫描方法测试用的铝合金工件的示意图;
[0045]
图3为三维扫描系统投射亮度为128的白光图像时相机拍摄该铝合金工件得到的图像;
[0046]
图4为采用传统结构光方法扫描得到的该铝合金工件的三维模型;
[0047]
图5为采用本发明提供的一种用于高反光表面工件的结构光三维扫描方法得到的
该铝合金工件的三维模型。
具体实施方式
[0048]
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。
[0049]
应当明确,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请实施例保护的范围。
[0050]
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0051]
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
[0052]
此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0053]
如图1所示,本发明提供一种用于高反光表面工件的结构光三维扫描方法,包括以下步骤:
[0054]
s1:向被测对象投射一幅白光图案,并相应拍摄被测对象的白光图像i;
[0055]
s2:将白光图像i中每个像素的灰度值划分为k个集合s={s1,s2,...,s
k
},计算k个集合的质心c={c1,c2,...,c
k
};
[0056]
s3:计算每个像素的灰度值与其对应质心c的误差平方和sse;
[0057]
s4:k值递增1,重复步骤s2

s3,直至步骤s3计算得到的误差平方和sse急剧下降并出现拐点,则拐点处的k值为最优投射亮度的数量;
[0058]
s5:向被测对象投射一系列亮度不同的白光图案l={l1,l2,...,l
n
},并相应拍摄被测对象的白光图像i={i1,i2,...,i
n
};
[0059]
s6:根据不同亮度的白光图案l={l1,l2,...,l
n
}和白光图像在k个质心位置的灰度值计算被测对象的表面反射率r
c
和环境光强a
c
;并根据被测对象的表面反射率r
c
和环境光强a
c
,计算相机图像平面k个质心位置的最佳投射亮度值
[0060]
s7:测量系统扫描时采用s6计算得到的最佳投射亮度值相机拍摄k组不同亮度的条纹图像,将k组不同亮度的条纹图像融合成高动态条纹图像f
n
(x,y);
[0061]
s8:对步骤s7得到的高动态条纹图像f
n
(x,y)进行解相、求解三维坐标和表面重
建,最终还原被测对象的三维形貌。
[0062]
下面以一铝合金工件作为具体的扫描对象,来展示本发明提供的一种用于高反光表面工件的结构光三维扫描方法的扫描步骤和具体效果。
[0063]
如图2所示,图2为本实施例的被测对象铝合金工件的示意图。
[0064]
执行步骤s1,向该铝合金工件投射一幅投射亮度为128的白光图案,并相应拍摄该铝合金工件的白光图像i,得到图3。由图3可见,位置a区域反射率很高,而位置b区域反射率很低,传统结构光方法将无法完整重建该铝合金工件的三维模型,如图4所示。
[0065]
执行步骤s2,将白光图像i中每个像素的灰度值划分为k个集合s={s1,s2,...,s
k
},计算k个集合的质心c={c1,c2,...,c
k
}。
[0066]
具体地,计算k个集合的质心c={c1,c2,...,c
k
}包括以下子步骤:
[0067]
s201:初始化k=2;
[0068]
s202:在像素灰度值范围内选取k个灰度值作为质心c={c1,c2,...,c
k
},对应k个集合s={s1,s2,...,s
k
};
[0069]
具体地,步骤s202中,在像素灰度值范围内选取k个灰度值作为质心的方式为随机或等间隔;k=2时,优选64和192作为质心。
[0070]
s203:根据以下公式计算每个像素的灰度值与k个质心的欧拉距离,并将其划分到欧拉距离最小的那个质心所属的集合;
[0071][0072]
欧拉距离是用来衡量数据样本的冗余度的指标,欧拉距离越小,代表数据间的相关性越强。
[0073]
s204:根据以下公式重新计算k个集合的质心;
[0074][0075]
s205:计算新的质心和原来的质心之间的差值;
[0076]
s206:如果新的质心和原来的质心之间的差值大于预设阈值,则重复步骤s203

s205,直至差值小于该阈值;输出此时的k个集合s={s1,s2,...,s
k
}和k个集合的质心c={c1,c2,...,c
k
}。
[0077]
重复步骤s203

s205用以寻找相关性最强的像素集合。在一个优选的实施例中,考虑到减少迭代次数以提高扫描效率,预设阈值为5。
[0078]
执行步骤s3,计算每个像素的灰度值与其对应质心c的误差平方和sse。
[0079]
具体地,计算每个像素的灰度值与其对应质心c的误差平方和sse的公式为:
[0080][0081]
执行步骤s4,将k值递增1,重复步骤s2

s3,直至步骤s3计算得到的误差平方和sse急剧下降并出现拐点,则拐点处的k值为最优投射亮度的数量。
[0082]
执行步骤s5,优选n=9,向该铝合金工件投射一系列共9组亮度不同的白光图案l={l1,l2,...,l9},白光图案的亮度分别为20、50、80、110、140、170、200、230、255,并相应拍摄被测对象的白光图像i={i1,i2,...,i9}。
[0083]
执行步骤s6,根据不同亮度的白光图案l={l1,l2,...,l9}和白光图像在k个质心位置的灰度值计算被测对象的表面反射率r
c
和环境光强a
c
,具体计算公式为:
[0084][0085]
根据被测对象的表面反射率r
c
和环境光强a
c
,计算相机图像平面k个质心位置的最佳投射亮度值p
c
={p1,p2,...,p
k
},具体计算公式为:
[0086][0087]
其中,考虑到预留一定的余量以防相机的噪声导致饱和,理想灰度值i
ideal
优选为像素灰度值的最大值

15,对于8位的相机即i
ideal
=240。
[0088]
执行步骤s7,根据步骤s6计算得到的最佳投射亮度值,向该铝合金工件投射k组条纹图案。在一个优选的实施例中,系统采用4步相移算法,8位的相机。相机拍摄k组不同亮度的条纹图像后生成掩码图像具体公式为:
[0089][0090]
其中,均表示所拍摄的条纹图像在像素位置(x,y)处的灰度值。为最大值时,表示采用第i个亮度进行投射,所获得的条纹图像在像素位置(x,y)的灰度值是有效的,且是最大值,取得最大的信噪比。如果所有则表示系统即使采用最低的亮度依然导致相机饱和,此时应适当减小光圈值、曝光时间和相机增益,并从步骤s1开始重新执行,直至存在小于255的最大值使
[0091]
根据掩码图像计算高动态条纹图像f
n
(x,y),具体公式为:
[0092][0093]
执行步骤s8,对步骤s7得到的高动态条纹图像f
n
(x,y)进行解相、求解三维坐标和表面重建,最终还原被测对象的三维形貌。
[0094]
如图4和图5所示,图4是采用传统结构光方法扫描得到的该铝合金工件的三维模型,由图可见由于位置a区域的反射率很高,导致相机饱和,重建后该区域出现了大面积的孔洞。图5是采用本发明提供的一种用于高反光表面工件的结构光三维扫描方法得到的三维模型,与图4比较可见,反射率很高的a区域和反射率很低的b区域均得到了较好地重建。
[0095]
本发明提供的一种用于高反光表面工件的结构光三维扫描方法,根据被测对象表
面反射率的分布,预测若干个最优的投射亮度;在扫描时系统采用该若干个最优的亮度投射若干组条纹图案,相机拍摄后,再将该若干组不同亮度的条纹图像进行融合,并解相获得绝对相位,最后利用三角法恢复被测对象的三维形貌。
[0096]
本发明与现有技术相比,有以下显著优点:
[0097]
自适应:能够根据被测对象表面反射率的分布,预测若干个最优的投射亮度。该方法适用于未知场景,无需依赖经验,减少人为干预,提高系统的智能。
[0098]
成本低:本发明的扫描方法只需调节投射亮度,无需增加额外的硬件,硬件系统简单,成本低。
[0099]
通用性:相比现有的利用灰度直方图的波峰、波谷来预测最佳曝光次数和曝光时间的方法,本发明能够适用高反光表面工件甚至更复杂场景的三维扫描,具有较高的实用价值。
[0100]
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1