一种交互式抠图方法及终端与流程

文档序号:32784591发布日期:2023-01-03 17:35阅读:159来源:国知局
一种交互式抠图方法及终端与流程

1.本技术涉及图像处理领域,尤其涉及一种交互式抠图方法及终端。


背景技术:

2.抠图是图像处理中很常用的一项工作。然而,很多专业的图像处理软件(例如photoshop)具有很高的学习成本,需要用户掌握专业的处理操作技能才能完成抠图,不利于用户快速便捷地从图像中提取出目标主体(即图像中特定区域的图像,例如图像中的前景)。
3.目前,可将标记前景和背景的图像作为训练样本,输入到神经网络模型(例如u-net模型)中进行训练,得到训练好的神经网络模型,即自动化抠图模型。利用该自动化抠图模型可实现对输入图像的自动化抠图。可以理解,自动化抠图模型的抠图效果严重依赖于训练样本的质量。例如,如果训练样本未覆盖特定场景(如输入图像对应的场景),那么该自动化抠图模型运算后得到的图像的抠图效果不佳。又例如,当输入图像相较于训练样本具有复杂背景(例如与待提取前景具有相同或相似的色彩)时,利用自动化抠图模型运算得到的图像的抠图效果不理想。又例如,当输入图像的前景包含多个主体时,该神经网络无法区分用户所需要的特定主体。


技术实现要素:

4.本技术提供的一种交互式抠图方法及终端,可以满足用户的抠图意图,提升抠图效果。
5.为了实现上述目的,本技术实施例提供了以下技术方案:
6.第一方面,提供一种交互式抠图系统,包括终端和服务器;终端,用于接收用户的第一输入,第一输入用于指示第一图像、以及用户在第一图像的第一区域中标记的一个或多个第一位置;第一区域属于第一图像中第一主体所在的区域;终端,还用于向服务器发送第一图像和一个或多个第一位置;服务器,用于根据第一图像和一个或多个第一位置生成第一距离图;服务器,还用于将第一距离图和第一图像输入到预先训练好的神经网络模型中运算,生成第二图像,并向终端返回第二图像;其中第二图像包括第一图像中第一主体的图像。
7.也就是说,用户可以在终端上输入待进行抠图处理的第一图像,并在第一图像中希望保留的第一区域中标记一个或多个第一位置,而后,将第一图像(具体可以是第一图像,也可以是第一图像的网络地址)发送给服务器。服务器先根据第一图像和第一位置生成第一距离图,然后将第一图像和第一距离图一同输入到预先训练好的神经网络模型进行抠图处理,得到抠图处理后的第二图像,其中第二图像中包括用户希望保留的第一区域。
8.可以理解的是,在第一图像中,与第一位置距离较近的区域较大概率为用户希望保留的第一区域,而与第一位置距离较远的区域较小概率为用户希望保留的第一区域。换言之,第一距离图反映了第一图像中各个像素点位于第一区域(即用户希望抠图处理后保
留的图像的区域)的概率大小。其中,第一图像中各个像素点位于第一区域的概率大小包括至少两层含义:一、各个像素点属于前景的概率。二、各个像素点属于用户希望保留的前景的概率。例如,第一图像中包括多个前景的主体时,而用户希望抠图处理后的图像仅保留部分前景主体。再换言之,本技术通过根据用户标记的第一位置不仅可以更加准确快速地提取出第一图像的前景,还可以根据用户标记的第一位置进一步提取出前景中用户希望提取的主体。
9.在一种可能的实现方式中,第一图像包括m个主体,第一主体为m个主体中的一个或多个。
10.也就是说,用户可以通过在第一图像的第一区域中标记第一位置的方式,用于表达自己的意图,希望抠图处理后保留的主体。
11.在一种可能的实现方式中,第一图像的前景包括m个主体,第一主体为m个主体中的一个或多个。
12.也就是说,当第一图像的前景包括多个主体时,用户可以指示保留全部的前景,也可以保留其中部分的前景。相较于现有技术中基于神经网络模型自动化抠图得到的图像仅区分前景和背景,本技术实施例还可以基于用户意图具体区分中前景中不同的主体,根据用户意图提取出用户希望保留的主体,不提取出用户不希望保留的主体。由此可见,本技术实施例提供的抠图方法能够满足用户更多的抠图需求,提升用户对抠图效果的满意度。
13.在一种可能的实现方式中,第一距离图的尺寸与第一图像的尺寸相同,并且第一距离图中的像素点与第一图像中的像素点一一对应;第一距离图中每个像素点的像素值用于表征第一图像中对应的像素点与第一位置的最小距离。
14.也就是说,第一距离图与第一图像的尺寸相同,且第一距离图中每一个像素点的像素值用于表达第一图像中相同位置的像素点距离第一位置的距离。若用户标记了多个第一位置,则第一距离图中每一个像素点的像素值用于表达第一图像中相同位置的像素点距离该像素点最近的第一位置的距离。
15.在一种可能的实现方式中,第一输入,还用于指示用户在第一图像的第二区域中标记一个或多个第二位置;其中,第二区域属于第一图像中非第一主体所在的区域;终端,还用于向服务器发送一个或多个第二位置;服务器,还用于根据第一图像和一个或多个第二位置,生成第二距离图;在服务器将第一距离图和第一图像输入到预先训练好的神经网络模型中运算,生成第二图像的过程中,服务器具体用于将第二距离图、第一距离图和第一图像输入到预先训练好的神经网络模型中运算,生成第二图像,其中第二图像包括第一图像中第一主体的图像,且不包括第一图像中第二区域的图像。
16.可以理解的是,在第一图像中,与第二位置距离较近的区域较大概率为用户希望不保留的第二区域。换言之,第二距离图反映了第一图像中各个像素点位于第二区域(用户希望抠图处理后不要保留的图像所在的区域)的概率大小。其中,第一图像中各个像素点位于第二区域的概率大小包括至少两层含义:一、各个像素点属于背景的概率。二、各个像素点属于用户希望不保留的前景的概率。再换言之,本技术通过根据用户标记的第二位置可以排除第一图像的背景以及前景中用户不希望提取的主体,那么有利于更加准确快速地提取出第一图像的前景。
17.在一种可能的实现方式中,第一图像包括m个主体,第二区域为非第一主体的其他
主体所在的区域。
18.也就是说,用户可以通过在第一图像的第二区域中标记第二位置的方式,用于表达自己的意图,希望抠图处理后不保留的主体。
19.在一种可能的实现方式中,第二区域为第一图像的背景,或者第二区域为第一图像中的部分前景所在的区域。
20.在一种可能的实现方式中,第二距离图的尺寸与第一图像的尺寸相同,并且第二距离图中的像素点与第一图像中的像素点一一对应;第二距离图中每个像素点的像素值用于表征第一图像中对应的像素点与第二位置的最小距离。
21.也就是说,第二距离图与第一图像的尺寸相同,且第二距离图中每一个像素点的像素值用于表达第一图像中相同位置的像素点距离第二位置的距离。若用户标记了多个第二位置,则第二距离图中每一个像素点的像素值用于表达第一图像中相同位置的像素点距离该像素点最近的第二位置的距离。
22.在一种可能的实现方式中,终端,还用于当服务器返回的第二图像没有包括第一图像中第三区域的图像时,接收用户的第二输入;其中,第三区域属于第一主体所在区域;第二输入用于在第一图像的第三区域中增加第一位置;终端,还用于向服务器发送修改后的第一位置;服务器,还用于根据第一图像和修改后的第一位置生成修改后的第一距离图;服务器,还用于将第一图像、以及修改后的第一距离图输入到预先训练好的神经网络模型中运算,生成第三图像,并向终端返回第三图像;其中第三图像包括第一图像中第一主体的全部图像。
23.换言之,若用户对服务器抠图处理后得到的第二图像不满意时,例如第二图像中没有包括完整的第一主体(如未包括第一主体中的第三区域)时,用户可以在第一主体的第三区域中新增第一位置的标记。这样,服务器再次根据第一图像和新增的第一位置进行抠图处理后,可以得到第三图像,该第三图标包括完整的第一主体,即包括第三区域的图像。
24.可以注意到,在该实施例中,服务器中预先训练好的神经网络模型并未改变,通过用户在第一图像中新增第一位置,可提升服务器利用预先训练好的神经网络模型的抠图效果。换言之,本技术实施例提供的抠图效果不完全依赖预先训练好的神经网络模型,那么也不严重依赖该神经网络模型训练时的训练样本。再换言之,即使在训练该神经网络模型时,训练样本未覆盖第一图像的场景时,也可以实现对第一图像的精准抠图。
25.在一种可能的实现方式中,终端,还用于当服务器返回的第二图像包括第一图像中第四区域的图像时,接收用户的第三输入;其中,第四区域属于第一图像中非第一主体所在区域,且第三输入用于在第一图像的第四区域中增加第二位置;终端,还用于向服务器发送修改后的第二位置;服务器,还用于根据第一图像和修改后的第二位置生成修改后的第二距离图;服务器,还用于将第一图像、第一距离图以及修改后的第二距离图输入到预先训练好的神经网络模型中运算,生成第四图像,并向终端返回第四图像;其中第四图像不包括第一图像中第四区域的图像。
26.换言之,若用户对服务器抠图处理后得到的第二图像不满意时,例如第二图像中包括了非第一主体的图像(如包括第四区域的图像)时,用户可以在第四区域中新增第二位置的标记。这样,服务器再次根据第一图像和新增的第二位置进行抠图处理后,可以排除第四区域的图像,得到第四图像,该第四图标不包括第四区域的图像。
27.可以注意到,在该实施例中,服务器中预先训练好的神经网络模型并未改变,通过用户在第一图像中新增第二位置,可提升服务器利用预先训练好的神经网络模型的抠图效果。换言之,本技术实施例提供的抠图效果不完全依赖预先训练好的神经网络模型,那么也不严重依赖该神经网络模型训练时的训练样本。再换言之,即使在训练该神经网络模型时,训练样本未覆盖第一图像的场景时,也可以实现对第一图像的精准抠图。
28.在一种可能的实现方式中,预先训练好的神经网络模型包括神经网络的骨干网络,神经网络的骨干网络包括残差神经网络、稠密卷积神经网络、深度级可分离卷积网络中的任一种。
29.在一种可能的实现方式中,用户在第一图像的第一区域中标记第一位置的操作,与用户在第一图像的第二区域中标记第二位置的操作不同。
30.在一种可能的实现方式中,每个第一位置为第一图像中的一个或多个坐标点,每个第二位置为第一图像中的一个或多个坐标点。
31.需要说明的是,本技术在标记第一位置或者第二位置时,用户可以在第一区域或第二区域内选择任意的位置进行标记。换言之,本技术实施例仅要求用户点击的位置或者绘制的图形位于相对应的区域(第一区域或第二区域)内即可,并没有严格要求用户沿着第一区域的内边界或者第二区域的内边界进行标记。再换言之,本技术实施例要求用户标记第一位置或第二位置的方法较为简单,用户的操作成本较低。
32.第二方面、提供一种交互式抠图方法,应用于服务器,该方法包括:接收终端发送的第一图像以及一个或多个第一位置;一个或多个第一位置为用户在第一图像的第一区域中标记的,第一区域属于第一图像中第一主体所在的区域;根据第一图像和一个或多个第一位置生成第一距离图;将第一距离图和第一图像输入到预先训练好的神经网络模型中运算,生成第二图像,并向终端返回第二图像;其中第二图像包括第一图像中第一主体的图像。
33.在一种可能的实现方式中,第一图像包括m个主体,第一主体为m个主体中的一个或多个。
34.在一种可能的实现方式中,第一图像的前景包括m个主体,第一主体为m个主体中的一个或多个。
35.在一种可能的实现方式中,第一距离图的尺寸与第一图像的尺寸相同,并且第一距离图中的像素点与第一图像中的像素点一一对应;第一距离图中每个像素点的像素值用于表征第一图像中对应的像素点与第一位置的最小距离。
36.在一种可能的实现方式中,该方法还包括:服务器接收到一个或多个第二位置;一个或多个第二位置为用户在第一图像的第二区域中标记的,第二区域属于第一图像中非第一主体所在的区域;服务器根据第一图像和一个或多个第二位置,生成第二距离图;服务器将第一距离图和第一图像输入到预先训练好的神经网络模型中运算,生成第二图像,具体包括:服务器将第二距离图、第一距离图和第一图像输入到预先训练好的神经网络模型中运算,生成第二图像,其中第二图像包括第一图像中第一主体的图像,且不包括第一图像中第二区域的图像。
37.在一种可能的实现方式中,第一图像包括m个主体,第二区域为非第一主体的其他主体所在的区域。
38.在一种可能的实现方式中,第二区域为第一图像的背景,或者第二区域为第一图像中的部分前景所在的区域。
39.在一种可能的实现方式中,第二距离图的尺寸与第一图像的尺寸相同,并且第二距离图中的像素点与第一图像中的像素点一一对应;第二距离图中每个像素点的像素值用于表征第一图像中对应的像素点与第二位置的最小距离。
40.在一种可能的实现方式中,在服务器向终端返回第二图像之后,该方法还包括:当第二图像没有包括第一图像中第三区域的图像时,服务器接收终端发送的修改后的第一位置;其中,第三区域属于第一主体所在区域;修改后的第一位置包括用户在第一图像的第三区域中增加的第一位置;根据第一图像和修改后的第一位置生成修改后的第一距离图;将第一图像、以及修改后的第一距离图输入到预先训练好的神经网络模型中运算,生成第三图像,并向终端返回第三图像;其中第三图像包括第一图像中第一主体的全部图像。
41.在一种可能的实现方式中,在服务器向终端返回第二图像之后,该方法还包括:当第二图像包括第一图像中第四区域的图像时,服务器接收终端发送的修改后的第二位置;其中,第四区域属于第一图像中非第一主体所在区域,且修改后的第二位置包括用户在第一图像的第四区域中新增的第二位置;根据第一图像和修改后的第二位置生成修改后的第二距离图;将第一图像、第一距离图以及修改后的第二距离图输入到预先训练好的神经网络模型中运算,生成第四图像,并向终端返回第四图像;其中第四图像不包括第一图像中第四区域的图像。
42.在一种可能的实现方式中,预先训练好的神经网络模型包括神经网络的骨干网络,神经网络的骨干网络包括残差神经网络、稠密卷积神经网络、深度级可分离卷积网络中的任一种。
43.在一种可能的实现方式中,每个第一位置为第一图像中的一个或多个坐标点,每个第二位置为第一图像中的一个或多个坐标点。
44.第三方面、提供一种服务器,包括:处理器和存储器,所述存储器与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述服务器执行上述第二方面以及第二方面中任一种可能的实现方式中所述的方法。
45.第四方面、提供一种终端,包括:处理器、存储器和显示屏,所述存储器、所述显示屏与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述服务器执行上述第一方面以及第一方面中任一种可能的实现方式中终端的行为。
46.第五方面、提供一种计算机可读存储介质,包括计算机指令,当计算机指令在终端/服务器上运行时,使得终端/服务器执行如上述方面及其中任一种可能的实现方式中所述的方法。
47.第六方面、提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述方面中及其中任一种可能的实现方式中所述的方法。
48.第七方面、提供一种芯片系统,包括处理器,当处理器执行指令时,处理器执行如上述方面中及其中任一种可能的实现方式中所述的方法。
49.上述第二方面至第七方面提供的方法、服务器、终端、计算机刻度存储介质、计算
机程序产品、芯片系统可达到的技术效果,均可参考第一方面以及第一方面中任一种可能的实现方式中有关技术效果的描述,这里不再赘述。
附图说明
50.图1为本技术实施例提供的一种抠图系统的结构示意图;
51.图2a为本技术实施例提供的一种终端100的结构示意图;
52.图2b为本技术实施例提供的一种服务器200的结构示意图;
53.图3为本技术实施例提供的另一种服务器200的结构示意图;
54.图4a为本技术实施例提供的一些终端100上显示的抠图处理软件的界面示意图;
55.图4b为本技术实施例提供的另一些终端100上显示的抠图处理软件的界面示意图;
56.图4c为本技术实施例提供的又一些终端100上显示的抠图处理软件的界面示意图;
57.图5a为本技术实施例提供的又一些终端100上显示的抠图处理软件的界面示意图;
58.图5b为本技术实施例提供的又一些终端100上显示的抠图处理软件的界面示意图;
59.图6a为本技术实施例提供的一些第一图像的标记方法与标记方法对应的抠图效果的示意图;
60.图6b为本技术实施例提供的一些第一图像的标记方法与标记方法对应的抠图效果的示意图;
61.图6c为本技术实施例提供的一些第一图像的标记方法与标记方法对应的抠图效果的示意图;
62.图7为本技术实施例提供的一些第一图像的标记方法与标记方法对应的抠图效果的示意图;
63.图8为本技术实施例提供的一种服务器200的抠图处理的方法流程示意图;
64.图9a为本技术实施例提供的一种生成第一距离图和第二距离图的方法示意图;
65.图9b为本技术实施例提供的另一种生成第一距离图的方法示意图;
66.图9c为本技术实施例提供的又一种生成第一距离图的方法示意图;
67.图10为本技术实施例提供的一种抠图处理的方法示意图;
68.图11为本技术实施例提供的另一种抠图处理的方法示意图;
69.图12为本技术实施例提供的一种芯片系统的结构示意图。
具体实施方式
70.在本技术实施例的描述中,除非另有说明,“/”表示或的意思,例如,a/b可以表示a或b;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更
多个该特征。在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
71.为了便于理解,下面先对本技术实施例可能涉及的神经网络的相关术语和概念进行介绍。
72.(1)神经网络
73.神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距b为输入的运算单元,该运算单元的输出可以为:
[0074][0075]
其中,s=1、2、
……
n,n为大于1的自然数,ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
[0076]
(2)深度神经网络
[0077]
深度神经网络(deep neural network,dnn),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对dnn进行划分,dnn内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
[0078]
虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于dnn层数多,系数w和偏移向量的数量也比较多。这些参数在dnn中的定义如下所述:以系数w为例:假设在一个三层的dnn中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数w所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
[0079]
综上,第l-1层的第k个神经元到第l层的第j个神经元的系数定义为
[0080]
需要注意的是,输入层是没有w参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。
[0081]
(3)卷积神经网络
[0082]
卷积神经网络(convosutionas neuras network,cnn)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,我们都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
[0083]
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
[0084]
(4)残差神经网络(residual neural network,resnet)
[0085]
resnet可以认为是特殊的深度神经网络,具体的,可以理解为是深度神经网络中多个隐含层之间的特殊连接方式。简单来说,resnet中多个隐含层之间除了逐层相连之外,例如第1层隐含层连接第2层隐含层,第2层隐含层连接第3层隐含层,第3层隐含层连接第4层隐含层(这是一条神经网络的数据运算通路,也可以形象的称为神经网络传输),残差网络还多了一条直连支路,这条直连支路从第1层隐含层直接连到第4层隐含层,即跳过第2层和第3层隐含层的处理,将第1层隐含层的数据直接传输给第4层隐含层进行运算。
[0086]
(5)像素值和图像特征
[0087]
图像的像素值可以是一个红绿蓝(rgb)颜色值,像素值可以是表示颜色的长整数。例如,像素值为256*red+100*green+76blue,其中,blue代表蓝色分量,green代表绿色分量,red代表红色分量。各个颜色分量中,数值越小,亮度越低,数值越大,亮度越高。对于灰度图像来说,像素值可以是灰度值。
[0088]
图像特征主要有图像的颜色特征、纹理特征、形状特征和空间关系特征等。
[0089]
颜色特征是一种全局特征,描述了图像或图像区域所对应的景物的表面性质;一般颜色特征是基于像素点的特征,此时所有属于图像或图像区域的像素都有各自的贡献。由于颜色对图像或图像区域的方向、大小等变化不敏感,所以颜色特征不能很好地捕捉图像中对象的局部特征。
[0090]
纹理特征也是一种全局特征,它也描述了图像或图像区域所对应景物的表面性质;但由于纹理只是一种物体表面的特性,并不能完全反映出物体的本质属性,所以仅仅利用纹理特征是无法获得高层次图像内容的。与颜色特征不同,纹理特征不是基于像素点的特征,它需要在包含多个像素点的区域中进行统计计算。
[0091]
形状特征有两类表示方法,一类是轮廓特征,另一类是区域特征,图像的轮廓特征主要针对物体的外边界,而图像的区域特征则关系到整个形状区域。
[0092]
空间关系特征,是指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系,这些关系也可分为连接/邻接关系、交叠/重叠关系和包含/包容关系等。通常空间位置信息可以分为两类:相对空间位置信息和绝对空间位置信息。前一种关系强调的是目标之间的相对情况,如上下左右关系等,后一种关系强调的是目标之间的距离大小以及方位。
[0093]
需要说明的,上述列举的图像特征可以作为图像中具有的特征的一些举例,图像还可以具有其他特征,如更高层级的特征:语义特征,此处不再展开。
[0094]
如图1所示,为本技术实施例提供的一种抠图系统的结构示意图,该抠图系统包括终端100和服务器200。
[0095]
其中,终端100用于提供图形用户界面,用于接收用户的交互操作,以及向用户展示相关界面。例如,用户可以通过终端100选择待处理的图像(记为第一图像),以及在第一图像中第一区域中标记一个或多个第一位置。其中,第一图像中第一区域为用户希望在抠图处理后保留的图像所在的区域。例如,第一区域为第一图像的前景所在的区域。又例如,第一图像的前景包括m个主体时,第一区域也可以是m个主体中的n个主体所在的区域。其中,n为大于零且小于m的整数。需要说明的是,每个第一位置可以是第一图像中一个坐标点,也可以是多个坐标点。当第一位置为多个坐标点时,可以为位置上不连续的多个坐标点,也可以是位置上连续的多个坐标点,还可以是一些第一位置在位置上不连续,一些第一位置在位置上连续,本技术实施例对此不做限定。
[0096]
一些示例中,终端100具有触摸屏,在终端100显示第一图像时,用户可以在触摸屏上第一图像中第一区域对应的一个或多个位置执行单击操作,或者长按操作等。或者,用户也可以在触摸屏上执行滑动操作。另一些示例中,终端100具有鼠标的输入装置。在终端100显示第一图像时,用户可以利用鼠标将光标移至第一图像中第一区域的特定位置,然后单击鼠标(单击左键或单击右键等)或双击鼠标等。或者,用户按住鼠标的左键或右键使得光标在第一图像拖动一段距离。
[0097]
可选的,用户还可以在第一图像中第二区域中标记一个或多个第二位置。其中,第一图像中第二区域为用户希望在抠图处理后不保留的图像所在的区域。例如,第二区域为第一图像的背景所在的区域。又例如,第一图像的前景包括多个主体时,第二区域也可以包括用户希望抠图处理后不保留的主体所在的区域。需要说明的是,每个第二位置可以是第一图像中一个坐标点,也可以是多个坐标点。当第二位置为多个坐标点时,可以为位置上不连续的多个坐标点,也可以是位置上连续的多个坐标点,还可以是一些第二位置在位置上不连续,一些第二位置在位置上连续,本技术实施例对此不做限定。
[0098]
需要说明的是,标记第二位置的方法可以参考标记第一位置的方法。但需要注意的是,标记第二位置可以与标记第一位置的具体操作可以不同。例如,第一操作为单击操作,第二操作为长按操作。又例如,第一操作为单击左键,第二操作为单击右键。
[0099]
终端100还用于将第一图像的信息(例如第一图像或者第一图像的网络地址等),以及第一位置发送给服务器200。可选的,如果用户在第一图像中第二区域中还标记了第二位置,则还可以将第二位置发送给服务器200。
[0100]
服务器200用于在接收到第一图像的信息和用户标记的第一位置(和第二位置)后,首先根据第一位置以及第一图像生成第一距离图,该第一距离图中每个像素点的数值
用于表征该像素点的位置与第一位置之间的距离。在一些实施例中,如果用户标记了多个第一位置时,那么该第一距离图中每个像素点的数值用于表征该像素点的位置与距离该像素点的位置最近的第一位置之间的距离。
[0101]
可以理解的是,在第一图像中,与第一位置距离较近的区域较大概率为用户希望保留的第一区域,而与第一位置距离较远的区域较小概率为用户希望保留的第一区域。换言之,第一距离图反映了第一图像中各个像素点位于第一区域(即用户希望抠图处理后保留的图像的区域)的概率大小。其中,第一图像中各个像素点位于第一区域的概率大小包括至少两层含义:一、各个像素点属于前景的概率。二、各个像素点属于用户希望保留的前景的概率。例如,第一图像中包括多个前景的主体时,而用户希望抠图处理后的图像仅保留部分前景主体。再换言之,本技术通过根据用户标记的第一位置不仅可以更加准确快速地提取出第一图像的前景,还可以根据用户标记的第一位置进一步提取出前景中用户希望提取的主体。
[0102]
可选的,若服务器200还接收到第二位置,则还需要根据第二位置以及第一图像生成第二距离图,该第二距离图中每个像素点的数值用于表征该像素点的位置与第二位置之间的距离。在一些实施例中,用户标记了多个第二位置时,则该第二距离图中每个像素点的数值用于表征该像素点的位置与距离该像素点的位置最近的第二位置之间的距离。
[0103]
可以理解的是,在第一图像中,与第二位置距离较近的区域较大概率为用户希望不保留的第二区域。换言之,第二距离图反映了第一图像中各个像素点位于第二区域(用户希望抠图处理后不要保留的图像所在的区域)的概率大小。其中,第一图像中各个像素点位于第二区域的概率大小包括至少两层含义:一、各个像素点属于背景的概率。二、各个像素点属于用户希望不保留的前景的概率。再换言之,本技术通过根据用户标记的第二位置可以排除第一图像的背景以及前景中用户不希望提取的主体,那么有利于更加准确快速地提取出第一图像的前景。
[0104]
需要说明的是,在其他一些实施例中,终端100也可以在接收到用户标记的第一位置和第二位置(第二位置可缺省)后,也可以根据第一图像和第一位置生成第一距离图,根据第一图像和第二位置生成第二距离图(第二距离图可缺省)。而后,终端100将第一图像的信息、第一距离图和第二距离图(第二距离图可缺省)发送给服务器200。
[0105]
而后,服务器200将第一图像和第一距离图输入到预先训练好的神经网络模型1中,由神经网络模型1进行运算后,输出第二图像,第二图像为对第一图像进行抠图处理后的图像,且第二图像包含第一图像中第一区域的图像,不包含第一图像中第二区域的图像。也就是说,神经网络模型1用于根据第一图像和第一距离图实现对第一图像的抠图处理。
[0106]
可选的,服务器200还可以将第二距离图一同输入到该神经网络模型1(也可以是不同的神经网络模型,如预先训练好的神经网络模型2)中,该神经网络模型1(或神经网络模型2)输出第二图像。第二图像为对第一图像进行抠图处理后的图像,且第二图像包含第一图像中第一区域的图像,不包含第一图像中第二区域的图像。
[0107]
还需要说明的是,在其他一些实施例中,图1所示的抠图系统也可以不包括服务器200。换言之,上述步骤全部由终端100执行。
[0108]
相较于现有技术,现有技术中仅依靠神经网络模型的自动化抠图方法严重依赖训练样本。当训练样本的大小较小,或训练样本不平衡等因素均会影响神经网络模型的抠图
效果。另外,训练样本的人工标注并不体现后续抠图处理时的用户意图,故也将造成抠图处理的图像可能并没有提取到用户希望提取的图像。例如,图像的前景包括多个主体,抠图处理可能保留了全部的主体,而用户可能只希望保留其中部分的主体。
[0109]
然而,在本技术实施例中,用户在第一图像中标记第一位置,用于表达用户希望在抠图处理后保留的区域(即用户意图)。然后根据第一位置生成第一距离图,第一距离图表征了第一图像中各个位置属于用户希望保留的区域的概率。而后,再将第一距离图和第一图像输入到神经网络模型实现对第一图像的抠图处理。一方面,由于用户标注的第一位置,有利于神经网络更加准确快速地提取出第一图像的前景。另一方面,也由于用户标注的第一位置,有利于神经网络提取出前景中用户希望提取的主体。
[0110]
可选的,用户还可以在第一图像中标记第二位置,用于表达用户希望在抠图处理后不保留的区域(即用户意图)。那么,还根据第二位置生成第二距离图,第二距离图表征了第一图像中各个位置属于用户希望不保留的区域的概率。而后,再将第二距离图、第一距离图和第一图像输入到神经网络模型实现对第一图像的抠图处理。可见,由于用户标注的第二位置,有利于神经网络排除第一图像的背景以及前景中用户不希望提取的主体。
[0111]
还需要说明的是,本技术实施例中用户仅需要在希望保留的第一区域中任一个位置或几个位置进行标记,即为第一位置。类似的,用户仅需要在希望不保留的第二区域中任一个位置或几个位置进行标记,即为第二位置。本技术实施例并不要求用户勾画出第一区域或第二区域的轮廓或执行其他较为复杂的操作,降低了用户的操作成本。
[0112]
示例性的,本技术实施例中终端100例如可以为手机、平板电脑、个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda)、上网本、增强现实技术(augmented reality,ar)设备、虚拟现实(virtual reality,vr)设备、车载设备、智慧屏等,本技术对该终端100的具体形式不做特殊限制。本技术实施例中的服务器200可以为一个或多个云服务器、网络服务器、计算机集群等。本技术实施例对服务器200的具体形式也不做限定。
[0113]
请参考图2a,图2a示出了终端100(例如pc)的结构示意图。该终端100包括至少一个处理器110、至少一个存储器120、至少一个通信接口130、输出设备140、以及输入设备150。
[0114]
处理器110、存储器120、通信接口130、输出设备140、以及输入设备150通过总线相连接。处理器110可以是一个通用中央处理器(central processing unit,cpu)、微处理器、特定应用集成电路(application-specific integrated circuit,asic),或者一个或多个用于控制本技术方案程序执行的集成电路。处理器110也可以包括多个cpu,并且处理器110可以是一个单核(single-cpu)处理器或多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路或用于处理数据(例如计算机程序指令)的处理核。
[0115]
在本技术的一些实施例中,终端100可以实现对第一图像的抠图处理。在该实施例中,处理器110可以包括主cpu(host cpu)和神经网络处理器(neural-network processing unit,npu)。一些示例中,npu可用于根据用户在第一图像中标记的第一位置,计算出第一距离图。可选的,npu还可以根据用户在第一图像中标记的第二位置,计算出第二距离图。然后,npu基于第一图像和第一距离图,以及存储器120中存储的预先训练好的神经网络模型1进行运算,得到第二图像。或者,npu基于第一图像、第一距离图、第二距离图以及存储器120
中存储的预先训练好的神经网络模型1或神经网络模型2进行运算,得到第二图像。当然,在其他的一些示例中,也可以由终端100的其他处理器(例如主cpu)根据用户在第一图像中标记的第一位置,计算出第一距离图,以及根据用户在第一图像中标记的第二位置,计算出第二距离图。然后,再由npu根据第一图像、第一距离图运算得到第二图像,或者,由npu根据第一图像、第一距离图、第二距离图运算得到第二图像。
[0116]
存储器120可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器120可以是独立存在,通过总线与处理器110相连接。存储器120也可以和处理器110集成在一起。其中,存储器120用于存储执行本技术方案的应用程序代码,并由处理器110来控制执行。
[0117]
在终端100可以实现对第一图像的抠图处理的实施例中,存储器120中存储有上述的预先训练好的神经网络模型1或神经网络模型2,可用于实现对输入图像的抠图处理。
[0118]
还需要说明的是,上述的神经网络模型1和神经网络模型2可以是终端100从服务器(例如提供抠图处理功能的应用服务器,或者为终端100的厂商维护的服务器等)处下载的,也可以是终端100出厂时预先存储的,还可以是终端100的处理器(例如npu30)根据用户输入的大量的训练数据进行训练得到的。本技术实施例对此不做限定。
[0119]
通信接口130,可用于与其他设备或通信网络通信,如以太网,无线局域网(wireless local area networks,wlan)等。
[0120]
输出设备140和处理器110通信,可以以多种方式来显示信息。例如,输出设备140可以是液晶显示器(liquid crystal display,lcd),发光二级管(light emitting diode,led)显示设备,阴极射线管(cathode ray tube,crt)显示设备,或投影仪(projector)等。输入设备150和处理器110通信,可以以多种方式接收用户的输入。例如,输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。
[0121]
请参考图2b,图2b示出了服务器200的结构示意图。该服务器200包括至少一个处理器210、至少一个存储器220、至少一个通信接口230。可选的,服务器200还可以包括输出设备和输入设备(图中未示出)。
[0122]
处理器210、存储器220、通信接口230通过总线相连接。处理器210可以是一个通用中央处理器(central processing unit,cpu)、微处理器、特定应用集成电路(application-specific integrated circuit,asic),或者一个或多个用于控制本技术方案程序执行的集成电路。处理器210也可以包括多个cpu,并且处理器210可以是一个单核(single-cpu)处理器或多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路或用于处理数据(例如计算机程序指令)的处理核。
[0123]
在本技术的一些实施例中,处理器210可以包括主cpu(host cpu)和神经网络处理器(neural-network processing unit,npu)。请参考图3,npu作为协处理器挂载到主cpu
上,由host cpu分配任务。npu的核心部分为运算电路303。控制器304控制运算电路303提取存储器(权重存储器302或输入存储器301)中的数据并进行运算。
[0124]
在一些实现中,运算电路303内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路303是二维脉动阵列。运算电路303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路303是通用的矩阵处理器。举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器302中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器301中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)308中。
[0125]
向量计算单元307可以对运算电路303的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元307可以用于神经网络中非卷积/非fc层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
[0126]
在一些实现中,向量计算单元能307将经处理的输出的向量存储到统一存储器306。例如,向量计算单元307可以将非线性函数应用到运算电路303的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元307生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路303的激活输入,例如用于在神经网络中的后续层中的使用。
[0127]
统一存储器306用于存放输入数据以及输出数据。存储单元访问控制器305(direct memory access controller,dmac)将外部存储器(相对于npu30)中的输入数据搬运到输入存储器301和/或统一存储器306、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器306中的数据存入外部存储器。总线接口单元(bus interface unit,biu)310,用于通过总线实现主cpu、dmac和取指存储器309之间进行交互。与控制器304连接的取指存储器(instruction fetch buffer)309,用于存储控制器304使用的指令。控制器304,用于调用指存储器309中缓存的指令,实现控制该运算加速器的工作过程。
[0128]
一般地,统一存储器306,输入存储器301,权重存储器502以及取指存储器509均为片上(on-chip)存储器,外部存储器为该npu外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
[0129]
在本技术的一些示例中,服务器200在通过通信接口230接收到终端100发送的第一图像的信息(第一图像或第一图像的网络地址),以及用户在第一图像中标记的第一位置后,npu30可用于根据用户在第一图像中标记的第一位置,计算出第一距离图。可选的,若服务器200还接收到用户在第一图像中标记的第二位置,则npu30还可以根据用户在第一图像中标记的第二位置,计算出第二距离图。然后,npu30基于第一图像和第一距离图,以及存储器220中存储的预先训练好的神经网络模型1进行运算,得到第二图像。或者,npu30基于第一图像、第一距离图、第二距离图以及存储器220中存储的预先训练好的神经网络模型1或神经网络模型2进行运算,得到第二图像。
[0130]
当然,在其他的一些示例中,也可以由服务器200的其他处理器(例如主cpu)根据
用户在第一图像中标记的第一位置,计算出第一距离图,以及根据用户在第一图像中标记的第二位置,计算出第二距离图。然后,再由npu30根据第一图像、第一距离图运算得到第二图像,或者,由npu30根据第一图像、第一距离图、第二距离图运算得到第二图像。
[0131]
此外,在另外一些示例中,终端100可以根据用户在第一图像中标记的第一位置,计算出第一距离图,以及根据用户在第一图像中标记的第二位置,计算出第二距离图。而后,终端100直接将第一图像的信息,第一距离图和第二距离图发送给服务器200。那么,服务器200的npu30还可以直接基于第一图像和第一距离图,以及存储器220中存储的预先训练好的神经网络模型1进行运算,得到第二图像。或者,npu30基于第一图像、第一距离图、第二距离图以及存储器220中存储的预先训练好的神经网络模型1或神经网络模型2进行运算,得到第二图像。
[0132]
存储器220可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备、随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器220可以是独立存在,通过总线与处理器210相连接。存储器220也可以和处理器210集成在一起。其中,存储器220用于存储执行本技术方案的应用程序代码,并由处理器210来控制执行。
[0133]
在本技术的一些实施例中,存储器220中存储有上述的预先训练好的神经网络模型1或神经网络模型2,可用于实现对输入图像的抠图处理。其中,上述的神经网络模型1和神经网络模型2可以是服务器200的处理器(例如npu30)根据大量的训练样本进行训练得到的。
[0134]
通信接口230,可用于与其他设备或通信网络通信,如以太网,无线局域网(wireless local area networks,wlan)等。
[0135]
以下实施例中所涉及的技术方案均可以在具有上述硬件架构的终端100和服务器200中实现。本文以终端100是计算机为例,结合附图对本技术实施例提供的技术方案进行详细说明。
[0136]
用户可以在计算机上打开抠图处理软件(也称为客户端)。一些示例中,响应于检测到用户打开抠图处理软件的操作,计算机可以显示如图4a中(1)所示的抠图处理软件的界面401。界面401中包括添加控件402,用于提示用户指示或者上传待处理的图像,即待进行抠图处理的第一图像。响应于用户点击添加控件402,计算机显示如图4a中(2)所示的窗口404,用于用户选择并上传第一图像。
[0137]
当然,用户也可以采用其他方式指示第一图像。在一些示例中,当用户开启抠图处理软件后,抠图处理软件的界面(例如界面401)默认铺满计算机的整个显示屏。或者,用户操作抠图处理软件的界面,使得抠图处理软件的界面铺满计算机的整个显示屏。那么,用户可先缩小抠图处理软件的界面。例如,如图4b中(1)所示,当计算机检测到用户在抠图处理软件的窗口中操作缩小控件(或称为向下还原控件)404,计算机缩小抠图处理软件的界面
401,例如显示如图4b中(2)所示的界面405中抠图处理软件界面401的大小。此时,抠图处理软件的界面401不再铺满计算机的整个显示屏,用户还可以同时在计算机上查找待处理的图像。再换言之,当前计算机可以显示至少两个窗口,一个窗口用于显示抠图处理软件的界面401,另一个窗口用于查找待处理的图像,比如用于显示文件夹或网页等。例如,如图4b中(2)所示的界面405中,一个窗口用于显示抠图处理软件的界面401,另一个窗口用于显示文件夹406。其中,文件夹406中包括一个或多个图像的图标(例如图标407)。当计算机检测到用户在文件夹406中按住图标407,并将图标407拖动到图像处理软件的界面401(或者具体到该界面401中指定的区域内)中时,计算机将图标407对应的图像确定为待处理的图像,即第一图像。其中,文件夹406可以为计算机本地的文件夹,那么第一图像为计算机本地存储的图像。换言之,用户可以指定计算机上本地存储的图像为第一图像。文件夹406也可以为计算机的网上邻居的文件夹,或者为计算机访问的服务器上的文件夹。那么,第一图像为非计算机本地存储的图像。换言之,用户也可以通过计算机指定其他终端或者服务器上的图像为第一图像。总之,本技术实施例对此第一图像的来源不做限定。还需要说明的是,在其他一些示例中,当用户开启抠图处理软件后,抠图处理软件的界面(例如界面401)默认未铺满计算机的整个显示屏。那么,用户无需再缩小抠图处理软件的界面,可直接同时在计算机上查找待处理的图像。
[0138]
又例如,在手机与计算机协同工作的场景中,用户还可以在直接指示手机上的图像为第一图像。例如,如图4c中(1)所示,当检测到用户触发手机与计算机的多屏协同工作后(例如通过碰一碰、扫描或靠近连接等方式触发手机与计算机的多屏协同功能),计算机的显示屏上显示手机的界面。比如,如图4c中(2)所示,手机显示图库的浏览界面408,与此同时,计算机上显示的手机界面409,与手机显示的图库的浏览界面408的内容相同。当检测到用户在计算机显示的手机界面409中按住图标410,向抠图处理软件的界面401中拖动(或者具体拖动到界面401中指定区域)后,计算机将手机中图标410中对应的图像作为第一图像。
[0139]
在用户通过上述方式指示了待进行抠图处理的第一图像后,用户可通过操作下一步控件403或者计算机在确定第一图像后自动进入下一步处理。
[0140]
例如,如图5a中(1)所示,为计算机确定第一图像后显示的抠图处理软件的界面501。该界面501中包括提示信息502、第一图像503以及一些功能控件(例如“上一步”控件504和“下一步”控件505)。
[0141]
其中,提示信息502,用于提示用户在第一图像503的第一区域中标记一个或多个第一位置,以及第一位置的标记方法。其中,第一图像中第一区域为用户希望在抠图处理后保留的图像所在的区域。例如,第一区域为第一图像的前景所在的区域。又例如,第一图像的前景包括m个主体时,第一区域也可以是m个主体中的n个主体所在的区域。其中,n为大于零且小于m的整数。
[0142]
可选的,提示信息502,还用于提示用户在第一图像503的第二区域中标记一个或多个第二位置,以及第二位置的标记方法。其中,第一图像中第二区域为用户希望在抠图处理后不保留的图像所在的区域。例如,第二区域为第一图像的背景所在的区域。又例如,第一图像的前景包括多个主体时,第二区域也可以包括用户希望抠图处理后不保留的主体所在的区域。
[0143]
其中,“上一步”控件504,用于撤销之前的用户操作,例如撤销用户上一步标记的第一位置、或者撤销用户上一步标记的第二位置,或者返回到上一个界面。“下一步”控件504可用于指示终端100进入下一步的处理,例如进入抠图处理的步骤。
[0144]
以下结合不同的场景,对用户在第一图像中标记第一位置、标记第二位置的方法进行详细说明。
[0145]
场景一、第一图像中第一区域与第二区域包含相同或相似的颜色(即,第一区域和第二区域中至少部分像素点的像素值相接近)。例如,计算机显示如图5a中(1)所示的界面501,在第一图像503中,“蜜蜂”所在的区域(即第一区域)的颜色与“花”所在的区域(即第二区域)的颜色相似。
[0146]
如果用户希望对第一图像503进行抠图处理后,保留“蜜蜂”的图像,而不保留“花”的图像。那么,用户可以在第一图像503中“蜜蜂”所在的区域中选择一个或多个位置标记为第一位置。可选的,如果用户还可以在第一图像503中“花”所在的区域中选择一个或多个位置标记为第二位置。
[0147]
例如,在界面501中,用户可以将光标移至到第一图像503中“蜜蜂”所在的区域中任意一个位置,然后点击鼠标的左键。响应于接收到鼠标的左键点击指令,计算机在光标当前所在的位置显示第一标记506,用于表示该位置已被用户标记为第一位置。并且,计算机记录该位置的信息,例如,记录[x1,y1,第一值]。其中x1为该位置的横坐标,y1为该位置的纵坐标。第一值用于表征该位置被标记为第一位置,第一值例如为“true”或“1”。由此,用户标记了一个第一位置。可以理解的,用户采用相同的方法,可以在第一图像503中标记多个第一位置。需要注意的是,在该示例中,每个第一位置均为一个坐标点。
[0148]
可选的,用户可以将光标移至到第一图像503中“花”所在的区域中任意一个位置,然后点击鼠标的右键。响应于接收到鼠标的右键点击指令,计算机在光标当前所在的位置显示第二标记507,用于表示该位置已被用户标记为第二位置。并且,计算机记录该位置的信息,例如,记录[x2,y2,第二值]。其中x2为该位置的横坐标,y2为该位置的纵坐标。第二值用于表征该坐标点位置被标记为第二位置,第二值例如为“false”或“0”。由此,用户标记了一个第二位置。可以理解的,用户采用相同的方法,可以在第一图像503中标记多个第二位置。需要注意的是,在该示例中,每个第二位置均为一个坐标点。还需要说明的是,上述第二标记507与第一标记506不同,例如颜色不同、形状不同、填充图案不同等,便于用户区分第一位置和第二位置。
[0149]
由此,计算机获得用户标记的位置列表,包括第一位置的列表[x1,y1,第一值]、[
……
]
……
,以及第二位置列表[x2,y2,第二值]、[
……
]
……

[0150]
而后,用户可以通过在界面501中点击“下一步”控件504,确定对第一图像503进行抠图处理。计算机可以显示如图5a中(2)所示的界面508,界面508中显示提示信息509,用于提示用户正在进行抠图处理。可选的,界面508还可以显示第一图像503,以及用户标记的第一标记506和第二标记507等。在一个示例中,终端100将第一图像503的信息(第一图像503或者第一图像503的网络地址)、以及第一位置的列表、第二位置的列表发送给服务器200,由服务器200根据第一位置的列表,生成第一距离图,根据第二位置的列表生成第二距离图。然后,再根据第一图像、第一距离图和第二距离图利用预先训练好的神经网络模型1或者神经网络模型2对第一图像503进行运算,得到抠图处理后的第二图像。而后,服务器200
将第二图像的信息(例如,第二图像或者第二图像的网络地址)返回给终端100。其中,服务器200抠图处理的过程将在下文详细说明,这里先不做说明。
[0151]
终端100在接收到服务器200返回的第二图像的信息后,可以展示第二图像。例如,终端100显示如图5b中(1)所述的界面510,界面510中显示有第二图像511,该第二图像511中仅保留了“蜜蜂”的图像。进一步的,用户可以通过界面510中的保存图像控件512,将第二图像511保存在计算机本地。
[0152]
前文已说明,现有技术中仅依靠神经网络模型的自动化抠图方法严重依赖训练样本。当训练样本的大小较小,或训练样本不平衡等因素均会影响神经网络模型的抠图效果。在实际场景中,针对该场景中第一区域和第二区域的颜色相同或相似的情况,现有技术中仅依靠神经网络模型的自动化抠图方法的抠图效果较差。然而,在本技术实施例中,由于用户在第一区域中标记了第一位置,在第二区域中标记了第二位置,而后利用神经网络模型进行抠图时重视与第一位置距离较近的像素点,排除与第二位置距离较近的像素点,这样将有利于神经网络模型快速准确地识别出第一区域和第二区域的分界,从而完整地提取出第一区域的图像,提升抠图效果。
[0153]
在其他一些示例中,如果用户对第二图像511的抠图效果不满意时,用户还可在如图5b中(1)所示的界面510中操作重新抠图的控件513,重新在原图像(即第一图像503)中标记第一位置和第二位置。例如,如图5b中(2)所示的界面514,第一图像503上显示有之前用户标记的第一标记和第二标记,用户还可以根据第二图像511的实际抠图效果,在第一图像503上新增第一标记或第二标记。例如,如果第二图像511中未包括“蜜蜂”的翅膀,则用户在界面514的第一图像503中,在蜜蜂翅膀的区域选择一个或多个位置标记为第一位置,即新增一个或多个第一标记。又或者,如果第二图像511中包括了非“蜜蜂”的图像,则用户可以在界面514的第一图像503中相对应的区域中选择一个或多个位置标记为第二位置,即新增一个或多个第二标记。在用户新增第一标记和第二标记后,终端100再将第一图像503的信息、更新后的第一位置的列表和第二位置列表发送给服务器200,由服务器200再次进行抠图处理。这样,服务器200再次抠图处理得到的第二图像的抠图效果能够更好地区分蜜蜂的外轮廓(即第一区域与第二区域的边界),从而完整地提取出蜜蜂(即第一区域的图像),提升抠图效果。可以注意到,在该实施例中,服务器200中预先训练好的神经网络模型并未改变,通过用户在第一图像中新增第一位置和第二位置,可提升服务器200利用预先训练好的神经网络模型的抠图效果。换言之,本技术实施例提供的抠图效果不完全依赖预先训练好的神经网络模型,那么也不严重依赖该神经网络模型训练时的训练样本。再换言之,即使在训练该神经网络模型时,训练样本未覆盖第一图像的场景时,也可以实现对第一图像的精准抠图。
[0154]
还需要说明的是,上述实施例是以用户采用左键点击的方式标记第一位置,右键点击的方式标记第二位置为例进行说明的。事实上,用户也可以采用其他方式标记第一位置和第二位置。例如,用户也可以采用单击左键的方式标记第一位置,双击左键的方式标记第二位置。又例如,用户还可以采用按住鼠标左键从左向右拖动的方式标记第一位置,按住鼠标左键从右向左拖动的方式标记第二位置。又例如,用户还可以采用在希望保留的第一区域内绘制闭合的图形用于标记第一位置,在希望不保留的第二区域内绘制非闭合的图像用于标记第二位置。当然,上述标记方法也可以组合使用。总之,本技术实施例对用户标记
第一位置以及标记第二位置的具体操作不做限定。另外,对标记第一位置的第一标记以及标记第二位置的第二标记的具体形式也不做限定。
[0155]
场景二、第一图像的前景包含m个主体,而用户希望保留的第一区域为m个主体中的n个主体所在的区域。其中,n为大于零且小于m的整数。例如,如图6a中(1)所示的第一图像601的前景包括第一主体(例如“狗”)和第二主体(例如“女孩”)。
[0156]
如果用户希望抠图处理后得到的第二图像中包括第一主体(例如为“狗”),但不包括第二主体(例如“女孩”)时,那么用户可以在第一图像601中第一主体所在的区域中任意一个或多个位置上进行标记,标记为第一位置。可选的,如果用户还可以在第一图像601中第二主体所在的区域中一个或多个位置上进行标记,标记为第二位置。
[0157]
示例性的,用户可以在希望保留的第一区域内绘制闭合的图形用于标记第一位置,在希望不保留的第二区域内绘制非闭合的图像用于标记第二位置。当然,用户也可以采用其他的标记方式。例如,如图6a中(1)所示,用户仅在第一图像601中“狗”所在的区域中绘制了一个或多个第一标记603(用于标记第一位置),或者,如图6a中(2)所示,用户不仅在第一图像601中“狗”所在的区域中绘制了一个或多个第一标记603,还在“女孩”所在的区域中绘制了一个或多个第二标记604(用于标记第二位置),那么后续经服务器200的抠图处理后,均得到如图6a中(3)所示的第二图像602,该第二图像中仅包括“狗”,不包括“女孩”。其中,服务器200的具体处理过程将在下文详细说明,这里先不做介绍。需要注意的是,在该示例中,每个第一位置为一系列位置连续的坐标点。每个第二位置也为一系列位置连续的坐标点。
[0158]
如果用户希望抠图处理后得到的第二图像中包括第二主体(例如为“女孩”),但不包括第一主体(例如为“狗”)时,那么用户可以在第一图像601中第二主体所在的区域中任意一个或多个位置上进行标记,标记为第一位置。可选的,如果用户还可以在第一图像601中第一主体所在的区域中一个或多个位置上进行标记,标记为第二位置。类似的,如图6b中(1)所示,用户仅在第一图像601中“女孩”所在的区域中绘制了一个或多个第一标记603(用于标记第一位置),或者,如图6b中(2)所示,用户不仅在第一图像601中“女孩”所在的区域中绘制了一个或多个第一标记603,还在“狗”所在的区域中绘制了一个或多个第二标记604(用于标记第二位置),那么后续经服务器200的抠图处理后,均得到如图6b中(3)所示的第二图像602,该第二图像中仅包括“女孩”,不包括“狗”。
[0159]
如果用户希望抠图处理后得到的第二图像中包括第一主体(例如为“狗”),但不包括第二主体(例如为“女孩”)时,那么用户可以在第一图像601中第一主体和第二主体所在的区域中分别标记第一位置。类似的,如图6c中(1)所示,用户在第一图像601中“女孩”所在的区域中绘制了一个或多个第一标记603,且在“狗”所在的区域中也绘制了一个或多个第二标记604(用于标记第二位置),那么后续经服务器200的抠图处理后,均得到如图6c中(2)所示的第二图像602,该第二图像中包括“女孩”和“狗”。
[0160]
该场景中的其他内容请参考上述场景一中的相关内容的描述,这里不再赘述。
[0161]
由此可见,用户可以根据自己的意图(希望第二图像中保留的内容,不保留的内容)在第一图像601中相应的区域进行标记,经服务器200的抠图处理后,可以得到与用户意图一致的第二图像。相较于现有技术中基于神经网络模型自动化抠图得到的图像仅区分前景和背景,本技术实施例还可以基于用户意图具体区分中前景中不同的主体,根据用户意
图提取出用户希望保留的主体,不提取出用户不希望保留的主体。由此可见,本技术实施例提供的抠图方法能够满足用户更多的抠图需求。
[0162]
场景三、第一图像的前景包含m个主体,且m个主体中至少两个主体存在至少部分区域重叠。例如,如图7中(1)中所示的第一图像701的前景包括第一主体(例如“蜜蜂”)和第二主体(例如“花朵”)。且“蜜蜂”位于“花朵”之中。
[0163]
如果用户希望抠图处理后得到的第二图像中包括第一主体(例如为“蜜蜂”),但不包括第二主体(例如“花朵”)时,那么用户可以在第一图像701中第一主体所在的区域(即第一区域)中任意一个或多个位置上进行标记,标记为第一位置。可选的,如果用户还可以在第一图像601中第二主体所在的区域(即第二区域)中一个或多个位置上进行标记,标记为第二位置。示例性的,用户可以采用多种标记方法标记第一位置和第二位置。例如,如图7中(1)所示,在第一图像701的第一区域标记第一位置时,由于蜜蜂身体所在区域空间较大,用户可以蜜蜂身体所在区域绘制闭合的图形702,用于标记第一位置。而在蜜蜂的腿、翅膀等所在区域空间较小,用户可以将光标移至蜜蜂的腿、翅膀等所在区域后单击鼠标左键,第一图像701上显示第一标记703,用于标记第一位置。类似的,在第一图像701的第一区域标记第一位置时,可以在花朵的花瓣所在区域绘制非闭合图像705,用于标记第二位置。将光标移至花朵的花蕊所在区域后单击鼠标右键,第一图像701上显示第二标记704,用于标记第二位置。而后,终端100将第一图像701、第一位置的信息、第二位置的信息发送给服务器200后,经服务器200抠图处理后,得到如图7中(1)所示的第二图像706,该第二图像706中包括“蜜蜂”,不包括“花朵”。
[0164]
另外,如果用户对得到的第二图像706的抠图效果不满足时,还可以重新在第一图像701中新增/调整标记的第一位置,或者新增/调整标记的第二位置,重新进行抠图处理,直到得到满足用户期望的第二图像。该新增/调整第一位置或第二位置的方法可参考场景一中相关内容的描述,这里不再赘述。
[0165]
如果用户希望抠图处理后得到的第二图像中包括第一主体(例如为“蜜蜂”)和第二主体(例如“花朵”)时,那么用户可以在第一图像701中第一主体和第二主体所在的区域(即第一区域)中任意一个或多个位置上进行标记,标记为第一位置。例如,如图7中(2)所示,用户可以“蜜蜂”和“花朵”所在区域绘制闭合图形702,用于标记第一位置。即,闭合的图像702同时覆盖了“蜜蜂”和“花朵”。可选的,用户还可以在其他背景区域绘制非闭合图像705,用于标记第一位置。而后,终端100将第一图像701、第一位置的信息、第二位置的信息发送给服务器200后,经服务器200抠图处理后,得到如图7中(2)所示的第二图像706,该第二图像706中包括“蜜蜂”和“花朵”。
[0166]
该场景中的其他内容请参考上述场景一和场景二中的相关内容的描述,这里不再赘述。
[0167]
需要说明的是,本技术实施例在标记第一位置或者第二位置时,用户可以在第一区域或第二区域内选择任意的位置进行标记。换言之,本技术实施例仅要求用户点击的位置或者绘制的图形位于相对应的区域(第一区域或第二区域)内即可,并没有严格要求用户沿着第一区域的内边界或者第二区域的内边界进行标记。再换言之,本技术实施例要求用户标记第一位置或第二位置的方法较为简单,用户的操作成本较低。
[0168]
以下,详细介绍下服务器200的抠图处理过程。
[0169]
如图8所示,为本技术实施例提供的一种服务器200抠图处理的流程示意图,该流程包括:
[0170]
s801、服务器200接收终端100发送的第一图像的信息,以及用户标记的位置信息。
[0171]
其中,第一图像的信息包括第一图像,或者第一图像的网络地址。用户标记的位置信息包括用户在第一图像中第一区域上标记的一个或多个第一位置。其中,第一图像中第一区域为用户希望在抠图处理后保留的图像所在的区域。例如,第一区域为第一图像的前景所在的区域。又例如,第一图像的前景包括m个主体时,第一区域也可以是m个主体中的n个主体所在的区域。其中,n为大于零且小于m的整数。可选的,用户标记的位置信息还包括用户在第一图像中第二区域上标记的一个或多个第二位置。其中,第一图像中第二区域为用户希望在抠图处理后不保留的图像所在的区域。例如,第二区域为第一图像的背景所在的区域。又例如,第一图像的前景包括多个主体时,第二区域也可以包括用户希望抠图处理后不保留的主体所在的区域。
[0172]
示例性的,如图5a中(1)所示,用户(可以是个人用户或企业用户或内容提供商(content provider,cp))在终端100上输入第一图像503,并在第一图像503上标记好第一位置和第二位置(其中第二位置可以缺省),然后点击下一步控件504。当终端100检测到用户点击下一步控件504后,向服务器200发送抠图处理请求,该抠图处理请求中包括第一图像的信息,以及用户标记的位置信息。其中,第一图像可以为用户在终端100输入的原图,也可以对用户在终端100输入的原图进行预处理后得到的图像,例如将原图转换为base64格式,便于后续发送给服务器200。其中,用户标记的位置信息为一系列坐标点的信息,如[x1,y1,第一值]、以及[x2,y2,第二值]。其中,x1为第一位置的横坐标,y1为第一位置的纵坐标,第一值用于表征该位置被标记为第一位置。x2为第二位置的横坐标,y2为第二位置的纵坐标,第二值用于表征该坐标点位置被标记为第二位置。
[0173]
s802、服务器200根据第一图像的信息,以及用户标记的位置信息生成相应的距离图。
[0174]
具体的,服务器200根据第一图像的信息和第一位置的信息生成第一距离图。可选的,如果服务器200还接收到第二位置的信息,则还根据第一图像的信息和第二位置的信息生成第二距离图。
[0175]
其中,第一距离图与第一图像的尺寸相同,且第一距离图中每一个像素点的像素值用于表达第一图像中相同位置的像素点距离第一位置的距离。若用户标记了多个第一位置,则第一距离图中每一个像素点的像素值用于表达第一图像中相同位置的像素点距离该像素点最近的第一位置的距离。类似的,第二距离图与第一图像的尺寸相同,且第二距离图中每一个像素点的像素值用于表达第一图像中相同位置的像素点距离第二位置的距离。若用户标记了多个第二位置,则第二距离图中每一个像素点的像素值用于表达第一图像中相同位置的像素点距离该像素点最近的第二位置的距离。
[0176]
请参考图9a,用户在第一图像中标记了第一位置,即p(x1,y1)点,以及第二位置q(x2,y2)点。那么,第一距离图中r(x,y)点的像素值用于表达第一图像中r(x,y)点与p点间的距离l1。第二距离图中r(x,y)点的像素值用于表达第一图像中r(x,y)点与q点间的距离l2。请参考图9b,用户在第一图像中标记了多个第一位置,即p(x1,y1)点,以及p’(x1’,y1’)点。其中,第一图像中r(x,y)点与p点距离l1,与p’点距离l1’,且l1小于l1’。那么,第一距离
图中r(x,y)点的像素值用于表达第一图像中r(x,y)点与p点间的距离l1。若用户在第一图像中标记了多个第二位置,则第二距离图的处理方法相同,这里不再赘述。
[0177]
示例性的,第一距离图中r(x,y)点的像素值可以等于距离l1。或者,第一距离图中r(x,y)点的像素值也可以是对距离l1进行归一化处理后的数值。换言之,第一距离图中所有像素点的像素值均位于大于0且小于1。例如,第一距离图中r(x,y)点的像素值可以采用下述公式(1)进行计算。其中,delimeter为归一化处理时使用的参数。
[0178][0179]
可以理解的是,第一距离图中像素值越小的,表明该像素点距离第一位置越近,则该像素点为用户希望保留的概率越大。反之,第一距离图中像素值越大的,表明该像素点距离第一位置越远,则该像素点为用户希望保留的概率越小。又或者,第一距离图中r(x,y)点的像素值还可以是对距离l1进行同比例缩放处理后的数值。且在同比例缩放处理后,第一距离图中所有像素点的像素值均位于0至255的区间。换言之,第一距离图为灰度图像。例如,在图9c中(1)左侧所示的第一图像上,用户在第一图像中“狗”所在区域标记第一位置,在“女孩”所在区域未标记第一位置,则根据第一图像和用户标记的第一位置生成如图9c中(1)右侧所示的第一距离图。在图9c中(2)左侧所示的第一图像上,用户在第一图像中“女孩”所在区域标记第一位置,在“狗”所在区域未标记第一位置,则根据第一图像和用户标记的第一位置生成如图9c中(2)右侧所示的第一距离图。在图9c中(3)左侧所示的第一图像上,用户在第一图像中“女孩”和“狗”所在区域均标记第一位置,则根据第一图像和用户标记的第一位置生成如图9c中(3)右侧所示的第一距离图。可以看到,第一距离图中,灰度越深的区域为越靠近用户标记的第一位置,为用户希望保留图像的概率越大。
[0180]
同理的,第二距离图中r(x,y)点的像素值可以等于距离l2。或者,第二距离图中r(x,y)点的像素值也可以为进行归一化处理的数值。换言之,第二距离图中所有像素点的像素值均位于大于0且小于1。例如,第二距离图中r(x,y)点的像素值可以采用下述公式(2)进行计算。其中,delimeter为归一化处理时使用的参数。
[0181][0182]
可以理解的是,第二距离图中像素值越小的,表明该像素点距离第二位置越近,则该像素点为用户不希望保留的概率越大。反之,第二距离图中像素值越大的,表明该像素点距离第二位置越远,则该像素点为用户不希望保留的概率越小。又或者,第一距离图中r(x,y)点的像素值还可以是对距离l1进行同比例缩放处理后的数值。且在同比例缩放处理后,第二距离图中所有像素点的像素值均位于0至255的区间。换言之,第二距离图为灰度图像。第二距离图中,灰度越深的区域为越靠近用户标记的第二位置,为用户不希望保留的概率越大。
[0183]
由上可见,第一距离图和第二距离图体现了用户意图,即希望在抠图处理后保留的区域或不保留的区域。
[0184]
在其他一些实施例中,也可以由终端100根据第一图像和用户标记的位置信息生成第一距离图和第一距离图,然后将第一图像的信息,第一距离图以及第二距离图发送给服务器200,由服务器200直接执行步骤s803。
[0185]
s803、服务器200将第一图像、第一距离图输入到预先训练好的神经网络模型中进行运算,输出第二图像。或者,服务器200将第一图像、第一距离图、第二距离图输入到预先训练好的神经网络模型中进行运算,输出第二图像。
[0186]
请参考如图10,当服务器200将第一图像、第一距离图、以及第二距离图(其中第二距离图为可选)输入到预先训练好的神经网络模型(即上述的神经网络模型1或神经网络模型2)后,神经网络模型先利用骨干(backbone)网络对第一图像、第一距离图以及第二距离图(其中第二距离图为可选)进行图像特征的提取,再上采样处理以及卷积处理,用于根据提取的图像特征对第一图像进行语义分割。然后,根据语义分割的结果生成目标掩码,将目标掩码作为第一图像的透明度通道,最后输出第二图像。其中,第二图像包括第一图像中第一区域的图像,不包括第一图像中第二区域的图像。服务器200将得到的第二图像返回给终端100,或者将第二图像的网络地址返回给终端100,以便终端100可以根据该第二图像的网络地址下载第二图像。
[0187]
其中,骨干(backbone)网络可以采用残差神经网络(resnet)(如resnet32、resnet50、resnet101、resnet152等)、稠密卷积神经网络(dense convolutional networkdensenet,densenet)(如densenet121)、深度级可分离卷积(depthwise separable convolution,mobilenet)(如mobilenetv1、mobilenetv2)或者其他深度神经网络。
[0188]
还需要说明的是,在现有技术仅基于神经网络自动化抠图的方案中,神经网络模型的输入为待进行抠图处理的图像,即第一图像。其中,第一图像中每个像素点对应有红(red,r)、绿(green,g)、蓝(blue,b)三个颜色通道,而神经网络模型针对第一图像的三个颜色通道进行特征提取等处理,最后实现对第一图像的自动化抠图。然而,在本技术提供的实施例中,神经网络模型的输入为第一图像和第一距离图。可以理解为,第一图像中每个像素点对应有四个通道,分别为三个颜色通道以及一个距离通道,而该距离通道用于表征该像素点与用户标记的第一位置的距离,体现了该像素点为用户希望保留图像的概率值。可选的,在其他一些示例中,神经网络的输入还包括第二距离图。那么,第一图像中每个像素点对应有五个通道,除了前述的四个通道外,还新增一个距离通道,用于表征该像素点与用户标记的第二位置的距离,体现了该像素点为用户不希望保留图像的概率值,有利于排除用户不希望保留的像素点。因此,本技术实施例提供的技术方案相较于现有技术中自动化抠图的方案,更有利于提升神经网络模型抠图的准确性,以及更能符合用户的抠图意图,满足用户预期的抠图效果。
[0189]
前文已提到,在另外一些实施例中,若用户对服务器200输入的第二图像的抠图效果不满意,则用户还可以进行在第一图像上更改标记的第一位置和/或第二位置,再由服务器200继续进行抠图,直到达到用户的期望。
[0190]
例如,请参考图11,图11中(a)所示的流程为服务器根据用户第一次在第一图像中标记的第一位置和第二位置进行抠图处理的过程:服务器200先基于用户第一次在第一图像中标记的第一位置和第二位置分别生成第一距离图和第二距离图,然后将第一图像、第一距离图和第二距离图输入到预先训练好的神经网络模型中,经过图像特征以及语义分割等处理后,得到目标掩码,进一步得到第二图像。在该第二图像中,用户希望保留的“狗”的图像中缺失尾巴。那么,用户可以重新对第一图像进行抠图。可选的,为了减少神经网络模型第二次抠图处理的耗时,服务器200可以根据第一次抠图处理过程中的分割结果进行后
处理,即根据第一抠图处理过程中的分割结果确定目标边界框。该目标边界框被认为包含了第一区域的全部像素点。在具体实现中,先根据第一次分割结果计算出包含已确定属于第一区域的像素点的最小边界框,并对该最小边界框进行适当扩展得到目标边界框,以便确定的目标边界框能够包含第一次分割结果未确定属于第一区域的像素点但实际时域第一区域的像素点。其中,服务器200的后处理过程可参考图11中(b)所示的流程。在执行图11中(b)所示流程之前或者之后或者同时执行第二次抠图处理。如图11中(c)所示流程为服务器200第二次抠图处理的流程:服务器200基于用户第二次在第一图像中标记的第一位置(例如新增有一个第一位置)和第二位置分别生成第一距离图和第二距离图,然后将第一图像、第一距离图、第二距离图以及确定好的目标边界框输入到预先训练好的神经网络模型中,经过图像特征以及语义分割等处理后,得到目标掩码’,进一步得到第二图像’。第二图像’包括完整的“狗”的图像。
[0191]
还需要说明的是,在训练设备(例如服务器200)训练上述神经网络模型时,需要输入大量图像,以及各个图像对应的前景掩码(可以根据在图像中手动标记的前景和后景,生成各个图像对应的前景掩码)作为训练样本,并且还可以模拟人的输入在前景掩码中前景所在的区域随机选择一个或多个坐标点作为第一位置,并生成第一距离图。将第一距离图和第一图像输入到预训练神经网络模型中进行训练,最终得到训练好的神经网络模型。可选的,还可以模拟人的输入在前景掩码中背景所在区域随机选择一个或多个坐标点作为第二位置,并生成第二距离图。将第二距离图一同输入到预训练神经网络模型中进行训练,最终得到训练好的神经网络模型。
[0192]
本技术实施例还提供一种芯片系统,如图12所示,该芯片系统包括至少一个处理器1101和至少一个接口电路1102。处理器1101和接口电路1102可通过线路互联。例如,接口电路1102可用于从其它装置(例如终端100的存储器)接收信号。又例如,接口电路1102可用于向其它装置(例如处理器1101)发送信号。示例性的,接口电路1102可读取存储器中存储的指令,并将该指令发送给处理器1101。当所述指令被处理器1101执行时,可使得电子设备执行上述实施例中的终端100(比如,手机)执行的各个步骤。当然,该芯片系统还可以包含其他分立器件,本技术实施例对此不作具体限定。
[0193]
本技术实施例还提供一种装置,该装置包含在电子设备中,该装置具有实现上述实施例中任一方法中电子设备行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括至少一个与上述功能相对应的模块或单元。例如,检测模块或单元、显示模块或单元、确定模块或单元、以及计算模块或单元等。
[0194]
本技术实施例还提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如上述实施例中任一方法。
[0195]
本技术实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如上述实施例中任一方法。
[0196]
本技术实施例还提供一种电子设备上的图形用户界面,所述电子设备具有显示屏、摄像头、存储器、以及一个或多个处理器,所述一个或多个处理器用于执行存储在所述存储器中的一个或多个计算机程序,所述图形用户界面包括所述电子设备执行如上述实施例中任一方法时显示的图形用户界面。
[0197]
可以理解的是,上述终端等为了实现上述功能,其包含了执行各个功能相应的硬
件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
[0198]
本技术实施例可以根据上述方法示例对上述终端等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0199]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0200]
在本技术实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0201]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
[0202]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1