掌桥专利:专业的专利平台
掌桥专利
首页

对象重建的方法、装置、设备及存储介质

文献发布时间:2023-06-19 10:48:02


对象重建的方法、装置、设备及存储介质

技术领域

本申请涉及三维重建技术领域,特别涉及对象重建的方法、装置、设备及存储介质。

背景技术

随着三维重建技术的发展,三维重建在终端上的应用也越来越多,对象重建便是三维重建中的一种。其中,对象重建是指基于扫描待重建的对象得到的信息建立三维模型的过程。因此,如何进行对象重建,是保证所建立的三维模型准确度的关键。

在相关技术中,当终端检测到待建模的目标对象时,首先确认目标对象与终端之间的距离。在距离满足要求的情况下,进一步提示用户围绕目标对象移动终端进行扫描,得到目标对象的扫描信息。最后,根据扫描信息建立目标对象的三维模型,得到三维模型。

可以看出,相关技术在目标对象与终端的间距满足条件时便触发对目标对象的扫描。若目标对象周围存在其他物体,则扫描得到的其他物体的信息也作为目标对象的扫描信息用于建立目标对象的三维模型,而该种情况下所建立的三维模型与目标对象的实际形状会具有较大的偏差。因此,应用相关技术进行对象重建得到的三维模型准确度较低,对象重建的效果较差。

发明内容

本申请实施例提供了一种对象重建的方法、装置、设备及存储介质,以解决相关技术提供的问题,技术方案如下:

第一方面,提供了一种对象重建的方法,所述方法应用于终端,所述方法包括:当终端检测到目标对象时,对所述目标对象进行特征位置检测,所述特征位置检测用于获取所述目标对象的特征信息;若检测到所述目标对象的特征信息,围绕所述目标对象的局部区域进行扫描,得到所述目标对象的第一扫描信息;根据所述第一扫描信息建立所述目标对象的三维模型。

在检测到待建模的目标对象之后,首先通过特征位置检测来确定目标对象是否具有特征信息。在确定目标对象具有特征信息的情况下,再根据目标对象的第一扫描信息来建立目标对象的三维模型。因此,本实施例所建立的三维模型与目标对象的实际形状较为贴合,三维模型准确度较高,对象重建的效果较好。

在示例性实施例中,若所述目标对象为人体,所述特征位置为面部。

在示例性实施例中,若检测到所述目标对象的特征信息,所述方法还包括:根据所述特征信息确定所述终端相对于所述目标对象的位姿信息,所述位姿信息包括位置信息和姿态信息中的一种或两种;若所述位姿信息满足条件,则执行所述围绕所述目标对象的局部区域进行扫描,得到所述目标对象的第一扫描信息。

在示例性实施例中,所述围绕所述目标对象的局部区域进行扫描,得到所述目标对象的第一扫描信息之后,所述方法还包括:基于所述目标对象的局部区域确定所述目标对象的目标区域,所述目标区域包括所述目标对象上除所述局部区域以外的其他区域的至少一部分;获取所述目标区域对应的第二扫描信息;

所述根据所述第一扫描信息建立所述目标对象的三维模型,包括:根据所述第一扫描信息以及所述第二扫描信息建立所述目标对象的三维模型。

在示例性实施例中,所述围绕所述目标对象的局部区域进行扫描,得到所述目标对象的第一扫描信息之前,所述方法还包括:获取参考扫描信息,所述参考扫描信息包括参考扫描轨迹、参考扫描速度以及参考扫描姿态中的一种或多种信息;输出所述参考扫描信息,所述参考扫描信息用于引导对所述目标对象的局部区域进行扫描。

在示例性实施例中,所述获取参考扫描信息,包括:根据所述特征信息确定所述目标对象的核心区域,建立所述目标对象的特征位置模型;基于所述核心区域确定所述特征位置模型的完整度信息;根据所述完整度信息确定所述参考扫描信息。

在示例性实施例中,所述基于所述核心区域确定所述特征位置模型的完整度信息,包括:以所述核心区域为中心,在所述特征位置模型上确定上部区域、下部区域、左部区域及右部区域;获取每个区域对应的归一化完整度,将每个区域对应的归一化完整度作为所述特征位置模型的完整度信息。

在示例性实施例中,当所述参考扫描信息包括所述参考扫描轨迹时,所述根据所述完整度信息确定所述参考扫描信息,包括:根据所述核心区域对应的归一化完整度确定所述终端与所述目标对象的扫描间距,根据所述上部区域及所述下部区域对应的归一化完整度确定扫描高度以及扫描次数,根据所述左部区域及所述右部区域对应的归一化完整度确定扫描方向;基于所述扫描间距、所述扫描高度、所述扫描次数及所述扫描方向确定所述参考扫描轨迹。

在示例性实施例中,当所述参考扫描信息包括所述参考扫描轨迹时,所述参考扫描轨迹包括互不重叠的参考数量个子扫描轨迹,所述输出所述参考扫描信息,包括:根据所述终端的位置依次显示所述参考数量个子扫描轨迹。

在示例性实施例中,所述输出所述参考扫描信息之后,所述方法还包括:检测所述终端的实际扫描信息,所述实际扫描信息包括实际扫描轨迹、实际扫描速度及实际扫描姿态中的一种或多种信息;若所述实际扫描信息与所述参考扫描信息之间的偏差大于参考阈值,根据所述偏差显示提示信息,所述提示信息用于提示修正所述实际扫描信息。

在示例性实施例中,所述围绕所述目标对象的局部区域进行扫描,得到所述目标对象的第一扫描信息之后,所述方法还包括:确定所述目标对象的已扫描区域以及未扫描区域;显示所述目标对象的投影图像,将所述已扫描区域以及所述未扫描区域分别标注在所述目标对象的投影图像上。

在示例性实施例中,所述根据所述第一扫描信息建立所述目标对象的三维模型之后,所述方法还包括:对所述目标对象的三维模型进行后处理,得到处理后的三维模型;显示所述处理后的三维模型。

在示例性实施例中,当所述参考扫描信息包括所述参考扫描轨迹时,所述检测终端的实际扫描信息之后,所述方法还包括:显示所述扫描所述目标对象的实际扫描轨迹以及所述参考扫描轨迹。

在示例性实施例中,所述围绕所述目标对象的局部区域进行扫描,得到所述目标对象的第一扫描信息之后,所述方法还包括:根据所述实际扫描信息与所述参考扫描信息之间的偏差获取扫描评价信息,所述扫描评价信息用于评价扫描情况;显示所述扫描评价信息。

第二方面,提供了一种对象重建的装置,所述装置包括:

检测模块,用于当终端检测到目标对象时,对所述目标对象进行特征位置检测,所述特征位置检测用于获取所述目标对象的特征信息;

获取模块,用于若检测到所述目标对象的特征信息,围绕所述目标对象的局部区域进行扫描,得到所述目标对象的第一扫描信息;

建立模块,用于根据所述第一扫描信息建立所述目标对象的三维模型。

在示例性实施例中,若所述目标对象为人体,所述特征位置为面部。

在示例性实施例中,所述装置还包括:第一确定模块,用于若检测到所述目标对象的特征信息,根据所述特征信息确定所述终端相对于所述目标对象的位姿信息,所述位姿信息包括位置信息和姿态信息中的一种或两种;所述获取模块,用于若所述位姿信息满足条件,则执行所述围绕所述目标对象的局部区域进行扫描,得到所述目标对象的第一扫描信息。

在示例性实施例中,所述装置还包括:第二确定模块,用于基于所述目标对象的局部区域确定所述目标对象的目标区域,所述目标区域包括所述目标对象上除所述局部区域以外的其他区域的至少一部分;获取所述目标区域对应的第二扫描信息;所述建立模块,用于根据所述第一扫描信息以及所述第二扫描信息建立所述目标对象的三维模型。

在示例性实施例中,所述装置还包括:第一显示模块,用于获取参考扫描信息,所述参考扫描信息包括参考扫描轨迹、参考扫描速度以及参考扫描姿态中的一种或多种信息;输出所述参考扫描信息,所述参考扫描信息用于引导对所述目标对象的局部区域进行扫描。

在示例性实施例中,所述第一显示模块,包括:建立单元,用于根据所述特征信息确定所述目标对象的核心区域,并建立所述目标对象的特征位置模型;第一确定单元,用于基于所述核心区域确定所述特征位置模型的完整度信息;第二确定单元,用于根据所述完整度信息确定所述参考扫描信息。

在示例性实施例中,所述第一确定单元,用于以所述核心区域为中心,在所述特征位置模型上确定上部区域、下部区域、左部区域及右部区域;获取每个区域对应的归一化完整度,将每个区域对应的归一化完整度作为所述特征位置模型的完整度信息。

在示例性实施例中,所述第二确定单元,用于当所述参考扫描信息包括所述参考扫描轨迹时,根据所述核心区域对应的归一化完整度确定所述终端与所述目标对象的扫描间距,根据所述上部区域及所述下部区域对应的归一化完整度确定扫描高度以及扫描次数,根据所述左部区域及所述右部区域对应的归一化完整度确定扫描方向;基于所述扫描间距、所述扫描高度、所述扫描次数及所述扫描方向确定所述参考扫描轨迹。

在示例性实施例中,当所述参考扫描信息包括所述参考扫描轨迹时,所述参考扫描轨迹包括互不重叠的参考数量个子扫描轨迹,所述第一显示模块,用于根据所述终端的位置依次显示每个子扫描轨迹。

在示例性实施例中,所述装置还包括:第二显示模块,用于检测所述终端的实际扫描信息,所述实际扫描信息包括实际扫描轨迹、实际扫描速度及实际扫描姿态中的一种或多种信息;若所述实际扫描信息与所述参考扫描信息之间的偏差大于参考阈值,根据所述偏差显示提示信息,所述提示信息用于提示修正所述实际扫描信息。

在示例性实施例中,所述装置还包括:标注模块,用于确定所述目标对象的已扫描区域以及未扫描区域;显示所述目标对象的投影图像,将所述已扫描区域以及所述未扫描区域分别标注在所述目标对象的投影图像上。

在示例性实施例中,所述装置还包括:处理模块,用于对所述目标对象的三维模型进行后处理,得到处理后的三维模型;显示所述处理后的三维模型。

在示例性实施例中,所述装置还包括:第三显示模块,用于当所述参考扫描信息包括所述参考扫描轨迹时,显示所述扫描所述目标对象的实际扫描轨迹以及所述参考扫描轨迹。

在示例性实施例中,所述装置还包括:第四显示模块,用于根据所述实际扫描信息与参考扫描信息之间的偏差获取扫描评价信息,所述扫描评价信息用于评价扫描情况;显示所述扫描评价信息。

第三方面,提供了一种对象重建的设备,所述设备包括存储器及处理器;所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现第一方面或第一方面的任一种可能的实施方式中的方法。

第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现第一方面或第一方面的任一种可能的实施方式中的方法。

第五方面,提供了一种对象重建的设备,该设备包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面任一种可能的实施方式中的方法。

可选地,所述处理器为一个或多个,所述存储器为一个或多个。

可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。

在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。

第六方面,提供了一种计算机程序(产品),所述计算机程序(产品)包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行上述第一方面任一种可能的实施方式中的方法。

第七方面,提供了一种芯片,包括处理器,处理器用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述第一方面的任一种可能的实施方式中的方法。

第八方面,提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述第一方面的任一种可能的实施方式中的方法。

附图说明

图1为本申请实施例提供的终端示意图;

图2为本申请实施例提供的对象重建的方法的流程图;

图3为本申请实施例提供的用户界面的示意图;

图4为本申请实施例提供的用户界面的示意图;

图5为本申请实施例提供的用户界面的示意图;

图6为本申请实施例提供的用户界面的示意图;

图7为本申请实施例提供的用户界面的示意图;

图8为本申请实施例提供的用户界面的示意图;

图9为本申请实施例提供的对象重建的方法的示意图;

图10为本申请实施例提供的用户界面的示意图;

图11为本申请实施例提供的参考扫描轨迹的示意图;

图12为本申请实施例提供的用户界面的示意图;

图13为本申请实施例提供的用户界面的示意图;

图14为本申请实施例提供的扫描示意图;

图15为本申请实施例提供的用户界面的示意图;

图16为本申请实施例提供的用户界面的示意图;

图17为本申请实施例提供的用户界面的示意图;

图18为本申请实施例提供的用户界面的示意图;

图19为本申请实施例提供的用户界面的示意图;

图20为本申请实施例提供的补充扫描轨迹的示意图;

图21为本申请实施例提供的完整扫描轨迹的示意图;

图22为本申请实施例提供的用户界面的示意图;

图23为本申请实施例提供的用户界面的示意图;

图24为本申请实施例提供的投影示意图;

图25为本申请实施例提供的投影示意图;

图26为本申请实施例提供的轨迹对比示意图;

图27为本申请实施例提供的用户界面的示意图;

图28为本申请实施例提供的对象重建的装置的示意图;

图29是本申请实施例提供的网络设备的结构图。

具体实施方式

本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。

随着计算机图形学(computer graphics,CG)及计算机视觉技术的发展,三维重建技术被广泛应用于人们生活中的各个方面,例如电影特效、三维(3dimensions,3D)立体游戏以及虚拟现实(virtual reality,VR)等方面。其中,对象重建技术作为三维重建技术的核心方向,具有一定的发展前景和潜在价值。对象重建是指基于扫描待扫描的对象得到的信息建立三维模型的过程。目前,由于消费级3D摄像头的普及,对象重建技术在终端上的越来越多。因此,如何在终端上完成对象重建,是保证所建立的三维模型准确度的关键。

相关技术中,当终端检测到待建模的目标对象时,首先确认目标对象与终端之间的距离。在距离满足要求的情况下,进一步提示用户保持该距离围绕目标对象移动终端进行扫描。若在扫描过程中检测到用户的扫描速度过快,则提示用户放慢扫描速度,从而最终得到目标对象的扫描信息。最后,根据扫描信息建立目标对象的三维模型。

相关技术存在以下三个技术问题:

技术问题一:相关技术在目标对象与终端的间距满足条件时便触发对目标对象的扫描。若目标对象周围存在其他物体,则扫描得到的其他物体的信息也作为目标对象的扫描信息用于检测目标对象的三维模型,而该种情况下所检测三维模型与目标对象的实际形状会具有较大的偏差。因此,重建得到的三维模型准确度较低,对象重建的效果较差。

技术问题二:扫描过程中,目标对象与终端间距的范围应为20cm(单位:厘米)-80cm,才能保证扫描信息的准确性,进而保证三维模型的准确性。然而,在终端距离目标对象20cm-80cm这一范围内可能扫描不到完整的目标对象,只能进行局部区域的扫描。因此,建立的三维模型也仅为局部区域的模型,进行对象重建的方式不够灵活、重建效果较差。

技术问题三:相关技术只有在检测到用户的扫描速度过快的情况下,才提示用户放慢扫描速度。可以看出,相关技术所提供的提示对用户的引导性较差,则用户可能在围绕目标对象移动终端的过程中进行错误操作,从而导致三维模型的建立失败。因此,不仅影响了对象重建的成功率及效率,还降低了用户的使用体验。

本申请实施例提供了一种对象重建的方法,该方法可应用于如图1所示的终端中。终端包括数据采集系统11、数据处理系统12、显示系统13以及数据存储系统14。其中,数据采集系统11用于采集与待建模的目标对象相关的数据,并将采集得到的数据输入数据处理系统12。数据处理系统12基于所输入的数据建立目标对象的三维模型。显示系统13用于显示建立得到三维模型,以及终端与用户之间的交互信息。数据存储系统14用于存储数据采集系统11采集的数据以及数据处理系统12建立的三维模型。

进一步地,仍参见图1,数据采集系统11包括相机1101以及惯性测量单元1102(inertial measurement unit,IMU)。其中,相机1101可采用阵列相机,阵列相机可以为彩色相机,也可以包括彩色相机和深度相机。彩色相机用于针对目标对象采集红绿蓝(redgreen blue,RGB)色彩模式的彩色图像,深度相机用于针对目标对象采集深度图像(depthmap)。在实施中,深度相机可以采用飞行时间(time of flight,TOF)相机或者立体摄像机。

另外,IMU1102通过内置的陀螺仪采集终端的旋转角速度,通过内置的加速度计采集终端的加速度,从而推算得到终端位置、终端姿态以及终端速度。可以看出,数据采集系统11所采集的数据包括:通过相机1101采集到的目标对象的彩色图像(以及深度图像),通过IMU1102采集到的终端位置、终端姿态以及终端速度。

显示系统13可以采用液晶显示器(liquid crystal display,LCD)屏幕,可以采用发光二极管(light emitting diode,LED)屏幕,也可以采用计算有机发光二极管(organiclight-emitting diode,OLED)屏幕,本实施例不对显示系统13加以限定。数据处理系统12包括以下模块:特征位置检测模块1201、特征位置校验模块1202、参考扫描信息推荐模块1203、建模模块1204、缺失区域反馈模块1205、轨迹对比模块1206、扫描评价模块1207以及模型后处理模块1208。

接下来,结合图1所示的系统及模块,对实现对象重建的方法加以说明:

数据采集系统11,用于通过相机1101及IMU1102采集数据,数据存储系统14会对所采集的数据进行存储。

特征位置检测模块1201,用于根据数据采集系统11所采集的数据确定目标对象是否具有特征信息。

特征位置校验模块1202,用于根据特征位置检测模块1201获取的目标对象的特征信息来检测终端相对于目标对象的位姿信息是否满足要求。若终端相对于目标对象的位姿信息满足要求,则允许正式进入扫描,即再次触发数据采集系统11获取扫描目标对象得到的第一扫描信息。否则,引导用户将终端调整至更为合适的位姿状态。

数据采集系统11,用于获取扫描目标对象得到的第一扫描信息。

参考扫描信息推荐模块1203,用于根据目标对象的特征信息确定参考扫描信息。通过显示系统13可显示所确定的参考扫描信息,从而起到对用户的引导作用。

建模模块1204,用于根据扫描得到的第一扫描信息同步建立目标对象的三维模型,由显示系统13对该三维模型进行显示。另外,数据存储系统14可对该三维模型进行存储。

缺失区域反馈模块1205,用于实时反馈当前已建立三维模型的区域以及未建模的区域,引导用户将扫描完整的目标对象。显示系统13可对已建立三维模型的区域以及未建模的区域进行显示。

轨迹对比模块1206,用于通过显示系统13来对比显示实际扫描轨迹以及参考扫描轨迹,帮助用户提高扫描技巧。

扫描评价模块1207,用于根据实际扫描信息以及参考扫描信息对用于的扫描操作进行评价,得到扫描评价信息,并通过显示系统13显示得到的扫描评价信息。

模型后处理模块1208,用于对建模模块1204所建立的三维模型进行处理,通过显示系统13对处理后的三维模型进行显示。该模块可与轨迹对比模块1206及扫描评价模块1207同步运行。

需要说明的是,在以上模块中,特征位置采集模块1201及特征位置校验模块1202为本实施例的核心模块。数据采集系统11-特征位置检测模块1201-特征位置校验模块1202所涉及的流程为本实施例的核心流程。

基于上述图1所示的终端,本实施例提供了一种对象重建的方法,该方法应用于终端如图2所示,该方法包括:

步骤201,当终端检测到目标对象时,对目标对象进行特征位置检测,特征位置检测用于获取目标对象的特征信息。

其中,终端可提供用于进行对象重建的应用程序(application,APP),并在终端界面显示APP标识,APP标识可以包括文字或图标中的一个或两个。当检测到APP标识被选中之后,可由终端界面跳转至APP内的用户界面(user interface,UI)。之后,APP应用程序便可调用终端相机以及终端内置的IMU,从而触发对目标对象的检测。

在实施中,应用程序所调用的相机与对象建模所采用的算法相关。若所采用的算法是基于RGB的算法,则应用程序调用彩色相机,通过彩色相机镜头来采集目标对象的彩色图像。若所采用的算法是基于红绿蓝深度(red green blue depth)的算法,则应用程序调用彩色相机及深度相机,从而得到目标对象的彩色图像及深度图像。彩色图像与深度图像是同一时刻(或者时间间隔非常小)拍摄得到的,所以可以认为彩色图像与深度图像的图像内容一致。深度图像上的每个像素点具有一个深度值,深度值用于表示目标对象上该像素点所对应的位置与终端相机的光心之间的距离。

对目标对象进行检测的过程中,可通过UI提示用户将相机对准待建模的目标对象,提示方式包括提示文字、提示语音、演示动画中的一种或多种。若通过IMU采集到终端的旋转角速度以及加速度,则说明用户正在根据提示对终端进行移动,从而可进一步通过相机来采集目标对象的图像,以实现对目标对象的检测。在本实施例中,当IMU检测到终端发生移动以及相机采集到目标对象的图像时,便可确认检测到了目标对象。

需要说明的是,相机对目标对象的图像进行采集时,可以在参考时长内持续进行采集,得到包括多张图像的视频,也可以间隔地采集一张或多张图像,本实施例不对相机的采集方式加以限定。

在确认检测到目标对象之后,可通过检测算法对相机所采集到的目标对象的图像进行特征位置检测,从而确定目标对象是否具有特征位置处的特征信息。若检测得到特征信息,则可确定目标对象的对象类型,以便于后续获取目标对象的特征信息。需要说明的是,不同的目标对象的特征位置也有所不同。在示例性实施例中,若目标对象为人体,则目标对象的特征位置可以为面部(即人脸)。因此,若目标对象若从目标对象的图像中检测到了符合人类特征的面部信息,例如符合人类特征的五官信息、面部轮廓信息等等,则可确定目标对象具有人脸,从而确定目标对象为人体。或者,若目标对象为动物,则目标对象的特征位置也可以为面部。若目标对象为人体或动物以外的其他物体,例如茶杯,则特征位置可以为茶杯的杯柄。

在实施中,用于进行三维建模的APP可以是针对某一类型的目标对象的APP。在这一情况下,若APP检测到的特征信息不符合APP所针对类型的目标对象,则APP可以通过UI对用户进行提示,以便于引导用户将相机对准所针对的类型的目标对象。例如,以APP所针对的目标对象为人体为例,若从目标对象的图像中未检测到符合人类特征的面部信息,则可确定目标对象并非人体,从而说明用户将相机对准了人体以外的其他动物或物体。因此,参见图3,可通过UI提示用户“未检测到面部”,以便于引导用户重新将相机对准人体。

步骤202,若检测到目标对象的特征信息,围绕目标对象的局部区域进行扫描,得到目标对象的第一扫描信息。

在本实施例中,不同类型的目标对象具有不同的特征信息。以目标对象为人体为例,通过特征位置检测得到的特征信息则为面部信息,面部信息包括但不限于五官信息、面部轮廓信息、面部尺寸信息、面部角度信息以及面部图像各像素点的深度值等信息。无论得到何种特征信息,均可在得到特征信息之后直接围绕目标对象的局部区域进行扫描,得到目标对象的第一扫描信息。或者,本实施例还提供如下的可选方式来确定第一扫描信息的获取时机:若检测到目标对象的特征信息,根据特征信息确定终端相对于目标对象的位姿信息,位姿信息包括位置信息和姿态信息中的一种或两种。若位姿信息满足条件,则执行围绕目标对象的局部区域进行扫描,得到目标对象的第一扫描信息。

其中,终端相对于目标对象的位置信息包括目标对象的特征位置在UI上的位置以及目标对象的特征位置与终端之间的距离中的一个或两个。终端相对于目标对象的姿态信息包括终端相对于目标对象的特征位置的角度。接下来,分别对位置信息及姿态信息加以说明:

对于目标对象特征位置在UI上的位置,可以首先确定目标对象的特征位置感兴趣区域(region of interest,ROI)。若目标对象的特征位置ROI位于UI上的参考区域内,则确定目标对象特征位置在UI上的位置满足条件。在实施中,参考区域可在UI中通过文字、阴影、颜色或边界线中的一种或多种进行标识。参考区域可以是UI中心偏上的某一区域,也可以是UI中的其他区域,本实施例不对参考区域的位置及面积加以限制。

在确定目标对象的特征位置ROI时,可以基于目标对象的特征信息进行确定。以目标对象为人体、特征信息为面部信息为例,则可以直接根据面部信息中的五官信息及面部轮廓信息确定目标对象的完整面部,将完整面部作为目标对象的面部ROI。则目标对象的完整面部位于上述参考范围内时便可认为目标对象面部在UI上的位置满足条件。或者,也可以基于五官信息确定目标对象的五官,根据实际需要或经验从五官中选择一个或多个,从而确定目标对象的面部ROI。例如,可将眉毛、眼睛、鼻子及嘴确定为目标对象的面部ROI。则当目标对象的眉毛、眼睛、鼻子及嘴位于上述参考范围内时,便可认为目标对象在UI上的位置满足条件。

相应地,若目标对象的特征位置在UI上的位置不满足条件,则可相应地对用户进行提示。参见图4,以特征位置为人脸为例,可在UI中显示“请将脸部对准参考区域”、“请框住脸部”等提示语,以提示用户将终端调整至目标对象的面部在UI上位于参考区域内的位姿。

另外,根据步骤201中的说明,相机所采集的目标对象的图像可能是包括多张图像的视频,也可能是间隔采集的一张或多张图像。因此,在确定目标对象的特征位置ROI之前,可以首先从视频或多张图像中选择目标图像,并从检测到的特征信息中确定该目标图像的对应的特征信息,从而根据该目标图像所对应的特征信息来实现特征位置ROI的确定。以特征信息为面部信息为例,在实施中,可以基于视频或多张图像中的面部尺寸以及面部图像各像素点的深度值,从视频或多张图像中选择与终端的距离最近的图像作为目标图像,或者,也可以将清晰度最高的图像作为目标图像,本实施例不对目标图像的选择加以限定。

对于目标对象的特征位置与终端之间的距离是否满足条件,可以基于目标对象的图像各像素点的深度值进行确认。在实施中,可以首先从图像各像素点中确定有效点,有效点是对应的深度值大于0的像素点,而深度值为0或小于0的像素点则作为无效点。之后,将有效点在图像所包括的所有像素点中所占的比例作为目标比例,或者将特征位置ROI中的有效点在特征位置ROI对应的所有像素点中所占的比例作为目标比例,按照如下的方式确定目标对象与终端之间的距离是否满足条件:

若目标比例不低于参考比例(例如30%),则获取目标对象的特征位置与终端之间的距离。例如,可将有效点对应的深度值的平均值作为该距离,也可将相机所采集的图像中特征位置关键点所对应的像素点的深度值的平均值作为该距离,本实施例不对目标对象的特征位置与终端之间的距离的获取方式加以限定。以特征位置为人脸为例,则特征位置关键点为面部关键点,面部关键点包括但不限于五官及面部轮廓。

在获取到该距离后,若该距离位于参考范围(例如40cm-60cm)内则可确认目标对象与终端之间的距离满足条件。若该距离小于参考范围的下限值,则说明目标对象与终端之间的距离较近,可通过UI提示用户增大目标对象与终端之间的距离,例如显示图5中的“距离太近”来进行提示。若该距离大于参考范围的上限值,则说明目标对象与终端之间的距离较远,可通过UI提示用户减小目标对象与终端之间的距离,例如显示图6中的“距离太远”来进行提示。

若目标比例低于参考比例,则可根据有效点中远点及近点的数量来确定目标对象与终端之间的距离是否满足条件。其中,远点和近点是相对于目标对象的特征位置关键点与终端之间的平均距离而言的,大于该平均距离则作为远点,小于该平均距离则作为近点。若近点的数量大于远点,则说明目标对象与终端之间的距离较近,可根据上述图5中的方式提示用户。若远点的数量大于近点,做说明目标对象与终端之间的距离较远,可根据上述图6中的方式来提示用户。

对于终端相对于目标对象的特征位置的角度是否满足条件,可直接基于特征信息进行确定。以目标对象为人体、特征信息为面部信息为例,则可根据面部信息中的面部角度信息来确定终端相对于目标对象面部的角度是否满足条件。其中,面部角度信息包括但不限于终端相对于目标对象的面部的俯仰角、偏航角以及横滚角。当终端正对目标对象的面部时,俯仰角、偏航角及横滚角的角度均为0。当终端相对于正对位置偏下或偏上(或终端不动、目标对象进行低头或仰头)时,则形成相对于终端的俯仰角;当终端相对于正对位置偏左或偏右(或终端不动、目标对象向左或向右摇头)时,则形成相对于终端的偏航角;当终端相对于正对位置左倾或右倾(或终端不动、目标对象向左或向右歪头)时,则形成相对于终端的横滚角。

在实施中,可在俯仰角、偏航角以及横滚角的角度均不大于参考角度的情况下,确定终端相对于目标对象的角度满足条件。需要说明的是,俯仰角、偏航角以及横滚角均分别对应两个方向,只要两个方向上的角度均不大于参考角度即可确定相对于终端的角度满足条件。以俯仰角为例,终端由正对位置转为偏下位置会形成俯向的角度,由正对位置转为偏上位置会形成仰向的角度。当俯向及仰向的角度均不大于参考角度时,终端实际上可相对于目标对象的面部在以2倍参考角度为圆心角的扇形区域内发生转动,从而使得终端相对于目标对象的俯仰角满足条件。若俯仰角、偏航角以及横滚角中的任一角大于参考角度,则可提示用户将终端调整至正对目标对象的面部的位姿。例如,参见图7,可通过UI显示“请转到正脸”来完成对于用户的提示。

进一步地,除了终端相对于目标对象的位姿信息以外,当目标对象为人体时,本实施例还可检测目标对象的五官形态,若目标对象的五官形态满足要求,再执行获取目标对象的第一扫描信息。例如选择眼睛作为目标五官,若眼睛的形态满足要求,则确定目标对象的形态满足要求。在实施中,可根据面部信息中的五官信息来确定上眼皮和下眼皮之间的距离,根据该距离来确定目标对象是否闭眼。或者,也可根据瞳孔面积来确定目标对象是否闭眼。若目标对象未闭眼,则确定眼睛的形态满足要求,从而进一步确定目标对象的五官形态满足条件。若目标对象闭眼,如图8所示,可通过UI显示“请睁开双眼”、“您已闭眼”等等提示语,以提示目标对象睁开双眼。

可以看出,在执行获取第一扫描信息的步骤之前所需要确定的信息包括但不限于上述目标对象的特征位置在UI上的位置、目标对象的特征位置与终端之间的距离、终端相对于目标对象的特征位置的角度以及目标对象的五官形态中的一种或多种。确定每种信息是否满足条件的过程可以同步进行,也可以按照参考顺序依次进行。例如,当目标对象为人体时,如图9所示,可按照步骤901-907、步骤9071或9072、步骤908-步骤910的顺序依次进行。

在本实施例中,在确定位姿信息满足条件之后,便可触发围绕目标对象的局部区域进行扫描,得到目标对象的第一扫描信息。通过确定位姿信息满足条件,使得正式扫描之前终端相对于目标对象的位置合适,终端的姿态也与正对目标对象的特征位置的姿态较为相符。因此,使得根据正式扫描所得到的第一扫描信息建立的三维模型的特征位置的细节更加准确和丰富。参见图10,可在UI显示扫描按钮,该扫描按钮可通过“开始”、“START(开始)”或者“CAPTUER(获取)”等文字进行标识,以提示用户选择该扫描按钮便可正式开始进行扫描。若检测到扫描按钮被选中,则可通过UI提示用户在当前状态下保持不动,并触发对于目标对象的第一扫描信息的获取。

其中,第一扫描信息是用于进行对象重建的信息。由于待建模的对象常常具有较为丰富的细节,因而需要获取符合要求的第一扫描信息,才能保证重建得到的三维模型准确、完整。基于上述考虑,本实施例可在正式进入扫描之前通过UI播放扫描的演示视频。或者,本实施例还可向用户提供参考扫描信息作为参考,从而获取符合要求的第一扫描信息。也就是说,在示例性实施例中,在围绕目标对象的局部区域进行扫描,得到目标对象的第一扫描信息之前,本实施例所提供的方法还包括:获取参考扫描信息,参考扫描信息包括参考扫描轨迹、参考扫描速度以及参考扫描姿态中的一种或多种信息。输出参考扫描信息,参考扫描信息用于引导对目标对象的局部区域进行扫描。

在实施中,可基于特征信息直接提供默认的参考扫描信息,例如当参考扫描信息包括参考扫描轨迹时,参考扫描轨迹可以是根据特征信息将目标对象的特征位置作为起点的参考扫描轨迹。或者,也可以基于特征信息规划得到具有针对性的参考扫描信息。在示例性实施例中,获取参考扫描信息包括如下的步骤A1-A3:

步骤A1,根据特征信息确定目标对象的核心区域,并建立目标对象的特征位置模型。

其中,核心区域可以根据不同类型的目标对象对应确定。例如,当目标对象为人体时,核心区域可以是包含眉毛、眼睛、鼻子及嘴部的最小矩形区域。而当目标对象为动物时,核心区域可以是包含眼睛、鼻子及嘴部的最小矩形区域。当目标对象为茶杯时,核心区域可以是包括杯柄的最小矩形区域。本实施例不对核心区域的确定方式及核心区域的面积加以限定。另外,对于目标对象的特征位置模型,可通过相机针对目标对象的特征位置进行采集,得到目标对象的特征位置扫描信息,从而特征位置的扫描信息建立目标对象的特征位置模型。

步骤A2,基于核心区域确定特征位置模型的完整度信息。

完整度信息用于指示特征位置模型的完整程度。通过确定特征位置模型的完整度信息,可以确定特征位置模型的哪些区域的完整程度较好(即建模难度较低),以及哪些区域的完成程度较差(即建模难度较高),以便于后续根据不同区域的完整程度来规划合适的参考扫描信息。

在示例性实施例中,确定方式包括:以核心区域为中心,在特征位置模型上确定上部区域、下部区域、左部区域及右部区域。获取每个区域对应的归一化完整度,将每个区域对应的归一化完整度作为特征位置模型的完整度信息。

以目标对象为人体为例,核心区域即为步骤A1中说明的包含眉毛、眼睛、鼻子及嘴部的最小矩形区域。相应地,以核心区域为中心所确定的上部区域可以包括额头及头顶,下部区域包含下巴,左部区域及右部区域包含颧骨及耳朵。

另外,归一化完整度用于指示特征位置模型上一个区域的完整程度,归一化完整度的数值越大,则说明该区域的完整程度越高。对于确定五个区域中每个区域对应的归一化完整度的方式,可以通过二维平面密度方式、三维空间体积密度方式或者距离加权方式来确定。其中,二维平面密度方式是确定每个区域中单位像素面积内的有效点云数量,有效点云数量越多,则归一化完整度的数值越大。三维空间体积密度方式是确定每个区域中单位体积内的有效点云数量,归一化完整度的数值随着有效点云数量的增大而增大。距离加权方式则是确定区域内的各像素点与终端的间距,根据各个间距的加权值确定归一化完整度的数值。

无论采用哪一种方式来确定每个区域的归一化完整度,均可将每个区域的归一化完整度作为特征位置模型的完整度信息,从而触发对参考扫描信息的确定。

步骤A3,根据完整度信息确定参考扫描信息。

在参考扫描信息所包括的信息不同的情况下,根据完整度信息确定参考扫描信息的方式也有所不同。接下来,将核心区域、上部区域、下部区域、左部区域及右部区域对应的归一化完整度分别表示为I

当参考扫描信息包括参考扫描轨迹时,可根据I

另外,还可根据I

根据I

在确定了扫描间距、扫描高度、扫描次数以及扫描方向之后,便可获取一条满足所确定的扫描间距、扫描高度、扫描次数以及扫描方向的扫描轨迹,并将获取到的扫描轨迹作为参考扫描轨迹,从而实现参考扫描轨迹的确定。

当参考扫描信息包括参考扫描速度时,可根据每个区域对应的归一化完整度对参考扫描速度进行确定。例如,对于任一区域,若该区域对应的归一化完整度小于第四阈值,则可将该区域对应的扫描速度降低,以便于通过更慢的扫描速度扫描得到更为丰富准确的扫描信息。最后,综合每个区域对应的扫描速度确定出参考扫描速度。该参考扫描速度可以是每个区域对应的扫描速度的平均值,也可以针对不同区域具有不同的扫描速度。

当参考扫描信息包括参考扫描姿态时,对于任一区域,若该区域对应的归一化完整度小于第五阈值,可将扫描该区域时的参考扫描姿态确定为较为严格的姿态,例如保持竖直状态,以便于通过该种严格的参考扫描姿态扫描得到更为准确的扫描信息。

需要说明的是,对于参考扫描信息包括两种以上的信息的情况,根据上述说明进行组合即可,此处不再加以赘述。

按照上述说明中的方法所获取的参考扫描轨迹可参见图11,图11适用于目标对象为人体或动物时的情况。可以看出,参考扫描轨迹从正对目标对象面部的位置开始,以顺时针或者逆时针的环形轨迹(图中为顺时针)环绕目标对象的上半身一圈。回到正对目标对象面部的位置之后向上延伸,在延伸至目标对象的头顶位置之后结束。参考扫描轨迹上的任一点与目标对象之间的距离可以在40cm-60cm之间,从而保证按照参考扫描轨迹扫描得到的扫描信息较为准确丰富,进而使得根据扫描信息得到的三维模型能够包含精细的头部结构。当然,本实施例不对参考扫描轨迹加以限制,在能够保证对目标对象的局部区域进行完整扫描的前提下,根据实际需求进行规划即可。本实施例也不对参考扫描轨迹与目标对象之间的距离加以限定,可根据需要或经验进行选择。

无论获取到何种参考扫描信息,均可以通过UI输出参考扫描信息,例如根据文字及声音中的一种或两种输出参考扫描信息。例如当参考扫描信息包括参考扫描速度时,可根据所确定的参考扫描速度输出“慢速(或快速)移动扫描”。当参考扫描信息包括参考扫描姿态时,可输出“尽量保持手机竖直”。在示例性实施例中,当参考扫描信息包括参考扫描轨迹时,参考扫描轨迹包括互不重叠的参考数量个子扫描轨迹。相应地,输出参考扫描信息,包括:根据终端的位置依次显示参考数量个子扫描轨迹。

由于参考扫描轨迹需要保证对目标对象的局部区域进行完整扫描,因而参考扫描轨迹常常需要环绕局部区域至少一圈。若直接对所获取的参考扫描轨迹进行显示,则所显示的参考扫描轨迹自身可能发生重叠。不仅会使得UI不够简洁,还会影响了用户的理解,降低了对用户的引导作用。因此,将参考扫描轨迹划分为参考数量个互不重叠的子扫描轨迹,例如可直接对参考扫描轨迹进行N次切分,从而得到(N+1)段子扫描轨迹。之后,便可持续检测终端位置,或者每隔参考时间检测一次终端位置,从而根据终端的位置在用户进行扫描的过程中依次显示参考数量个子扫描轨迹。本实施例中参考时间可以根据实际需要或经验进行设置,例如参考时间可以设置为0.1秒。

在实施中,可在划分得到参考扫描轨迹之后,首先显示第一子扫描轨迹,第一子扫描轨迹的轨迹起点即为参考扫描轨迹的轨迹起点。之后,当检测到终端的位置到达第一子扫描轨迹的轨迹终点之后,便可继续显示以第一子扫描轨迹的轨迹终点为轨迹起点的第二子扫描轨迹。以此类推,依次显示至最后一个子扫描轨迹,最后一个子扫描轨迹的轨迹终点即为参考扫描轨迹的轨迹终点。

需要说明的是,本实施例也可以在显示一个子扫描轨迹之后,检测终端位置及终端姿态,根据终端位置及终端姿态对该子扫描轨迹之后的子扫描轨迹进行更新或进行重新规划,得到更新后的子扫描轨迹。则在检测到终端位置到达当前显示的子扫描轨迹的轨迹终点之后,可继续显示更新后的子扫描轨迹。

另外,本实施例可对所显示的每个子扫描轨迹进行文字标注,例如图12中的“跟随箭头移动”以及图13中的“向上补全头顶”。还可以在所显示的子扫描轨迹上显示动画,例如由轨迹起点滑动至轨迹终点的动态光效,以增强对用户的引导作用。

进一步地,在输出参考扫描信息之后,用户便开始对目标对象进行扫描,目标对象可以按照如图14所示的坐姿接受扫描,也可以站立姿态接受扫描。通过用户的实际扫描过程便可得到目标对象的第一扫描信息。在示例性实施例中,本实施例在显示输出扫描信息之后,方法还包括:检测终端的实际扫描信息,实际扫描信息包括实际扫描轨迹、实际扫描速度及实际扫描姿态中的一种或多种信息。若实际扫描信息与参考扫描信息之间的偏差大于参考阈值,根据偏差输出提示信息,提示信息用于提示修正实际扫描信息。

其中,参考扫描信息中所包括的信息与实际扫描信息中所包括的信息相对应。例如实际扫描信息中包括实际扫描轨迹时,参考扫描信息中也相应地包括参考扫描轨迹。若实际扫描信息所包括的任一信息与参考扫描信息之间的偏差大于参考阈值,便可基于偏差来输出用于提示用户修正实际扫描信息的提示信息。

实际扫描轨迹与参考扫描轨迹之间存在的偏差包括:实际扫描轨迹与目标对象的实际间距偏离参考扫描轨迹与目标对象的参考间距,在这一情况下参考阈值为距离阈值。若实际间距减去参考间距得到的偏差大于距离阈值,则说明终端与目标对象之间的距离过远,因而可参见图15输出“当前距离过远”的提示信息,该提示信息包括提示文字及提示语音中的一种或两种。若参考间距减去实际间距得到的偏差大于距离阈值,则可参见图16输出“当前距离过近”的提示信息。

另外,若实际扫描轨迹在重力方向与参考扫描轨迹的偏差大于距离阈值,则可输出“将手机向上移动”的提示信息,若实际扫描轨迹在重力方向的相反方向与参考扫描轨迹的偏差大于距离阈值,则可输出“将手机向下移动”的提示信息。若实际扫描轨迹与参考扫描轨迹之间的偏差不大于距离阈值,但是产生偏差的频率较高,则可输出“保持手机稳定”的提示信息。

对于实际扫描速度以及参考扫描速度,若实际扫描速度减去参考扫描速度的偏差大于速度阈值,则说明终端的实际扫描速度较快,从而可参见图17输出“当前速度过快”的提示信息。若参考扫描速度减去实际扫描速度的偏差大于速度阈值,则说明终端的实际扫描速度较慢,可输出“当前速度过慢”的提示信息。

对于用户通过终端进行扫描过程中所使用的实际扫描姿态,若实际扫描姿态与参考扫描姿态之间的偏差大于角度阈值,则会导致目标对象中待扫描的局部区域无法完整的被扫描到,因此需要基于实际扫描姿态与参考扫描姿态之间的偏差来输出提示消息,以便于提示用户修正实际扫描姿态。

根据以上说明可知,实际扫描姿态及参考扫描姿态均包括俯仰角、偏航角以及横滚角。在俯仰角对应的偏差大于角度阈值时,输出的提示消息可以为“仰视角度过大”或者如图18所示的“俯视角度过大”。在偏航角对应的偏差大于角度阈值时,输出的提示信息可以为“左倾角度过大”或者“右倾角度过大”。在横滚角对应的偏差大于角度阈值时,输出的提示消息可以为“左转角度过大”或者“右转角度过大”。另外,若由于实际扫描姿态与参考扫描姿态之间的偏差导致目标对象中待扫描的局部区域完全扫描不到,则还可参见图19输出“失去扫描对象”的提示信息。

考虑到第一扫描信息是围绕目标对象的局部区域进行扫描得到的信息,因而本实施例还提供如下的方式,以便于最终能够获取目标对象整体的三维模型:

在一种可选的实施方式中,通过用户的实际扫描过程得到目标对象的第一扫描信息之后,方法还包括:基于目标对象的局部区域确定目标对象的目标区域,目标区域包括目标对象上除局部区域以外的其他区域的至少一部分。获取目标区域对应的第二扫描信息。

其中,基于局部区域所确定的目标区域可以是目标对象中除局部区域以外的所有区域,也可以是除局部区域以外的所有区域中的至少一部分区域。以局部区域为人体的上半身为例,则目标区域可以是人体的下半身,也可以是不包含脚部的下半身。在确定目标对象的目标区域之后,便可进一步获取围绕目标对象的目标区域进行扫描得到的第二扫描信息。

在本实施例中,可基于用于引导对目标对象的局部区域进行扫描的参考扫描轨迹,来确定用于引导对该目标区域进行扫描的补充扫描轨迹。以参考扫描轨迹如图11所示,目标区域为人体的下半身为例,则相对应确定的补充扫描轨迹可以参见图20。补充扫描轨迹包括:将终端从参考扫描轨迹的轨迹终点向下移动至距离地面参考高度(例如0.8-1.2m)处,并远离目标对象至参考扫全距离(例如1-1.5m)。之后,保持在参考高度及参考扫全距离环绕下半身一圈。由参考扫描轨迹及补充扫描轨迹所构成的完整轨迹可参见图21。

需要说明的是,本实施例不对上述参考高度及参考扫全距离加以限定,只要保证在参考高度及参考扫全距离处所扫描到的区域中,既包括完整的目标区域,又包括与局部区域重叠的部分区域即可。例如,局部区域为从目标对象头顶至胯部的上半身,目标区域为从目标对象胯部至脚部的下半身,则在参考高度及参考扫全距离处所扫描到的区域可包括局部区域中的腰部至胯部区域,以及完整的下半身。

或者,也可按照如下的方式计算得到上述参考扫全距离:获取目标对象的整体高度以及终端相机的内参数(camera intrinsic),并基于小孔相机模型所形成的三角关系计算得到终端与目标对象之间的最小扫全距离,即终端与目标对象之间的实际距离需大于最小扫全距离才能保证目标对象的整体被扫全。之后,基于计算得到的最小扫全距离确定上述参考扫全距离即可。在实施中,可获取目标对象的整体图像,将整体图像换算至三维空间来获取目标对象的整体高度。或者,也可以通过基于第一扫描信息建立的三维模型来推算得到目标对象的整体高度,基于第一扫描信息建立三维模型的过程可参见后文步骤203中的说明。

另外,获取到补充扫描轨迹之后,也可以对补充扫描轨迹进行分段显示,并通过文字对分段显示的补充扫描轨迹进行指示,以引导用户对目标对象的目标区域的扫描。例如,参见图22中的“拉远扫全身”以及图23中“跟随箭头移动”,从而起到对用户的引导作用。

在获取到目标区域对应的第二扫描信息之后,若目标对象中除了局部区域以及目标区域以外,还包括其他未扫描到的区域,则可继续获取第三扫描信息,第三扫描信息是用户对该未扫描到的区域进行自由扫描所得到的信息。在实施中,UI中可提供标注有“完成”、“结束”或者“STOP(停止)”的停止按钮,以引导用户在完成扫描之后点击该停止按钮。若检测到停止按钮被选中,则说明用户的实际扫描过程已结束,可触发后续其他处理过程。

步骤203,根据第一扫描信息建立目标对象的三维模型。

根据以上说明可知,用户开始对目标对象进行扫描之后,便可获取到第一扫描信息。在本实施例中,可根据扫描得到的第一扫描信息同步建立目标对象的三维模型。仍以局部区域为目标对象的上半身为例,则当扫描到目标对象的面部时,便建立目标对象的面部三维模型。当由面部进一步扫描到目标对象的头顶时,便在已建立的面部三维模型的基础上补充目标对象的头顶三维模型。完成对目标对象上半身各个位置的扫描后,即可形成目标对象的半身三维模型。或者,也可以在扫描得到全部的第一扫描信息之后,再对目标对象的三维模型进行建立。例如,依次对目标对象的面部、头顶完成扫描之后,便得到全部的第一扫描信息,此时再根据全部的第一扫描信息建立目标对象的半身三维模型。

需要说明的是,第一扫描信息包括通过相机采集到的RGB(或RGBD)信息,以及通过IMU采集到的旋转角信息以及加速度信息。建立三维模型的过程中,根据IMU所采集到的信息进行终端位姿估计,再对RGB(或RGBD)信息以及估计到的终端位姿通过三维模型融合算法进行融合,从而完成三维模型的建立。

在根据第一扫描信息建立目标对象的三维模型的过程中,本实例所提供的方法还包括:确定目标对象的已扫描区域以及未扫描区域。显示目标对象的投影图像,将已扫描区域以及未扫描区域分别标注在目标对象的投影图像上。

其中,若在扫描过程中同步建立三维模型,则已建立三维模型的区域即为已经扫描过的区域。因此,可根据光线投射算法将已建立三维模型的区域向终端投影,便可确定出已扫描区域。或者,若在扫描过程完成之后再建立三维模型,则可根据实际扫描轨迹来确定已扫描区域。之后,还可将目标对象的轮廓投影向终端投影,从而在UI显示目标对象的投影图像。在目标对象的投影图像中,除已扫描区域以外均为未扫描区域,从而实现未扫描区域的确定。需要说明的是,目标对象的投影图像可以是目标对象局部区域的投影图像,例如在局部区域为人体上半身时,则在人体上半身的投影图像上标注已扫描区域及未扫描区域。或者,目标对象的投影图像也可以是目标对象局部区域以及目标区域的投影图像,本实施例对此不加以限定。

在确定已扫描区域以及未扫描区域之后,参见图24,可将已扫描区域以及未扫描区域均标注在目标对象的投影图像上。在实施中,已扫描区域以及未扫描区域可分别通过不同颜色进行标注,或者通过不同密度的网格进行标注,或者通过不同类型的填充图案进行标注。本实施例不对标注方式加以限定,只要能够使得标注后的已扫描区域以及标注后的未扫描区域具有区分度即可。

相关技术中对已扫描区域的标注可参见图25。可以看出,对于扫描过程中的任一时刻,相关技术仅在该时刻对应的扫描视角下标注已扫描区域。因此对于用户而言,仅能看到当前时刻的建模结果,而并不知道目标对象还有哪些区域未扫描到。相比于相关技术,本实施例所提供的标注方法较为直观的显示了目标对象当前还未被扫描到的区域,不仅方便用户了解当前的扫描进度,而且能够触发用户自发地将终端移动至未被扫描的区域,因而具有较好的标注效果。

根据步骤202中的说明可知,在获取目标对象的第一扫描信息之后,还可获取目标对象中目标区域对应的第二扫描信息。因此相应地,在根据第一扫描信息建立目标对象的三维模型,包括:根据第一扫描信息以及第二扫描信息建立目标对象的三维模型。在实施中,以目标区域为目标对象的下半身为例,则可在获取第二扫描信息的过程中同步建立得到下半身的人体三维模型。仍根据步骤202中的说明,由于获取第二扫描信息是所扫描的区域与第一扫描信息对应的局部区域有部分重叠,因而根据第二扫描信息建立的下半身的人体三维模型中也有与上半身的人体三维模型相重叠的模型部分。因此,可根据重叠的模型部分对上半身、下半身的人体三维模型进行融合,也就是根据第二扫描信息对目标对象的人体三维模型进行了补充。或者,也可以在扫描完局部区域及目标区域,得到第一扫描信息以及第二扫描信息之后,再根据第一扫描信息以及第二扫描信息建立得到目标对象的三维模型。

另外,若综合第一扫描信息、第二扫描信息以及步骤202中提到的用户自由扫描的第三扫描信息建立得到的模型为具有缺失区域的三维模型,本实施例还根据实际需要可调用重建算法对缺失区域进行补全。

在示例性实施例中,根据第一扫描信息建立目标对象的三维模型之后,方法还包括:对三维模型进行后处理,得到处理后的三维模型,显示处理后的三维模型。对三维模型的处理过程包括但不限于模型滤波、网格化、纹理映射以及美肤等处理步骤。由于步骤202中在正式扫描之前确定了终端相对于目标对象的位姿信息满足要求,因而在对三维模型进行纹理映射处理时,可以更好对三维模型进行纹理贴图。即,在三维模型的每个面上贴上相应的纹理,从而得到更为美观、逼真的三维模型。

需要说明的是,对三维模型进行处理的过程需要耗费一定的时间,因而本实施例处理过程中通过UI显示与用户的实际扫描过程相关的内容,以便于缓解用户的等待焦虑。在示例性实施例中,参见图26,当参考扫描信息包括参考扫描轨迹时,本实施例可显示扫描目标对象的实际扫描轨迹以及参考扫描轨迹,从而直观地向用户展示实际扫描轨迹与参考扫描轨迹之间的区别,从而帮助用户提升扫描技巧。在实施中,可将实际扫描轨迹与参考扫描轨迹显示为不同颜色,以便于用户进行区分。或者,也可以将实际扫描轨迹与参考扫描轨迹显示为不同的线条类型,例如将实际扫描轨迹显示为实线,将参考扫描轨迹显示为虚线。在显示过程中,可以直接对完整的实际扫描轨迹以及参考扫描轨迹进行显示,也可以按照轨迹起点至轨迹终点的方向分别回放实际扫描轨迹以及参考扫描轨迹。本实施例不对实际扫描轨迹与参考扫描轨迹的显示方式加以限定。

除了显示实际扫描轨迹与参考扫描轨迹以外,在示例性实施例中,本实施例也可以根据实际扫描信息与参考扫描信息之间的偏差获取用于评价扫描情况的扫描评价信息,并对扫描评价信息进行显示。其中,扫描评价信息可以包括用于评价实际扫描轨迹与参考扫描轨迹之间的偏差的轨迹评价信息,也可以包括用于评价实际扫描速度与参考扫描速度之间的偏差的速度评价信息。获取轨迹评价信息及速度评价信息的方式可参见如下的公式:

其中,对公式中各符号说明如下:

G

n

P

P

S

S

在上述说明中,第1圈指的是围绕目标对象的局部区域进行扫描的过程,第2圈指的是围绕目标对象的目标区域进行扫描的过程。可以看出,当用户的实际扫描轨迹包括两圈以上的轨迹时,可对每圈实际扫描轨迹分别确定一个轨迹评价信息。参见图27,对于获取到的轨迹评价信息以及速度评价信息,可在UI界面通过星级形式进行显示。或者,也可通过数值形式或者进度条形式进行显示,本实施例对轨迹评价信息及速度评价信息的显示形式不加以限定。

需要说明的是,本实施不对上述显示实际扫描轨迹及参考扫描轨迹、显示扫描评价信息的过程以及三维模型的后处理过程的执行顺序加以限定。除了上述说明中同步执行的情况以外,也可以先进行上述显示中的一种或两种、再执行三维模型的后处理过程,或者先执行三维模型的后处理过程、再进行上述显示中的一种或两种。

综上所述,本实施例在检测到待建模的目标对象之后,首先通过特征位置检测来确定目标对象是否具有特征信息。在确定目标对象具有特征信息的情况下,再根据目标对象的扫描信息来建立目标对象的三维模型。因此,本实施例所建立的三维模型与目标对象的实际形状较为贴合,三维模型准确度较高,对象重建的效果较好。

另外,本实施例在获取到目标对象的局部区域所对应的第一扫描信息之后,还可以继续获取局部区域以外的目标区域对应的第二扫描信息。因此,可基于第二扫描信息对局部的三维模型进行补充,从而得到更为完整的三维模型,例如目标对象的全身三维模型。可以看出,本实施例的对象重建方式较为灵活。

进一步地,本实施例在用户的实际扫描过程中,实时输出对用户的提示消息,还基于投影向用户直观的展示已扫描区域及未扫描区域。因此,对用户的扫描过程具有较强的引导性,保证了用户扫描得到的扫描信息的准确度,从而提升了重建得到的三维模型的完整性及准确度。此外,在用户等待终端处理三维模型的过程中,还显示实际扫描轨迹与参考扫描轨迹之间的对比,以及针对实际扫描过程的扫描评价信息,不仅缓解了用户的等待焦虑,还具有帮助用户提升扫描技巧的效果。

基于相同构思,如图28所示,本申请实施例还提供了一种对象重建的装置,该装置包括:

检测模块2801,用于当终端检测到目标对象时,对目标对象进行特征位置检测,特征位置检测用于获取目标对象的特征信息;

获取模块2802,用于若检测到目标对象的特征信息,围绕目标对象的局部区域进行扫描,得到目标对象的第一扫描信息;

建立模块2803,用于根据第一扫描信息建立目标对象的三维模型。

在示例性实施例中,若目标对象为人体,特征位置为面部。

在示例性实施例中,装置还包括:第一确定模块,用于若检测到目标对象的特征信息,根据特征信息确定终端相对于目标对象的位姿信息,位姿信息包括位置信息和姿态信息中的一种或两种;获取模块,用于若位姿信息满足条件,则执行围绕目标对象的局部区域进行扫描,得到目标对象的第一扫描信息。

在示例性实施例中,装置还包括:第二确定模块,用于基于目标对象的局部区域确定目标对象的目标区域,目标区域包括目标对象上除局部区域以外的其他区域的至少一部分;获取目标区域对应的第二扫描信息;建立模块2803,用于根据第一扫描信息以及第二扫描信息建立目标对象的三维模型。

在示例性实施例中,装置还包括:第一显示模块,用于获取参考扫描信息,参考扫描信息包括参考扫描轨迹、参考扫描速度以及参考扫描姿态中的一种或多种信息;输出参考扫描信息,参考扫描信息用于引导对目标对象的局部区域进行扫描。

在示例性实施例中,第一显示模块,包括:建立单元,用于根据特征信息确定目标对象的核心区域,并建立目标对象的特征位置模型;第一确定单元,用于基于核心区域确定特征位置模型的完整度信息;第二确定单元,用于根据完整度信息确定参考扫描信息。

在示例性实施例中,第一确定单元,用于以核心区域为中心,在特征位置模型上确定上部区域、下部区域、左部区域及右部区域;获取每个区域对应的归一化完整度,将每个区域对应的归一化完整度作为特征位置模型的完整度信息。

在示例性实施例中,第二确定单元,用于当参考扫描信息包括参考扫描轨迹时,根据核心区域对应的归一化完整度确定终端与目标对象的扫描间距,根据上部区域及下部区域对应的归一化完整度确定扫描高度以及扫描次数,根据左部区域及右部区域对应的归一化完整度确定扫描方向;基于扫描间距、扫描高度、扫描次数及扫描方向确定参考扫描轨迹。

在示例性实施例中,当参考扫描信息包括参考扫描轨迹时,参考扫描轨迹包括互不重叠的参考数量个子扫描轨迹,第一显示模块,用于根据终端的位置依次显示每个子扫描轨迹。

在示例性实施例中,装置还包括:第二显示模块,用于检测终端的实际扫描信息,实际扫描信息包括实际扫描轨迹、实际扫描速度及实际扫描姿态中的一种或多种信息;若实际扫描信息与参考扫描信息之间的偏差大于参考阈值,根据偏差显示提示信息,提示信息用于提示修正实际扫描信息。

在示例性实施例中,装置还包括:标注模块,用于确定目标对象的已扫描区域以及未扫描区域;显示目标对象的投影图像,将已扫描区域以及未扫描区域分别标注在目标对象的投影图像上。

在示例性实施例中,装置还包括:处理模块,用于对目标对象的三维模型进行后处理,得到处理后的三维模型;显示处理后的三维模型。

在示例性实施例中,装置还包括:第三显示模块,用于当参考扫描信息包括参考扫描轨迹时,显示扫描目标对象的实际扫描轨迹以及参考扫描轨迹。

在示例性实施例中,装置还包括:第四显示模块,用于根据实际扫描信息与参考扫描信息之间的偏差获取扫描评价信息,扫描评价信息用于评价扫描情况;显示扫描评价信息。

综上所述,本实施例在检测到待建模的目标对象之后,首先通过特征位置检测来确定目标对象是否具有特征信息。在确定目标对象具有特征信息的情况下,再根据目标对象的扫描信息来建立目标对象的三维模型。因此,本实施例所建立的三维模型与目标对象的实际形状较为贴合,三维模型准确度较高,对象重建的效果较好。

另外,本实施例在获取到目标对象的局部区域所对应的第一扫描信息之后,还可以继续获取局部区域以外的目标区域对应的第二扫描信息。因此,可基于第二扫描信息对局部的三维模型进行补充,从而得到更为完整的三维模型,例如目标对象的全身三维模型。可以看出,本实施例的对象重建方式较为灵活。

进一步地,本实施例在用户的实际扫描过程中,实时输出对用户的提示消息,还基于投影向用户直观的展示已扫描区域及未扫描区域。因此,对用户的扫描过程具有较强的引导性,保证了用户扫描得到的扫描信息的准确度,从而提升了重建得到的三维模型的完整性及准确度。此外,在用户等待终端处理三维模型的过程中,还显示实际扫描轨迹与参考扫描轨迹之间的对比,以及针对实际扫描过程的扫描评价信息,不仅缓解了用户的等待焦虑,还具有帮助用户提升扫描技巧的效果。

应理解的是,上述图28提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

基于相同构思,参见图29,本实施例还提供了一种对象重建的设备2900,设备2900用于执行上述对象重建的方法所涉及的操作。该设备2900包括:存储器2901、处理器2902及接口2903,存储器2901、处理器2902及接口2903之间通过总线2904连接。

其中,存储器2901中存储有至少一条指令,至少一条指令由处理器2902加载并执行,以实现上述任一所述的对象重建的方法。接口2903用于与网络中的其他设备进行通信,该接口2903可以通过无线或有线的方式实现,示例性地,该接口2903可以是网卡。例如,设备2900可通过该接口2903与服务器进行通信。

应理解的是,图28仅仅示出了设备2900的简化设计。在实际应用中,设备2900可以包含任意数量的存储器2901、处理器2902或者接口2903。

基于相同构思,本实施例还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现本实施例的任一种可能的实施方式中的方法。

应理解的是,上述处理器可以是中央处理器(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced RISC machines,ARM)架构的处理器。

进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。

该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用。例如,静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data dateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。

本申请提供了一种计算机程序,当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。

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

以上所述仅为本申请的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 对象重建方法、装置、电子设备及存储介质
  • 对象三维重建方法、装置、电子设备及存储介质
技术分类

06120112684937