CN115439606A - 三维重建方法、图形界面、系统及相关装置 - Google Patents
三维重建方法、图形界面、系统及相关装置 Download PDFInfo
- Publication number
- CN115439606A CN115439606A CN202211058725.7A CN202211058725A CN115439606A CN 115439606 A CN115439606 A CN 115439606A CN 202211058725 A CN202211058725 A CN 202211058725A CN 115439606 A CN115439606 A CN 115439606A
- Authority
- CN
- China
- Prior art keywords
- dimensional model
- model
- explicit
- target scene
- server
- 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.)
- Pending
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04817—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- 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/005—Tree description, e.g. octree, quadtree
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Geometry (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了三维重建方法、图形界面、系统及相关装置,在该方法中,可以利用目标场景的图像或视频训练神经辐射场模型,得到目标场景对应的隐式三维模型,然后,再将该隐式三维模型转换为移动端设备能够实时渲染的显式三维模型,最后,在移动端设备上可以实时渲染在某一视角下的该显式三维模型所呈现的画面。可以看出,该方法实现了神经辐射场模型训练得到的三维模型能够在移动端设备的实时渲染,用户无需手动建模,即可得到逼真的三维模型,实现了真正将三维重建引入大众视野。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及三维重建方法、图形界面、系统及相关装置。
背景技术
三维重建是指对三维物体建立适合计算机标识和处理的数学模型。物体的三维重建是计算机图形学和计算机视觉中重要的研究内容,在动画、电影、游戏等领域都有着广泛的应用。利用三维重建可以将现实中的场景“搬到”虚拟空间中,用户足不出户,通过观看虚拟的三维场景,即可远程体验到在现实场景中身临其境的感觉。
目前,常见的三维重建技术有:使用专业相机对现实世界的空间场景拍摄平面图,利用软件将多幅平面图拼接合成,从而模拟成三维空间的360°全景景观,达到快速重建三维场景的效果,但是利用平面图模拟全景景观从视觉上观看的画面仍然是平面图,用户的参与感太差,无法真实模拟出身处现实场景的效果;或者,也可以使用昂贵的仪器采集高质量的彩色图,并通过立体匹配的方法重建出高质量的三维模型,但是该方法需要耗费大量成本,仅适用于高端场合,难以走进人们的生活中。
因此,如何重建出逼真的三维场景,并引入到大众视野,是目前亟待解决的问题。
发明内容
本申请提供了三维重建方法、图形界面、系统及相关装置,实现了将基于神经辐射场训练得到的隐式三维模型转换成移动端设备能够实时渲染的显式三维模型,将三维重建引入大众视野。
第一方面,本申请提供了一种三维重建方法,该方法应用于服务器,该方法包括:该服务器获取针对目标场景的多张图像;该服务器根据该多张图像,和,拍摄该多张图像时的相机位姿,训练神经辐射场模型,得到隐式三维模型;其中,该隐式三维模型的输入为该目标场景中空间点的坐标和观察方向,输出为该空间点的颜色和密度;该服务器将该隐式三维模型转化为显式三维模型,该显式三维模型描述了该目标场景中部分空间点的密度和在不同观察方向下的颜色;该服务器将该显式三维模型发送给第一设备。
实施第一方面提供的方法,服务器可以利用神经辐射场训练得到目标场景的隐式三维模型,并对该隐式三维模型进行轻量化和实时化,转换为移动端设备能够实时渲染的显式三维模型。该显式三维模型与隐式三维模型相比,隐式三维模型仅表示了空间点的坐标、观察方向,与空间点的颜色和密度的输入输出关系,而显式三维模型直接将空间点的密度和不同观察方向下的颜色描述出来,避免在渲染三维模型再查询每个空间点的信息的麻烦,从而体现了对隐式三维模型的实时化,并且,显式三维模型仅描述了目标场景的部分空间点的信息,其描述的空间点数量少于隐式三维模型所表示的空间点,从而体现了对隐式三维模型的轻量化。这样,用户无需昂贵的移动,仅需一台移动端设备,就可以查看到利用神经辐射场重建的三维模型,降低了三维重建的门槛,使得普通消费者利用手机、平板、电脑等移动端设备也能够实现对目标场景的三维重建,拓展了三维重建的应用场景,真正实现了三维重建走进人们的生活,将三维重建引入大众视野。
结合第一方面,在一些实施方式中,在训练该神经辐射场模型的过程中,该图像中像素点对应的空间点的坐标由该图像和拍摄该图像的相机位姿确定;该观察方向由拍摄该图像时的相机位姿指示的相机位置,指向,该图像中的像素点;该目标场景中的该观察方向上的一个或多个空间点的颜色和密度的积分为该像素点的像素值。
结合第一方面,在一些实施方式中,该服务器将该隐式三维模型转化为显式三维模型,具体包括:该服务器通过球谐函数表示该隐式三维模型中表征的观察方向和颜色之间的关系,一个该球谐函数表示一个空间点的不同观察方向和颜色之间的关系;该服务器过滤该目标场景中的部分空间点,以保留密度值大于预设值的该部分空间点,该目标场景中的空间点的密度值通过在该隐式三维模型中输入该空间点的坐标得到;该服务器生成显式三维模型,该显式三维模型包含以下信息:该部分空间点的密度,以及,该部分空间点的球谐函数的系数。
也就是说,服务器可以利用球谐函数来表示出隐式三维模型所表征的输入输出关系,避免在渲染三维模型时再通过隐式三维模型的输入输出关系来查询三维模型的信息,加快模型渲染的速度,另外,服务器可以通过过滤密度值较低的空间点来轻量化模型,降低了模型的复杂度,进一步地加快模型渲染的速度。
结合第一方面,在一些实施方式中,该显式三维模型以八叉树的数据结构存储该信息,该八叉树包括多个节点,一个该节点对应于该部分空间点中的一个空间点,一个该节点存储有索引信息,该索引信息用于查找到该节点对应的空间点的密度,以及,该节点对应的空间点的球谐函数的系数。
由于八叉树是一种描述三维空间的树状结构,利用八叉树来描述该显式三维模型是由于八叉树的叶子节点本身具有表征其和其他叶子节点之间的相对位置关系的特性,这样,设备在渲染该显式三维模型时,无需根据空间点的坐标来确定该空间点在实际物理空间点中的位置,只需根据这些空间点的相对位置关系即可还原出该目标场景在设备中所呈现的画面,加快了设备渲染模型时的速度。
结合第一方面,在一些实施方式中,该显式三维模型实现为纹理贴图,该纹理贴图包括:索引贴图、模型参数贴图,该索引贴图的像素值用于指示节点的索引信息,该模型参数贴图的像素值用于指示空间点的密度或球谐函数的系数,其中,该索引贴图的一个像素值所指示的第一节点,用于查找到该模型参数贴图中的多个像素值所指示的第一节点对应的第一空间点的密度,以及,该第一空间点的球谐函数的系数。
也就是说,在服务器向第一设备发送显式三维模型时,可以直接向该第一设备发送纹理贴图,第一端设备可以通过该纹理贴图获取显式三维模型的信息,实现对显式三维模型的渲染。
结合第一方面,在一些实施方式中,拍摄图像时的相机位姿由该服务器根据该图像以及与该图像相邻的图像确定,该多张图像中的任意两张相邻图像中包含预设比例的重叠内容。
结合第一方面,在一些实施方式中,该服务器获取针对目标场景的多张图像之后,该方法还包括:该服务器根据该多张图像以及先验参数,确定该多张图像中每一张图像对应的相机位姿,该先验参数包括以下一项或多项:拍摄该图像的相机的位置、姿态,图像中拍摄到的物体的位置,该图像的深度信息。
服务器利用先验参数来确定图像对应的相机位姿,可以使服务器获得更加准确的相机位姿,实现构建的三维模型与真实三维空间中的目标场景的位置、角度和尺度的对齐。
结合第一方面,在一些实施方式中,该服务器获取针对目标场景的多张图像,具体包括:该服务器获取到该第一设备采集的针对该目标场景的多张图像;或者,该服务器获取针对目标场景的多张图像之前,该方法还包括:该服务器获取到该第一设备采集的针对该目标场景的视频,该多张图像为该视频中的多帧图像。
也就是说,服务器通过第一设备采集的目标场景的图像或视频即可实现目标场景的三维重建。
第二方面,本申请实施例提供了一种三维重建方法,该方法应用于第一设备,该方法包括:该第一设备获取到服务器发送的显式三维模型,该显式三维模型为该服务器对隐式三维模型转化后得到的模型,该隐式三维模型为根据目标场景的多张图像,和,拍摄该多张图像时的相机位姿,训练神经辐射场模型得到,其中,该隐式三维模型的输入为该目标场景中空间点的坐标和观察方向,输出为该空间点的颜色和密度,该显式三维模型描述了该目标场景中部分空间点的密度和在不同观察方向下的颜色;该第一设备显示第一用户界面,该第一用户界面中显示有:第一观察视角下该显式三维模型所呈现的第一画面。
第一设备可以是指面向用户的移动端设备,实施第一方面提供的方法,第一设备直接基于服务器生成的显式三维模型,显式某一视角下该显式三维模型所呈现的画面,给用户身临其境的感觉,其中,通过神经辐射场训练得到的三维模型,能够很好地还原出真实场景的光线、环境,得到逼真的虚拟场景,提升了重建三维场景的精度和质量。
结合第二方面,在一些实施方式中,该第一画面中的像素点的像素值由该显式三维模型描述的第一观察方向上的空间点的颜色和密度的积分得到,该第一观察方向为在该第一观察视角下,观察该像素点对应的空间点的方向。
结合第二方面,在一些实施方式中,该方法还包括:该第一设备检测到用户将该第一观察视角调整为第二观察视角;该第一设备在该第一用户界面中,显示该第二观察视角下,该显式三维模型所呈现的第二画面。
也就是说,第一设备可以根据用户调整视角的操作,更新显示不同视角下该显式三维模型所呈现的画面,这样,用户可以通过调整新视角,从不同的角度观看到现实环境中的目标场景在电子设备中呈现的三维模型,来实现在该目标场景下的漫游效果。
结合第二方面,在一些实施方式中,该目标场景的多张图像为该第一设备采集的针对该目标场景的多张图像;或者,该方法还包括;该第一设备将采集的针对该目标场景的视频发送给该服务器,该目标场景的多张图像为该视频中的多帧图像。
也就是说,第一设备可以参与重建三维模型的前期数据采集阶段,用户可以自行采集目标场景的图片或视频,实现对目标场景的三维重建,增强用户在三维重建中的参与感,提升三维重建的趣味性。
结合第二方面,在一些实施方式中,该第一设备将采集的针对该目标场景的多张图像或视频发送给该服务器之前,该方法还包括:该第一设备显示包含第一控件的第二用户界面;该第一设备检测到作用于该第一控件的第一操作;响应于该第一操作,该第一设备启动摄像头并显示第三用户界面,该第三用户界面包括:第一预览框和第二控件,该第一预览框用于实时显示该摄像头采集的图像;该第一设备检测到作用于该第二控件的第二操作,该第二操作用于触发该第一设备采集针对该目标场景的多张图像或视频。
结合第二方面,在一些实施方式中,该第一用户界面还包括:第三控件,该第一设备显示第一用户界面之后,该方法还包括:该第一设备检测到作用于该第三控件的第三操作;响应于该第三操作,该第一设备在该第三用户界面中显示一个或多个模型图标,该一个或多个模型图标包括该第一模型图标;该第一设备检测到作用于该第一模型图标的第四操作;响应于该第四操作,该第一设备在该第一用户界面中添加该第一模型图标对应的第一模型,且,在该第一观察视角下,该第一设备在该第一用户界面中显示添加该第一模型后的该显式三维模型所呈现的第三画面。
在第一设备显示该目标场景的显式三维模型的过程中,第一设备可以根据用户操作调整该显式三维模型,例如在显式三维模型中添加虚拟物体。这样,用户可以通过在虚拟场景中添加虚拟物体,来查看在目标场景中添加物体的效果。例如,在用户采集客厅的图像,获得客厅对应的显式三维模型后,用户可以在该显式三维模型中添加虚拟家居,更换墙纸风格等等,来实现在不耗费任何财力物力,也无需更改客厅中的布置的情况下,也能够查看到在客厅中放置家居,更换墙纸风格等等的调整效果,为用户装饰目标场景提供参考,为用户的生活提供便利。
结合第二方面,在一些实施方式中,该第一设备显示该第三画面之后,该方法还包括:该第一设备将该添加第一模型后的显式三维模型发送给第二设备,使得该第二设备在实时采集的针对该目标场景的第一图像上,叠加显示该第一模型,并且,该第一模型在该第一图像中显示的该目标场景中的位置,与该第一模型在该添加第一模型后的显式三维模型中的位置对应。
也就是说,第一设备可以将调整后的显式三维模型发送给其他设备,例如第二设备,第二设备可以在摄像头实时采集的针对目标场景的图像中,叠加显示该调整后的显式三维模型中增加的虚拟物体。这样,使用第一设备的无需到达目标场景的现场,也可以实现对目标场景的调整,使得在现场的用户能够查看目标场景中新增的虚拟物体,实现虚拟世界和现实世界的交汇,将虚拟现实和混合现实引入到三维重建中,增加用户与三维模型的互动,增加三维重建的趣味性。
第三方面,本申请实施例提供了一种三维重建方法,该方法应用于第二设备,该方法包括:该第二设备获取到该第一设备发送的添加第一模型后的显式三维模型,该显式三维模型为根据神经辐射场模型训练得到的目标场景的模型;该第二设备显示第四用户界面,该第四用户界面中显示有:该第二设备实时采集的针对该目标场景的第一图像,以及,叠加在该第一图像中的该第一模型,该第一模型在该第一图像中显示的该目标场景中的位置,与该第一模型在该添加第一模型后的显式三维模型中的位置对应。
实施第三方面提供的方法,第二设备可以在现实场景中查看到第一设备在虚拟的三维模型中添加的虚拟物体,实现了虚拟世界与现实世界的交汇,增加了三维重建的趣味性,拓展了三维重建的应用场景。
结合第三方面,在一些实施方式中,该显式三维模型为服务器对隐式三维模型转化后得到的模型,该隐式三维模型为根据目标场景的多张图像,和,拍摄该多张图像时的相机位姿,训练神经辐射场模型得到,其中,该隐式三维模型的输入为该目标场景中空间点的坐标和观察方向,输出为该空间点的颜色和密度,该显式三维模型描述了该目标场景中部分空间点的密度和在不同观察方向下的颜色。
第四方面,本申请实施例提供了一种三维重建系统,该系统包括服务器和第一设备,该系统包括:该服务器获取针对目标场景的多张图像;该服务器根据该多张图像,和,拍摄该多张图像时的相机位姿,训练神经辐射场模型,得到隐式三维模型;其中,该隐式三维模型的输入为该目标场景中空间点的坐标和观察方向,输出为该空间点的颜色和密度;该服务器将该隐式三维模型转化为显式三维模型,该显式三维模型描述了该目标场景中部分空间点的密度和在不同观察方向下的颜色;该服务器将该显式三维模型发送给该第一设备;该第一设备显示第一用户界面,该第一用户界面中显示有:第一观察视角下该显式三维模型所呈现的第一画面,该第一画面中的像素点的像素值由该显式三维模型描述的第一观察方向上的空间点的颜色和密度的积分得到,该第一观察方向为在该第一观察视角下,观察该像素点对应的空间点的方向。
可以看出,服务器用于生成移动端设备能够实时渲染的显式三维模型,第一设备用于显示该显式三维模型,其中,由于该显式三维模型为基于神经辐射场重建的模型,该第一设备能够显示真实逼真、还原真实环境光线的目标场景的虚拟模型,且该显式三维模型为服务器对隐式三维模型轻量化、实时化后得到的模型,第一设备能够更加快速地渲染该显式三维模型。这样,实现了将基于神经辐射场景重建的三维模型引入大众视野,降低了三维重建的门槛,拓展了三维重建的应用场景,真正实现三维重建走进人们的生活。
结合第四方面,在一些实施方式中,在训练该神经辐射场模型的过程中,该图像中像素点对应的空间点的坐标由该图像和拍摄该图像的相机位姿确定;该观察方向由拍摄该图像时的相机位姿指示的相机位置,指向,该图像中的像素点;该目标场景中的该观察方向上的一个或多个空间点的颜色和密度的积分为该像素点的像素值。
结合第四方面,在一些实施方式中,该系统还包括:该第一设备检测到用户将该第一观察视角调整为第二观察视角;该第一设备在该第一用户界面中,显示该第二观察视角下,该显式三维模型所呈现的第二画面。
也就是说,第一设备可以根据用户调整视角的操作,更新显示不同视角下该显式三维模型所呈现的画面,这样,用户可以通过调整新视角,从不同的角度观看到现实环境中的目标场景在电子设备中呈现的三维模型,来实现在该目标场景下的漫游效果。
结合第四方面,在一些实施方式中,该服务器将该隐式三维模型转化为显式三维模型,具体包括:该服务器通过球谐函数表示该隐式三维模型中表征的观察方向和颜色之间的关系,一个该球谐函数表示一个空间点的不同观察方向和颜色之间的关系;该服务器过滤该目标场景中的部分空间点,以保留密度值大于预设值的该部分空间点,该目标场景中的空间点的密度值通过在该隐式三维模型中输入该空间点的坐标得到;该服务器生成显式三维模型,该显式三维模型包含以下信息:该部分空间点的密度,以及,该部分空间点的球谐函数的系数。
也就是说,服务器可以利用球谐函数来表示出隐式三维模型所表征的输入输出关系,避免在渲染三维模型时再通过隐式三维模型的输入输出关系来查询三维模型的信息,加快模型渲染的速度,另外,服务器可以通过过滤密度值较低的空间点来轻量化模型,降低了模型的复杂度,进一步地加快模型渲染的速度。
结合第四方面,在一些实施方式中,该显式三维模型以八叉树的数据结构存储该信息,该八叉树包括多个节点,一个该节点对应于该部分空间点中的一个空间点,一个该节点存储有索引信息,该索引信息用于查找到该节点对应的空间点的密度,以及,该节点对应的空间点的球谐函数的系数。
由于八叉树是一种描述三维空间的树状结构,利用八叉树来描述该显式三维模型是由于八叉树的叶子节点本身具有表征其和其他叶子节点之间的相对位置关系的特性,这样,设备在渲染该显式三维模型时,无需根据空间点的坐标来确定该空间点在实际物理空间点中的位置,只需根据这些空间点的相对位置关系即可还原出该目标场景在设备中所呈现的画面,加快了设备渲染模型时的速度。
结合第四方面,在一些实施方式中,该显式三维模型实现为纹理贴图,该纹理贴图包括:索引贴图、模型参数贴图,该索引贴图的像素值用于指示节点的索引信息,该模型参数贴图的像素值用于指示空间点的密度或球谐函数的系数,其中,该索引贴图的一个像素值所指示的第一节点,用于查找到该模型参数贴图中的多个像素值所指示的第一节点对应的第一空间点的密度,以及,该第一空间点的球谐函数的系数。
也就是说,在服务器向第一设备发送显式三维模型时,可以直接向该第一设备发送纹理贴图,第一端设备可以通过该纹理贴图获取显式三维模型的信息,实现对显式三维模型的渲染。
结合第四方面,在一些实施方式中,拍摄图像时的相机位姿由该服务器根据该图像以及与该图像相邻的图像确定,该多张图像中的任意两张相邻图像中包含预设比例的重叠内容。
结合第四方面,在一些实施方式中,该服务器获取针对目标场景的多张图像之后,该系统还包括:该服务器根据该多张图像以及先验参数,确定该多张图像中每一张图像对应的相机位姿,该先验参数包括以下一项或多项:拍摄该图像的相机的位置、姿态,图像中拍摄到的物体的位置,该图像的深度信息。
服务器利用先验参数来确定图像对应的相机位姿,可以使服务器获得更加准确的相机位姿,实现构建的三维模型与真实三维空间中的目标场景的位置、角度和尺度的对齐。
结合第四方面,在一些实施方式中,该服务器获取针对目标场景的多张图像之前,该系统还包括:该第一设备将采集的针对该目标场景的多张图像发送给该服务器;或者,该第一设备将采集的针对该目标场景的视频发送给该服务器,该多张图像为该视频中的多帧图像。
也就是说,服务器通过第一设备采集的目标场景的图像或视频即可实现目标场景的三维重建,第一设备可以参与重建三维模型的前期数据采集阶段,用户可以自行采集目标场景的图片或视频,实现对目标场景的三维重建,增强用户在三维重建中的参与感,提升三维重建的趣味性。
结合第四方面,在一些实施方式中,该第一设备将采集的针对该目标场景的多张图像或视频发送给该服务器之前,该系统还包括:该第一设备显示包含第一控件的第二用户界面;该第一设备检测到作用于该第一控件的第一操作;响应于该第一操作,该第一设备启动摄像头并显示第三用户界面,该第三用户界面包括:第一预览框和第二控件,该第一预览框用于实时显示该摄像头采集的图像;该第一设备检测到作用于该第二控件的第二操作,该第二操作用于触发该第一设备采集针对该目标场景的多张图像或视频。
结合第四方面,在一些实施方式中,该第一用户界面还包括:第三控件,该第一设备显示第一用户界面之后,该系统还包括:该第一设备检测到作用于该第三控件的第三操作;响应于该第三操作,该第一设备在该第一用户界面中显示一个或多个模型图标;该第一设备检测到作用于该一个或多个模型图标中的第一模型图标的第四操作;响应于该第四操作,该第一设备在该第一用户界面中添加该第一模型图标对应的第一模型,且,在该第一观察视角下,该第一设备在该第一用户界面中显示添加该第一模型后的该显式三维模型所呈现的第三画面。
在第一设备显示该目标场景的显式三维模型的过程中,第一设备可以根据用户操作调整该显式三维模型,例如在显式三维模型中添加虚拟物体。这样,用户可以通过在虚拟场景中添加虚拟物体,来查看在目标场景中添加物体的效果。例如,在用户采集客厅的图像,获得客厅对应的显式三维模型后,用户可以在该显式三维模型中添加虚拟家居,更换墙纸风格等等,来实现在不耗费任何财力物力,也无需更改客厅中的布置的情况下,也能够查看到在客厅中放置家居,更换墙纸风格等等的调整效果,为用户装饰目标场景提供参考,为用户的生活提供便利。
结合第四方面,在一些实施方式中,该通信系统还包括:第二设备,该第一设备显示该第三画面之后,该系统还包括:该第一设备将该添加第一模型后的显式三维模型发送给该第二设备。
也就是说,第一设备可以将调整后的显式三维模型分享给其他设备,以供其他设备也能查看到该调整后的显式三维模型。
结合第四方面,在一些实施方式中,该系统还包括:该第二设备显示第四用户界面,该第四用户界面中显示有:该第二设备实时采集的针对该目标场景的第一图像,以及,叠加在该第一图像中的该第一模型,该第一模型在该第一图像中显示的该目标场景中的位置,与该第一模型在该添加第一模型后的显式三维模型中的位置对应。
可以看出,第二设备可以在摄像头实时采集的针对目标场景的图像中,叠加显示该调整后的显式三维模型中增加的虚拟物体。这样,使用第一设备的无需到达目标场景的现场,也可以实现对目标场景的调整,使得在现场的用户能够查看目标场景中新增的虚拟物体,实现虚拟世界和现实世界的交汇,将虚拟现实和混合现实引入到三维重建中,增加用户与三维模型的互动,增加三维重建的趣味性。
第五方面,本申请实施例提供了一种三维重建系统,该系统包括第一设备和第二设备,该系统包括:该第一设备显示第一用户界面,该第一用户界面中显示有:第一观察视角下显式三维模型所呈现的第一画面,该显式三维模型根据神经辐射场模型训练得到;该第一设备检测到调整该显式三维模型的操作,该操作为作用于第一模型图标的操作;响应于该操作,该第一设备在该第一用户界面中添加该第一模型图标对应的第一模型,且,在该第一观察视角下,该第一设备在该第一用户界面中显示添加该第一模型后的该显式三维模型所呈现的第三画面;该第一设备将该添加第一模型后的显式三维模型发送给该第二设备;该第二设备显示第四用户界面,该第四用户界面中显示有:该第二设备实时采集的针对该目标场景的第一图像,以及,叠加在该第一图像中的该第一模型,该第一模型在该第一图像中显示的该目标场景中的位置,与该第一模型在该添加第一模型后的显式三维模型中的位置对应。
可以看出,第一设备可以调整目标场景的显式三维模型,例如新增虚拟物体,第二设备可以通过摄像头实时采集的目标场景的图像,查看到第一设备在虚拟场景中的相对应的位置新增的虚拟物体,实现了虚拟世界与现实世界的交汇,这样用户可以远程调整目标场景的模型,并对位于目标场景的现场观看该目标场景造成影响,增加了三维重建的趣味性。
结合第五方面,在一些实施方式中,该第一设备显示第一用户界面之后,该系统还包括:该第一设备检测到用户将该第一观察视角调整为第二观察视角;该第一设备在该第一用户界面中,显示该第二观察视角下,该显式三维模型所呈现的第二画面。
也就是说,第一设备可以根据用户调整视角的操作,更新显示不同视角下该显式三维模型所呈现的画面,这样,用户可以通过调整新视角,从不同的角度观看到现实环境中的目标场景在电子设备中呈现的三维模型,来实现在该目标场景下的漫游效果。
结合第五方面,在一些实施方式中,该第一用户界面还包括:第三控件,该第一设备显示第一用户界面之后,该系统还包括:该第一设备检测到作用于该第三控件的第三操作;响应于该第三操作,该第一设备在该第一用户界面中显示一个或多个模型图标,该一个或多个模型图标包括该第一模型图标。
也就是说,第一设备可以提供多个虚拟模型以供用户挑选,用户可以根据自己的需求喜好在目标场景的显式三维模型中增加虚拟模型,增强用户的参与感,提升用户的体验感。
结合第五方面,在一些实施方式中,该通信系统还包括:服务器,该第一设备显示第一用户界面之前,该系统还包括:该服务器获取针对目标场景的多张图像;该服务器根据该多张图像,和,拍摄该多张图像时的相机位姿,训练神经辐射场模型,得到隐式三维模型;其中,该隐式三维模型的输入为该目标场景中空间点的坐标和观察方向,输出为该空间点的颜色和密度;该服务器将该隐式三维模型转化为该显式三维模型,该显式三维模型描述了该目标场景中部分空间点的密度和在不同观察方向下的颜色;该服务器将该显式三维模型发送给该第一设备。
也就是说,服务器可以利用神经辐射场训练得到目标场景的隐式三维模型,并对该隐式三维模型进行轻量化和实时化,转换为移动端设备能够实时渲染的显式三维模型,提升移动端设备渲染模型的速度,扩展基于神经辐射场得到的三维模型的应用场景,真正实现将三维重建引入大众视野。
结合第五方面,在一些实施方式中,在训练该神经辐射场模型的过程中,该图像中像素点对应的空间点的坐标由该图像和拍摄该图像的相机位姿确定;该观察方向由拍摄该图像时的相机位姿指示的相机位置,指向,该图像中的像素点;该目标场景中的该观察方向上的一个或多个空间点的颜色和密度的积分为该像素点的像素值。
结合第五方面,在一些实施方式中,该服务器将该隐式三维模型转化为显式三维模型,具体包括:该服务器通过球谐函数表示该隐式三维模型中表征的观察方向和颜色之间的关系,一个该球谐函数表示一个空间点的不同观察方向和颜色之间的关系;该服务器过滤该目标场景中的部分空间点,以保留密度值大于预设值的该部分空间点,该目标场景中的空间点的密度值通过在该隐式三维模型中输入该空间点的坐标得到;该服务器生成显式三维模型,该显式三维模型包含以下信息:该部分空间点的密度,以及,该部分空间点的球谐函数的系数。
也就是说,服务器可以利用球谐函数来表示出隐式三维模型所表征的输入输出关系,避免在渲染三维模型时再通过隐式三维模型的输入输出关系来查询三维模型的信息,加快模型渲染的速度,另外,服务器可以通过过滤密度值较低的空间点来轻量化模型,降低了模型的复杂度,进一步地加快模型渲染的速度。
结合第五方面,在一些实施方式中,该显式三维模型以八叉树的数据结构存储该信息,该八叉树包括多个节点,一个该节点对应于该部分空间点中的一个空间点,一个该节点存储有索引信息,该索引信息用于查找到该节点对应的空间点的密度,以及,该节点对应的空间点的球谐函数的系数。
由于八叉树是一种描述三维空间的树状结构,利用八叉树来描述该显式三维模型是由于八叉树的叶子节点本身具有表征其和其他叶子节点之间的相对位置关系的特性,这样,设备在渲染该显式三维模型时,无需根据空间点的坐标来确定该空间点在实际物理空间点中的位置,只需根据这些空间点的相对位置关系即可还原出该目标场景在设备中所呈现的画面,加快了设备渲染模型时的速度。
结合第五方面,在一些实施方式中,该显式三维模型实现为纹理贴图,该纹理贴图包括:索引贴图、模型参数贴图,该索引贴图的像素值用于指示节点的索引信息,该模型参数贴图的像素值用于指示空间点的密度或球谐函数的系数,其中,该索引贴图的一个像素值所指示的第一节点,用于查找到该模型参数贴图中的多个像素值所指示的第一节点对应的第一空间点的密度,以及,该第一空间点的球谐函数的系数。
也就是说,在服务器向第一设备发送显式三维模型时,可以直接向该第一设备发送纹理贴图,第一端设备可以通过该纹理贴图获取显式三维模型的信息,实现对显式三维模型的渲染。
结合第五方面,在一些实施方式中,拍摄图像时的相机位姿由该服务器根据该图像以及与该图像相邻的图像确定,该多张图像中的任意两张相邻图像中包含预设比例的重叠内容。
结合第五方面,在一些实施方式中,该服务器获取针对目标场景的多张图像之后,该系统还包括:该服务器根据该多张图像以及先验参数,确定该多张图像中每一张图像对应的相机位姿,该先验参数包括以下一项或多项:拍摄该图像的相机的位置、姿态,图像中拍摄到的物体的位置,该图像的深度信息。
服务器利用先验参数来确定图像对应的相机位姿,可以使服务器获得更加准确的相机位姿,实现构建的三维模型与真实三维空间中的目标场景的位置、角度和尺度的对齐。
结合第五方面,在一些实施方式中,该服务器获取针对目标场景的多张图像之前,该系统还包括:该第一设备将采集的针对该目标场景的多张图像发送给该服务器;或者,该第一设备将采集的针对该目标场景的视频发送给该服务器,该多张图像为该视频中的多帧图像。
也就是说,第一设备可以参与重建三维模型的前期数据采集阶段,用户可以自行采集目标场景的图片或视频,实现对目标场景的三维重建,增强用户在三维重建中的参与感,提升三维重建的趣味性。
结合第五方面,在一些实施方式中,该第一设备将采集的针对该目标场景的多张图像或视频发送给该服务器之前,该系统还包括:该第一设备显示包含第一控件的第二用户界面;该第一设备检测到作用于该第一控件的第一操作;响应于该第一操作,该第一设备启动摄像头并显示第三用户界面,该第三用户界面包括:第一预览框和第二控件,该第一预览框用于实时显示该摄像头采集的图像;该第一设备检测到作用于该第二控件的第二操作,该第二操作用于触发该第一设备采集针对该目标场景的多张图像或视频。
第六方面,本申请实施例提供了一种电子设备,包括存储器,一个或多个处理器,以及一个或多个程序;该一个或多个处理器在执行该一个或多个程序时,使得该电子设备实现如第一方面或第一方面任意一种实施方式所描述的方法。
第七方面,本申请实施例提供了一种电子设备,包括存储器,一个或多个处理器,以及一个或多个程序;该一个或多个处理器在执行该一个或多个程序时,使得该电子设备实现如第二方面或第二方面任意一种实施方式、第三方面或第三方面任意一种实施方式所描述方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当该指令在电子设备上运行时,使得该电子设备执行如第一方面或第一方面任意一种实施方式、第二方面或第二方面任意一种实施方式、第三方面或第三方面任意一种实施方式所描述方法。
第九方面,本申请实施例提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行如第一方面或第一方面任意一种实施方式、第二方面或第二方面任意一种实施方式、第三方面或第三方面任意一种实施方式所描述方法。
附图说明
图1为本申请实施例提供的通信系统1000的示意图;
图2为本申请实施例提供的一种室内场景的结构示意图;
图3A-图3I、图4A-图4I为本申请实施例提供的一些用户界面;
图5为本申请实施例提供的用户通过电子设备的摄像头拍摄室内场景的示意图;
图6为本申请实施例提供的三维重建方法的流程示意图;
图7为本申请实施例提供的摄像头从多个视角拍摄目标场景时,涉及的拍摄场景示意图;
图8为本申请实施例提供的利用多张图像计算相机位姿时涉及到的流程示意图;
图9为本申请实施例提供的两张图像与空间中的三维点的关联示意图;
图10为本申请实施例提供的基于神经辐射场模型重建三维模型时涉及的示意图;
图11为本申请实施例提供的对目标场景进行区块划分的示意图;
图12为本申请实施例提供的纹理贴图的示意图;
图13为本申请实施例提供的电子设备300的硬件结构示意图;
图14为本申请实施例提供的电子设备300的软件结构示意图;
图15为本申请实施例提供的电子设备400的硬件结构示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清楚、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请以下实施例中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面是通过java、可扩展标记语言(extensible markuplanguage,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
为了达到更好地重建三维场景的效果,本申请实施例提供了一种基于神经辐射场(Newral Radiance Fields,NeRF)的三维重建方法。在该方法中,首先,可以对目标场景拍摄图像或视频,获得多张针对该目标场景的图像,将这多张图像以及图像对应的相机位姿作为模型的训练数据,训练神经辐射场模型,得到该目标场景对应的隐式三维模型,其次,将该隐式三维模型转换成移动端能够进行实时渲染的显式三维模型,最后,当检测到用户输入的新视角时,实时渲染在该新视角下的该显式三维模型呈现的画面。这样,用户可以通过连续调整新视角,从不同的角度观看到现实环境中的目标场景在电子设备中呈现的三维模型,来实现在该目标场景下的漫游效果。
其中,该显式三维模型为该目标场景呈现在电子设备中的三维模型。物理自然界中存在的任何物体都可以用三维模型表示,通过电子设备显示该三维模型,可以以虚拟的方式逼真地呈现自然界中存在的物体。另外,将隐式三维模型转换成显式三维模型是为了对三维模型进行轻量化和实时化,实现能够在移动端对训练好的神经辐射场模型进行实时的渲染。具体关于计算图像对应的相机位姿,以及隐式三维模型和显式三维模型的描述可以参见后续方法实施例,这里先不赘述。
这样,实现了利用神经辐射场训练得到的三维模型能够在移动端设备上进行实时显示的效果,降低了三维重建的门槛,使得普通消费者利用手机、平板、电脑等等移动端设备也能够实现对目标场景的三维重建,拓展了三维重建的应用场景,真正实现三维重建走进人们的生活,将三维重建引入大众视野。
在一些实施例中,在电子设备显示该目标场景的显式三维模型的过程中,电子设备可以根据用户操作调整该显式三维模型,例如,在该显式三维模型中添加、调整或删除虚拟模型素材。这样,用户可以通过在虚拟场景中添加、调整或删除虚拟物体,来查看在目标场景中添加、调整或删除物体的效果。例如,在用户采集客厅的图像,获得客厅对应的显式三维模型后,用户可以在该显式三维模型中添加虚拟家居,更换墙纸风格等等,来实现在不耗费任何财力物力,也无需更改客厅中的布置的情况下,也能够查看到在客厅中放置家居,更换墙纸风格等等的调整效果,为用户装饰目标场景提供参考,为用户的生活提供便利。
进一步地,电子设备可以将该调整后的显式三维模型发送给其他设备,其他设备也可以显示该调整后的显式三维模型,这样,其他用户可以查看到添加、调整或删除虚拟物体后的虚拟场景,或者,其他设备可以启动摄像头,采集针对目标场景的图像,并根据该调整后的显式三维模型,在显示摄像头实时采集的目标场景的图像上,叠加显示该调整后的显式三维模型中增加的模型素材,例如,假设在客厅对应的三维模型中,在沙发旁增加了一盆虚拟的盆栽,电子设备将该调整后的显式三维模型发送给其他设备,则其他设备在启动摄像头拍摄目标场景中,沙发附近的画面时,可以在显示该沙发对应的图像时,在该图像中叠加显示一盆虚拟盆栽,使得用户能够通过电子设备,在目标场景中查看到虚拟物体,实现虚拟世界和现实世界的交汇,将虚拟现实和混合现实引入到三维重建中,增加用户与三维模型的互动,增加三维重建的趣味性。
可以看出,本申请实施例提供的三维重建方法,能够实现在移动端设备显示真实场景对应的虚拟场景,用户无需到达真实场景的现场,也能从多个不同视角了解到真实场景所展现的画面,实现足不出户也可以在真实场景的漫游效果。并且,通过神经辐射场来重建三维场景,能够快速得到真实场景的三维模型,用户无需手动建模,节约了用户的时间成本,另外,通过神经辐射场训练得到的三维模型,能够很好地还原出真实场景的光线、环境,得到逼真的虚拟场景,提升了重建三维场景的精度和质量。
下面结合图1介绍本申请实施例提供的通信系统1000。
图1为本申请实施例提供的通信系统1000的结构示意图。
在本申请实施例中,通信系统1000可以包括:服务器以及一个或多个电子设备。这一个或多个电子设备为面向用户的移动端设备。本申请实施例对电子设备的数量不作限制。示例性地,如图1所示,通信系统1000可以包括服务器100、电子设备100、电子设备200。其中:
电子设备100可用于拍摄针对目标场景的图像或视频,并将该图像或视频发送给服务器100,另外,电子设备100还可用于获取该目标场景的显式三维模型,以及对该显式三维模型进行渲染,提供用户界面用于显示在不同视角下该显式三维模型所呈现的画面,进一步地,该电子设备100还可用于根据用户操作调整该显式三维模型,将该调整后的显式三维模型发送给服务器100或电子设备200。
服务器100可用于利用目标场景的图像或视频,训练神经辐射场模型,得到该目标场景对应的隐式三维模型,另外,服务器100还可用于将该隐式三维模型转换成移动端设备,例如电子设备100、电子设备200,能够进行实时渲染的显式三维模型,并将该显式三维模型发送给电子设备100和电子设备200。
电子设备200可用于获取目标场景的显式三维模型以及调整后的显式三维模型,确定调整后的显式三维模型相对于目标场景的显式三维模型,即调整前的显式三维模型中,增加的模型素材,并在摄像头采集的针对目标场景的图像中的指定位置,叠加显示该增加的模型素材,使得用户透过摄像头采集的图像观察到的该模型素材在目标场景中的摆放位置,与调整后的显式三维模型中,该模型素材的摆放位置相同或相近。
本申请实施例不限制服务器以及一个或多个电子设备之间的通信连接方式。具体地,该通信连接可以是有线连接、无线连接。其中,该无线连接可以是高保真无线通信(wireless fidelity,Wi-Fi)连接、蓝牙连接、红外线连接、NFC连接、ZigBee连接等近距离连接,也可以是远距离连接,远距离连接包括但不限于基于2G,3G,4G,5G以及后续标准协议的移动网络的远距离连接。例如,服务器100可以通过无线连接的方式将显式三维模型发送给电子设备100。
另外,需要注意的是,本申请实施例中提到的服务器,例如服务器100可以是一个服务器,也可以是指多个服务器组成的服务器集群。例如,服务器100可以为多个服务器通过分布式架构部署的服务器集群,集群中可以包括云计算服务器、内容分发网络(ContentDelivery Network,CDN)服务器、网络时间协议(Network Time Protocol,NTP)、域名解析系统(Domain Name System,DNS)服务器等等中的一个或者多个。其中,各个服务器之间可以相互协调,共同完成计算、数据存储、通信等功能。例如,服务器100可以包括服务器A和服务器B,服务器A可用于完成模型的训练,并将训练好的隐式三维模型发送给服务器B,服务器B可用于将隐式三维模型转化为显式三维模型。为了方便描述,本申请实施例中将单个服务器、分布式服务器、服务器集群等统称为服务器。
应理解,电子设备100还可以实现上述电子设备200的功能,即在摄像头采集的针对目标场景的图像中的指定位置,叠加显示该增加的模型素材,另外,电子设备200也可以实现上述电子设备100的相应功能,例如实时渲染该显式三维模型,根据用户操作调整该显式三维模型等等。具体关于电子设备100和电子设备200在实现上述功能的过程中所呈现的用户界面可以参见后续图3A-图3I、图4A-图4I及其相关描述。
下面介绍本申请实施例提供的三维重建方法的几种应用场景:
1)虚拟导航
本申请实施例提供的三维重建方法,能够通过采集多张针对目的地以及其附近的图像,利用这多张图像重构出该目的地及其周边的虚拟三维地图,在用户到达目的地附近时,对于地形或路线较为复杂,周边建筑物较多的路段,用户可以通过手机、平板等移动设备查看该虚拟三维地图,从不同的角度查看该虚拟三维地图,并快速比对用户周围的建筑物,帮助用户快速找到从用户当前所在的位置到达指定地点的路线,为用户的出行提供便利。
进一步地,用户可以通过电子设备调整该虚拟三维地图,例如在该虚拟三维地图中的某一地点增加路标,其他用户也可以通过其他电子设备查看该调整后的虚拟三维地图,在该虚拟三维地图中的该地点,或,透过电子设备的摄像头采集的图像查看现实环境中的该地点时,查看到该用户留下的路标,增强了出行过程中,用户与虚拟现实的互动性。
2)虚拟旅游
本申请实施例提供的三维重建方法,能够通过采集多张针对现实景观的图像,利用这多张图像重构出现实景观的虚拟三维模型,用户可以实现足不出户,就能够在三维立体的虚拟环境中遍览远在万里之外的风光美景。
进一步地,用户还可以在该虚拟三维模型中留下“足迹”,实现用户与虚拟的景观的交互,给用户提供一种虚拟出游的新奇体验。并且,用户在“游览”虚拟景观的过程中,用户对该虚拟景观的调整也不会对现实景观造成影响,实现了在满足用户观赏景观的同时,又不会对现实景观所在的环境造成破坏。
3)虚拟装修
本申请实施例提供的三维重建方法,能够通过采集多张室内的图像,利用这多张图像重构出室内的虚拟三维模型,用户可以通过在该虚拟三维模型中增加、调整或删除虚拟物体,来实现通过该调整后的虚拟三维模型,查看到在现实室内场景中,增加、调整或删除物体的效果,实现用户不更改现实室内场景的布局,也能够查看到该室内场景装修后的效果。
应理解,上述三种应用场景只是示例性举例,便于读者更加理解本方案,不构成对本申请实施例的限制,在本申请其他实施例中,该三维重建方法还可以包括其他应用场景,本申请实施例对此不作限制。
下面结合图2、图3A-图3I、图4A-图4I介绍本申请实施例提供的一些用户界面。
其中,图2为本申请实施例提供的一种室内场景的示意图。图3A-图3I、图4A-图4I为本申请实施例提供的电子设备100对图2所示的室内场景进行三维重建时,涉及的一些用户界面。
图3A-图3I示例性示出了电子设备100对室内场景进行三维重建,并实现在该重建后的虚拟场景中漫游时涉及到的一些用户界面。
图3A示出了电子设备100上用于应用程序菜单的示例性用户界面10。该用户界面10可用于显示时间、天气、一个或多个应用程序图标等等。具体地,该用户界面10可包括:状态栏101、日历及天气图标102、一个或多个应用程序图标103。其中:
状态栏101可包括移动通信信号的一个或多个信号强度指示符、无线高保真(wirelessfidelity,WiFi)信号的一个或多个信号强度指示符、电池状态指示符以及时间指示符。日历及天气图标102可用于指示当前时间和天气类型。一个或多个应用程序图标103可用于显示一个或多个应用程序的应用图标。其中,一个或多个应用程序图标103中可包括“建模”应用图标103A,该“建模”应用图标103A可用于触发启动“建模”应用,该“建模”应用可用于触发电子设备100采集目标场景的图像或视频,获取并显示针对该目标场景的三维模型,根据用户操作调整该三维模型。
可以理解的是,本申请实施例对“建模”应用的名称不做限制。
如图3A所示,电子设备100可以检测到作用于“建模”应用图标103A的用户操作,例如点击操作,响应于该操作,电子设备100显示图3B所示的用户界面20,该用户界面20可以为“建模”应用提供的用户界面。
可以理解的是,电子设备100还可以通过其他方式启动“建模”应用,显示该用户界面20,例如,电子设备100可以检测到用户输出的语音“打开‘建模’应用”,响应于该语音指令,开启“建模”应用,显示该用户界面20,本申请实施例对电子设备100启动“建模”应用的方式不作限制。
如图3B所示,用户界面20可包括:创作图标201、模板展示区域202、菜单栏203。其中:
创作图标201可用于触发电子设备100开启摄像头,采集重建三维模型所需的图像或视频。模板展示区域202可用于显示一个或多个三维模型的展示图。菜单栏203可用于显示多个菜单选项,电子设备100可以检测到作用于菜单选项的用户操作,响应于该操作,在用户界面20中显示“建模”应用提供的不同页面。示例性地,图3B所示的用户界面20可以为电子设备100启动“建模”应用后,该“建模”应用提供的默认主页面。
当电子设备100检测到作用于创作图标201的用户操作,响应于该操作,电子设备100可以启动摄像头,显示如图3C所示的用户界面30,该用户界面30用于显示摄像头实时采集的图像。
如图3C所示,用户界面30可包括:预览框301、相机模式选项302、图库快捷控件303、快门控件304、摄像头翻转控件305。其中:
预览框301可用于显示电子设备100的摄像头实时采集的图像。电子设备100可以实时刷新其中的显示内容,以便于用户预览摄像头当前采集的图像。示例性地,当用户将电子设备100的摄像头对准图2所示的室内场景时,图3C所示的预览框301中显示的图像包含该室内场景的部分画面。
相机模式选项302中可以显示有一个或多个拍摄模式选项。这一个或多个拍摄模式选项可以包括:录像模式选项302A、拍照模式选项302B。当检测到作用于拍摄模式选项上的用户操作,电子设备100可以开启用户选择的拍摄模式。不限于图3C所示,相机模式选项302还可以包含其他更多或更少的拍摄模式选项。
图库快捷控件303可用于开启图库应用程序。响应于作用在图库快捷控件303上的用户操作,例如点击操作,电子设备100可以开启图库应用程序。这样,用户可以便捷地查看拍摄的照片和视频,而无需先退出相机应用程序,再开启图库应用程序。图库应用程序是智能手机、平板电脑等电子设备上的一款图片管理的应用程序,又可以称为“相册”,本实施例对该应用程序的名称不做限制。另外,电子设备100还可以在图库快捷控件303中显示所保存的图像的缩略图。
快门控件304可用于监听触发拍照的用户操作。响应于该操作,电子设备100可以将预览框301中的图像保存为图库应用程序中的图片。
摄像头翻转控件305可用于监听触发翻转摄像头的用户操作,响应于该操作,电子设备100可以翻转摄像头,例如将后置摄像头切换为前置摄像头。
当电子设备100检测到作用于快门控件304的用户操作,响应于该操作,电子设备100可以启动摄像头采集图2所示的室内场景的信息,例如,电子设备100可以拍摄针对图2所示的室内场景的图片或视频中的任意一项或多项,依次显示图3D、图3E所示的用户界面30。
相比于图3C所示的用户界面30,图库快捷控件303、快门控件304和摄像头翻转控件305可以更新为图3D和图3E所示的结束录制控件306。该结束录制控件306可用于触发电子设备100根据拍摄的图片或视频中的任意一项或多项生成当前拍摄的室内场景的三维模型。另外,结束录制控件306还可以包括录制时间的进度条信息,该进度条指示的总长度可以为电子设备100预设的总时长,例如10秒。这样,用户可以便捷地查看当前录制的时长,以及距离预设总时长的间隔时长,避免用户在录制视频时花费过多的时间。
在用户启动录像之后,用户可以握持电子设备100,将摄像头对准用户想要重建的室内场景,并带动摄像头移动,使摄像头能够采集到包含室内场景不同视角的图像。同时,预览框301中的显示画面会跟随用户的移动,实时显示摄像头采集的不同视角下的室内场景的画面,例如图3D到图3E中的预览框301中显示的画面。
可选地,在电子设备100录制视频的过程中,电子设备100还可以显示提示信息,提示用户关于录制视频过程中的一些注意事项,例如,如果检测到预览框301中的画面变化比较缓慢,或不存在变化时,电子设备100可以显示提示信息,提示用户加快移动的速度,如果检测到拍摄的物体的材质不利于重建场景时,电子设备100可以显示提示信息,提示用户尽量避开拍摄该物体,示例性地,该物体的材质可以是指玻璃、烟雾等等。本申请实施例对该提示信息指示的内容不做限制。
可选地,电子设备100除了录制视频,利用视频重建三维模型外,还可以拍摄多张图像,利用这多张图像重建三维模型。这种情况下,用户可以握持手机,将摄像头对准用户想要重建的室内场景,并在移动摄像头的过程中,连续拍摄图像,示例性的,前后拍摄的两张图像中可以包含有一定比例的重叠内容。例如,前后拍摄的两张图像中存在40%的重叠内容。
进一步地,在电子设备100拍摄图像的过程中,电子设备100可以显示提示信息,提示用户关于拍摄照片过程中的一些注意事项,包括:在何时拍摄图像,或者在何时结束拍摄等等。例如,在用户握持电子设备100,移动摄像头的过程中,电子设备100可以持续计算当前摄像头采集的图像中的内容,距离上次拍摄的图像中内容的重叠比例,在重叠比例即将小于阈值时,提示用户尽快拍摄图像,将当前摄像头采集的图像保存到本地,或者,在重叠比例小于阈值后,提示用户反方向移动摄像头,回到摄像头之前扫过的区域进行拍摄。
可选地,除了根据电子设备100拍摄的图像或视频来生成三维模型外,还可以根据其他设备,例如专业相机拍摄的图像或录制的视频来生成三维模型,本申请实施例对训练三维模型所使用的图像或视频的来源设备不作限制。
另外,需要注意的是,用户可以在拍摄图像或视频时,使拍摄的视频或所有图像中的内容包括用户需要重建的场景的所有区域,使用户重建的场景包括用户需要重建的场景内容。
当电子设备100录制的时长达到电子设备预设的总时长时,电子设备100可以检测到作用于如图3E所示的结束录制控件306的用户操作,响应于该操作,电子设备100可以结束视频的录制,并在用户界面30中显示如图3F所示的提示信息307,该提示信息307用于提示用户是否根据用户录制的视频生成针对真实场景的三维模型。
如图3F所示,提示信息307可包括:重建场景控件307A、继续Scan控件307B。其中:
重建场景控件307A可用于触发电子设备100获得针对当前拍摄场景的三维模型。示例性的,重建场景控件307A可用于触发电子设备100将拍摄的图像或录制的视频发送给服务器,由服务器根据该图像或视频训练神经辐射场模型,得到针对该真实场景的隐式三维模型,然后将该隐式三维模型转化为显式三维模型,并将该显式三维模型返回给电子设备100。
继续Scan控件307B可用于触发电子设备100继续拍摄图像或录制视频,例如,显示如图3C或图3D所示的用户界面30。
可选地,当电子设备100的运算能力较强时,电子设备100也可以在本地生成三维模型,也就是说,重建场景控件307A可用于触发电子设备100在本地根据图像或视频训练神经辐射场模型,得到隐式三维模型,并将该隐式三维模型转化为显式三维模型。
当电子设备100检测到作用于如图3F所示的重建场景控件307A的用户操作,响应于该操作,电子设备100可以在用户界面30中显示如图3G所示的提示信息308,该提示信息308用于提示用户正在获取当前拍摄的室内场景的三维模型。
当电子设备100获取到针对当前拍摄的室内场景的三维模型后,电子设备100可以显示如图3H所示的用户界面40,该用户界面40用于展示该三维模型。
如图3H所示,用户界面40可包括:预览框401、选项栏402、操纵控件403、退出控件404。其中:
预览框401用于展示不同视角下的三维模型。该三维模型为通过模拟现实的场景模拟出来的虚拟场景。其中,电子设备100可以通过用户作用于操纵控件403的操作,获取到用户输入的视角。
选项栏402中显示有一个或多个选项。示例性地,选项栏402可包括编辑选项402A、分享选项402B、保存选项402C。其中,编辑选项402A可用于触发电子设备100编辑当前显示的三维模型,在该三维模型中添加、调整或删除虚拟物体。分享选项402B可用于触发电子设备100将当前显示的三维模型发送给其他设备。
操纵控件403可用于更改用户的观看视角,电子设备100可以检测到作用在操纵控件403上向不用方向滑动的操作,响应于该操作,电子设备100可以根据该滑动操作,更新预览框401中的显示内容,例如,当电子设备100检测到作用在操纵控件403上的左滑操作时,电子设备100在预览框401的左侧增加显示左侧三维模型未示出的画面,在右侧取消显示部分已示出的三维模型的画面,给用户一种向左移动观看视角的室内漫游效果。
退出控件404可用于触发电子设备100停止显式三维模型。示例性地,当电子设备100检测到作用于退出控件404的用户操作,响应于该操作,电子设备100可以显示如图3B所示的用户界面20。
如图3I所示,电子设备100可以检测到作用于操纵控件403向右上方滑动的操作,响应于该操作,电子设备100在预览框401中实时更新视角调整后的三维模型所展现的画面。结合图2,对比图3H和图3I可以看出,相比于图3H的预览框401中的显示内容,图3I的预览框401中的显示内容呈现出一种在真实室内场景中,向左前方移动后,用户观察该室内场景的效果。
从图3A-图3I可以看出,电子设备100可以通过拍摄针对目标场景的照片或视频来重建出虚拟场景,并根据用户输入的视角,显示该视角下的虚拟场景所呈现的画面,让用户体验未到达目标场景,也能在其中漫游,观看该目标场景的效果。
图4A-图4I示例性示出了电子设备100对重建后的虚拟场景进行编辑时涉及到的一些用户界面。
如图4A所示,电子设备100可以检测到作用于编辑选项402A的用户操作,响应于该操作,电子设备100可以在用户界面40中显示如图4B所示的编辑窗口405,该编辑窗口405用于显示可添加到预览框401中显示的针对室内场景的三维模型中的三维模型。
如图4B所示,编辑窗口405中可显示有一个或多个三维模型,包括:音响、柜子、门饰、花瓶等等虚拟物体。该一个或多个三维模型可以来源于电子设备100本地的存储器,也可以来源于云侧,还可以是用户自己生成的。当电子设备100检测到用户选择其中一个三维模型的操作时,电子设备100可以从云侧下载该三维模型到本地,或者,也可以来源于其他设备,本申请实施例对这一个或多个三维模型的来源不做限制。
如图4C所示,编辑窗口405中可包括第一模型405A,该第一模型405A对应一个门饰的三维模型。当电子设备100检测到作用于第一模型405A,从第一模型405A所在的位置,到预览框401的拖动操作,响应于该操作,电子设备100可以将门饰的三维模型添加到该室内场景的三维模型中,并显示如图4D所示的用户界面40。
如图4D所示,相比于图4C所示的用户界面40,编辑窗口405更新为调整窗口407,预览框401中新增第一虚拟物体408。其中:
调整窗口407可包括:平移控件407A、旋转控件407B、缩放控件407C以及返回控件407D,其中,返回控件407D可用于关闭该调整窗口407。第一虚拟物体408为该第一模型405A对应的门饰的三维模型。用户可以通过调整窗口407中的平移控件407A、旋转控件407B、缩放控件407C,分别改变该第一虚拟物体408在该室内场景的三维模型中的位置、朝向、大小。示例性地,当电子设备100检测到作用于平移控件407A的用户操作,响应于该操作,电子设备100可以在第一虚拟物体408上增加显示辅助坐标轴408A,该辅助坐标轴408A包括XYZ三个坐标轴,电子设备100可以检测到用户作用于其中一个坐标轴的拖动操作,控制该第一虚拟物体408朝该坐标轴所在的方向移动该第一虚拟物体408。
应理解,除了基于上述平移控件407A、旋转控件407B、缩放控件407C调整第一虚拟物体408,电子设备100还可以根据用户直接作用于第一虚拟物体408的操作,调整该第一虚拟物体408在该室内场景的三维模型中的位置、朝向、大小。本申请实施例对调整第一虚拟物体408的方式不作限制。
示例性地,当电子设备100根据用户的操作调整该第一虚拟物体408的位置、朝向以及大小之后,电子设备100可以显示如图4E所示的用户界面40。
如图4E所示,相比于图4D,预览框401中显示的第一虚拟物体408在位置、朝向、大小上都发生了改变。另外,电子设备100还可以根据用户作用于操纵控件403的操作,更改观看该虚拟室内场景的视角,从不同的角度观看添加的该门饰在该虚拟室内场景中的效果。
如图4F所示,预览框401示出了另一种视角下观看该虚拟室内场景的所呈现的画面,同时,第一虚拟物体408也呈现出了在该视角下的画面,从图4F可以看出,经过对该门饰的调整后,该门饰的背面贴近门的表面,第一虚拟物体408也呈现出了和该虚拟室内场景一样的立体效果,就如同用户在现实的室内场景中,在门上添加该门饰,并以真实的视角观看装饰有该门饰的门一样。
进一步地,用户还可以调整该根据图片或视频得到的三维模型的局部或全部区域的显示效果,包括:位置、尺寸、颜色、方向等等。本申请实施例对该显式三维模型涉及到的调整不作限制。
如图4G所示,当电子设备100检测到作用于预览框401中的第一区域409的用户操作,例如长按操作,响应于该操作,电子设备100可以在用户界面40中新增如图4H所示的调整窗口410,该调整窗口410用于为用户提供进一步的调整选项,用户可以根据该调整选项调整该第一区域409的显示效果。其中,该第一区域为生成的该三维模型中,临接门的一面墙所在的区域。
如图4G所示,调整窗口410中可包括:位置调整选项410A、尺寸调整选项410B、颜色调整选项410C、方向调整选项410D。其中,位置调整选项410A可用于触发调整第一区域409的位置,尺寸调整选项410B可用于触发调整第一区域409的大小,颜色调整选项410C可用于触发调整第一区域409的颜色,方向调整选项410D可用于触发调整第一区域409的朝向。
如图4H所示,当电子设备100检测到作用于颜色调整选项410C的用户操作,响应于该操作,电子设备100可以将调整窗口410更改为如图4I所示的颜色选择窗口411,该颜色选择窗口411可用于提供用户可以选择的一种或多种颜色。
如图4I所示,颜色选择窗口411中可以显示有一个或多个颜色选项。其中,颜色选择窗口411中可包括第一颜色选项411A,当电子设备100检测到作用于第一颜色选项411A的用户操作,响应于该操作,电子设备100可以将第一区域409更改为第一颜色选项411A对应的颜色,例如,图4I所示的深灰色。从图4I可以看出,在电子设备100更改第一区域409的颜色后,第一区域409的颜色与第一颜色选项411A中显示的颜色相同。
示例性地,电子设备100可以通过在第一区域409上叠加一个与第一区域409大小相同,颜色为用户指定的颜色的平面,来更改第一区域409的颜色。
从图4A-图4I可以看出,在电子设备100获得针对室内场景的三维模型后,电子设备100可以调整该三维模型,包括更改该三维模型本身,在该三维模型中增加、调整或删除新的三维模型,增加用户对该室内场景的三维模型的可操作性。
进一步地,电子设备100可以将该调整后的三维模型发送给其他设备。其他设备可以显示该调整后的三维模型,并根据用户输入的视角,显示在该视角下,该调整后的三维模型所呈现的画面。或者,其他设备可以在摄像头实时采集的图像中叠加显示虚拟内容,该虚拟内容即为调整后的三维模型相对于调整前的三维模型新增的变化内容。
图5示例性示出了用户通过电子设备的摄像头拍摄室内场景的示意图。
示例性的,电子设备200在获取到调整后的三维模型之后,可以通过比对调整后的三维模型相对于调整前增加的虚拟内容,例如根据图像或视频训练得到的原始三维模型,在电子设备200显示摄像头拍摄的室内场景时,在该室内场景上叠加显示该虚拟内容,使得用户透过显示屏显示现实的室内场景时,该虚拟内容在室内场景中摆放的位置,与该虚拟内容在虚拟场景摆放的位置相同或相近。
如图5所示,电子设备200的显示屏中显示有电子设备200的摄像头拍摄图2所示的室内场景时,实时采集的图像,并在该图像上叠加显示了虚拟的门饰和深灰色的“墙纸”。且该门饰在电子设备200显示的门上的位置,与,图4E所示的虚拟场景中显示的门饰在门上的位置相同,该“墙纸”在电子设备200拍摄的画面中的位置,与,图4I所示的虚拟场景中第一区域409的位置相同。
需要注意的是,该电子设备200为拥有该调整后的三维模型的设备,可以为电子设备100,也可以为不同于电子设备100的其他设备,当电子设备200为其他设备时,电子设备100可以将该调整后的三维模型发送给该其他设备,以便其他设备能够在显示摄像头采集的图像时,能够在该图像上叠加显示调整后的三维模型,相比于调整前的三维模型新增的变化内容。
可以看出,在调整目标场景对应的虚拟场景之后,例如,在该虚拟场景中的某一位置添加虚拟物体之后,当用户透过电子设备的摄像头实时采集的图像,查看该目标场景时,可以在该目标场景中与上述位置对应的同一位置,或该位置的附近上,查看到该虚拟物体。这样,用户在虚拟场景中所做的更改,能够直接相应的影响到用户查看的电子设备拍摄并显示的目标场景的图像,实现将虚拟世界引入到现实世界中。
另外,需要注意的是,上述图3A-图3I,以及图4A-图4I中提及的三维模型为显式三维模型,该显式三维模型为根据神经辐射场训练得到的隐式三维模型转换后的三维模型,具体关于显式三维模型和隐式三维模型的描述可以参见后续方法流程,这里先不赘述。
下面对本申请实施例提供的三维重建方法进行详细描述。
图6为本申请实施例提供的三维重建方法的流程示意图。
如图6所示,该方法涉及多个设备,包括:移动端设备1、移动端设备2、服务器。其中,移动端设备,例如移动端设备1、移动端设备2为面向用户,能够根据用户输入的视角,实时更新并显示在该视角下的三维模型的设备,示例性地,移动端设备1、移动端设备2可以为手机、平板、笔记本、电脑等等设备。服务器为训练神经辐射场模型,生成针对目标场景的三维模型的设备。在本申请实施例中,移动端设备1可以为前述提及的电子设备100,移动端设备2可以为前述提及的电子设备200,服务器可以为前述提及的服务器100。具体关于电子设备100、电子设备200、服务器100涉及的通信网络可以参见前述图1的相关描述。其中,该三维重建方法可包括:
S101.移动端设备1获取针对目标场景的多张图像。
目标场景是指真实环境中的一块物理空间,示例性地,该物理空间可以为一个建筑物的内部空间。例如,该目标场景可以是指客厅场景、办公室场景、图书馆场景等等。
这多张图像可以为移动端设备1启动摄像头,从不同视角拍摄目标场景时,获得的多张连续的图像序列。其中,这多张图像中的任意两张连续的图像之间,包含有一定比例的重叠内容。或者,这多张图像为移动端设备1启动摄像头,录制不同视角下的目标场景的视频时,从该视频中的多帧图像中采样得到图像。
也就是说,移动端设备1可以通过启动摄像头,拍摄针对目标场景的图像或视频,获得针对目标场景的多张图像。其中,当移动端设备1通过摄像头拍摄针对目标场景的视频时,移动端设备1可以对视频进行采样,获得该多张图像。示例性地,可以利用视频处理软件对该视频进行采样,获得多张图像。
可选地,该多张图像也可以为其他设备拍摄的图像或者录制的视频中采样得到的图像。示例性地,该其他设备可以包括:相机、手机、平板等等。本申请实施例对这多张图像的来源设备,以及来源设备的数量不作限制。
本申请实施例可以通过一个应用程序来实现该三维重建方法,示例性地,该应用程序可以为前述提及的“建模”应用,本申请实施例对该应用程序的名称不作限制。
示例性地,如图3B所示,移动端设备1可以显示有该“建模”应用的用户界面20,该用户界面20中可以显示有创作图标201,移动端设备1可以检测到作用于该创作图标201的用户操作,响应于该操作,移动端设备1可以启动摄像头,并显示如图3C所示的用户界面30,该用户界面30中可以显示有启动拍照或录像的控件,例如快门控件304,以及预览框301,该预览框301用于实时显示摄像头采集的图像,移动端设备1可以根据用户将摄像头对准目标场景,并作用于该控件的操作,触发拍照或录像,进而获得针对该目标场景的多张图像或视频。
其中,在本申请实施例中,该用户界面20还可以被称为第二用户界面,该创作图标201还可以被称为第一控件,作用于该创作图标201的用户操作,还可以被称为第一操作,该用户界面30还可以为称为第三用户界面,预览框301还可以被称为第一预览框,快门控件304还可以被称为第二控件,作用于该快门控件304的操作,还可以被称为第二操作。
在一些实施例中,在移动端设备1拍摄针对目标场景的照片或视频时,移动端设备1可以输出提示信息,提示用户关于拍照或录像的一些注意事项,例如在何时启动拍摄、何时结束拍摄、控制用户移动摄像头的速度等等。该提示信息可以表现为:在显示屏上输入显示内容、震动、播放音频等等,本申请实施例对该提示信息的展现形式不作限制。具体关于移动端设备1输出的提示信息的详细描述可以参见前述图3E的相关内容,这里不再赘述。
在本申请实施例中,该移动端设备1还可以被称为第一设备。
S102.移动端设备1将多张图像发送给服务器。
移动端设备1将多张图像发送给服务器,相应的,服务器获取到移动端设备1发送的多张图像。
可选地,当移动端设备1录制有针对目标场景的视频时,移动端设备1可以将该视频发送给服务器,相应的,服务器获取到移动端设备1发送的视频。另外,服务器还可以从该视频的多帧图像中采样得到针对目标场景的多张图像。
另外,服务器也可以获取到其他设备拍摄的针对该目标场景的图像或视频,利用这一个或多个设备发送给的图像或视频完成后续提及的模型训练过程。
示例性地,如图3F所示,移动端设备1在完成针对目标场景的拍摄之后,可以显示如图3F所示的用户界面30,移动端设备1可以检测到作用于该用户界面30中的重建场景控件307A的用户操作,响应于该操作,移动端设备1可以将该多张图像发送给服务器,或者,移动端设备1将录制的针对目标场景的视频发送给服务器。
S103.服务器计算图像对应的相机位姿。
相机位姿是指拍摄目标场景时,摄像头在真实环境中的位置和姿态。换句话说,该相机位姿反映了移动端设备拍照或录制到视频中的某一帧图像时,摄像头的位置和朝向。其中,一张图像对应一个相机位置,服务器可以计算得到多张图像分别对应的相机位姿。
图7示出了摄像头从多个视角下拍摄目标场景时,涉及的拍摄场景示意图。如图7所示,物体100(即图7中的长方形)为被拍摄的目标场景,图标101表示摄像头拍摄该目标场景时的相机位姿。其中,顶点a用于表示摄像头所在的位置,图标101的摆放方向用于表示摄像头的朝向。摄像头可以在该图标101所示的相机位姿下拍摄目标场景,获得目标场景在其中一个视角下呈现的图像。
应该理解的是,图7中可以存在多个图标101,此处只标注了三个图标101以作解释,其他类似的形状也为图标101,此处不再一一标注。
对于同一场景,在摄像头拍摄目标场景时,其相机位姿不同,即拍摄的视角不同,则获取到的图像中该目标场景所呈现的内容不同。通过收集并分析该目标场景在不同视角下呈现的内容,即可计算得到不同视角下拍摄图像时的相机位姿。
具体地,图8示出了利用多张图像计算相机位姿时涉及到的流程示意图。如图8所示,服务器计算图像的相机位姿,主要涉及以下几个步骤:
S201.针对这多张图像中的任一图像,提取该图像中的特征点。
特征点是指图像中具有尺度不变性的像素点。示例性地,特征点可以是指图像中灰度值发生剧烈变化的点或者在图像边缘上曲率较大的点。特征点可以反映图像的本质特征,标识图像中的物体。
在一些可能的情况下,可以基于尺度不变特征变换(Scale-invariant featuretransform,SIFT)算法或加速稳健特征(Speeded Up Robust Features,SURF)算法等提取每一帧图像中的特征点。也可以利用其他的算法提取每一帧图像中的特征点,例如,特征检测(Oriented FAST and Rotated BRIEF,ORB)算法等,本申请实施例对此不作限定。
S202.对这多张图像中的任意两张相邻图像进行特征点匹配。
两张相邻图像可以是指前后两张相邻拍摄的图像,或者,视频中提取的前后两帧图像。这两张相邻图像存在一定比例的重叠内容,即存在相同特征点。对两张图像进行特征点匹配是指将这两张图像中的相同特征点进行匹配,即确定两帧图像中的相同特征点。
S203.通过匹配的特征点计算相机位姿。
其中,计算相机位姿的过程也是构建特征点地图的过程。该特征点地图包含了目标场景在真实空间中的三维点的坐标信息以及采集的每张图像的相机位姿,该特征点地图能够基本反映目标场景的三维形态和几何位置关系。
具体地,首先,可以通过匹配的特征点计算两个摄像头的相对相机位姿。其次,利用相对相机位姿确定该匹配的特征点在三维空间中的三维点的坐标,该三维点为真实三维空间中的目标场景的某一个空间点。示例性地,图9为本申请实施例提供的两张图像与空间中的三维点的关联示意图。如图9所示,图像1中的特征点p与图像2中的特征点p’匹配,这两个特征点都对应真实三维空间中的一个三维点p0。最后,再利用三维点和其在图像中对应的特征点,计算该图像对应的相机位姿。另外,在构建特征点地图的过程中,可以利用一些先验参数对三维点的坐标和相机位姿进行校准,实现构建的特征点地图与真实三维空间中的目标场景的位置、角度和尺度的对齐,从而得到更加精准的相机位姿。
其中,该先验参数包括但不限于:位置、角度、深度等信息。其中,位置信息可以包括:移动端设备1拍摄目标场景的图像或视频时,获取到的移动端设备1的位置信息或目标场景中的空间点的位置信息等等。示例性地,移动端设备1可以利用全球定位系统(GlobalPositioning System,GPS)获取移动端设备1的位置,利用距离传感器获取目标场景中的空间点的位置信息。深度信息可以为移动端设备1拍摄目标场景的图像或视频时,利用激光雷达、深度传感器、AI深度估计等等方式确定的目标场景中的拍摄物体的深度信息。该角度信息可以包括移动端设备1利用惯性测量单元(Inertial Measurement Unit,IMU)测量的移动端设备1的姿态信息。换句话说,该先验参数可以包括以下一项或多项:拍摄图像的相机的位置、姿态,图像中拍摄到的物体的位置,图像的深度信息等等。
也就是说,服务器可以利用拍摄得到的多张图像以及先验参数来确定每一张图像对应的相机位姿。
可以理解的是,获取目标场景的先验参数的设备不限于移动端设备1,还可以为其他用于专门测量位置信息、深度信息或角度信息的专业设备,例如,深度相机、全站仪等等,另外,获取先验参数的方式不限于上述提及的方式,例如,还可以结合高精地图,利用RTK定位技术来确定位置信息,本申请实施例对获取先验参数的方式不作限制。
在一些可能的实现方式中,可以利用COLMAP工具,通过运动恢复结构算法(structure from motion,SFM)估计每张图像对应的相机位姿。
应理解,服务器将特征点地图与目标场景的位置、方位和尺度进行对齐,可以使得计算得到的相机位姿更接近于真实拍摄时,摄像头的位置和姿态,将该相机位姿作为步骤S104输入的训练数据,能够使得训练得到的三维模型也是和目标场景的位置、方位和尺度进行对齐后的模型。这样,可以使得后续移动端设备调整显式三维模型之后,例如在该显式三维模型中添加模型素材,能够实现移动端设备通过摄像头实时采集的图像查看该目标场景时,该模型素材叠加在图像中的位置或角度,与该模型素材在显式三维模型中的相对应的位置或角度的误差更小。具体可以参考前述图4C-图4I、图5及其相关描述。
S104.服务器以多张图像和图像对应的相机位姿作为模型的训练数据,训练神经辐射场模型,得到训练好的隐式三维模型。
神经辐射场模型是一个多层感知机模型,该模型在本质上是一个用神经网络表示的多项式函数,从公式1可以看出,该神经辐射场模型FΘ的输入为5维向量(x,y,z,θ,φ),其中前三维X(x,y,z)为目标场景中的空间点的坐标,后两维d=(θ,φ)为观察方向或光线方向,θ表示观测俯仰角度,φ表示观测水平角度,输出为四维向量(R,G,B,σ),其中,前三维c=(R,G,B)表示该空间点的颜色,σ表示该空间点的空间密度,σ可以近似理解为不透明度,值越小越透明。
FΘ:(X,d)→(c,σ) 公式1
从公式1可以看出,该神经辐射场模型能够实现空间点的坐标以及观察方向,到该空间点的颜色和空间密度的映射。
图10为本申请实施例提供的基于神经辐射场模型重建三维模型时涉及的示意图。R1和R2为两条方向不同的射线,一条射线可以对应摄像头在某位置坐标下的观测角度。图像1为通过R1所在的观察方向观察目标(即图10中的灰色立方体)时所观测到的图像,图像2为通过R2所在的观察方向观察目标时所观测到的图像。从图10可以看出,一条射线在目标场景下可以穿过多个空间点,即一条射线包括多个空间点,该射线上的所有空间点的颜色和体密度共同构成了在该射线所在的观察方向下,观测到的像素颜色。
具体地,神经辐射场模型的训练过程包括:
1)根据每条射线上的空间点的坐标(x,y,z)和对应的观察方向(θ,φ),构建各空间点对应的模型训练向量(x,y,z,θ,φ);
2)在模型训练的过程中,将该模型训练向量输入到初始化神经辐射场模型,以得到各空间点的颜色和体密度;
3)根据一条射线上的所有空间点的颜色和体密度,估计该射线所在的观察方向下,观测到的像素颜色;
其中,可以基于公式2估计任一射线在图像上的像素颜色:
i,j表示第i,j个采样点,ci表示该射线上的第i个空间点的颜色,σi表示第i个空间点的体密度,δi、δj表示空间点的采样间隔。
4)利用预设的损失函数,参见公式3,根据像素颜色的估计结果和该观察方向下,获得的图像所表征的像素颜色的真值,计算当前神经辐射场模型的输出损失;
其中,L表示当前神经辐射场模型F(·)的输出损失,为第i幅图像中像素对应的射线r从当前神经辐射场模型F(·)中查询到的空间点的RGB颜色和空间密度σ后,该射线在图像上的像素颜色的估计结果,C(i)(r)为设备采集的此像素的像素颜色的真值,R为采样射线集。
5)以减少输出损失为目的,按照反向传播梯度调整当前神经辐射场模型的模型参数Θ,从而得到当前目标场景的隐式三维模型。
另外,在训练神经辐射场模型的过程中,拍摄的多张针对目标场景的图像以及图像对应的相机位姿作为训练数据,其中这些训练数据与神经辐射场模型的输入输出关系为:图像中的像素点对应在目标场景中的空间点的坐标由该图像以及该图像对应的相机位姿确定,观察方向由拍摄该图像时的相机位姿指示的相机位置,指向,该图像中的像素点,而一个观察方向上的,目标场景中的一个或多个空间点的颜色和密度的积分可以得到该观察方向下,观察到的图像中的像素点的像素值。
S105.服务器将隐式三维模型转换成显式三维模型。
由于直接训练得到的神经辐射场模型是一个隐式三维模型,渲染该隐式三维模型的计算复杂度和空间复杂度较高,无法直接在移动端设备上渲染。因此,在发送给移动端设备之前,需要将该隐式三维模型转换成移动端设备能够实时渲染的显式三维模型。
具体地,将隐式三维模型转换成显式三维模型包括:
1)利用球谐函数表示隐式三维模型中输入方向d和输出颜色c之间的关系
球谐函数(Spherical Harmonics,SH)是一种特殊函数,是球面拉普拉斯方程的解。其中,球谐函数可以通过公式4示意:
在本申请实施例中,可以通过球谐函数来拟合目标场景中的空间点在不同观察方向下呈现的颜色。其中,服务器可以通过一个球谐函数来拟合目标场景的一个空间点,在不同观察方向下,该隐式三维模型所输出的颜色。
这样,可以利用球谐函数来表示隐式三维模型中输入方向和输出颜色之间的关系,在实际渲染模型时,不需要通过输入空间点的坐标以及某一个观察方向到隐式三维模型中,来得到该空间点在该观察方向下的颜色,通过该球谐函数来表示空间点在不同观察方向下的颜色,避免了渲染三维模型时,通过隐式三维模型查询空间点的颜色的麻烦,直接将查询结果通过球谐函数来进行表示,加快了渲染三维模型时,获取空间点的颜色的速度。
2)对目标场景进行预采样,获得目标场景对应的多个预采样点
具体地,服务器可以对目标场景进行均匀采样,得到目标场景对应的多个预采样点。
3)根据隐式三维模型确定每个预采样点的密度值
具体地,服务器可以根据各预采样点在隐式三维模型中的输入输出信息,确定各个预采样点的密度值。
4)根据预采样点的密度值对预采样点进行过滤
过滤预采样点是指删除这多个预采样点中密度值较小的预采样点。示例性地,剔除多个预采样点中密度值小于阈值τw的采样点,保留密度值大于阈值τw的采样点。这样,可以减少隐式三维模型所描述的空间点的数量,实现三维模型的轻量化。
5)利用八叉树存储过滤后的预采样点的密度值和球谐系数
八叉树是一种描述三维空间的树状结构,八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,将八个子节点所表示的体积元素加在一起就等于父节点的体积。
在过滤了目标场景对应的多个预采样点的部分采样点之后,可以按照预设的区块划分间隔,对这些剩余的预采样点进行区块划分,以得到该目标场景所对应的空间八叉树;图11示例性示出了对目标场景进行区块划分的示意图。其中,图11所示的灰色立方体表示目标场景。
其中,八叉树的叶子节点存储有该叶子节点对应的预采样点的密度值和球谐系数。该基于八叉树表示的八叉树数据即用于表征该显式三维模型。
应理解,利用八叉树来描述该显式三维模型是由于八叉树的叶子节点本身具有表征其和其他叶子节点之间的相对位置关系的特性,这样,设备在渲染该显式三维模型时,无需根据空间点的坐标来确定该空间点在实际物理空间点中的位置,只需根据这些空间点的相对位置关系即可还原出该目标场景在设备中所呈现的画面。
在一些实施例中,由于密度值和球谐系数的数据量较大,该八叉树的叶子节点可用于存储索引信息,通过该索引信息可以查找到该叶子节点对应的预采样点的密度值和球谐系数。这样,可以简化该八叉树数据的复杂程度。
进一步地,服务器可以将该显式三维模型的八叉树数据存储为纹理贴图,包括:索引贴图和模型参数贴图,提高移动端设备渲染显式三维模型的速度。其中,图12为本申请实施例提供的纹理贴图的示意图,图12中(a)示例性示出了模型参数贴图,图12中(b)示例性示出了索引贴图。具体地,服务器可以将八叉树的所有叶子节点的索引信息看作图片中的像素值,将这些索引信息存储为一张索引贴图,另外,服务器可以将该八叉树的叶子节点对应的预采样点的密度值和球谐系数看作图片中的像素值,将这些密度值和球谐系数存储为一张模型参数贴图。那么,在服务器向移动端设备发送显式三维模型时,可以直接向该移动端设备发送纹理贴图,移动端设备可以通过该纹理贴图获取显式三维模型的信息,实现对显式三维模型的渲染。
总的来说,将隐式三维模型转换成显式三维模型,具体是通过提前对目标场景进行采样,利用球谐函数来表示该采样后的目标场景,利用八叉树数据结构存储显式三维模型的信息,使得显式三维模型相对于隐式三维模型有至少以下三个优点:
1)显式三维模型可以直接描述目标场景中的空间点的信息,包括密度和不同观察方向下的颜色,而隐式三维模型仅表示了空间点的坐标、观察方向到颜色、密度的映射关系,在实际渲染三维模型时,需要向隐式三维模型输入空间点的坐标以及观察方向,才能得到该空间点的颜色和密度。
具体实现中,显式三维模型是通过利用球谐函数来表征空间点的颜色,以及直接计算并存储各个空间点的密度来实现直接描述目标场景中的空间点的信息。
2)显式三维模型仅描述了目标场景中的部分空间点的信息,相比于隐式三维模型更加轻量化。
具体实现中,通过对目标场景进行预采样,并剔除密度值较小的空间点,减少了显式三维模型所表征的空间点的数量。
3)显式三维模型以各空间点的相对位置关系来描述各空间点的坐标。
具体实现中,通过八叉树数据结果来存储显式三维模型的信息,通过各个叶子节点的相对位置关系,来表示各个空间点的相对位置关系,这样,设备在渲染该显式三维模型时,无需根据空间点的坐标来确定该空间点在实际物理空间点中的位置,只需根据这些空间点的相对位置关系即可还原出该目标场景在设备中所呈现的画面。
可以看出,将隐式三维模型转换为显式三维模型,实现了对模型的轻量化和实时化,可以避免渲染三维模型时,对隐式三维模型进行前向推理,提高渲染效率,缩短了移动端设备显示三维模型的延迟,提高了用户的体验感。
S106.服务器将显式三维模型发送给移动端设备1。
服务器将显式三维模型发送给移动端设备1,相应的,移动端设备1接收到来自服务器发送的显式三维模型。
另外,需要注意的是,服务器除了将显式三维模型发送给移动端设备1之外,还可以将该显式三维模型发送给其他设备,例如移动端设备2。本申请实施例对服务器发送的设备不作限制。
其中,服务器将显式三维模型发送给移动端设备1具体是指服务器将纹理贴图发送给移动端设备1,其中,该纹理贴图包含了该显式三维模型的信息。具体关于纹理贴图的描述可以参见前述步骤S105的相关内容,这里不再赘述。
S107.移动端设备1实时渲染该显式三维模型。
移动端设备1实时渲染该显式三维模型是指移动端设备1显示在某一个观察视角(例如第一观察视角)下,该显式三维模型所呈现的画面(例如第一画面)。该观察视角可以为移动端设备1预设的一个默认视角,本申请实施例对此不作限制。
示例性地,移动端设备1可以通过图像处理器(graphics processing unit,GPU)实时渲染该显式三维模型。
具体地,在移动端设备1获取到表征该显式三维模型的纹理贴图之后,可以将该纹理贴图存储在GPU纹理单元中。在移动端设备1通过GPU中的片段着色器进行着色计算时,可以直接从GPU纹理单元中获取该纹理贴图,根据该纹理贴图完成显式三维模型的实时渲染,提高了移动端设备渲染显式三维模型的效率。
对于任意一条相机射向目标场景的光线,可以通过神经辐射场模型去预测该光线对应的路径上的所有空间点的颜色和空间密度,通过对该路径上空间点的颜色和密度进行积分即可得到该光线所对应的像素点的颜色。对显式三维模型的实时渲染即为对多条射向目标场景的光线对应的路径上的颜色和密度进行积分,得到多个像素点的颜色,从而构成一张在一个视角下该目标场景在设备上呈现的画面。其中,该光线对应的路径上的颜色和密度可以根据该光线所在的观察方向,确定对应的空间点位置,通过索引贴图获取该空间点位置对应的索引值,再通过模型参数贴图获取该索引值对应的球谐系数和密度,并根据该球谐系数还原出给空间点的颜色函数表达式,即球谐函数,根据该球谐函数确定该观察方向下的颜色。
示例性地,参见图3G,用户界面40的预览框401中示出了移动端设备1实时渲染显式三维模型所呈现的画面。
其中,在本申请实施例中,该用户界面40还可以被称为第一用户界面。
需要注意的是,该显式三维模型所呈现的画面与用户直接观察到的目标场景的画面基本一致,该显式三维模型中所呈现的任意一个物体,用户都能够在真实环境中的该目标场景中找到一个物体与之对应,不同的是,移动端设备1显示的这些物体为计算机根据拍摄的多张图像重建的与该目标场景中的真实物体相对应的虚拟物体,用户可以通过任意指定视角,来查看在不同视角下的该物体。
S108.移动端设备1接收到用户调整观察视角的操作。
示例性地,参见图3H,该调整观察视角的操作可以为作用于操纵控件403的用户操作。例如,移动端设备1接收到用户将第一观察视角调整为第二观察视角的操作。
S109.移动端设备1显示在该观察视角下,该显式三维模型呈现的画面。
移动端设备1可以显示在该观察视角(例如第二观察视角)下,该显式三维模型呈现的画面(例如第二画面)。
类似于步骤S108,移动端设备1在更改观察视角之后,可以实时渲染在该观察视角下的显式三维模型。具体关于移动端设备1实时渲染显式三维模型的描述可以参见前述步骤S107的相关内容,这里不再赘述。
可以看出,移动端设备1可以接收到用户连续调整观察视角的操作,连续调整显式三维模型在不同观察视角下呈现的画面,从而达到用户在目标场景对应的虚拟场景下沉浸式漫游的效果,用户可以通过控制观察视角,从任意角度下观察该虚拟场景。
应理解,当用户不调整观察视角时,移动端设备1可以一直显示步骤S107提及的观察视角下的显式三维模型,这时步骤S108-S109为可选的步骤。
S110.移动端设备1接收到用户调整显式三维模型的操作。
该操作可用于在该显式三维模型中添加、更改或删除模型素材。其中,对模型素材的更改可以包括:更改模型素材的位置、大小、摆放角度、颜色等等,该模型素材可以为该显式三维模型中的物体,也可以为该移动端设备1预存的模型素材,也可以为其他设备(例如云端服务器)发送给移动端设备1的模型素材,本申请实施例对该模型素材的来源不作限制。
示例性地,参见图4A-图4C,电子设备100检测到作用于编辑选项402A的用户操作,在图4B中显示包含一个或多个三维模型的编辑窗口405,该调整显式三维模型的操作可以包括作用于图4C所示的第一模型405A,从第一模型405A所在的位置到预览框401的拖动操作。或者,示例性地,参见图4G-图4I,该调整显式三维模型的操作包括图4G所示的作用于预览框401中的第一区域409的用户操作,以及图4H所示的作用于颜色调整选项410C的用户操作,以及图4I所示的作用于第一颜色选项411A的用户操作。
其中,在本申请实施例中,该编辑选项402A还可以被称为第三控件,该第一模型405A还可以被称为第一模型图标,该调整显式三维模型的操作还可以被称为第四操作。
S111.移动端设备1调整并显示调整后的显式三维模型。
响应于该调整显式三维模型的操作,移动端设备1可以调整并显示调整后的显式三维模型。其中,移动端设备1可以显示在某一观察视角下,该调整后的显式三维模型所呈现的画面。
示例性地,参见图4C-图4D,图4D所示的第一虚拟物体408为移动端设备1在接收到如图4C所示的操作后,在显式三维模型中添加的虚拟物体。示例性地,参见图4H-图4I,图4I所示的第一区域409的颜色为跟随图4H所示的用户操作,更改后的颜色。
另外,需要注意的是,在移动端设备1调整显式三维模型的过程中,移动端设备1需要根据用户操作,确定调整的模型素材在该显式三维模型中的摆放位置、角度等等,进而确定该模型素材对应在真实物理空间中的摆放位置、角度,实现在显示摄像头实时采集的目标场景的图像时,给模型素材以指定角度叠加显示在图像中的指定位置,该指定角度和指定位置与该模型素材在该显式三维模型中的角度和位置相对应。
S112.移动端设备1将调整后的显式三维模型发送给服务器。
移动端设备1将调整后的显式三维模型发送给服务器,相应的,服务器接收到移动端设备1发送的调整后的显式三维模型。
其中,移动端设备1可以在用户调整该显式三维模型的过程中,实时将该调整的显式三维模型发送给服务器,或者,移动端设备1可以在接收到用户操作后,将该调整后的显式三维模型给服务器。本申请实施例对移动端设备1发送调整后的显式三维模型的触发时机不作限制。
S113.服务器将调整后的显式三维模型发送给移动端设备2。
服务器可以将调整后的显式三维模型发送给移动端设备2,相应的,移动端设备2可以接收到服务器发送的调整后的显式三维模型。
可以理解的是,除了通过服务器转发移动端设备1上调整后的显式三维模型之外,移动端设备1还可以直接将调整后的显式三维模型发送给移动端设备2,该移动端设备2可以为与移动端设备1建立有通信连接的设备,也可以为与移动端设备1同属于一个用户账号或群组的设备。本申请实施例对移动端设备2获取该调整后的显式三维模型的方式不作限制。
在本申请实施例中,移动端设备2还可以被称为第二设备。
S114.移动端设备2接收到用户开启摄像头的操作。
S115.移动端设备2启动摄像头,采集针对目标场景的图像。
在移动端设备2启动摄像头之后,在用户将移动端设备2的摄像头面向目标场景时,移动端设备2可以采集针对该目标场景的图像。
S116.移动端设备2显示摄像头采集的图像并在该图像中叠加显示调整后的显式三维模型中增加的模型。
具体地,在移动端设备2获取到调整后的显式三维模型之后,可以比较出调整后的显式三维模型相对于调整前的显式三维模型中,增加的虚拟模型,将该虚拟模型确定为移动端设备2在显示该摄像头实时采集的图像时,可以叠加显示在该图像上的模型。其中,该虚拟模型可以为一个三维模型、曲面、平面或线条等等,该调整前的显式三维模型为步骤S107提及的,根据多张针对目标场景的图像训练得到的显式三维模型。
由于该显式三维模型为与目标场景的位置、方位和尺度对齐的模型,在移动端设备2显示该调整后的显式三维模型中增加的模型时,该模型显示在该摄像头实时采集的图像上的位置,与,该模型在该显式三维模型中的位置相对应。例如,用户在目标场景对应的模型的A地点放置了一个立方体模型,则在用户将摄像头面向目标场景时,该立方体模型显示在该摄像头采集的目标场景的A地点。
应理解,该增加的模型在图像中显示的目标场景中的位置,与,该模型在目标场景对应的显式三维模型中的位置,可以存在一定的位置误差。示例性地,该位置误差可以在0.5米以内。例如,用户在调整目标场景的显式三维模型时,在显式三维模型中的物体A所在的位置放置模型B,那么,在用户通过摄像头查看该真实环境下的目标场景时,该模型B叠加显示在用户拍摄的目标场景中的该物体A的0.5米范围内。另外,该增加的模型在图像中显示的目标场景中的朝向,与,该模型在目标场景对应的显式三维模型中的朝向,可以存在一定的角度误差。示例性地,该角度误差可以在5°以内。例如,用户在调整目标场景的显式三维模型时,在该显式三维模型中放置模型C,该模型C的朝向与该显式三维模型中原本的一个物体D的朝向相同,那么,在用户通过摄像头查看该真实环境下的目标场景时,给模型C摆放的角度与用户拍摄到的物体D的摆放角度可以存在5°以内的偏差。
示例性地,图5示出了移动端设备2采集的针对目标场景的图像,以及在该目标场景上叠加显示的虚拟物体。
可以看出,当移动端设备2处于目标场景的附近时,移动端设备2可以通过开启摄像头,在摄像头采集的图像上实时叠加显示用户通过调整显式三维模型时,添加的模型。
应理解,移动端设备2在获取到调整后的显式三维模型之后,除了通过启动摄像头,在摄像头采集的图像中叠加显示该调整后的显式三维模型中增加的模型,也可以直接显示该调整后的显式三维模型。也就会说,在移动端设备1调整了显式三维模型之后,其他设备,例如移动端设备2也可以显示该调整后的显式三维模型。这样,用户不仅能够调整显式三维模型,还能够将该调整后的显式三维模型分享给其他用户,以便其他用户查看到调整后的该显式三维模型,拓展了三维重建在应用场景,增强了用户在三维重建中的参与感。
图13示出了电子设备300的硬件结构示意图。
电子设备300可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmentedreality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificialintelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该电子设备的具体类型不作特殊限制。在本申请实施例中,该电子设备300可以为前述提及的移动端设备1或移动端设备2。
电子设备300可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M,深度传感器180N等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备300的具体限定。在本申请另一些实施例中,电子设备300可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备300的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备300的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。
移动通信模块150可以提供应用在电子设备300上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。
无线通信模块160可以提供应用在电子设备300上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号解调以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备300的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备300可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备300通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备300可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备300可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备300在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备300可以支持一种或多种视频编解码器。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备300的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备300的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
电子设备300可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。电子设备300可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。
耳机接口170D用于连接有线耳机。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。
陀螺仪传感器180B可以用于确定电子设备300的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备300围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备300抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备300的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,电子设备300通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。电子设备300可以利用磁传感器180D检测翻盖皮套的开合。
加速度传感器180E可检测电子设备300在各个方向上(一般为三轴)加速度的大小。当电子设备300静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。电子设备300可以通过红外或激光测量距离。在一些实施例中,拍摄场景,电子设备300可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。电子设备300通过发光二极管向外发射红外光。电子设备300使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定电子设备300附近有物体。当检测到不充分的反射光时,电子设备300可以确定电子设备300附近没有物体。
环境光传感器180L用于感知环境光亮度。电子设备300可以根据感知的环境光亮度自适应调节显示屏194亮度。
指纹传感器180H用于采集指纹。电子设备300可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。
骨传导传感器180M可以获取振动信号。
深度传感器180N用于获取深度信息,该深度信息用于表征环境物体与电子设备300之间的距离。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备300可以接收按键输入,产生与电子设备300的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。
当电子设备300为移动端设备1时:
处理器110可用于实时渲染在某一视角下的显式三维模型,并根据用户的操作调整该显示三维模型。
内部存储器121可用于存储显式三维模型。
移动通信模块150和无线通信模块160可用于将针对目标场景拍摄的图像或视频发送给服务器,接收服务器发送的显式三维模型,其中,无线通信模块160还可以利用GPS获取电子设备300拍摄目标场景时,电子设备300的位置信息,将调整后的显式三维模型发送给服务器,将移动端设备1的姿态信息,目标场景中拍摄物体的位置信息,深度信息,电子设备300的位置信息发送给服务器。
陀螺仪传感器180B或加速度传感器180E可用于获取移动端设备1的姿态信息,以供服务器利用该姿态信息确定目标场景的角度信息。
距离传感器180F可用于获取目标场景中拍摄物体的位置信息。
深度传感器180N可用于获取目标场景中拍摄物体的深度信息。
摄像头193可用于采集针对目标场景的图像或视频。
显示屏194可用于显示处理器110渲染得到的显式三维模型所呈现的画面,以及前述与“建模”应用有关的一个或多个用户界面。
当电子设备300为移动端设备2时:
处理器110可用于根据调整前的显式三维模型和调整后的显式三维模型,确定调整后的显式三维模型相比于调整后的显式三维模型中增加的模型,以及在摄像头采集的图像中叠加该增加的模型。
内部存储器121可用于存储调整前和调整后的显式三维模型。
移动通信模块150和无线通信模块160可用于获取调整前和调整后的显式三维模型。
摄像头193可用于采集针对目标场景的图像。
显示屏194可用于显示摄像头采集的图像,以及在该图像上叠加显示增加的模型。
具体关于移动端设备1和移动端设备2未提及的内容可以参见前述图6所示的流程图的相关描述,这里不再赘述。
电子设备可以是搭载iOS、Android、Microsoft或者其它操作系统的便携式终端设备,例如手机、平板电脑、可穿戴设备等,还可以是具有触敏表面或触控面板的膝上型计算机(Laptop)、具有触敏表面或触控面板的台式计算机等非便携式终端设备。电子设备300的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备300的软件结构。
图14是本发明实施例的电子设备300的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图14所示,应用程序包可以包括“建模”应用,相机,图库,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
其中,“建模”应用可用于提供用户拍摄针对目标场景的图像或视频的交互接口,提供用于显示目标场景对应的显式三维模型的用户界面,并根据用户操作调整该显式三维模型,显示该调整后的显式三维模型。具体关于“建模”应用涉及的用户界面可以参见前述图3A-图3I、图4A-图4I、图5所示的用户界面及其相关描述。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图14所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备300的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明电子设备300软件以及硬件的工作流程。
当触摸传感器180K接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头193捕获静态图像或视频。
图15示出了电子设备400的硬件结构示意图。
如图15所示,电子设备400可以包括:一个或多个处理器201、存储器202、通信接口203、发射器205、接收器206、耦合器207和天线208。这些部件可通过总线204或者其他方式连接,图15以通过总线连接为例。示例性地,该电子设备400可以为前述提及的服务器。其中:
通信接口203可用于电子设备400与其他通信设备,例如电子设备300。具体的,通信接口203可以是3G通信接口、长期演进(LTE)(4G)通信接口、5G通信接口、WLAN通信接口、WAN通信接口等等。不限于无线通信接口,电子设备400还可以配置有线的通信接口203来支持有线通信,例如电子设备400与其他服务器之间的回程链接可以是有线通信连接。
在本申请的一些实施例中,发射器205和接收器206可看作一个无线调制解调器。发射器205可用于对处理器201输出的信号进行发射处理。接收器206可用于接收信号。在电子设备400中,发射器205和接收器206的数量均可以是一个或者多个。天线208可用于将传输线中的电磁能转换成自由空间中的电磁波,或者将自由空间中的电磁波转换成传输线中的电磁能。耦合器207可用于将移动通信号分成多路,分配给多个的接收器206。可理解的,电子设备400的天线208可以实现为大规模天线阵列。
在一些实施例中,接收器206可用于接收其他设备,例如电子设备300发送的针对目标场景的图像或视频,发射器205可用于发送显式三维模型,或调整后的显式三维模型。
存储器202与处理器201耦合,用于存储各种软件程序和/或多组指令。具体的,存储器202可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。
存储器202可以存储操作系统(下述简称系统),例如uCOS、VxWorks、RTLinux等嵌入式操作系统。
在一些实施例中,存储器202可用于存储神经辐射场模型,以及目标场景对应的显式三维模型。
本申请实施例中,处理器201可用于读取和执行计算机可读指令。
在一些实施例中,处理器201可用于根据多张图像计算相机位姿,训练神经辐射场模型,生成隐式三维模型,将隐式三维模型转换为显式三维模型。
需要说明的,图15所示的电子设备400仅仅是本申请实施例的一种实现方式,实际应用中,电子设备400还可以包括更多或更少的部件,这里不作限制。
应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请还提供一种电子设备,该电子设备可以包括:存储器和处理器。其中,存储器可用于存储计算机程序;处理器可用于调用所述存储器中的计算机程序,以使得该电子设备执行上述任意一个实施例中电子设备300或电子设备400执行的方法。
本申请还提供了一种芯片系统,所述芯片系统包括至少一个处理器,用于实现上述任一个实施例中电子设备300或电子设备400执行的方法中所涉及的功能。
在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存程序指令和数据,存储器位于处理器之内或处理器之外。
该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请实施例并不限定。示例性地,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
示例性地,该芯片系统可以是现场可编程门阵列(field programmable gatearray,FPGA),可以是专用集成芯片(application specific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(central processorunit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controller unit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。
本申请还提供一种计算机程序产品,所述计算机程序产品包括:计算机程序(也可以称为代码,或指令),当所述计算机程序被运行时,使得计算机执行上述任一个实施例中电子设备300或电子设备400任意一个执行的方法。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序(也可以称为代码,或指令)。当所述计算机程序被运行时,使得计算机执行上述任一个实施例中电子设备300或电子设备400任意一个执行的方法。
应理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(AP 800plication specific integratedcircuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
另外,本申请实施例还提供一种装置。该装置具体可以是组件或模块,该装置可包括相连的一个或多个处理器和存储器。其中,存储器用于存储计算机程序。当该计算机程序被一个或多个处理器执行时,使得装置执行上述各方法实施例中的方法。
其中,本申请实施例提供的装置、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法。因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
本申请的各实施方式可以任意进行组合,以实现不同的技术效果。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solidstate disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本发明技术方案的实施例而已,并非用于限定本发明的保护范围。凡根据本发明的揭露,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种三维重建方法,所述方法应用于服务器,其特征在于,所述方法包括:
所述服务器获取针对目标场景的多张图像;
所述服务器根据所述多张图像,和,拍摄所述多张图像时的相机位姿,训练神经辐射场模型,得到隐式三维模型;其中,所述隐式三维模型的输入为所述目标场景中空间点的坐标和观察方向,输出为所述空间点的颜色和密度;
所述服务器将所述隐式三维模型转化为显式三维模型,所述显式三维模型描述了所述目标场景中部分空间点的密度和在不同观察方向下的颜色;
所述服务器将所述显式三维模型发送给第一设备。
2.根据权利要求1所述的方法,其特征在于,所述服务器将所述隐式三维模型转化为显式三维模型,具体包括:
所述服务器通过球谐函数表示所述隐式三维模型中表征的观察方向和颜色之间的关系,一个所述球谐函数表示一个空间点的不同观察方向和颜色之间的关系;
所述服务器过滤所述目标场景中的部分空间点,以保留密度值大于预设值的所述部分空间点,所述目标场景中的空间点的密度值通过在所述隐式三维模型中输入所述空间点的坐标得到;
所述服务器生成显式三维模型,所述显式三维模型包含以下信息:所述部分空间点的密度,以及,所述部分空间点的球谐函数的系数。
3.根据权利要求1或2所述的方法,其特征在于,所述显式三维模型以八叉树的数据结构存储所述信息,所述八叉树包括多个节点,一个所述节点对应于所述部分空间点中的一个空间点,一个所述节点存储有索引信息,所述索引信息用于查找到所述节点对应的空间点的密度,以及,所述节点对应的空间点的球谐函数的系数。
4.根据权利要求3所述的方法,其特征在于,所述显式三维模型实现为纹理贴图,所述纹理贴图包括:索引贴图、模型参数贴图,所述索引贴图的像素值用于指示节点的索引信息,所述模型参数贴图的像素值用于指示空间点的密度或球谐函数的系数,其中,所述索引贴图的一个像素值所指示的第一节点,用于查找到所述模型参数贴图中的多个像素值所指示的第一节点对应的第一空间点的密度,以及,所述第一空间点的球谐函数的系数。
5.根据权利要求1-4任一项所述的方法,其特征在于,拍摄图像时的相机位姿由所述服务器根据所述图像以及与所述图像相邻的图像确定,所述多张图像中的任意两张相邻图像中包含预设比例的重叠内容。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述服务器获取针对目标场景的多张图像之后,所述方法还包括:
所述服务器根据所述多张图像以及先验参数,确定所述多张图像中每一张图像对应的相机位姿,所述先验参数包括以下一项或多项:拍摄所述图像的相机的位置、姿态,图像中拍摄到的物体的位置,所述图像的深度信息。
7.根据权利要求1-6任一项所述的方法,其特征在于,
所述服务器获取针对目标场景的多张图像,具体包括:
所述服务器获取到所述第一设备采集的针对所述目标场景的多张图像;
或者,
所述服务器获取针对目标场景的多张图像之前,所述方法还包括:
所述服务器获取到所述第一设备采集的针对所述目标场景的视频,所述多张图像为所述视频中的多帧图像。
8.一种三维重建方法,其特征在于,所述方法应用于第一设备,所述方法包括:
所述第一设备获取到服务器发送的显式三维模型,所述显式三维模型为所述服务器对隐式三维模型转化后得到的模型,所述隐式三维模型为根据目标场景的多张图像,和,拍摄所述多张图像时的相机位姿,训练神经辐射场模型得到,其中,所述隐式三维模型的输入为所述目标场景中空间点的坐标和观察方向,输出为所述空间点的颜色和密度,所述显式三维模型描述了所述目标场景中部分空间点的密度和在不同观察方向下的颜色;
所述第一设备显示第一用户界面,所述第一用户界面中显示有:第一观察视角下所述显式三维模型所呈现的第一画面。
9.根据权利要求8所述的方法,其特征在于,所述第一画面中的像素点的像素值由所述显式三维模型描述的第一观察方向上的空间点的颜色和密度的积分得到,所述第一观察方向为在所述第一观察视角下,观察所述像素点对应的空间点的方向。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
所述第一设备检测到用户将所述第一观察视角调整为第二观察视角;
所述第一设备在所述第一用户界面中,显示所述第二观察视角下,所述显式三维模型所呈现的第二画面。
11.根据权利要求8-10任一项所述的方法,其特征在于,所述目标场景的多张图像为所述第一设备采集的针对所述目标场景的多张图像;
或者,所述方法还包括;所述第一设备将采集的针对所述目标场景的视频发送给所述服务器,所述目标场景的多张图像为所述视频中的多帧图像。
12.根据权利要求11所述的方法,其特征在于,所述第一设备将采集的针对所述目标场景的多张图像或视频发送给所述服务器之前,所述方法还包括:
所述第一设备显示包含第一控件的第二用户界面;
所述第一设备检测到作用于所述第一控件的第一操作;
响应于所述第一操作,所述第一设备启动摄像头并显示第三用户界面,所述第三用户界面包括:第一预览框和第二控件,所述第一预览框用于实时显示所述摄像头采集的图像;
所述第一设备检测到作用于所述第二控件的第二操作,所述第二操作用于触发所述第一设备采集针对所述目标场景的多张图像或视频。
13.根据权利要求8-12任一项所述的方法,其特征在于,所述第一用户界面还包括:第三控件,所述第一设备显示第一用户界面之后,所述方法还包括:
所述第一设备检测到作用于所述第三控件的第三操作;
响应于所述第三操作,所述第一设备在所述第三用户界面中显示一个或多个模型图标,所述一个或多个模型图标包括所述第一模型图标;
所述第一设备检测到作用于所述第一模型图标的第四操作;
响应于所述第四操作,所述第一设备在所述第一用户界面中添加所述第一模型图标对应的第一模型,且,在所述第一观察视角下,所述第一设备在所述第一用户界面中显示添加所述第一模型后的所述显式三维模型所呈现的第三画面。
14.根据权利要求13所述的方法,其特征在于,所述电子设备显示所述第三画面之后,所述方法还包括:
所述第一设备将所述添加第一模型后的显式三维模型发送给第二设备,使得所述第二设备在实时采集的针对所述目标场景的第一图像上,叠加显示所述第一模型,并且,所述第一模型在所述第一图像中显示的所述目标场景中的位置,与所述第一模型在所述添加第一模型后的显式三维模型中的位置对应。
15.一种三维重建方法,所述方法应用于第二设备,其特征在于,所述方法包括:
所述第二设备获取到所述第一设备发送的添加第一模型后的显式三维模型,所述显式三维模型为根据神经辐射场模型训练得到的目标场景的模型;
所述第二设备显示第四用户界面,所述第四用户界面中显示有:所述第二设备实时采集的针对所述目标场景的第一图像,以及,叠加在所述第一图像中的所述第一模型,所述第一模型在所述第一图像中显示的所述目标场景中的位置,与所述第一模型在所述添加第一模型后的显式三维模型中的位置对应。
16.根据权利要求15所述的方法,其特征在于,所述显式三维模型为服务器对隐式三维模型转化后得到的模型,所述隐式三维模型为根据目标场景的多张图像,和,拍摄所述多张图像时的相机位姿,训练神经辐射场模型得到,其中,所述隐式三维模型的输入为所述目标场景中空间点的坐标和观察方向,输出为所述空间点的颜色和密度,所述显式三维模型描述了所述目标场景中部分空间点的密度和在不同观察方向下的颜色。
17.一种三维重建系统,所述系统包括服务器和第一设备,其特征在于,所述系统包括:
所述服务器获取针对目标场景的多张图像;
所述服务器根据所述多张图像,和,拍摄所述多张图像时的相机位姿,训练神经辐射场模型,得到隐式三维模型;其中,所述隐式三维模型的输入为所述目标场景中空间点的坐标和观察方向,输出为所述空间点的颜色和密度;
所述服务器将所述隐式三维模型转化为显式三维模型,所述显式三维模型描述了所述目标场景中部分空间点的密度和在不同观察方向下的颜色;
所述服务器将所述显式三维模型发送给所述第一设备;
所述第一设备显示第一用户界面,所述第一用户界面中显示有:第一观察视角下所述显式三维模型所呈现的第一画面,所述第一画面中的像素点的像素值由所述显式三维模型描述的第一观察方向上的空间点的颜色和密度的积分得到,所述第一观察方向为在所述第一观察视角下,观察所述像素点对应的空间点的方向。
18.一种三维重建系统,所述系统包括第一设备和第二设备,其特征在于,所述系统包括:
所述第一设备显示第一用户界面,所述第一用户界面中显示有:第一观察视角下显式三维模型所呈现的第一画面,所述显式三维模型根据神经辐射场模型训练得到;
所述第一设备检测到调整所述显式三维模型的操作,所述操作为作用于第一模型图标的操作;
响应于所述操作,所述第一设备在所述第一用户界面中添加所述第一模型图标对应的第一模型,且,在所述第一观察视角下,所述第一设备在所述第一用户界面中显示添加所述第一模型后的所述显式三维模型所呈现的第三画面;
所述第一设备将所述添加第一模型后的显式三维模型发送给所述第二设备;
所述第二设备显示第四用户界面,所述第四用户界面中显示有:所述第二设备实时采集的针对所述目标场景的第一图像,以及,叠加在所述第一图像中的所述第一模型,所述第一模型在所述第一图像中显示的所述目标场景中的位置,与所述第一模型在所述添加第一模型后的显式三维模型中的位置对应。
19.一种电子设备,其特征在于,包括存储器,一个或多个处理器,以及一个或多个程序;所述一个或多个处理器在执行所述一个或多个程序时,使得所述电子设备实现如权利要求1至7任一项所述的方法。
20.一种电子设备,其特征在于,包括存储器,一个或多个处理器,以及一个或多个程序;所述一个或多个处理器在执行所述一个或多个程序时,使得所述电子设备实现如权利要求8至14、15至16任一项所述的方法。
21.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至7、8至14、15至16任一项所述的方法。
22.一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得计算机执行如权利要求1至7、8至14、15至16任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058725.7A CN115439606A (zh) | 2022-08-31 | 2022-08-31 | 三维重建方法、图形界面、系统及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058725.7A CN115439606A (zh) | 2022-08-31 | 2022-08-31 | 三维重建方法、图形界面、系统及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115439606A true CN115439606A (zh) | 2022-12-06 |
Family
ID=84244832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211058725.7A Pending CN115439606A (zh) | 2022-08-31 | 2022-08-31 | 三维重建方法、图形界面、系统及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115439606A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115690382A (zh) * | 2022-12-27 | 2023-02-03 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、生成全景图的方法和装置 |
CN115775024A (zh) * | 2022-12-09 | 2023-03-10 | 支付宝(杭州)信息技术有限公司 | 虚拟形象模型训练方法及装置 |
CN116129082A (zh) * | 2023-03-06 | 2023-05-16 | 中南大学 | 一种面向无人货柜的TIN-NeRF新视角图像标注方法 |
CN116449962A (zh) * | 2023-06-14 | 2023-07-18 | 北京水木东方医用机器人技术创新中心有限公司 | 内部场景ar可视化方法、装置以及设备 |
CN117173383A (zh) * | 2023-11-02 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 颜色生成方法、装置、设备及存储介质 |
CN117495797A (zh) * | 2023-10-30 | 2024-02-02 | 武汉大学 | 基于隐式三维表达引导的航空数据变化检测方法及系统 |
CN117746192A (zh) * | 2024-02-20 | 2024-03-22 | 荣耀终端有限公司 | 电子设备及其数据处理方法 |
CN117934700A (zh) * | 2023-11-15 | 2024-04-26 | 广州极点三维信息科技有限公司 | 基于神经渲染的三维家居漫游场景重建方法、系统及介质 |
-
2022
- 2022-08-31 CN CN202211058725.7A patent/CN115439606A/zh active Pending
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115775024A (zh) * | 2022-12-09 | 2023-03-10 | 支付宝(杭州)信息技术有限公司 | 虚拟形象模型训练方法及装置 |
CN115775024B (zh) * | 2022-12-09 | 2024-04-16 | 支付宝(杭州)信息技术有限公司 | 虚拟形象模型训练方法及装置 |
CN115690382A (zh) * | 2022-12-27 | 2023-02-03 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、生成全景图的方法和装置 |
CN116129082A (zh) * | 2023-03-06 | 2023-05-16 | 中南大学 | 一种面向无人货柜的TIN-NeRF新视角图像标注方法 |
CN116129082B (zh) * | 2023-03-06 | 2024-01-23 | 中南大学 | 一种面向无人货柜的TIN-NeRF新视角图像标注方法 |
CN116449962A (zh) * | 2023-06-14 | 2023-07-18 | 北京水木东方医用机器人技术创新中心有限公司 | 内部场景ar可视化方法、装置以及设备 |
CN116449962B (zh) * | 2023-06-14 | 2023-09-29 | 北京水木东方医用机器人技术创新中心有限公司 | 内部场景ar可视化方法、装置以及设备 |
CN117495797A (zh) * | 2023-10-30 | 2024-02-02 | 武汉大学 | 基于隐式三维表达引导的航空数据变化检测方法及系统 |
CN117173383A (zh) * | 2023-11-02 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 颜色生成方法、装置、设备及存储介质 |
CN117173383B (zh) * | 2023-11-02 | 2024-02-27 | 摩尔线程智能科技(北京)有限责任公司 | 颜色生成方法、装置、设备及存储介质 |
CN117934700A (zh) * | 2023-11-15 | 2024-04-26 | 广州极点三维信息科技有限公司 | 基于神经渲染的三维家居漫游场景重建方法、系统及介质 |
CN117746192A (zh) * | 2024-02-20 | 2024-03-22 | 荣耀终端有限公司 | 电子设备及其数据处理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115439606A (zh) | 三维重建方法、图形界面、系统及相关装置 | |
CN111476911B (zh) | 虚拟影像实现方法、装置、存储介质与终端设备 | |
CN111866404B (zh) | 一种视频编辑方法及电子设备 | |
KR102624635B1 (ko) | 메시징 시스템에서의 3d 데이터 생성 | |
CN112262563B (zh) | 图像处理方法及电子设备 | |
CN113727017B (zh) | 拍摄方法、图形界面及相关装置 | |
CN108153326A (zh) | 电子设备和控制电子设备的方法 | |
CN113691331A (zh) | 一种信号强度预测的方法及移动终端 | |
CN114979457B (zh) | 一种图像处理方法及相关装置 | |
CN114842069A (zh) | 一种位姿确定方法以及相关设备 | |
CN113723397A (zh) | 一种截屏方法及电子设备 | |
CN116029952B (zh) | 点云评测方法及其相关设备 | |
WO2022135272A1 (zh) | 三维模型重建方法、设备和存储介质 | |
US20220318303A1 (en) | Transmitting metadata via inaudible frequencies | |
CN116797767A (zh) | 增强现实场景分享的方法和电子设备 | |
CN116433830A (zh) | 一种三维地图的创建方法及电子设备 | |
CN113542575A (zh) | 设备位姿调整方法和图像拍摄方法及电子设备 | |
CN113452896B (zh) | 一种图像显示方法和电子设备 | |
CN112783993B (zh) | 基于数字地图的多个授权空间的内容同步方法 | |
US11874960B2 (en) | Pausing device operation based on facial movement | |
WO2023125795A1 (zh) | 显示方法、用户界面及电子设备 | |
WO2024114785A1 (zh) | 一种图像处理方法、电子设备及系统 | |
US20220377309A1 (en) | Hardware encoder for stereo stitching | |
US20240069626A1 (en) | Timelapse re-experiencing system | |
US20220373791A1 (en) | Automatic media capture using biometric sensor data |
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 |