一种图像处理方法及终端设备与流程

文档序号:32606396发布日期:2022-12-20 17:21阅读:36来源:国知局
一种图像处理方法及终端设备与流程

1.本技术实施例涉及图像处理技术领域,尤其涉及一种图像处理方法及终端设备。


背景技术:

2.大光圈拍摄技术凭借拍摄图像景深浅、拍摄主体较突出等特点,在人像、美食、动植物等场景下被广泛使用。并且,随着手机等终端设备的发展,人们越来越习惯于使用手机等终端设备拍摄图像。然而,终端设备受限于摄像头光圈的尺寸,终端设备上的相机无法直接拍摄出满足用户需求的大光圈图像,通常需要通过一定的图像处理以实现背景虚化。
3.以目前市面上的手机作为示例,一般都具有大光圈模式的相机功能。相关技术中的双摄方案,可以通过深度估计和虚化渲染实现背景虚化效果,但是存在对主摄出图的景深要求的矛盾,而且难以同时渲染出高精度的前景部分和真实的背景部分等缺陷。相关技术中的单摄方案,可以基于人像分割技术或人像抠图技术实现背景虚化效果,但是由于对背景部分统一程度的模糊渲染,无法得到深度渐变的层次感,导致真实感较差,而且还存在使用场景具有一定局限性等缺点。
4.因此,如何得到具有较优的背景虚化效果的拍摄图像,具有重要的研究意义。


技术实现要素:

5.本技术实施例提供一种图像处理方法及终端设备,用以利用终端设备上的可变光圈摄像头,结合大光圈图像和小光圈图像进行深度估计和虚化渲染的图像处理,从而可以使得拍摄图像达到较优的背景虚化效果。
6.第一方面,本技术实施例提供了一种图像处理方法。该方法包括:终端设备检测并响应于用户拍摄指令,自动切换多档位光圈,并基于各档位光圈对目标拍摄场景进行拍摄得到多幅图像;所述终端设备基于所述多幅图像中的至少两幅图像进行深度计算,得到相对深度图像;所述终端设备根据所述相对深度图像,得到基于所述目标拍摄场景的前景层部分和背景层部分,并对所述背景层部分包含的像素点进行模糊渲染;所述终端设备对模糊渲染之后的背景层部分和所述前景层部分进行融合,得到所述目标拍摄场景的背景虚化图像。
7.该方法中,基于可变光圈的摄像头可以得到多幅基于不同光圈的图像,从而可以实现基于不同光圈的成像特性,一方面可以通过景深较低的较大光圈的图像得到具有更高精度的前景层,另一方面还有通过景深较大的较小光圈的图像得到更具有真实感的背景层,从而可以解决在单一光圈下存在的对主摄出图的景深要求的矛盾。这样,通过该方案,可以同时渲染出具有较高精度的前景层和较真实的背景层。
8.在一种可能的设计中,所述基于所述多幅图像中的至少两幅图像进行深度计算,得到相对深度图像之前,所述方法还包括:所述终端设备以所述至少两幅图像中的第一图像作为参考图像,对所述至少两幅图像中除所述参考图像之外的各图像分别进行配准对齐;其中,所述第一图像为所述至少两幅图像中的任一图像。示例性的,可以通过特征点对
齐实现图像对齐。
9.该设计中,通过将进行深度计算的至少两幅图像进行配准对齐,从而可以结合相同物点在不同图像上的成像差异,确定所述相对深度图像。可以理解,若同一像素点在小光圈图像上的成像相比于在大光圈图像上的成像差异越大,可以表示该像素点相对于大光圈图像的成像面的距离较远,也可以理解为该像素点的相对深度越大;反之,若同一像素点在小光圈图像上的成像相比于在大光圈图像上的成像差异越小,可以表示该像素点相对于大光圈图像的成像面距离较近,也可以理解为该像素点的相对深度越小。
10.在一种可能的设计中,所述终端设备基于所述多幅图像中的至少两幅图像进行深度计算,得到相对深度图像,包括:将所述至少两幅图像作为预先训练的深度神经网络模型的输入,得到由所述深度神经网络模型输出的所述相对深度图像。
11.该设计中,通过预先训练深度神经网络模型,可以实现在拍摄得到两幅不同光圈档位的图像之后,可以基于相同物点在不同光圈档位图像上的成像差异,学习得到所述物点的相对深度。
12.在一种可能的设计中,所述终端设备对模糊渲染之后的背景层部分和所述前景层部分进行融合之前,所述方法还包括:将用于指示所述前景层部分的掩膜mask和所述大光圈图像作为预先训练的抠图神经网络模型的输入,得到由所述抠图神经网络模型输出的目标前景层部分和目标mask;所述对模糊渲染之后的背景层部分和所述前景层部分进行融合,得到所述目标拍摄场景的背景虚化图像,包括:对所述模糊渲染之后的背景层部分和所述目标前景层部分进行融合,基于所述目标mask得到所述目标拍摄场景的背景虚化图像。
13.该设计中,通过预先训练抠图神经网络模型,可以对细节信息的抠图能力进行学习,从而可以实现基于前景层和背景层的粗略分割结果,可以进一步通过所述抠图神经网络模型进行精度更高的前景层和背景层的分割。
14.在一种可能的设计中,所述多档位光圈包括:第一档位光圈和第二档位光圈,所述第一档位高于所述第二档位,所述基于各档位光圈对目标拍摄场景进行拍摄得到多幅图像,包括:基于所述第一档位光圈,得到大光圈图像;以及,基于所述第二档位光圈,得到小光圈图像。基于该设计,所述终端设备根据所述相对深度图像,得到基于所述目标拍摄场景的前景层部分和背景层部分,包括:基于所述大光圈图像得到所述前景层部分;以及,基于所述小光圈图像得到所述背景层部分。
15.该设计中,通过大光圈图像具有景深较小的特性,以及小光圈图像具有景深较大的特性,通过对小光圈图像提供的背景层根据所述相对深度图像进行虚化渲染,而保留由大光圈图像提供的前景层部分,从而可以基于所述大光圈图像得到质量更好的前景层部分,以及基于所述小光圈图像得到更具有真实感的背景层部分。
16.在一种可能的设计中,所述自动切换多档位光圈之前,所述方法还包括:确定相机处于大光圈模式。
17.第二方面,本技术提供一种终端设备,所述终端设备包括多个功能模块;所述多个功能模块相互作用,实现上述任一方面及其各实施方式中终端设备所执行的方法。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。例如,本技术实施例中,所述多个功能模块可以包括基于可变光圈摄像头的图像采集单元(可简称为“图像采集单元”)、配准对齐单元、深度计算单元、
虚化渲染单元。其中,
18.所述图像采集单元,用于检测并响应于用户拍摄指令,自动切换多档位光圈,并基于各档位光圈对目标拍摄场景进行拍摄得到多幅图像;
19.所述深度计算单元,用于基于所述多幅图像中的至少两幅图像进行深度计算,得到相对深度图像;
20.所述虚化渲染单元,用于根据所述相对深度图像,得到基于所述目标拍摄场景的前景层部分和背景层部分,并对所述背景层部分包含的像素点进行模糊渲染;
21.所述虚化渲染单元,还用于对模糊渲染之后的背景层部分和所述前景层部分进行融合,得到所述目标拍摄场景的背景虚化图像。
22.在一种可能的设计中,所述配准对齐单元,用于基于所述多幅图像中的至少两幅图像进行深度计算,得到相对深度图像之前,以所述至少两幅图像中的第一图像作为参考图像,对所述至少两幅图像中除所述参考图像之外的各图像分别进行配准对齐;其中,所述第一图像为所述至少两幅图像中的任一图像。
23.在一种可能的设计中,所述深度计算单元,用于基于所述多幅图像中的至少两幅图像进行深度计算,得到相对深度图像时,具体用于:将所述至少两幅图像作为预先训练的深度神经网络模型的输入,得到由所述深度神经网络模型输出的所述相对深度图像。
24.在一种可能的设计中,所述虚化渲染单元,用于对模糊渲染之后的背景层部分和所述前景层部分进行融合之前,还用于将用于指示所述前景层部分的掩膜mask和所述大光圈图像作为预先训练的抠图神经网络模型的输入,得到由所述抠图神经网络模型输出的目标前景层部分和目标mask。所述虚化渲染单元,用于对模糊渲染之后的背景层部分和所述前景层部分进行融合,得到所述目标拍摄场景的背景虚化图像时,具体用于:对所述模糊渲染之后的背景层部分和所述目标前景层部分进行融合,基于所述目标mask得到所述目标拍摄场景的背景虚化图像。
25.在一种可能的设计中,所述多档位光圈包括:第一档位光圈和第二档位光圈,所述第一档位高于所述第二档位,所述图像采集单元,用于基于各档位光圈对目标拍摄场景进行拍摄得到多幅图像时,具体用于:基于所述第一档位光圈,得到大光圈图像;以及,基于所述第二档位光圈,得到小光圈图像。
26.在一种可能的设计中,所述图像采集单元,用于自动切换多档位光圈之前,还用于:确定相机处于大光圈模式。
27.第三方面,本技术提供一种终端设备,包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储计算机程序指令,所述终端设备运行时,所述至少一个处理器执行上述任一方面及其各实施方式中终端设备执行的方法。
28.第四方面,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被计算机执行时,使得所述计算机执行上述任一方面及其各可能的设计终端设备执行的方法。
29.第五方面,本技术提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述任一方面及其各可能的设计终端设备的方法。
30.第六方面,本技术实施例还提供一种终端设备上的图形用户界面,该终端设备具
有显示屏、一个或多个存储器、以及一个或多个处理器,所述一个或多个处理器用于执行存储在所述一个或多个存储器中的一个或多个计算机程序,所述图形用户界面包括所述终端设备执行上述任一方面及其各可能的设计时显示的图形用户界面。例如,终端设备可以显示得到的所述背景虚化图像。
31.第七方面,本技术还提供一种芯片,所述芯片用于读取存储器中存储的计算机程序,执行上述任一方面及其各可能的设计终端设备执行的方法。
32.第八方面,本技术还提供一种芯片系统,该芯片系统包括处理器,用于支持计算机装置实现上述任一方面及其各可能的设计终端设备执行的方法。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存该计算机装置必要的程序和数据。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
33.上述第二方面至第八方面中任一方面及其可能的设计的有益效果请具体参阅上述第一方面中各种可能的设计的有益效果,在此不再赘述。
附图说明
34.图1a为一种得到背景虚化(bokeh)图像的流程示意图;
35.图1b为另一种得到bokeh图像的流程示意图;
36.图2为本技术实施例提供的一种可能的终端设备的硬件结构示意图;
37.图3为本技术实施例提供的一种终端设备的软件结构框图;
38.图4为本技术实施例提供的一种图像处理系统的结构示意图;
39.图5为本技术实施例提供的一种图像处理方法的流程示意图之一;
40.图6为本技术实施例提供的一种图像处理方法的流程示意图之二;
41.图7为本技术实施例提供的一种图像处理方法的流程示意图之三。
具体实施方式
42.下面将结合附图,对本技术实施例进行详细描述。
43.随着社会的快速发展,终端设备的形态越来越多,例如手机、平板电脑、可穿戴设备等。终端设备不但具有通信功能、还具有强大的处理能力、存储能力、拍摄能力等。以手机为例,用户现在不仅可以使用手机打电话,还可以使用手机进行拍摄照片、拍摄视频等。
44.本技术实施例可以适用于图像处理领域,例如可以适用于用户采用包含相机的终端设备拍摄图像(图片或视频)的场景中。在图像拍摄的场景中,使用大光圈拍摄技术可以得到浅景深的大光圈图像;而且,大光圈拍摄效果可以通过虚化背景,使得被拍摄主体更加突出,图像更具美感。然而,终端设备受限于摄像头光圈的尺寸等原因的限制,往往无法直接拍摄出满足用户需求的大光圈图像,为了得到更具有美感的图像,通常需要终端设备经过一定的图像处理之后,得到背景虚化(bokeh)的大光圈图像(以下实施例中也可以称为“bokeh图像”)。
45.以目前市面上的手机作为示例,一般都具有大光圈模式的相机功能。在光学成像过程中,离焦的物体会产生模糊,而模糊的程度与拍摄场景中物体的深度有关,为了提升背景虚化的真实性和美感、模拟出真实的虚化效果,可以首先利用双目相机(或称为“双摄相机”)等手段估计拍摄场景的深度图像,然后基于深度图像和光学成像理论,转换拍摄图像
包含的每个像素点的模糊程度,以执行虚化渲染,从而可以得到bokeh图像。
46.如图1a所示,为一种得到bokeh图像的流程示意图。在终端设备包含双摄相机的场景下,得到bokeh图像可以主要分为两个阶段,一个阶段为深度估计阶段、另一阶段为虚化渲染阶段。
47.深度估计阶段可以首先通过双摄相机中的主摄相机(如广角相机)和副摄相机(如超广角相机)几乎在同一时刻分别拍摄,得到两幅图像,例如图1a中示出的主摄出图和副摄出图;其中,所述主摄出图是指主摄相机采集的图像,所述副摄出图是指副摄相机采集的图像。然后,可以利用提前标定的相机参数对两幅图像进行立体校正;其中,所述立体校正是指通过对两幅图像进行坐标变换,使得任一物点在变换后的两幅图像上的坐标被约束在同一行或同一列上,便于后续的算法计算深度;例如,可以主摄出图作为参考图像,对副摄出图进行立体校正。随后,以立体校正之后的图像作为输入,可以进行深度计算,得到与主摄图像配准的深度图像;其中,深度计算一般可以采用传统的立体匹配算法、或者卷积神经网络算法等。
48.在虚化渲染阶段,基于深度估计阶段得到的深度图像和主摄出图,可以对深度图像按照光学成像理论转换为各个像素的模糊程度、以及根据所述各个像素的模糊程度将主摄出图分割为需要保留的前景层和需要虚化的背景层。然后,对背景层上的各个像素按照对应的程度进行模糊渲染,并且将模糊渲染之后的背景层和前景层进行融合,可以得到最终的bokeh图像。
49.然而,基于如图1a所示的双摄方案得到的大光圈效果,会受到深度计算的较大影响,对于如发丝、细枝等细小物体,由于深度精度仍然不足,因此可能会导致前景层分割错误,从而给用户带来不好的体验。
50.另外,提升拍摄图像的大光圈效果的关键主要在于两个方面:高精度的前景层、和符合物理规律的虚化背景层;可以理解,这两个方面都与主摄出图的质量相关。然而,由于主摄出图本身存在一定的背景模糊,一方面可以提高前景层和背景层的区分度,从而可以提升对细小物体的分割精度,基于此方面考虑,主摄出图的景深越小效果越好;另一方面,若在模糊背景上进一步执行模糊渲染,从而可能造成降低图像中部分像素点(尤其是光斑)的亮度、锐度以及层次感,进而影响虚化的美感,基于此方面考虑,主摄出图的景深越大效果越好。可以理解,如图1a所示的流程,由于存在对主摄出图的景深要求的矛盾,因此较难以同时渲染出高精度的前景层和真实的背景层。
51.此外,如图1a所示的方案,还存在依赖双摄像头(本技术实施例中,“相机”和“摄像头”可以互相被替换使用,用于表示具有拍摄能力的硬件单元)的硬件配置,无法满足仅有单摄像头的场景(例如前置摄像头场景);而且,为了保证双摄场景下的深度估计的有效性、准确性,存在需要双摄出图同步、保证副摄的视场覆盖主摄的视场、保证双摄的空间排布合理等约束性,从而导致该方案的应用存在一定的局限性。
52.在终端设备包含单摄相机的场景下(例如前置相机场景),如图1a所示的基于双摄相机场景下的深度估计的算法已经不再适用。以人像模式的拍摄场景作为示例,可以基于人像分割技术,来实现对前景层和背景层的划分。然而,针对图像的背景具有深度变化时,人像分割技术无法渲染出具有层次感的虚化效果,真实感较差。
53.此外,人像分割技术对例如发丝、毛发等细小物体无法实现准确的分割,针对这个
communication,gsm)、通用分组无线服务(general packet radio service,gprs)、码分多址(code division multiple access,cdma)、宽带码分多址(wideband code division multiple access,wcdma)、长期演进(long term evolution,lte)、电子邮件、短消息服务(short messaging service,sms)等。
62.wi-fi技术属于短距离无线传输技术,所述终端设备200通过wi-fi模块292可以连接访问接入点(access point,ap),从而实现数据网络的访问。所述wi-fi模块292可用于通信过程中,数据的接收和发送。
63.所述终端设备200可以通过所述通信接口291与其他设备实现物理连接。可选的,所述通信接口291与所述其他设备的通信接口通过电缆连接,实现所述终端设备200和其他设备之间的数据传输。
64.所述终端设备200还能够实现通信业务,与服务侧设备、或者其他终端设备实现交互,因此所述终端设备200需要具有数据传输功能,即所述终端设备200内部需要包含通信模块。虽然图2示出了所述rf电路210、所述wi-fi模块292、和所述通信接口291等通信模块,但是可以理解的是,所述终端设备200中存在上述部件中的至少一个或者其他用于实现通信的通信模块(如蓝牙模块),以进行数据传输。
65.例如,当所述终端设备200为手机时,所述终端设备200可以包含所述rf电路210,还可以包含所述wi-fi模块292,或可以包含蓝牙模块(图2中未示出);当所述终端设备200为计算机时,所述终端设备200可以包含所述通信接口291,还可以包含所述wi-fi模块292,或可以包含蓝牙模块(图2中未示出);当所述终端设备200为平板电脑时,所述终端设备200可以包含所述wi-fi模块,或可以包含蓝牙模块(图2中未示出)。
66.所述存储器240可用于存储软件程序以及模块。所述处理器230通过运行存储在所述存储器240的软件程序以及模块,从而执行所述终端设备200的各种功能应用以及数据处理。可选的,所述存储器240可以主要包括存储程序区和存储数据区。其中,存储程序区可存储操作系统(主要包括内核层、系统层、应用程序框架层和应用程序层等各自对应的软件程序或模块)。
67.此外,所述存储器240可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。本技术实施例中,所述存储器240可以存储基于可变光圈摄像头拍摄的大光圈图像和小光圈图像、或者副摄出图等,进而基于大小光圈图像可以在深度估计和虚拟渲染之后,得到融合之后的bokeh图像。
68.所述输入单元250可用于接收用户输入的数字或字符信息等多种不同类型的数据对象的编辑操作,以及产生与所述终端设备200的用户设置以及功能控制有关的键信号输入。可选的,输入单元250可包括触控面板251以及其他输入设备252。
69.其中,所述触控面板251,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在所述触控面板251上或在所述触控面板251附近的操作),并根据预先设定的程序驱动相应的连接装置。本技术实施例中,所述触控面板251可以收集用户在其上或附近的拍摄操作,所述拍摄操作用于触发对大光圈图像和/或小光圈图像的拍摄,或还用于触发对副摄图像的拍摄。
70.可选的,所述其他输入设备252可以包括但不限于物理键盘、功能键(比如音量控
制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
71.所述显示单元260可用于显示由用户输入的信息或提供给用户的信息以及所述终端设备200的各种菜单。所述显示单元260即为所述终端设备200的显示系统,用于呈现界面,实现人机交互。所述显示单元260可以包括显示面板261。可选的,所述显示面板261可以采用液晶显示屏(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置。本技术实施例中,所述显示单元260可用于为用户显示包含融合之后的bokeh图像的显示界面。
72.所述处理器230是所述终端设备200的控制中心,利用各种接口和线路连接各个部件,通过运行或执行存储在所述存储器240内的软件程序和/或模块,以及调用存储在所述存储器240内的数据,执行所述终端设备200的各种功能和处理数据,从而实现基于所述终端设备200的多种业务。本技术实施例中,处理器230可用来实现本技术实施例提供的方法。
73.所述终端设备200还包括用于给各个部件供电的电源220(比如电池)。可选的,所述电源220可以通过电源管理系统与所述处理器230逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗等功能。
74.如图2所示,终端设备200还包括音频电路270、麦克风271和扬声器272,可提供用户与终端设备200之间的音频接口。音频电路270可用于将音频数据转换为扬声器272能够识别的信号,并将信号传输到扬声器272,由扬声器272转换为声音信号输出。麦克风271用于收集外部的声音信号(如人说话的声音、或者其它声音等),并将收集的外部的声音信号转换为音频电路270能够识别的信号,发送给音频电路270。音频电路270还可用于将麦克风271发送的信号转换为音频数据,再将音频数据输出至rf电路210以发送给比如另一终端设备,或者将音频数据输出至存储器240以便后续进一步处理。本技术实施例中,用户还可以通过所述麦克风271触发对大光圈图像和/或小光圈图像的拍摄语音指令;并且,终端设备还可通过所述扬声器272为用户输出拍摄声音。
75.所述摄像头280是所述终端设备200的图像采集单元,可接收并响应于所述终端设备200基于用户指令触发的控制指令,实现图像采集。本技术实施例中,所述终端设备200可以包含一个或多个所述摄像头280,而且至少存在一个摄像头280为可变光圈的摄像头,可用于采集大光圈图像和小光圈图像,还可能存在摄像头280用于采集副摄图像。
76.尽管未示出,所述终端设备200还可以包括至少一种传感器等,在此不再赘述。至少一种传感器可以包含但不限于压力传感器、气压传感器、加速度传感器、距离传感器、指纹传感器、触摸传感器、温度传感器等。
77.本技术实施例涉及的操作系统(operating system,os),是运行在终端设备200上的最基本的系统软件。终端设备200的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本技术实施例以采用分层架构的操作系统为例,示例性说明终端设备200的软件结构。
78.图3为本技术实施例提供的一种终端设备的软件结构框图。如图3所示,终端设备的软件结构可以是分层架构,例如可以将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将操作系统分为五层,从上至下分别为应用程序层,应用程序框架层(framework,fwk),运行时和系统库,内核层,以及硬件层。
79.应用程序层可以包括一系列应用程序包。如图3所示,应用程序层可以包括相机、
设置、皮肤模块、用户界面(user interface,ui)、第三方应用程序等。其中,第三方应用程序可以包括无线局域网(wireless local area network,wlan)、音乐、通话、蓝牙、视频等。
80.一种可能的实现方式中,应用程序可以使用java语言开发,通过调用应用程序框架层所提供的应用程序编程接口(application programming interface,api)来完成,开发者可以通过应用程序框架层来与操作系统的底层(例如硬件层、内核层等)进行交互,开发自己的应用程序。该应用程序框架层主要是操作系统的一系列的服务和管理系统。
81.应用程序框架层为应用程序层的应用程序提供应用编程接口和编程框架。应用程序框架层包括一些预定义函数。如图3所示,应用程序框架层可以包括快捷图标管理模块,窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
82.快捷图标管理模块用于对终端设备上显示的快捷图标进行管理,例如创建快捷图标、移除快捷图标、监控快捷图标是否满足显示条件等。
83.窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
84.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
85.电话管理器用于提供终端设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
86.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
87.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
88.运行时包括核心库和虚拟机。运行时负责操作系统的调度和管理。
89.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是操作系统的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
90.系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(media libraries),三维图形处理库(例如:opengl es),二维图形引擎(例如:sgl)等。
91.表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维和3d图层的融合。
92.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
93.三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
94.二维图形引擎是二维绘图的绘图引擎。
95.在一些实施例中,三维图形处理库可以用于绘制三维的运动轨迹图像,二维图形引擎可以用于绘制二维的运动轨迹图像。
96.内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
97.硬件层可以包括各类传感器,例如加速度传感器、重力传感器、触摸传感器等。
98.通常终端设备200可以同时运行多个应用程序。较为简单的,一个应用程序可以对应一个进程,较为复杂的,一个应用程序可以对应多个进程。每个进程具备一个进程号(进程id)。
99.应理解,本技术实施例中“以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c,其中a、b、c可以是单个,也可以是多个。“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
100.另外,需要理解的是,在本技术的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
101.应理解,终端设备的硬件结构可以如图2所示,软件架构可以如图3所示,其中,终端设备中的软件架构对应的软件程序和/或模块可以存储在存储器240中,处理器230可以运行存储器240中存储的软件程序和应用,以执行本技术实施例提供的一种图像处理方法的流程。
102.为了便于理解本技术提供的一种图像处理方法,以下结合图4至图7中所示的内容,示例性说明终端设备执行本技术实施例中提出方法的软件以及硬件的工作原理。
103.参阅图4,为本技术实施例提供的一种图像处理系统的结构示意图。该系统至少可以包括以下功能模块:基于可变光圈摄像头的图像采集单元(以下实施例中简称为“图像采集单元”)401、配准对齐单元402、深度计算单元403以及虚化渲染单元404。所述多个功能模块可以基于软件、硬件、或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,在本技术各个实施例中的各功能模块可以集成在一个处理单元中,也可以是单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。例如,所述装置包含的多个功能模块可以通过一个压缩程序包预先集成在如图2所示的处理器230中,或者也可以通过多个压缩程序包预先集成在处理器230中。其中,
104.所述图像采集单元401,用于检测并响应于用户拍摄指令,自动切换多档位光圈,并基于各档位光圈对目标拍摄场景进行拍摄,得到多幅图像。示例性的,所述图像采集单元401可以和如图2所示的摄像头280进行交互,以实现控制所述摄像头280分别基于大光圈档位和小光圈档位进行拍摄,得到大光圈图像和小光圈图像。可以理解,所述摄像头280具有
可变光圈的特性;例如,可变光圈的光圈大小可以包括4个档位:f1.4、f2.0、f2.8和f4.0。例如,所述图像采集单元401可以根据预先配置,在检测到所述用户拍摄指令之后,首先采用大光圈档位(如f1.4)拍摄得到大光圈图像,然后可以快速切换到小光圈档位(如f4.0)拍摄得到小光圈图像。
105.另外,所述图像采集单元401,还可用于检测所述用户拍摄指令所指示的拍摄模式,若检测到用户在终端设备的相机处于大光圈模式时,触发执行自动切换多档位光圈。其中,所述大光圈模式可以用于但不限于拍摄人物、动植物、物品等需要突出拍摄主体的场景下。
106.其中,所述用户拍摄指令可以通过但不限于以下方式中的一种:用户点击操作、用户按键操作、用户隔空手势操作、用户语音指令、用户预设表情抓拍(例如笑脸抓拍等)。
107.所述配准对齐单元402,用于对所述多幅图像进行配准对齐;例如可以实现对大光圈图像和小光圈图像的配准对齐。示例性的,可以特征点提取和图像配准技术等方式,实现多幅图像的配准对齐。这样,通过对多幅图像的配准对齐,可以解决或减轻由于多幅图像拍摄时间差而造成的图像偏移、鬼影等问题。
108.一种可选的实施例中,图5为本技术实施例提供的一种图像处理方法的流程示意图。示例性的,所述配准对齐单元402在获取到由所述图像采集单元401拍摄得到的多幅图像(以大光圈图像和小光圈图像作为示例)之后,可将所述大光圈图像作为参考图像,对所述小光圈图像进行配准对齐。可选的,所述配准对齐单元402采用尺度不变特征变换(scale invariant feature transform,sift)特征点检测和配准算法,拟合出小光圈图像相对于大光圈图像的全局变换单应性矩阵,以实现对小光圈图像进行投影变换之后与大光圈图像完成配准。这样,通过以大光圈图像为参考,对小光圈图像的配准对齐处理,从而可以实现对多幅输入图像的特征点对齐,以便于通过像素点在不同图像上的成像差异确定各像素点的相对深度。可以理解,若需要对多于两幅图像进行配置对齐,可将其中一幅图像作为参考图像,分别对其他多幅图像相对于所述参考图像进行配准对齐的处理。
109.所述深度计算单元403,用于基于配准对齐之后的多幅图像进行深度计算,得到相对深度图像。示例性的,可以采用传统的深度估计算法或神经网络模型等方式进行深度计算,本技术对深度计算的实现方式不做限定。
110.需要说明的是,由相机成像原理可知,离焦的物体会在图像上形成一个模糊圆;其中,模糊圆的大小(也即模糊程度)与物体的深度和摄像头的光圈大小有关。基于此,利用各像素点在大光圈图像和小光圈图像上虚化程度及其差异,可以估计出各像素点的模糊圆大小,进而可以转换为相对深度图像。
111.一种可选的实施例中,所述深度计算单元403可以基于构建的以配置对齐之后的多幅图像(如大小光圈图像)作为输入、以模糊圆图像的作为输出的数据集,预先训练深度神经网络模型。这样,所述深度计算单元403可以将由所述配准对齐单元402进行配置对齐之后的多幅图像作为所述预先训练的深度神经网络模型的输入,基于学习到的像素点在不同图像上的成像差异以实现深度计算,得到相对深度图像。可以理解,若同一像素点在小光圈图像上的成像相比于在大光圈图像上的成像差异越大,可以表示该像素点相对于大光圈图像的成像面的距离较远,也可以理解为该像素点的相对深度越大;反之,若同一像素点在小光圈图像上的成像相比于在大光圈图像上的成像差异越小,可以表示该像素点相对于大
光圈图像的成像面距离较近,也可以理解为该像素点的相对深度越小。
112.另外,由于拍摄多幅图像存在时间差,即使经过配准对齐之后,仍然可能在局部运动的区域产生一定的鬼影问题。为了克服鬼影问题,在预先训练深度神经网络模型的过程中,还可以利用数据增强技术,在训练数据中构建包含鬼影的问题数据,从而可以提升预先训练的深度神经网络模型的抗鬼影能力。
113.此外,本技术提供的方法不限于终端设备包含的摄像头数量,不仅可以适用于单摄场景,还可以适用于双摄或多摄场景。
114.另一种可选的实施例中,在双摄或多摄场景、又或者存在其他深度测量装置的场景下,还可以基于来自不同摄像头或者来自不同装置的多幅图像进行深度估计。示例性的,图6为本技术实施例提供的一种图像处理方法的另一流程示意图。以大光圈档位拍摄时可以采用双摄方案作为示例,图像采集单元401在响应于用户拍摄指令,通过主摄相机采集大光圈图像的同时,还可以通过副摄相机得到副摄出图;然后,所述图像采集单元401或其他功能单元可以根据所述大光圈图像和所述副摄出图,进行立体校正处理之后通过深度计算单元403进行深度估计,进而得到相对深度图。其中,可以基于双目相机下的传统深度估计算法或者神经网络模型实现深度估计。通过该实施例提供的方法,基于双摄方案或结合其他深度测量装置也可以得到相对深度图像,进而可以基于所述相对深度图像实现虚化渲染,得到bokeh图像。
115.所述虚化渲染单元404,用于基于所述相对深度图像,对所述配准对齐之后的多幅图像进行虚化渲染,得到融合之后的bokeh图像。以下结合两个实施例对包含虚化渲染的图像处理流程进行介绍,以便于理解虚化渲染的处理方式。
116.一种可选的实施例中,结合图5所示的流程,所述虚化渲染单元404可以将由所述深度计算单元403得到的所述相对深度图像划分为前景层部分和背景层部分。示例性的,可以将所述相对深度图像中深度小于预设深度阈值的像素点划分到所述前景层部分,以及将所述相对深度图像中深度大于或等于所述预设深度阈值的像素点划分到所述背景层部分。另一示例性的,还可以将所述相对深度图像中深度属于预设深度范围内的像素点划分到所述前景层部分,而将另一部分像素点划分到所述背景层部分。可以理解,为了同时渲染出高精度的前景层和真实的背景层,并且克服由单一光圈档位拍摄的图像所存在的对主摄出图的景深要求的矛盾,本技术实施例中,可以基于小光圈图像得到所述背景层部分,以及基于大光圈图像得到所述前景层部分。
117.一方面,针对前景层部分,本技术实施时还结合图像抠图技术,对前景层的边缘区域进行细节修复,例如发丝、细枝等细小物体,以得到更准确的前景层部分。示例性的,以用于指示前景层的掩膜(mask)作为前景层的粗分割结果(例如,通过掩膜为1表示像素点属于前景层),和大光圈图像同时作为预先训练的抠图神经网络模型中,输出更加精细的目标前景层和目标mask,例如,通过所述抠图神经网络模型,可以得到更为精细的mask,如通过0.8表示像素点处于前景层的概率。这样,基于大光圈图像具有较高信噪比和较小景深的特点,提供的前景层图像的质量较高,并且对前景层和背景层的区分度较好,有利于基于图像抠图技术得到更准确、精度更高的修复细节,进而可以得到图像质量和分割精度更高的前景层。
118.另一方面,针对背景层部分,本技术实施时可以对基于小光圈图像得到的背景层
包含的像素点执行虚化模糊渲染。其中,针对不同像素点可以基于相对深度图,进行不同模糊程度的虚化模糊渲染。而且,相对于大光圈图像,由于小光圈图像的景深较大,因此小光圈图像本身对于背景层部分的模糊程度较轻,因此进一步进行模糊渲染可以保留更加真实的光学成像效果,以及可以获得更加锐利、明亮的光斑效果。这样,基于小光圈具有较大景深、并且结合像素点的深度进行模糊渲染,可以得到真实感、层次感更好的背景层。此外,通过对背景层的虚化模糊渲染,配准对齐之后的小光圈图像在背景层的局部区域存在的鬼影也可以被虚化模糊,显示不再明显,提升图像显示效果。
119.最后,所述虚化渲染单元404可以对进行细节修复之后的前景层和进行模糊渲染之后的背景层进行融合,从而得到最终的bokeh图像。示例性的,根据用于指示目标前景层的目标mask和大光圈图像和小光圈图像进行融合;例如若存在像素点的目标mask为0.8,则可以对该像素点进行前景层和背景层的概率的加权求和,从而得到融合之后的像素点,进而得到最后的bokeh图像。
120.通过该实施例提供的方法,通过基于可变光圈的摄像头得到多幅不同光圈的图像,可以结合不同光圈的图像特性,进行相对应的处理,从而可以解决在单一光圈下,存在的由于存在对主摄出图的景深要求的矛盾、较难以同时渲染出高精度的前景层和真实的背景层的问题。因此,该实施例可以结合大光圈图像和小光圈图像,同时渲染出高精度的前景层和真实的背景层,从而得到效果更优的拍摄图像。
121.基于前述对本技术的设计构思和系统结构的介绍,参阅图7,为本技术实施例提供的一种图像处理方法的流程示意图。包括以下流程:
122.步骤701、终端设备检测并响应于用户拍摄指令,自动切换多档位光圈,并基于各档位光圈对目标拍摄场景进行拍摄得到多幅图像。示例性的,本技术实施时可以预先配置所述多档位光圈,例如预先配置需要切换的多档位光圈包括第一档位光圈和第二档位光圈,例如所述第一档位光圈可以为大光圈,所述第二档位光圈可以为小光圈,然后可以基于所述第一档位光圈进行拍摄得到大光圈图像,以及基于所述第二档位光圈进行拍摄得到小光圈图像。
123.可选的,若终端设备包含多个摄像头,还可以通过多个摄像头得到多幅图像;例如,可以通过主摄相机得到大光圈的主摄出图、和通过副摄相机得到副摄出图。这样,还可以通过基于所述主摄出图和所述副摄出图,并采用双目相机的传统深度计算方式,进行深度计算。
124.步骤702、所述终端设备基于所述多幅图像中的至少两幅图像进行深度计算,得到相对深度图像。可选的,所述终端设备可以基于不同光圈档位的图像,并经过配准对齐之后进行深度计算。另一可选的,所述终端设备还可以基于来自不同摄像头的图像,进行深度计算。
125.其中,所述终端设备可以所述多幅图像中的一副图像作为参考图像,对各其他图像进行配准对齐。例如,可以大光圈图像作为参考图像,对小光圈图像进行配准对齐。
126.步骤703、所述终端设备根据所述相对深度图像,得到基于所述目标拍摄场景的前景层部分和背景层部分,并对所述背景层部分包含的像素点进行模糊渲染。
127.示例性的,所述终端设备可以基于第一档位光圈拍摄得到的图像(如大光圈图像),确定所述前景层部分,以及基于第二档位光圈拍摄得到的图像(如小光圈图像),确定
所述背景层部分;其中,所述第一档位光圈的档位高于所述第二档位光圈。可以理解,基于第一档位光圈的景深小于所述第二档位光圈的景深,因此可以得到质量更好的前景层;以及,基于第二档位光圈的景深大于所述第一档位光圈的景深,因此可以得到模糊程度较轻的背景层,进而对背景层进行虚化模糊之后,可以得到更真实的背景层。
128.步骤704、所述终端设备对模糊渲染之后的背景层部分和所述前景层部分进行融合,得到所述目标拍摄场景的背景虚化图像。
129.基于以上实施例,本技术还提供一种终端设备,所述终端设备包括多个功能模块;所述多个功能模块相互作用,实现本技术实施例所描述的各方法中终端设备所执行的功能。如执行图7所示实施例中第一终端设备执行的步骤701至步骤704。所述多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且所述多个功能模块可以基于具体实现进行任意组合或分割。
130.基于以上实施例,本技术还提供一种终端设备,该终端设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储计算机程序指令,所述终端设备运行时,所述至少一个处理器执行本技术实施例所描述的各方法中终端设备所执行的功能。如执行图7所示实施例中终端设备执行的步骤701至704。
131.基于以上实施例,本技术还提供一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行本技术实施例所描述的各方法。
132.基于以上实施例,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当所述计算机程序被计算机执行时,使得所述计算机执行本技术实施例所描述的各方法。
133.基于以上实施例,本技术还提供了一种芯片,所述芯片用于读取存储器中存储的计算机程序,实现本技术实施例所描述的各方法。
134.基于以上实施例,本技术提供了一种芯片系统,该芯片系统包括处理器,用于支持计算机装置实现本技术实施例所描述的各方法。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器用于保存该计算机装置必要的程序和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
135.本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
136.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
137.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
138.显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的保护范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1