二维图像的三维化方法、装置、设备及计算机可读存储介质与流程

文档序号:23011937发布日期:2020-11-20 12:12阅读:142来源:国知局
二维图像的三维化方法、装置、设备及计算机可读存储介质与流程

本申请涉及图像处理技术,尤其涉及一种二维图像的三维化方法、装置、电子设备及计算机可读存储介质。



背景技术:

人工智能(ai,artificialintelligence)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法和技术及应用系统。

图像处理是人工智能的典型应用,随着互联网技术的发展,越来越多的应用产品提供了对图像进行多样化呈现的功能,相关应用产品不仅能够对二维图像进行呈现,还能够对二维图像进行三维化处理,从而呈现与二维图像内容相关的三维化视频,申请人在实施本申请实施例的过程中发现三维化视频生成主要依赖于基于多角度摄像头的三维建模,但是需要耗费大量的计算资源成本以及时间成本。



技术实现要素:

本申请实施例提供一种二维图像的三维化方法、装置、电子设备及计算机可读存储介质,能够基于一个二维图像快速且准确地生成三维化视频。

本申请实施例的技术方案是这样实现的:

本申请实施例提供一种二维图像的三维化方法,包括:

对二维图像进行深度感知处理,得到所述二维图像中每个像素点的深度值;

对所述二维图像中每个像素点分别进行多个视角的迁移处理,得到对应每个视角的迁移结果;

基于所述二维图像中每个像素点的深度值以及每个视角的迁移结果,确定对应每个视角的迁移图像中每个像素点的色彩值;

基于每个视角的迁移图像中每个像素点的色彩值,生成对应视角的迁移图像;

将多个视角的迁移图像按照顺序封装,得到三维化视频。

本申请实施例提供一种二维图像的三维化装置,包括:

深度模块,用于对二维图像进行深度感知处理,得到所述二维图像中每个像素点的深度值;

迁移模块,用于对所述二维图像中每个像素点分别进行多个视角的迁移处理,得到对应每个视角的迁移结果;

色彩确定模块,用于基于所述二维图像中每个像素点的深度值以及每个视角的迁移结果,确定对应每个视角的迁移图像中每个像素点的色彩值;

生成模块,用于基于每个视角的迁移图像中每个像素点的色彩值,生成对应视角的迁移图像;

封装模块,用于将多个视角的迁移图像按照顺序封装,得到三维化视频。

在上述方案中,所述迁移模块,还用于在基于所述二维图像中每个像素点的深度值以及每个视角的迁移结果,确定对应每个视角的迁移图像中每个像素点的色彩值之前:

将通过所述深度感知处理得到的每个像素点的深度值作为原始深度值,对每个像素点的原始深度值进行深度修复处理,得到每个像素点的修复深度值,将每个像素点的修复深度值替换对应的原始深度值。

在上述方案中,所述迁移模块,还用于:

基于所述二维图像中每个像素点的原始深度值,确定所述二维图像中的边缘像素点以及所述二维图像中的非边缘像素点;

基于所述边缘像素点确定所述二维图像中需要进行中值替换的待替换像素点、以及不需要进行中值替换的保留像素点;

将所述待替换像素点的连通区域内所有非边缘像素点的原始深度值进行降序排序处理,并将降序排序结果的中值作为所述待替换像素点的修复深度值;

保留所述保留像素点的原始深度值作为所述保留像素点的修复深度值。

在上述方案中,所述迁移模块,还用于:

针对所述二维图像中任意一个像素点执行以下处理:

当所述像素点的原始深度值的正则化处理结果与至少一个相邻像素点的原始深度值的正则化处理结果之间的绝对差值不小于差值阈值时,将所述像素点确定为非边缘像素点;

其中,所述相邻像素点为位于所述任意一个像素点的相邻位置的像素点;

当所述像素点的原始深度值的正则化处理结果与每个相邻像素点的原始深度值的正则化处理结果之间的绝对差值均小于所述差值阈值时,将所述像素点确定为边缘像素点。

在上述方案中,所述迁移模块,还用于:

针对所述二维图像中任意一个像素点执行以下处理:

当所述像素点的连通区域内中至少存在一个边缘像素点时,确定所述像素点为所述待替换像素点;

当所述像素点的连通区域内中不存在边缘像素点时,确定所述像素点为所述保留像素点。

在上述方案中,所述迁移模块,还用于:

对所述二维图像中每个像素点的深度值进行更新,得到所述二维图像中每个像素点的更新深度值;

其中,所述更新深度值与对应像素点的修复深度值成负相关关系;

确定分别与多个视角一一对应的多个移动参数,其中,所述移动参数包括水平移动参数与垂直移动参数;

针对所述每个视角执行以下处理:

确定与设定移动灵敏参数、所述更新深度值、所述水平移动参数、以及所述二维图像的宽度正相关的水平移动矢量;

确定与所述设定移动灵敏参数、所述更新深度值、所述垂直移动参数、以及所述二维图像的高度正相关的垂直移动矢量;

在与所述视角的迁移图像画布中与所述二维图像中每个像素点对应的原始位置,按照所述水平移动矢量以及所述垂直移动矢量开始进行位移,确定每个像素点在所述迁移图像画布中的迁移位置。

在上述方案中,所述每个视角的迁移结果包括:所述二维图像中每个像素点被迁移到所述视角的迁移图像画布中的迁移位置,其中,所述迁移图像画布的尺寸与所述二维图像的尺寸相同;

所述色彩确定模块,还用于:

针对每个视角的迁移图像画布中每个待染色像素点执行以下处理:

确定所述待染色像素点的贡献像素点,其中,所述贡献像素点是所述二维图像中迁移位置位于所述待染色像素点的连通区域内的像素点;

基于所述二维图像中每个像素点在所述视角的迁移图像画布中的迁移位置以及所述二维图像中每个像素点的深度值,确定所述贡献像素点对应所述待染色像素点的贡献权重;

基于每个所述贡献像素点的贡献权重对每个所述贡献像素点的色彩值进行加权处理,得到所述待染色像素点的色彩值。

在上述方案中,所述封装模块,还用于:

基于所述二维图像中每个像素点的深度值,对每个视角的迁移图像进行空缺像素填补处理;

针对每个视角的迁移图像的空缺像素填补结果进行高斯模糊处理,得到高斯模糊图像;

将每个视角的高斯模糊图像按照顺序封装,得到三维化视频。

在上述方案中,所述封装模块,还用于:

针对每个视角的迁移图像中的每个待染色像素点,执行以下处理:

当所述待染色像素点的连通区域内不存在对应所述待染色像素点的贡献像素点时,将所述待染色像素点的位置确定为空缺位置;

针对所述迁移图像的每个空缺位置执行以下处理:

以所述空缺位置为中心,基于所述二维图像中部分像素点的深度值在所述空缺位置的连通区域内查询所述待染色像素点的参考像素点;

基于所述参考像素点的色彩值,对所述待染色像素点进行颜色值填补处理。

在上述方案中,所述封装模块,还用于:

确定以所述空缺位置为起点的多组查询方向;

其中,每组查询方向所包括的第一方向与第二方向相反;

针对每组查询方向执行以下处理:

在所述空缺位置的连通区域内的第一方向上,确定与所述空缺位置最近的非空缺位置的像素点,并在所述空缺位置的连通区域内的第二方向上,确定与所述空缺位置最近的非空缺位置的像素点;

确定在所述第一方向上与所述第二方向上确定的像素点之间的像素距离;

确定多组查询方向中最小像素距离所对应的两个像素点;

基于所述二维图像中部分像素点的深度值,确定所述两个像素点的渲染深度值,并将渲染深度值较大的像素点确定为所述待染色像素点的参考像素点。

在上述方案中,所述每个视角的迁移结果包括:所述二维图像中每个像素点被迁移到所述视角的迁移图像画布中的迁移位置,其中,所述迁移图像画布的尺寸与所述二维图像的尺寸相同;

所述部分像素点为所述目标像素点的贡献像素点;

所述封装模块,还用于:

将所述两个像素点中任意一个像素点作为目标像素点,以执行以下处理:

确定所述目标像素点的贡献像素点,所述贡献像素点是所述二维图像中与迁移位置位于所述目标像素点的连通区域内的像素点;

基于所述二维图像中部分像素点在所述视角的迁移图像画布中的迁移位置,确定所述贡献像素点针对所述目标像素点的贡献权重;

基于所述贡献像素点的贡献权重,对所述贡献像素点的深度值进行加权处理,得到所述两个像素点的渲染深度值。

本申请实施例提供一种二维图像的三维化方法,包括:

在人机交互界面呈现二维图像;

响应于针对所述二维图像的三维化操作,播放基于所述二维图像生成的视频;

其中,所述视频是通过执行本申请实施例提供的二维图像的三维化方法得到的。

本申请实施例提供一种二维图像的三维化装置,包括:

呈现模块,用于在人机交互界面呈现二维图像;

播放模块,用于响应于针对所述二维图像的三维化操作,播放基于所述二维图像生成的视频;

其中,所述视频是通过执行本申请实施例提供的二维图像的三维化方法得到的。

本申请实施例提供一种电子设备,包括:

存储器,用于存储可执行指令;

处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的二维图像的三维化方法。

本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的二维图像的三维化方法。

本申请实施例具有以下有益效果:

通过对二维图像进行多视角迁移以及对应视角迁移图像生成处理,实现了二维图像层面的视角变换过程,从而在二维图像处理层面上实现了图像三维化过程,以替代三维场景建模过程,在准确进行图像三维化生成三维化视频的同时降低了后台或者终端的计算资源成本以及耗时成本。

附图说明

图1是本申请实施例提供的二维图像的三维化系统的结构示意图;

图2是本申请实施例提供的应用二维图像的三维化方法的电子设备的结构示意图;

图3a-3e是本申请实施例提供的二维图像的三维化方法的流程示意图;

图4是本申请实施例提供的二维图像的三维化方法的流程示意图;

图5是本申请实施例提供的二维图像的三维化方法的深度图;

图6是本申请实施例提供的二维图像的三维化方法的边缘标记图;

图7是本申请实施例提供的二维图像的三维化方法的移动参数获取示意图;

图8是本申请实施例提供的二维图像的三维化方法的贡献示意图;

图9是本申请实施例提供的二维图像的三维化方法的查询示意图;

图10是本申请实施例提供的二维图像的三维化方法的效果示意图;

图11是本申请实施例提供的二维图像的三维化方法的封装示意图;

图12是本申请实施例提供的二维图像的三维化方法的贡献原理图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。

对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。

1)深度图:在三维计算机图形和计算机视觉中,深度图是一种图像或图像通道,其中包含与场景对象的表面到视点的距离有关的信息,用于模拟三维形状或重建三维形状,深度图可以由三维扫描仪生成。

2)像素:数字图像是二维信号,记录了图像在行、列方向上的灰度或色彩,像素是一个计算机图像的最小逻辑单位。

3)深度估计:基于图像来估计它的深度信息,可以基于图像内容理解,基于聚焦,基于散焦,基于明暗变化进行深度估计,图像内容理解的深度估计方法主要是通过对图像中的各个景物分块进行分类,然后对每个类别的景物分别用各自适用的方法估计它们的深度信息。

相关技术中,针对基于二维图像生成含有三维视觉效果的视频的问题,主要解决方式是通过深度学习预测场景深度信息,对场景进行三维建模且对遮挡部分进行填补预测(给定输入图像,反复选择深度边来进行修复,仅考虑边缘处的背景像素进行修复,从边缘提取局部语境区域,并生成合成区域,合成区域是包含新像素的连续二维区域,使用基于学习的方法根据给定的上下文生成合成区域的颜色和深度值,修复完成后再将合成像素合并回深度图,反复重复上述过程进行,直到所有的深度边缘都经过处),再通过模拟相机的移动,改变相机的视角,重新渲染新视角下的图像以获取新视角下的图像,进而展示具有三维效果的视频,上述方式总结为通过预测出来的深度对场景进行三维建模,再通过不同视角的渲染获取不同的场景图像,但是三维建模的过程复杂且耗时,从而不适合支持延时性低的在线功能,相关技术中三维化视频生成方法主要通过深度学习预测场景深度信息,再通过三维建模构建该场景,并对遮挡部分通过深度学习进行填充,通过模拟相机的移动,重新渲染新视角下的图像,以获取带有三维效果的视频,但是上述整个过程计算过程复杂且时间开销大。

本申请实施例提供一种二维图像的三维化方法、装置、电子设备和计算机可读存储介质,能够快速准确地重建不同视角下的图像场景以实现图像的三维化展示,下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以为笔记本电脑,平板电脑,台式计算机,机顶盒,智能家居如智能电视,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以为服务器。下面,将说明设备实施为服务器时的示例性应用。

参见图1,图1是本申请实施例提供的二维图像的三维化系统的结构示意图,为实现支撑一个图像编辑应用,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合,终端400将待处理图像上传至服务器200,由服务器200对待图像处理进行二维图像的三维化处理,得到对应待处理图像的三维化视频,服务器200将三维化视频回传至终端400,并在终端400上进行呈现以及播放。

在一些实施方式中,终端400将待处理图像上传至服务器200的同时还可以将图像三维化操作所指定的渲染模式返回至服务器200,由服务器200按照渲染模式确定出对应的多个视角,以及迁移图像的封装顺序,服务器200按照对应的视角获取对应多个视角的迁移图像,按照封装顺序对迁移图像进行封装,生成三维化视频,回传至终端400进行呈现以及播放。

在图1中是以终端400和服务器200协同完成二维图像的三维化处理为例说明,可以理解地,作为替换方案,终端400可以依赖于自身的能力完成二维图像的三维化处理。

在一些实施例中,终端400通过运行计算机程序来实现本申请实施例提供的二维图像的三维化方法,例如,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(native)应用程序(app,application),即需要在操作系统中安装才能运行的程序,例如视频app或直播app;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意app中的视频小程序或直播小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。

在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本发明实施例中不做限制。

参见图2,图2是本申请实施例提供的应用二维图像的三维化方法的电子设备的结构示意图,以电子设备是依赖于自身能力独立完成二维图像的三维化处理的终端400为例,图2所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统440。

处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digitalsignalprocessor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。

用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。

存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。

存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,readonlymemory),易失性存储器可以是随机存取存储器(ram,randomaccessmemory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。

在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。

操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;

网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universalserialbus)等;

呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);

输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。

在一些实施例中,本申请实施例提供的二维图像的三维化装置可以采用软件方式实现,图2示出了存储在存储器450中的二维图像的三维化装置455,其可以是程序和插件等形式的软件,包括以下软件模块:深度模块4551、迁移模块4552、色彩确定模块4553、生成模块4554、封装模块4555、呈现模块4556和播放模块4557,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。

将结合本申请实施例提供的电子设备的示例性应用和实施,说明本申请实施例提供的二维图像的三维化方法,本申请实施例提供的二维图像的三维化方法可以由上文的终端400独立完成或者由上文所述的终端400和服务器200协同完成。

将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的二维图像的三维化方法。

参见图3a,图3a是本申请实施例提供的二维图像的三维化方法的流程示意图,将结合图3a示出的步骤101-105进行说明。

在步骤101中,对二维图像进行深度感知处理,得到二维图像中每个像素点的深度值。

作为示例,二维图像中像素点的深度值是使用深度感知算法所感知到的像素点的深度值,即下文的原始深度值,深度估计问题在计算机视觉领域属于三维重建,从空间几何,时域变换和焦距变化的关系推导深度距离,深度估计可以用于三维建模、场景理解、深度感知的图像合成等领域,基于深度学习的图像深度估计依据是通过像素深度值关系反映深度关系,通过拟合一个函数将图像映射成深度图,单目深度估计通常利用单一视角的图像数据作为输入,直接预测图像中每个像素对应的深度值。

在一些实施例中,在执行步骤103中基于二维图像中每个像素点的深度值以及每个视角的迁移结果,确定对应每个视角的迁移图像中每个像素点的色彩值之前,可以执行以下技术方案:将通过深度感知处理得到的每个像素点的深度值作为原始深度值,对每个像素点的原始深度值进行深度修复处理,得到每个像素点的修复深度值,将每个像素点的修复深度值替换对应的原始深度值。

作为示例,上述深度修复处理的技术方案主要是用于对深度感知得到的深度值进行深度边缘修复,上述对深度值进行深度修复的过程可以是在执行步骤102之前执行或者在执行步骤102之后且在执行步骤103之前执行。

作为示例,参见图5,图5是本申请实施例提供的二维图像的三维化方法的深度图,步骤101中深度感知过程中获得的深度估计结果在边缘处会产生不均匀的连续跳动,图5中每个格子代表一个像素点,背景对象是黑色格子,前景对象是白色格子,理论上不存在介于中间的灰色格子,才符合同一物体同一深度的原则,然而图5中存在不连续跳动现象,即黑格子与灰格子紧邻,灰格子与白格子紧邻的阶跃跳动,导致本来属于同一对象深度估计结果出现不同。因此,需要针对边缘进行深度修复,可以采取快速中值替换的方式对边缘深度进行改善。

在一些实施例中,上述对每个像素点的原始深度值进行深度修复处理,得到每个像素点的修复深度值,可以通过以下技术方案实现:基于二维图像中每个像素点的原始深度值,确定二维图像中的边缘像素点以及二维图像中的非边缘像素点;基于边缘像素点确定二维图像中需要进行中值替换的待替换像素点、以及不需要进行中值替换的保留像素点;将待替换像素点的连通区域内所有非边缘像素点的原始深度值进行降序排序处理,并将降序排序结果的中值作为待替换像素点的修复深度值;保留保留像素点的原始深度值作为保留像素点的修复深度值。

在一些实施例中,上述基于二维图像中每个像素点的原始深度值,确定二维图像中的边缘像素点以及二维图像中的非边缘像素点,可以通过以下技术方案实现:针对二维图像中任意一个像素点执行以下处理:当像素点的原始深度值的正则化处理结果与至少一个相邻像素点的原始深度值的正则化处理结果之间的绝对差值不小于差值阈值时,将像素点确定为非边缘像素点;其中,相邻像素点为位于任意一个像素点的相邻位置的像素点;当像素点的原始深度值的正则化处理结果与每个相邻像素点的原始深度值的正则化处理结果之间的绝对差值均小于差值阈值时,将像素点确定为边缘像素点。

作为示例,将深度感知过程得到的深度图进行正则化处理,使得深度图的取值范围缩小至0至1的区间中,即norm(d)=(d-d.min)/(d.max–d.min),d.max指的是深度图所有像素点中的最大深度值,dmin指的是深度图所有像素点中的最小深度值,对深度图的每个像素,计算深度图中每个像素点与上、下、左、右相邻4个像素点的深度值的差值绝对值,用以判断该像素点是否在边缘区域,参见图6,图6是本申请实施例提供的二维图像的三维化方法的边缘标记图,若所有差值绝对值(上述四个绝对值)均小于差值阈值,例如,差值阈值被设置为0.04,则将该像素点标记为1,判别为边缘像素点,例如,假设该点正则化后的深度为d(i,j),i表示该点的水平位置,j表示该点的垂直位置,如果max(abs(d(i,j)-d(i+1,j)),abs(d(i,j)-d(i-1,j)),abs(d(i,j)-d(i,j+1)),abs(d(i,j)-d(i,j-1)))<差值阈值,则将该像素点标记为1,判别为边缘像素点,否则将该像素点标记为0,判别为非边缘像素点。

在一些实施例中,上述基于边缘像素点确定二维图像中需要进行中值替换的待替换像素点、以及不需要进行中值替换的保留像素点,可以通过以下技术方案实现:针对二维图像中任意一个像素点执行以下处理:当像素点的连通区域内中至少存在一个边缘像素点时,确定像素点为待替换像素点;当像素点的连通区域内中不存在边缘像素点时,确定像素点为保留像素点。

作为示例,在图6所示的边缘标记图中以每个像素为中心(中心像素)划定连通区域,连通区域指的是与该像素点存在直接和间接联通关系的多个像素点集合,具体该连通区域可以为以该像素为中心的k*k大小的正方形,以将图6中示出的带纹路像素点作为中心像素为例进行说明,它的连通区域为图6中示出的尺寸为3*3的虚线框,如果连通区域中存在边缘像素点(标记为1的点),则对该中心像素进行中值替换处理,否则不需要进行中值替换处理。

作为示例,中值替换处理的具体方式如下:首先确定出需要进行中值替换处理的像素点(中心像素),当像素点(中心像素)的连通区域内中至少存在一个边缘像素点时,将该像素点确定为待替换像素点,即需要进行中值替换处理的像素点,从连通区域中获取所有非边缘像素点的深度值,并从对这些深度值进行小到大排列,利用排列后的中值对该中心像素的深度值进行替换,将二维图像中的每个像素均作为中心像素执行上述处理,从而完成对所有像素的遍历,即完成二维图像的深度值的深度修复处理,对于获得的经过修复的深度图而言,深度越大则表征该像素的视觉距离越远,视觉距离用于表征视点与图中对象的距离,远景对象的视觉距离大于近景对象的视觉距离。

在步骤102中,对二维图像中每个像素点分别进行多个视角的迁移处理,得到对应每个视角的迁移结果。

作为示例,迁移是将二维图像中每个像素点迁移到与二维图像相同尺寸的画布中,对应每个视角的迁移结果包括:每个像素点在每个视角的画布中的位置,对二维图像的三维化处理可以是基于不同风格的三维化处理,例如,形成镜头拉近的三维视频,形成镜头晃动的三维视频,形成镜头拉远的三维视频,针对于不同风格的三维化处理,需要确定出相应视角以及迁移图像的封装顺序,终端接收到针对二维图像的三维化操作时,确定出三维化操作所指定的渲染风格,并进而确定出对应渲染风格的多个视角以及对应视角的迁移图像的封装顺序,假设对应某一渲染风格而言,需要确定两个视角的迁移图像,即需要对二维图像中每个像素点分别进行两个视角的迁移处理,分别得到两个视角的迁移结果。

基于图3a,参见图3b,图3b是本申请实施例提供的二维图像的三维化方法的流程示意图,步骤102中对二维图像中每个像素点分别进行多个视角的迁移处理,得到对应每个视角的迁移结果可以通过图3b示出的步骤1021-1023进行说明。

在步骤1021中,对二维图像中每个像素点的深度值进行更新,得到二维图像中每个像素点的更新深度值。

作为示例,更新深度值与对应像素点的修复深度值或者原始深度值成负相关关系,用于进行更新的深度值可以是原始深度值或者是经过深度修复处理的深度值,当深度修复方案是在执行步骤102之前执行,则用于进行更新的深度值为经过深度修复处理的修复深度值,当深度修复方案是在执行步骤102之后且在执行步骤103之前执行,即用于进行更新的深度值为原始深度值。

作为示例,更新处理可以是进行倒数计算,更新处理后获取新的深度图d=(1/norm(d))–0.5,其中,norm(d)为上述正则化处理,相减所使用的参数不局限于0.5,参考上述公式进行更新处理后得到的深度值介于-0.5和0.5之间,新深度值越大表征视觉距离越小,即像素的距离越近,视觉距离用于表征视点与图中对象的距离,远景对象的视觉距离大于近景对象的视觉距离。

在步骤1022中,确定分别与多个视角一一对应的多个移动参数,其中,移动参数包括水平移动参数与垂直移动参数。

在一些实施例中,确定移动参数的过程可以是在圆周上按照间隔无差别获取移动参数,参见图7,图7是本申请实施例提供的二维图像的三维化方法的移动参数获取示意图,采取(v,u)表示移动参数,v为垂直移动参数,u为水平移动参数,在半径为1的圆周上每隔固定角度获取采集一个点,该点的纵坐标和横坐标即为(v,u)的取值,整个圆上获取多组(v,u)即可用于渲染多个不同视角的迁移图像,进而在针对相同图像进行不同渲染风格的三维化处理时,可以直接获取相应风格的迁移图像,进而按照对应渲染风格的顺序封装即可。

在一些实施例中,确定移动参数的过程可以是在圆周上按照渲染风格所对应的视角个性化获取移动参数,相较于无差别获取移动参数的实施方式,只需要获取若干个视角的移动参数,从而仅需要执行若干个视角的图像迁移与渲染。

在步骤1023中,针对每个视角执行以下处理:确定与设定移动灵敏参数、更新深度值、水平移动参数、以及二维图像的宽度正相关的水平移动矢量;确定与设定移动灵敏参数、更新深度值、垂直移动参数、以及二维图像的高度正相关的垂直移动矢量;在与视角的迁移图像画布中与二维图像中每个像素点对应的原始位置,按照水平移动矢量以及垂直移动矢量开始进行位移,确定每个像素点在迁移图像画布中的迁移位置。

作为示例,水平移动矢量的具体计算方式如下:将水平移动参数u、移动灵敏参数scale、像素的更新深度值、以及二维图像的宽度w相乘得到水平移动矢量,当相乘结果为负数时,则将像素在水平方向上向负方向移动,相乘结果为正数时,则将像素在水平方向上向正方向移动,垂直移动矢量的具体计算方式如下:将垂直移动参数v、移动灵敏参数scale、像素的更新深度值、以及二维图像的高度h相乘得到垂直移动矢量,当相乘结果为负数时,则将像素在垂直方向上向负方向移动,相乘结果为正数时,则将像素在垂直方向上向正方向移动,例如,针对二维图像上的像素(i,j),迁移位置为(i+u*scale*d(i,j)*w,j+v*scale*d(i,j)*h),其中,移动灵敏参数scale为预设常量,设置越大则移动幅度越大,承接上述实施例更新深度图的深度值取值范围可以在-0.5与0.5之间,满足靠前和靠后的对象向不同的方向移动,且距离视点越近或者越远的对象的移动距离远大,这样的移动模式满足三维呈现规律,鉴于水平的迁移位置=i+u*scale*d(i,j)*w;垂直的迁移位置=j+v*scale*d(i,j)*h并不为整数,从而可以采取步骤103中的实施方式向周边位置贡献色彩分量。

在步骤103中,基于二维图像中每个像素点的深度值以及每个视角的迁移结果,确定对应每个视角的迁移图像中每个像素点的色彩值。

基于图3a,参见图3c,图3c是本申请实施例提供的二维图像的三维化方法的流程示意图,步骤103中基于二维图像中每个像素点的深度值以及每个视角的迁移结果,确定对应每个视角的迁移图像中每个像素点的色彩值可以通过图3c示出的步骤1031-1033进行说明。

针对每个视角的迁移图像画布中每个待染色像素点执行以下处理:

在步骤1031中,确定待染色像素点的贡献像素点。

作为示例,贡献像素点是二维图像中迁移位置位于待染色像素点的连通区域内的像素点,连通区域指的是与待染色像素点存在直接和间接联通关系的多个像素点集合,具体该连通区域可以为以待染色像素点为中心的3*3大小的正方形,迁移图像画布最终所得到的迁移图像由待染色像素点组成,步骤102中得到的每个视角的迁移结果包括:二维图像中每个像素点被迁移到视角的迁移图像画布中的迁移位置,其中,迁移图像画布的尺寸与二维图像的尺寸相同。

作为示例,参见图12,图12是本申请实施例提供的二维图像的三维化方法的贡献原理图,例如,迁移图像画布中包括49个待染色像素点,图12中还显示了二维图像中三个像素点a、b和c进行图像迁移后在迁移图像画布的迁移位置,针对于待染色像素点34而言,具有点阵图案的区域为以待染色像素点34为中心确定的连通区域,由于二维图像中三个像素点a、b和c均处于连通区域内,因此,二维图像中三个像素点a、b和c均为待染色像素点34的贡献像素点。

在步骤1032中,基于二维图像中每个像素点在视角的迁移图像画布中的迁移位置、以及二维图像中每个像素点的深度值,确定贡献像素点对应待染色像素点的贡献权重。

在一些实施例中,步骤1032中基于二维图像中每个像素点在视角的迁移图像画布中的迁移位置、以及二维图像中每个像素点的深度值,确定贡献像素点对应待染色像素点的贡献权重,可以通过以下技术方案实现:当贡献像素点位于待染色像素点的连通区域中的右下区域或者正下区域时,对贡献像素点的迁移结果进行向上取整处理,获取与迁移结果和对应向上取整结果之间的绝对差值、以及贡献像素点的更新深度值成正相关的贡献权重;当贡献像素点位于待染色像素点的连通区域中的左上区域或者正上区域时,对贡献像素点的迁移结果进行向下取整处理,获取与迁移结果和对应向下取整结果之间的绝对差值、以及贡献像素点的更新深度值成正相关的贡献权重;当贡献像素点位于待染色像素点的连通区域中的右上区域或者正右区域时,对贡献像素点的水平迁移结果进行向上取整处理,对贡献像素点的垂直迁移结果进行向下取整处理,获取与迁移结果和对应取整结果之间的绝对差值、以及贡献像素点的更新深度值成正相关的贡献权重;当贡献像素点位于待染色像素点的连通区域中的左下区域或者正左区域时,对贡献像素点的迁移结果进行向下取整处理,对贡献像素点的垂直迁移结果进行向上取整处理,获取与迁移结果和对应取整结果之间的绝对差值、以及贡献像素点的更新深度值成正相关的贡献权重。

作为示例,参见图12,由于贡献像素点a和贡献像素点b针对待染色像素点的相对距离不同以及贡献像素点a和贡献像素点b的更新深度值不同,从而贡献像素点a和贡献像素点b针对待染色像素点贡献色彩分量的贡献权重不同,以贡献像素点b为例,该贡献像素点b对待染色像素点34的贡献权重可以为贡献像素点b到待染色像素点34的横纵坐标差值绝对值的乘积,例如,贡献像素点b对待染色像素点34的贡献权重可以为abs(i’-floor(i’))*abs(j’-floor(j’)),其中,floor(i’)操作以及floor(j’)操作为向上取整操作,在计算贡献像素点针右下的待染色像素点的过程中取整操作为向下取整操作,在上述计算得到的贡献权重的基础上还可以将贡献权重乘以exp(t*d(i,j))以更新贡献权重(t可以取值为10),此处的d(i,j)为贡献像素点的更新深度值,从而将贡献像素点在二维图像中的更新深度值针对待染色像素点的影响考虑进来,由于更新深度值后,视觉距离越近的像素点(近景)的d(i,j)越大,其贡献权重也会指数型增大,符合三维视觉效果中的运动规律。

作为示例,当贡献像素点位于待染色像素点的连通区域中的右下区域或者正下区域时,例如,贡献像素点b即位于待染色像素点的连通区域中的右下区域,贡献像素点c即位于待染色像素点的连通区域中的正下区域,对贡献像素点的迁移结果(水平的迁移位置以及垂直的迁移位置)进行向上取整处理,获取与迁移结果和对应向上取整结果之间的绝对差值、以及所述贡献像素点的更新深度值成正相关的贡献权重,正下区域指的是在连通区域内贡献像素点的迁移位置处于待染色像素点的正下方,右下区域指的是在连通区域内贡献像素点的迁移位置处于相对于待染色像素点的第四象限。

作为示例,当贡献像素点位于待染色像素点的连通区域中的左上区域或者正上区域时,例如,贡献像素点a即位于待染色像素点的连通区域中的右下区域,对贡献像素点的迁移结果(水平的迁移位置以及垂直的迁移位置)进行向下取整处理,获取与迁移结果和对应向下取整结果之间的绝对差、以及所述贡献像素点的更新深度值成正相关的贡献权重。正上区域指的是在连通区域内贡献像素点的迁移位置处于待染色像素点的正上方,左上区域指的是在连通区域内贡献像素点的迁移位置处于相对于待染色像素点的第二象限。

作为示例,当贡献像素点位于待染色像素点的连通区域中的右上区域或者正右区域时,对贡献像素点的水平的迁移位置进行向上取整处理,对贡献像素点的垂直的迁移位置进行向下取整处理,获取与迁移结果和对应取整结果之间的绝对差值、以及所述贡献像素点的更新深度值成正相关的贡献权重。正右区域指的是在连通区域内贡献像素点的迁移位置处于待染色像素点的正右方,右上区域指的是在连通区域内贡献像素点的迁移位置处于相对于待染色像素点的第一象限。

作为示例,当贡献像素点位于待染色像素点的连通区域中的左下区域或者正左区域时,对贡献像素点的迁移结果进行向下取整处理,对贡献像素点的垂直迁移结果进行向上取整处理,获取与迁移结果和对应取整结果之间的绝对差值、以及所述贡献像素点的更新深度值成正相关的贡献权重。正左区域指的是在连通区域内贡献像素点的迁移位置处于待染色像素点的正左方,左下区域指的是在连通区域内贡献像素点的迁移位置处于相对于待染色像素点的第三象限。

作为示例,以待染色像素点的中心作为原点,按照图12所示的方式建立垂直与水平的坐标轴,从而得到上述第一象限至第四象限。

在步骤1033中,基于每个贡献像素点的贡献权重对每个贡献像素点的色彩值进行加权处理,得到待染色像素点的色彩值。

作为示例,贡献像素点a、贡献像素点b以及贡献像素点c分别针对待染色像素点的贡献权重weighta、weightb以及weightc,将weighta与贡献像素点a在二维图像中的rgb色彩值相乘,将weightb与贡献像素点b在二维图像中的rgb色彩值相乘,将weightc与贡献像素点c在二维图像中的rgb色彩值相乘,将相乘结果相加之后再除以weighta、weightb以及weightc的和,从而得到待染色像素点的色彩值。

在步骤104中,基于每个视角的迁移图像中每个像素点的色彩值,生成对应视角的迁移图像。

在步骤105中,将多个视角的迁移图像按照顺序封装,得到三维化视频。

基于图3a,参见图3d,图3d是本申请实施例提供的二维图像的三维化方法的流程示意图,步骤105中将多个视角的迁移图像按照顺序封装,得到三维化视频可以通过图3d示出的步骤1051-1053进行说明。

在步骤1051中,基于二维图像中每个像素点的深度值,对每个视角的迁移图像进行空缺像素填补处理。

在一些实施例中,步骤1051中基于二维图像中每个像素点的深度值,对每个视角的迁移图像进行空缺像素填补处理,可以通过以下技术方案实现:针对每个视角的迁移图像中的每个待染色像素点,执行以下处理:当待染色像素点的连通区域内不存在对应待染色像素点的贡献像素点时,将待染色像素点的位置确定为空缺位置;针对迁移图像的每个空缺位置执行以下处理:以空缺位置为中心,基于二维图像中部分像素点的深度值在空缺位置的连通区域内查询待染色像素点的参考像素点;基于参考像素点的色彩值,对待染色像素点进行颜色值填补处理。

作为示例,参见图12,图12中待染色像素点00的连通区域内并不存在贡献像素点,从而得到的迁移图像中待染色像素点00实际上是空白的,将将待染色像素点的位置确定为空缺位置,从而需要针对待染色像素点00进行填补处理,相应的需要确定对应待染色像素点00的参考像素点,从而将参考像素点在迁移图像中的色彩值填补在待染色像素点00的空缺位置中。

在一些实施例中,上述以空缺位置为中心,基于二维图像中部分像素点的深度值在空缺位置的连通区域内查询待染色像素点的参考像素点,可以通过以下技术方案实现:确定以空缺位置为起点的多组查询方向;其中,每组查询方向所包括的第一方向与第二方向相反;针对每组查询方向执行以下处理:在空缺位置的连通区域内的第一方向上,确定与空缺位置最近的非空缺位置的像素点,并在空缺位置的连通区域内的第二方向上,确定与空缺位置最近的非空缺位置的像素点;确定在第一方向上与第二方向上确定的像素点之间的像素距离;确定多组查询方向中最小像素距离所对应的两个像素点;基于二维图像中部分像素点的深度值,确定两个像素点的渲染深度值,并将渲染深度值较大的像素点确定为待染色像素点的参考像素点。

作为示例,参见图9,假设图9中最中间的具有点阵图像的像素点为需要进行填补处理的待染色像素点,其所在的位置即为空缺位置,以空缺位置为起点的多组查询方向可以按照固定角度获取不同组的查询方向,假设存在两组查询方向,第一组查询方向所包括的第一方向与第二方向相反,第二组查询方向所包括的第一方向与第二方向相反,第一组查询方向所在的直线与第二组查询方向所在的直线之间存在夹角,以图9所示的第一方向和第二方向为例,以空缺位置为起点,在空缺位置的连通区域内的第一方向上,确定与空缺位置最近的非空缺位置的像素点(具有条纹图案的像素点),并在空缺位置的连通区域内的第二方向上,确定与空缺位置最近的非空缺位置的像素点(具有条纹图案的像素点),此处所确定的像素点即为组成迁移图像的像素点,此处的连通区域最大可以为图像范围内,即将整个迁移图像作为连通区域,或者指定一个有限范围的区域作为连通区域,确定在第一方向上与第二方向上确定的非空缺位置的像素点之间的像素距离,从而得到的第一组查询方向的第一像素距离、以及第二组查询方向的第二像素距离,将第一像素距离以及第二像素距离中最小像素距离所对应的两个像素点(非空缺位置的像素点,也即具有条纹图案的像素点),基于二维图像中部分像素点的深度值,确定两个像素点的渲染深度值,并将渲染深度值较大的像素点确定为待染色像素点的参考像素点,从而可以将距离空缺位置相近的背景像素点(深度值大的像素点)对空缺位置进行填补。

在一些实施例中,每个视角的迁移结果包括:二维图像中每个像素点被迁移到视角的迁移图像画布中的迁移位置,其中,迁移图像画布的尺寸与二维图像的尺寸相同;部分像素点为目标像素点的贡献像素点;上述基于二维图像中部分像素点的深度值,确定两个像素点的渲染深度值,可以通过以下技术方案实现:将两个像素点中任意一个像素点作为目标像素点,以执行以下处理:确定目标像素点的贡献像素点,贡献像素点是二维图像中与迁移位置位于目标像素点的连通区域内的像素点;基于二维图像中每个像素点在视角的迁移图像画布中的迁移位置,确定贡献像素点针对目标像素点的贡献权重;基于贡献像素点的贡献权重,对贡献像素点的深度值进行加权处理,得到两个像素点的渲染深度值。

作为示例,最小像素距离所对应的迁移图像中的两个像素点的渲染深度值的获取方式与步骤103中获取待染色像素点的色彩值类似,区别仅在于进行加权求和的分量是贡献像素点的深度值,而非rgb色彩值,将两个像素点分别作为目标像素点求取渲染深度值,从而得到两个像素点的渲染深度值,即分别进行两次加权求和处理,进行颜色值填补处理的过程还可以利用经过深度学习的模型实现。

在步骤1052中,针对每个视角的迁移图像的空缺像素填补结果进行高斯模糊处理,得到高斯模糊图像。

作为示例,高斯模糊处理可以理解成将高斯模糊的目标像素的色彩值取为周边像素的平均值,将高斯模糊的目标像素为中心点,将周围点(紧密围绕中心点的点)的色彩值的平均值作为中心点的色彩值,在数值上是平滑化处理,在图形上就相当于产生模糊效果,作为目标像素的中间点失去细节,高斯模糊的目标像素为经过颜色值填补处理的像素点。

在步骤1053中,将每个视角的高斯模糊图像按照顺序封装,得到三维化视频。

作为示例,参见图11,图11是本申请实施例提供的二维图像的三维化方法的封装示意图,响应于三维化操作中所指向的渲染风格,确定出每个视角的高斯模糊图像的封装顺序,若是不进行高斯模糊处理,则确定出每个视角的经过颜色值填补处理的迁移图像的封装顺序,在对图像质量要求较低的场景中,还可以直接将每个视角的迁移图像直接进行封装,即确定出每个视角的迁移图像的封装顺序,即封装顺序实质上与视角对应,当三维化操作中所指向的渲染风格所对应的视角为第一视角、第二视角、第三视角以及第四视角时,将第一视角、第二视角、第三视角以及第四视角的新图像按照渲染风格所指向的对应视角的封装顺序进行封装,从而得到具有对应渲染风格的三维化视频。

参见图3e,图3e是本申请实施例提供的二维图像的三维化方法的流程示意图,将结合图3e示出的步骤201-209进行说明。在步骤201中,在人机交互界面呈现二维图像。在步骤202中,响应于针对二维图像的三维化操作,将二维图像发送至服务器。在步骤203中,服务器对二维图像进行深度感知处理,得到二维图像中每个像素点的深度值。在步骤204中,服务器对二维图像中每个像素点分别进行多个视角的迁移处理,得到对应每个视角的迁移结果。在步骤205中,服务器基于二维图像中每个像素点的深度值以及每个视角的迁移结果,确定对应每个视角的迁移图像中每个像素点的色彩值。在步骤206中,服务器基于每个视角的迁移图像中每个像素点的色彩值,生成对应视角的迁移图像。在步骤207中,服务器将多个视角的迁移图像按照顺序封装,得到三维化视频。在步骤208中,服务器将三维化视频发送至终端。在步骤209中,终端播放基于二维图像生成的三维化视频。

下面,将说明本申请实施例提供的二维图像的三维化方法在一个实际的应用场景中的示例性应用。

电子相册客户端接收到用户针对照片的选择操作,呈现选择操作的目标相片作为待处理图像,响应于针对待处理图像的三维化操作,电子相册客户端调用本申请实施例提供的二维图像的三维化方法生成待处理图像的三维化视频的预览,响应于用户针对三维化视频的调整操作,电子相册客户端按照调整操作中指定的调整方式调整多个视角的图像的封装顺序,例如,封装顺序调整为视觉效果由近景拉至远景,或者由远景拉至近景。

本申请实施例提供的二维图像的三维化方法通过深度学习模型预测出场景深度信息后,通过统一计算设备架构算法,使用图像处理器在二维图像层面上进行变换处理,在变换处理之后通过填补处理以及模糊处理可以快速获取新视角下的图像,以实现基于深度的多个三维视角合成。在二维图像的基础上进行三维变换的处理过程包括:预测深度图的处理,三维场景重新渲染,空缺填补和模糊,整个过程可以在显卡的图像处理器上并行处理,速度较快,并且在避免了相关技术中三维场景建模的前提下获取效果优异的三维化视频效果,可以满足终端通过二维图像获取三维化视频的要求,并且由于重渲染方式和填补方式都基于最初的深度预计结果,使得渲染和填补符合三维场景规律。

终端将待处理图像上传至后台,以使后台调用本发明实施例提供的二维图像的三维化方法对待处理图像进行三维化处理得到三维化视频,进而回传到终端进行展示播放。本申请实施例提供的二维图像的三维化方法通过对图像进行深度估计处理,深度边缘修复处理,基于深度确定多视角图像,进行空缺填补和模糊等处理,基于一张输入的二维图像生成同一场景多视角下的二维图像,从而组合而成三维结构化的视频。

参见图4,图4是本申请实施例提供的二维图像的三维化方法的流程示意图,处理流程中包括深度感知过程、深度边缘修复过程、多视角重新渲染过程、空缺填补与模糊过程、以及三维化视频结果生成过程,在深度感知过程中对输入图像进行深度感知从而获取预测的深度图,对得到的深度估计结果进行深度边缘修复处理,基于深度估计修复结果进行三维场景重新渲染,并基于多视角重新渲染结果进行空缺填补和模糊处理,进而基于空缺填补和模糊处理的结果生成三维化视频结果,上述整个过程可以在图像处理器以及显卡上并行处理,处理速度较快,通过上述过程在不进行三维建模处理也能获取效果优异的三维化视频效果,从而可以满足终端基于二维图像获取三维化视频的要求,由于重渲染的方式和填补方式都基于最初的深度估计结果,使得渲染处理和填补处理符合场景规律。

在深度感知过程中,通过深度学习模型f对输入图像i进行深度估计处理,得到与输入图像i分辨率一致的深度估计结果d,即d=f(i),深度估计结果(深度图d)的每个像素值表示输入图像中像素的深度,对于获得的深度图而言,深度越大表征该像素的距离越远,参见图5,图5是本申请实施例提供的二维图像的三维化方法的深度图,深度感知过程中获得的深度估计结果在边缘处会产生不均匀的连续跳动,图5中每个格子代表一个像素点,背景对象是黑色格子,前景对象是白色格子,理论上不存在介于中间的灰色格子,才符合同一物体同一深度的原则,然而图5中存在不连续跳动现象,即黑格子与灰格子紧邻,灰格子与白格子紧邻的阶跃跳动,导致本来属于同一对象深度估计结果出现不同。

因此,在深度边缘修复过程中采取快速中值替换的方式对边缘深度进行改善,首先将深度感知过程得到的深度图进行正则化处理,使得深度图的取值范围缩小至0至1的区间中,即norm(d)=(d-d.min)/(d.max–d.min),d.max指的是深度图所有像素点中的最大深度值,dmin指的是深度图所有像素点中的最小深度值,对深度图的每个像素,计算深度图中每个像素点与上、下、左、右相邻4个像素点的深度值的差值绝对值,用以判断该像素点是否在边缘区域,参见图6,图6是本申请实施例提供的二维图像的三维化方法的边缘标记图,若所有差值绝对值(上述四个绝对值)均小于差值阈值,例如,差值阈值被设置为0.04,则将该像素点标记为1,判别为边缘像素点,例如,假设该点正则化后的深度为d(i,j),i表示该点的水平位置,j表示该点的垂直位置,如果max(abs(d(i,j)-d(i+1,j)),abs(d(i,j)-d(i-1,j)),abs(d(i,j)-d(i,j+1)),abs(d(i,j)-d(i,j-1)))<差值阈值,则将该像素点标记为1,判别为边缘像素点,否则将该像素点标记为0,判别为非边缘像素点。

在边缘标记图中以每个像素为中心取一个k*k大小的正方形,用于对该中心像素的深度值进行中值替换,如果正方形中存在取值为1的点,则需要对该中心点进行中值替换处理,否则不需要进行中值替换处理,处理的具体方式是从存在取值为1的点的深度图(k*k的深度图)中获取所有的非边缘像素点(即边缘标记图中取值为0的点)的深度值,并从对这些深度值进行小到大排列,利用排列后的中值对该中心像素的深度值进行替换,对深度图中所有的像素进行处理后,即完成深度图的中值替换边缘处理,对于获得的深度图而言,深度越大,则表征该像素的距离越远。

在进行多视角渲染的过程中,基于进行过深度边缘修复的深度图,对原有色彩图像进行多视角的重新渲染,先对经过深度边缘修复处理的深度图再次进行更新处理,获取新的深度图d=(1/norm(d))–0.5,其中,norm(d)为上述正则化处理,norm(d)=(d-dmin)/(d.max–d.min),该操作使得所有深度取值介于-0.5和0.5之间,新深度值越大表征视觉距离越小,即像素的距离越近。

假设原色彩图a的尺寸为h*w,在垂直方向和水平方向分别设置移动参数v和u,参见图7,图7是本申请实施例提供的二维图像的三维化方法的移动参数获取示意图,对于(v,u)的组合,基于半径为1的圆上,每隔固定角度获取一个点,其纵坐标和横坐标即为(v,u)的取值,整个圆上获取的多组(v,u)即可用于渲染多个不同视角的新图像,基于经过边缘修复处理的深度图d,原色彩图a的每个像素a(i,j),将会移动到目标位置a(i+u*scale*d(i,j)*w,j+v*scale*d(i,j)*h),其中,scale为一个常量,设置越大则移动幅度越大,深度图的深度值取值范围在-0.5与0.5之间,满足了靠前和靠后的物体向不同的方向移动,且越近或者越远的物体的移动距离远大,这样的移动模式满足三维呈现规律,鉴于目标位置i’=i+u*scale*d(i,j)*w;j’=j+v*scale*d(i,j)*h并不为整数,采用基于喷溅法(splatting)的方式,向周边的点贡献色彩分量,参见图8,图8是本申请实施例提供的二维图像的三维化方法的贡献示意图,在边上的投影点例如指的是(0,0)和(0,1)所构成的边上的投影点,该投影点会影响(0,0)位置和(0,1)位置的颜色值,图8中的投影点(i’,j’)介于四个像素位置之间,该投影点对四个像素的贡献权重为到对应四个像素点的横纵坐标差值绝对值的乘积,此处左上(leftup)和右下(rightdown)互为对应点,右上(rightup)和左下(leftdown)互为对应点,例如,投影点对左上的贡献权重为w=abs(i’-floor(i’))*abs(j’-floor(j’)),其中,floor操作为向上取整操作,在针对右下的贡献权重的计算中取整操作为向下取整操作,由于原色彩图a的多个像素点移动后有可能向新视角画布中同一位置的点贡献色彩分量,基于深度的影响,针对新视角画布中某一位置的待染色像素点,靠近背景的像素点对该待染色像素点产生的贡献相较于其他像素点对该待染色像素点产生的贡献要少得多,将原色彩图a中的像素点(i,j)对重渲染图像a’中对应位置(i’,j’)的附近四个像素点的贡献权重w乘以exp(t*d(i,j),t可以取值为10,由于更新后越近的像素点(近景)的d(i,j)越大,其贡献值也会指数型增大,在色彩渲染过程中,对原色彩图a中所有的像素基于(v,u)进行移动处理,并且向新的渲染图a’对应点按权重向待染色像素点贡献对应grb色彩分量,将色彩分量和权重进行相乘后分别进行累加,最后将累积色彩分量除以累积权重分量得到待染色像素点的色彩值,以避免色彩分量贡献过大,在色彩渲染的同时进行深度渲染,对经过边缘修复处理后的深度图进行与上述过程类似的深度渲染,获取多视角渲染的新深度图,多视角渲染的新深度图仍然满足距离越远(远景),深度值越大的规律。

在空缺填补与模糊处理过程中,由于遮挡的原因导致色彩渲染得到的多视角图像中某些位置周围并不存在原来的图像像素点对其贡献色彩分量,从而将这个位置视为需要填补的空缺位置,针对对这些空缺位置的填补,执行以下处理:参见图9,图9是本申请实施例提供的二维图像的三维化方法的查询示意图,以该空缺位置为起点,获取多个不同的前进方向(第一方向),这些前进方向和基于该点的反方向(第二方向)一起组成多组查询对象,针对每组查询对象,向两个方向端寻找最邻近的不是空缺的像素,超出图像范围未搜索到则舍弃该查询对象,对于所有两端都搜寻到目标像素的查询对象,取两头像素距离最短的那组查询对象,并且基于深度渲染过程中得到的新视角渲染后的深度值,取对应位置(第一方向的像素点或者第二方向的像素点中)深度值大的像素(相反两个方向中深度值大的像素),利用该像素的rgb色彩值对该空缺位置进行填补,填补处理所基于的原理是使用离目标像素(空缺位置)相近的背景像素点对其进行填补,对于所有填补后的像素点(空缺位置的像素点,经过填补处理后不再空缺),针对该点使用周围像素点进行高斯模糊处理,以避免填补缺失后的像素点与周围像素点的重复性过高,导致视觉效果不佳,参见图10,图10是本申请实施例提供的二维图像的三维化方法的效果示意图,左边的图中边界太过明显,在经过高斯模糊则后得到的右图中填补缺失后的像素点与周围像素点的视觉效果不那么锐利,以上步骤都可以在图像处理器上进行操作,速度较快且延时性低,将所有渲染得到的新视角的图像组合成视频,即可得到三维化的视频结果。

根据本申请实施例提供的二维图像的三维化方法,能够基于深度估计结果在二维图像层面上合理重建不同视角下的场景,相较于其他三维建模方法降低处理时间,便于移动端快速获取生成的视频结果并进行展示。

下面继续说明本申请实施例提供的二维图像的三维化装置455实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器450的二维图像的三维化装置455中的软件模块可以包括:深度模块4551,用于对二维图像进行深度感知处理,得到二维图像中每个像素点的深度值;迁移模块4552,用于对二维图像中每个像素点分别进行多个视角的迁移处理,得到对应每个视角的迁移结果;色彩确定模块4553,用于基于二维图像中每个像素点的深度值以及每个视角的迁移结果,确定对应每个视角的迁移图像中每个像素点的色彩值;生成模块4554,用于基于每个视角的迁移图像中每个像素点的色彩值,生成对应视角的迁移图像;封装模块4555,用于将多个视角的迁移图像按照顺序封装,得到三维化视频。

在上述方案中,迁移模块4552,还用于在基于二维图像中每个像素点的深度值以及每个视角的迁移结果,确定对应每个视角的迁移图像中每个像素点的色彩值之前:将通过深度感知处理得到的每个像素点的深度值作为原始深度值,对每个像素点的原始深度值进行深度修复处理,得到每个像素点的修复深度值,将每个像素点的修复深度值替换对应的原始深度值。

在上述方案中,迁移模块4552,还用于:基于二维图像中每个像素点的原始深度值,确定二维图像中的边缘像素点以及二维图像中的非边缘像素点;基于边缘像素点确定二维图像中需要进行中值替换的待替换像素点、以及不需要进行中值替换的保留像素点;将待替换像素点的连通区域内所有非边缘像素点的原始深度值进行降序排序处理,并将降序排序结果的中值作为待替换像素点的修复深度值;保留保留像素点的原始深度值作为保留像素点的修复深度值。

在上述方案中,迁移模块4552,还用于:针对二维图像中任意一个像素点执行以下处理:当像素点的原始深度值的正则化处理结果与至少一个相邻像素点的原始深度值的正则化处理结果之间的绝对差值不小于差值阈值时,将像素点确定为非边缘像素点;其中,相邻像素点为位于任意一个像素点的相邻位置的像素点;当像素点的原始深度值的正则化处理结果与每个相邻像素点的原始深度值的正则化处理结果之间的绝对差值均小于差值阈值时,将像素点确定为边缘像素点。

在上述方案中,迁移模块4552,还用于:针对二维图像中任意一个像素点执行以下处理:当像素点的连通区域内中至少存在一个边缘像素点时,确定像素点为待替换像素点;当像素点的连通区域内中不存在边缘像素点时,确定像素点为保留像素点。

在上述方案中,迁移模块4552,还用于:对二维图像中每个像素点的深度值进行更新,得到二维图像中每个像素点的更新深度值;其中,更新深度值与对应像素点的修复深度值成负相关关系;确定分别与多个视角一一对应的多个移动参数,其中,移动参数包括水平移动参数与垂直移动参数;针对每个视角执行以下处理:确定与设定移动灵敏参数、更新深度值、水平移动参数、以及二维图像的宽度正相关的水平移动矢量;确定与设定移动灵敏参数、更新深度值、垂直移动参数、以及二维图像的高度正相关的垂直移动矢量;在与视角的迁移图像画布中与二维图像中每个像素点对应的原始位置,按照水平移动矢量以及垂直移动矢量开始进行位移,确定每个像素点在迁移图像画布中的迁移位置。

在上述方案中,每个视角的迁移结果包括:二维图像中每个像素点被迁移到视角的迁移图像画布中的迁移位置,其中,迁移图像画布的尺寸与二维图像的尺寸相同;色彩确定模块4553,还用于:针对每个视角的迁移图像画布中每个待染色像素点执行以下处理:确定待染色像素点的贡献像素点,其中,贡献像素点是二维图像中迁移位置位于待染色像素点的连通区域内的像素点;基于二维图像中每个像素点在视角的迁移图像画布中的迁移位置、以及二维图像中每个像素点的深度值,确定贡献像素点对应待染色像素点的贡献权重;基于每个贡献像素点的贡献权重对每个贡献像素点的色彩值进行加权处理,得到待染色像素点的色彩值。

在上述方案中,封装模块4555,还用于:基于二维图像中每个像素点的深度值,对每个视角的迁移图像进行空缺像素填补处理;针对每个视角的迁移图像的空缺像素填补结果进行高斯模糊处理,得到高斯模糊图像;将每个视角的高斯模糊图像按照顺序封装,得到三维化视频。

在上述方案中,封装模块4555,还用于:针对每个视角的迁移图像中的每个待染色像素点,执行以下处理:当待染色像素点的连通区域内不存在对应待染色像素点的贡献像素点时,将待染色像素点的位置确定为空缺位置;针对迁移图像的每个空缺位置执行以下处理:以空缺位置为中心,基于二维图像中部分像素点的深度值在空缺位置的连通区域内查询待染色像素点的参考像素点;基于参考像素点的色彩值,对待染色像素点进行颜色值填补处理。

在上述方案中,封装模块4555,还用于:确定以空缺位置为起点的多组查询方向;其中,每组查询方向所包括的第一方向与第二方向相反;针对每组查询方向执行以下处理:在空缺位置的连通区域内的第一方向上,确定与空缺位置最近的非空缺位置的像素点,并在空缺位置的连通区域内的第二方向上,确定与空缺位置最近的非空缺位置的像素点;确定在第一方向上与第二方向上确定的像素点之间的像素距离;确定多组查询方向中最小像素距离所对应的两个像素点;基于二维图像中部分像素点的深度值,确定两个像素点的渲染深度值,并将渲染深度值较大的像素点确定为待染色像素点的参考像素点。

在上述方案中,每个视角的迁移结果包括:二维图像中每个像素点被迁移到视角的迁移图像画布中的迁移位置,其中,迁移图像画布的尺寸与二维图像的尺寸相同;部分像素点为目标像素点的贡献像素点;封装模块4555,还用于:将两个像素点中任意一个像素点作为目标像素点,以执行以下处理:确定目标像素点的贡献像素点,贡献像素点是二维图像中与迁移位置位于目标像素点的连通区域内的像素点;基于二维图像中部分像素点在视角的迁移图像画布中的迁移位置,确定贡献像素点针对目标像素点的贡献权重;基于贡献像素点的贡献权重,对贡献像素点的深度值进行加权处理,得到两个像素点的渲染深度值。

本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的二维图像的三维化方法。

本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3a-3e示出的二维图像的三维化方法。

在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。

在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。

作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hypertextmarkuplanguage)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。

作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。

综上,通过本申请实施例对二维图像进行多视角迁移以及对应视角迁移图像生成处理,实现了二维图像层面的视角变换过程,从而在二维图像处理层面上实现了图像三维化过程,以替代三维场景建模过程,在准确进行图像三维化生成三维化视频的同时降低了后台计算资源成本以及耗时成本。

以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1