CN116152323B - 深度估计方法、单目深度估计模型生成方法和电子设备 - Google Patents
深度估计方法、单目深度估计模型生成方法和电子设备 Download PDFInfo
- Publication number
- CN116152323B CN116152323B CN202310411157.2A CN202310411157A CN116152323B CN 116152323 B CN116152323 B CN 116152323B CN 202310411157 A CN202310411157 A CN 202310411157A CN 116152323 B CN116152323 B CN 116152323B
- Authority
- CN
- China
- Prior art keywords
- depth estimation
- training
- sample
- target
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本申请提供一种深度估计方法、单目深度估计模型生成方法和电子设备,涉及图像处理技术领域,能够提高电子设备在使用AR功能时,对现实场景中物体的深度信息估计更为准确,提高了深度信息的时序一致性,保证了虚拟物体和现实物体之间的遮挡关系在时间维度上的一致性和准确性,提高了用户的使用体验。该方法包括:训练设备获取目标场景的多个视角的样本拍摄图像和每个样本拍摄图像的GT深度图;训练设备获取目标场景的几何约束;训练设备以样本拍摄图像作为训练数据,样本拍摄图像的GT深度图和样本拍摄图像的几何约束作为监督信息,迭代训练初始单目深度估计模型,得到目标单目深度估计模型。
Description
技术领域
本申请涉及图像处理技术领域,尤其涉及一种深度估计方法、单目深度估计模型生成方法和电子设备。
背景技术
为了提高用户的使用体验,手机等电子设备大都具备有增强现实(augementedreality,AR)功能。AR功能可以在电子设备拍摄现实场景的情况下,在电子设备的显示界面中显示各类虚拟物体。例如,动漫角色、虚拟路标等。这样一来,在不同的使用场景下,AR功能可以带给用户更好的使用体验。
在实现AR功能的过程中,电子设备需要根据拍摄图像中的深度信息结合使用场景,确定虚拟物体在拍摄图像中的具体深度,进而在显示界面中合理的位置显示该虚拟物体。此外,由于大部分具备摄像功能的电子设备都采用的是单目摄像头,所以电子设备的拍摄图像中的深度信息需要基于单目深度估计模型估计得出。而目前的单目深度估计模型对拍摄图像中各物体深度的估计会存在偏差,使得依据该深度信息确定的虚拟物体的深度信息不准确,甚至连续两帧拍摄图像中虚拟和真实物体之间的遮挡关系存在差异。这样一来,也严重影响了用户对AR功能的使用体验。
发明内容
本申请实施例提供一种深度估计方法、单目深度估计模型生成方法和电子设备,能够提高电子设备在使用AR功能时,对现实场景中物体的深度信息估计更为准确,提高了深度信息的时序一致性,保证了虚拟物体和现实物体之间的遮挡关系在时间维度上的一致性和准确性,提高了用户的使用体验。
为达到上述目的,本申请的实施例采用如下技术方案:
第一方面,本申请提供了一种单目深度估计模型生成方法,应用于训练设备,该方法包括:训练设备获取目标场景的多个视角的样本拍摄图像和每个样本拍摄图像的GT深度图;训练设备获取目标场景的几何约束;训练设备以样本拍摄图像作为训练数据,样本拍摄图像的GT深度图和样本拍摄图像的几何约束作为监督信息,迭代训练初始单目深度估计模型,得到目标单目深度估计模型。
基于上述实施例提供的技术方案,可以通过监督学习的方式,训练得到目标单目深度估计模型。该目标单目深度估计模型所采用的监督信息除了常用的GT深度图以外,还用了几何约束,由于该几何约束是可以反映出目标场景中所有物体之间的几何约束,而目标场景的图像无论是什么视角拍摄的,其中物体之间的几何约束必然是相同的。所以,以该几何约束作为监督信息,可以使得最终训练得到的单目深度估计模型在对时间和/或视角不同的目标场景的拍摄图像进行深度估计时,估计结果差异很小。也就是说,本申请实施例提供的技术方案,可以提高了单目深度估计模型的估计精度和时序一致性。
在第一方面的一种可能的实现方式中,在几何约束为法向量图的情况下,训练设备获取目标场景的几何约束,包括:训练设备利用目标神经辐射场NeRF模型获取样本拍摄图像的法向量图;目标NeRF模型具备利用任意视角对应的位姿信息确定目标场景在任意视角下的拍摄图像的能力。
基于上述方案,训练设备便可以利用目标NeRF模型得到样本拍摄图像的准确的法向量图,并使用该法向量图作为单目深度估计模型训练时使用的监督信息。由于该法向量图是可以反映出目标场景中所有物体之间的几何约束,而目标场景的图像无论是什么视角拍摄的,其中物体之间的几何约束必然是相同的。所以,以该法向量图作为监督信息,可以使得最终训练得到的单目深度估计模型在对时间和/或视角不同的目标场景的拍摄图像进行深度估计时,估计结果差异很小。
在第一方面的一种可能的实现方式中,在训练设备利用目标NeRF模型获取样本拍摄图像的法向量图之前,该方法还包括:训练设备获取每个样本拍摄图像的位姿信息和像素值;训练设备以样本拍摄图像的位姿信息作为训练数据,样本拍摄图像的像素值作为监督信息,迭代训练初始NeRF模型,得到目标NeRF模型。
基于上述技术方案,可以通过监督学习的方式,训练得到目标NeRF模型。该目标NeRF模型则具备利用位姿信息得到在以该位姿信息对目标场景拍摄的拍摄图像的能力。为后续单目深度估计模型中的监督信息的来源提供了数据支持。
在第一方面的一种可能的实现方式中,训练设备以样本拍摄图像的位姿信息作为训练数据,样本拍摄图像的像素值作为监督信息,迭代训练初始NeRF模型,得到目标NeRF模型之前,方法还包括:训练设备基于样本拍摄图像的真实GT深度图,确定目标采样策略;训练设备以样本拍摄图像的位姿信息作为训练数据,样本拍摄图像的像素值作为监督信息,迭代训练初始NeRF模型,得到目标NeRF模型,包括:训练设备以样本拍摄图像的位姿信息作为训练数据,样本拍摄图像的像素值作为监督信息,目标采样策略作为初始NeRF模型进行体素采样的采样策略,迭代训练初始NeRF模型,得到目标NeRF模型。
基于上述技术方案,可以在以监督学习的方式,训练NeRF模型的基础上,使用的样本拍摄图像GT深度图得出目标采样策略,并以该目标采样策略指导NeRF模型的体素采样过程。因为样本拍摄图像的GT深度能够准确反映出样本拍摄图像中各个物体所处的位置,所以该目标采样策略可以指导NeRF模型体素采样时采样点的选择更合适,提高了采样效率。进一步的,由于NeRF模型体素采样时采样点的选择更合适也使得NeRF模型基于体素采样结果(采样点的颜色值和体素密度)得到的像素的像素值更准确,提高了最终训练得到的目标NeRF模型的效果。更进一步的,也为后续单目深度估计模型中的监督信息的来源提供了更有利的数据支持。
在第一方面的一种可能的实现方式中,在几何约束为法向量图的情况下,训练设备以样本拍摄图像作为训练数据,样本拍摄图像的GT深度图和样本拍摄图像的几何约束作为监督信息,迭代训练初始单目深度估计模型,得到目标单目深度估计模型,包括:训练设备初始化初始单目深度估计模型;训练设备将样本拍摄图像输入初始单目深度估计模型,得到预测深度图和预测法向量图;训练设备基于预测深度图、预测法向量图、样本拍摄图像的GT深度图和样本拍摄图像的法向量图,确定总损失值;训练设备根据总损失值迭代更新初始单目深度估计模型,以得到目标单目深度估计模型。
基于上述技术方案,可以利用基于深度的监督信息和基于法向量的监督信息,对单目深度估计模型进行训练的监督,使得最终得到的目标单目深度估计模型在对时间和/或视角不同的目标场景的拍摄图像进行深度估计时,估计结果差异很小。
在第一方面的一种可能的实现方式中,训练设备基于预测深度图、预测法向量图、样本拍摄图像的GT深度图和样本拍摄图像的法向量图,确定总损失值,包括:训练设备根据预测深度图和样本拍摄图像的GT深度图,确定深度损失值;训练设备根据预测法向量图和样本拍摄图像的法向量图,确定法向量损失值;训练设备基于深度损失值和法向量损失值,计算总损失值。
基于上述技术方案,可以利用深度损失值和法向量损失值确定得到单目深度估计模型所需的总损失值,使单目深度估计模型的训练过程顺利实施。
第二方面,本申请提供一种深度估计方法,应用于电子设备,该方法包括:电子设备接收用户开启AR功能的开启操作;电子设备响应于开启操作,启动摄像头进行拍摄以显示AR界面;电子设备获取当前场景的场景信息,并确定该场景信息对应的第一场景;电子设备利用与第一场景对应的第一单目深度估计模型,对摄像头拍摄的图像中物体的深度信息进行估计,得到深度估计结果;第一单目深度估计模型为依据如第一方面提供的单目深度估计模型生成方法得到的单目深度估计模型;电子设备基于深度估计结果,确定AR界面中虚拟物体的位置并在AR界面中显示该虚拟物体。
基于上述技术方案,电子设备便可以在开启AR功能的情况下,使用预先训练的单目深度估计模型对当前场景中物体的深度信息进行估计。由于该单目深度估计模型是采用前述实施例中提供的单目深度估计模型生成方法训练的,采用的监督信息除了常用的GT深度图以外,还用了几何约束,所以最终训练得到的单目深度估计模型在对时间和/或视角不同的目标场景的拍摄图像进行深度估计时,估计结果差异很小。也就是说,本申请实施例提供的技术方案中使用的单目深度估计模型的估计精度和时序一致性相比于现有技术更好。这样,也就使得电子设备开启AR功能后,虚拟物体和现实物体之间的遮挡关系在时间维度上不会产生较大改变,且遮挡关系准确,提高了用户的使用体验。
第三方面,本申请提供了一种训练设备,包括:处理器和存储器;该存储器用于存储可执行指令,该处理器被配置为执行该存储器存储的该可执行指令,以使该训练设备执行如上述第一方面提供的单目深度估计模型生成方法。
第四方面,本申请提供一种电子设备,该电子设备包括:显示屏、存储器和一个或多个处理器;显示屏、存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行如第二方面提供的深度估计方法。
第四方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在训练设备上运行时,使得训练设备执行如第一方面提供的单目深度估计模型生成方法。
第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在训练设备上运行时,使得电子设备执行如第二方面提供的深度估计方法。
第六方面,本申请提供一种计算机程序产品,该计算机程序产品包含可执行指令,当该计算机程序产品在训练设备上运行时,使得训练设备执行如第一方面提供的单目深度估计模型生成方法。
第七方面,本申请提供一种计算机程序产品,该计算机程序产品包含可执行指令,当该计算机程序产品在电子设备上运行时,使得电子设备执行如第二方面提供的深度估计方法。
可以理解地,上述提供的第三方面至第七方面提供的技术方案所能达到的有益效果,可参考第一方面和第二方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1为现有技术提供的神经辐射场模型的工作原理示意图;
图2为本申请实施例提供的现有单目深度估计模型的效果示意图;
图3为本申请实施例提供的一种单目深度估计模型的生成方案的原理示意图;
图4为本申请实施例提供的一种单目深度估计模型的生成方案的实施环境示意图;
图5为本申请实施例提供的一种电子设备的结构示意图;
图6为本申请实施例提供的一种电子设备的软件架构示意图;
图7为本申请实施例提供的一种训练设备的结构示意图;
图8为本申请实施例提供的一种神经辐射场模型的生成方法的流程示意图;
图9为本申请实施例提供的一种NeRF模型的结构示意图;
图10为本申请实施例提供的一种神经辐射场模型的生成方法的原理示意图;
图11为本申请实施例提供的另一种神经辐射场模型的生成方法的流程示意图;
图12为本申请实施例提供的一种单目深度估计模型生成方法的流程示意图;
图13为本申请实施例提供的另一种单目深度估计模型生成方法的原理示意图;
图14为本申请实施例提供的另一种单目深度估计模型生成方法的流程示意图;
图15为本申请实施例提供的一种深度估计方法的流程示意图;
图16为本申请实施例提供的一种AR界面示意图;
图17为本申请实施例提供的另一种训练设备的结构示意图;
图18为本申请实施例提供的另一种电子设备的结构示意图;
图19为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
本申请以下实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了便于清楚描述本申请实施例的技术方案,以下,对本申请实施例中所涉及的部分术语和技术进行简单介绍:
RGB:RGB色彩模式(也翻译为“红绿蓝”)是工业界的一种颜色标准,是通过对红(Red)、绿(Green)、蓝(Blue)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。RGB值就是指某个像素的三个通道的,并使用整数来表示。通常情况下,RGB值各有256个,从0、1、2...直到255。其中,虽然数字最高是255,但0也是数值之一,因此共256个。例如某个像素的RGB值可以为(122,255,0)。
位姿:即位置和姿态,是刚体在空间中的位置和其自身的姿态,相机位姿即相机在空间中的位置和相机的朝向。
法向量:控件解析几何的一种概念。垂直于平片的之间所表示的向量即为该平面的法向量。本申请实施例中,某个像素的法向量,即为该像素对应的实际区域所在的平面的法向量。
神经辐射场(或称为5D神经辐射场):Representing Scenes as Neural RadianceFields for View Synthesis,简称NeRF,是一种三维场景的隐式表示。其可以通过神经网络对已知相机参数的图像进行学习,得到一个静态的三维场景。NeRF对可以对现实场景进行非显式表达,基于离散角度拍摄的二维图片,可以渲染出全角度的高拟真度场景图片,可以完整高拟真的保留现实场景中各个物体之间的几何关系(可以称为几何约束)。
具体的,在现有的针对特定场景的NeRF模型训练的过程中,NeRF模型会对每次输入的相机位姿进行处理,得到该相机位姿情况下每个像素发出的光线。之后则通过特定的采样方式,在每个像素的光线上进行采样,得到采样点的颜色c和体素密度σ。其中,体素密度用于反映采样点位置处的粒子密度,或者可以认为是光线碰撞到粒子的概率。
示例性的,在训练NeRF模型时,首先会输入某张或多张拍摄图像的相机位姿,基于这些相机位姿, NeRF模型则会构建如图1中(a)所示的3d场景(或可称为神经辐射场),并确定以相机位置为终点的每个像素的光线,如图1中(a)所示的两条直线。之后,便可以对每个像素的光线中的空间点进行采样,得到一些空间点(即图1中(a)所示的直线上的小黑点)的位置position和方向direction。其中,位置为该空间点的位置坐标(x,y,z),方向则为该空间点对应的相机的拍摄方向包括俯仰角θ和水平角φ。
之后,如图1中(b)所示,该NeRF模型可以基于映射函数(具体由NeRF中的多层感知机(multilayer perceptron,MLP)实现相应功能),得到各个空间点(或称为采样点)的颜色值c和体素密度σ。
之后,NeRF模型则可以基于立体渲染算法,利用某个像素的光线上各个空间点的颜色c和体素密度σ得到一张图像。具体的,立体渲染算法可以是采用特定的体渲染方程(classical valume rendering)得到像素(或者像素对应的光线)的最终像素值(例如RGB值)。
示例性的,本申请实施例中,体渲染算法包括以下公式(1)和公式(2):
(1)
(2)
其中,为光线r的像素值或者像素值,/>为光线r从/>到/>的累计透射率(即光线r从/>传播到/>的过程中不撞击到其他粒子的概率),/>为光线r的自发光颜色,d为光线r的传播方向,/>为光线r在传播至t处时粒子的密度。
再之后,则可以基于该NeRF模型得到的各像素的像素值,与该相机位姿下真实图片的像素值(即监督信息)计算损失值。之后,则基于该损失值对该NeRF模型进行调整。重复上述步骤直至损失值小于预设阈值时,则NeRF模型训练完成。
需要说明的是,在对在每个像素的光线进行采样(本申请中可以称为体素采样)时,如果要连续采样则由于NeRF模型中的多层感知机仅恶意在一些固定的离散位置集上执行,所以上述公式(1)和公式(2)无法在NeRF模型训练过程中使用。所以,实际中采样过程可以是先如图1中(c)所示,将光线Ray分为多段,每段随机采样一个点后计算得出每一段的概率密度函数,即得出能够反映每一段光线中体素密度的函数。此时,体渲染算法则为以下公式(3)和公式(4):
(3)
(4)
其中,为光线r的像素值或者像素值,/>为相邻采样点(或空间点)之间的距离,/>为由光纤r的起始点触发的第i个采样点的像素值,/>为光线r传播至第i个采样点的累计透射率,N为光线r上的采样点个数。
之后,基于每一段光线的概率密度函数,参照图1中(d)所示,可以针对性的对某些存在真实物体的区域中进行二次采样(具体可以是逆变换采样),得出更多对该光束对应的像素的像素值计算有价值的采样点的体素密度。计算公式和上述公式(3)和公式(4)相同。这个两次采样的过程可以称为由粗到细coarse to fine。
进一步的,为了减少计算量,实际中可以提前利用NeRF模型的训练数据中的多帧图像计算得出特定场景的稀疏深度图(即部分像素有准确深度指的深度图),并将该稀疏深度图作为NeRF模型训练过程中进行光线采样时的依据。基于该稀疏深度图,NeRF模型训练过程中的光线采样便可以直接对存在实际物体的区域进行更多的采样,没有实际物体的区域则进行较少采样,提高采样效率的同时提高NeRF模型的训练效率。
目前,在基于由单目摄像头获取的拍摄图像实现AR功能的过程中,电子设备需要首先对拍摄图像中物体的深度信息进行估计。进而根据拍摄图像中的深度信息结合使用场景,确定虚拟物体在拍摄图像中的具体深度,进而在电子设备显示该拍摄图像的显示界面中合理的位置显示该虚拟物体。其中,深度信息的估计需要使用预先训练得到的单目深度估计模型。但是,现有的单目深度估计模型对不同拍摄图像中相同物体深度的估计存在偏差(例如连续两帧或者不同视角下的拍摄图像中同一物体的深度估计值不同),这样就使得依据该深度信息确定的虚拟物体的深度信息不准确(或称为深度估计在时序维度不一致)。在用户使用电子设备连续拍摄多帧图像时,由于电子设备使用的单目深度估计模型的深度估计不够准,使得多帧图像中的同一虚拟物体与真实物体之间的遮挡关系产生改变。
例如,以虚拟物体为马为例,如图2中(a)所示的四张深度图像中,由于四帧图像中对图像中物体的深度信息产生了改变,所以导致“马”的身体在第一帧图像frame1和第二帧图像frame2中处于未被物体遮挡的状态,而在第三帧图像frame3和第四帧图像frame4中处于被物体遮挡的状态。又例如,以虚拟物体为篮球为例,如图2中(b)所示的两帧连续的AR图像中,第一帧AR图像F1中,篮球在人物的手掌中,而第二帧AR图像F2中,篮球则部分在人物的手掌中,部分则被手掌遮挡。
可见,现有的单目深度估计模型会使得电子设备基于AR功能拍摄的连续两帧图像中虚拟物体和真实物体之间的遮挡关系存在差异,也严重影响了用户对AR功能的使用体验。
针对上述问题,本申请提供一种单目深度估计模型的生成方案,参照图3所示,在该方案中可以应用于能够对模型进行训练的电子设备或服务器中。参照图3所示,在该方案中,首先可以利用多个视角的样本拍摄图像及其位姿训练得出对应目标场景的NeRF模型。其中,样本拍摄图像为目标场景的图像,多个视角的样本拍摄图像中不同的样本拍摄图像的视角不同(或者相机拍摄时相机的位姿不同)。目标场景则可以为需要对拍摄图像进行深度估计的场景,例如商场、住宅楼、房间等。之后,利用该NeRF模型可以得出能够指示目标场景中各个物体之间的几何约束的法向量图。再之后,则可以基于该多个视角的样本拍摄图像、多个视角的样本拍摄图像的真实深度信息和该法向量图,训练针对目标场景的目标单目深度估计模型。其中,多个视角的样本拍摄图像的真实深度信息和该几何约束信息作为训练过程中的监督信息。由于该法向量图是可以反映出目标场景中所有物体之间的几何约束,而目标场景的图像无论是什么视角拍摄的,其中物体之间的几何约束必然是相同的。所以,以该法向量图作为监督信息,可以使得最终训练得到的单目深度估计模型在对时间和/或视角不同的目标场景的拍摄图像进行深度估计时,估计结果差异很小。也就是说,本申请实施例提供的技术方案,可以提高了单目深度估计模型的估计精度和时序一致性。
下面结合附图对本申请实施例提供的技术方案进行详细表述。
本申请提供的技术方案可以应用在如图4所示的实施环境中。参照图4所示,该实施环境中可以包括有训练设备01和电子设备02。训练设备01和电子设备02之间可以采用有线通讯或无线通讯的方式建立通信连接。
其中,训练设备01首先获取目标场景的多个视角的拍摄图像、每个拍摄图像对应的位姿信息以及每个拍摄图像对应的真实(ground truth,GT)深度图。其中,每个拍摄图像对应的视角是不同的,即每个拍摄图像对应的拍摄位姿(即拍摄图像的相机的位姿)是不相同的。GT深度图为能够反映拍摄图像中每个物体真实深度的图像。目标场景的多个视角的拍摄图像可以是由图像采集设备采集得到的。以图像采集设备为电子设备为例,电子设备可以通过对目标场景拍摄完整的视频,进而从该视频确定出目标场景的多个视角的拍摄图像;或者电子设备可以基于预先确定好的多个位姿,以多个位姿中的每个位姿为基准拍摄目标场景,从而得到目标场景的多个视角的拍摄图像。多个视角的拍摄图像的位姿信息和GT深度图则可以采用任意可行的方式得到,例如实际测算相机位姿,利用位姿确定模型确定位姿信息,实际测算每个拍摄图像中各个物体的深度信息等。本申请对此不做具体限制。
之后,训练设备01可以基于多个视角的拍摄图像以及每个拍摄图像对应的位姿信息训练得出对应目标场景的NeRF模型。再之后,训练设备01可以利用该NeRF模型得到每个拍摄图像对应的法向量图。其中,法向量图为能够反映拍摄图像中每个物体的法向量。
再之后,训练设备01可以基于多个视角的拍摄图像、每个拍摄图像对应的真实(ground truth,GT)深度图以及每个拍摄图像对应的法向量图,训练得出针对目标场景的目标单目深度估计模型。在训练单目深度估计模型的过程中,GT深度图和法向量图是作为监督信息使用的。
训练设备01训练得到目标单目深度估计模型后,便可以向电子设备02发送该目标单目深度估计模型,以使得电子设备01在目标场景使用AR功能的情况,准确的对拍摄画面中的物体深度进行准确估计,避免因为深度估计不准确导致拍摄画面中,虚拟物体与真实物体的遮挡关系在时间维度产生变化,影响用户的使用体验。
当然,在本申请实施例中,若电子设备02的计算资源和存储资源足够,上述训练设备01训练目标单目深度估计模型的过程也可以由电子设备02实施,本申请对此不做具体限制。
可以理解的,上述的电子设备02和训练设备01可以为两个分离的设备,也可以是同一个设备。本申请对此不做具体限制。
示例性的,本申请实施例中的电子设备可以为手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificial intelligence, AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备等具备AR导航功能的电子设备,本申请实施例对该电子设备的具体类型不作特殊限制。
示例性的,以电子设备为手机为例,图5示出了本申请实施例提供的一种电子设备的结构示意图。
如图5所示,该电子设备可具有多个摄像头293,例如前置普通摄像头,前置低功耗摄像头,后置普通摄像头,后置广角摄像头等等。此外,该电子设备可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,显示屏294,以及用户标识模块(subscriberidentification module,SIM)卡接口295等。其中,传感器模块280可以包括陀螺仪传感器280A,磁传感器280B,加速度传感器280C,接近光传感器280D,指纹传感器280E,温度传感器280F,触摸传感器280G,环境光传感器280H等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
外部存储器接口220可以用于连接外部的非易失性存储器,实现扩展电子设备的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
内部存储器221可以包括一个或多个随机存取存储器(random access memory,RAM )和一个或多个非易失性存储器(non-volatile memory, NVM)。随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。在本申请实施例中,内部存储器221可以存储有电子设备在使用AR功能时对应多个场景(例如商场、房间、马路、游乐场等)的单目深度估计模型。
触摸传感器280G,也称“触控器件”。触摸传感器280G可以设置于显示屏194,由触摸传感器280G与显示屏294组成触摸屏,也称“触控屏”。触摸传感器280G用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏294提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器280 G也可以设置于电子设备的表面,与显示屏294所处的位置不同。
在一些实施例中,电子设备可以包括1个或N个摄像头293,N为大于1的正整数。在本申请实施例中,摄像头293的类型可以根据硬件配置以及物理位置进行区分。例如,摄像头293所包含的多个摄像头可以分别置于电子设备的正反两面,设置在电子设备的显示屏294那一面的摄像头可以称为前置摄像头,设置在电子设备的后盖那一面的摄像头可以称为后置摄像头;又例如,摄像头293所包含的多个摄像头的焦距、视角不同,焦距短、视越大的摄像头可以称为广角摄像头,焦距长、视角小的摄像头可以称为普通摄像头。在本申请实施中,电子设备具备的摄像头均为单目摄像图,电子设备使用自身配置的摄像头拍摄的图像无法直接的表现出拍摄图像中各个物体的深度信息。
电子设备通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像编辑的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
电子设备可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。
显示屏294用于显示图像,视频等。显示屏294包括显示面板。在一些实施例中,电子设备可以包括1个或N个显示屏294,N为大于1的正整数。
本申请实施例中,显示屏294可用于显示电子设备的界面(例如,相机预览界面、AR界面等),并在该界面中显示来自任一个或多个摄像头293拍摄的图像,或者还可以用于显示用于AR导航的虚拟图像。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。
电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器521,显示屏294,摄像头293,和无线通信模块260等供电。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
移动通信模块250可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。
无线通信模块260可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bltooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和电子设备的接触和分离。电子设备可以支持一个或多个SIM卡接口。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口295可以同时插入多张卡。SIM卡接口295也可以兼容外部存储卡。电子设备通过SIM卡和网络交互,实现通话以及数据通信等功能。
当然,可以理解的,上述图5所示仅仅为电子设备的形态为手机时的示例性说明。若电子设备是平板电脑,手持计算机,PC,PDA,可穿戴式设备(如:智能手表、智能手环)等其他设备形态时,电子设备的结构中可以包括比图5中所示更少的结构,也可以包括比图5中所示更多的结构,在此不作限制。
可以理解的是,一般而言,电子设备功能的实现除了需要硬件的支持外,还需要软件的配合。电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的系统为例,示例性说明电子设备的软件结构。
图6为本申请实施例提供的电子设备的软件系统的分层架构示意图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。
如图6所示,以电子设备使用的系统为系统为例,在本申请实施例中,将电子设备的软件分为四层,从上至下分别为应用程序层,框架层,系统库和安卓运行时(android runtime),HAL层(hardware abstraction layer,硬件抽象层)以及驱动层(或称为内核层)。
其中,应用程序层可以包括一系列的应用程序。如图5所示,应用程序层可以包括相机、导航、图库、日历、地图、WLAN、蓝牙、音乐、视频、短信息、通话等应用程序。
其中,至少一个应用(例如视屏应用、相机应用、导航应用等)中可以具备有AR功能,在开启AR功能时相机应用也会被调用完成AR功能。框架层可以为应用程序层的应用程序提供应用编程接口(application programming interface,API)和编程框架。框架层包括一些预先定义的函数。例如可以包括活动管理器、窗口管理器,视图系统,资源管理器,通知管理器,音频服务,相机服务等,本申请实施例对此不做任何限制。
系统库可以包括多个功能模块。例如:表面管理器(surface manager) ,媒体库(Media Libraries),OpenGL ES,SGL等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。OpenGL ES用于实现三维图形绘图,图像渲染,合成,和图层处理等。SGL是2D绘图的绘图引擎。
安卓运行时(android runtime)包括核心库和虚拟机。android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
HAL层是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。HAL层提供标准界面,向更高级别的 Java API 框架(即框架层)显示设备硬件功能。HAL 层包含多个库模块,其中每个模块都为特定类型的硬件组件实现一个界面,例如:audio HAL音频模块,bluetooth HAL蓝牙模块,camera HAL相机模块,sensors HAL传感器模块(或称为Isensor service,传感器服务)。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动等,本申请不做限定。
示例性的,本申请提供的训练设备可以是一台服务器,也可以是多台服务器组成的服务器集群,或者是一个云计算服务中心,本申请对此不做具体限制。
示例性的,以训练设备为服务器为例,图7示出了一种服务器的结构示意图。参照图6所示,该服务器包括一个或多个处理器701,通信线路702,以及至少一个通信接口(图6中仅是示例性的以包括通信接口703,以及一个处理器701为例进行说明),可选的还可以包括存储器704。
处理器701可以是一个通用中央处理器(central processing unit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。
通信线路702可包括通信总线,用于不同组件之间的通信。
通信接口703,可以是收发模块用于与其他设备或通信网络通信,如以太网,RAN,无线局域网(wireless local area networks,WLAN)等。例如,收发模块可以是收发器、收发机一类的装置。可选的,通信接口703也可以是位于处理器701内的收发电路,用以实现处理器的信号输入和信号输出。
存储器704可以是具有存储功能的装置。例如可以是只读存储器(read-onlymemory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路702与处理器相连接。存储器也可以和处理器集成在一起。
其中,存储器704用于存储执行本申请方案的计算机执行指令,并由处理器701来控制执行。处理器701用于执行存储器704中存储的计算机执行指令,从而实现本申请实施例中提供的单目深度估计模型生成方法。
或者,可选的,本申请实施例中,也可以是处理器701执行本申请下述实施例提供的行为识别模型生成方法中的处理相关的功能,通信接口703负责与其他设备(例如电子设备)或通信网络通信,本申请实施例对此不作具体限定。
可选的,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
在具体实现中,作为一种实施例,处理器701可以包括一个或多个CPU,例如图7中的CPU0和CPU1。
在具体实现中,作为一种实施例,服务器可以包括多个处理器,例如图7中的处理器701和处理器707。这些处理器中的每一个可以是一个单核(single-core)处理器,也可以是一个多核(multi-core)处理器。这里的处理器可以包括但不限于以下至少一种:中央处理单元(central processing unit,CPU)、微处理器、数字信号处理器(DSP)、微控制器(microcontroller unit,MCU)、或人工智能处理器等各类运行软件的计算设备,每种计算设备可包括一个或多个用于执行软件指令以进行运算或处理的核。
在具体实现中,作为一种实施例,该服务器还可以包括输出设备705和输入设备706。输出设备705和处理器701通信,可以以多种方式来显示信息。例如,输出设备705可以是液晶显示器(liquid crystal display,LCD),发光二极管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备706和处理器701通信,可以以多种方式接收用户的输入。例如,输入设备706可以是鼠标、键盘、触摸屏设备或传感设备等。
上述服务器可以是一个通用设备或者是一个专用设备。例如该服务器可以是台式机、便携式电脑、网络服务器、掌上电脑(personal digital assistant,PDA)、移动手机、平板电脑、无线终端设备、嵌入式设备、上述终端设备,上述网络设备、或具有图6中类似结构的设备。本申请实施例不限定服务器的类型。
以下实施例中的方法均可以在具有上述硬件结构的电子设备或训练设备中实现。
首先,为了实现本申请实施例中单目深度识别模型的生成方法的顺利实施,本申请实施例首先提供一种神经辐射场模型的生成方法。该方法可以应用于前述实施例中提到的训练设备中。参照图8所示,该方法可以包括S801和S802:
S801、训练设备获取目标场景的多个视角的样本拍摄图像中,每个样本拍摄图像的位姿信息和像素值。
其中,样本拍摄图像的位姿信息为拍摄该样本拍摄图像的相机(或者摄像头)在真实空间中的位置和朝向。示例性的,样本拍摄图像的像素值具体可以是RGB值。
在本申请实施例中,目标场景为实际的3D场景,例如商场场景、商店场景、住宅场景、马路场景等。目标场景的多个视角的样本拍摄图像指不同视角下目标场景对应的二维图像。
示例性的,训练设备可以从图像采集设备或者具备拍摄功能的电子设备处获取目标场景的多个视角的拍摄图像作为样本拍摄图像,或者训练设备还可以从网络上获取目标场景的多个视角的拍摄图像作为样本拍摄图像。
以训练设备是从电子设备处获取该多个视角的样本拍摄图像为例,在一些实施例中,电子设备可以是从本地存储的资源中获取到目标场景的多个视角的样本拍摄图像。电子设备本地存储的资源可以是电子设备通过电子设备的相机进行拍摄得到目标场景的多个视角的拍摄图像或者针对目标场景的全方位视角的视频。在本地资源存储的资源为目标场景的全方位视频的情况下,电子设备可以获取将视频中的多个关键帧作为样本拍摄图像。
在一种可能的实现方式中,电子设备可以按照特定时间间隔在目标场景中视频中抽帧,得到关键帧。在另一种可能的实现方式中电子设备可以先按照特定时间间隔在目标场景中视频中抽帧得到初始关键帧后,将初始关键帧中清晰度小于清晰度预设的初始关键帧删除,并对相似度大于相似度预设的多个初始关键帧进行去重,从而得到最终的关键帧。示例性的,特定时间间隔可以与视频中电子设备的移动速度负相关,本申请对特定时间间隔的大小不做具体限定。清晰度阈值和相似度阈值可以根据实际需求而定,例如清晰度阈值可以为85%或90%等数值,相似度阈值可以为90%或95%等数值,本申请对此不做具体限制。
在另一些实施例中,电子设备还可以通过其他电子设备获取目标场景的多个视角的拍摄图像作为训练设备需要的样本拍摄图像。其他电子设备获取目标场景的多个视角的拍摄图像的实现方式和电子设备获取目标场景的多个视角的拍摄图像的方式类似,此处不再赘述。
在本申请实施例中,为了使得最终训练得出的目标NeRF模型的效果更好,S801中需要获取足够多的不同视角的样本拍摄图像,具体数量可以根据训练设备所具备的计算资源数量决定,本申请对此不做具体限制。
在本申请实施例中,训练设备可以在获取到样本拍摄图像的同时,还会获取到样本拍摄图像的位姿信息和像素值。样本拍摄图像的位姿信息和像素值可以是在获取样本拍摄图像时获取,也可以在获取到样本拍摄图像后利用样本拍摄图像获取。从样本拍摄图像直接识别或解析获取像素值和位姿信息的方式可以是任意可行方式,本申请对此不做具体限制。
以训练设备从电子设备处获取样本拍摄图像为例,电子设备在从本地资源或者其他电子设备得到样本拍摄图像后,可以基于任意可行的计算方式得到样本拍摄图像的位姿信息和像素值。
例如,电子设备可以使用特征检索匹配算法和增量重建算法,获取样本拍摄图像的位姿信息;或者电子设备可以利用不同的样本拍摄图像确定两个样本拍摄图像的相机相对姿态(用于表征相机在拍摄两个样本拍摄图像时相对位置和拍摄角度的差异),之后基于相机相对位置可以得到虚拟双目图像,从而确定出样本拍摄图像的位姿信息。又例如,电子设备可以将样本拍摄图像按照一定规则转换为两张图像,然后基于三角测距原理计算该样本拍摄图像中各个像素的深度信息。
当然,为了使得作为监督信息的位姿信息更准确,若样本拍摄图像是电子设备拍摄得出的,则电子设备在拍摄样本拍摄图像时,可以由人工确定位姿信息。
需要说明的是,本申请实施例中,样本拍摄图像均为单目摄像头拍摄的图像。
S802、训练设备以样本拍摄图像的位姿信息作为训练数据,样本拍摄图像的像素值作为监督信息,迭代训练初始NeRF模型,得到目标NeRF模型。
其中,初始NeRF模型的框架可以是全连接神经网络。参照图9所示,初始NeRF模型的框架可以为由10层全连接层构成的全连接神经网络。其中,前八层全连接层可以对输入的位姿信息进行处理,输出该位姿信息对应的所有像素发出光线中各采样点的颜色信息和体素密度。后两层全连接层则可以基于前八层得到的颜色信息和体素密度,计算得出该相机位姿对应的所有像素的像素值(即RGB值)。当然,实际中初始NeRF模型的框架可以是其他任意可行的框架,本申请对此不做具体限制。
在一些实施例中, S802具体可以包括如下步骤:
S11、训练设备初始化初始NeRF模型。
其中,初始化初始NeRF模型具体可以是依据任意可行的初始化方法初始化该初始NeRF模型中的权值参数和偏置参数等参数。常用的初始化方法有四种,分别是高斯初始化、Xavier初始化、MSRA初始化和He初始化。一般都是把偏置参数初始化为0,对权值参数进行随机初始化。具体的初始化过程本申请不再详细介绍。
S12、训练设备将样本拍摄图像的位姿信息输入初始NeRF模型,得到预测图像。
其中,预测图像中携带有预测图像中各个像素的像素值。S12步骤中的样本拍摄图像可以为多个视角的样本拍摄图像中的任一个或多个。
在训练设备将位姿信息输入初始NeRF模型中后,初始NeRF模型基于该位姿信息为构建目标场景的神经辐射场,并对该位姿信息对应的每个像素的光线进行采样,进而得到每个像素的光线上各采样点的颜色值和体素密度。之后,基于这些颜色值和体素密度,通过体渲染算法得到个像素的像素值。具体实现可以参照前述实施例中,针对神经辐射场的术语解释后的相关内容,此处不再赘述。
S13、训练设备根据预测图像的像素值和样本拍摄图像数据的像素值,确定渲染损失值。
其中,渲染损失值具体可以是依据任意可行的渲染损失函数得到的。示例性的,渲染损失函数可以如下公式(5):
;
其中,为渲染损失值,/>为像素数量,/>为样本拍摄图像的第i个像素的像素值,为预测图像的第i个像素的像素值。其中,样本拍摄图像的第i个像素和预测图像的第i个像素在各自图像中的位置相同。
S14、训练设备根据渲染损失值迭代更新初始NeRF模型,以得到目标NeRF模型。
具体的,该S14步骤可以是依据渲染损失值对初始NeRF模型进行调参(调整权重参数和偏置参数等),每次调参后则重复执行S12-S14步骤,直至渲染损失值小于预设渲染损失值的情况下,将当前的初始NeRF模型确定为目标NeRF模型。每次重复执行2-4步骤时,输入至初始NeRF模型的位姿信息是不同的样本拍摄图像的位姿信息。预设渲染损失值可以是根据经验得出的,可以认为在渲染损失值小于预设渲染损失值的情况下,该目标NeRF模型基于给定位姿信息生生成相应的目标场景的拍摄图像与实际图像的误差属于可接受的范围。
基于上述S801和S802对应的技术方案,可以通过监督学习的方式,训练得到目标NeRF模型。该目标NeRF模型则具备利用位姿信息得到在以该位姿信息对目标场景拍摄的拍摄图像的能力。为后续单目深度估计模型中的监督信息的来源提供了数据支持。
在一些实施例中,为了提高NeRF模型训练过程中,NeRF模型对像素点的光线上的采样效率和采样点对对最终模型效果的积极效果,参照图10所示,可以使用样本拍摄图像的GT深度图作为NeRF模型进行体素采样的先验信息,指导NeRF模型的体素采样过程,提高采样效率。基于此,结合图8,参照图11所示,S801具体可以为S801a,S801和S802之间还包括S801A,S802具体可以为S802a:
S801a、训练设备获取目标场景的多个视角的样本拍摄图像中,每个样本拍摄图像的位姿信息、每个样本拍摄图像的像素值和每个样本拍摄图像的GT深度图。
其中,样本拍摄图像的GT深度图用于表征样本拍摄图像中各个物体的深度信息。
训练设备获取样本拍摄图像的方式可以参照前述实施例中S801的相关表述,此处不再赘述。
训练设备获取样本拍摄图像的位姿信息和像素值的具体实现可以参照前述实施例中S S801的相关表述,此处不再赘述。
在本申请实施例中,训练设备可以在获取到样本拍摄图像的同时,还会获取到样本拍摄图像的GT深度图。样本拍摄图像的GT深度图可以是在获取样本拍摄图像时获取。
以训练设备从电子设备处获取样本拍摄图像为例,电子设备可以在对目标场景拍摄得到样本拍摄图像是,人为检测或者通过深度传感器得到每张样本拍摄图像的GT深度图。
S801A、训练设备基于样本拍摄图像的GT深度图,确定目标采样策略。
具体的,这里的目标采样策略为NeRF模型在训练过程中对像素的光线上的空间点进行采样(本申请中可以称为体素采样)时使用的策略。本申请实施例中,每个样本拍摄图像均会得到一个目标采样策略。
S802a、训练设备以样本拍摄图像的位姿信息作为训练数据,样本拍摄图像的像素值作为监督信息,目标采样策略作为初始NeRF模型进行体素采样的采样策略,迭代训练初始NeRF模型,得到目标NeRF模型。
其中,初始NeRF模型的框架具体实现可以如前述实施例中S802的相关表述,此处不再赘述。
需要说明的是,在一些实施例中,训练设备可以直接基于样本拍摄图像的GT深度图指示NeRF模型的体素采样过程,而不需要预先生成目标采样策略。实际中具体如何使用样本拍摄图像的GT深度图指导NeRF模型的体素采样过程可以是任意可行的方式,本申请对此不做具体限制。
在一些实施例中, S802a具体可以包括如下步骤:
S21、训练设备初始化初始NeRF模型。
其中,初始化初始NeRF模型的具体实现可以参照前述实施例中S11的相关表述,此处不再赘述。
S22、训练设备将目标采样策略和样本拍摄图像的位姿信息输入初始NeRF模型,得到预测图像。
其中,预测图像中携带有预测图像中各个像素的像素值。S22步骤中的样本拍摄图像可以为多个视角的样本拍摄图像中的任一个或多个。
在训练设备将位姿信息输入初始NeRF模型中后,初始NeRF模型基于该位姿信息为构建目标场景的神经辐射场,并对该位姿信息对应的每个像素的光线采用目标采样策略进行采样,进而得到每个像素的光线上各采样点的颜色值和体素密度。之后,基于这些颜色值和体素密度,通过体渲染算法得到个像素的像素值。具体实现可以参照前述实施例中,针对神经辐射场的术语解释后的相关内容,此处不再赘述。
S23、训练设备根据预测图像的像素值和样本拍摄图像数据的像素值,确定渲染损失值。
其中,渲染损失值计算的具体实现可以参照前述实施例中S13的相关表述,此处不再赘述。
S24、训练设备根据渲染损失值迭代更新初始NeRF模型,以得到目标NeRF模型。
具体的,该S24步骤的具体实现可以参照前述实施例中S14的相关表述,此处不再赘述。
基于上述S801a、S801A和S802a对应的技术方案,可以在以监督学习的方式,训练NeRF模型的基础上,使用的样本拍摄图像GT深度图得出目标采样策略,并以该目标采样策略指导NeRF模型的体素采样过程。因为样本拍摄图像的GT深度能够准确反映出样本拍摄图像中各个物体所处的位置,所以该目标采样策略可以指导NeRF模型体素采样时采样点的选择更合适,提高了采样效率。进一步的,由于NeRF模型体素采样时采样点的选择更合适也使得NeRF模型基于体素采样结果(采样点的颜色值和体素密度)得到的像素的像素值更准确,提高了最终训练得到的目标NeRF模型的效果。更进一步的,也为后续单目深度估计模型中的监督信息的来源提供了更有利的数据支持。
下面结合附图对本申请实施例提供的单目深度估计模型生成方法进行介绍。
本申请提供一种单目深度估计模型生成方法可以应用于如前述实施例中提到的训练设备中。参照图12所示,该单目深度估计模型生成方法具体可以包括S121-S123:
S121、训练设备获取目标场景的多个视角的样本拍摄图像和每个样本拍摄图像的GT深度图。
其中,训练设备获取样本拍摄图像以及每个样本拍摄图像的GT深度图可以参照前述实施例中S801和S801a的相关表述,此处不再赘述。
S122、训练设备获取目标场景的几何约束。
其中,目标场景的几何约束用于表征目标场景中各个物体之间的位置和大小等空间几何关系。
在本申请实施例中,几何约束可以是任意可行的表现形式,例如法向量图、特定三维点坐标等。
本申请实施例中获取几何约束的方式可以是任意可行的方式,例如采用代数方法对目标场景的集合约束进行计算,符号法、规则法、图构造法、利用可以生成结合约束的模型得出几何约束等。
需要说明的是,在本申请实施例中,S121和S122没有必然的先后顺序,可以S121先执行,也可以是S122先执行,还可以是S121和S122同时执行,本申请对此不做具体限制。
在一些实施例中,以几何约束为法向量图为例,参照图13所示,训练设备可以是利用体现训练好的针对目标场景的目标NeRF模型得出样本拍摄图像的法向量图,进而使用该法向量图作为一种监督信息对单目深度估计模型的训练进行监督学习。基于此,结合图12,参照图14所示,在几何约束为法向量图的情况下,S122具体可以为S122A:
S122A、训练设备利用目标NeRF模型获取样本拍摄图像的法向量图。
其中,目标NeRF模型为采用前述实施例中神经辐射场模型的生成方法提前生成的对应目标场景的NeRF模型。
实际中NeRF模型中本身会隐性表征目标场景的整个三维特征,而某个样本拍摄图像的法向量图主要用于表征在以该样本拍摄图像对应的相机拍摄位姿拍摄该目标场景时,目标场景中各个物体的每一点的法向量法向。所以在对NeRF模型中的特定参数调整后,便可以通过向目标NeRF模型输入样本拍摄图像的位姿信息,得到样本拍摄图像的法向量图。其中,样本拍摄图像的位姿信息的获取方式可以参照前述实施例中S801的相关表述,此处不再赘述。
此外,由于样本拍摄图像是目标场景的一种2d投影表达,表达过程中由于各类不确定情况的影响,基于该样本拍摄图像的位姿信息得到的法向量图可能是存在一定偏差的。基于此,在利用目标NeRF模型得到法向量图时,可以向目标NeRF模型输入多个位姿信息。该多个位姿信息中包括该样本拍摄图像对应的位姿信息,以及与该位姿信息指示的位姿距离小于预设距离的多个其他位姿信息。之后,可以得到多个法向量图。基于该多个法向量图,通过一致性检查后,得到更为准确的对应样本拍摄图像的法向量图。其中,一致性检查的依据是相同物体的法向量会因为位姿的变化产生固定的变化,基于此可以利用多个法向量图中相同物体的法向量来确定样本拍摄图像对应的法向量图中该物体的法向量是否存在错误。如果存在错误,则可以利用错误法向量对应的像素的周围像素的法向量对该错误的法向量进行修正。最终便可以得到更为精准的样本拍摄图像的法向量图。
在另一些实施例中,训练设备还可以在基于样本拍摄图像,利用任意可行的算法得出该样本拍摄图像的法向量图。例如颜色梯度算法和深度梯度算法。本申请对此不做具体限制。
基于上述S122A对应的技术方案,训练设备便可以利用目标NeRF模型得到样本拍摄图像的准确的法向量图,并使用该法向量图作为单目深度估计模型训练时使用的监督信息。由于该法向量图是可以反映出目标场景中所有物体之间的几何约束,而目标场景的图像无论是什么视角拍摄的,其中物体之间的几何约束必然是相同的。所以,以该法向量图作为监督信息,可以使得最终训练得到的单目深度估计模型在对时间和/或视角不同的目标场景的拍摄图像进行深度估计时,估计结果差异很小。
S123、训练设备以样本拍摄图像作为训练数据,样本拍摄图像的GT深度图和样本拍摄图像的几何约束作为监督信息,迭代训练初始单目深度估计模型,得到目标单目深度估计模型。
其中,初始单目深度估计模型的框架可以是任意可行的神经网络模型框架,例如U-net模型框架、全卷积神经模型框架等。本申请对此不做具体限制。
在一些实施例中,以几何约束为利用目标NeRF模型得出法向量图为例, S123具体可以包括如下步骤:
1、训练设备初始化初始单目深度估计模型。
其中,初始化初始单目深度估计模型具体可以是依据任意可行的初始化方法初始化该初始单目深度估计模型中的权值参数和偏置参数等参数。常用的初始化方法有四种,分别是高斯初始化、Xavier初始化、MSRA初始化和He初始化。一般都是把偏置参数初始化为0,对权值参数进行随机初始化。具体的初始化过程本申请不再详细介绍。
2、训练设备将样本拍摄图像输入初始单目深度估计模型,得到预测深度图和预测法向量图。
其中,输入始单目深度估计模型的样本拍摄图像可以为多个视角的样本拍摄图像中的任一个或多个。预测法向量图可以是利用预测深度图采用任意可行的算法得到的,也可以是由初始单目深度估计模型直接得到的。
3、训练设备根据预测深度图和样本拍摄图像的GT深度图,确定深度损失值。
其中,深度损失值具体可以是依据任意可行的深度损失函数得到的。示例性的,深度损失函数可以如下公式(6):
;
其中,为深度损失值,N为像素数量,/>为样本拍摄图像的第i个像素的深度值,/>为预测深度图中的第i个像素的像素值。其中,样本拍摄图像中的第i个像素和预测深度图中的第i个像素在各自图像中的位置相同。
4、训练设备根据预测法向量图和样本拍摄图像的法向量图,确定法向量损失值。
其中,深度损失值具体可以是依据任意可行的深度损失函数得到的。示例性的,深度损失函数可以如下公式(7):
;
其中,为法向量损失值,N为像素数量,/>为预测法向量图中的第i个像素的法向量,/>为样本拍摄图像的法向量图中的第i个像素的像素值。其中,预测法向量图中的第i个像素和样本拍摄图像的法向量图中的第i个像素在各自图像中的位置相同。
需要说明的是,上述3步骤和4步骤之间没有必然的先后顺序,可以先执行3步骤,也可以先执行4步骤,还可以同时执行3步骤和4步骤,本申请对此不做具体限制。
5、训练设备基于深度损失值和法向量损失值,计算总损失值。
示例性的,总损失值可以是深度损失值和法向量损失值加权平均值。深度损失值和法向量损失值的权值可以根据实际需求而定,本申请对此不做具体限制。
6、训练设备根据总损失值迭代更新初始单目深度估计模型,以得到目标单目深度估计模型。
具体的,该6步骤可以是依据总损失值对初始单目深度估计模型进行调参(调整权重参数和偏置参数等),每次调参后则重复执行2-6步骤,直至总损失值小于预设总损失值(或者深度损失值小于预设深度损失值且法向量损失值小于预设法向量损失值)的情况下,将当前的初始单目深度估计模型确定为目标单目深度估计模型。每次重复执行2-6步骤时,输入至初始单目深度估计模型的样本拍摄图像是不同的。预设总损失值(或者预设深度损失值和预设法向量损失值)可以是根据经验得出的,可以认为在总损失值小于预设总损失值(或者深度损失值小于预设深度损失值且法向量损失值小于预设法向量损失值)的情况下,该目标单目深度估计模型基于某个目标场景的拍摄图像得到的预设深度图与相应的实际深度图的误差属于可接受的范围。
基于上述S121-S123对应的技术方案,可以通过监督学习的方式,训练得到目标单目深度估计模型。该目标单目深度估计模型所采用的监督信息除了常用的GT深度图以外,还用了几何约束,由于该几何约束是可以反映出目标场景中所有物体之间的几何约束,而目标场景的图像无论是什么视角拍摄的,其中物体之间的几何约束必然是相同的。所以,以该几何约束作为监督信息,可以使得最终训练得到的单目深度估计模型在对时间和/或视角不同的目标场景的拍摄图像进行深度估计时,估计结果差异很小。也就是说,本申请实施例提供的技术方案,可以提高了单目深度估计模型的估计精度和时序一致性。
需要说明的是,上述实施例中训练的到的目标NeRF模型和目标单目深度估计模型仅可针对目标场景使用,若使用场景转换,则需要结合对应场景的拍摄图像对上述目标NeRF模型和目标单目深度估计模型重新训练。
在得到目标单目深度估计模型后,训练设备可以将该目标单目深度估计模型发送给电子设备使用,或者在接收到电子设备的对目标场景的深度估计请求时,将该目标单目深度估计模型提供给电子设备使用,从而使得电子设备在目标场景中需要使用AR功能时,利用该目标单目深度估计模型得到更准确的深度信息,从而保证虚拟物体在AR界面中与真实物体之间的遮挡关系时序上一致且准确。基于此,本申请实施例还提供一种深度估计方法,应用如前述实施例中提供的电子设备。以电子设备为手机为例,参照图15所示,该方法可以包括S151-S155:
S151、手机接收用户开启AR功能的开启操作。
在用户需要使用手机的AR功能时,用户可以在任意可能的操作控件上操作以开启手机的AR功能。
S152、手机响应于该开启操作,启动摄像头进行拍摄以显示AR界面。
因为AR功能是需要结合现实场景实现的,所以手机需要开启相机启动摄像头进行拍摄,从而显示AR界面。AR界面中可以包括手机当前所处的现实场景(即当前场景)的图像,以及虚拟物体。此时,由于还未确定现实场景中的物体的深度信息,则虚拟物体可以在AR界面中的任意位置显示,或者不显示,或者显示加载动画。
S153、手机获取当前场景的场景信息,并确定该场景信息对应的第一场景。
其中,场景信息可以包括以下任一种或多种:手机所处位置(或兴趣点poi)、手机的位姿等。
示例性的,手机可以通过自身具备的传感器或者功能,获取手机所处场景的场景信息。例如,手机可以通过导航功能获取手机所处位置,通过手机的位姿传感器获取手机的位姿等。
S154、手机利用与第一场景对应的第一单目深度估计模型,对摄像头拍摄的图像中物体的深度信息进行估计,得到深度估计结果。
其中,第一单目深度估计模型可以是利用前述实施例中提供的单目深度估计模型生成方法得到的对应第一场景的第一单目深度估计模型。
一种可实现的方式中,若第一单目深度估计模型可以是训练设备训练好后直接发送给手机,手机预先存储好的,则S154实施时,手机是从本地存储器中获取的该第一单目深度估计模型。
另一种可实现的方式中,若手机未预先存储有该第一单目深度估计模型,则S154实施前,手机可以向训练设备请求该第一单目深度估计模型,并在接收到该来自训练设备的第一单目深度估计模型后,实施该S154。
又一种可实现的方式中,若手机未预先存储有该第一单目深度估计模型,S154实施时,手机可以将摄像头拍摄的图像实时发送给训练设备,以使训练设备利用第一单目深度估计模型估计图型中的深度信息并返回给手机使用。
S155、手机基于该深度估计结果,确定AR界面中虚拟物体的位置并在AR界面中显示该虚拟物体。
具体的,手机可以首先基于该深度估计结果,以及用户开启的AR功能的具体目的,首先确定虚拟物体与摄像头拍摄的图像中现实物体的遮挡关系,从而决定AR界面中虚拟物体的位置并显示。例如,若用户开启的AR功能具体为AR导航功能,则虚拟物体为虚拟路标,需要一直最上层显示,则确定虚拟物体与摄像头拍摄的图像中现实物体的遮挡关系为虚拟物体在最上层显示。此时,参照图16所示,手机可以将虚拟路标显示在AR界面中所有物体的上层。
基于上述S151-S155对应的技术方案,手机便可以在开启AR功能的情况下,使用预先训练的单目深度估计模型对当前场景中物体的深度信息进行估计。由于该单目深度估计模型是采用前述实施例中提供的单目深度估计模型生成方法训练的,采用的监督信息除了常用的GT深度图以外,还用了几何约束,所以最终训练得到的单目深度估计模型在对时间和/或视角不同的目标场景的拍摄图像进行深度估计时,估计结果差异很小。也就是说,本申请实施例提供的技术方案中使用的单目深度估计模型的估计精度和时序一致性相比于现有技术更好。这样,也就使得手机开启AR功能后,虚拟物体和现实物体之间的遮挡关系在时间维度上不会产生较大改变,且遮挡关系准确,提高了用户的使用体验。
可以理解的是,上述训练设备/电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本申请实施例可以根据上述方法示例对上述电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
参照图17所示,本申请实施例还提供一种训练设备,该设备包括获取模块171和训练模块172。
具体的,获取模块171用于获取目标场景的多个视角的样本拍摄图像和每个样本拍摄图像的GT深度图;获取模块171还用于获取目标场景的几何约束;训练模块172用于以获取模块171获取样本拍摄图像作为训练数据,样本拍摄图像的GT深度图和样本拍摄图像的几何约束作为监督信息,迭代训练初始单目深度估计模型,得到目标单目深度估计模型。
可选的,在几何约束为法向量图的情况下,获取模块171具体用于:利用目标神经辐射场NeRF模型获取样本拍摄图像的法向量图;目标NeRF模型具备利用任意视角对应的位姿信息确定目标场景在任意视角下的拍摄图像的能力。
可选的,在获取模块171利用目标NeRF模型获取样本拍摄图像的法向量图之前,获取模块171还用于获取每个样本拍摄图像的位姿信息和像素值;训练模块172还用于以获取模块171获取的样本拍摄图像的位姿信息作为训练数据,样本拍摄图像的像素值作为监督信息,迭代训练初始NeRF模型,得到目标NeRF模型。
可选的,训练模块172以获取模块171获取的样本拍摄图像的位姿信息作为训练数据,样本拍摄图像的像素值作为监督信息,迭代训练初始NeRF模型,得到目标NeRF模型之前,训练模块172还用于:基于样本拍摄图像的真实GT深度图,确定目标采样策略;训练模块172具体用于:以获取模块171获取的样本拍摄图像的位姿信息作为训练数据,样本拍摄图像的像素值作为监督信息,目标采样策略作为初始NeRF模型进行体素采样的采样策略,迭代训练初始NeRF模型,得到目标NeRF模型。
可选的,在几何约束为法向量图的情况下,训练模块172具体用于:初始化初始单目深度估计模型;将样本拍摄图像输入初始单目深度估计模型,得到预测深度图和预测法向量图;基于预测深度图、预测法向量图、样本拍摄图像的GT深度图和样本拍摄图像的法向量图,确定总损失值;根据总损失值迭代更新初始单目深度估计模型,以得到目标单目深度估计模型。
可选的,训练模块172具体用于:根据预测深度图和样本拍摄图像的GT深度图,确定深度损失值;根据预测法向量图和样本拍摄图像的法向量图,确定法向量损失值;基于深度损失值和法向量损失值,计算总损失值。
关于上述实施例中的训练设备,其中各个模块执行操作的具体方式已经在前述实施例中的单目深度估计模型生成方法和神经辐射场模型生成方法的实施例中进行了详细描述,此处不再具体阐述。其相关的有益效果也可参照前述单目深度估计模型生成方法和神经辐射场模型生成方法的相关有益效果,此处不再赘述。
参照图18所示,本申请实施例还提供一种电子设备,该设备包括获取模块181和处理模块182。其中,获取模块181用于接收用户开启AR功能的开启操作;处理模块182用于响应于获取模块181接收到的开启操作,启动摄像头进行拍摄以显示AR界面;获取模块181还用于获取当前场景的场景信息,并确定该场景信息对应的第一场景;处理模块182还用于利用与获取模块181确定的第一场景对应的第一单目深度估计模型,对摄像头拍摄的图像中物体的深度信息进行估计,得到深度估计结果;第一单目深度估计模型为依据如第一方面提供的单目深度估计模型生成方法得到的单目深度估计模型;处理模块182还用于基于深度估计结果,确定AR界面中虚拟物体的位置并在AR界面中显示该虚拟物体。
关于上述实施例中的电子设备,其中各个模块执行操作的具体方式已经在前述实施例中的深度估计方法的实施例中进行了详细描述,此处不再具体阐述。其相关的有益效果也可参照前述深度估计方法的相关有益效果,此处不再赘述。
本申请实施例还提供一种训练设备,该训练设备包括处理器和存储器;该存储器用于存储可执行指令,该处理器被配置为执行该存储器存储的该可执行指令,以使该训练设备执行如上述实施例中提供的单目深度估计模型生成方法和神经辐射场模型生成方法。该训练设备的具体结构可参照图7中所示的训练设备的结构。
本申请实施例还提供一种电子设备,该电子设备包括:显示屏、存储器和一个或多个处理器;显示屏、存储器与处理器耦合;其中,存储器中存储有计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被处理器执行时,使得电子设备执行如前述实施例提供的深度估计方法。该电子设备的具体结构可参照图5中所示的电子设备的结构。
本申请实施例还提供一种芯片系统,如图19所示,该芯片系统1100包括至少一个处理器1101和至少一个接口电路1102。处理器1101和接口电路1102可通过线路互联。例如,接口电路1102可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路102可用于向其它装置(例如处理器1101)发送信号。
示例性的,接口电路1102可读取存储器中存储的指令,并将该指令发送给处理器1101。当指令被处理器1101执行时,可使得电子设备/训练设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在训练设备上运行时,使得训练设备执行如前述实施例提供的单目深度估计模型生成方法和神经辐射场模型生成方法。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如前述实施例提供的深度估计方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包含可执行指令,当该计算机程序产品在训练设备上运行时,使得训练设备执行如前述实施例提供的单目深度估计模型生成方法和神经辐射场模型生成方法。
本申请实施例还提供一种计算机程序产品,该计算机程序产品包含可执行指令,当该计算机程序产品在电子设备上运行时,使得电子设备执行如前述实施例提供的深度估计方法。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置/设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种单目深度估计模型生成方法,其特征在于,应用于训练设备,该方法包括:
所述训练设备获取目标场景的多个视角的样本拍摄图像和每个样本拍摄图像的真实GT深度图;
所述训练设备获取所述目标场景的几何约束;所述目标场景的几何约束为所述训练设备利用目标NeRF模型获取的所述样本拍摄图像的法向量图;所述目标NeRF模型具备利用任意视角对应的位姿信息确定目标场景在所述任意视角下的拍摄图像的能力;
所述训练设备获取所述目标场景的几何约束之前,所述方法还包括:所述训练设备获取每个所述样本拍摄图像的位姿信息和像素值;所述训练设备基于所述样本拍摄图像的GT深度图,确定目标采样策略;所述训练设备以所述样本拍摄图像的位姿信息作为训练数据,所述样本拍摄图像的像素值作为监督信息,所述目标采样策略作为初始NeRF模型进行体素采样的采样策略,迭代训练所述初始NeRF模型,得到所述目标NeRF模型;
所述训练设备以所述样本拍摄图像作为训练数据,所述样本拍摄图像的GT深度图和所述样本拍摄图像的几何约束作为监督信息,迭代训练初始单目深度估计模型,得到目标单目深度估计模型。
2.根据权利要求1所述方法,其特征在于,所述训练设备以所述样本拍摄图像作为训练数据,所述样本拍摄图像的GT深度图和所述样本拍摄图像的几何约束作为监督信息,迭代训练初始单目深度估计模型,得到目标单目深度估计模型,包括:
所述训练设备初始化所述初始单目深度估计模型;
所述训练设备将所述样本拍摄图像输入所述初始单目深度估计模型,得到预测深度图和预测法向量图;
所述训练设备基于所述预测深度图、所述预测法向量图、所述样本拍摄图像的GT深度图和所述样本拍摄图像的法向量图,确定总损失值;
所述训练设备根据所述总损失值迭代更新所述初始单目深度估计模型,以得到目标单目深度估计模型。
3.根据权利要求2所述的方法,其特征在于,所述训练设备基于所述预测深度图、所述预测法向量图、所述样本拍摄图像的GT深度图和所述样本拍摄图像的法向量图,确定总损失值,包括:
所述训练设备根据所述预测深度图和所述样本拍摄图像的GT深度图,确定深度损失值;
所述训练设备根据所述预测法向量图和所述样本拍摄图像的法向量图,确定法向量损失值;
所述训练设备基于所述深度损失值和所述法向量损失值,计算所述总损失值。
4.一种深度估计方法,其特征在于,应用于电子设备,所述方法包括:
所述电子设备接收用户开启AR功能的开启操作;
所述电子设备响应于所述开启操作,启动摄像头进行拍摄以显示AR界面;
所述电子设备获取当前场景的场景信息,并确定该场景信息对应的第一场景;
所述电子设备利用与所述第一场景对应的第一单目深度估计模型,对所述摄像头拍摄的图像中物体的深度信息进行估计,得到深度估计结果;所述第一单目深度估计模型为依据如权利要求1-3任一项所述的单目深度估计模型生成方法得到的单目深度估计模型;
所述电子设备基于所述深度估计结果,确定所述AR界面中虚拟物体的位置并在所述AR界面中显示该虚拟物体。
5.一种训练设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如权利要求1-3任一项所述的单目深度估计模型生成方法。
6.一种电子设备,其特征在于,包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器与所述处理器耦合;其中,所述存储器中存储有计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求4所述的深度估计方法。
7.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-3任一项所述的单目深度估计模型生成方法。
8.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求4所述的深度估计方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310411157.2A CN116152323B (zh) | 2023-04-18 | 2023-04-18 | 深度估计方法、单目深度估计模型生成方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310411157.2A CN116152323B (zh) | 2023-04-18 | 2023-04-18 | 深度估计方法、单目深度估计模型生成方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116152323A CN116152323A (zh) | 2023-05-23 |
CN116152323B true CN116152323B (zh) | 2023-09-08 |
Family
ID=86373939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310411157.2A Active CN116152323B (zh) | 2023-04-18 | 2023-04-18 | 深度估计方法、单目深度估计模型生成方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116152323B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116452758B (zh) * | 2023-06-20 | 2023-10-20 | 擎翌(上海)智能科技有限公司 | 一种神经辐射场模型加速训练方法、装置、设备及介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112288788A (zh) * | 2020-10-12 | 2021-01-29 | 南京邮电大学 | 单目图像深度估计方法 |
CN113763474A (zh) * | 2021-09-16 | 2021-12-07 | 上海交通大学 | 一种基于场景几何约束的室内单目深度估算方法 |
WO2022182421A1 (en) * | 2021-02-24 | 2022-09-01 | Google Llc | Color and infra-red three-dimensional reconstruction using implicit radiance function |
CN115053260A (zh) * | 2020-02-17 | 2022-09-13 | 元平台公司 | 数据集生成方法、神经网络生成方法和场景模型构建方法 |
CN115309301A (zh) * | 2022-05-17 | 2022-11-08 | 西北工业大学 | 基于深度学习的Android手机端侧AR交互系统 |
CN115359195A (zh) * | 2022-07-18 | 2022-11-18 | 北京建筑大学 | 一种正射影像生成方法、装置、存储介质和电子设备 |
CN115393410A (zh) * | 2022-07-18 | 2022-11-25 | 华东师范大学 | 一种基于神经辐射场和语义分割的单目视图深度估计方法 |
CN115619928A (zh) * | 2022-09-27 | 2023-01-17 | 北京易航远智科技有限公司 | 用于多相机系统的三维场景重建装置的训练方法 |
WO2023015414A1 (zh) * | 2021-08-09 | 2023-02-16 | 中国科学院深圳先进技术研究院 | 一种消除自监督三维重建不确定性的方法 |
EP4150581A1 (en) * | 2020-11-16 | 2023-03-22 | Google LLC | Inverting neural radiance fields for pose estimation |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022123452A1 (en) * | 2020-12-12 | 2022-06-16 | Niantic, Inc. | Self-supervised multi-frame monocular depth estimation model |
-
2023
- 2023-04-18 CN CN202310411157.2A patent/CN116152323B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115053260A (zh) * | 2020-02-17 | 2022-09-13 | 元平台公司 | 数据集生成方法、神经网络生成方法和场景模型构建方法 |
CN112288788A (zh) * | 2020-10-12 | 2021-01-29 | 南京邮电大学 | 单目图像深度估计方法 |
EP4150581A1 (en) * | 2020-11-16 | 2023-03-22 | Google LLC | Inverting neural radiance fields for pose estimation |
WO2022182421A1 (en) * | 2021-02-24 | 2022-09-01 | Google Llc | Color and infra-red three-dimensional reconstruction using implicit radiance function |
WO2023015414A1 (zh) * | 2021-08-09 | 2023-02-16 | 中国科学院深圳先进技术研究院 | 一种消除自监督三维重建不确定性的方法 |
CN113763474A (zh) * | 2021-09-16 | 2021-12-07 | 上海交通大学 | 一种基于场景几何约束的室内单目深度估算方法 |
CN115309301A (zh) * | 2022-05-17 | 2022-11-08 | 西北工业大学 | 基于深度学习的Android手机端侧AR交互系统 |
CN115359195A (zh) * | 2022-07-18 | 2022-11-18 | 北京建筑大学 | 一种正射影像生成方法、装置、存储介质和电子设备 |
CN115393410A (zh) * | 2022-07-18 | 2022-11-25 | 华东师范大学 | 一种基于神经辐射场和语义分割的单目视图深度估计方法 |
CN115619928A (zh) * | 2022-09-27 | 2023-01-17 | 北京易航远智科技有限公司 | 用于多相机系统的三维场景重建装置的训练方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116152323A (zh) | 2023-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11481923B2 (en) | Relocalization method and apparatus in camera pose tracking process, device, and storage medium | |
US11205282B2 (en) | Relocalization method and apparatus in camera pose tracking process and storage medium | |
CN108810538B (zh) | 视频编码方法、装置、终端及存储介质 | |
US11288857B2 (en) | Neural rerendering from 3D models | |
US10950036B2 (en) | Method and apparatus for three-dimensional (3D) rendering | |
US11276183B2 (en) | Relocalization method and apparatus in camera pose tracking process, device, and storage medium | |
US9779508B2 (en) | Real-time three-dimensional reconstruction of a scene from a single camera | |
EP2992508B1 (en) | Diminished and mediated reality effects from reconstruction | |
KR102624635B1 (ko) | 메시징 시스템에서의 3d 데이터 생성 | |
US10930056B2 (en) | Electronic device for generating images having rendering qualities differing by view vector | |
US10848669B2 (en) | Electronic device and method for displaying 360-degree image in the electronic device | |
CN116152323B (zh) | 深度估计方法、单目深度估计模型生成方法和电子设备 | |
EP2770479A2 (en) | Electronic device and method of operating electronic device | |
CN114332554A (zh) | 图像分割模型的训练方法、图像分割方法、装置及设备 | |
CN111357034A (zh) | 点云生成方法、系统和计算机存储介质 | |
WO2022104026A1 (en) | Consistency measure for image segmentation processes | |
US20230300464A1 (en) | Direct scale level selection for multilevel feature tracking under motion blur | |
KR20240007678A (ko) | 노출 및 iso 관련 애플리케이션의 동적 조정 | |
KR20240008915A (ko) | 모션 블러 완화를 위한 선택적 이미지 피라미드 계산 | |
CN115147524B (zh) | 一种3d动画的生成方法及电子设备 | |
US11683585B2 (en) | Direct scale level selection for multilevel feature tracking under motion blur | |
KR20240006669A (ko) | 늦은-워핑에서의 동적 오버-렌더링 | |
CN116433830A (zh) | 一种三维地图的创建方法及电子设备 | |
CN117746192B (zh) | 电子设备及其数据处理方法 | |
US20230421717A1 (en) | Virtual selfie stick |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |