光照估计方法、装置以及系统
文献发布时间:2024-04-18 20:01:23
技术领域
本申请涉及增强现实(augmented reality,AR)技术领域,尤其涉及一种光照估计方法、装置以及系统。
背景技术
随着智能手机、平板电脑等电子设备的快速迭代及普及,电子设备不仅可以向用户提供通话、短信、及视频播放等功能服务,还可以向用户提供AR功能服务。AR通过将虚拟信息与真实世界巧妙融合,使得虚拟信息和真实世界两种信息互为补充,以实现对真实世界的“增强”。
并且,伴随着人工智能(artificial intelligence,AI)技术的发展,使得AI拥有了强环境理解、虚实融合成像、精准定位等高层级的能力,这些能力可以为用户提供一个“地球级、不断演进的、与现实无缝融合的”数字新世界,即虚拟世界。将虚拟世界中的虚拟物体放入真实场景中一直以来都面临着巨大的挑战,为了使得虚拟物体与真实场景满足光照一致性,需要获取有关真实场景中的光照信息,如光源方向等。光照估计作为增强现实应用的一个基础特性,直接决定了所渲染的虚拟物体的逼真效果,虚拟物体与真实场景的违和感会导致较差的用户使用体验。
因此,如何对真实场景中的光照信息进行精确估计,以实现更加逼真的增强现实效果,成为亟待解决的技术问题。
发明内容
本申请实施例提供一种光照估计方法、装置以及系统,有益于提升光照估计的准确性,实现更加逼真的增强现实效果。
第一方面,本申请实施例提供一种光照估计方法,该方法可以包括:接收第一电子设备发送的多帧第一图像,多帧第一图像是第一电子设备在第一时间以不同曝光参数拍摄的第一电子设备所在场景的多帧图像。获取该第一电子设备的位姿信息。获取与该第一电子设备的位姿信息匹配的多帧第二图像,多帧第二图像与多帧第一图像的场景相同但拍摄角度不同。根据多帧第一图像和多帧第二图像,得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在第一电子设备上显示的虚拟物体。
由此,本申请实施例的第一方面的可实现方式,通过根据多个不同曝光量的第一图像,以及与第一图像的场景相同但拍摄角度不同的多帧第二图像,生成第一电子设备所在场景的高动态范围全景图像,以实现对场景中的光照信息的准确估计。相较于使用单帧图像估计场景中的光照信息,基于第一电子设备所在场景的高动态范围全景图像得到的光照信息的准确性更高。基于该光照信息渲染虚拟物体,可以满足光照一致性,使得显示的虚拟物体更加真实,实现虚拟物体与真实场景的无缝融合。
一种可能的设计中,获取与该第一电子设备的位姿信息匹配的多帧第二图像,包括:根据该第一电子设备的位姿信息,从预设图像库中匹配得到该多帧第二图像。其中,该预设图像库包括来自于第一电子设备和/或至少一个第二电子设备拍摄的多帧图像。
一种可能的设计中,根据多帧第一图像和多帧第二图像,得到该场景的高动态范围全景图像,包括:根据多帧第一图像,生成高动态范围局部图像。根据多帧第二图像,生成低动态范围全景图像。将高动态范围局部图像的光照信息,迁移至低动态范围全景图像,得到该场景的高动态范围全景图像。
一种可能的设计中,获取该第一电子设备的位姿信息,包括:根据多帧第一图像,生成低动态范围局部图像。根据低动态范围局部图像,确定该第一电子设备的位姿信息。
一种可能的设计中,根据多帧第二图像,生成低动态范围全景图像,包括:将低动态范围局部图像的光照信息,分别迁移至多帧第二图像,得到多帧第三图像。根据多帧第三图像,生成低动态范围全景图像。
一种可能的设计中,根据多帧第三图像,生成低动态范围全景图像,包括:根据多帧第三图像,得到低动态范围残缺图像。对低动态范围残缺图像进行图像补全处理,生成低动态范围全景图像。
一种可能的设计中,对低动态范围残缺图像进行图像补全处理,生成低动态范围全景图像,包括:将低动态范围残缺图像输入至深度学习模型中,获取深度学习模型输出的低动态范围全景图像。
一种可能的设计中,将高动态范围局部图像的光照信息,迁移至低动态范围全景图像,得到该场景的高动态范围全景图像,包括:将高动态范围局部图像和低动态范围全景图像输入至风格迁移网络,获取风格迁移网络输出的该场景的高动态范围全景图像。其中,该风格迁移网络用于将高动态范围局部图像的光照信息,迁移至低动态范围全景图像,以获取高动态范围全景图像。
一种可能的设计中,该方法还包括以下至少一项:根据高动态范围全景图像,确定主光源方向;或者,根据高动态范围全景图像,确定球谐系数,根据球谐系数确定该场景的环境光强度和主光源强度;或者,根据高动态范围全景图像,确定环境纹理图,环境纹理图用于具有镜面反射材质的虚拟物体对该场景的纹理进行镜面反射。
一种可能的设计中,该方法还可以包括:向第一电子设备发送高动态范围全景图像或者该场景在第一时间的光照信息。
第二方面,本申请实施例提供一种光照估计方法,该方法包括:检测到用户执行的第一操作。响应于该第一操作,第一电子设备在第一时间以不同曝光参数拍摄该第一电子设备所在场景的多帧第一图像。向服务器发送多帧第一图像,多帧第一图像用于得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在该第一电子设备上显示的虚拟物体。
一种可能的设计中,该方法还包括:接收服务器发送的高动态范围全景图像或者该场景在第一时间的光照信息。根据高动态范围全景图像或者该场景在第一时间的光照信息,渲染在第一电子设备上显示的虚拟物体。
第三方面,本申请实施例提供一种光照估计方法,该方法包括:检测到用户执行的第一操作。响应于第一操作,第一电子设备在第一时间以不同曝光参数拍摄第一电子设备所在场景的多帧第一图像。从服务器获取与第一电子设备的位姿信息匹配的多帧第二图像,多帧第二图像与多帧第一图像的场景相同但拍摄角度不同。根据多帧第一图像和多帧第二图像,得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在第一电子设备上显示的虚拟物体。
一种可能的设计中,根据多帧第一图像和多帧第二图像,得到该场景的高动态范围全景图像,包括:根据多帧第一图像,生成高动态范围局部图像。根据多帧第二图像,生成低动态范围全景图像。将高动态范围局部图像的光照信息,迁移至低动态范围全景图像,得到该场景的高动态范围全景图像。
一种可能的设计中,从服务器获取与第一电子设备的位姿信息匹配的多帧第二图像,包括:获取该第一电子设备的位姿信息。向服务器发送第一电子设备的位姿信息,该第一电子设备的位姿信息用于服务器从预设图像库中匹配得到多帧第二图像。该预设图像库包括来自于第一电子设备和/或至少一个第二电子设备拍摄的多帧图像。接收服务器发送的多帧第二图像。
一种可能的设计中,获取该第一电子设备的位姿信息,包括:根据多帧第一图像,生成低动态范围局部图像。根据低动态范围局部图像,确定该第一电子设备的位姿信息。
一种可能的设计中,根据多帧第二图像,生成低动态范围全景图像,包括:将低动态范围局部图像的光照信息,分别迁移至多帧第二图像,得到多帧第三图像。根据多帧第三图像,生成低动态范围全景图像。
一种可能的设计中,根据多帧第三图像,生成低动态范围全景图像,包括:根据多帧第三图像,得到低动态范围残缺图像。对低动态范围残缺图像进行图像补全处理,生成低动态范围全景图像。
一种可能的设计中,对低动态范围残缺图像进行图像补全处理,生成低动态范围全景图像,包括:将低动态范围残缺图像输入至深度学习模型中,获取深度学习模型输出的低动态范围全景图像。
一种可能的设计中,将高动态范围局部图像的光照信息,迁移至低动态范围全景图像,得到该场景的高动态范围全景图像,包括:将高动态范围局部图像和低动态范围全景图像输入至风格迁移网络,获取风格迁移网络输出的该场景的高动态范围全景图像。其中,该风格迁移网络用于将高动态范围局部图像的光照信息,迁移至低动态范围全景图像,以获取高动态范围全景图像。
一种可能的设计中,该方法还包括以下至少一项:根据高动态范围全景图像,确定主光源方向;或者,根据高动态范围全景图像,确定球谐系数,根据球谐系数确定该场景的环境光强度和主光源强度;或者,根据高动态范围全景图像,确定环境纹理图,环境纹理图用于具有镜面反射材质的虚拟物体对该场景的纹理进行镜面反射。
第四方面,本申请提供一种光照估计装置,该装置可以为服务器,例如服务器中的芯片或者片上系统,例如可以为服务器中用于实现第一方面或第一方面的任一可能的实施方式的功能模块。举例来说,该光照估计装置,包括:收发模块,用于接收第一电子设备发送的多帧第一图像,多帧第一图像是第一电子设备在第一时间以不同曝光参数拍摄的第一电子设备所在场景的多帧图像;处理模块,用于获取第一电子设备的位姿信息;该处理模块,还用于获取与第一电子设备的位姿信息匹配的多帧第二图像,多帧第二图像与多帧第一图像的场景相同但拍摄角度不同;该处理模块,还用于根据多帧第一图像和多帧第二图像,得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在第一电子设备上显示的虚拟物体。
一种可能的设计中,该处理模块用于:根据第一电子设备的位姿信息,从预设图像库中匹配得到多帧第二图像。其中,该预设图像库包括来自于第一电子设备和/或至少一个第二电子设备拍摄的多帧图像。
一种可能的设计中,该处理模块用于:根据该多帧第一图像,生成高动态范围局部图像;
根据该多帧第二图像,生成低动态范围全景图像;将该高动态范围局部图像的光照信息,迁移至该低动态范围全景图像,得到该场景的高动态范围全景图像。
一种可能的设计中,该处理模块,用于:根据多帧第一图像,生成低动态范围局部图像;根据低动态范围局部图像,确定第一电子设备的位姿信息。
一种可能的设计中,该处理模块用于:将低动态范围局部图像的光照信息,分别迁移至多帧第二图像,得到多帧第三图像;根据多帧第三图像,生成低动态范围全景图像。
一种可能的设计中,该处理模块,用于:根据多帧第三图像,得到低动态范围残缺图像;对低动态范围残缺图像进行图像补全处理,生成低动态范围全景图像。
一种可能的设计中,该处理模块,用于:将低动态范围残缺图像输入至深度学习模型中,获取深度学习模型输出的低动态范围全景图像。
一种可能的设计中,该处理模块,用于:将高动态范围局部图像和低动态范围全景图像输入至风格迁移网络,获取风格迁移网络输出的该场景的高动态范围全景图像;其中,风格迁移网络用于将高动态范围局部图像的光照信息,迁移至低动态范围全景图像,以获取高动态范围全景图像。
一种可能的设计中,该处理模块还用于执行以下至少一项:根据高动态范围全景图像,确定主光源方向;或者,根据高动态范围全景图像,确定球谐系数,根据球谐系数确定该场景的环境光强度和主光源强度;或者,根据高动态范围全景图像,确定环境纹理图,环境纹理图用于具有镜面反射材质的虚拟物体对该场景的纹理进行镜面反射。
一种可能的设计中,该收发模块还用于:向该第一电子设备发送高动态范围全景图像或者该场景在第一时间的光照信息。
第五方面,本申请提供一种光照估计装置,该装置可以为第一电子设备,例如第一电子设备中的芯片或者片上系统,例如可以为第一电子设备中用于实现第二方面或第二方面的任一可能的实施方式的功能模块。举例来说,该光照估计装置,包括:处理模块,用于检测到用户执行的第一操作;该处理模块,还用于响应于该第一操作,在第一时间以不同曝光参数拍摄该第一电子设备所在场景的多帧第一图像;收发模块,用于向服务器发送多帧第一图像,多帧第一图像用于得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在该光照估计装置上显示的虚拟物体。
一种可能的设计中,该收发模块还用于:接收该服务器发送的高动态范围全景图像或者该场景在第一时间的光照信息;该处理模块还用于根据高动态范围全景图像或者场景在该第一时间的光照信息,渲染在该光照估计装置上显示的虚拟物体。
第六方面,本申请提供一种光照估计装置,该装置可以为第一电子设备,例如第一电子设备中的芯片或者片上系统,例如可以为第一电子设备中用于实现第二方面或第二方面的任一可能的实施方式的功能模块。举例来说,该光照估计装置,包括:处理模块,用于检测到用户执行的第一操作,响应于第一操作,在第一时间以不同曝光参数拍摄第一电子设备所在场景的多帧第一图像。处理模块,还用于通过收发模块从服务器获取与第一电子设备的位姿信息匹配的多帧第二图像,多帧第二图像与多帧第一图像的场景相同但拍摄角度不同。处理模块,还用于根据多帧第一图像和多帧第二图像,得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在第一电子设备上显示的虚拟物体。
一种可能的设计中,处理模块用于:根据多帧第一图像,生成高动态范围局部图像。根据多帧第二图像,生成低动态范围全景图像。将高动态范围局部图像的光照信息,迁移至低动态范围全景图像,得到该场景的高动态范围全景图像。
一种可能的设计中,处理模块用于获取该第一电子设备的位姿信息。收发模块用于向服务器发送第一电子设备的位姿信息,该第一电子设备的位姿信息用于服务器从预设图像库中匹配得到多帧第二图像。该预设图像库包括来自于第一电子设备和/或至少一个第二电子设备拍摄的多帧图像。收发模块还用于接收服务器发送的多帧第二图像。
一种可能的设计中,处理模块用于:根据多帧第一图像,生成低动态范围局部图像。根据低动态范围局部图像,确定该第一电子设备的位姿信息。
一种可能的设计中,处理模块用于:将低动态范围局部图像的光照信息,分别迁移至多帧第二图像,得到多帧第三图像。根据多帧第三图像,生成低动态范围全景图像。
一种可能的设计中,处理模块用于:根据多帧第三图像,得到低动态范围残缺图像。对低动态范围残缺图像进行图像补全处理,生成低动态范围全景图像。
一种可能的设计中,处理模块用于:将低动态范围残缺图像输入至深度学习模型中,获取深度学习模型输出的低动态范围全景图像。
一种可能的设计中,处理模块用于:将高动态范围局部图像和低动态范围全景图像输入至风格迁移网络,获取风格迁移网络输出的该场景的高动态范围全景图像。其中,该风格迁移网络用于将高动态范围局部图像的光照信息,迁移至低动态范围全景图像,以获取高动态范围全景图像。
一种可能的设计中,该处理模块还用于执行以下至少一项:根据高动态范围全景图像,确定主光源方向;或者,根据高动态范围全景图像,确定球谐系数,根据球谐系数确定该场景的环境光强度和主光源强度;或者,根据高动态范围全景图像,确定环境纹理图,环境纹理图用于具有镜面反射材质的虚拟物体对该场景的纹理进行镜面反射。
第七方面,本申请实施例提供一种光照估计装置,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面或第一方面任一项可能的设计所述的方法。
第八方面,本申请实施例提供一种光照估计装置,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第二方面或第二方面任一项可能的设计所述的方法,或者,使得所述一个或多个处理器实现如第三方面或第三方面任一项可能的设计所述的方法。
第九方面,本申请实施例提供一种计算机可读存储介质,包括计算机指令,当所述计算机指令在计算机上运行时,使得所述计算机执行如第一方面或第一方面任一项可能的设计所述的光照估计方法,或者,使得所述计算机执行如第二方面或第二方面任一项可能的设计所述的光照估计方法,使得所述计算机执行如第三方面或第三方面任一项可能的设计所述的光照估计方法。
第十方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面或第一方面任一项可能的设计所述的光照估计方法,或者,使得所述计算机执行如第二方面或第二方面任一项可能的设计所述的光照估计方法,使得所述计算机执行如第三方面或第三方面任一项可能的设计所述的光照估计方法。
第十一方面,本申请实施例提供一种光照估计系统,该光照估计系统包括电子设备和服务器,电子设备与服务器建立通信连接,服务器用于执行如第一方面或第一方面任一项可能的设计所述的光照估计方法,电子设备用于执行如第二方面或第二方面任一项可能的设计所述的光照估计方法。
第十二方面,本申请实施例提供一种光照估计系统,该光照估计系统包括电子设备和服务器,电子设备与服务器建立通信连接,电子设备用于执行如第三方面或第三方面任一项可能的设计所述的光照估计方法。
第十三方面,本申请实施例提供一种电子设备,该电子设备作为第一电子设备,包括显示组件;摄像头;一个或多个处理器;存储器;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述第一电子设备执行如第三方面或第三方面的任一种可能的设计所述的方法。
其中,本申请实施例提供的光照估计装置,计算机存储介质,计算机程序产品,或光照估计系统均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种光照估计系统的示意图;
图2为本申请实施例提供的电子设备20的一种结构示意图;
图3为本申请实施例提供的服务器30的一种结构示意图;
图4为本申请实施例提供的一种光照估计系统的结构框图;
图5为本申请实施例提供的一种光照估计方法的流程示意图;
图6为本申请实施例提供的一种光照估计方法的流程示意图;
图7为本申请实施例提供的一种光照估计方法的流程示意图;
图8为本申请实施例提供的一种光照估计方法的处理过程示意图;
图9为本申请实施例提供的一种用户界面的示意图;
图10为本申请实施例提供的一种风格迁移网络的示意图;
图11为本申请实施例提供的风格迁移网络的训练结构示意图。
具体实施方式
下面结合附图对本申请实施例提供的一种光照估计方法、装置以及系统进行详细地描述。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请的描述中,除非另有说明,“多个”的含义是指两个或两个以上。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
首先,对本申请实施例中涉及的相关概念和技术作简单介绍。
光照一致性,是指让虚拟物体具有与真实场景相同的光照效果。光照一致性的目标是使虚拟物体的光照情况与真实场景中的光照情况一致,虚拟物体与真实物体有着一致的明暗、阴影等效果,以增强虚拟物体的真实感。解决光照一致性问题的关键是如何获取真实场景中的光照信息,准确的光照信息能够实现更加逼真的增强现实效果,提升用户的使用体验。
动态范围(dynamic range),在很多领域用来表示某个变量最大值与最小值的比率。在数字图像中,动态范围表示了在图像可显示的范围内最大亮度值和最小亮度值之间的比率。对真实世界中的自然场景来说,动态范围在10
位姿信息,可以包括位置和姿态。其中,位置可以包括(x,y,z)坐标,姿态可以包括环绕三个坐标轴的角度偏转,环绕三个坐标轴的角度偏转分别为偏航(yaw)角,俯仰(pitch)角,翻滚(roll)角。包括(x,y,z)坐标,以及偏航(yaw)角,俯仰(pitch)角和翻滚(roll)角的位姿,也可以称为6个自由度(Degree of freedom,DoF)位姿(Pose)。
对于真实场景中特定位置的光照信息,主要可以通过以下三种方式获取:
方式一:通过在特定位置添加光学探针球,以获取特定位置的光照信息。具体的,在真实场景中特定位置放置镜面球探针和高光球探针,其中,镜面球探针和高光球探针分别用于获取不同动态范围及频率的光照信息,基于照度学原理,利用图像处理技术提取光学探针球中的主光源方向及强度信息、环境光信息、环境图信息等,从而获取该特定位置的光照信息。然而,这种方式需要借助光学探针球,在实际操作时会造成很大的不便性,用户体验差。
方式二:通过电子设备采集当前视场角下的图像,利用图像处理方法提取图像中的光源位置并计算光源的强度信息。然而,这种方式对于光源未明显出现在图像中的某个区域的情况,会导致所提取的光源位置及强度信息误差较大,且通过这种方式所提取的光照信息是LDR光照信息,无法保证虚拟物体逼真的光照渲染效果。
方式三:通过电子设备采集当前视场角下的图像,利用深度学习网络估计当前场景下的光照信息。由于视场角有限的图像不足以求解空间场景中的全局光照,所以会导致提取的光照信息误差大且鲁棒性不强。
综上所述,仅利用单一的图像很难对真实场景中的光照信息进行精确的估计。由此,本申请实施例提供如下所述的光照估计方法,以提升光照估计的准确性,从而有益于提升虚拟物体的光照渲染效果,即更加逼真的光照渲染效果。
图1为本申请实施例提供的一种光照估计系统的示意图,如图1所示,本申请实施例提供的光照估计方法可以应用于该系统。具体的,该系统可以包括多个电子设备和服务器。
其中,多个电子设备可以包括第一电子设备、一个或多个第二电子设备(图1中以两个第二电子设备为例),该一个或多个第二电子设备是除第一电子设备外的若干个电子设备。各个电子设备和服务器之间可进行通信,例如,对于任意电子设备,可以通过无线保真(wireless-fidelity,WiFi)通信、蓝牙通信或者蜂窝2/3/4/5代(2/3/4/5generation,2G/3G/4G/5G)通信等方式与服务器进行通信,应当理解的,服务器和电子设备之间还可以采用其他通信方式,包括未来的通信方式,例如6G通信,本申请实施例对此不做具体限定。需要说明的是,本申请实施例中的“一个或多个第二电子设备”仅用于表示除第一电子设备外的其它电子设备,但并不限定多个电子设备的类型是否相同。
上述电子设备(例如,第一电子设备或第二电子设备),可以是配置有摄像头和显示组件的各种类型的设备,例如,电子设备可以是手机、平板电脑、笔记本电脑、录像机等终端设备(图1中以电子设备是手机为例),电子设备也可以是用于虚拟场景交互的设备,包括VR眼镜、AR设备,MR互动设备等,电子设备还可以是智能手表、智能手环等可穿戴电子设备,电子设备还可以是车辆、无人驾驶车辆、无人机、工业机器人等载具中所搭载的设备。电子设备还可以是智慧屏等智能家居设备。本申请实施例对电子设备的具体形式不做具体限定。
此外,上述电子设备也可以被称为用户装备(user equipment,UE)、订户站、移动单元、订户单元、无线单元、远程单元、移动设备、无线设备、无线通信设备、远程设备、移动订户站、终端设备、接入终端、移动终端、无线终端、智能终端、远程终端、手持机、用户代理、移动客户端、客户端、或其他某个合适的术语。
上述服务器可以是一台或多台物理服务器(图1中以一台物理服务器为例),也可以是计算机集群,还可以是云计算场景的虚拟机或者云端服务器,等等。
本申请实施例中,电子设备可以安装VR应用、AR应用或者MR应用等虚拟场景应用程序(application,APP),并可以基于用户的操作(例如点击、触摸、滑动、抖动、声控等)运行VR应用、AR应用或者MR应用。电子设备可以通过传感器采集环境中任意物体的视觉信息,再根据采集的视觉信息在显示组件上显示虚拟物体,该虚拟物体可以是VR场景、AR场景或MR场景中的虚拟物体(即虚拟环境中的物体)。
本申请实施例中,电子设备可以安装导航、检测、控制、游戏互动类应用程序,并基于用户的操控或是预设的程序来运行相应的应用。电子设备可以基于自身在当前环境中的位姿信息和其他状态信息,进行路径规划、物体检测、载具操控等应用。
需要说明的是,本申请实施例中,电子设备中的虚拟场景应用程序可以是电子设备自身内置的应用程序,也可以是用户自行安装的第三方服务商提供的应用程序,对此不做具体限定。
本申请实施例中,电子设备还可以配置有即时定位与地图构建(simultaneouslocalization and mapping,SLAM)系统,SLAM系统能够在完全未知的环境中创建地图,并利用该地图进行定位、位姿(位置与姿态)确定、导航等。本申请实施例中将SLAM系统创建的地图称作SLAM地图,SLAM地图可以理解为是SLAM系统根据采集设备采集到的环境信息绘制出的地图,采集设备可以包括电子设备中的视觉信息采集装置和惯性测量单元(inertialmeasurement unit,IMU),其中,视觉信息采集装置例如可以包括相机、摄像头、深度相机等,IMU例如可以包括陀螺仪、加速度计等传感器。
本申请实施例的第一电子设备可以在第一时间以不同曝光参数拍摄第一电子设备所在场景的多帧第一图像,将多帧第一图像发送给服务器,由服务器执行本申请实施例的光照估计方法,对多帧第一图像进行处理,以得到第一电子设备所在场景的高动态范围全景图像,该高动态范围全景图像用于提取第一电子设备所在场景在第一时间的光照信息,该光照信息用于渲染在第一电子设备上显示的虚拟物体。这样,有益于增强虚拟物体渲染的真实性。
在一些实施例中,上述多个第二电子设备和第一电子设备之间可以进行云端数据共享。示例性的,任一第二电子设备或第一电子设备可以采集一帧或多帧图像,并存储在服务器的预设图像库中,该预设图像库中图像可以作为光照估计的先验信息,以提升光照估计的准确性。可选的,该一帧或多帧图像可以是小视场角(即非全景)条件下的图像。
需要说明的是,第一电子设备也可以对多帧第一图像进行处理,以得到第一电子设备所在场景的高动态范围全景图像。
图2为本申请实施例提供的电子设备20的一种结构示意图,如图2所示,电子设备20可以是图1所示实施例中的第一电子设备和一个或多个第二电子设备中的至少一者。应该理解的是,图2所示的结构并不构成对电子设备20的具体限定。在本申请另一些实施例中,电子设备20可以包括比图2所示结构更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图2中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备20可包括:芯片21、存储器22(一个或多个计算机可读存储介质)、用户接口23、显示组件24、摄像头25、传感器26、用于设备定位的定位模块27以及用于通信的收发器28。这些部件之间可以通过一个或多个总线29通信。
芯片21可以集成包括:一个或多个处理器211、时钟模块212以及电源管理模块213。集成于芯片21中的时钟模块212主要用于为处理器211提供数据传输和时序控制所需要的计时器,计时器可以实现数据传输和时序控制的时钟功能。处理器211可以根据指令操作码和时序信号,执行运算,产生操作控制信号,完成取指令和执行指令的控制。集成于芯片21中的电源管理模块213主要用于为芯片21以及电子设备20的其他部件提供稳定的、高精确度的电压。
处理器211又可称为中央处理器(central processing unit,CPU),处理器211具体可以包括一个或多个处理单元,例如,处理器211可以包括应用处理器(applicationprocessor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或,神经网络处理器(neural-networkprocessing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
在一种可能的实现方式中,处理器211可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integratedcircuit sound,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)接口等。
存储器22可以和处理器211通过总线29连接,也可以与处理器311耦合在一起,用于存储各种软件程序和/或多组指令。存储器22可以包括高速随机存取的存储器(例如高速缓冲存储器),也可以包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器22可以存储操作系统,例如,安卓(Android),苹果移动平台(IOS),微软窗口操作系统(Windows)或者类UNIX操作系统(Linux)等嵌入式操作系统。存储器22还可以存储数据,例如,图像数据、点云数据、3D地图的数据、位姿数据、坐标系转换信息、地图更新信息等。存储器22还可以存储计算机可执行的程序代码,该计算机可执行的程序代码包括指令,例如,通信程序指令,SLAM系统的相关程序指令等。存储器22还可以存储一个或多个应用程序,例如,AR/VR/MR等虚拟场景应用程序、3D地图类应用程序、图像管理类应用程序、导航与控制类应用程序等。存储器22还可以存储用户界面程序,该用户界面程序可以通过图形化的操作界面将应用程序的内容,例如,AR/VR/MR等虚拟场景中的虚拟物体,形象逼真的显示出来并通过显示组件24呈现,以及实现通过菜单、对话框和按键等输入控件接收用户对应用程序的控制操作。
用户接口23例如可以是触控面板,该触控面板可以检测用户在其上的操作指令,用户接口23也例如可以是小键盘、物理按键或者鼠标等。
电子设备20可以包括一个或多个显示组件24。电子设备20可以通过显示组件24、芯片21中的图形处理器(GPU)和应用处理器(AP)等共同实现显示功能。GPU是实现图像处理的微处理器,其连接显示组件24和应用处理器,GPU执行数学和几何计算以用于图形渲染。显示组件24可以显示电子设备20输出的界面内容,例如,显示AR/VR/MR等虚拟场景中的图像、视频等,界面内容可包括正在运行的应用程序的界面以及系统级别菜单等,具体可以由下述界面元素组成:输入型界面元素,例如按键(Button),文本输入框(Text),滑动条(Scroll Bar),菜单(Menu)等;输出型界面元素,例如视窗(Window),标签(Label),图像,视频,动画等。
显示组件24可以是显示面板,镜片(例如VR眼镜),投影屏等。显示面板也可以称为显示屏,例如,可以是触摸屏、柔性屏、曲面屏等,也可以是其它光学组件。应当理解的,本申请实施例中的电子设备具有的显示屏可以是触摸屏、柔性屏、曲面屏或者其它形式的屏幕,亦即电子设备的显示屏具有显示图像的功能,而对于显示屏的具体材质和形状不作具体限定。
例如,当显示组件24包括显示面板时,显示面板可以采用液晶显示屏(liquidcrystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emittingdiode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。此外,在一种可能的实现方式中,可以将用户接口23中的触控面板和显示组件24中的显示面板耦合在一起,例如,触控面板可设置于显示面板下方,触控面板用于检测用户通过显示面板输入触控操作(例如点击、滑动,触摸等)时作用于显示面板上的触控压力,显示面板用于进行内容显示。
摄像头25可以是单目摄像头或双目摄像头或深度摄像头,用于对环境进行拍摄/录像,以获得图像/视频图像。摄像头25所采集的图像/视频图像例如可作为SLAM系统的一种输入数据,或者可通过显示组件24进行图像/视频显示。
在一种可能的实现方式中,也可以把摄像头25视为一种传感器。摄像头25采集的图像可以是IMG格式,也可以是其他格式类型,本申请实施例对此不做具体限定。
传感器26可以用于采集与电子设备20的状态变化(例如,旋转、摆动、移动、抖动等)相关的数据。传感器26可以包括一种或多种传感器,例如,惯性测量单元(inertialmeasurement unit,IMU),飞行时间(time of flight,TOF)传感器等。IMU中可以包括陀螺仪、加速度计等传感器,陀螺仪用于测量电子设备运动时的角速度,加速度计用于测量电子设备运动时的加速度。TOF传感器中可以包括光发射器和光接收器,光发射器用于向外发射光线,例如,激光、红外线、雷达波等,光接收器用于检测反射的光线,例如,反射的激光、红外线、雷达波等。
需要说明的,传感器26还可以包括更多的其他传感器,例如惯性传感器,气压计,磁力计,轮速计等,本申请实施例对此不做具体限定。
定位模块27用于实现对电子设备20的物理定位,例如,用于获取电子设备20的初始位置。定位模块27可以包括WiFi定位模块、蓝牙定位模块、基站定位模块、卫星定位模块中的一个或多个。卫星定位模块中可以设置有全球导航卫星系统(global navigationsatellite system,GNSS)以辅助定位,GNSS不限于北斗系统、全球定位系统(globalpositioning system,GPS)系统、格洛纳斯(global navigation satellite system,GLONASS)系统、伽利略卫星导航系统(Galileo)系统。
收发器28用于实现电子设备20与其它设备(例如,服务器、其它电子设备等)之间的通信。收发器28集成了发射器和接收器,分别用于发送和接收射频信号。具体实现中,收发器28包括但不限于:天线系统、射频(radio frequency,RF)收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编译码器(CODEC)芯片、用户身份识别卡(subscriber identification module,SIM)卡和存储介质等。在一种可能的实现方式中,还可以在单独的芯片上实现收发器28。收发器28支持2G/3G/4G/5G等中的至少一种数据网络通信,和/或,支持以下近距无线通信的方式中的至少一种:蓝牙(bluetooth,BT)通信,无线保真(wirelessfidelity,WiFi)通信,近场通信(near field communication,NFC),红外(infrared,IR)无线通信,超宽带(ultra wide band,UWB)通信,紫蜂协议(ZigBee)通信。
本申请实施例中,处理器211通过运行存储在存储器22的程序代码,从而执行电子设备20的各种功能应用和数据处理。例如,执行如图5实施例所示方法中的步骤,或者执行如图7实施例中电子设备侧的功能。
图3为本申请实施例提供的服务器30的一种结构示意图,如图3所示,服务器30可以是图1所示实施例中的服务器。服务器30包括处理器301、存储器302(一个或多个计算机可读存储介质)和收发器303。这些部件之间可以通过一个或多个总线304通信。
处理器301可以是一个或多个CPU,在处理器301是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
存储器302可以和处理器301通过总线304连接,也可以和处理器301耦合在一起,用于存储各种程序代码和/或多组指令、以及数据(例如,地图数据、位姿数据等)。具体实现中,存储器302包括但不限于是随机存储记忆体(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、或便携式只读存储器(Compact Disc Read-Only Memory,CD-ROM)等。
收发器303主要集成了接收器和发射器,其中接收器用于接收电子设备发送的数据(例如,请求、图像等),发射器用于向电子设备发送数据(例如,地图数据、位姿数据等)。
应当理解,图3所示的服务器30仅为本申请实施例提供的一个示例,服务器30还可以具有比图示更多的部件,本申请实施例对此不做具体限定。
本申请实施例中,处理器301通过运行存储在存储器302中的程序代码,从而执行服务器30的各种功能应用和数据处理。例如,执行如图6实施例所示方法中的步骤,或者执行图7实施例中服务器侧的功能。
本申请实施例中使用的术语“耦合”意指直接连接或者通过一个或多个居间组件或电路连接。
应当理解,上述服务器30仅为本申请实施例提供的一个例子,具体实现中,服务器30可具有比图示更多的部件。
图4为本申请实施例提供的一种光照估计系统的结构框图。参见图4所示,该系统可以包括电子设备100和服务器200,电子设备100可以是上述图1中的第一电子设备。在电子设备100中配置图像采集模块101、网络传输模块102、计算模块103、渲染模块104和显示模块105。图像采集模块101、网络传输模块102、计算模块103、渲染模块104和显示模块105可以以软件代码的形式存在,在一具体方式中,这些功能模块的数据/程序可被存储在电子设备的存储器中,并可运行于电子设备的处理器。
图像采集模块101被配置成利用如图2所示的摄像头25来获得当前场景中的多帧第一图像,多帧第一图像的曝光参数不同,并将多帧第一图像传输给网络传输模块102。
网络传输模块102可利用如图2所示的收发器28,实现与服务器200的通信,具体的,网络传输模块102被配置成向服务器200上传图像,从服务器200下载图像,以及对图像的编解码,以确保电子设备100和服务器200之间通信的高效性。
计算模块103和渲染模块104被配置成可利用如图2所示的处理器211,进行网络的推理、光照参数的求解及基于3D模型的材质、几何信息进行渲染操作等。其中,网络的推理包括但不限于深度学习模型的推理、或风格迁移网络的推理等。
显示模块105被配置成利用如图2所示的用户接口23实现用户操作的检测获得,以及利用如图2所示的显示组件24实现图像/视频/虚拟物体等的显示,例如AR/VR/MR等应用内容的显示。示例性的,可以将计算模块103和渲染模块104产生的渲染结果呈现给用户。
具体实施例中,电子设备100中的各功能模块可相互配合,以执行如图5实施例所示方法中的步骤,或者执行如图7实施例中电子设备侧的功能。
在服务器200中配置网络传输模块201、存储模块202和AI计算模块203。网络传输模块201、存储模块202和AI计算模块203可以以软件代码的形式存在。在一具体实现中,这些功能模块的数据/程序可被存储于如图3所示的存储器302,并可运行于如图3所示的处理器301。
网络传输模块201,可利用如图3所示的收发器303,实现与电子设备100的通信。示例性的,网络传输模块201可以接收来自电子设备100的图像,例如,多帧第一图像。网络传输模块201可以将高动态范围全景图像提供给电子设备100。
存储模块202可用于存储、维护和更新预设图像库。
AI计算模块203可被配置成基于多帧第一图像进行光照估计,以提升光照估计的准确性。
具体实施例中,服务器200中的各功能模块可相互配合,以执行如图6实施例所示方法中的步骤,或者执行图7实施例中服务器侧的功能。
基于上文的描述,下面给出本申请实施例提供的一些光照估计方法,该光照估计方法用于提供更加逼真的虚拟物体显示效果。对于下文描述的各方法实施例,为了方便起见,将其都表述为一系列的动作步骤的组合,但是本领域技术人员应该知悉,本申请技术方案的具体实现并不受所描述的一系列的动作步骤的顺序的限制。
图5为本申请实施例提供的一种光照估计方法的流程示意图。在一些可能的实施例中,该方法可应用于具有显示组件和摄像头的第一电子设备。换言之,该方法可以由图1或图2或图4所示的第一电子设备执行,或者由内置于第一电子设备的用于显示虚拟物体的应用程序执行,本申请实施例对此不做具体限定。该方法包括但不限于以下步骤:
步骤501、检测到用户执行的第一操作。
本申请实施例中,用户在第一电子设备上输入用于显示虚拟物体的触发操作。用于显示虚拟物体的触发操作可以是任意触发操作,例如,用于打开AR应用程序的操作,或者用于打开一个应用程序的AR功能的操作等,本申请实施例对此不做具体限定。该触发操作的具体形式可以是点击、触摸、滑动、抖动、声控等操作。
步骤502、响应于用户执行的第一操作,在第一时间以不同曝光参数拍摄第一电子设备所在场景的多帧第一图像。
其中,第一时间可以是以检测到第一操作的时间为起点的一个时间段,该时间段的时间长度可以根据需求进行合理设置。例如,0.5s、1s等。示例性的,时间长度可以与图像采集模块的采集频率有关。本申请实施例第一电子设备可以通过图像采集模块以不同曝光参数采集当前场景的图像,得到多帧第一图像。当前场景可以是在第一时间的第一电子设备所在场景。各帧第一图像对应的曝光参数不同。各帧第一图像对应的曝光参数不同是指,以不同曝光参数采集的各帧第一图像。各帧第一图像的曝光量不同,所呈现的明暗程度不同。
多帧第一图像的帧数可以是2帧、3帧、4帧或者更多帧,其可以根据需求进行合理设置。
一种可实现方式中,多帧第一图像可以包括一帧或多帧曝光不足的图像、一帧或多帧正确曝光的图像、以及一帧或多帧曝光过度的图像。示例性的,以3帧第一图像为例进行举例说明,3帧第一图像可以包括一帧曝光不足的图像、一帧正确曝光的图像和一帧曝光过度的图像。3帧第一图像各自对应的曝光参数不同。曝光不足的图像画面会整体偏暗,主要用来捕捉当前场景中的明亮部分,以保证明亮部分的曝光准确。正确曝光的图像会突出画面主题,以保证画面主体的纹理清晰,但对于当前场景中过亮或者过暗的部分细节无法突显。曝光过度的图像整体亮度会偏亮,主要用来捕捉当前场景中偏暗部分的细节,保证当前场景中偏暗部分获得正确的曝光。
示例性的,曝光参数可以包括光圈、快门速度或感光度中一项或者多项。
一种示例,响应于该第一操作,一方面第一电子设备可以在第一时间以不同曝光参数拍摄第一电子设备所在场景的多帧第一图像,另一方面第一电子设备可以在显示组件上显示应用程序的界面。举例而言,该应用程序的界面中可以呈现正确曝光的图像。该应用程序可以是第一电子设备中安装的AR应用程序。
步骤503、向服务器发送多帧第一图像,多帧第一图像用于得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在第一电子设备上显示的虚拟物体。
多帧第一图像各自的曝光量不同,使得多帧第一图像各自的明暗程度不同。多个不同曝光量的第一图像可以用于生成该场景的高动态范围全景图像,即HDR全景图像。HDR全景图像的视场角可以是360度。基于HDR全景图像可以提取第一电子设备所在场景在第一时间的光照信息,该光照信息是该场景的全景光照信息。基于该光照信息渲染虚拟物体,可以使得显示的虚拟物体更加真实,实现虚拟物体与真实场景的无缝融合。
一种可实现方式,第一电子设备可以接收服务器发送的HDR全景图像。第一电子设备可以基于HDR全景图像提取第一电子设备所在场景在第一时间的光照信息,以渲染虚拟物体。
另一种可实现方式,服务器可以基于HDR全景图像提取第一电子设备所在场景在第一时间的光照信息,并将第一电子设备所在场景在第一时间的光照信息发送给第一电子设备,以供第一电子设备基于此渲染虚拟物体。
由于第一电子设备的摄像头的视场角受限,所以通过摄像头采集的各帧第一图像的视场角可以是一个较小的视场角,即非全景图像。本申请实施例的光照估计方法可以根据多个不同曝光量的第一图像,生成该场景的高动态范围全景图像,以实现对该场景的光照信息的准确估计。
示例性的,第一电子设备或者服务器可以根据多个不同曝光量的第一图像,生成HDR局部图像和LDR局部图像。HDR局部图像的视场角与各个不同曝光量的第一图像的视场角相同。LDR局部图像的视场角与各个不同曝光量的第一图像的视场角相同。从服务器获取与第一电子设备的位姿信息匹配的多帧第二图像,多帧第二图像与多帧第一图像的场景相同但拍摄角度不同。之后,基于多帧第二图像和LDR局部图像,得到LDR全景图像。进而,将HDR局部图像的光照信息迁移至LDR全景图像中,以得到HDR全景图像。
其中,多帧第二图像可以来自于第一电子设备,也可以来自于一个或多个第二电子设备。当多帧第二图像包括来自于第二电子设备的图像时,本申请实施例可以实现多设备端云协同的光照估计方法,以提升光照估计的准确性。
本实施例,通过检测到用户执行的第一操作,响应于用户执行的第一操作,在第一时间以不同曝光参数拍摄第一电子设备所在场景的多帧第一图像,向服务器发送多帧第一图像,多帧第一图像用于得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在第一电子设备上显示的虚拟物体。本实施例可以根据多个不同曝光量的第一图像,生成第一电子设备所在场景的高动态范围全景图像,以实现对场景中的光照信息的准确估计。相较于使用单帧图像估计场景中的光照信息,本实施例基于第一电子设备所在场景的高动态范围全景图像得到的光照信息的准确性更高。基于该光照信息渲染虚拟物体,可以满足光照一致性,使得显示的虚拟物体更加真实,实现虚拟物体与真实场景的无缝融合。
图6为本申请实施例提供的一种光照估计方法的流程示意图。在一些可能的实施例中,该方法可应用于服务器。换言之,该方法可以由图1或图3或图4所示的服务器执行,本申请实施例对此不做具体限定。该方法包括但不限于以下步骤:
步骤601、接收第一电子设备发送的多帧第一图像,多帧第一图像是第一电子设备在第一时间以不同曝光参数拍摄的第一电子设备所在场景的多帧图像。
例如,服务器可以通过上述网络传输模块接收第一电子设备发送的多帧第一图像。多帧第一图像的具体解释说明可以参见图5所示实施例的步骤502中关于多帧第一图像的解释说明,此处不再赘述。
步骤602、获取第一电子设备的位姿信息。
第一电子设备的位姿信息可以是第一电子设备在当前场景下的6DoF位姿。
一种可实现方式,服务器可以接收第一电子设备发送的位姿信息。示例性的,第一电子设备可以通过视觉定位技术得到自身的位姿信息,并发送给服务器。
另一种可实现方式,服务器可以根据上述多帧第一图像,通过视觉定位技术,得到第一电子设备的位姿信息。示例性的,服务器可以根据多帧第一图像,生成低动态范围局部图像,即LDR局部图像。之后,根据LDR局部图像,通过视觉定位技术,确定第一电子设备的位姿信息。当然可以理解的,服务器也可以根据多帧第一图像中的一帧第一图像,例如,该帧第一图像可以是正确曝光的第一图像,通过视觉定位技术,确定第一电子设备的位姿信息。对于第一电子设备的位姿信息的获取方式,本申请实施例不以上述示例性说明作为限制。
步骤603、获取与第一电子设备的位姿信息匹配的多帧第二图像,多帧第二图像与多帧第一图像的场景相同但拍摄角度不同。
各帧第一图像对应的曝光参数不同,但拍摄角度相同。各帧第二图像与任一第一图像的场景相同但拍摄角度不同,多帧第二图像用于生成第一电子设备所在场景的全景图像。在一些情况下,多帧第二图像各自对应的光照条件与第一图像对应的光照条件不同。多帧第二图像各自对应的光照条件是指,在拍摄得到各帧第二图像时的光照条件。
示例性的,服务器中设置有预设图像库,该预设图像库可以包括来自于第一电子设备和/或至少一个第二电子设备拍摄的多帧图像。服务器可以根据第一电子设备的位姿信息,从预设图像库中,匹配得到多帧第二图像。
步骤604、根据多帧第一图像和多帧第二图像,得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在电子设备上显示的虚拟物体。
基于HDR全景图像可以提取第一电子设备所在场景在第一时间的光照信息,该光照信息是该场景的全景光照信息。基于该光照信息渲染虚拟物体,可以使得显示的虚拟物体更加真实,实现虚拟物体与真实场景的无缝融合。
示例性的,服务器可以根据多帧第一图像,生成HDR局部图像。根据多帧第二图像,生成LDR全景图像。将HDR局部图像的光照信息,迁移至LDR全景图像,得到第一电子设备所在场景的HDR全景图像。
多帧第一图像可以包括一帧或多帧曝光不足的图像、一帧或多帧正确曝光的图像、以及一帧或多帧曝光过度的图像。其中,曝光不足的图像会整体偏暗,主要用来捕捉当前场景中的明亮部分,以保证明亮部分的曝光准确。正确曝光的图像会突出画面主题,以保证画面主体的纹理清晰。曝光过度的图像整体亮度会偏亮,主要用来捕捉当前场景中偏暗部分的细节,保证当前场景中偏暗部分获得正确的曝光。这样,通过将同一场景下相同拍摄角度的多帧第一图像进行融合,得到HDR局部图像,从而可以恢复真实场景的亮度信息。该HDR局部图像可以是HDR格式的图片。
一种可实现方式,在得到HDR局部图像之后,还可以通过色调映射方法将HDR局部图像转换为8位单通道图像,这样可以得到LDR局部图像。将LDR局部图像的光照信息分别迁移至多帧第二图像,得到多帧第三图像,进而根据多帧第三图像,生成LDR全景图像。多帧第二图像与多帧第一图像的场景相同但拍摄角度不同,且拍摄时的光照条件不同,通过将LDR局部图像的光照信息分别迁移至多帧第二图像,得到多帧第三图像,使得多帧第三图像的光照条件统一至LDR局部图像的光照条件下。之后,对多帧第三图像进行拼接、或者拼接和补全操作,生成LDR全景图像。
由于第一电子设备的摄像头的视场角受限,所以通过摄像头采集的各帧第一图像的视场角可以是一个较小的视场角,即非全景图像。本申请实施例的光照估计方法可以根据多个不同曝光量的第一图像,生成HDR局部图像。根据多帧第二图像,生成LDR全景图像。将HDR局部图像的光照信息,迁移至LDR全景图像,得到第一电子设备所在场景的HDR全景图像,以实现对该场景的光照信息的准确估计。
可选的,服务器向第一电子设备发送HDR全景图像。第一电子设备可以基于HDR全景图像提取第一电子设备所在场景在第一时间的光照信息,以渲染虚拟物体。
可选的,服务器可以基于HDR全景图像提取第一电子设备所在场景在第一时间的光照信息,并将第一电子设备所在场景在第一时间的光照信息发送给第一电子设备,以供第一电子设备基于此渲染虚拟物体。
本实施例,通过接收第一电子设备发送的多帧第一图像,多帧第一图像是第一电子设备在第一时间以不同曝光参数拍摄的第一电子设备所在场景的多帧图像,获取与第一电子设备的位姿信息匹配的多帧第二图像,多帧第二图像与多帧第一图像的场景相同但拍摄角度不同,根据多帧第一图像和多帧第二图像,得到该场景的高动态范围全景图像,该高动态范围全景图像用于提取该场景在第一时间的光照信息,该场景在第一时间的光照信息用于渲染在电子设备上显示的虚拟物体。本实施例可以根据多个不同曝光量的第一图像,生成第一电子设备所在场景的高动态范围全景图像,以实现对场景中的光照信息的准确估计。相较于使用单帧图像估计场景中的光照信息,本实施例基于第一电子设备所在场景的高动态范围全景图像得到的光照信息的准确性更高。基于该光照信息渲染虚拟物体,可以满足光照一致性,使得显示的虚拟物体更加真实,实现虚拟物体与真实场景的无缝融合。
图7为本申请实施例提供的一种光照估计方法的流程示意图,图8为本申请实施例提供的一种光照估计方法的处理过程示意图,图9为本申请实施例提供的一种用户界面的示意图,在一些实现中,该方法可应用于服务器和具有显示组件和摄像头的第一电子设备,从而实现端(即第一电子设备侧)云(即服务器侧)协同的光照估计,以提升光照估计的准确性。结合图7和图8所示,该方法包括但不限于以下步骤:
步骤701、第一电子设备检测到用户执行的第一操作。
步骤702、第一电子设备响应于第一操作,在第一时间以不同曝光参数拍摄第一电子设备所在场景的多帧第一图像。
其中,步骤701和步骤702的解释说明可以参见图5所示实施例的步骤501和步骤502。
步骤703、第一电子设备向服务器发送多帧第一图像。
可选的,第一电子设备还可以显示提示信息,该提示信息用于提示用户将采集当前场景下的多帧不同曝光参数的图像,并将所采集的多帧图像上传至云端。
一种示例,结合图9中的(a)所示,示例性的给出了一种第一电子设备的用户界面,该用户界面可以包括当前场景的画面901、提示信息902、确认按键903和否认按键904。当前场景的画面901可以是第一电子设备通过自身摄像头采集的当前场景的画面。示例性的,当前场景的画面901具体可以是正确曝光的图像。提示信息902用于提示用户将采集当前场景下的多帧不同曝光参数的图像,并将所采集的多帧图像上传至云端。确认按键903用于接收用户确认允许采集当前场景下的多帧不同曝光参数的图像,并将所采集的多帧图像上传至云端的操作。否认按键904接收用户不允许采集当前场景下的多帧不同曝光参数的图像,并将所采集的多帧图像上传至云端的操作。第一电子设备检测到用户点击确认按键903时,可以执行步骤703,将多帧不同曝光参数的图像上传至服务器。并通过如下实施例的步骤进行光照估计,基于此渲染虚拟物体,以显示如图9中的(b)所示的用户界面,该用户界面可以包括当前场景的画面901和虚拟物体905。
需要说明的是,图9所示用户界面还可以包括其他界面元素,本申请实施例不以上述示例作为限制。例如,第一电子设备可以设置一个监听机制,以一定周期检测网络连接状态,当检测到网络连接异常或者网络信号不稳定时,可以在用户界面显示弹框,在弹框中显示提示用户当前网络信号不稳定,对当前场景的光照条件估计可能存在一定偏差的信息。
以3帧第一图像为例进行举例说明,结合图8所示,第一电子设备向服务器发送3帧第一图像,分别是曝光过度、正确曝光和曝光不足的第一图像。
步骤704、服务器根据多帧第一图像,生成HDR局部图像和LDR局部图像。
本申请实施例可以基于多帧不同曝光参数的第一图像,合成HDR局部图像和LDR局部图像。
由于普通相机采集图像的每个颜色通道仅有8位,有限的通道位数使得每个通道的像素值范围在0~255之间,因此相机采集的图像的动态范围是有限的。现实世界中的动态范围是非常大的,为了使得虚拟物体与真实世界满足光照一致性,需要估计真实场景中的高动态范围的光照信息。通过调整相机的曝光参数依次拍摄曝光不足的第一图像、正确曝光的第一图像及曝光过度的第一图像,然后利用多曝光图像融合算法生成HDR局部图像。可选的,为了减少在合成HDR局部图像时产生的伪影,可以使用中值阈值位图对齐(alignto median threshold bitmaps,AlignMTB)算法对多帧不同曝光参数的第一图像进行对齐,然后提取相机的响应函数,把图像强度变成线性从而对多帧第一图像进行合成,生成HDR格式的HDR局部图像。通过多帧不同曝光参数的第一图像合成HDR局部图像,可以恢复真实场景中的亮度信息,通过色调映射方法将HDR局部图像转换为8位单通道图像,从而生成LDR局部图像。LDR局部图像可以保留尽可能多的细节。
示例性的,以3帧第一图像为例作进一步举例说明,如图8所示,服务器可以将多帧第一图像合成为HDR局部图像和LDR局部图像。
步骤705、服务器根据LDR局部图像,得到第一电子设备的位姿信息。
服务器可以利用视觉定位系统(visual positioning system,VPS)的视觉定位技术,根据合成的LDR局部图像获取第一电子设备在当前场景下的6DOF位姿,该6DOF位姿的定位精度可以是厘米级的定位精度,且不依赖GPS系统。
步骤706、服务器根据第一电子设备的位姿信息,从预设图像库中匹配得到多帧第二图像。
服务器可以根据第一电子设备的位姿信息在预设图像库中搜寻最佳匹配的N帧图像,N为大于1的任意正整数。例如,可以得到如图8所示的第二图像1、第二图像2、……、第二图像N。
可选的,服务器还可以更新预设图像库,即将LDR局部图像或正确曝光的第一图像存储至预设图像库中。
步骤707、服务器将LDR局部图像的光照信息,分别迁移至多帧第二图像,得到多帧第三图像。
服务器可以使用风格迁移网络将LDR局部图像的光照信息,分别迁移至多帧第二图像,得到多帧第三图像。示例性的,可以将LDR局部图像和一帧第二图像输出至风格迁移网络,获取风格迁移网络输出的一帧第三图像。采用相同的方式,依次将各帧第二图像输入至风格迁移网络,以得到各帧第三图像。例如,可以得到如图8所示的第三图像1、第三图像2、……、第三图像N。
利用风格迁移网络将多帧第二图像的光照信息统一到LDR局部图像中的光照条件下。
示例性的,图10为本申请实施例提供的一种风格迁移网络的示意图,如图10所示,该风格迁移网络可以包括一个生成器(Generator_1),生成器(Generator_1)的输入为一帧第二图像和LDR局部图像,生成器(Generator_1)的输出为一帧第三图像,生成器(Generator_1)用于将LDR局部图像的光照信息迁移至第二图像,以得到第三图像。
步骤708、服务器对多帧第三图像进行拼接,得到LDR残缺图像。
服务器可以利用图像拼接技术得到残缺的全景图,即LDR残缺图像。例如,得到如图8所示的LDR残缺图像。
步骤709、服务器对LDR残缺图像进行图像补全处理,生成LDR全景图像。
服务器可以对LDR残缺图像中的缺失数据进行补全,以得到纹理清晰、内容合理的LDR全景图像。例如,得到如图8所示的LDR全景图像。
示例性的,服务器可以将LDR残缺图像输入至深度学习模型中,获取深度学习模型输出的LDR全景图像。这里的深度学习模型具有补全缺失数据的能力。该深度学习模型是使用包括残缺图像和对应的完整图像的训练数据进行训练得到的。
步骤710、服务器将HDR局部图像的光照信息迁移至LDR全景图像,得到HDR全景图像。
服务器可以使用风格迁移网络将HDR局部图像的光照信息,迁移至LDR全景图像。示例性的,可以将HDR局部图像和LDR全景图像输出至风格迁移网络,获取风格迁移网络输出的HDR全景图像。例如,可以得到如图8所示的HDR全景图像。
利用风格迁移网络将纹理清晰、内容合理的LDR全景图像的光照信息统一到HDR局部图像中的光照条件下。
需要说明的是,步骤710中使用的风格迁移网络和步骤707中使用的风格迁移网络可以是同一网络,例如,如图10所示的生成器,也可以是不同网络,其可以根据需求进行合理设置。
步骤711、服务器向第一电子设备发送HDR全景图像。
HDR全景图像可以更准确的反映真实场景中的光照信息。
需要说明的是,在一些实施例中,服务器可以根据HDR全景图像提取光照信息,将光照信息发送给第一电子设备,使得第一电子设备可以基于光照信息对虚拟物体进行渲染。本申请以服务器向第一电子设备发送HDR全景图像为例进行举例说明。
步骤712、第一电子设备根据HDR全景图像渲染虚拟物体,并显示渲染后的虚拟物体。
以第一电子设备提取光照信息为例,第一电子设备可以执行以下至少一项:
(1)提取HDR全景图像中的主光源方向,该主光源方向可以用以给虚拟物体投射方向光,使其产生阴影、高光等渲染效果。
(2)提取HDR全景图像中的球谐系数,该球谐系数用于给虚拟物体投射环境光,可以使得虚拟物体表面纹理细节更加有层次感,提升虚拟物体与环境的融合效果。
(3)提取HDR全景图像中的环境纹理图,该环境纹理图用于使具有镜面反射材质的虚拟物体对当前场景的纹理进行镜面反射。
现实世界中的光照条件是极其复杂的,本申请实施例可以采用球谐光照来完成HDR全景图像中的光照信息的提取,以产生高质量的实时渲染及阴影效果。球谐光照是一项用来实现超真实光照的渲染技术,其基于球谐基理论对复杂光照方程的一种简化。
L(p,ω
描述了经典的全局光照公式,如上述公式(1),将光照方程视为某点处的自发光及某点附近的球面上的积分之和,由该公式可知,对于物体表面的某一个点的反射的光亮度由这个点的自发光、光线追踪过程中其他入射光线能量、双向反射分布函数(bidirectional reflectance distribution function,BRDF)、遮挡关系及几何关系共同决定。公式符号详细含义如下:
L(p,ω
Le(p,ω
f
L
G(p,p')表示该点与L
V(p,p')表示p与p'之间的可见性函数,决定遮挡关系。
对于空间中某一点的光亮度是由空间中各个方向的入射光共同决定的。因为光照方程的复杂性,现阶段端侧硬件条件不足以根据公式实时计算空间中特定点的光照信息,相反可以通过球谐变换,利用球谐基作为基底函数来拟合这个方程,求得球谐系数以实现场景中光照信息的近似计算,球谐系数计算公式(2)如下:
采用蒙特卡洛积分方法计算球谐系数的表达式,其中,c
通过球谐变换将HDR全景图像中蕴含的光照信息表示成球谐系数,根据球谐系数提取场景中的主光源强度及环境光强度,将真实场景中的光照信息叠加到虚拟物体上,提升虚拟物体的真实感。
本实施例,根据多帧不同曝光参数的第一图像生成LDR局部图像及HDR局部图像,根据LDR局部图像获取第一电子设备的位姿信息,基于位姿信息从预设图像库中搜索最佳匹配的多帧第二图像。将LDR局部图像中的光照信息迁移到多帧第二图像中,以得到多帧第三图像,利用图像拼接技术将多帧第三图像进行拼接,得到一帧不完整的全景图,即LDR残缺图像。之后对LDR残缺图像进行补全,得到纹理清晰、内容合理的LDR全景图像。将HDR局部图像中的光照信息迁移到LDR全景图像中,以得到HDR全景图像。相较于使用单帧图像估计场景中的光照信息,本实施例基于第一电子设备所在场景的高动态范围全景图像得到的光照信息的准确性更高。基于该光照信息渲染虚拟物体,可以满足光照一致性,使得显示的虚拟物体更加真实,实现虚拟物体与真实场景的无缝融合。
需要说明的是,上述实施例以第一电子设备将多帧第一图像发送给服务器,由服务器对多帧第一图像进行处理,以得到第一电子设备所在场景的HDR全景图像为例进行举例说明,本申请实施例提供了其他可实现方式的光照估计方法,例如,第一电子设备检测到用户执行的第一操作,响应于用户执行的第一操作,在第一时间以不同曝光参数拍摄第一电子设备所在场景的多帧第一图像,第一电子设备可以从服务器获取与第一电子设备的位姿信息相匹配的多帧第二图像,进而根据多帧第一图像和多帧第二图像,得到第一电子设备所在场景的HDR全景图像。换言之,上述图7所示实施例中由服务器执行的步骤也可以由第一电子设备执行,例如,利用风格迁移网络进行光照信息迁移,利用深度学习模型进行图像补全等。这样,也可以实现对场景中的光照信息的准确估计。相较于使用单帧图像估计场景中的光照信息,基于第一电子设备所在场景的高动态范围全景图像得到的光照信息的准确性更高。基于该光照信息渲染虚拟物体,可以满足光照一致性,使得显示的虚拟物体更加真实,实现虚拟物体与真实场景的无缝融合。
上述实施例中涉及的风格迁移网络可以采用下述实施例的方式训练得到。
首先,对风格迁移网络的训练数据集进行解释说明。
风格迁移网络的训练数据集可以包括多组不同场景的训练图像,每组场景的训练图像可以包括同一场景下的不同光照条件下的多帧训练图像。同一场景下的不同光照条件下的多帧训练图像的视场角可以相同也可以不同。同一场景下的相同光照条件下的多帧训练图像的拍摄角度可以不同。
本申请实施例可以一场景中添加移动控件001并在其上绑定一个相机,其中相机的曝光参数可以根据需求进行控制,其主要用来在场景中进行随机游走并拍摄多帧不同曝光参数的图像。在场景中添加控件002并在其上绑定一个全景相机,其移动轨迹受到控件001的约束,全景相机主要负责采集场景中指定位置处的HDR全景图像。控制移动控件001在该场景中随机游走一定次数后,以具有一定随机性的方式对场景中光照进行改变,如随机改变光源的位置、强度、光源数量等。通过上述方法可以采集同一场景下不同光照条件下的训练图像,当采集一定数据量的训练图像之后,通过更换场景,不断重复上述步骤,生成更多的训练图像。其中,全景相机采集的HDR全景图像可以作为用于将HDR局部图像的光照信息迁移至LDR全景图像的风格迁移网络的训练数据,即作为训练过程中风格迁移网络输出的HDR全景图像,对应的真实数据(ground truth)。
之后,可以使用训练数据集对风格迁移网络进行训练。
风格迁移网络负责将LDR局部图像或者HDR局部图像中的光照信息迁移到指定图像(例如,第二图像、LDR全景图像)中。本申请实施例采用循环生成对抗网络(generativeadversarial networks,GAN)训练风格迁移网络。
光照着色模型公式可以如下公式(3)。
其中X
图11为本申请实施例提供的风格迁移网络的训练结构示意图,如图11所示,包括两个生成器,分别是Generator_1和Generator_2,两个判别器,分别是Discriminator_1和Discriminator_2。生成器Generator_1的输入是x1和y2,其作用是将x1中的光照信息light1迁移到y中得到输出y1’,将y2中的光照信息light2迁移到x中得到输出x2’。生成器Generator_2的输入是x2’和y1’,其作用是将x2’中的光照信息light2’迁移到y中得到输出y2’,将y1’中的光照信息light1’迁移到x中得到输出x1’。
生成器Generator_1和Generator_2通过循环一致损失函数(例如,如图11中的Cycle_Consit_loss)来约束两个网络的训练,使得生成器Generator_2产生的输出尽可能接近生成器Generator_1的输入,通过计算L1损失函数(例如,如图11中的L1_loss)监督生成器Generator_1与Generator_2的输出。
判别器Discriminator_1的输入是x2和x2’或者y1和y1’,负责区分生成器Generator_1产生的输出与其对应真实数据(ground truth)(x2或y1),损失函数采用二元交叉熵损失函数(例如,如图11中的gan_loss、disc_loss)来计算两个分布之间的距离。判别器Discriminator_2的输入是y2和y2’或者x1和x1’,负责区分生成器Generator_2产生的输出与其对应ground truth(y2或x1)。判别器与生成器通过博弈的机制促使两个网络逐渐变强,生成器希望生成接近真实光照条件的数据,判别器希望提高自己分辨真假的能力。
基于上述训练数据集,训练时随机抽取某一场景中相同视场角下不同光照条件的训练图像、不同视场角下相同光照条件下的训练图像及不同视场角下的不同光照条件的训练图像交替训练网络,使得风格迁移网络可以实现不同光照条件的风格迁移。
本申请实施例可以根据上述方法示例对上述第一电子设备或服务器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。例如,第一电子设备可以划分为收发模块和处理模块,用于执行图5所示实施例或者图7所示实施例的第一电子设备所执行的步骤。服务器可以划分为收发模块和处理模块,用于执行图6所示实施例或者图7所示实施例的服务器所执行的步骤。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
本申请实施例还提供一种计算机可读存储介质,该计算机存储介质中存储有计算机软件指令,当计算机软件指令在光照估计装置中运行时,光照估计装置可执行上述实施例中的相关方法步骤实现上述实施例中的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述实施例中的相关方法步骤实现上述实施例中的方法。
其中,本申请实施例提供的第一电子设备,服务器,计算机存储介质或者计算机程序产品均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法,可以通过其它的方式实现。例如,以上所描述的车载终端实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序指令的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
- 地铁站火灾人员疏散仿真方法及系统
- 多危险源下的地铁站内人员疏散仿真路径规划方法及系统