三维建模设备、系统、方法和存储介质与流程

文档序号:17018679发布日期:2019-03-02 02:35阅读:184来源:国知局
三维建模设备、系统、方法和存储介质与流程

本发明涉及图像处理技术领域,尤其涉及一种三维建模设备、系统、方法和存储介质。



背景技术:

随着网络技术的快速发展,图像处理技术随之迅速发展。由于三维图像较二维图像更加立体直观,三维图像逐渐流行起来。目前,商家可以通过三维建模的方法建立待售商品的三维图像,并将这些三维图像发布在网站页面中。三维图像可以通过三维建模生成。结构光编解码技术是一种重要的三维建模手段。其中,结构光编解码技术需要使用结构光编码图。结构光编码图是一种尺寸确定的图像,该图像每个像素坐标的像素值都是像素坐标本身的一种编码或者序列。三维建模可以包括以下步骤:

1、投影设备将若干张不同频率的结构光编码图投射至对象物体上;

2、投影设备每投射一张结构光编码图至对象物体,拍摄设备就对投射有结构光编码图的对象物体拍摄一张照片,从而获得若干张与不同频率对应的照片;

3、三维建模设备分别对上述若干张照片进行解码处理,得若干张解码图;

4、三维建模设备根据若干张解码图可以得到对象物体的三维坐标;

5、三维建模设备基于所得到的三维坐标,对象物体进行三维建模。

然而,申请人经研究发现:现有的三维建模方案为了提高三维建模精度,需要获取频率由低到高的若干张的结构光编码图,经各自解码后组合起来得到最终的整体解码结果。然而结构光编码图的频率越低,便越会在投出的结构光编码图里出现大块的发光区域,导致每个像素坐标的光照不再独立。对于表面具有镜面反射效果的物体,发光区域格外明显,从而导致三维建模的精度较低。

如何提高三维建模的精度,成为业界亟待解决的技术问题。



技术实现要素:

为了解决三维建模的精度低的问题,本发明实施例提供了一种三维建模设备、系统、方法和存储介质。

第一方面,提供了一种三维建模设备。该设备包括:频率确定组件、图像解码组件、结果更新组件和三维建模组件;

频率确定组件和结果更新组件分别与图像解码组件耦合,结果更新组件和三维建模组件耦合,其中:

频率确定组件,用于确定结构光编码图的载波频率fmax、最低频率fmin、起始频率f1和更新频率f2,其中,f1=fmax+fmin,f2=fmax+fi,fmin<fi<fmax;

图像解码组件,用于分别使用起始频率f1和载波频率fmax的结构光编码图,投射至建模对象,获得第一图像;

结果更新组件,用于使用更新频率f2的结构光编码图投射至建模对象,获得更新图像,根据更新图像和第一图像获得第二图像;

三维建模组件,用于计算第一图像与第二图像的像素距离差值,当像素距离差值低于预设阈值,则基于第二图像对建模对象进行三维建模。

第二方面,提供了一种三维建模系统。该系统包括:投影设备、拍摄设备和三维建模设备,其中:

三维建模设备,用于确定结构光编码图的载波频率fmax、最低频率fmin、起始频率f1和更新频率f2,其中,f1=fmax+fmin,f2=fmax+fi,fmin<fi<fmax;

投影设备,用于向建模对象分别投射起始频率f1、载波频率fmax和更新频率f2的结构光编码图;

拍摄设备,用于对已投射结构光编码图的建模对象进行拍摄,得到第一拍摄图、第二拍摄图和第三拍摄图得;

三维建模设备,基于第一拍摄图和第二拍摄图,获得第一图像;

基于第三拍摄图,获得更新图像,根据更新图像和第一图像获得第二图像;

计算第一图像与第二图像的像素距离差值,当像素距离差值低于预设阈值,则基于第二图像对建模对象进行三维建模。

第三方面,提供了一种三维建模方法。该方法包括:

三维建模设备确定结构光编码图的载波频率fmax、最低频率fmin、起始频率f1和更新频率f2,其中,f1=fmax+fmin,f2=fmax+fi,fmin<fi<fmax;

三维建模设备分别使用起始频率f1和载波频率fmax的结构光编码图,投射至建模对象,获得第一图像;

三维建模设备使用更新频率f2的结构光编码图投射至建模对象,获得更新图像,根据更新图像和第一图像获得第二图像;

三维建模设备计算第一图像与第二图像的像素距离差值,当像素距离差值低于预设阈值,则基于第二图像对建模对象进行三维建模。

第四方面,提供了一种三维建模设备。该设备包括:

存储器,用于存放程序;

处理器,用于执行所述存储器存储的程序,所述程序使得所述处理器执行上述第三方面所述的方法。

第五方面,提供了一种计算机可读存储介质。该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第三方面所述的方法。

第六方面,提供了一种包含指令的计算机程序产品。当该产品在计算机上运行时,使得计算机执行上述第三方面所述的方法。

第七方面,提供了一种计算机程序。当该计算机程序在计算机上运行时,使得计算机执行上述第三方面所述的方法。

一方面,上述实施例可以通过确定结构光编码图的载波频率fmax、最低频率fmin、起始频率f1和更新频率f2,并将f1的数值设计成fmax与fmin的和,将f2的数值设计成fmax与fi的和,fi取介于fmin与fmax之间的任意值,可以确保起始频率f1和更新频率f2是相对较高的频率。利用该高频可以解决由于结构光编码频率越低越会在投射设备投射出的结构光编码图例出现大块的发光区域,导致结构光编码图中的每个像素坐标不再独立,进而导致三维建模的精度较低的问题,提高了三维建模的精度。

另一方面,在每一个三维建模的循环过程中,上述实施例可以通过逐步增加fi的数值,相应增加更新频率f2的数值,直至像素距离差值低于阈值为止。由此,可以通过控制fi的数值的大小,来控制循环的次数。如果循环的次数越多,则三维建模过程中就有越多的解码值,例如二次解码值,在求取作为平均值的最终图像结果时,就可以有更多的机会滤除各种误差,使得三维建模的结果更加准确。

又一方面,上述实施例可以通过选取相对高频的结构光编码图,排除若干无效的低频的结构光编码图,不仅可以减少三维建模的时间,而且可以提高三维建模的精度。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例的三维建模系统的结构示意图;

图2是本发明一实施例的三维建模设备的结构示意图;

图3是图2中的图像解码组件的一个实施例的结构示意图;

图4是图2中的结果更新组件的一个实施例的结构示意图;

图5是本发明一实施例的三维建模系统三维建模的流程示意图;

图6是本发明一实施例的三维建模方法的流程示意图;

图7是本发明一实施例的三维建模设备的框架示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

图1是本发明一实施例的三维建模系统的结构示意图。

本发明实施例可以应用于确定物体对象的三维尺寸的场景中。在一些实施例中,三维建模系统可以应用于在线产品展示。例如,商家利用三维建模系统建立待售商品(例如,机器零部件、手表和手提包等)的三维图像,并将这些三维图像发布在销售网站页面的场景中。在另一些实施例中,三维建模系统可以应用于影视制作中建立三维图像的场景中。当建模对象是表面具有镜面反射效果的物体(如陶瓷、塑料、金属等镜面反射程度较高的物体)时,不仅可以大幅度提高三维建模的图像的精度,而且可以提高三维建模的速度。

下面以形状是梯形的不锈钢块为建模对象,以黑白条纹为结构光编码图为例,说明三维建模系统的结构关系。本领域的技术人员可以理解,本发明实施例同样适用于上述的其它应用场景。

如图1所示,该系统可以包括:投影设备100、拍摄设备200和三维建模设备300。投影设备100和拍摄设备200可以通过网络500与三维建模设备300进行信息交互。

投影设备100可以向建模对象400投射指定频率的结构光编码图。其中,投影设备100可以是投影仪、投影机等设备,其可以投射出不同频率的结构光编码图。投影设备100的分辨率可以是w×h。

结构光编码图可以是黑白直线条纹图,也可以是黑白弯曲波浪图等。结构光编码图中的每个像素坐标处的一组亮度值可以为像素坐标值的一种编码,该编码可以用数值范围在0至255的二进制编码表示。结构光编码图可以具有不同的频率。例如,当频率较小时,结构光编码图的黑白直条纹图显得细密;当频率较大时,结构光编码图黑白直条纹图显得稀疏。

指定频率的结构光编码图可以通过对结构光编码图的模板设置得到。例如,将结构光编码图的模板中的频率值设置数值为f,可以生成f频率的结构光编码图。

对投射了指定频率的结构光编码图的建模对象400进行拍摄可以得到指定频率所对应的拍摄图。其中,拍摄图中每一行或者每一列的像素值和像素坐标的函数关系为正弦函数,指定频率为该正弦函数的频率。在本实施例中,指定频率可以根据大量的实验数据分析比较得出,具体数值可以由三维建模设备300确定。

在本实施例中,三维建模设备300可以确定结构光编码图的载波频率fmax、最低频率fmin、起始频率f1和更新频率f2。其中,f1=fmax+fmin,fmin<fi<fmax,i可以为自然数1、2、3…等。fmin为结构光编码图的最低频率。fmax是结构光编码图的载波频率,其数值相对较高。由于fmax相对较高,因此f1和f2的数值会更高。

上述设计是因为:表面具有镜面反射效果的物体,对常规方式投射于其表面的光线容易产生反射。因此,如果采用常规的方式,利用投影设备将常规频率(如中频或者低频)的二维码光结构编码图投射在这类表面具有镜面反射效果的物体上,那么,经过这类物体表面反射,会在投射出的光结构编码图里出现大块的发光区域,这会导致光结构编码图中的每个像素坐标的光照不再独立,进而降低三维建模的精度。因为结构光编码图具有频率越高,越不容易在物体表面形成反射的属性。所以本实施例利用上述属性,将指定高频的结构光编码图投射在这类物体上,可以减少物体表面反射,使得投射出的结构光编码图不会出现大块的发光区域,使得每个像素坐标的光照相对独立,进而提高了三维成像的精度。

拍摄设备200可以用于对已投射指定频率的结构光编码图的建模对象400进行拍摄,并获取指定频率的拍摄图。拍摄设备200可以是手机、电脑、摄像机等具有摄像头的电子设备。

例如,拍摄设备200对已投射起始频率f1的结构光编码图的建模对象400进行拍摄,可以获取f1频率对应的第一拍摄图。同理,拍摄设备200对已投射载波频率fmax的结构光编码图的建模对象400进行拍摄,可以获取fmax频率对应的第二拍摄图。拍摄设备200对已投射更新频率f2的结构光编码图的建模对象400进行拍摄,可以获取f2频率对应的第三拍摄图。

三维建模设备300可以基于第三拍摄图,获得更新图像,根据更新图像和第一图像获得第二图像;计算第一图像与第二图像的像素距离差值,当像素距离差值低于预设阈值,则基于第二图像对建模对象进行三维建模。该部分内容还将在下文进一步描述。

网络500可以用以在各种电子设备之间提供通信链路的介质。具体的,网络500可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等。

该系统对建模对象400进行三维建模主要可以分为如下三个步骤:

s1,利用投影设备100向建模对象400投射结构光编码图。

在每个像素坐标的光照彼此独立的前提下,即在结构光编码图的频率不能过低的前提下,结构光编码图中的每个像素坐标处的一组亮度值为像素坐标值的一种编码。

s2,利用拍摄设备200对已投射结构光编码图的建模对象400进行多次拍摄,获得多张拍摄图。每张拍摄图中每个像素坐标处的一组亮度值经解码计算后,便能够得出该像素对应在结构光编码图上的像素坐标值,从而获得一组坐标对。

该组坐标对是建模对象400的相同位置点(例如a位置点)分别在拍摄图中的像素坐标值以及在结构光编码图中的像素坐标值。由于建模对象400是立体的,其有一定的厚度,因此a位置点对应的该组坐标对的数值不同。

s3,利用三维建模设备300根据该组坐标对计算出a位置点的三维坐标。同理,可以计算出其它位置点的三维坐标,并生成建模对象400的三维模型。

应该理解,图1中的设备的数目仅仅是示意性的。根据实现需要,该系统可以灵活设置的投影设备100、拍摄设备200和三维建模设备300的数量。另外,也可以根据需要将这些设备进行集成处理,例如,为三维建模设备300配置摄像头从而取代拍摄设备200。又例如,将投影设备100的投射组件集成在三维建模设备300等。

下面各实施例均可以应用本实施例的系统对建模对象400三维建模。为了描述简洁,各个实施例可以相互参考和引用。

图2是本发明一实施例的三维建模设备的结构示意图。

为了解决结构光编码图的频率过低所导致的三维建模精度较低的问题,三维建模设备的实现方式如下:

参考图1和图2,三维建模设备300可以包括:频率确定组件310、图像解码组件320、结果更新组件330和三维建模组件340。其中,频率确定组件310和结果更新组件330可以分别与图像解码组件320耦合,结果更新组件330可以和三维建模组件340耦合。

其中:频率确定组件310可以用于确定结构光编码图的载波频率fmax、最低频率fmin、起始频率f1和更新频率f2,其中,f1=fmax+fmin,f2=fmax+fi,fmin<fi<fmax。i可以取1、2、3等自然数。该数值决定了三维建模的循环操作次数。图像解码组件320可以用于分别使用起始频率f1和载波频率fmax的结构光编码图,投射至建模对象,获得第一图像。结果更新组件330可以用于使用更新频率f2的结构光编码图投射至建模对象,获得更新图像,根据更新图像和第一图像获得第二图像。三维建模组件340可以用于计算第一图像与第二图像的像素距离差值,当像素距离差值低于预设阈值,则基于第二图像对建模对象进行三维建模。

在一些实施例中,fmin的数值可以是:从投影仪(投射设备)投射出去的图像的最长边的2的整次幂。在其它的实施例中,fmin的数值可以是:从投影仪投射出去的图像的最长边的3或4的整次幂。

在一种实现方式中,fmin可以基于投影设备的分辨率确定其数值。例如,在一个实践环境下,申请人使用了如下计算方式:

fmin=1/pow(2,floor(log(max(w,h))/log2))(1)

在公式(1)中,pow是取幂函数,floor是取整函数,log是取对数函数,max是取最大值函数,w和h是投影设备的分辨率。

本领域技术人员可以了解到,上述计算方式是在某个现场环境下的工业实现特例。根据其他现场环境,可以使用其他计算方式来得到fmin以实现以上所述的功能。

在一个实施例中,fmax可以为1/2、1/4、1/8、1/16、1/32、1/64等。较佳地,可以将fmax取值为1/8和1/16。当fmax取值为1/16时,三维建模的精度会达到最高值。

在一个实施例中,fmin的数值可以根据投影设备的分辨率确定。当w×h=1024×768时,根据上述公式(1),fmin可以是1/1024。

在一些实施例中,预设阈值可以是0.005、0.010、0.015、0.020。较佳地,可以将预设阈值取值为0.010。

在上述实施例中,三维建模的精度会达到最高值。

在一些实施例中,三维建模组件340还可以用于:当像素距离差值大于或者等于预设阈值,则向结果更新组件发送如下指令:通过变更fi来变更更新频率f2,基于变更后的更新频率f2得到变更的第二图像,从而进入新的循环过程。

在一些实施例中,三维建模组件340可以包括:第一获取器、第二获取器、减法器和均值器。第一获取器和减法器可以分别和第二获取器耦合,减法器可以和均值器耦合。

其中:第一获取器可以用于获取第一图像的各个像素点的像素值;第二获取器可以用于获取第二图像的各个像素点的像素值;减法器可以用于将第一图像的各个像素点的像素值分别对应减去第二图像的各个像素点的像素值,得到各个距离差值;均值器可以用于将各个距离值做均值计算,得到第一图像与第二图像的像素距离差值。

上述可知:一方面,该设备可以通过确定结构光编码图的载波频率fmax、最低频率fmin、起始频率f1和更新频率f2,并将f1的数值设计成fmax与fmin的和,将f2的数值设计成fmax与fi的和,fi取介于fmin与fmax之间的任意值,可以确保起始频率f1和更新频率f2是相对较高的频率。利用该高频可以解决由于结构光编码频率越低越会在投射设备投射出的结构光编码图例出现大块的发光区域,导致结构光编码图中的每个像素坐标不再独立,进而导致三维建模的精度较低的问题,提高了三维建模的精度。

另一方面,在每一个建模的循环过程中,该设备可以通过逐步增加fi的数值,相应增加更新频率f2的数值,直至像素距离差值低于阈值为止。由此,可以通过控制fi的数值的大小,来控制循环的次数。如果循环的次数越多,则建模过程中就有越多的解码值,例如二次解码值,在求取作为平均值的最终解包结果时,就可以有更多的机会滤除各种误差,使得三维建模的结果更加准确。

又一方面,该设备可以通过选取相对高频的结构光编码图,排除若干无效的低频的结构光编码图,不仅可以减少三维建模的时间,而且可以提高三维建模的精度。

图3是图2中的图像解码组件的一个实施例的结构示意图。

如图3所示,图像解码组件320可以包括:第一解码器321、第二解码器322、第一减法器323和第一解包器324。其中,第一解码器321和第一减法器323可以分别与第二解码器322耦合。第一减法器323还可以和第一解包器324耦合。

其中:第一解码器321可以用于使用起始频率f1的结构光编码图,投射至建模对象,得到第一拍摄图,解码第一拍摄图得到第一解码图。第二解码器322可以用于使用载波频率fmax的结构光编码图,投射至建模对象,得到第二拍摄图,解码第二拍摄图得到第二解码图。第一减法器323可以用于将第一解码图减去第二解码图得到第一解码差值图。第一解包器324可以用于基于第一解码差值图、第一解码图、第二解码图、fmin、f1、fmax,得到第一图像。该部分内容在下文还将继续描述。

在一些实施例中,第一解包器324可以包括:排队元件、第一加和元件、第二加和元件和第一均值元件。其中,排队元件和第二加和元件可以分别与第一加和元件耦合,第二加和元件可以与第一均值元件耦合。其中,排队元件可以用于基于最低频率fmin、载波频率fmax、起始频率f1由小到大的顺序,将最低频率fmin对应的第一解码差值图、载波频率fmax对应的第二解码图、起始频率f1对应的第一解码图进行排列;第一加和元件可以用于保持第一解码差值图不变,将第二解码图和第一解码图进行加和操作,得到第一家和解码图;第二加和元件可以用于保持第一解码图不变,将第一解码差值图和第二解码图进行加和操作,得到第二加和解码图;均值元件可以用于对第一解码差值图、第一解码图、第二解码图、第一家和解码图、第二加和解码图进行求均值操作,得到第一图像。

在一些实施例中,将第二解码图和第一解码图进行加和操作的实现方式可以是:将第二解码图的各个像素值先除以频率fmax,然后取整再乘以频率f1,然后与第一解码图的各个像素值相加。在其它的实施例中,还可以考虑将第二解码图的各个像素值乘以一个其他系数再与第一解码图的各个像素值相加。

图4是图2中的结果更新组件的一个实施例的结构示意图。

如图4所示,结果更新组件330可以包括:第三解码器331、第二减法器332和第二解包器333。其中,第三解码器331和第二解包器333可以分别与第二减法器332耦合。

其中:第三解码器331可以用于使用更新频率f2的结构光编码图,投射至建模对象,得到第三拍摄图,解码第三拍摄图得到第三解码图。第二减法器332可以用于将第三解码图减去第二解码图得到第二解码差值图。第二解包器333可以用于基于第一解码差值图、第二解码差值图、第一解码图、第二解码图、第三解码图、fmin、fi、f1、fmax、f2,得到第二图像。该部分内容在下文还将继续描述。

在上述各个实施例中,各个组件、器件可以全部或部分地通过软件、硬件或者其任意组合的方式来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令,当其在计算机上运行时,使得计算机执行上述各个实施例中描述的方法。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线,例如同轴电缆、光纤、数字用户线(dsl)或无线,例如红外、无线、微波等方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质、光介质、或者半导体介质等。磁性介质例如可以是软盘、硬盘、磁带。光介质例如可以是dvd。半导体介质例如可以是固态硬盘solidstatedisk(ssd)等。

图5是本发明一实施例的三维建模系统三维建模的流程示意图。

参考图5,本实施例的应用场景是:商家a采用黑白条纹样式的结构光编码图,由三维建模系统对不锈钢块三维建模。该系统的实现方式可以包括以下步骤:

s510,确定结构光编码图的频率。

该系统确定结构光编码图的载波频率fmax、最低频率fmin、起始频率f1和更新频率f2。

在本实施例中,载波频率fmax可以为1/16,最低频率fmin可以为1/1024,起始频率f1可以为65/1024。其中,f1=fmax+fmin,f2=fmax+fi,fmin<fi<fmax。i可以为1、2、3等自然数。fi可以取上述范围内的任意值,并从小至大逐步变化,随着fi的变化,f2也随之变化。在一个循环过程中,fi可以取一个值。在第一个更新迭代的过程中,可以将fi设为2/1024,那么,更新频率f2可以为66/1024。

在本文中,频率的单位为赫兹,为了描述简洁,将该单位省略处理。

s520,获得第一图像。

该步骤可以分别以下子步骤:

1)首先,将结构光编码图的频率调为65/1024(即f1,f1=fmax+fmin=1/16+1/1024)。然后,投影设备向不锈钢块依次投射n+1次f1频率的结构光编码图,分别为:pmin_0、pmin_1…pmin_n。

其中n可以取3~6间的整数。该n的取值不会增加太多的计算量。如此设计,可以在不浪费计算开销的情况下,可以保证基于同一频率能够得到足够多的拍摄图,进而可以提高后期的三维建模精度。

2)投影设备每投射一次机构光编码图,摄像机依次对投射了该频率的结构光编码图的不锈钢块进行拍摄,并获取n+1张拍摄图,分别为:imin_0、imin_1…imin_n。

3)将结构光编码图频率调为1/16(即fmax)后,投影设备向不锈钢块依次投射n+1次fmax频率的结构光编码图,分别为:pmax_0、pmax_1…pmax_n。

4)摄像机依次对pmax_0、pmax_1…pmax_n的结构光编码图下的不锈钢块进行拍摄,并获取n+1张拍摄图,分别为:imax_0、imax_1…imax_n。

5)该系统对imin_0、imin_1…imin_n解码,得到对应于频率65/1024(f1)的解码图dmin,解码图中的每个像素值为对应像素坐标的解码结果。

6)该系统对imax_0、imax_1…imax_n解码,得到对应于频率1/16(fmax)的解码图dmax。

7)该系统将两解码图(dmax和dmin)相减,可得对应于1/1024(fmin)的解码图dmin’。

上述解码可以是:对基于指定频率的结构光解码图得到的拍摄图,计算该拍摄图中每个像素坐标上结构光编码图所编的编码的过程。

在一些实施例中,可以采用相移结构光解码方式进行解码。

在一些实施例中,经过解码后得到的解码图可以包括若干像素点,例如1000个像素点。每个像素点可以用像素值表示。该像素值可以是0-255之间的值,其也可以用二维码表示。

在一些实施例中,将两解码图相减,可以是将两解码图中的各个像素值直接进行相减,可以得到相减后的解码图;也可以是,对一个解码图中的各个像素值乘以某个系数后,再去减另一个解码图中的各个像素值。相减后的解码图也可以有1000个像素点。相减后的解码图的各个像素点的数值也可以是0-255之间的值。

8)该系统根据dmin’、dmin、dmax,按照其分别对应的频率1/16、65/1024和1/1024,可以得到第一图像。

该第一图像与解码图类似,它也可以包括若干像素点,每个像素点可以用像素值表示。该像素值也可以是0-255之间的值。但第一图像与解码图也存在区别,第一解码图是基于多个解码图进行计算得到的。假设多个解码图是基于多个不同频率(如f1…fn,其中,f1>f2>…>fn)的结构光编码图得到的解码图(如d1…dn)。

在一些实施例中,将所有的第一解码图和第二解码图混合在一起,并按照其各自对应的频率进行排序。排序可以基于f1>...>fn的顺序进行。然后对这些解码图进行两轮更新工作。基于上述多个解码图,迭代地按照如下公式进行计算,可以得到第一图像:

dn’=dn(2)

dk-1’=dk-1+[dk’*fk-1]/fk-1(3)

d1”=d1’(4)

dk”=dk+[d1’/f1]*fk(5)

avg({d1”…dn”})(6)

在上述公式(2)中,dn可以是频率为fn的结构光编码图的解码结果,dn’可以视为一个整合了所有频率(f1…fn)的信息的解码结果。第一轮更新,将最小频率对应的解码图保持不变。

在上述公式(3)中,[]表示取整函数,1<k<n。从第k-1个频率开始迭代计算,对于频率fk-1,取其原始解码图dk-1,和频率fk当前更新后的解码图dk’进行一个加和操作而进行第一轮更新。

在上述公式(4)中,第一轮更新结束后,开始第二轮更新。将最高的频率f1对应的解码图保持不变。

在上述公式(5)中,对于每个频率fk,取最大频率f1当前的解码图d1’,和频率fk对应的原始解码图dk进行一个加和操作。

在上述公式(6)中,求取平均值,并将该平均值作为第一图像。

在一些实施例中,上述公式(6)还可以用加权平均、中值等方法替换。

s530,获得第二图像。

参考上述获得第一图像的方法,该步骤可以分别以下子步骤:

1)将结构光编码图频率调为66/1024(f2=fmax+fi)后,向不锈钢块400依次投射n+1次该频率的结构光编码图,分别为:pi_0、pi_1…pi_n。

2)摄像机200依次对pi_0、pi_1…pi_n的结构光编码图下的不锈钢块400进行拍摄,并获取n+1张图像,分别为:ii_0、ii_1…ii_n。

3)对ii_0、ii_1…ii_n对应的图像解码,得到对应于频率66/1024(f2)解码图di。

4)将di和解码图d_last相减,得到对应于频率2/1024(fi)的解码图di’。

5)根据所有的频率:1/1024(fmin)、1/16(fmax)65/1024(f1)、66/1024(f2)…和解码图dmin、dmax、dmin’、di、di’…进行计算,得到第二图像。

s540,判断第一图像与第二图像的像素距离差值是否低于阈值。

上述可知,因为第一图像与第二图像中均有对应的若干像素,这些像素均有0-255之间的数值。将第一图像的各个像素值减去第二图像的各个像素值,可以得到各个像素的距离差值。将各个像素的距离差值求平均,可以得到第一图像与第二图像的像素距离差值。

另外,将像素距离差值与阈值(如0.01)比较,可以判断像素距离差值是否低于阈值。

s550,当像素距离差值低于阈值时,则基于第二图像对建模对象进行三维建模,输出三维图像,该循环结束。

当像素距离差值大于或者等于阈值时,则跳转至s530执行下一个循环。即当像素距离差值大于或者等于阈值时,进入第二个循环,通过变更fi来变更该更新频率f2,基于变更后的更新频率f2得到变更的第二图像,基于变更的第二图像得到变更的像素距离差值。判断变更的像素距离差值是否低于预设阈值,当变更的像素距离差值低于预设阈值时,不再继续循环,否则将进入第三个循环。

图6是本发明一实施例的三维建模方法的流程示意图。

如图6所示,该方法可以包括以下步骤:

s610,三维建模设备确定结构光编码图的载波频率fmax、最低频率fmin、起始频率f1和更新频率f2。

其中,f1=fmax+fmin,f2=fmax+fi,fmin<fi<fmax。

s620,三维建模设备分别使用起始频率f1和载波频率fmax的结构光编码图,投射至建模对象,获得第一图像。

s630,三维建模设备使用更新频率f2的结构光编码图投射至建模对象,获得更新图像,根据更新图像和第一图像获得第二图像。

s640,三维建模设备计算第一图像与第二图像的像素距离差值,当像素距离差值低于预设阈值,则基于第二图像对建模对象进行三维建模。

在一些实施例中,三维建模设备计算第一图像与第二图像的像素距离差值的实现方式可以包括:

三维建模设备获取第一图像的各个像素点的像素值;三维建模设备获取第二图像的各个像素点的像素值;

三维建模设备将第一图像的各个像素点的像素值分别对应减去第二图像的各个像素点的像素值,得到各个距离差值;

三维建模设备将各个距离值做均值计算,得到第一图像与第二图像的像素距离差值。

在一些实施例中,当像素距离差值大于或者等于预设阈值,三维建模设备则通过变更fi来变更更新频率f2,基于变更后的更新频率f2得到变更的第二图像,基于变更的第二图像得到变更的像素距离差值,当变更的像素距离差值低于预设阈值,对建模对象进行三维建模。

在一些实施例中,三维建模设备分别使用起始频率f1和载波频率fmax的结构光编码图,投射至建模对象,获得第一图像(即s620)可以包括:

s621,三维建模设备使用起始频率f1的结构光编码图,投射至建模对象,得到第一拍摄图,解码第一拍摄图得到第一解码图;

s622,三维建模设备使用载波频率fmax的结构光编码图,投射至建模对象,得到第二拍摄图,解码第二拍摄图得到第二解码图;

s623,三维建模设备将第一解码图减去第二解码图得到第一解码差值图;

s624,三维建模设备基于第一解码差值图、第一解码图、第二解码图、fmin、f1、fmax,得到第一图像。

在一些实施例中,三维建模设备基于第一解码差值图、第一解码图、第二解码图、最低频率fmin、起始频率f1、载波频率fmax,得到第一图像,包括:

三维建模设备基于最低频率fmin、载波频率fmax、起始频率f1由小到大的顺序,将最低频率fmin对应的第一解码差值图、载波频率fmax对应的第二解码图、起始频率f1对应的第一解码图进行排列;

三维建模设备保持第一解码差值图不变,将第二解码图和第一解码图进行加和操作,得到第一家和解码图;

三维建模设备保持第一解码图不变,将第一解码差值图和第二解码图进行加和操作,得到第二加和解码图;

三维建模设备对第一解码差值图、第一解码图、第二解码图、第一家和解码图、第二加和解码图进行求均值操作,得到第一图像。在一些实施例中,将第二解码图和第一解码图进行加和操作的实现方式可以是:将第二解码图的各个像素值先除以频率fmax,然后取整再乘以频率f1,然后与第一解码图的各个像素值相加。在其它的实施例中,还可以考虑将第二解码图的各个像素值乘以一个其他系数再与第一解码图的各个像素值相加。

在一些实施例中,三维建模设备使用更新频率f2的结构光编码图投射至建模对象,获得更新图像,根据更新图像和第一图像获得第二图像(即s630)可以包括:

s631,三维建模设备使用更新频率f2的结构光编码图,投射至建模对象,得到第三拍摄图,解码第三拍摄图得到第三解码图;

s632,三维建模设备将第三解码图减去第二解码图得到第二解码差值图;

s633,三维建模设备基于第一解码差值图、第二解码差值图、第一解码图、第二解码图、第三解码图、fmin、fi、f1、fmax、f2,得到第二图像。

需要说明的是,在不冲突的情况下,本领域的技术人员可以按实际需要将上述的操作步骤的顺序进行灵活调整,或者将上述步骤进行灵活组合等操作。为了简明,不再赘述各种实现方式。另外,各实施例的内容可以相互参考引用。

另外,上述各实施例的系统、设备可作为上述各实施例的方法中的执行主体,可以实现各个方法中的相应流程,实现相同的技术效果,为了简洁,此方面内容不再赘述。

图7是本发明一实施例的三维建模设备的框架示意图。

如图7所示,该框架可以包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行图5和图6实施例所做的各种操作。在ram703中,还存储有系统架构操作所需的各种程序和数据。cpu701、rom702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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