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

文档序号:16925995发布日期:2019-02-22 19:52阅读:195来源:国知局
一种图像处理方法、图像处理装置及终端设备与流程

本申请属于图像处理技术领域,尤其涉及一种图像处理方法、图像处理装置、终端设备及计算机可读存储介质。



背景技术:

为了使终端设备中所存储的图像更加富有美感,很多用户通常都会使用修图软件(比如,美图秀秀、光影魔术手或者photoshop等等)对所存储的图像进行美化,比如,增添贴纸、增添滤镜和/或背景虚化等等。

然而,在有些情况下,用户希望能够更换图像的背景或者更换图像的前景,比如,将图像的背景从沙滩更换为草地,将图像的前景从人物更换为小狗。但是,目前的终端设备还无法实现该功能。



技术实现要素:

有鉴于此,本申请提供了一种图像处理方法、图像处理装置、终端设备及计算机可读存储介质,可以解决目前的终端设备无法实现更换图像的背景以及前景的技术问题。

本申请第一方面提供了一种图像处理方法,包括:

获取待处理的第一图像;

检测上述第一图像中的前景,得到该前景的第一位置信息;

获取上述第一图像中需替换的图像区域,其中,该图像区域为上述第一图像中上述第一位置信息所指示的图像区域,或者是上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域;

根据上述第一图像中需替换的图像区域,确定第二图像;

将上述第一图像中需替换的图像区域替换为上述第二图像中的图像区域,得到处理后的图像。

本申请第二方面提供了一种图像处理装置,包括:

图像获取模块,用于获取待处理的第一图像;

前景检测模块,用于检测上述第一图像中的前景,得到该前景的第一位置信息;

替换区域获取模块,用于获取上述第一图像中需替换的图像区域,其中,该图像区域为上述第一图像中上述第一位置信息所指示的图像区域,或者是上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域;

替换图像确定模块,用于根据上述第一图像中需替换的图像区域,确定第二图像;

替换模块,用于将上述第一图像中需替换的图像区域替换为上述第二图像中的图像区域,得到处理后的图像。

本申请第三方面提供了一种终端设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面方法的步骤。

本申请第四方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面方法的步骤。

本申请第五方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面方法的步骤。

由上可见,本申请提供了一种图像处理方法,首先,获取待处理的第一图像,比如终端设备的摄像头所拍摄的图像;其次,检测该第一图像中的前景,得到该前景的第一位置信息,通过该第一位置信息可以确定上述第一图像中前景所在的图像区域;然后,获取上述第一图像中需替换的图像区域,其中,该图像区域为上述第一图像中上述第一位置信息所指示的图像区域,或者是上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域,也即是该需替换的图像区域为上述第一图像中前景所在的图像区域或者是上述第一图像中背景所在的图像区域;最后,根据上述第一图像中需替换的图像区域,确定第二图像,并将上述第一图像中需替换的图像区域替换为上述第二图像中的图像区域,得到处理后的图像。因此,本申请限定了一种技术方案,可以将待处理的图像中的前景所在的图像区域,或者是背景所在的图像区域替换为另一图像中的图像区域,因此,可以实现更换待处理的图像中的前景或者背景的功能,能够解决目前的终端设备无法实现更换图像的背景以及前景的技术问题。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。

图1是本申请实施例一提供的一种图像处理方法的实现流程示意图;

图2是本申请实施例一提供的根据深度信息检测前景的示意图;

图3是本申请实施例一提供的全卷积神经网络模型的训练过程实现流程示意图;

图4是本申请实施例一提供的全卷积神经网络模型的训练过程示意图;

图5是本申请实施例一提供的步骤s104的一种实现流程示意图;

图6是本申请实施例一提供的步骤s104的另一种实现流程示意图;

图7是本申请实施例一提供的步骤s105的一种实现方法示意图;

图8是本申请实施例一提供卷积自编码器的训练过程示意图;

图9是本申请实施例二提供的另一种图像处理方法的实现流程示意图;

图10是本申请实施例三提供的一种图像处理装置的结构示意图;

图11是本申请实施例四提供的终端设备的结构示意图。

具体实施方式

以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。

本申请实施例提供的图像处理方法可以适用于终端设备,示例性地,上述终端设备包括但不限于:智能手机、平板电脑、学习机、智能穿戴设备等。

应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。

还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。

还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。

如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。

另外,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

为了说明本申请上述的技术方案,下面通过具体实施例来进行说明。

实施例一

下面对本申请实施例一提供的一种图像处理方法进行描述,请参阅附图1,本申请实施例一中的图像处理方法包括:

在步骤s101中,获取待处理的第一图像;

在本申请实施例中,首先获取待处理的第一图像。其中,上述第一图像可以是用户通过终端设备所拍摄的图像,比如,用户启动手机中的相机应用程序,点击拍摄按钮后所拍摄的图像;或者,可以是用户启动终端设备中的相机或摄像机后,摄像头所采集的某一帧预览图像,比如,用户启动手机中的相机应用程序后,摄像头所采集的某一帧预览图像;或者,可以是用户通过其他应用程序接收的图像,比如,用户在微信中接收到的其他微信联系人所发送的图像;或者,也可以是用户从互联网上下载的图像,比如,用户通过公共运营商网络在浏览器中下载的图像;或者,还可以是视频中的某一帧图像,比如,用户所观看的电视剧中的其中一帧图像,此处对上述待处理的第一图像的来源不作限定。

在步骤s102中,检测上述第一图像中的前景,得到该前景的第一位置信息;

在本申请实施例中,若上述步骤s101所获取的第一图像为终端设备中的摄像头所采集的图像,则该步骤s102可以为:

首先,获取上述第一图像的深度信息,该深度信息可以基于结构光、tof(timeofflight,飞行时间)相机或者双目摄像头等等方法来获取,该深度信息用于指示上述第一图像中的每个像素点距离该终端设备的距离信息;其次,根据该深度信息,确定上述第一图像中与该终端设备的距离小于预设距离的各个像素点;然后,将与该终端设备的距离小于上述预设距离的各个像素点的位置信息确定为上述第一图像中前景的第一位置信息。如图2所示,假设第一图像201为终端设备200所拍摄的图像,在该步骤s102中,首先获取该第一图像201的深度信息(通过该终端设备200的tof相机、双目摄像头或者通过终端设备200发射结构光等方法得到),如图2所示,该深度信息指示像素点a与终端设备200的距离为2米,像素点b与终端设备200的距离为1.8米;其次,根据该第一图像201的深度信息,确定与该终端设备200的距离小于预设距离的所有像素点,所确定的各个像素点所组成的图像区域即为该第一图像201的前景区域,假设上述预设距离为2.2米,该第一图像201的深度信息指示像素点a与终端设备200的距离为2米,像素点b与终端设备200的距离为1.8米,则可以确定像素点a和像素点b均为组成该第一图像201前景的像素点;然后,将与该终端设备200的距离小于上述预设距离的各个像素点的位置信息确定为该第一图像201中前景的第一位置信息,如图2所示,假设像素点a和像素点b为最终确定的与该终端设备200的距离小于上述预设距离的所有像素点,且像素点a的位置信息为(1000,1000),即表示该像素点a位于与左上角第一个像素点o在x方向上间距1000个像素点,且与o点在y方向上也间距1000个像素点的位置,像素点b的位置信息为(1800,2300),即表示该像素点b位于与o点在x方向上间距1800个像素点,与o点在y方向间距2300个像素点的位置,则该第一图像201中前景的第一位置信息即为(1000,1000)和(1800,2300)。此外,在本申请实施例中,像素点的位置信息除了可以用与参考点之间间隔的像素点的个数来表示之外,还可以用与参考点的距离长度来表示,比如,附图2中像素点a的位置信息也可以表示为(3cm,3cm),即表示该像素点a位于与o点在x方向上间距3cm,且与o点在y方向上也间距3cm的位置,本申请对像素点的位置信息的表示方法不作限定。

此外,该步骤s102中检测第一图像中的前景,从而得到该前景的第一位置信息的方法还可以为:

利用训练后的全卷积神经网络(fullyconvolutionalnetwork,fcn)模型检测该第一图像中的前景,从而得到该第一图像中前景的第一位置信息。其中,fcn模型相比于cnn(convolutionalneuralnetwork,卷积神经网络)模型没有全连接层,因此,fcn模型可以得到输入图像中每个像素点的种类信息,常常用于图像分割领域。

示例性地,上述训练后的fcn模型的训练过程可以如图3所示,包括步骤s301-s304:

在步骤s301中,预先获取各个样本图像以及各个样本图像分别所对应的前景位置信息;

在该步骤中,可以从样本数据库中选取各个样本图像,并获取各个样本图像分别所对应的前景位置信息。比如,如图4所示利用样本图像1、样本图像2、样本图像3,该样本图像1所对应的前景位置信息a、该样本图像2所对应的前景位置信息b以及该样本图像3所对应的前景位置信息c训练初始的fcn模型401,其中,上述各个前景位置信息由对应的样本图像中前景区域中每个像素点的位置信息组成,如图4所示,前景位置信息a是由样本图像1中的前景区域x(阴影部分)中的各个像素点的位置信息组成。此外,为了使训练后的fcn模型能够更加精确的识别输入图像中的前景位置,可以在该步骤s301中获取尽可能多的样本图像。

在步骤s302中,将各个样本图像输入至初始的fcn模型中,以使得该初始的fcn模型检测各个样本图像中前景的位置信息;

在本申请实施例中,首先建立初始的用于检测输入图像中前景位置的fcn模型,然后将步骤s301所获取的各个样本图像分别输入至初始的fcn模型中,以使得该初始的fcn模型输出各个样本图像中前景的位置信息。如图4所示,初始的fcn模型401输出样本图像1中前景的位置信息a1、样本图像2中前景的位置信息b1以及样本图像3中前景的位置信息c1。

在步骤s303中,根据预先获取的各个样本图像对应的前景位置信息以及上述初始的fcn模型检测的各个样本图像中前景的位置信息,确定该初始的fcn模型的检测准确率;

在本申请实施例中,根据初始的fcn模型输出的某个样本图像所对应的前景的位置信息与步骤s301中预先获取的该样本图像的前景位置信息,判断该初始的fcn模型是否准确地检测了该样本图像的前景位置,遍历所有的样本图像,计算准确检测前景位置的样本图像在所有样本图像中所占的比例,将该比例确定为初始的fcn模型的检测准确率。

如图4所示,可以首先根据初始的fcn模型401输出的样本图像1所对应的前景的位置信息a1与步骤s301中所获取的前景位置信息a,判断该初始的fcn模型401是否准确检测该样本图像1中的前景位置。具体的判断是否准确检测该样本图像1中的前景位置的方法可以为:确定前景的位置信息a1与前景位置信息a的交集中像素点的个数以及并集中像素点的个数;若a1与a的交集中像素点的个数与a1与a并集中像素点的个数的比值大于预设比值,则认为该fcn模型401准确检测了该样本图像1中的前景位置。此外,判断是否准确检测该样本图像1中的前景位置的方法还可以为:根据前景位置信息a以及前景的位置信息a1,计算样本图像1中该前景位置信息a所确定的图像区域与样本图像1中该前景的位置信息a1所确定的图像区域的面积的交并比值,若该面积的交并比值大于预设面积交并比值,则认为该fcn模型401准确检测了该样本图像1中的前景位置。本申请对如何判断fcn模型是否准确检测样本图像中的前景位置的方法不作限定。最后,遍历其余样本图像,即样本图像2以及样本图像3,计算该初始的fcn模型401准确检测前景位置的样本图像在所有样本图像中所占的比例,从而得到该初始的fcn模型401的检测准确率。

在步骤s304中,不断调整当前的fcn模型的各个参数,并通过参数调整后的fcn模型继续检测各个样本图像中的前景位置,直至参数调整后的fcn模型的检测准确率大于预设准确率为止,则将该当前的fcn模型作为训练后的fcn模型;

通常情况下,初始的fcn模型并不能非常准确地检测样本图像中的前景位置,因此,需要调整该初始的fcn模型的各个参数,并再次将步骤s301所获取的各个样本图像输入至参数调整后的fcn模型中,以使得该参数调整后的fcn模型继续检测各个样本图像中的前景位置,再次得到该参数调整后的fcn模型的检测准确率,不断调整当前的fcn模型的各个参数,直至当前的fcn模型的检测准确率大于预设准确率为止,则将该当前的fcn模型作为训练后的fcn模型。常用的调整参数的方法有随机梯度下降算法(stochasticgradientdescent,sgd)、动力更新算法(momentumupdate)等等,此处对调整参数所使用的方法不作限定。

在步骤s103中,获取上述第一图像中需替换的图像区域,其中,该图像区域为上述第一图像中上述第一位置信息所指示的图像区域,或者是上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域;

在本申请实施例中,上述需替换的图像区域可以是上述第一图像的前景区域,或者也可以是上述第一图像的背景区域。

在本申请实施例中,该步骤s103中需替换的图像区域可以通过用户的自定义选择来确定,比如,终端设备可以输出提示信息,该提示信息用于提示用户选择需替换的图像区域是前景区域还是背景区域;其次,接收用户输入的反馈信息,该反馈信息用于指示用户所选择的需替换的图像区域是前景区域还是背景区域;然后,根据用户输入的反馈信息来确定需替换的图像区域。

在步骤s104中,根据上述第一图像中需替换的图像区域,确定第二图像;

一般情况下,用户想要替换的图像区域通常为背景区域,因此,在本申请实施例一中,论述当步骤s103所确定的需替换的图像区域为背景区域时,上述第二图像的确定方法。

若上述需替换的图像区域为上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域,即上述需替换的图像区域为背景区域时,可以通过附图5所示的步骤s501-s502来确定第二图像:

在步骤s501中,利用训练后的场景分类模型对上述第一图像进行场景分类,得到分类结果,该分类结果用于指示该场景分类模型是否识别出上述第一图像的场景,并且在识别出上述第一图像的场景时用于指示上述第一图像的场景类别;

在本申请实施例中,上述训练后的场景分类模型是用于进行场景分类的神经网络模型,用于识别步骤s101所获取的第一图像的背景,该场景分类模型可以为卷积神经网络(convolutionalneuralnet,cnn)模型。一般情况下,图像的背景通常为草地、雪地、海滩、大海以及室内,因此,可以预先训练场景分类模型,使得训练后的场景分类模型能够识别出上述第一图像的背景,比如,能够识别出草地场景、雪地场景以及室内场景等。

示例性地,上述场景分类模型的训练过程可以为:

预先获取各个样本图像(其中,训练场景分类模型的各个样本图像与上述用于训练fcn模型的各个样本图像可以完全相同,也可以部分相同,还可以完全不相同)以及各个样本图像对应的分类结果;利用初始的场景分类模型对各个样本图像进行场景分类,并根据预先获取的各个样本图像的分类结果,计算该初始的场景分类模型的分类准确率;不断调整当前的场景分类模型的各个参数,直到参数调整后的场景分类模型的分类准确率达到预设的分类准确率阈值为止,则将该当前的场景分类模型确定为训练后的场景分类模型。

在步骤s502中,若上述分类结果指示该场景分类模型识别出上述第一图像的场景,则在本地和/或服务器中查找与上述第一图像的场景类别相同的图像,若在本地和/或服务器中查找到与上述第一图像的场景类别相同的图像,则将该查找到的图像确定为第二图像。

若在步骤s501中得到上述第一图像的场景类别,则可以在本地和/或服务器中查找与该第一图像的场景类型相同的图像。比如,若上述场景分类模型识别出上述第一图像的场景类别为雪地场景,则在本地和/或服务器中查找场景类别同样为雪地场景的图像。

在本申请实施例中,上述在本地和/或服务器中查找与上述第一图像的场景类别相同的图像,若在本地和/或服务器中查找到与上述第一图像的场景类别相同的图像,则将该查找到的图像确定为第二图像,可以包括:利用训练后的场景分类模型识别本地和/或服务器中所保存的各个图像的场景类别,若识别出本地和/或服务器中存在场景类别与上述第一图像的场景类别相同的图像,则将该图像确定为第二图像。

由于本地和/或服务器中往往保存有大量的图像,为了减少确定上述第二图像的时间,可以在一旦查找到本地和/或服务器中存在场景类别与上述第一图像中场景类别相同的图像时,直接将该查找到的图像确定为第二图像,不需要再对本地和/或服务器中所保存的其他图像进行场景识别。另外,若在预设时间段内(比如0.05ms内),在本地和/或服务器中未查找到场景类别与上述第一图像的场景类别相同的图像,则停止在本地和/或服务器中查找图像,并认为在本地和/或服务器中未查找到与上述第一图像的场景类别相同的图像。

上述所提供的确定第二图像的方法需要利用训练后的场景分类模型对本地和/或服务器中的各个图像进行场景识别,因此,上述所提供的确定第二图像的方法在确定第二图像时会消耗大量的时间,因此,为了进一步减小确定第二图像的时间,可以在本地和/或服务器中预先存储不同的场景类别所对应的各个图像,比如,雪地场景对应有图像1、图像2以及图像3(图像1、图像2以及图像3的场景类别预先已经识别为雪地场景),草地场景对应有图像4以及图像5(图像4以及图像5的场景类别预先已经识别为草地场景)。在确定第二图像的过程中,直接在本地和/或服务器中查找上述第一图像的场景类别所对应的图像,并将该图像确定第二图像,若某个场景类别对应有多个图像时,可以由用户确定第二图像具体为哪一张图像。

此外,在本申请实施例中,若步骤s501未识别出上述第一图像的场景类别,或者在本地和/或服务器中未查找到场景类别与第一图像场景类别相同的图像,则可以直接由用户自定义设置第二图像。

另外,在本申请实施例中,若步骤s101所获取的第一图像为终端设备当前所拍摄的图像,则当上述需替换的图像区域为背景区域时,也可以通过附图6所示的步骤s601-s602来确定第二图像:

在步骤s601中,根据上述终端设备的定位模块,获取该终端设备当前的地理位置;

在步骤s602中,在本地和/或服务器中查找拍摄地点为上述地理位置的图像,若在本地和/或服务器中查找到拍摄地点为上述地理位置的图像,则将该查找到的图像确定为第二图像。

附图6提供了另一种不同于附图5的第二图像的确定方法。若第一图像中需替换的图像区域为背景区域,则首先根据步骤s601确定该第一图像的拍摄地点,其次,在本地和/或服务器中查找拍摄地点与该第一图像拍摄地点相同的图像,将该查找到的图像确定为第二图像。比如,若步骤s101所获取的第一图像的拍摄地点为安徽黄山,则在本地和/或服务器中查找拍摄地点同样为安徽黄山的图像,并将查找到的图像确定为第二图像。

此外,若在本地和/或服务器中未查找到拍摄地点与上述第一图像相同的图像,则上述第二图像可以由用户自定义设置。

在本申请实施例中,若步骤s103所确定的需替换的图像区域为背景区域时,上述第二图像的确定方法并不局限于上述附图5以及附图6所述的方法,还可以有其他方法,比如,在本地和/或服务器中查找与步骤s101所获取的第一图像中的背景区域相似度大于相似度阈值的图像,将该图像确定为第二图像。

当需替换的图像区域为背景区域时,本申请实施例一提供了多种第二图像的确定方法,上述所提供的各个第二图像的确定方法可以使得所确定的第二图像与第一图像的关联度较高,因此,在利用第二图像中的图像区域替换第一图像中的需替换的图像区域时,可以使得替换后的图像更为自然真实。

此外,若步骤s103所确定的需替换的图像区域为前景区域时,该步骤s104中确定第二图像的方法可以详见本申请实施例二的描述。

在步骤s105中,将上述第一图像中需替换的图像区域替换为上述第二图像中的图像区域,得到处理后的图像;

在通过步骤s104得到第二图像之后,可以将上述第一图像中需替换的图像区域替换为第二图像的图像区域,其中,上述第一图像中需替换的图像区域可以替换为第二图像中的任意图像区域,本申请对此不作限定。

下面给出一种当上述第一图像中需替换的图像区域为上述第一图像的背景区域时,步骤s105的一种具体实现方法:

若上述第一图像中需替换的图像区域为上述第一图像的背景区域,则:

根据上述第二图像以及上述第一位置信息,得到第三图像,其中该第三图像的各个像素点的像素值与上述第二图像相同,该第三图像中上述第一位置信息所指示的图像区域的各个像素点的透明度为完全透明状态,上述第一位置信息所指示的图像区域之外的图像区域的各个像素点的透明度为完全不透明状态;将上述第三图像覆盖在上述第一图像上,从而得到处理后的图像。

也即是,通过将第三图像覆盖在第一图像上,可以使得处理后的图像中保留有第一图像中的前景,而处理后的图像中的背景区域为第二图像中的图像区域。如图7所示,图像701为步骤s101获得的第一图像,图像701中的阴影区域即为第一图像701的前景区域,即第一位置信息所指示的图像区域,假设步骤s103所获取的需替换的图像区域为背景区域,步骤s104所确定的第二图像为图像702,则在步骤s105中,可以首先获取第三图像,其中,该第三图像的各个像素点的像素值与第二图像完全相同,且该第三图像中第一位置信息所指示的图像区域中的各个像素点的透明度为完全透明状态,除去第一位置信息之外的图像区域中的各个像素点的透明度为完全不透明状态,如图7中的图像703即为第三图像。

然而,通常情况下,当第一图像中需替换的图像区域为背景区域时,用户往往希望将第一图像中的背景区域替换为第二图像的背景区域,并不希望第一图像中的背景区域中包含第二图像的前景区域。然而,在附图7所示的例子中,可以很明显的看出,步骤s105所得到的处理后的图像中包含有第二图像702的前景,这显然是用户不希望的,因此,在本申请实施例中,当上述第一图像中需替换的图像区域为上述第一图像的背景区域时,步骤s105的另一种实现方法可以为:

若上述第一图像中需替换的图像区域为上述第一图像的背景区域,则:

利用训练后的卷积自编码器去除第二图像中的前景,得到去除前景后的第六图像;根据第六图像以及上述第一位置信息,得到第七图像,其中该第七图像的各个像素点的像素值与上述第六图像相同,该第七图像中上述第一位置信息所指示的图像区域的各个像素点的透明度为完全透明状态,上述第一位置信息所指示的图像区域之外的图像区域的各个像素点的透明度为完全不透明状态;将上述第七图像覆盖在上述第一图像上,从而得到处理后的图像。

也即是,首先将步骤s104所确定的第二图像中的前景去除,然后基于去除前景后的第六图像以及步骤s102获取的前景的位置信息,得到第七图像,然后将第七图像覆盖在第一图像上,可以使得处理后的图像中的前景区域为第一图像中的前景区域,处理后的图像中的背景区域更换为第二图像中的背景区域,而不包括第二图像中的前景区域。

其中,上述卷积自编码器的训练过程可以包括:

预先获取各个训练图像组,其中,每个训练图像组中包括一训练图像以及该训练图像所对应的去除该训练图像中前景后的图像;

将各个训练图像组所包括的训练图像分别输入至初始的卷积自编码器中,以使得该初始的卷积自编码器去除各个训练图像中的前景,得到各个训练图像分别对应的生成图像;

根据每个训练图像所对应的训练图像组中去除前景后的图像以及所对应的生成图像,确定该初始的卷积自编码器的生成正确率;

不断调整当前的卷积自编码器的各个参数,并通过参数调整后的卷积自编码器继续去除各个训练图像中的前景,直到参数调整后的卷积自编码器的生成正确率大于预设正确率为止,则将该当前的卷积自编码器确定为训练后的卷积自编码器。

如图8所示,为上述卷积自编码器的训练过程示意图,首先获取各个训练图像组,如图8所示,首先获取4个训练图像组,其中,第一个训练图像组包括训练图像a以及去除前景后的图像a1,第二个训练图像组包括训练图像b以及去除前景后的图像b1,第三个训练图像组包括训练图像c以及去除前景后的图像c1,第四个训练图像组包括训练图像d以及去除前景后的图像d1;其次,将各个训练图像分别输入至初始的卷积自编码器中,以使得该卷积自编码器去除各个训练图像中的前景,生成各个训练图像分别所对应的生成图像,如图8所示,将训练图像a输入至初始的卷积自编码器801中,得到该训练图像a对应的生成图像a2,同理,可以得到训练图像b对应的生成图像b2,训练图像c对应的生成图像c2,训练图像d对应的生成图像d2;然后,将a1与a2进行相似度匹配,将b1与b2进行相似度匹配,将c1与c2进行相似度匹配,将d1与d2进行相似度匹配,统计相似度大于预设相似度的生成图像所占的比例,将该比例确定为初始的卷积自编码器的生成正确率,比如,若a1与a2相似度为80%,b1与b2相似度为60%,c1与c2相似度为50%,d1与d2相似度为90%,预设相似度为85%,则初始的卷积自编码器的生成正确率为1/4;最后,不断调整当前的卷积自编码器的各个参数,直至当前的卷积自编码器生成正确率达到预设正确率为止。

本申请实施例一所提供的技术方案,可以将待处理的图像中的前景所在的图像区域,或者是背景所在的图像区域替换为另一图像中的图像区域,因此,可以实现更换待处理的图像中的前景或者背景的功能,能够解决目前的终端设备无法实现更换图像的背景以及前景的技术问题。

实施例二

下面对本申请实施例二提供的另一种图像处理方法进行描述,请参阅附图9,包括:

在步骤s901中,获取待处理的第一图像;

在步骤s902中,检测上述第一图像中的前景,得到该前景的第一位置信息;

在步骤s903中,获取上述第一图像中需替换的图像区域,其中,该图像区域为上述第一图像中上述第一位置信息所指示的图像区域,或者是上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域;

在本申请实施例二中,上述步骤s901-s903与实施例一中的步骤s101-s103相同,具体可参见实施例一的描述,此处不再赘述。

在步骤s904中,若上述第一图像中需替换的图像区域为上述第一图像中上述第一位置信息所指示的图像区域,则获取用户输入的前景类别,根据该前景类别,在本地和/或服务器中查找包含的前景的类别与上述用户输入的前景类别相同的图像,若查找到包含的前景的类别与上述用户输入的前景类别相同的图像,则将该查找到的图像确定为第二图像;

在本申请实施例二中,给出了当需替换的图像区域为前景所在的图像区域时,第二图像的确定方法。通常情况下,当需替换的图像区域为前景区域时,用户往往希望变更前景的类别,比如,将人物变更为狗。因此,可以首先获取用户输入的前景类别,其中该用户输入的前景类别用于指示在第一图像中的前景更换为另一前景时,该另一前景的类别;其次,在本地和/或服务器中查找包含的前景的类别与用户输入的前景类别相同的图像。

在本申请实施例中,上述“前景类别”以及“前景的类别”为图像的前景区域中拍摄主体的类别。在某些情况下,图像中的前景不但包括拍摄主体,还包括其他一些景物,如图7所示,图像701的前景区域(即阴影区域)中,不但包括拍摄主体(即人物),还包括其他一些非拍摄主体的景色(即台阶),因此,本申请上述所述的“前景类别”以及“前景的类别”是指图像中的前景区域中拍摄主体的类别,比如,图像701所对应的前景的类别为人物。

在本申请实施例中,上述根据该前景类别,在本地和/或服务器中查找包含的前景的类别与上述用户输入的前景类别相同的图像,若查找到包含的前景的类别与上述用户输入的前景类别相同的图像,则将该查找到的图像确定为第二图像,可以包括:利用训练后的场景检测模型识别本地和/或服务器中所保存的各个图像中前景的类别,若识别出本地和/或服务器中存在所包括的前景的类别与用户输入的前景类别相同的图像,则将该图像确定为第二图像。其中,上述场景检测模型为用于检测图像中前景的类别的神经网络模型,可以为cnn模型,具体的训练方法为现有技术,此处不再赘述。

由于本地和/或服务器中往往保存有大量的图像,为了减少确定上述第二图像的时间,可以在一旦查找到所包含的前景的类别与用户输入的前景类别相同的图像时,直接将该查找到的图像确定为第二图像,不再检测本地和/或服务器中其他图像的前景类别。另外,若在预设时间段内(比如0.05ms内),在本地和/或服务器中未查找到包含的前景的类别与上述用户输入的前景类别相同的图像时,则停止在本地和/或服务器中查找图像,并认为在本地和/或服务器中未查找到包含的前景的类别与上述用户输入的前景类别相同的图像。

此外,为了进一步减小确定第二图像的时间,可以在本地和/或服务器中预先存储不同的前景类别所对应的各个图像,比如,狗对应有图像1、图像2以及图像3(预先已经确定图像1、图像2以及图像3中前景的类别为狗),花草对应有图像4以及图像5(预先已经确定图像4以及图像5中前景的类别为花草)。在确定第二图像的过程中,直接在本地和/或服务器中查找用户输入的前景类别所对应的图像,并将该图像确定第二图像,若某个前景类别对应有多个图像时,可以由用户确定第二图像具体为哪一张图像。

此外,在本申请实施例中,若在本地和/或服务器中未查找到包含的前景的类别与上述用户输入的前景类别相同的图像时,则可以直接由用户自定义设置第二图像。

在本申请实施例中,若需替换的图像区域为前景区域时,可以首先获取用户输入的前景类别,然后根据用户输入的前景类别确定第二图像。然而第二图像的确定方法并不局限于此,还可以有其他方法,比如,上述前景类别的获取并不一定是用户手动输入的,可以是终端设备根据用户的日常行为习惯,自动获取用户喜爱拍摄的前景类别,本申请对第二图像的获取方法不作限定。

在步骤s905中,利用训练后的卷积自编码器去除上述第一图像中的前景,得到去除前景后的第四图像;

在步骤s906中,检测上述第二图像中的前景,得到上述第二图像中前景的第二位置信息,根据上述第二图像以及上述第二位置信息,得到第五图像,将上述第五图像覆盖在上述第四图像上,得到处理后的图像;

上述步骤s905以及s906给出了一种当上述第一图像中需替换的图像区域为前景区域时,实施例一中的步骤s105的一种具体实现方法。其中,上述训练后的卷积自编码器的训练过程与实施例一相同,具体可参见实施例一的描述。上述第五图像中上述第二位置信息所指示的图像区域的各个像素点的透明度为完全不透明状态,上述第二位置信息所指示的图像区域之外的图像区域的各个像素点的透明度为完全透明状态。根据上述步骤s905以及s906,可以实现处理后的图像中包含上述第二图像的前景以及上述第一图像的背景。

本申请实施例二给出了当需替换的图像区域为前景区域时,如何处理待处理的图像,根据本申请实施例二所提供的方法,可以实现更换图像中前景的目的,能够丰富终端设备对图像处理的方法,进一步提高用户体验。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

实施例三

本申请实施例三提供了一种图像处理装置,为便于说明,仅示出与本申请相关的部分,如图10所示图像处理装置1000包括:

图像获取模块1001,用于获取待处理的第一图像;

前景检测模块1002,用于检测上述第一图像中的前景,得到上述前景的第一位置信息;

替换区域获取模块1003,用于获取上述第一图像中需替换的图像区域,其中,上述图像区域为上述第一图像中上述第一位置信息所指示的图像区域,或者是上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域;

替换图像确定模块1004,用于根据上述第一图像中需替换的图像区域,确定第二图像;

替换模块1005,用于将上述第一图像中需替换的图像区域替换为上述第二图像中的图像区域,得到处理后的图像。

可选地,上述替换图像确定模块1004,包括:

场景分类单元,用于若上述第一图像中需替换的图像区域为上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域,则利用训练后的场景分类模型对上述第一图像进行场景分类,得到分类结果,上述分类结果用于指示上述场景分类模型是否识别出上述第一图像的场景,并且在识别出上述第一图像的场景时用于指示上述第一图像的场景类别;

第一查找单元,用于若上述分类结果指示上述场景分类模型识别出上述第一图像的场景,则在本地和/或服务器中查找与上述第一图像的场景类别相同的图像,若在本地和/或服务器中查找到与上述第一图像的场景类别相同的图像,则将该查找到的图像确定为第二图像。

可选地,上述替换图像确定模块1004,包括:

前景类别获取单元,用于若上述第一图像中需替换的图像区域为上述第一图像中上述第一位置信息所指示的图像区域,则获取用户输入的前景类别,上述前景类别用于指示在将上述第一图像中的前景替换为另一前景时,该另一前景的类别;

第二查找单元,用于根据上述前景类别,在本地和/或服务器中查找包含的前景的类别与上述用户输入的前景类别相同的图像,若在本地和/或服务器中查找到包含的前景的类别与上述用户输入的前景类别相同的图像,则将该查找到的图像确定为第二图像。

可选地,上述替换模块1005包括:

第一透明度设置单元,用于若上述第一图像中需替换的图像区域为上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域,则根据上述第二图像以及上述第一位置信息,得到第三图像,其中上述第三图像的各个像素点的像素值与上述第二图像相同,上述第三图像中上述第一位置信息所指示的图像区域的透明度为完全透明状态,上述第一位置信息所指示的图像区域之外的图像区域的透明度为完全不透明状态;

第一覆盖单元,用于将上述第三图像覆盖在上述第一图像上,从而得到处理后的图像;

前景去除单元,用于若上述第一图像中需替换的图像区域为上述第一图像中上述第一位置信息所指示的图像区域,则利用训练后的卷积自编码器去除上述第一图像中的前景,得到去除前景后的第四图像;

前景位置单元,用于检测上述第二图像中的前景,得到上述第二图像中前景的第二位置信息;

第二透明度设置单元,用于根据上述第二图像以及上述第二位置信息,得到第五图像,其中上述第五图像的各个像素点的像素值与上述第二图像相同,上述第五图像中上述第二位置信息所指示的图像区域的透明度为完全不透明状态,上述第二位置信息所指示的图像区域之外的图像区域的透明度为完全透明状态;

第二覆盖单元,用于将上述第五图像覆盖在上述第四图像上,从而得到处理后的图像。

可选地,上述前景检测模块1002,具体用于:

利用训练后的全卷积神经网络模型检测上述第一图像中的前景,得到上述前景的第一位置信息。

需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。

实施例四

图11是本申请实施例四提供的终端设备的示意图。如图11所示,该实施例的终端设备11包括:处理器110、存储器111以及存储在上述存储器111中并可在上述处理器110上运行的计算机程序112。上述处理器110执行上述计算机程序112时实现上述各个方法实施例中的步骤,例如图1所示的步骤s101至s105。或者,上述处理器110执行上述计算机程序112时实现上述各装置实施例中各模块/单元的功能,例如图10所示模块1001至1005的功能。

示例性的,上述计算机程序112可以被分割成一个或多个模块/单元,上述一个或者多个模块/单元被存储在上述存储器111中,并由上述处理器110执行,以完成本申请。上述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述上述计算机程序112在上述终端设备11中的执行过程。例如,上述计算机程序112可以被图像获取模块、前景检测模块、替换区域获取模块、替换图像确定模块及替换模块,各模块具体功能如下:

获取待处理的第一图像;

检测上述第一图像中的前景,得到该前景的第一位置信息;

获取上述第一图像中需替换的图像区域,其中,该图像区域为上述第一图像中上述第一位置信息所指示的图像区域,或者是上述第一图像中除上述第一位置信息指示的图像区域之外的图像区域;

根据上述第一图像中需替换的图像区域,确定第二图像;

将上述第一图像中需替换的图像区域替换为上述第二图像中的图像区域,得到处理后的图像。

上述终端设备可包括,但不仅限于,处理器110、存储器111。本领域技术人员可以理解,图11仅仅是终端设备11的示例,并不构成对终端设备11的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如上述终端设备还可以包括输入输出设备、网络接入设备、总线等。

所称处理器110可以是中央处理单元(centralprocessingunit,cpu),还可以是其它通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

上述存储器111可以是上述终端设备11的内部存储单元,例如终端设备11的硬盘或内存。上述存储器111也可以是上述终端设备11的外部存储设备,例如上述终端设备11上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,上述存储器111还可以既包括上述终端设备11的内部存储单元也包括外部存储设备。上述存储器111用于存储上述计算机程序以及上述终端设备所需的其它程序和数据。上述存储器111还可以用于暂时地存储已经输出或者将要输出的数据。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

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