一种三维重建方法和终端设备与流程

未命名 09-24 阅读:49 评论:0


1.本技术实施例涉及三维重建技术领域,尤其涉及一种端侧交互式三维重建方法及终端设备。


背景技术:

2.三维重建能够基于图像信息重构物体的三维几何模型,这种三维模型能够广泛应用于元宇宙、增强现实ar、虚拟现实vr等领域。
3.现有的基于rgb端侧相机的三维重建方法需要用户使用设备对静止的物体环绕一圈,建模体验较差,且难以提供有效的引导。


技术实现要素:

4.本技术提供一种三维重建方法和终端设备,能够在三维重建过程中对用户提供有效的引导,提高用户体验。
5.第一方面,提供一种三维重建方法,该方法应用于终端设备,包括:根据所述第一区域和所述终端设备的第一位姿向用户提示第一扫描路径,所述第一区域是所述目标对象上未建立三维视图的区域,所述第一扫描路径用于提示用户采集包括所述第一区域的视图的扫描路径;根据用户采集的第一视图,建立第一三维视图,所述第一视图为包括所述第一区域的一个或多个视图,所述第一三维视图包括所述第一区域的三维视图。
6.终端设备根据目标对象上未进行三维重建的第一区域和终端设备所处的第一位姿,向用户提示第一扫描路径,从而用户可以根据该第一扫描路径对第一区域进行扫描。终端设备向用户提示扫描路径用于对目标对象进行扫描,用户能够在扫描时获得有效的引导,提升三维重建时用户的体验感。终端设备可以根据用户扫描获得的第一视图,对第一区域进行三维重建。
7.结合第一方面,在第一方面的某些实现方式中,所述第一视图为用户手持所述目标对象的视图,所述第一三维视图为所述第一区域的三维视图。
8.终端设备三维重建使用的第一视图是用户手持目标对象的视图,终端设备在进行三维重建时,能够将人手与目标对象分开,只对目标对象上的区域进行重建,即能够实现将人手等环境与目标对象进行分割,能够扩展本技术技术方案的应用场景。
9.结合第一方面,在第一方面的某些实现方式中,所述根据用户采集的第一视图,建立第一三维视图包括:根据所述第一视图,确定第二视图,所述第二视图的分辨率低于所述第一视图的分辨率;根据所述第二视图,确定第一深度,所述第一深度为所述第二视图对应的深度;根据所述第一深度和所述第一视图,确定第二深度,所述第二深度为所述第一视图对应的深度;根据所述第二深度,建立第一三维视图。
10.在该实现方式中,终端设备能够根据获得的较高分辨率的第一视图,通过例如下采样获得较低分辨率的第二视图,从而可以根据第二视图,确定依据第二视图得出的第一深度,即低分辨率下的深度,再使用具有较高分辨率的第一视图计算所需要的第二深度时,
将在低分辨率下获得的第一深度作为高分辨率视图计算深度的初值,减小深度搜索范围,从而减小深度计算和三维重建过程中的计算量。此外,在较低分辨率下先确定深度搜索范围,能够减小弱纹理区对深度计算的影响,获得更好的三维重建结果。
11.在本技术实施例中,上述通过不同分辨率的视图进行深度计算,并使用低分辨率下深度计算的结果作为较高分辨率视图深度计算的初值的方式可以使用更多级别分辨率视图,逐级减小深度搜索范围。
12.结合第一方面,在第一方面的某些实现方式中,所述根据所述第二视图,确定第一深度,包括:根据所述第二视图,确定第一特征图,所述第一特征图是根据所述第二视图提取的特征图;根据所述第一特征图,确定第一深度;其中,所述根据所述第一深度和所述第一视图,确定第二深度包括:根据所述第一视图和所述第一特征图,确定第二特征图;根据所述第二特征图和所述第一深度,确定第二深度。
13.先根据低分辨率视图得到第一特征图,即描述该低分辨率的第二视图的特征的第一特征图,根据该特征图可以得出低分辨率视图下的深度,再参照高分辨率的第一视图,对第一特征图进行上采样,获得特征图增量,从而获得高分辨率的第二特征图,从而能够减小直接对高分辨率的第一视图提取特征的计算量,提高三维重建的速度。
14.在本技术实施例中,上述对于特征图增量的确定也可以经过多级分辨率视图,逐级计算高分辨率一级的视图相对于低分辨率视图的特征图增量,减小计算量,提高特征提取的速率。
15.结合第一方面,在第一方面的某些实现方式中,在所述根据用户采集的第一视图,建立第一三维视图之前,所述方法还包括:确定采集所述第一视图的实际扫描路径与所述第一扫描路径匹配。
16.终端设备能够对用户进行扫描的实际扫描路径与指示的第一扫描路径进行比对,在实际扫描路径与第一扫描路径匹配时,继续向用户提示该第一扫描路径。从而前述的第一视图可以为用户按照第一扫描路径进行扫描所获得的视图。
17.结合第一方面,在第一方面的某些实现方式中,在所述根据用户采集的第一视图,建立第一三维视图之前,所述方法还包括:确定采集所述第一视图的实际扫描路径与所述第一扫描路径不匹配;根据第二区域和所述终端设备的第二位姿向用户提示第二扫描路径,所述第二区域是所述第一区域或者所述第一区域的一部分,所述第二扫描路径用于提示用户采集包括所述第二区域的视图的扫描路径。
18.在用户进行扫描的实际扫描路径与指示的第一扫描路径不匹配时,例如终端设备没有依据扫描路径对目标对象的第一区域进行扫描,例如终端设备扫描了第一区域上除第二区域外的区域,即第二区域未被扫描,从而终端设备可以依据该第二区域和终端设备的第二位姿,更新向用户提示的扫描路径,即向用户提示第二扫描路径,用于指示用户对第一区域除第二区域以外的其他区域进行扫描。从而前述的第一视图是不是按照第一扫描路径进行扫描获得的视图。
19.结合第一方面,在第一方面的某些实现方式中,所述方法还包括:根据用户设置的路径长度参数和方向改变次数参数,确定第一扫描路径。
20.第一扫描路径用于使所述终端设备获取所述目标对象的第一区域的一个或多个视图时,扫描路径的长度和方向改变次数满足预设条件。该预设条件可以是用户设置的,例
如为路径长度参数和方向改变次数相关的参数。
21.在该实现方式中,终端设备提示的第一扫描路径能够使得用户按照该第一扫描路径进行扫描时,路径长度和扫描时方向改变次数满足预设条件,提高用户进行扫描的体验感。
22.结合第一方面,在第一方面的某些实现方式中,所述第一扫描路径满足以下公式:
[0023][0024]
其中,opt为第一扫描路径,path为遍历所述目标对象的第一区域的路径,w1和w2为权重,length为路径的长度,changes为路径的方向改变次数。
[0025]
终端设备按照上述公式对扫描路径进行优化,从而满足用户对扫描路径的长度和方向改变次数的要求,使得用户使用最短的路径和最少的方向改变次数对目标对象进行扫描,提高三维重建过程中用户的体验感和操作便捷性。
[0026]
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:根据用户指示输出以下至少一项材质贴图:漫反射贴图、法线贴图、粗糙贴图、高光贴图、置换贴图和环境吸收贴图。
[0027]
在该实现方式中,终端设备能够根据用户的需求,对完成三维重建的模型进行材质与光照解耦,输出用户想要的材质,提高用户的体验感。
[0028]
结合第一方面,在第一方面的某些实现方式中,所述第一视图是色彩视图。
[0029]
结合第一方面,在第一方面的某些实现方式中,所述方法还包括:向用户提示第三区域,所述第三区域是所述目标对象上已建立三维视图的区域。。
[0030]
终端设备能够实时显示已经建立三维视图的区域,从而用户能够根据终端设备的显示获知哪些区域已经进行三维重建,从而能够更好地依据终端设备提示的扫描路径进行扫描,用户体验感较好。
[0031]
第二方面,提供了一种终端设备,所述终端设备包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:根据所述第一区域和所述终端设备的第一位姿向用户提示第一扫描路径,所述第一区域是所述目标对象上未建立三维视图的区域,所述第一扫描路径用于提示用户采集包括第一区域的视图的扫描路径;根据用户采集的第一视图,建立第一三维视图,所述第一视图为包括所述第一区域的一个或多个视图,所述第一三维视图包括所述第一区域的三维视图。
[0032]
结合第二方面,在第二方面的某些实现方式中,所述第一视图为用户手持所述目标对象的视图,所述第一三维视图为所述第一区域的三维视图。
[0033]
结合第二方面,在第二方面的某些实现方式中,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:根据所述第一视图,确定第二视图,所述第二视图的分辨率低于所述第一视图的分辨率;根据所述第二视图,确定第一深度,所述第一深度为所述第二视图对应的深度;根据所述第一深度和所述第一视图,确定第二深度,所述第二深度为所述第一视图对应的深度;根据所述第二深度,建立第一三维视图。
[0034]
结合第二方面,在第二方面的某些实现方式中,当所述指令被所述一个或多个处
理器执行时,使得所述终端设备执行以下步骤:根据所述第二视图,确定第一特征图,所述第一特征图为根据所述第二视图提取的特征图;根据所述第一特征图,确定第一深度;其中,所述根据所述第一深度和所述第一视图,确定第二深度包括:根据所述第一视图和所述第一特征图,确定第二特征图;根据所述第二特征图和所述第一深度图,确定第二深度。
[0035]
结合第二方面,在第二方面的某些实现方式中,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:确定采集所述第一视图的实际扫描路径与所述第一扫描路径匹配。
[0036]
结合第二方面,在第二方面的某些实现方式中,在所述根据用户采集的第一视图,建立第一三维视图之前,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:确定采集所述第一视图的实际扫描路径与所述第一扫描路径不匹配;根据第二区域和所述终端设备的第二位姿向用户提示第二扫描路径,所述第二区域是所述第一区域或者所述第一区域的一部分,所述第二扫描路径用于提示用户采集包括所述第二区域的视图的扫描路径。采集所述第一视图的实际扫描路径与所述第一扫描路径不匹配,向用户提示第二扫描路径。
[0037]
结合第二方面,在第二方面的某些实现方式中,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:根据用户设置的路径长度参数和方向改变次数参数,确定第一扫描路径。
[0038]
结合第二方面,在第二方面的某些实现方式中,所述第一扫描路径满足以下公式:
[0039][0040]
其中,opt为第一扫描路径,path为遍历所述目标对象的目标区域的路径,w1和w2为权重,length为路径的长度,changes为路径的方向改变次数。
[0041]
结合第二方面,在第二方面的某些实现方式中,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:根据用户指示输出以下至少一项材质贴图:漫反射贴图、法线贴图、粗糙贴图、高光贴图、置换贴图和环境吸收贴图。
[0042]
结合第二方面,在第二方面的某些实现方式中,所述第一视图是色彩rgb视图。
[0043]
结合第二方面,在第二方面的某些实现方式中,所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:向用户提示第三区域,所述第三区域是所述目标对象上已经建立三维视图的区域。
[0044]
第三方面,提供了一种终端设备,包括:提示单元,用于根据第一区域和所述终端设备的第一位姿向用户提示第一扫描路径,所述第一区域是所述目标对象上未建立三维视图的区域,所述第一扫描路径用于提示用户采集包括所述第一区域的视图的扫描路径;处理单元,用于根据所述第一视图,建立第一三维视图,所述第一视图为包括所述第一区域的一个或多个视图,所述第一三维视图包括所述第一区域的三维视图。
[0045]
第四方面,提供了一种计算机可读存储介质,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行第一方面或第一方面任意一种实现方式的方法。
[0046]
第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被运行时,实现第一方面或第一方面任意一种实现方式的方法。
附图说明
[0047]
图1是本技术实施例适用的终端设备的结构示意图。
[0048]
图2是本技术实施例提供的系统架构示意图。
[0049]
图3是本技术实施例提供的一种三维重建方法示意性流程图。
[0050]
图4是本技术实施例提供的白膜示意图。
[0051]
图5是本技术实施例提供的扫描轨迹指示方式示意图。
[0052]
图6是本技术实施例提供的用于主体分割的卷积神经网络的结构示意图。
[0053]
图7是本技术实施例提供的主体分割的输入视图和输出掩膜图。
[0054]
图8是本技术实施例提供的三维重建结果示意图。
[0055]
图9是本技术实施例提供的一种终端设备的示意图。
[0056]
图10是本技术实施例提供的另一种终端设备的示意图。
具体实施方式
[0057]
下面将结合附图,对本技术中的技术方案进行描述。
[0058]
由于本技术实施例涉及大量神经网络的应用,为了便于理解,下面先对本技术实施例涉及的相关术语及神经网络等相关概念进行介绍。
[0059]
(1)卷积神经网络
[0060]
卷积神经网络(cnn,convolutional neuron network)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。
[0061]
卷积神经网络中可以包括输入层、卷积层、池化层、以及全连接层。
[0062]
卷积层:
[0063]
卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
[0064]
当卷积神经网络有多个卷积层的时候,初始的卷积层往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络深度的加深,越往后的卷积层提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
[0065]
池化层:
[0066]
在卷积神经网络中池化层是可选的。由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的目的是减少图像的空
diode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,amoled),柔性发光二极管(flex light-emitting diode,fled),miniled,microled,micro-oled,量子点发光二极管(quantum dot light emitting diodes,qled)等。在一些实施例中,终端设备100可以包括1个或n个显示屏194,n为大于1的正整数。
[0085]
终端设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
[0086]
isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
[0087]
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,终端设备100可以包括1个或n个摄像头193,n为大于1的正整数。
[0088]
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
[0089]
视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
[0090]
npu为神经网络(neural-network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0091]
外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
[0092]
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。
[0093]
结合图1所示的终端设备,图2以图1中的处理器110的功能介绍本技术实施例提供的三维重建的方法的系统架构。处理器110主要用于实现本技术三维重建的方法的实时处
理和后处理两个部分,将输入的图像经过重建最终生成所需要的3d模型。
[0094]
在实时处理部分,输入为图像,输出为白膜。对输入的图像进行主体分割,获得只包括目标对象的图像,基于终端设备的位姿即该终端设备的相机相对于目标对象的位姿选择关键帧,根据多视图深度计算原理使用多个视图计算深度,基于获得的深度图得到三维点云,从而生成网格,将网格投影到目标物体的图像上生成白膜,实时提醒用户已经完成建模的模块,此外,本技术提供的技术方案能够基于相机的位姿与已经完成的建模部分,计算最优扫描轨迹,并引导用户按照最优轨迹进行物体扫描,增加三维重建的速度与成功率。重定位模块在位姿估计失败时,重新定位手机位置,并将重定位的图像作为关键帧计算深度图。
[0095]
在后处理部分,对位姿、深度图、网格进行优化,从而得到高质量的建模结果,实现光照与材质的解耦,从而输出准确的漫反射、法线、粗糙、高光、置换、环境吸收图像。
[0096]
基于图1所示的终端设备,如图3所示,本技术实施例提供了一种三维重建的方法,该方法应用于终端设备,该方法包括:
[0097]
终端设备可以提供用于三维重建的应用程序(application,app),并在终端设备的界面显示该app标识。由于三维重建需要对目标物体进行扫描,该app可以与终端设备的相机应用程序结合使用,例如将app的功能作为相机的一部分功能,例如从相机界面进入三维重建的功能。或者,也可以将该app独立设置,仅在扫描时使用终端设备的摄像头。
[0098]
s310,根据第一区域和终端设备的第一位姿向用户提示第一扫描路径,所述第一区域是目标对象上未建立三维视图的区域,所述第一扫描路径用于提示用户采集包括所述第一区域的视图的扫描路径。
[0099]
在s310中,第一扫描路径既可以用于指示终端设备移动的路径,也可以指示目标对象的移动路径,或者可以指示终端设备和目标对象的移动路径。即按照该扫描路径移动目标对象和/或终端设备可以获取目标对象的未建立三维视图的所有区域的视图。
[0100]
在本技术实施例中,第一扫描路径是根据目标对象未建立三维视图的第一区域和终端设备的位姿确定的。由于对目标对象进行三维重建时扫描获得的实际上是目标对象的表面形状,本技术技术方案中所称的区域都是目标对象的表面区域。
[0101]
终端设备的位姿可以为终端设备相对于目标对象的位姿,终端设备的位姿也被称为终端设备在同一时刻拍摄的某一视图的位姿,即终端设备的相机的位姿,可以理解为终端设备的相机坐标系在世界坐标系下的转换,即旋转和偏移。也就是说,可以通过其相机的位姿矩阵表示,相机的位姿矩阵包括偏移和旋转的转换矩阵。终端设备的位姿也可以理解为终端设备的相机的参数,例如,相机的内部参数或相机的外部参数等。终端设备的位姿可以通过对终端设备或者目标对象移动过程中的视图的进行计算获得。
[0102]
在目标对象还没有开始三维重建时,第一区域即为整个目标对象的表面,可以根据终端设备的位姿和第一区域确定第一扫描路径。在目标对象的一部分区域已经建立了三维视图的情况下,未建立三维视图的区域为第一区域,终端设备可以根据未建立三维视图的区域和终端设备的位姿确定第一扫描路径。
[0103]
在本技术实施例中,对于用户来说,第一区域是未建立三维视图的区域,终端设备可以向用户提示第三区域,第三区域是目标对象上已经建立三维视图的区域。例如,可以通过在已经建立三维视图的区域上覆盖白膜以直观地向用户指示哪些区域已经三维重建完
成。白膜即在部分区域表面将相应区域的透明或半透明的三维膜覆盖在表面,白膜是基于该区域的三维重建结果生成。图4示出了本技术实施例提供的白膜示意图,可以看出,通过覆盖在已建立三维视图的区域的白膜,用户可以清晰地知道哪些区域需要三维重建,从而可以根据白膜的覆盖区域继续进行扫描,完成整个目标对象的三维重建。
[0104]
本技术可以通过不限定于空间箭头或平面箭头的方式,指示用户按照确定的扫描路径进行扫描,图4中还示出了通过空间箭头指引用户按照确定的扫描路径进行扫描的场景。除了箭头的形式,还可以通过文字、手势图像或视频、语音等引导用户按照确定的扫描路径进行扫描,本技术对具体引导的方式不做限定。
[0105]
结合白膜和空间箭头的指引,三维重建的可视性和用户操作的便捷性进一步增加。
[0106]
对于终端设备而言,由于目标对象的形状各异,终端设备在确定第一扫描路径时是不好直接使用覆盖的白膜来进行第一扫描路径的规划的。具体而言,终端设备实际上会将目标对象建立的三维视图投影到以目标对象为中心的圆球上,从而对应于目标对象的每个区域,都能够在圆球上有相应的投影区域,具体投影的方式不做限定。这样,已建立三维视图的区域和未建立三维视图的区域能够各自占据圆球的一部分表面。例如可以将该圆球被离散为若干栅格,存在投影三角形的栅格为已经建立三维视图的区域,否则为未建立三维视图的区域,终端设备可以利用投影圆球并结合终端设备的位姿,确定第一扫描路径,从而向用户提示该扫描路径。
[0107]
在一些实施例中,根据用户设置的路径长度参数和方向改变次数参数,确定第一扫描路径。即第一扫描路径是根据用户设置的参数生成的,该参数可以为路径长度的权重和方向改变次数的权重,从而第一扫描路径用于使所述终端设备获取所述目标对象的第一区域的一个或多个视图时,扫描路径的长度和方向改变次数满足预设条件。即用户使用该扫描路径进行扫描,可以在使得获取未建立三维视图的第一区域的一个或多个视图时,能够对扫描路径的长度或者方向改变次数有一定的优化,例如使用较短的扫描路径或者扫描过程中方向改变次数较少完成对第一区域的扫描。
[0108]
在本技术实施例中,可以根据如下目标函数的求解,确定第一扫描路径。
[0109][0110]
其中,opt为待确定的第一扫描路径,path为能够遍历第一区域的所有路径,length为每个路径的长度,changes为按照每个路径进行扫描时扫描方向的改变次数,length和changes都是path的函数,w1和w2为权重,都在0-1的范围内变化。w1+w2可以为1,用户可以按照需要设置不同的权重。当用户想要扫描路径较短,则可以将w1设置的大一些,例如可以将w1设置为0.7,w2设置为0.3。当用户想要扫描过程中扫描方向改变的次数较少,可以将w2设置的大一些例如可以将w1设置为0.3,w2设置为0.7。由于当扫描路径的长度和扫描时间负相关,从而根据该目标函数的求解结果,可以为用户确定扫描时间最短且扫描方向改变的次数最少的扫描路径。
[0111]
通过对扫描路径的优化,用户可以在扫描过程中自行设置扫描参数,获得较好的用户体验感。
[0112]
s320,根据用户采集的第一视图,建立第一三维视图,所述第一视图为包括所述第
一区域的一个或多个视图,所述第一三维视图包括所述第一区域的三维视图。
[0113]
在s320之前,终端设备会获取用户使用终端设备采集的第一视图。
[0114]
包括第一区域即意味着第一视图描述了第一区域的图像,第一视图可以包括目标对象的其他已建立三维视图的区域,也可以包括目标对象所在的环境,但是至少需要包括第一区域的图像,从而利用该部分图像进行三维重建。
[0115]
一个视图是指第一视图从一个角度描绘该第一区域。当终端设备获取的是包括第一区域的一个视图时,该一个视图可以是彩色和深度(red green blue and depth,rgbd)视图,即包括色彩与深度信息的视图,从而包括第一区域的深度信息。深度即目标对象表面的点到相机光心距离。该第一视图可以为通过配置深度相机的终端设备拍摄的,从而终端设备可以直接根据该第一视图对目标对象的第一区域进行三维重建。深度相机可以包括结构光深度相机(例如kinect)和飞行时间(time of flight,tof)相机。
[0116]
多个视图是指第一视图从至少两个角度描绘该第一区域。当终端设备获取的是包括第一区域的多个视图时,在一些实施例中,该多个视图也可以是rgbd视图,终端设备可以依据该多个视图对目标对象的第一区域进行三维重建,终端设备可以对多个视图进行处理,例如通过对深度信息进行平均减小深度测量的误差,从而根据最终获得的深度信息对目标对象的第一区域进行三维重建。
[0117]
在另一些实施例中,该多个视图可以为彩色(red green blue,rgb)视图,即只包括第一区域的色彩信息。终端设备可以根据该多个视图计算出第一区域的深度,从而对第一区域进行重建。
[0118]
当第一视图是rgbd视图时,无论该第一视图是第一区域的一个视图还是多个视图,对于获得该第一视图的方式没有特别的限定。而当第一视图为rgb视图时,该第一视图的获取方式需要满足一定的条件。
[0119]
下面以第一视图包括两个视图为例说明第一视图为rgb视图的获取方法:
[0120]
两个视图指该第一视图从两个角度描绘该第一区域。在一些实施例中,该两个视图可以是两个不同位姿的摄像头拍摄的。该两个摄像头可以位于两个终端上,例如两个具有单摄像头的手机。该两个摄像头可以位于一个终端上,例如具有双摄像头的手机,平板等设备。
[0121]
在另一些实施例中,该两个视图可以是一个摄像头拍摄的。可以使目标对象保持静止,通过摄像头的移动在不同角度为目标物体拍摄两个视图。也可以使得摄像头保持静止,通过手握持目标对象或者移动目标对象的方式获得目标对象的两个视图。
[0122]
例如,如图5所示,在该三维重建方法是通过app实施的情况下,可以通过在app界面提示用户选择使用不同模式进行目标对象的扫描。模式1可以为将目标对象放置在支撑物上,终端设备移动而目标对象保持静止获取第一视图;而模式2可以为手持目标对象,通过移动目标对象而终端设备保持不动的方式获得第一视图;模式3可以为终端设备和目标对象同时移动获得第一视图。从而如图5的(a)所示,在模式1中,可以提示用户“请将终端设备按照箭头方向移动”,从而用户可以在该模式下移动终端设备进行扫描;在模式2中,即如图5的(b)所示,可以提示用户“请将目标对象按照箭头方向移动”,从而用户可以在该模式下移动目标对象进行扫描;在模式3中,即如图5的(c)所示,可以提示用户“请将目标对象或终端设备按照箭头方向移动”,从而用户可以按照喜好移动终端设备或目标对象或者同时
移动终端设备和目标对象。
[0123]
应理解,app也可以不提示用户选择相应的模式,从而智能匹配用户实际使用的扫描方式,直接进行三维重建。
[0124]
第一视图为两个以上的多个视图,即第一视图为从两个以上角度描述该目标对象时,获取方式和获取两个视图的方式类似。例如可以用更多的摄像头拍摄物体多个视图,或者使用两个摄像头通过摄像头的移动或目标物体的移动拍摄多个视图,或者使用单个摄像头进行多次拍摄获取多个视图。此外,上述视图可以是在扫描视频中提取的,也可以是直接根据扫描路径拍摄的图像,本技术对视图获取的方式不做限定。
[0125]
在第一视图是从扫描视频中提取的情况下,为了减少需要计算的帧的数量,一般会从视频中获取关键帧当作第一视图从而基于该关键帧进行三维重建,关键帧的选择会基于视图的位姿(即终端设备的位姿)确定。
[0126]
在本技术实施例中,在所述根据用户采集的第一视图,建立第一三维视图之前,所述方法还包括:确定采集所述第一视图时的实际扫描路径与所述第一扫描路径匹配。
[0127]
匹配即用户在扫描过程中,终端设备或者目标对象的实际移动轨迹或位姿偏离第一扫描路径的程度低于预设阈值,即用户依据第一扫描路径进行扫描从而终端设备获取了该第一视图。
[0128]
例如在终端设备移动而目标对象静止的条件下,用户在移动终端设备对目标对象进行扫描的过程中终端设备所处的位姿(即终端设备相对于目标对象的位姿)偏离第一扫描路径的程度始终低于预设阈值,从而终端设备最终获取了第一视图。终端设备会一直依据第一扫描路径提醒用户进行扫描,例如通过第一子扫描路径、第二子扫描路径、第三子扫描路径等提醒用户移动终端设备,第一子扫描路径、第二子扫描路径、第三子扫描路径均为第一扫描路径的一部分。
[0129]
或者在目标对象移动而终端设备静止的条件下,终端设备可以计算终端设备的位姿(同样为终端设备相对于目标对象的位姿)偏离第一扫描路径的程度低于预设阈值,则终端设备通过向用户提示第四子扫描路径、第五子扫描路径、第六子扫描路径提醒用户移动目标对象,第四子扫描路径、第五子扫描路径、第六子扫描路径同样都为第一扫描路径的一部分。在另一些实施例中,在所述根据用户采集的第一视图,建立第一三维视图之前,所述方法还包括:确定采集所述第一视图的实际扫描路径与所述第一扫描路径不匹配;根据第二区域和所述终端设备的第二位姿向用户提示第二扫描路径,所述第二区域是所述第一区域或者所述第一区域的一部分,所述第二扫描路径用于提示用户采集包括所述第二区域的视图的扫描路径。
[0130]
即用户在获取第一视图时的扫描路径偏离了第一扫描路径,且偏离的程度超过预设阈值,即实际扫描路径和第一扫描路径不匹配。例如,用户在扫描的过程中,某一时间段终端设备判断实际扫描路径偏离第一扫描路径的程度大于预设阈值,从而该时间段内的扫描路径已经偏离第一扫描路径,则最终采集第一视图的实际扫描路径必然不是第一扫描路径。例如在该时间段内,第一终端设备按照第一扫描路径应该采集第四区域的视图,但是实际采集了第五区域的视图,该第四区域可以和第五区域部分重合或者完全不同。则终端设备在根据第五区域的视图,建立第五区域的三维视图的同时(建立第五区域的三维视图是建立第一区域三维视图整个过程的一部分),还会重新规划路径,例如依据剩余未建立三维
视图的第二区域和终端设备的第二位姿确定第二扫描路径,该第二扫描路径与第一扫描路径可以部分或完全不同,从而保证扫描路径一直是最优的。
[0131]
终端设备仍然可以根据终端设备的位姿变化偏离第一扫描路径超过预设阈值或计算出的目标对象的位姿偏离第一扫描路径超过预设阈值的方式判断是否重新规划扫描路径。第二扫描路径也可以不是最终的路径,终端设备总是能够对扫描路径进行监测,持续为用户扫描提示最优扫描路径。
[0132]
无论获取的第一视图是否是按照第一扫描路径获取的,通过前述步骤获取第一视图后,即可以依据该第一视图,建立第一三维视图。
[0133]
在本技术实施例中,可以在采集到所有的未进行三维重建的区域视图之后再对该第一区域进行三维重建,也可以在获取第一视图的一部分之后,例如第一区域的子区域视图之后随时进行重建,本技术对具体进行重建的方式不做限定。
[0134]
如前所述,若第一视图是包含深度信息的rgbd视图,则较容易根据该包含深度信息的rgbd视图进行坐标转换从而重建目标对象的第一区域的三维视图。
[0135]
若第一视图是rgb视图,则需要根据多视图深度计算方法计算出视图上第一区域的各个像素点对应的深度信息,从而才能对第一区域进行三维重建。
[0136]
在一些实施例中,可以直接根据第一视图进行三维重建。
[0137]
在该实施例中,第一视图既包括待三维重建的目标对象,也包括目标对象所在的环境。从而第一三维视图包括目标对象的第一区域和目标对象所在环境的三维视图,重建时需要将目标对象的第一区域以及目标对象所在环境一起进行三维重建。
[0138]
应理解,前述提及的通过目标对象移动获得第一视图的实施例中,要建立包括目标对象和环境的三维视图,需要终端设备在重建过程中,分别针对环境和目标对象进行三维重建,即在进行三维重建时,实际上需要终端设备对第一视图进行主体分割,从而区分目标对象和目标对象所在环境。否则,对第一视图中的目标对象和环境同时进行三维重建时,由于目标对象移动而环境是静止的会导致三维重建时参考系的混乱而重建失败。
[0139]
在另一些实施例中,可以先利用上述第一视图进行主体分割获得只包括目标对象的第一目标视图。即根据所述第一视图,获取第一目标视图,所述第一目标视图只包括所述目标对象。
[0140]
由于本技术主要是为了对目标对象进行三维重建,对上述第一视图进行主体分割可以减少深度计算过程中的计算量。主体分割主要原理是通过卷积神经网络提取第一视图的特征,再基于特征进行解码,得到第一视图中每个像素点的分类标签,即该像素点是否属于目标对象。通过例如将属于目标对象的像素点设置为灰度值255,将不属于目标对象的像素点的灰度值设置为0,从而得到只包括黑色背景环境的掩膜。之后通过处理,使用掩膜与原第一视图复合即可以得到只包括目标物体的目标视图。
[0141]
图6出了本技术提供的一种用于进行主体分割的卷积神经网络架构图。本技术的卷积神经网络采用对称式编码器-解码器结构,编码器部分通过多次卷积、池化、批标准化、激活、降采样等操作提取多尺度图像特征,通过阶跃连接弥补丢失的特征以及扩大感受野,再通过多次双线性上采样与卷积、批标准化、激活等操作,逐级解码特征,得到最终的掩膜图像。
[0142]
由于多次卷积和降采样会损失一部分的像素,因此在本技术使用的卷积神经网络
中,编码器和解码器之间通过阶跃连接,从而允许解码器能够获取编码器在每一次进行卷积过程中降采样之前的特征图,解码器在后续上采样过程中,学习到在进行每一次卷积过程中丢失的特征。从而在之后解码器对由编码器获得的特征图进行多次卷积与上采样,并对特征进行解码,最终获得所需要的掩膜图像。
[0143]
为了更好地分割物体,本技术通过构造输入图像与输出掩膜对卷积神经网络进行训练。使得网络可以学习到显著性先验,并基于此实现主体分割。
[0144]
具体训练过程如下:构造训练集,训练集中的输入图像为物体的视图,输出图像为手工对物体边界进行标注的掩膜。其中掩膜边界的内部可以为需要三维重建的物体,边界外部可以为需要去除的背景。其中需要去除的背景可以为一般情况下物体放置的支撑物,物体所在的环境背景,例如墙壁、桌面等。
[0145]
在一些实施例中,所述第一视图为用户手持所述目标对象的视图,所述第一三维视图为所述第一区域的三维视图。
[0146]
当输入的第一视图为用户手持物体的图像时,需要将人手和环境一起去除。在用户手持物体时,由于与一般环境的差异,人手与物体的接触会更加紧密,如果不事先进行训练,得到的掩膜中会包括人手的信息。在之后使用包括人手信息的掩膜获得的目标对象的视图进行三维重建时,会由于包括人手的物体不是刚体,增加三维重建的失败率。如图7所示,图7的(a)和(b)分别为输入的手持物体的视图及输出的掩膜,可以看出,经过训练,本技术的技术方案能够较好地将物体与人手及其他环境分割。
[0147]
在得到掩膜后,可以将掩膜与原第一视图结合,即可以获得只包括目标对象的第一目标视图。
[0148]
应理解,对于本技术实施例提供的主体分割得到的掩膜和经过进一步处理得到的只包括目标对象的第一目标视图,可以不显示在终端设备上,即扫描过程中显示的仍然可以为目标对象在环境中的视图。当然,也可以显示经过主体分割后的目标对象的视图,具体如何显示可以依据用户的喜好进行设置。
[0149]
此外,当本技术提供的技术方案通过app实施时,可以提示用户选择人手模式和非人手模式,从而在输入视图为人手持目标对象的图像时,才调用相应的神经网络或所需要的数据,而在输入图像不是人手持目标对象的图像或无需进行主体分割时,可以调用另一种网络或所需要的数据,从而能够减轻三维重建时所需要的开销。
[0150]
或者,本技术的技术方案通过app实现时,终端设备也可以自动识别当前模式并匹配相应的重建方案的技术细节,更便于三维重建,减少用户的操作。
[0151]
通过本技术的主体分割的技术方案,可以扩大本技术技术方案的实现场景,不仅适用于一般场景下的目标对象静止而终端设备运动的场景,也可以适用于手持目标对象运动而终端设备运动的场景,在更多的场景下实现三维重建。
[0152]
以下基于目标对象静止,而终端设备运动进行三维重建介绍基于第一视图进行深度计算的过程。
[0153]
对每一帧待计算深度的参考关键帧,本技术会基于其他关键帧的六自由度位姿(6dof,6degree of freedom)信息,选择与参考关键帧位姿最接近的若干帧相邻关键帧图像作为源图像,也即基于一张参考关键帧与若干源图像,采用基于人工智能(artificial intelligence,ai)的多视图立体几何(multi-view stereo,mvs)原理,计算参考关键帧的
深度图,主要包括特征提取、代价体构建,代价正则化,深度回归四个步骤。
[0154]
关键帧的六自由度位姿是终端设备拍摄该关键帧时的位姿,六自由度位姿包括三个方向的平移自由度和绕三个方向的旋转自由度。
[0155]
上述关键帧、参考关键帧可以是经过主体分割后的第二目标视图。
[0156]
本技术可以采用多视图深度计算原理为三维重建提供所需的深度。以下以两个视图为例介绍深度计算的过程。
[0157]
1.特征提取。
[0158]
为了减小本技术进行深度计算所需要的计算量,本技术采用基于特征匹配的深度计算方式进行三维重建。
[0159]
本技术采用相同的卷积神经网络对参考关键帧与关键帧图像进行特征提取,得到所有图像的多尺度特征,用于构建代价体,对图像进行稠密匹配。卷积神经网络由若干卷积层、正则化层、激活层、池化层构成。相较于传统直接匹配图像像素的方法,例如图像序列中对应像素差的绝对值(sum of absolute differences,sad)图像序列中对应像素差的平方和(sum of squared differences,ssd)、图像的相关性(normalized cross correlation,ncc),本技术可以充分利用局部与全局特征,得到更好的匹配与深度估计效果。
[0160]
为了提高提取的特征的稠密度,本技术可以结合ai先验优化弱纹理区效果,例如使用神经网络对于弱纹理区的特征提取进行训练,从而可以在弱纹理区也能够提取到较多的特征。弱纹理区域指的是不存在显著的纹理特征的区域,具体地,弱纹理区域的像素点在颜色和亮度上较为相似,即像素具有不可区分性。示例性地,弱纹理区域可以包括平面区域,例如,墙面、地面或天花板等。此外,本技术提供的技术方案在特征提取过程中,可以降低处理的视图的分辨率,从而减少图像上例如弱纹理区域的噪点等影响,进一步提高弱纹理区域效果。
[0161]
2.代价体构建
[0162]
代价体为高维矩阵,用于表示参考关键帧每个像素对应不同深度下的代价。
[0163]
特征提取后,可以得到所有关键帧与参考关键帧的特征体,为进行稠密匹配,首先需要将所有关键帧图像的特征体变换到参考关键帧坐标系下,本技术采用可微的单应(homography)变换实现该操作,变换后再对所有关键帧特征体与参考关键帧特征体进行逐元素的方差操作,可将所有特征体聚合,得到最终的代价体。
[0164]
3.代价体正则化
[0165]
直接通过代价体计算深度,深度会存在较大的噪声,因此本技术对代价体进行正则化后再求深度,正则化采用多尺度的三维卷积进行,从而考虑局部与全局信息对每个像素的代价进行正则化。采用平滑度对深度图进行约束,防止由于例如数据噪声大或者提取的特征较多造成过拟合。
[0166]
4.深度回归
[0167]
正则化后的代价体衡量了每个像素对不同深度的概率,本技术通过求平均的方式可得到最终的深度图,该方式可微。
[0168]
为了使得本技术的技术方案能够达到端侧实时运行,提高三维重建的速度,本技术还采用如下策略优化深度计算模块。
[0169]
1、深度估计全流程可微
[0170]
本技术的全流程是可微的,使得可以通过端到端的深度学习训练来优化本技术的深度估计效果,通过构建图像-深度图数据集对,本技术中的网络可以学习到传统方法无法学到的先验与特征,从而让本方法深度精度更高,完整性更好。
[0171]
2、由低分辨率到高分辨率(coarse to fine)
[0172]
图像分辨率与深度搜索区间的数量直接影响了深度计算的时间,本技术对参考关键帧与关键帧进行下采样,得到不同分辨率的图像,首先在最低分辨率上(coarse))计算深度图,并利用该深度图减小更高分辨率(fine)深度图计算时的深度搜索区间,从而提高效率。
[0173]
即所述根据所述第一视图,建立第一三维视图包括:根据所述第一视图,确定第二视图,所述第二视图是根据所述第一视图得到的较低分辨率的视图;根据所述第二视图,确定第一深度,所述第一深度为所述第二视图对应的深度;根据所述第一深度和所述第一视图,确定第二深度,所述第二深度为所述第一视图对应的深度;根据所述第二深度,建立第一三维视图。
[0174]
在本技术实施例中,前述的第一深度、第二深度是不同分辨率下视图对应的深度,第二视图是第一视图通过下采样得到的视图。无论第一深度、第二深度还是第二视图都是用于三维重建过程中的中间步骤,即可以输出或不输出,或者以各种形式在三维重建的过程中体现。在终端设备内部可以通过输出第一深度图作为第一深度、第二深度图作为第二深度,也可以不输出深度图,深度图是用灰度表示深度的图,也可也用数据存储各个视图中每个像素的深度,本技术对此不做限定。
[0175]
对于深度计算,可以采用更多级分辨率的视图逐级减小深度计算的深度搜索空间范围,从而减小计算量。此处,仅以两级为例,介绍本技术的深度计算方法,更多级深度计算方式可以参照此处介绍,为简洁,此处不再赘述。
[0176]
由于低分辨率下,弱纹理问题可以被弱化,本方法在弱纹理区域的效果相比直接在最高分辨率下计算深度再建立三维视图,能够减少空洞,提高三维重建效果。
[0177]
3、基于第一级深度下的特征图增量计算后面每一级的特征图
[0178]
由于采用coarse-to-fine策略,每种分辨率下都需要对图像做一次特征提取。本技术首先在最低分辨率下对图像进行特征提取,后面每一级分辨率的特征,通过对最低级特征进行上采样,再构建一个小规模增量优化网络进行优化得到,从而减小了特征提取的计算量。
[0179]
即所述根据所述第二视图,确定第一深度,包括:根据所述第二视图,确定第一特征图,所述第一特征图为根据所述第二视图提取的特征图;根据所述第一特征图,确定第一深度;其中,所述根据所述第一深度和所述第一视图,确定第二深度包括:根据所述第一视图和所述第一特征图,确定第二特征图;根据所述第二特征图和所述第一深度图,确定第二深度。
[0180]
第一特征图、第二特征图也是不同分辨率下视图的特征图,特征即通过视图提取的视图的一些点、边缘等特征,通过例如特征向量、特征点等表现。从第一特征图和第一视图获取第二特征图,即通过低分辨率的第一特征图和高分辨率的第一视图,可以结合第一视图对第一特征图进行上采样,获得从该级特征图到下一级特征图的特征图增量,无需对第一视图直接获取特征图,减小终端设备的计算量和开销,提高三维重建的速度和用户体
验。
[0181]
特征图的计算过程也可以有更多级分辨率视图下的上采样确定,此处不再赘述。
[0182]
4、网络轻量化
[0183]
为使得深度计算流程中所有网络足够轻量,能在手机侧实时运行,本技术采用神经架构搜索(neural architecture search,nas)搜索性能与效果综合最佳的网络,再通过减小图像分辨率、优化网络算子与网络深度,得到足够轻量的网络。
[0184]
在获取得到不同尺度特征下的深度图后,本技术还需要对不同尺度特征获得的深度图进行实时融合,得到三维点云。点云指的是物体表面的点的集合,包括点的三维坐标信息,也可以包括点的rgb信息。在本技术实施例中,点云即为前述的特征点对应的物体表面点的集合,本技术采用特征匹配的方式获得点云,并通过弱纹理区优化,使得点云的数量大大增加,优化三维重建的效果。
[0185]
根据相机的内参矩阵、外参矩阵以及所获得的深度图中的像素值可以计算得到该像素在空间中对应的三维点的坐标,即完成点云转化的过程。
[0186]
根据获得的点云可以通过网格生成算法生成网格,从而可以将生成的网格投影到终端设备的扫描界面上的物体上生成白膜,用户即可以通过生成的白膜获知已经完成建模的部分。
[0187]
通过方法300,可以最终完成整个目标对象的三维重建,再将视图上对应的色彩信息与计算的三维点云信息结合,即可以获得目标对象最终的重建结果。最终重建结果如图8所示。可以看出,通过本技术的技术方案进行三维重建,弱纹理区域也可以获得更好的重建结果,获得的三维视图无明显的空洞,目标对象的边缘清晰,效果较好。
[0188]
在后处理阶段,本技术首先采用捆绑调整(bundle adjustment,ba)对位姿进优化,接着再采用深度估计轻量化前的网络对深度进行优化,优化过程中使用已有深度图作为初值。采用点云融合技术对不同位姿下的深度图进行融合,得到融合后的点云,通过德洛奈(delaunay)算法进行网格化。
[0189]
依次对位姿、深度图、网格进行优化,从而得到高质量的建模结果。最后通过ai网络回归环境光照与物体材质,实现光照与材质的解耦,输出准确的材质贴图,并可以依据用户的需求将该材质贴图与建成的三维视图结合。
[0190]
即根据用户指示输出以下至少一项材质贴图:漫反射贴图(diffuse)、法线贴图(normal)、粗糙贴图(roughness)、高光贴图(specular)、置换贴图(displacement)和环境吸收贴图(ambient occlusion,ao)。
[0191]
为了实现光照与材质的解耦,构建端到端的深度学习网络对材质进行回归,网络输入为所有图像、位姿、网格(下采样后得到),采用神经辐射场(neural radiance fields)式的网络结构,通过可微渲染方式进行训练,得到最终的diffuse、normal、ao、roughness、specular和displacement等材质贴图。
[0192]
在本技术实施例中,无需要求用户完成全部扫描才进行三维重建和轨迹优化,实现用户对目标物体进行扫描的同时即可以对扫描的部分进行三维重建并实时获得重建结果,并且本技术的技术方案能够实时引导扫描轨迹,实现最优轨迹扫描,在提高扫描速度的同时提高三维重建的成功率,获得高质量的三维重建结果。
[0193]
前述仅通过终端设备移动而目标对象静止介绍了本技术深度计算的相关方案,当
目标对象移动而终端设备静止时,具体三维重建的技术方案细节可以参考上述叙述。
[0194]
图9示出了本技术实施例提供的一种终端设备的示意图。该终端设备包括:一个或多个处理器910;一个或多个存储器920;所述一个或多个存储器920存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器910执行时,使得所述终端设备执行以下步骤:根据所述第一区域和所述终端设备的第一位姿向用户提示第一扫描路径,所述第一区域是所述目标对象上未建立三维视图的区域,所述第一扫描路径用于提示用户采集包括第一区域的视图的扫描路径;根据用户采集的第一视图,建立第一三维视图,所述第一视图为包括所述第一区域的一个或多个视图,所述第一三维视图包括所述第一区域的三维视图。
[0195]
在本技术实施例中,所述指令被所述一个或多个处理器910执行时,使得所述终端设备执行以下步骤:向用户提示第三区域,所述第三区域是所述目标对象上已经建立三维视图的区域。
[0196]
在本技术实施例中,所述一个或多个视图为用户手持所述目标对象的视图,所述第一三维视图为所述第一区域的三维视图。
[0197]
在本技术实施例中,当所述指令被所述一个或多个处理器910执行时,使得所述终端设备执行以下步骤:根据所述第一视图,确定第二视图,所述第二视图是根据所述第一视图得到的较低分辨率的视图;根据所述第二视图,确定第一深度,所述第一深度为所述第二视图对应的深度;根据所述第一深度和所述第一视图,确定第二深度,所述第二深度为所述第一视图对应的深度;根据所述第二深度,建立第一三维视图。
[0198]
在本技术实施例中,当所述指令被所述一个或多个处理器910执行时,使得所述终端设备执行以下步骤:根据所述第二视图,确定第一特征图,所述第一特征图是根据所述第二视图提取的特征图;根据所述第一特征图,确定第一深度;其中,所述根据所述第一深度和所述第一视图,确定第二深度包括:根据所述第一视图和所述第一特征图,确定第二特征图;根据所述第二特征图和所述第一深度图,确定第二深度。
[0199]
在本技术实施例中,在所述根据用户采集的第一视图,建立第一三维视图之前,当所述指令被所述一个或多个处理器910执行时,使得所述终端设备执行以下步骤:确定采集所述第一视图的实际扫描路径与所述第一扫描路径匹配。
[0200]
在本技术实施例中,在所述根据用户采集的第一视图,建立第一三维视图之前,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:确定采集所述第一视图的实际扫描路径与所述第一扫描路径不匹配;根据第二区域和所述终端设备的第二位姿向用户提示第二扫描路径,所述第二区域是所述第一区域或者所述第一区域的一部分,所述第二扫描路径用于提示用户采集包括所述第二区域的视图的扫描路径。
[0201]
在本技术实施例中,当所述指令被所述一个或多个处理器910执行时,使得所述终端设备执行以下步骤:根据用户设置的路径长度参数和方向改变次数参数,确定第一扫描路径。
[0202]
在本技术实施例中,所述第一扫描路径满足以下公式:
[0203][0204]
其中,opt为第一扫描路径,path为遍历所述目标对象的目标区域的路径,w1和w2
为权重,length为路径的长度,changes为路径的方向改变次数。
[0205]
在本技术实施例中,当所述指令被所述一个或多个处理器910执行时,使得所述终端设备执行以下步骤:根据用户指示输出以下至少一项材质贴图:漫反射贴图、法线贴图、粗糙贴图、高光贴图、置换贴图和环境吸收贴图。
[0206]
图10示出了本技术实施例提供的另一种终端设备的示意图。该终端设备包括:
[0207]
提示单元1010,用于根据第一区域和所述终端设备的第一位姿向用户提示第一扫描路径,所述第一区域是所述目标对象上未建立三维视图的区域,所述第一扫描路径用于提示用户采集包括所述第一区域的视图的扫描路径;处理单元1020,用于根据所述第一视图,建立第一三维视图,所述第一视图为包括所述第一区域的一个或多个视图,所述第一三维视图包括所述第一区域的三维视图。
[0208]
在本技术实施例中,所述第一视图为用户手持所述目标对象的视图,所述第一三维视图为所述第一区域的三维视图。
[0209]
在本技术实施例中,所述处理单元1020,具体用于,根据所述第一视图,确定第二视图,所述第二视图的分辨率低于所述第一视图的分辨率;根据所述第二视图,确定第一深度,所述第一深度为所述第二视图对应的深度;根据所述第一深度和所述第一视图,确定第二深度,所述第二深度为所述第一视图对应的深度;根据所述第二深度,建立所述第一三维视图。
[0210]
在本技术实施例中,所述处理单元1020,具体用于,根据所述第二视图,确定第一特征图,所述第一特征图是根据所述第二视图提取的特征图;根据所述第一特征图,确定所述第一深度;
[0211]
在本技术实施例中,所述处理单元1020,具体还用于,根据所述第一视图和所述第一特征图,确定第二特征图;根据所述第二特征图和所述第一深度,确定所述第二深度。
[0212]
在本技术实施例中,所述处理单元1020,还用于,在所述根据用户采集的第一视图,建立第一三维视图之前,确定采集所述第一视图的实际扫描路径与所述第一扫描路径匹配。
[0213]
在本技术实施例中,在所述根据用户采集的第一视图,建立第一三维视图之前,所述处理单元1020还用于:确定采集所述第一视图的实际扫描路径与所述第一扫描路径不匹配;所述提示单元1010,还用于根据第二区域和所述终端设备的第二位姿向用户提示第二扫描路径,所述第二区域是所述第一区域或者所述第一区域的一部分,所述第二扫描路径用于提示用户采集包括所述第二区域的视图的扫描路径。
[0214]
在本技术实施例中,所述处理单元1020,还用于,根据用户设置的路径长度参数和方向改变次数参数,确定第一扫描路径。
[0215]
在本技术实施例中,所述第一扫描路径满足以下公式:
[0216][0217]
其中,opt为第一扫描路径,path为遍历所述目标对象的第一区域的路径,w1和w2为权重,length为路径的长度,changes为路径的方向改变次数。
[0218]
在本技术实施例中,所述终端设备,还包括输出单元1030,用于根据用户指示输出以下材质贴图中的至少一种:漫反射贴图、法线贴图、粗糙贴图、高光贴图、置换贴图和环境
吸收贴图。
[0219]
在本技术实施例中,所述提示单元1010还用于,向用户提示第三区域,所述第三区域是所述目标对象上已建立三维视图的区域。
[0220]
在本技术实施例中,所述第一视图是色彩rgb视图。
[0221]
上述实施例的任意一种终端设备相关内容的解释及有益效果均可参考上文提供的对应的方法实施例,此处不再赘述。
[0222]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0223]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0224]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0225]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0226]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0227]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:通用串行总线闪存盘(usb flash disk,ufd),ufd也可以简称为u盘或者优盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0228]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。

技术特征:
1.一种三维重建方法,应用于终端设备,其特征在于,包括:根据第一区域和所述终端设备的第一位姿向用户提示第一扫描路径,所述第一区域是目标对象上未建立三维视图的区域,所述第一扫描路径用于提示用户采集包括所述第一区域的视图的扫描路径;根据用户采集的第一视图,建立第一三维视图,所述第一视图为包括所述第一区域的一个或多个视图,所述第一三维视图包括所述第一区域的三维视图。2.根据权利要求1所述的方法,其特征在于,所述第一视图为用户手持所述目标对象的视图,所述第一三维视图为所述第一区域的三维视图。3.根据权利要求1或2所述的方法,其特征在于,所述根据用户采集的第一视图,建立第一三维视图,包括:根据所述第一视图,确定第二视图,所述第二视图的分辨率低于所述第一视图的分辨率;根据所述第二视图,确定第一深度,所述第一深度为所述第二视图对应的深度;根据所述第一深度和所述第一视图,确定第二深度,所述第二深度为所述第一视图对应的深度;根据所述第二深度,建立所述第一三维视图。4.根据权利要求3所述的方法,其特征在于,所述根据所述第二视图,确定第一深度,包括:根据所述第二视图,确定第一特征图,所述第一特征图为根据所述第二视图提取的特征图;根据所述第一特征图,确定所述第一深度;其中,所述根据所述第一深度和所述第一视图,确定第二深度,包括:根据所述第一视图和所述第一特征图,确定第二特征图;根据所述第二特征图和所述第一深度,确定所述第二深度。5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述根据用户采集的第一视图,建立第一三维视图之前,所述方法还包括:确定采集所述第一视图的实际扫描路径与所述第一扫描路径匹配。6.根据权利要求1至4中任一项所述的方法,其特征在于,在所述根据用户采集的第一视图,建立第一三维视图之前,所述方法还包括:确定采集所述第一视图的实际扫描路径与所述第一扫描路径不匹配;根据第二区域和所述终端设备的第二位姿向用户提示第二扫描路径,所述第二区域是所述第一区域或者所述第一区域的一部分,所述第二扫描路径用于提示用户采集包括所述第二区域的视图的扫描路径。7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:根据用户设置的路径长度参数和方向改变次数参数,确定第一扫描路径。8.根据权利要求1至7中任一项所述的方法,其特征在于,所述第一扫描路径满足以下公式:
其中,opt为所述第一扫描路径,path为遍历所述目标对象的第一区域的路径,w1和w2为权重,length为路径的长度,changes为路径的方向改变次数。9.根据权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:根据用户指示输出以下材质贴图中的至少一种:漫反射贴图、法线贴图、粗糙贴图、高光贴图、置换贴图和环境吸收贴图。10.根据权利要求1至9中任一项所述的方法,其特征在于,所述方法还包括:向用户提示第三区域,所述第三区域是所述目标对象上已建立三维视图的区域。11.根据权利要求1至10中任一项所述的方法,其特征在于,所述第一视图是色彩rgb视图。12.一种终端设备,其特征在于,所述终端设备包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:根据第一区域和所述终端设备的第一位姿向用户提示第一扫描路径,所述第一区域是目标对象上未建立三维视图的区域,所述第一扫描路径用于提示用户采集包括所述第一区域的视图的扫描路径;根据用户采集的第一视图,建立第一三维视图,所述第一视图为包括所述第一区域的一个或多个视图,所述第一三维视图包括所述第一区域的三维视图。13.根据权利要求12所述的终端设备,其特征在于,所述第一视图为用户手持所述目标对象的视图,所述第一三维视图为所述第一区域的三维视图。14.根据权利要求12或13所述的终端设备,其特征在于,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:根据所述第一视图,确定第二视图,所述第二视图的分辨率低于所述第一视图的分辨率;根据所述第二视图,确定第一深度,所述第一深度为所述第二视图对应的深度;根据所述第一深度和所述第一视图,确定第二深度,所述第二深度为所述第一视图对应的深度;根据所述第二深度,建立所述第一三维视图。15.根据权利要求14所述的终端设备,其特征在于,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:根据所述第二视图,确定第一特征图,所述第一特征图为根据所述第二视图提取的特征图;根据所述第一特征图,确定所述第一深度;根据所述第一视图和所述第一特征图,确定第二特征图;根据所述第二特征图和所述第一深度,确定所述第二深度。16.根据权利要求12至15中任一项所述的终端设备,其特征在于,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:确定采集所述第一视图的实际扫描路径与所述第一扫描路径匹配。
17.根据权利要求12至15中任一项所述的终端设备,其特征在于,在所述根据用户采集的第一视图,建立第一三维视图之前,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:确定采集所述第一视图的实际扫描路径与所述第一扫描路径不匹配;根据第二区域和所述终端设备的第二位姿向用户提示第二扫描路径,所述第二区域是所述第一区域或者所述第一区域的一部分,所述第二扫描路径用于提示用户采集包括所述第二区域的视图的扫描路径。18.根据权利要求12至17中任一项所述的终端设备,其特征在于,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:根据用户设置的路径长度参数和方向改变次数参数,确定第一扫描路径。19.根据权利要求12至18中任一项所述的终端设备,其特征在于,所述第一扫描路径满足以下公式:其中,opt为所述第一扫描路径,path为遍历所述目标对象的第一区域的路径,w1和w2为权重,length为路径的长度,changes为路径的方向改变次数。20.根据权利要求12至19中任一项所述的终端设备,其特征在于,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:根据用户指示输出以下材质贴图中的至少一种:漫反射贴图、法线贴图、粗糙贴图、高光贴图、置换贴图和环境吸收贴图。21.根据权利要求12至20中任一项所述的终端设备,其特征在于,当所述指令被所述一个或多个处理器执行时,使得所述终端设备执行以下步骤:向用户提示第三区域,所述第三区域是所述目标对象上已建立三维视图的区域。22.一种终端设备,其特征在于,包括:提示单元,用于根据第一区域和所述终端设备的位姿向用户提示第一扫描路径,所述第一区域是所述目标对象上未建立三维视图的区域,所述第一扫描路径用于提示用户采集包括所述第一区域的视图的扫描路径;处理单元,用于根据所述第一视图,建立第一三维视图,所述第一视图为包括所述第一区域的一个或多个视图,所述第一三维视图包括所述第一区域的三维视图。23.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如权利要求1至11中任一项所述的方法。24.一种计算机程序产品,其特征在于,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被运行时,实现如权利要求1至11中任一项所述的方法。

技术总结
本申请提供了一种三维重建方法和终端设备。该方法包括:根据第一区域和终端设备的位姿向用户提示第一扫描路径,第一区域是目标对象上未建立三维视图的区域,第一扫描路径用于提示用户采集包括第一区域的视图的扫描路径;根据用户采集的第一视图,建立第一三维视图,第一视图为包括第一区域的一个或多个视图,第一三维视图包括第一区域的三维视图。本申请能够在对目标对象进行三维重建时提供有效的引导,通过向用户提示第一扫描路径引导用户对目标对象上未进行三维重建的第一区域进行扫描,扫描路径能够根据目标对象上未进行三维重建的区域和终端设备的位姿更新,提升用户体验感。感。感。


技术研发人员:郭峰
受保护的技术使用者:华为技术有限公司
技术研发日:2022.03.11
技术公布日:2023/9/22
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

航空商城 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

评论

相关推荐