CN111292421B - 复合编码的三维重建方法、装置、计算机设备和存储介质 - Google Patents
复合编码的三维重建方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN111292421B CN111292421B CN202010076338.0A CN202010076338A CN111292421B CN 111292421 B CN111292421 B CN 111292421B CN 202010076338 A CN202010076338 A CN 202010076338A CN 111292421 B CN111292421 B CN 111292421B
- Authority
- CN
- China
- Prior art keywords
- phase
- sequence
- sub
- target
- gray value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
Abstract
本申请涉及一种复合编码的三维重建方法、装置、计算机设备和存储介质。所述方法包括:获取目标物体对应的第一目标散斑图以及第二目标散斑图;获取第一相移图对应的第一子相位序列以及第二相移图对应的第二子相位序列;根据各个第一子相位序列分别对应的第一采样点序列对第一目标散斑图进行采样处理,得到第一灰度值序列集合;根据各个第二子相位序列分别对应的第二采样点序列对第二目标散斑图进行采样处理,得到第二灰度值序列集合;根据第一灰度值序列集合以及第二灰度值序列集合进行相位级次匹配,在级次匹配的折叠相位内进行同名点定位,根据同名点对目标物体进行三维重建。采用本方法能够提高三维重建的效率以及准确度。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种复合编码的三维重建方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,出现了三维重建(3D Reconstruction)技术。三维重建是指对三维物体建立适合计算机表示和处理的数学模型,是在计算机环境下对其进行处理、操作和分析其性质的基础,也是在计算机中建立表达客观世界的虚拟现实的关键技术。
目前,三维重建技术通过投影编码图案到物体表面,相机采集被物体表面调制的图像,从而根据图像进行三维重建,然而需要大量的图像才能进行三维重建,计算复杂导致三维重建效率低。
发明内容
基于此,有必要针对上述三维重建效率低的技术问题,提供一种能够提高三维重建效率的复合编码的三维重建方法、装置、计算机设备和存储介质。
一种复合编码的三维重建方法,所述方法包括:获取目标物体对应的第一目标散斑图以及第二目标散斑图;获取第一相移图对应的第一子相位序列以及所述第二相移图对应的第二子相位序列,其中,所述第一子相位序列是根据相位周期对所述第一相移图对应的第一相位序列进行分割得到的,所述第二子相位序列是根据所述相位周期对所述第二相移图对应的第二相位序列进行分割得到的,所述第一相移图与所述第一目标散斑图对应,所述第二相移图与所述第二目标散斑图对应;获取所述第一子相位序列对应的第一插值相位序列,获取所述第二子相位序列对应的第二插值相位序列,所述第一插值相位序列以及所述第一插值相位序列是通过对相位周期进行采样得到的;根据所述第一子相位序列中各个相位分别对应的像素,确定对应的第一插值相位序列中各个相位分别对应的像素,组成所述第一子相位序列对应的第一采样点序列,根据所述第二子相位序列中各个相位分别对应的像素,确定对应的第二插值相位序列中各个相位分别对应的像素,组成所述第二子相位序列对应的第二采样点序列;根据预设插值算法,确定所述第一采样点序列中各个第一采样点在所述第一目标散斑图中分别对应的第一灰度值,组成所述第一采样点序列对应的第一灰度值序列,将各个所述第一灰度值序列进行组合,得到第一灰度值序列集合,根据所述预设插值算法,确定所述第二采样点序列中各个第二采样点在所述第二目标散斑图中分别对应的第二灰度值,组成所述第二采样点序列对应的第二灰度值序列,将各个所述第二灰度值序列进行组合,得到第二灰度值序列集合;根据所述第一灰度值序列集合以及所述第二灰度值序列集合进行相关度计算,确定各个所述第一子相位序列分别对应的所述第二子相位序列;根据各个所述第一子相位序列对对应的所述第二子相位序列进行插值,得到各个所述第一子相位序列中各个相位分别对应的同名点,根据各个所述同名点对所述目标物体进行三维重建。
一种复合编码的三维重建装置,所述装置包括:目标散斑图获取模块,用于获取目标物体对应的第一目标散斑图以及第二目标散斑图;子相位序列获取模块,用于获取第一相移图对应的第一子相位序列以及所述第二相移图对应的第二子相位序列,其中,所述第一子相位序列是根据相位周期对所述第一相移图对应的第一相位序列进行分割得到的,所述第二子相位序列是根据所述相位周期对所述第二相移图对应的第二相位序列进行分割得到的,所述第一相移图与所述第一目标散斑图对应,所述第二相移图与所述第二目标散斑图对应;插值相位序列获取模块,用于获取所述第一子相位序列对应的第一插值相位序列,获取所述第二子相位序列对应的第二插值相位序列,所述第一插值相位序列以及所述第一插值相位序列是通过对相位周期进行采样得到的;采样点序列组成模块,用于根据所述第一子相位序列中各个相位分别对应的像素,确定对应的第一插值相位序列中各个相位分别对应的像素,组成所述第一子相位序列对应的第一采样点序列,根据所述第二子相位序列中各个相位分别对应的像素,确定对应的第二插值相位序列中各个相位分别对应的像素,组成所述第二子相位序列对应的第二采样点序列;灰度值序列集合得到模块,用于根据预设插值算法,确定所述第一采样点序列中各个第一采样点在所述第一目标散斑图中分别对应的第一灰度值,组成所述第一采样点序列对应的第一灰度值序列,将各个所述第一灰度值序列进行组合,得到第一灰度值序列集合,根据所述预设插值算法,确定所述第二采样点序列中各个第二采样点在所述第二目标散斑图中分别对应的第二灰度值,组成所述第二采样点序列对应的第二灰度值序列,将各个所述第二灰度值序列进行组合,得到第二灰度值序列集合;子相位序列确定模块,用于根据所述第一灰度值序列集合以及所述第二灰度值序列集合进行相关度计算,确定各个所述第一子相位序列分别对应的所述第二子相位序列;三维重建模块,用于根据各个所述第一子相位序列对对应的所述第二子相位序列进行插值,得到各个所述第一子相位序列中各个相位分别对应的同名点,根据各个所述同名点对所述目标物体进行三维重建。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述复合编码的三维重建方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述复合编码的三维重建方法的步骤。
上述复合编码的三维重建方法、装置、计算机设备和存储介质,获取目标物体对应的第一目标散斑图以及第二目标散斑图,获取第一相移图对应的第一子相位序列以及第二相移图对应的第二子相位序列,其中,第一子相位序列是根据相位周期对第一相移图对应的第一相位序列进行分割得到的,第二子相位序列是根据相位周期对第二相移图对应的第二相位序列进行分割得到的,第一相移图与第一目标散斑图对应,第二相移图与第二目标散斑图对应,获取第一子相位序列对应的第一插值相位序列,获取第二子相位序列对应的第二插值相位序列,第一插值相位序列以及第一插值相位序列是通过对相位周期进行采样得到的,根据第一子相位序列中各个相位分别对应的像素,确定对应的第一插值相位序列中各个相位分别对应的像素,组成第一子相位序列对应的第一采样点序列,根据第二子相位序列中各个相位分别对应的像素,确定对应的第二插值相位序列中各个相位分别对应的像素,组成第二子相位序列对应的第二采样点序列,根据预设插值算法,确定第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的第一灰度值,组成第一采样点序列对应的第一灰度值序列,将各个第一灰度值序列进行组合,得到第一灰度值序列集合,根据预设插值算法,确定第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的第二灰度值,组成第二采样点序列对应的第二灰度值序列,将各个第二灰度值序列进行组合,得到第二灰度值序列集合,根据第一灰度值序列集合以及第二灰度值序列集合进行相关度计算,确定各个第一子相位序列分别对应的第二子相位序列,根据各个第一子相位序列对对应的第二子相位序列进行插值,得到各个第一子相位序列中各个相位分别对应的同名点,根据各个同名点对目标物体进行三维重建。从而通过第一灰度值序列对应的第二灰度值序列,确定了第一子相位序列对应的第二子相位序列,实现了采用散斑相关的算法辅助折叠相位的级次匹配,利用散斑图辅助相移图进行同名点定位,无需使用多张图像来进行相位展开,从而提高了三维重建的效率。
附图说明
图1为一些实施例中复合编码的三维重建方法的应用场景图;
图2A为一些实施例中复合编码的三维重建方法的流程示意图;
图2B为一些实施例中相位序列和目标散斑灰度信号的示意图;
图3为一些实施例中子相位序列得到步骤的流程示意图;
图4为一些实施例中插值相位序列得到步骤的流程示意图;
图5为一些实施例中第一灰度值以及第二灰度值得到步骤的流程示意图;
图6为一些实施例中子相位序列确定步骤的流程示意图;
图7为一些实施例中同名点得到步骤的流程示意图;
图8为一些实施例中复合编码的三维重建方法的流程示意图;
图9为一些实施例中第一灰度值序列集合得到步骤的流程示意图;
图10为一些实施例中相位序列和目标散斑灰度信号的示意图;
图11为一些实施例中复合编码的三维重建方法对应的试验一的实验结果图;
图12为一些实施例中复合编码的三维重建方法对应的试验二的实验结果图;
图13为一些实施例中复合编码的三维重建方法对应的试验三的实验结果图;
图14为一些实施例中复合编码的三维重建装置的结构框图;
图15为一些实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的复合编码的三维重建方法,可以应用于如图1所示的应用环境中。该应用环境包括投影仪102、左相机104、右相机106、被测物体108以及终端110。其中,左相机104和右相机106位于投影仪102两侧。投影仪102用于向被测物体108投影图像,被测物体108可以被投影仪102投影出的图像覆盖,左相机104和右相机106用于对投影后的被测物体108进行图像采集,左相机104和右相机106可以通过有线或者无线等方式将采集到的图像数据发送给终端110。终端110可以对来自于左相机104和右相机106的图像数据进行处理,并可以重建与被测物体108对应的三维图像。
具体地,投影仪102将正弦条纹图(或者N步相移图)投影到被测物体108上,左相机104对被测物体108进行图像采集,得到第一相移图,右相机106对被测物体108进行图像采集,得到第二相移图;投影仪102停止投影正弦条纹图,并将计算机生成的散斑图投影到被测物体108上,左相机104对被测物体108进行图像采集,得到第一散斑图,右相机106对被测物体108进行图像采集,得到第二散斑图。左相机104将第一相移图以及第一散斑图传给终端110,右相机106将第二相移图以及第二散斑图传给终端110,终端110通过对第一相移图、第一散斑图、第二相移图以及第二散斑图的处理,可以重建与被测物体108对应的三维图像。其中,终端110可以但不限于是各种个人计算机、笔记本电脑和平板电脑。
在一些实施例中,如图2A所示,提供了一种复合编码的三维重建方法,其中,复合编码指的是采用了散斑图以及相移图这两种编码图案,以该方法应用于图1中的终端110为例进行说明,包括以下步骤:
S202,获取目标物体对应的第一目标散斑图以及第二目标散斑图。
具体地,目标物体指的是被测物体。可以通过计算机生成散斑图,通过投影仪将生成的散斑图投影到目标物体上,利用左相机对目标物体进行图像采集,根据左相机采集到的图像得到第一目标散斑图,利用右相机对目标物体进行图像采集,根据右相机采集到的图像得到第二目标散斑图。
在一些实施例中,可以对左相机采集到的散斑图像进行灰度校正或者投影校正中的至少一种,得到第一目标散斑图,可以对右相机采集到的散斑图像进行灰度校正后或者投影校正中的至少一种,得到第二目标散斑图。
在一些实施例中,可以通过计算机生成具有局部弱相关性的随机条纹图,将生成的具有局部弱相关性的随机条纹图投影到被测物体上,利用左相机和右相机对目标物体进行图像采集,得到第一目标散斑图以及第二目标散斑图。其中,随机条纹图是由一维随机信号生成的二维条纹图案。采用随机条纹图的理由如下:第一,在同名点的图像搜索空间中,投影校正提供了一个维度的空间约束,所以只需由散斑图提供另一个维度的空间约束;第二,为了实现快速三维扫描,目前投影控制芯片在高速投影模式下为了提升图像的加载速度,只能读取图像一行的数据,而通过存储一维随机信号即可完成随机条纹图像的加载和投影,满足硬件要求。
S204,获取第一相移图对应的第一子相位序列以及第二相移图对应的第二子相位序列,其中,第一子相位序列是根据相位周期对第一相移图对应的第一相位序列进行分割得到的,第二子相位序列是根据相位周期对第二相移图对应的第二相位序列进行分割得到的,第一相移图与第一目标散斑图对应,第二相移图与第二目标散斑图对应。
具体地,相移图指的是N(N≥3)步相移图。将正弦条纹图投影到目标物体上,对目标物体进行采集可以得到相移图。第一相移图与第一目标散斑图对应,指的是第一相移图与第一目标散斑图是根据相同的相机在相同的角度采集到的图像得到的,第二相移图与第二目标散斑图对应,指的是第一相移图与第一目标散斑图是根据相同的相机在相同的角度采集到的图像得到的,例如,将正弦条纹图投影到目标物体上,利用左相机对目标物体进行采集得到第一相移图,利用右相机对目标物体进行采集得到第二相移图,将计算机生成的散斑图投影到目标物体上,利用左相机对目标物体进行采集得到第一目标散斑图,利用右相机对目标物体进行采集得到第二目标散斑图。
在一些实施例中,第一相位序列可以是根据第一相位图计算得到的折叠相位组成的序列,第二相位序列可以是根据第二相位图计算得到的折叠相位组成的序列。第一子相位序列可以是根据折叠相位的周期性对第一相位序列分割得到的一个周期的相位序列,包括多个相位,也可以是对分割得到的一个周期的相位序列进行插值后得到的,例如按照固定的相位间隔插值得到多个相位,将这些相位组成的序列,作为第一子相位序列。第二子相位序列可以是根据折叠相位的周期性对第二相位序列分割得到的一个周期的相位序列,包括多个相位,也可以是对分割得到的一个周期的相位序列进行插值后得到的,例如按照固定的相位间隔插值得到多个相位,将这些相位组成的序列,作为第一子相位序列。其中,折叠相位的周期可以为2π,折叠相位的范围可以是[-π,π]。
在一些实施例中,第一相位序列以及第二相位序列是对折叠相位图进行投影校正后得到的。例如,终端可以获取左相机采集到的N步相移图,通过N步相移法计算出折叠相位,进而得到折叠相位图,并对折叠相位图进行投影校正,得到投影校正后的折叠相位图,根据投影校正后的折叠相位图得到第一相位序列。终端可以获取右相机采集到的N步相移图,通过N步相移法计算出折叠相位,进而得到折叠相位图,并对折叠相位图进行投影校正,得到投影校正后的折叠相位图,根据投影校正后的折叠相位图得到第二相位序列。
在一些实施例中,可以对第一相移图以及第二相移图进行投影校正,得到投影校正后的第一相移图以及投影校正后的第二相移图,根据投影校正后的第一相移图计算得到对应的折叠相位序列,作为第一相位序列,根据投影校正后的第二相位图计算得到对应的折叠相位序列,作为第二相位序列。
在一些实施例中,第一目标散斑图、第二目标散斑图、第一相位序列以及第二相位序列是通过投影校正后得到的时,这时,可以沿着第一目标散斑图与第二目标散斑图的相同行进行相位级次匹配。其中,折叠相位序列可以根据周期划分为多个子区,一个子区可以对应一个相位级次,相位级次匹配用于寻找左折叠相位序列中的一个子区对应的右折叠相位序列中的子区。
S206,获取第一子相位序列对应的第一插值相位序列,获取第二子相位序列对应的第二插值相位序列,第一插值相位序列以及第一插值相位序列是通过对相位周期进行采样得到的。
具体地,第一插值相位序列以及第一插值相位序列可以是通过固定的相位间隔对一个折叠相位周期进行采样得到的。如图2B所示,图2B(a)可以表示第一相位图对应的第一相位序列,第一相位图中的每个折叠周期对应的相位序列表示第一子相位序列。Δφ表示固定的相位间隔。可以按照固定的相位间隔Δφ对第一子相位序列在折叠相位周期内进行采样,得到采样个数为N'=2π/Δφ的相位值序列作为第一插值相位序列。其中,i=1,2,…N',m=1,2,…M,φi表示第一插值相位序列中的第i个相位,N'为第一插值相位序列中相位的个数,L表示left,表示与左相机对应的数据,中的m表示第一插值相位序列对应的是第m个子区,M表示第一插值相位序列的个数,也即第一子相位序列的个数,又即第一相位序列包括的子区个数。可以将各个第一插值相位序列组成一个集合,作为第一插值相位序列集合,例如用表示。例如,当折叠相位周期为-π~π时,Δφ为π/2时,第一插值相位序列可以为[-π,-π/2,0,π/2,π]。第二插值相位序列与第一插值相位序列的得到方式类似,这里不再赘述。另外,第二插值相位序列可以表示为其中,m'=1,2,…M',M'表示第二插值相位序列的个数,也即第二子相位序列的个数,即第二相位序列包括的子区个数。R表示right,表示与右相机对应的数据,m'表示第二插值相位序列对应的是第m'个子区。可以将各个第二插值相位序列组成一个集合,作为第二插值相位序列集合,例如用表示。
S208,根据第一子相位序列中各个相位分别对应的像素,确定对应的第一插值相位序列中各个相位分别对应的像素,组成第一子相位序列对应的第一采样点序列,根据第二子相位序列中各个相位分别对应的像素,确定对应的第二插值相位序列中各个相位分别对应的像素,组成第二子相位序列对应的第二采样点序列。
具体地,第一采样点序列指的是与第一插值相位序列对应的序列,也是与第一子相位序列对应的序列。例如,第一插值相位序列对应的第一采样点序列可以表示为pi表示第一采样点序列中的第i个采样点。第一子相位序列中的相位与像素是一一对应的关系,即第一子相位序列中的一个相位对应一个像素。可以根据第一插值相位序列中的相位与对应的第一子相位序列中相位之间的关系,得到第一插值相位序列中的相位对应的像素与对应的第一子相位序列中相位对应的像素之间的关系,从而得到第一插值相位序列中的相位对应的像素。第一插值相位序列中的相位以及第二插值相位序列中相位对应的像素可能为亚像素的。例如,第一插值相位序列中的相位A是对应的像素为亚像素,则可以根据第一子相位序列中的比相位A大的相位B对应的像素以及比相位A小的相位C对应的像素计算得到相位A对应的像素。第二插值相位序列中各个相位分别对应的像素的得到方法可以参考上述类似的方法得到,这里不再赘述。
S210,根据预设插值算法,确定第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的第一灰度值,组成第一采样点序列对应的第一灰度值序列,将各个第一灰度值序列进行组合,得到第一灰度值序列集合,根据预设插值算法,确定第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的第二灰度值,组成第二采样点序列对应的第二灰度值序列,将各个第二灰度值序列进行组合,得到第二灰度值序列集合。
具体地,预设插值算法可以是根据具体情况设置的插值算法,例如为三次样条插值,当然也可以是自定义的插值算法。第一采样点序列与第一灰度值序列一一对应,例如,第一采样点序列对应的第一灰度值序列可以表示为si表示第一采样点序列中的第i个采样点对应的第一灰度值。可以将各个第一采样点序列组成第一采样点序列集合,例如用表示。可以将各个第二采样点序列组成第二采样点序列集合,例如用表示。可以将各个第一灰度值序列组成第一灰度值序列集合,例如用表示。可以将各个第二灰度值序列组成第二灰度值序列集合,例如用表示。容易理解,第一插值相位序列对应的第一采样点序列为第一采样点序列为对应的第一灰度值序列为进而第一子相位序列对应的第一灰度值序列为第二插值相位序列对应的第二采样点序列为第二采样点序列对应的第二灰度值序列为进而第二子相位序列对应的第二灰度值序列为可以将和的关系以及和的关系表示为:
S212,根据第一灰度值序列集合以及第二灰度值序列集合进行相关度计算,确定各个第一子相位序列分别对应的第二子相位序列。
具体地,可以分别计算第一灰度值序列集合中的各个第一灰度值序列与第二灰度值序列集合中的各个第二灰度值序列之间的相关度,对得到的相关度进行分析,确定第一灰度值序列对应的第二灰度值序列,当第一灰度值序列与第二灰度值序列对应,则该第一灰度值序列对应的第一子相位序列与该第二灰度值序列对应的第二子相位序列是对应的,从而可以确定第一子相位序列对应的第二子相位序列。
在一些实施例中,第一子相位序列可能存在对应的第二子相位序列,也可能不存在对应的第二子相位序列。
S214,根据各个第一子相位序列对对应的第二子相位序列进行插值,得到各个第一子相位序列中各个相位分别对应的同名点,根据各个同名点对目标物体进行三维重建。
具体地,三维重建用于对三维物体建立适合计算机表示和处理的数学模型。例如,对鞋子、凳子或桌子等建立数学模型。同名点可以理解为第一目标散斑图中的一个像素位置,在第二目标散斑图像中的对等像素位置。例如,第一目标散斑图中的像素位置A1与第二目标散斑图像中的像素位置A2是对等位置,则可以将像素位置A1与像素位置A2称为一对同名点,或者将像素位置A2称为像素位置A1的同名点。
上述复合编码的三维重建方法中,获取目标物体对应的第一目标散斑图以及第二目标散斑图,获取第一相移图对应的第一子相位序列以及第二相移图对应的第二子相位序列,其中,第一子相位序列是根据相位周期对第一相移图对应的第一相位序列进行分割得到的,第二子相位序列是根据相位周期对第二相移图对应的第二相位序列进行分割得到的,第一相移图与第一目标散斑图对应,第二相移图与第二目标散斑图对应,获取第一子相位序列对应的第一插值相位序列,获取第二子相位序列对应的第二插值相位序列,第一插值相位序列以及第一插值相位序列是通过对相位周期进行采样得到的,根据第一子相位序列中各个相位分别对应的像素,确定对应的第一插值相位序列中各个相位分别对应的像素,组成第一子相位序列对应的第一采样点序列,根据第二子相位序列中各个相位分别对应的像素,确定对应的第二插值相位序列中各个相位分别对应的像素,组成第二子相位序列对应的第二采样点序列,根据预设插值算法,确定第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的第一灰度值,组成第一采样点序列对应的第一灰度值序列,将各个第一灰度值序列进行组合,得到第一灰度值序列集合,根据预设插值算法,确定第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的第二灰度值,组成第二采样点序列对应的第二灰度值序列,将各个第二灰度值序列进行组合,得到第二灰度值序列集合,根据第一灰度值序列集合以及第二灰度值序列集合进行相关度计算,确定各个第一子相位序列分别对应的第二子相位序列,根据各个第一子相位序列对对应的第二子相位序列进行插值,得到各个第一子相位序列中各个相位分别对应的同名点,根据各个同名点对目标物体进行三维重建。从而通过第一灰度值序列对应的第二灰度值序列,确定了第一子相位序列对应的第二子相位序列,实现了采用散斑相关的算法辅助折叠相位的级次匹配,利用散斑图辅助相移图进行同名点定位,无需使用多张图像来进行相位展开,从而提高了三维重建的效率。
在一些实施例中,如图3所示,步骤204即获取第一相移图对应的第一子相位序列以及第二相移图对应的第二子相位序列,包括:
S302,获取第一相移图对应的折叠相位序列,作为第一相位序列,获取第二相移图对应的折叠相位序列,作为第二相位序列。
具体地,折叠相位序列是由折叠相位组成的序列。可以利用N步相移法计算出第一相移图对应的折叠相位以及第二相移图对应的折叠相位。如图2B所示,图2B(a)展示了折叠相位,图中横坐标表示像素,纵坐标表示相位。可以看出折叠相位的周期为2π。
S304,根据折叠相位的相位周期对第一相位序列进行分割,得到第一相移图对应的多个第一子相位序列。
具体地,由于折叠相位的周期性特点,可以根据第一相位序列中相位的跳变(例如相位从π跳变到-π)对第一相位序列进行区域划分,将相位跳变的地方作为分界线,将第一相位序列划分为多个子区,每个子区对应一个第一分割后的子相位序列。例如,图2B(a)可以表示第一相位图对应的第一相位序列,图中Wm可以表示一个第一分割后的子相位序列,Wm+1表示另一个第一分割后的子相位序列。图2B(b)的横坐标表示像素,纵坐标表示灰度,可以表示第一目标散斑图对应的某一行的灰度图。
在一些实施例中,可以将第一分割后的子相位序列作为第一子相位序列,也可以根据第一分割后的子相位序列进行计算,得到第一子相位序列。例如可以对第一分割后的子相位序列进行插值得到第一子相位序列。
S306,根据折叠相位的相位周期对第二相位序列进行分割,得到第二相移图对应的多个第二子相位序列。
具体地,第二子相位序列的得到方式可以参考步骤S304的相关描述。
上述本申请实施例中,根据折叠相位的相位周期对相位序列进行分割,得到每个周期对应的折叠相位序列,可以利用折叠相位的空间周期性自适应地生成相关搜索的窗口,从而可以利用相位对目标散斑图进行重采样,提高相关搜索的准确性,从而实现高精度的同名点定位。
在一些实施例中,如图4所示,步骤S206中的获取第一子相位序列对应的第一插值相位序列,获取第二子相位序列对应的第二插值相位序列,包括:
S402,获取预设相位间隔。
具体地,预设相位间隔可以是根据需要预先设置的相位间隔。
S404,根据预设相位间隔在第一子相位序列对应的折叠相位周期内进行采样,得到第一子相位序列对应的第一插值相位序列。
S406,根据预设相位间隔在第二子相位序列对应的折叠相位周期内进行采样,得到第二子相位序列对应的第二插值相位序列。
具体地,由于折叠相位周期是固定的,预设相位间隔也是固定的,因此各个第一插值相位序列是相同的,各个第二插值相位序列是相同的,并且第一插值相位序列与第二插值相位序列也是是相同的。
上述本申请实施例中,由于各个第一插值相位序列是相同的,各个第二插值相位序列是相同的,并且第一插值相位序列与第二插值相位序列也是是相同的。因此,可以通过第一插值相位序列确定的第一灰度值序列与第二插值相位序列确定的第二灰度值序列进行相关度计算,从而确定第一灰度值序列对应的第二灰度值序列。
在一些实施例中,如图5所示,步骤S210中的根据预设插值算法,确定第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的第一灰度值包括:
S502,根据预设插值算法,确定第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的第一插值系数。
具体地,可以通过三次样条插值算法,计算得到第一采样点序列中各个以采样点在第一目标散斑图中分别对应的插值系数,作为第一插值系数。
S504,根据第一插值系数,对第一目标散斑图进行插值,得到第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的第一灰度值。
具体地,可以根据各个第一插值系数,对第一目标散斑图进行重采样,得到第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的灰度值,作为第一灰度值。
步骤S210中的根据预设插值算法,确定第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的第二灰度值,包括:
S506,根据预设插值算法,确定第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的第二插值系数。
具体地,可以通过三次样条插值算法,计算得到第二采样点序列中各个以采样点在第二目标散斑图中分别对应的插值系数,作为第二插值系数。
S508,根据第二插值系数,对第二目标散斑图进行插值,得到第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的第二灰度值。
具体地,可以根据各个第二插值系数,对第二目标散斑图进行重采样,得到第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的灰度值,作为第二灰度值。
上述本申请实施例中,根据第一子相位序列对应的第一采样点序列,得到第一目标散斑图中对应的第一灰度值序列,根据第二子相位序列对应的第二采样点序列,得到第二目标散斑图中对应的第二灰度值序列,由于相位不受被测物体形变和相机视角的影响,从而极大地提高了散斑灰度信号(即第一灰度值序列以及第二灰度值序列)的准确性,使得相关运算的结果更加可靠,得到的同名点准确度高,从而提高了三维重建准确度。
在一些实施例中,如图6所示,步骤S212即根据第一灰度值序列集合以及第二灰度值序列集合进行相关度计算,确定各个第一子相位序列分别对应的第二子相位序列,包括:
S602,从第一灰度值序列集合中选取目标第一灰度值序列。
具体地,在第一次选取目标第一灰度值序列时,可以从第一灰度值序列集合中选取任意一个第一灰度值序列,作为目标第一灰度值序列。当第二次选取目标第一灰度值序列时,可以从第一灰度值序列集合中选取没有被选取为目标第一灰度值序列的第一灰度值序列作为目标第一灰度值序列。
S604,分别计算目标第一灰度值序列与第二灰度值序列集合中各个第二灰度值序列之间的相关度,得到目标第一灰度值序列对应的相关度集合。
具体地,相关度表示目标第一灰度值序列与第二灰度值序列的相似性,相关度越大,则说明目标第一灰度值序列与第二灰度值序列的相似性越大,相关度越小,则说明目标第一灰度值序列与第二灰度值序列的相似性越小。相关度集合是由目标第一灰度值序列与各个第二灰度值序列分别得到的相关度组成的集合。
在一些实施例中,可以通过相关度函数计算目标第一灰度值序列与第二灰度值序列集合中的第二灰度值序列的相关度。相关度函数例如可以是ZNCC(Zero MeanNormalized Cross Correlation,去均值归一化互相关函数)。其中,ZNCC对应的计算表达式可以表示为:
其中,f(xi,yj)表示目标第一灰度值序列在位置(xi,yj)处的灰度值,其中,xi表示横坐标,yj表示纵坐标。g(x′i,y′j)表示第二灰度值序列在位置(x′i,y′j)处的灰度值,其中,x′i表示横坐标,y′j表示纵坐标。表示目标第一灰度值序列对应的灰度均值,表示第二灰度值序列对应的灰度均值。m1表示灰度值序列对应的图像的长度信息以及宽度信息。
S606,获取相关度集合中的最大相关度。
具体地,最大相关度指的是相关度集合中最大的相关度。
S608,当最大相关度大于预设相关度阈值时,将最大相关度对应的第二灰度值序列作为目标第一灰度值序列对应的目标第二灰度值序列。
具体地,预设相关度阈值为预先设置的相关度,预设相关度阈值可以根据经验值确定的,例如可以是0.9。目标第二灰度值序列指的是与目标第一灰度值序列对应的第二灰度值序列。当最大相关度大于或者等于预设相关度阈值时,说明最大相关度对应的第二灰度值序列与目标第一灰度值序列的相似性很高,因此可以将最大相关度对应的第二灰度值序列作为目标第一灰度值序列对应的目标第二灰度值序列。当最大相关度小于预设相关度阈值时,说明最大相关度对应的第二灰度值序列与目标第一灰度值序列的相似性不高,可以认为目标第一灰度值序列没有找到对应的第二灰度值序列。
在一些实施例中,可以在第二灰度值序列集合中筛选得到可能为目标第二灰度值序列的第二灰度值序列,作为候选目标第二灰度值序列,分别计算目标第一灰度值序列与各个候选目标第二灰度值序列的相关度,得到最大相关度,并判断最大相关度是否大于预设相关度阈值,如果大于预设相关度阈值,则将得到最大相关度的候选目标第二灰度值序列作为与目标第一灰度值序列对应的目标第二灰度值序列。
S610,获取目标第一灰度值序列对应的目标第一子相位序列,获取目标第二灰度值序列对应的目标第二子相位序列,将目标第二子相位序列作为目标第一子相位序列对应的第二子相位序列。
具体地,目标第二子相位序列与目标第一子相位序列对应,可以将目标第一子相位序列与对应的目标第二子相位序列称作相同级次的折叠相位对。例如,若得到第一灰度值序列S1对应的第二灰度值序列为S2,且第一灰度值序列对应的第一子相位序列为W1,第二灰度值序列对应的第二子相位序为W2,则W1和W2称作相同级次的折叠相位对。
上述本申请实施例中,通过计算第一灰度值序列与第二灰度值序列之间的相关度,可以快速的确定第一灰度值序列对应的第二灰度值序列,从而确定了第一子相位序列对应的第二子相位序列,从而快速的得到了级次匹配的相位序列,提高了三维重建的效率。并且通过将最大相关度与预设相关度阈值进行比较,当最大相关度大于预设相关度阈值时,才将最大相关度对应的第二灰度值序列作为目标第一灰度值序列对应的目标第二灰度值序列,而不是直接将最大相关度对应的第二灰度值序列作为目标第一灰度值序列对应的目标第二灰度值序列,可以避免在目标第二灰度值序列不存在对应的第二灰度值序列的情况下,找到错误的目标第二灰度值序列。
在一些实施例中,如图7所示,步骤S214中的根据各个第一子相位序列对对应的第二子相位序列进行插值,得到各个第一子相位序列中各个相位分别对应的同名点包括:
S702,获取目标第一子相位序列中各个相位分别对应的像素,作为第一目标像素。
具体地,目标第一子相位序列中的各个相位与像素具有对应关系,一个相位对应一个像素。
S704,根据对应的目标第二子相位序列中各个相位分别对应的像素,插值得到各个第一目标像素分别对应的第二目标像素,将第二目标像素作为第一目标像素的同名点。
具体地,目标第一子相位序列中的各个相位与目标第二子相位序列中的各个相位可能是不相同的,即在目标第一子相位序列中存在的相位,在目标第二子相位序列中可能不存在,而在目标第二子相位序列中存在的相位,在目标第一子相位序列中可能不存在。因此,可以通过亚像素插值得到同名点。比如相位phase1存在于目标第一子相位序列中,但不存在于目标第二子相位序列中,但是目标第二子相位序列中有比相位phase1小的相位phase2,以及比相位phase1大的相位phase3,可以根据相位phase2的对应的像素以及相位phase3对应的像素,插值得到在目标第二子相位序列中相位phase1对应的像素,作为目标第一子相位序列中相位phase1的第一目标像素对应的第二目标像素,将第二目标像素作为第一目标像素的同名点。
上述本申请实施例中,由于周期内的折叠相位是单调递增的,即子相位序列种的相位是单调递增的,并不存在歧义性,因此,在级次匹配的折叠相位内,即在目标第一子相位序列对应的目标第二子相位序列中,对第一目标散斑图以及第二目标散斑图像进行亚像素插值,可以实现高精度的同名点定位。
在一些实施例中,如图8所示,提供了一种复合编码的三维重建方法。具体地,图8中灰色部分为相机采集到的N步相移图和散斑图,其中,N步相移图以及散斑图均是左相机采集到的数据,或者N步相移图以及散斑图均是右相机采集到的数据。步骤如下:
步骤1、通过N步相移图对散斑图进行散斑灰度校正,得到新散斑图;
步骤2、计算N步相移图的折叠相位,得到折叠相位图;
步骤3、对折叠相位图以及新散斑图进行投影校正,得到投影校正后的折叠相位图以及投影校正后的散斑图;
步骤4、根据投影校正后的折叠相位图进行条纹级次分割;
步骤5、根据分割后的条纹级次对投影校正后的散斑图进行散斑重采样,得到各个条纹级次对应的灰度值;
步骤6、根据左图一个条纹级次的N个灰度值与右图视差范围内的条纹级次进行相关运算,将相关系数最高的条纹级次作为对应条纹级次;
具体地,左图一个条纹级次的N个灰度值表示的是目标第一灰度值序列,右图视差范围内的条纹级次表示的是可能为目标第二灰度值序列的各个第二灰度值序列,左图指的是第一目标散斑图,右图指的是第二目标散斑图。将左图一个条纹级次的N个灰度值与右图视差范围内的条纹级次进行相关运算,取最高相关系数对应的条纹级次为对应的条纹级次,其中,相关系数为相关度。需要说明的是,图8中的N不同于N步相移图中的N。
步骤7、在对应条纹级次内进行对应点搜索,将相位最接近的作为对应点;
具体地,根据相位确定对应点,其中,对应点指的是同名点。
步骤8、进行亚像素优化;
步骤9、进行三维重建。
在一些实施例中,方法还包括:将各个第一采样点序列进行组合,得到第一采样点序列集合,如图9所示,第一灰度值序列集合的得到步骤包括:
S902,获取第一相位序列在截断相位处的相位,得到第一截断相位。
具体地,由于被测物体的形貌对相移图进行截断,在被测物体的边缘轮廓处经常出现周期不完整的折叠相位,将第一相位序列中周期不完整的折叠相位的截断处的相位,称作第一截断相位。第一截断相位可以包括左侧截断相位和右侧截断相位,分别对应第一相位序列的左侧相位和右侧相位,如第一相位序列的第一个相位和最后一个相位。如图10所示,图10(a)和图10(b)分别展示了相位序列的左侧数据和右侧数据被截断的情况。图10(a)可以看出,左侧截断相位为φa,图10(b)可以看出,右侧截断相位为φb。
在一些实施例中,可以获取第二相位序列在截断相位处的相位,得到第二截断相位。例如,可以将第二相位序列中周期不完整的折叠相位的截断处的相位,称为第二截断相位。第二截断相位可以包括左侧截断相位和右侧截断相位,分别对应第二相位序列的左侧相位和右侧相位,如第二相位序列的第一个相位和最后一个相位。
S904,根据第一截断相位,得到第一相移量。
具体地,若第一截断相位为左侧截断相位,可以将第一截断相与π相加得到的数据,作为第一相移量,若第一截断相位为右侧截断相位,可以将π与第一截断相的差,作为第一相移量。
在一些实施例中,可以根据第二截断相位,得到第二相移量。例如,若第二截断相位为左侧截断相位,可以将第二截断相与π相加得到的数据,作为第二相移量,若第二截断相位为右侧截断相位,可以将π与第二截断相的差,作为第二相移量。例如,图10(a)中左侧截断相位为φa,用Δφ'a表示相移量,则相移量为Δφ'a=φa+π,图10(b)中右侧截断相位为φb,用Δφ'b表示相移量,则相移量为Δφ'b=π-φb。
S906,计算第一相移量包括的相位间隔的数量,作为第一平移采样点个数。
具体地,由于相位序列具有固定的相位间隔,并且相位序列中的每个相位对应一个采样点,因此可以根据相移量计算出包括的相位间隔的数量,进而得到相移量对应的采样点个数,作为平移采样点个数。将根据第一相移量计算得到的采样点个数,作为第一平移采样点个数,将根据第二相移量计算得到的采样点个数,作为第二平移采样点个数。例如,若相位间隔为Δφ,第一相移量为φ′ia,用Δn′表示第一平移采样点个数,则第一平移采样点个数为Δn′=Δφ′/Δφ。
S908,根据第一平移采样点个数对第一采样点序列集合进行平移,得到平移后的第一采样点序列集合。
S910,根据平移后的第一采样点序列集合,得到第一灰度值序列集合。
具体地,若第一截断相位为左侧截断相位,则可以将第一采样点序列集合向右平移第一平移采样点个数,得到平移后的第一采样点序列集合。若第一截断相位为右侧截断相位,则可以将第一采样点序列集合向左平移第一平移采样点个数,得到平移后的第一采样点序列集合。
在一些实施例中,第二灰度值序列集合也可以采用相似的方法得到,这里不再赘述。例如,若第二截断相位为左侧截断相位,则可以将第二采样点序列集合向右平移第二平移采样点个数,得到平移后的第二采样点序列集合。若第二截断相位为右侧截断相位,则可以将第二采样点序列集合向左平移第二平移采样点个数,得到平移后的第二采样点序列集合。
上述本申请实施例中,由于截断相位会导致窗口内目标随机信号信息的缺失,从而在根据第一子相位序列以及第二子相位序列,计算目标第一灰度值序列对应的目标第二灰度值序列时,容易出现错误的结果。而采用本申请实施例的方法,可以将截断的相位区域重新分布在一个完整的相位周期内,提高了计算目标第一灰度值序列对应的目标第二灰度值序列的准确度,从而提高了得到的同名点的准确度。
例如,由于每个采样点之间的相位差为Δφ,即Δpn→Δφ,根据Δn′=Δφ′/Δφ将缺失的相位转换为采样点个数,因此可以将左右相机的采样点序列集合和均整体向右移位Δn′个采样点可得到和得到新的随机条纹灰度值序列集合和根据新的随机条纹灰度值序列集合进行相关运算,得到同名点。其中,Δpn表示相位差为Δφ时对应的采样点个数。
在一些实施例中,可以通过将第一相位序列移动第一相移量,使被截断的相位区域经过相移后重新分布在一个完整的相位周期内,以解决截断相位会导致窗口内目标随机信号信息的缺失的问题。如图10(a)所示,左侧截断相位为φa,相移量为Δφ'a=φa+π,用φ′ia表示相移后的相位,则相移后的相位为:可以看到相移前的相位序列中被截断的相位区域经过相移后重新分布在一个完整的相位周期内。如图10(b)所示,右侧截断相位为φb,相移量为Δφ'b=π-φb,用φ′ib表示相移后的相位,则相移后的相位为:可以看到原本被截断的相位区域经过相移后重新分布在一个完整的相位周期内,设该周期相位为W′k,可以根据新的平移后的相位序列,得到子相位序列集合、灰度值序列集合以及采样点序列集合。并对W′k进行级次匹配,得到匹配相位后,对原始相位被截断部分的采样点进行同名点的亚像素插值,得到跟精确的同名点。
为了验证本申请复合编码的三维重建方法的三维重建精度和鲁棒性,搭建了一套基于结构照明的双目立体视觉测量系统进行三维重建实验。该系统由一个DLP(DigitalLight Processing,数字光学)投影仪(ANHUA,M5)和两个CMOS(Complementary MetalOxide Semiconductor,互补金属氧化物半导体)相机(Basler,acA2440-35um)组成。基于格雷码的相位展开算法(以下称格雷码算法)是目前应用最广泛和成熟的编码方式之一,所以本实验使用格雷码算法和本申请提出的算法两种编码方式实现三维重建并进行对比分析,其中,本申请复合编码的三维重建方法的编码图包括4幅相移条纹图和1幅一维随机条纹图(即散斑图),格雷码算法包括4幅相移条纹图和11幅格雷码图。下面对采用该系统所做的3个实验(实验一、实验二以及实验三)进行描述。其中,实验一用于分析精度,实验二和实验三用于不同材质物体三维重建对比。
实验一:如图11所示,展示了标准球精度验证实验。具体地,将该系统对直径为50.7911mm(millimeter,毫米)的标准球进行三维测量。图11(a)为将一维随机条纹图投影在标准球表面,左相机采集的图像;图11(b)为将正弦条纹图投影在标准球表面,左相机采集的图像;图11(c)为采用本申请复合编码的三维重建方法对图11(a)进行灰度校正后的随机条纹图,11(d)为折叠相位图。通过图11(c)可以看到随机条纹图的对比度得到增强,整体亮度也更加均匀,尤其在球体边缘处的信号,原本受到物体形貌的调制,亮度比较低,经过校正后信号得到极大恢复。
根据本申请提出的复合编码的三维重建方法进行三维重建,由于相位截断导致边缘处出现大量周期不完整的相位,这些相位对应的散斑信号由于数据量缺失,导致散斑相关的准确性降低,从而容易在边缘处生成错误的三维重建效果,图11(e)展示了去除非完整周期信号重建的结果,图11(f)为使用了本申请复合编码的三维重建方法进行边缘处理后的结果,可以看到边缘得到了很好的恢复。对图11(f)的点云数据进行球面拟合,拟合球体直径为50.8098mm,误差为0.0187mm,图11(g)展示了本申请复合编码的三维重建方法的三维重建数据与拟合球面的误差分布图,均方根误差(Root Mean Squared Error,RMSE)为0.0060mm。
为了分析本申请复合编码的三维重建方法与格雷码算法的三维重建结果的差异,我们对基于格雷码方法的重建结果进行球面拟合,拟合球的直径为50.8048mm,相对误差为0.0137mm,因此本申请复合编码的三维重建方法与格雷码算法的重建精度基本接近。另外,将本申请复合编码的三维重建方法与格雷码算法的深度数据进行对比,图11(h)展示了本申请复合编码的三维重建方法与格雷码算法重建结果对比分析的误差分布的结果,均方根误差为0.0054mm。
为了验证本申请复合编码的三维重建方法的三维重建效果和鲁棒性,选择两种不同材质的物体进行三维重建对比实验。具体参见实验二以及实验三。
实验二:如图12所示,展示了篮球运动鞋三维重建效果及比对分析实验。具体地,如图12(a)所示,被测物体是篮球运动鞋,鞋子表面材料主要是塑料、皮革和布料。图12(b)为将一维随机条纹图投影到被测物体表面,左相机采集的图像,可以看到由于不同材质的光谱反射率不一致导致随机条纹灰度发生变化,尤其是在鞋子表面颜色比较深的区域的随机条纹对比度比较低。图12(c)为采用本申请的灰度校正算法对图12(b)进行随机条纹灰度校正的效果,对比度得到增强,极大减少了物体表面反射率对随机条纹灰度的影响;图12(d)和图12(e)分别为本申请复合编码的三维重建方法和格雷码算法的三维重建效果,基本保持一致;图12(f)为图12(d)和图12(e)的比对结果,重叠部分的均方根误差为0.010mm。
实验三,如图13所示,展示了青铜器“鼎”的三维重建效果及比对分析实验。具体地,如图13(a)所示,被测物体为中国古代文物“鼎”的仿制品,材质主要为青铜,表面有铜锈,几何特征明显,虚线方框内包括的“鼎”的区域为三维测量的区域范围。图13(b)展示了一维随机条纹图投影到被测物体表面,左相机采集的图像,可以看到物体表面斑驳的锈迹对随机条纹造成了一定影响。图13(c)为基于本申请的复合编码的三维重建方法对图13(b)进行灰度校正的结果,可以看出,通过本申请的灰度校正算法进行校正后,基本消除了被测物体表面材质对随机条纹灰度的影响。图13(d)显示了本申请复合编码的三维重建方法的三维重建结果,基本恢复了物体的表面形貌,图13(e)为本申请复合编码的三维重建方法与格雷码算法的对比结果,偏差基本在0.01mm以内,最后计算的均方根误差为0.007mm。
实验二和实验三对应的两种材质物体的三维重建实验以及比对分析,表明本申请复合编码的三维重建方法能很好的解决物体表面反射率变化对随机条纹信号造成的影响,具有良好的适用性和鲁棒性。
应该理解的是,虽然上述各实施例的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各实施例的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一些实施例中,如图14所示,提供了一种复合编码的三维重建装置,包括:目标散斑图获取模块1402、子相位序列获取模块1404、插值相位序列获取模块1406、采样点序列组成模块1408、灰度值序列集合得到模块1410、子相位序列确定模块1412和三维重建模块1414。其中:目标散斑图获取模块1402,用于获取目标物体对应的第一目标散斑图以及第二目标散斑图。子相位序列获取模块1404,用于获取第一相移图对应的第一子相位序列以及第二相移图对应的第二子相位序列,其中,第一子相位序列是根据相位周期对第一相移图对应的第一相位序列进行分割得到的,第二子相位序列是根据相位周期对第二相移图对应的第二相位序列进行分割得到的,第一相移图与第一目标散斑图对应,第二相移图与第二目标散斑图对应。插值相位序列获取模块1406,用于获取第一子相位序列对应的第一插值相位序列,获取第二子相位序列对应的第二插值相位序列,第一插值相位序列以及第一插值相位序列是通过对相位周期进行采样得到的。采样点序列组成模块1408,用于根据第一子相位序列中各个相位分别对应的像素,确定对应的第一插值相位序列中各个相位分别对应的像素,组成第一子相位序列对应的第一采样点序列,根据第二子相位序列中各个相位分别对应的像素,确定对应的第二插值相位序列中各个相位分别对应的像素,组成第二子相位序列对应的第二采样点序列。灰度值序列集合得到模块1410,用于根据预设插值算法,确定第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的第一灰度值,组成第一采样点序列对应的第一灰度值序列,将各个第一灰度值序列进行组合,得到第一灰度值序列集合,根据预设插值算法,确定第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的第二灰度值,组成第二采样点序列对应的第二灰度值序列,将各个第二灰度值序列进行组合,得到第二灰度值序列集合。子相位序列确定模块1412,用于根据第一灰度值序列集合以及第二灰度值序列集合进行相关度计算,确定各个第一子相位序列分别对应的第二子相位序列。三维重建模块1414,用于根据各个第一子相位序列对对应的第二子相位序列进行插值,得到各个第一子相位序列中各个相位分别对应的同名点,根据各个同名点对目标物体进行三维重建。
在一些实施例中,子相位序列获取模块1404包括:折叠相位序列获取单元,用于获取第一相移图对应的折叠相位序列,作为第一相位序列,获取第二相移图对应的折叠相位序列,作为第二相位序列。第一子相位序列得到单元,用于根据折叠相位的相位周期对第一相位序列进行分割,得到第一相移图对应的多个第一子相位序列。第二子相位序列得到单元,用于根据折叠相位的相位周期对第二相位序列进行分割,得到第二相移图对应的多个第二子相位序列。
在一些实施例中,第一子相位序列得到单元,还用于获取预设相位间隔;根据折叠相位的相位周期对第一相位序列进行分割,并按照预设相位间隔对分割后的相位序列分别进行插值,得到第一相移图对应的多个第一子相位序列。第二子相位序列得到单元,还用于根据折叠相位的相位周期对第二相位序列进行分割,并按照预设相位间隔对分割后的相位序列分别进行插值,得到第二相移图对应的多个第二子相位序列。
在一些实施例中,插值相位序列获取模块1406包括:预设相位间隔获取单元,用于获取预设相位间隔。第一插值相位序列得到单元,用于根据预设相位间隔在第一子相位序列对应的折叠相位周期内进行采样,得到第一子相位序列对应的第一插值相位序列。第二插值相位序列得到单元,用于根据预设相位间隔在第二子相位序列对应的折叠相位周期内进行采样,得到第二子相位序列对应的第二插值相位序列。
在一些实施例中,灰度值序列集合得到模块1410包括:第一插值系数确定单元,用于根据预设插值算法,确定第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的第一插值系数。第一灰度值得到单元,用于根据第一插值系数,对第一目标散斑图进行插值,得到第一采样点序列中各个第一采样点在第一目标散斑图中分别对应的第一灰度值。灰度值序列集合得到模块1410还包括:第二插值系数确定单元,用于根据预设插值算法,确定第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的第二插值系数。第二灰度值得到单元,用于根据第二插值系数,对第二目标散斑图进行插值,得到第二采样点序列中各个第二采样点在第二目标散斑图中分别对应的第二灰度值。
在一些实施例中,子相位序列确定模块1412包括:目标第一灰度值序列获取单元,用于从第一灰度值序列集合中选取目标第一灰度值序列。相关度集合得到单元,用于分别计算目标第一灰度值序列与第二灰度值序列集合中各个第二灰度值序列之间的相关度,得到目标第一灰度值序列对应的相关度集合。最大相关度获取单元,用于获取相关度集合中的最大相关度。目标第二灰度值序列得到单元,用于当最大相关度大于预设相关度阈值时,将最大相关度对应的第二灰度值序列作为目标第一灰度值序列对应的目标第二灰度值序列。子相位序列确定单元,用于获取目标第一灰度值序列对应的目标第一子相位序列,获取目标第二灰度值序列对应的目标第二子相位序列,将目标第二子相位序列作为目标第一子相位序列对应的第二子相位序列。
在一些实施例中,三维重建模块1414包括:第一目标像素获取单元,用于获取目标第一子相位序列中各个相位分别对应的像素,作为第一目标像素。同名点得到单元,用于根据对应的目标第二子相位序列中各个相位分别对应的像素,插值得到各个第一目标像素分别对应的第二目标像素,将第二目标像素作为第一目标像素的同名点。
在一些实施例中,该装置还包括第一采样点序列集合得到模块以及第一灰度值序列集合得到模块。其中,第一采样点序列集合得到模块用于将各个第一采样点序列进行组合,得到第一采样点序列集合。第一灰度值序列集合得到模块包括:第一截断相位得到单元,用于获取第一相位序列在截断相位处的相位,得到第一截断相位。第一相移量得到单元,用于根据第一截断相位,得到第一相移量。第一平移采样点个数得到单元,用于计算第一相移量包括的相位间隔的数量,作为第一平移采样点个数。平移后的第一采样点序列集合得到单元,用于根据第一平移采样点个数对第一采样点序列集合进行平移,得到平移后的第一采样点序列集合。第一灰度值序列集合得到单元,用于根据平移后的第一采样点序列集合,得到第一灰度值序列集合。
关于复合编码的三维重建装置的具体限定可以参见上文中对于复合编码的三维重建方法的限定,在此不再赘述。上述复合编码的三维重建装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一些实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图15所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种复合编码的三维重建方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一些实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述复合编码的三维重建方法的步骤。
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述复合编码的三维重建方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种复合编码的三维重建方法,所述方法包括:
获取目标物体对应的第一目标散斑图以及第二目标散斑图;
获取第一相移图对应的第一子相位序列以及第二相移图对应的第二子相位序列,其中,所述第一子相位序列是根据相位周期对所述第一相移图对应的第一相位序列进行分割得到的,所述第二子相位序列是根据所述相位周期对所述第二相移图对应的第二相位序列进行分割得到的,所述第一相移图与所述第一目标散斑图是根据相同的相机在相同的角度采集到的图像得到的,所述第二相移图与所述第二目标散斑图是根据相同的相机在相同的角度采集到的图像得到的;
获取所述第一子相位序列对应的第一插值相位序列,获取所述第二子相位序列对应的第二插值相位序列,所述第一插值相位序列以及所述第二插值相位序列是通过对相位周期进行采样得到的;
根据所述第一子相位序列中各个相位分别对应的像素,确定对应的第一插值相位序列中各个相位分别对应的像素,组成所述第一子相位序列对应的第一采样点序列,根据所述第二子相位序列中各个相位分别对应的像素,确定对应的第二插值相位序列中各个相位分别对应的像素,组成所述第二子相位序列对应的第二采样点序列;
根据预设插值算法,确定所述第一采样点序列中各个第一采样点在所述第一目标散斑图中分别对应的第一灰度值,组成所述第一采样点序列对应的第一灰度值序列,将各个所述第一灰度值序列进行组合,得到第一灰度值序列集合,根据所述预设插值算法,确定所述第二采样点序列中各个第二采样点在所述第二目标散斑图中分别对应的第二灰度值,组成所述第二采样点序列对应的第二灰度值序列,将各个所述第二灰度值序列进行组合,得到第二灰度值序列集合;
根据所述第一灰度值序列集合以及所述第二灰度值序列集合进行相关度计算,确定各个所述第一子相位序列分别对应的所述第二子相位序列;
根据各个所述第一子相位序列对对应的所述第二子相位序列进行插值,得到各个所述第一子相位序列中各个相位分别对应的同名点,根据各个所述同名点对所述目标物体进行三维重建。
2.根据权利要求1所述的方法,其特征在于,所述获取第一相移图对应的第一子相位序列以及第二相移图对应的第二子相位序列,包括:
获取所述第一相移图对应的折叠相位序列,作为所述第一相位序列,获取所述第二相移图对应的折叠相位序列,作为所述第二相位序列;
根据折叠相位的相位周期对所述第一相位序列进行分割,得到所述第一相移图对应的多个第一子相位序列;
根据折叠相位的相位周期对所述第二相位序列进行分割,得到所述第二相移图对应的多个第二子相位序列。
3.根据权利要求1所述的方法,其特征在于,所述获取所述第一子相位序列对应的第一插值相位序列,获取所述第二子相位序列对应的第二插值相位序列,包括:
获取预设相位间隔;
根据所述预设相位间隔在所述第一子相位序列对应的折叠相位周期内进行采样,得到所述第一子相位序列对应的第一插值相位序列;
根据所述预设相位间隔在所述第二子相位序列对应的折叠相位周期内进行采样,得到所述第二子相位序列对应的第二插值相位序列。
4.根据权利要求1所述的方法,其特征在于,所述根据预设插值算法,确定所述第一采样点序列中各个第一采样点在所述第一目标散斑图中分别对应的第一灰度值,包括:
根据预设插值算法,确定所述第一采样点序列中各个第一采样点在所述第一目标散斑图中分别对应的第一插值系数;
根据所述第一插值系数,对所述第一目标散斑图进行插值,得到所述第一采样点序列中各个第一采样点在所述第一目标散斑图中分别对应的第一灰度值;
所述根据所述预设插值算法,确定所述第二采样点序列中各个第二采样点在所述第二目标散斑图中分别对应的第二灰度值,包括:
根据所述预设插值算法,确定所述第二采样点序列中各个第二采样点在所述第二目标散斑图中分别对应的第二插值系数;
根据所述第二插值系数,对所述第二目标散斑图进行插值,得到所述第二采样点序列中各个第二采样点在所述第二目标散斑图中分别对应的第二灰度值。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一灰度值序列集合以及所述第二灰度值序列集合进行相关度计算,确定各个所述第一子相位序列分别对应的所述第二子相位序列,包括:
从所述第一灰度值序列集合中选取目标第一灰度值序列;
分别计算所述目标第一灰度值序列与所述第二灰度值序列集合中各个第二灰度值序列之间的相关度,得到所述目标第一灰度值序列对应的相关度集合;
获取所述相关度集合中的最大相关度;
当所述最大相关度大于预设相关度阈值时,将所述最大相关度对应的第二灰度值序列作为所述目标第一灰度值序列对应的目标第二灰度值序列;
获取所述目标第一灰度值序列对应的目标第一子相位序列,获取所述目标第二灰度值序列对应的目标第二子相位序列,将所述目标第二子相位序列作为所述目标第一子相位序列对应的第二子相位序列。
6.根据权利要求5所述的方法,其特征在于,所述根据各个所述第一子相位序列对对应的所述第二子相位序列进行插值,得到各个所述第一子相位序列中各个相位分别对应的同名点包括:
获取所述目标第一子相位序列中各个相位分别对应的像素,作为第一目标像素;
根据对应的所述目标第二子相位序列中各个相位分别对应的像素,插值得到各个所述第一目标像素分别对应的第二目标像素,将所述第二目标像素作为所述第一目标像素的同名点。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:将各个所述第一采样点序列进行组合,得到第一采样点序列集合,所述第一灰度值序列集合的得到步骤包括:
获取所述第一相位序列在截断相位处的相位,得到第一截断相位;
根据所述第一截断相位,得到第一相移量;
计算所述第一相移量包括的相位间隔的数量,作为第一平移采样点个数;
根据所述第一平移采样点个数对所述第一采样点序列集合进行平移,得到平移后的第一采样点序列集合;
根据所述平移后的第一采样点序列集合,得到所述第一灰度值序列集合。
8.一种复合编码的三维重建装置,其特征在于,所述装置包括:
目标散斑图获取模块,用于获取目标物体对应的第一目标散斑图以及第二目标散斑图;
子相位序列获取模块,用于获取第一相移图对应的第一子相位序列以及第二相移图对应的第二子相位序列,其中,所述第一子相位序列是根据相位周期对所述第一相移图对应的第一相位序列进行分割得到的,所述第二子相位序列是根据所述相位周期对所述第二相移图对应的第二相位序列进行分割得到的,所述第一相移图与所述第一目标散斑图是根据相同的相机在相同的角度采集到的图像得到的,所述第二相移图与所述第二目标散斑图是根据相同的相机在相同的角度采集到的图像得到的;
插值相位序列获取模块,用于获取所述第一子相位序列对应的第一插值相位序列,获取所述第二子相位序列对应的第二插值相位序列,所述第一插值相位序列以及所述第二插值相位序列是通过对相位周期进行采样得到的;
采样点序列组成模块,用于根据所述第一子相位序列中各个相位分别对应的像素,确定对应的第一插值相位序列中各个相位分别对应的像素,组成所述第一子相位序列对应的第一采样点序列,根据所述第二子相位序列中各个相位分别对应的像素,确定对应的第二插值相位序列中各个相位分别对应的像素,组成所述第二子相位序列对应的第二采样点序列;
灰度值序列集合得到模块,用于根据预设插值算法,确定所述第一采样点序列中各个第一采样点在所述第一目标散斑图中分别对应的第一灰度值,组成所述第一采样点序列对应的第一灰度值序列,将各个所述第一灰度值序列进行组合,得到第一灰度值序列集合,根据所述预设插值算法,确定所述第二采样点序列中各个第二采样点在所述第二目标散斑图中分别对应的第二灰度值,组成所述第二采样点序列对应的第二灰度值序列,将各个所述第二灰度值序列进行组合,得到第二灰度值序列集合;
子相位序列确定模块,用于根据所述第一灰度值序列集合以及所述第二灰度值序列集合进行相关度计算,确定各个所述第一子相位序列分别对应的所述第二子相位序列;
三维重建模块,用于根据各个所述第一子相位序列对对应的所述第二子相位序列进行插值,得到各个所述第一子相位序列中各个相位分别对应的同名点,根据各个所述同名点对所述目标物体进行三维重建。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述复合编码的三维重建方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述复合编码的三维重建方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010076338.0A CN111292421B (zh) | 2020-01-23 | 2020-01-23 | 复合编码的三维重建方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010076338.0A CN111292421B (zh) | 2020-01-23 | 2020-01-23 | 复合编码的三维重建方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111292421A CN111292421A (zh) | 2020-06-16 |
CN111292421B true CN111292421B (zh) | 2022-08-05 |
Family
ID=71020148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010076338.0A Active CN111292421B (zh) | 2020-01-23 | 2020-01-23 | 复合编码的三维重建方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111292421B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113596330B (zh) * | 2021-07-28 | 2023-04-07 | 北京水木东方医用机器人技术创新中心有限公司 | 红外光学定位器刷新率提升方法、装置及设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5001286B2 (ja) * | 2005-10-11 | 2012-08-15 | プライム センス リミティド | 対象物再構成方法およびシステム |
CN101608908B (zh) * | 2009-07-20 | 2011-08-10 | 杭州先临三维科技股份有限公司 | 数字散斑投影和相位测量轮廓术相结合的三维数字成像方法 |
CN104596439A (zh) * | 2015-01-07 | 2015-05-06 | 东南大学 | 一种基于相位信息辅助的散斑匹配三维测量方法 |
CN107504919B (zh) * | 2017-09-14 | 2019-08-16 | 深圳大学 | 基于相位映射的折叠相位三维数字成像方法及装置 |
-
2020
- 2020-01-23 CN CN202010076338.0A patent/CN111292421B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111292421A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang | Absolute phase retrieval methods for digital fringe projection profilometry: A review | |
Lu et al. | Motion induced error reduction methods for phase shifting profilometry: A review | |
Jeon et al. | Depth from a light field image with learning-based matching costs | |
US10584963B2 (en) | System and methods for shape measurement using dual frequency fringe pattern | |
JP3651590B2 (ja) | 点、線から、及び/または画像強度から直接に、3次元シーン構造及びカメラの動きを復元する方法 | |
US20120176478A1 (en) | Forming range maps using periodic illumination patterns | |
US20120176380A1 (en) | Forming 3d models using periodic illumination patterns | |
CN109945802B (zh) | 一种结构光三维测量方法 | |
CN113160282A (zh) | 用于对运动的对象进行三维测量的方法和装置 | |
CN111292421B (zh) | 复合编码的三维重建方法、装置、计算机设备和存储介质 | |
CN111325683B (zh) | 基于复合编码三维重建的散斑灰度校正方法和装置 | |
Wu et al. | A general phase ambiguity suppression algorithm combining geometric constraints and temporal phase unwrapping | |
Nguyen et al. | Learning-based 3D imaging from single structured-light image | |
CN111311731B (zh) | 基于数字投影的随机灰度图生成方法、装置和计算机设备 | |
CN116645466A (zh) | 一种三维重建方法及电子设备、存储介质 | |
Duan et al. | Quasi-periodic phase coding for long-depth-range 3-D measurements of moving objects | |
Tjahjadi | Photogrammetric area-based least square image matching for surface reconstruction | |
Johannsen et al. | Occlusion-aware depth estimation using sparse light field coding | |
d'Angelo et al. | Image-based 3D surface reconstruction by combination of photometric, geometric, and real-aperture methods | |
Kim et al. | An accurate and robust stereo matching algorithm with variable windows for 3D measurements | |
CN114897959A (zh) | 基于光场多视角约束的相位展开方法及相关组件 | |
CN111815697B (zh) | 一种热变形动态三维测量方法 | |
JP6590489B2 (ja) | 情報処理装置および方法 | |
Xing et al. | Scale-consistent fusion: from heterogeneous local sampling to global immersive rendering | |
US6788808B1 (en) | Method and device for optically determining depth |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |