图片处理方法、装置、电子设备及存储介质与流程

文档序号:23895934发布日期:2021-02-09 12:17阅读:83来源:国知局
图片处理方法、装置、电子设备及存储介质与流程

[0001]
本申请涉及图像处理技术领域,更具体地,涉及一种图片处理方法、装置、电子设备以及存储介质。


背景技术:

[0002]
随着图片处理技术的发展,电子设备中的应用程序可以直接根据输入的图片来输出证件图片。但是,在相关的对输入图片进行处理得到证件图片的过程中,还存在处理过程效率低以及处理得到的证件图片的不够清晰的问题。


技术实现要素:

[0003]
鉴于上述问题,本申请实施例提出了一种图片处理方法、装置、电子设备以及存储介质,以改善上述问题。
[0004]
第一方面,本申请实施例提供了一种图片处理方法,所述方法包括:获取第一人像位置信息,所述第一人像位置信息为原始图片中目标人像的人像位置信息;基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片;基于所述第一人像位置信息得到第二人像位置信息,所述第二人像位置信息为所述目标人像在所述预裁剪图片中的人像位置信息;基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0005]
第二方面,本申请实施例提供了一种图片处理装置,所述装置包括:第一人像位置获取单元,用于获取第一人像位置信息,所述第一人像位置信息为原始图片中目标人像的人像位置信息;第一裁剪单元,用于基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片;第二人像位置获取单元,用于基于所述第一人像位置信息得到第二人像位置信息,所述第二人像位置信息为所述目标人像在所述预裁剪图片中的人像位置信息;第二裁剪单元,用于基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0006]
第三方面,本申请实施例提供了一种电子设备,包括一个或多个处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行以实现上述的方法。
[0007]
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行上述的方法。
[0008]
本申请实施例提供的一种图片处理方法、装置、电子设备以及存储介质,会先获取原始图片中目标人像的人像位置信息,作为第一人像位置信息,然后基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片;再基于所述第一人像位置信息得到所述目标人像在所述预裁剪图片中的人像位置信息作为第二人像位置信息,进而基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0009]
从而通过对原始图片进行预裁剪的方式使得,可以减小输入到人像分割模型中的图片的大小,进而在保留最终输入目标图片所需的人像内容的情况下,更大程度的减小人像内容以外的图片内容,进而有利于降低人像分割模型的计算量,以便提升处理效率。并且,因为输入到人像分割模型的预裁剪图片相比原始图片尺寸会相对更小,进而不会因为为了满足人像分割模型的尺寸需求更过多的对预裁剪图片进行尺寸压缩,进而有利于提升输出的目标图片的清晰度。
附图说明
[0010]
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0011]
图1示出了本申请一实施例提出的一种图片处理方法的流程图;
[0012]
图2示出了本申请实施例中第一人像位置信息的示意图;
[0013]
图3示出了本申请实施例中预裁剪图片与第一人像位置信息所标识区域大小的对比示意图;
[0014]
图4示出了本申请实施例中生成预裁剪图片的示意图;
[0015]
图5示出了本申请实施例中从原始图片生成目标图片的流程示意图;
[0016]
图6示出了本申请另一实施例提出的一种图片处理方法的流程图;
[0017]
图7示出了本申请中检测是否需要在宽度方向进行扩展的流程图;
[0018]
图8示出了本申请中宽度方向、左侧宽度方向以及右侧宽度方向的示意图;
[0019]
图9示出了本申请中左侧宽度方向进行扩展的示意图;
[0020]
图10示出了本申请中检测是否需要进行头部空间补偿的流程图;
[0021]
图11示出了本申请中进行头部空间补偿的流程图;
[0022]
图12示出了本申请再一实施例提出的一种图片处理方法的流程图;
[0023]
图13示出了本申请一实施例提出的一种图片处理装置的结构框图;
[0024]
图14示出了本申请实时中的用于执行根据本申请实施例的图片处理方法的电子设备的结构框图;
[0025]
图15示出了本申请实时中的用于保存或者携带实现根据本申请实施例的图片处理方法的程序代码的存储单元。
具体实施方式
[0026]
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0027]
随着电子设备的图像采集技术的发展,更多的电子设备用户会使用电子设备的图像采集功能进行图像采集。其中,电子设备还可以对采集的图像进行处理以输出各种类型的图片。例如,可以输出证件照。该证件照可以理解为各种证件上用来证明身份的照片。
[0028]
发明人在对相关的电子设备输出证件照的方法进行研究后发现,相关的输出证件照的方式还存在效率低以及输出的证件照的分辨率较低的问题。具体的,在相关的对输入图片进行处理以得到证件照的过程中,可以是通过人像分割模型来对输入图片进行处理以得到证件照,而通过电子设备所采集的图片或者通过外部设备传输来的图片中人像通常是占小部分区域的,而对于输出证件照而言,人像区域以外的区域为无效的区域,那么输入图片中无效的区域过多就会造成人像分割模型会进行较多的无效的处理,同时也增大了人像分割模型所处理的数据量,进而会降低处理效率。
[0029]
再者,该人像分割模型通常会对输入图片的尺寸有一定要求,而通常电子设备所采集的图片的尺寸较大,那么为了输入到该人像分割模型进行处理,就需要对输入图片进行尺寸方面的压缩,进而就会造成最终输入的证件照的分辨率不高。
[0030]
因此,发明人提出了本申请实施例中的图片处理方法、装置、电子设备及存储介质,会先获取原始图片中目标人像的人像位置信息,作为第一人像位置信息,然后基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片;再基于所述第一人像位置信息得到所述目标人像在所述预裁剪图片中的人像位置信息作为第二人像位置信息,进而基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0031]
从而通过对原始图片进行预裁剪的方式使得,可以减小输入到人像分割模型中的图片的大小,进而在保留最终输入目标图片所需的人像内容的情况下,更大程度的减小人像内容以外的图片内容,进而有利于降低人像分割模型的计算量,以便提升处理效率。并且,因为输入到人像分割模型的预裁剪图片相比原始图片尺寸会相对更小,进而不会因为为了满足人像分割模型的尺寸需求更过多的对预裁剪图片进行尺寸压缩,进而有利于提升输出的目标图片的清晰度。
[0032]
下面将结合附图来对本申请所包括的实施例进行介绍。
[0033]
请参阅图1,图1所示为本申请一实施例提出的一种图片处理方法的流程图,该方法包括:
[0034]
s110:获取第一人像位置信息,所述第一人像位置信息为原始图片中目标人像的人像位置信息。
[0035]
其中,在本实施例中原始图片可以为电子设备所采集的图片,也可以为电子设备从外部获取的图片。
[0036]
作为一种方式,原始图片可以为电子设备所采集的图片。
[0037]
可选的,本实施例提供的图片处理方法应用于电子设备中进行图片采集的应用程序。作为一种方式,若进行图片采集的应用程序在采集到图片后,可以触发提示信息,以提示用户是否将采集的图片用于输出目标图片。若检测到是将采集的图片用于输出目标图片,则将该采集的图片作为该原始图片。作为另外一种方式,进行图片采集的应用程序可以配置有触发进行目标图片输出的控件,在这种方式下,若检测到该触发进行目标图片输出的控件被触控,则进入到原始图片采集模式,进而该进行图片采集的应用程序会将在该原始图片采集模式所采集的图片直接作为原始图片。
[0038]
可选的,本实施例提供的图片处理方法还可以应用于电子设备中存储图片的应用程序。在这种方式中,存储图片的应用程序也可以配置有触发进行目标图片输出的控件。进
而若检测到在该存储图片的应用程序中有图片被选中后,且检测到该触发进行目标图片输出的控件被触控后,可以将被选中图片作为该原始图片。
[0039]
作为另外一种方式,电子设备可以从外部获取到图片后存储在前述的存储图片的应用程序中。其中,该外部可以理解为从网络中或者处于同一个局域网中的其他电子设备。在这种方式下,进而若检测到在该存储图片的应用程序中有图片被选中后,且检测到该触发进行目标图片输出的控件被触控后,可以将被选中图片作为该原始图片。
[0040]
其中,在本申请实施例中,目标人像为后续所输出的目标图片中的人像。在本申请实施例中,可以有多种的确定目标人像的方式。
[0041]
作为一种方式,可以将原始图片中的所能识别到的所有人像均作为目标人像。需要说明的是,在一些情况下,会有多个用户都需要各自输出目标图片,在这种情况下,为了能够提升输出效率,可以通过一次图像采集操作而同时采集到该多个用户的人像,进而使得该多个用户的人像出现在同一个图片中。那么通过对该同时包括有多个用户的人像的图片进行人像识别,就可以同时获取到该多个用户各自的人像,以将该多个用户的人像均作为目标人像。
[0042]
作为另外一种方式,可以将原始图片中的特定的人像作为目标人像。在这种方式下,可选的,可与预先录入特定的人像。那么在电子设备采集到原始图片后,先进行人像识别并将从原始图片中识别到的人像与该预先录入特定的人像进行匹配,进而将识别到的人像中匹配成功的人像作为目标人像。可选的,在从原始图片中识别到人像后,可以对识别到的人像的数量进行检测,若检测到所识别到的人像只有一个,那么则将所识别到的人像作为目标人像。若检测到所识别到的人像有多个,那么可以显示提示信息,以提示用户从识别到的人像中选择目标人像。
[0043]
再者,在这种方式中,也可以结合配置特定的人像以及触发用户进行选择这两种方式来确定目标人像。在这种方式下,电子设备在完成对原始图片的人像识别后,可以先检测是否预先配置有特定的人像,若检测到配置有特定的人像,那么就可以直接将识别到的人像中与该特定的人像匹配的人像作为目标人像。若检测到未配置有特定的人像且识别到的人像有多个的情况下,可以显示提示信息,以提示用户从识别到的人像中选择目标人像。从而通过这种方式,可以使得电子设备更为灵活的确定目标人像。
[0044]
需要说明的是,在本申请实施例中第一人像位置信息可以理解为目标人像在原始图片中的位置信息。示例性的,如图2所示,在识别第一人像位置信息时,可以基于原始图片建立坐标系,其中坐标系的原点可以为原始图片的一个顶点(例如,图2中原始图片10的左上角的顶点)。其中人像框11为标识识别到人像区域的框,可选的,第一人像位置信息包括第一人像左边缘位置信息、第一人像底部位置信息、第一人像右边缘位置信息以及第一人像顶部位置信息。其中,第一人像左边缘位置信息表征人相框11中左侧边111的中间位置在图2所示坐标系中的位置,第一人像底部位置信息表征人相框11中底边112的中间位置在图2所示坐标系中的位置,第一人像右边缘位置信息表征人相框11中右侧边113的中间位置在图2所示坐标系中的位置,第一人像顶部位置信息表征人相框11中顶边114的中间位置在图2所示坐标系中的位置。
[0045]
s120:基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片。
[0046]
可选的,作为一种方式,为了为后续第二次裁剪预留一定的裁剪区域,可以使得预裁剪图片所覆盖的区域大于该第一人像位置信息所标识的区域大小。示例性的,如图3所示,其中人相框11对应于第一人像位置信息所标识的区域,而预裁剪图片的大小可以为框12所标识的区域。再例如,如图4所示,通过对原始图片10进行预裁剪得到的预裁剪图片12所包括的区域大于人相框11所标识的区域。
[0047]
s130:基于所述第一人像位置信息得到第二人像位置信息,所述第二人像位置信息为所述目标人像在所述预裁剪图片中的人像位置信息。
[0048]
需要说明的是,在本申请实施例中第一人像位置信息是基于原始图片所建立的坐标系计算得到的,那么第一人像位置信息所对应的坐标原点为原始图片的一个顶点。不同的是,第二人像位置信息是基于预裁剪图片所建立的坐标系计算得到的,那么第二人像位置信息所对应的坐标原点为预裁剪图片的一个顶点。而后续的裁剪操作是在预裁剪图片中进行了,那么为了重新确定裁剪位置,则可以指定的映射关系来基于第一人像位置信息得到第二人像位置信息。
[0049]
s140:基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0050]
需要说明的是,目标图片可以是具有特定背景的图片。例如,若目标图片为证件照,那么目标图片的背景特定的背景可以为蓝色或者红色。在本实施例中人像分割模型用于对输入的图片进行背景替换,以便得到背景与目标图片的特定背景相同的图片,然后基于所述第二人像位置信息对该背景与目标图片的特定背景相同的图片进行裁剪,以得到目标图片。
[0051]
示例性的,如图5所示,对于预裁剪图片12可以先输入到人像分割模型得到对应的mask图13,该mask图13为区分人像和背景的黑白二值图像。如图5所示,图13中的黑色区域为背景,白色区域为人像区域。在得到mask图13后,可以将mask图13再与预裁剪图片12进行合成,并进一步的基于第二人像位置信息再次裁剪得到目标图片14。
[0052]
本实施例提供的一种图片处理方法会先获取原始图片中目标人像的人像位置信息,作为第一人像位置信息,然后基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片;再基于所述第一人像位置信息得到所述目标人像在所述预裁剪图片中的人像位置信息作为第二人像位置信息,进而基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0053]
从而通过对原始图片进行预裁剪的方式使得,可以减小输入到人像分割模型中的图片的大小,进而在保留最终输入目标图片所需的人像内容的情况下,更大程度的减小人像内容以外的图片内容,进而有利于降低人像分割模型的计算量,以便提升处理效率。并且,因为输入到人像分割模型的预裁剪图片相比原始图片尺寸会相对更小,进而不会因为为了满足人像分割模型的尺寸需求更过多的对预裁剪图片进行尺寸压缩,进而有利于提升输出的目标图片的清晰度。
[0054]
请参阅图6,图6所示为本申请一实施例提出的一种图片处理方法的流程图,该方法包括:
[0055]
s210:获取第一人像位置信息,所述第一人像位置信息为原始图片中目标人像的
人像位置信息。
[0056]
s220:基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片。
[0057]
s230:基于所述第一人像位置信息得到第二人像位置信息,所述第二人像位置信息为所述目标人像在所述预裁剪图片中的人像位置信息。
[0058]
示例性的,其中的第一人像位置信息包括第一人像左边缘位置信息leftxini、第一人像底部位置信息downyini、第一人像右边缘位置信息rightxini以及第一人像顶部位置信息topyini。其中,在本实施例中,所计算得到的第一人像位置信息可以不用包括人脸中的五官的位置信息,可以有利于减少计算量。
[0059]
可选的,在前述预裁剪操作的过程中所计算得到的宽度方向的预裁剪起始点可以表示为firstxini,高度方向的预裁剪起始点可以表示为firstyini。对应的,第二人像位置信息可以包括有第二人像左边缘位置信息leftx、第二人像底部位置信息downy、第二人像右边缘位置信息rightx以及第二人像顶部位置信息topy。其中,基于指定的映射关系可以得到:
[0060]
leftx=leftxini-firstxini;
[0061]
rightx=rightxini-firstxini;
[0062]
topy=topyini-firstyini;
[0063]
downy=downyini-firstyini;
[0064]
需要说明的是,人像分割模型对于输入图片会有一定的尺寸需求,若预裁剪图片的尺寸与人像分割模型对应的尺寸需求不一致,则需要对预裁剪图片进行尺寸变换,以得到第二人像位置信息。示例性的,可以通过下列公式得到参考人像位置信息中包括的:参考人像左边缘位置信息leftxp、参考人像底部位置信息downyp、参考人像右边缘位置信息rightxp以及参考人像顶部位置信息topyp。该公式为:
[0065]
leftxp=leftxini-firstxini;
[0066]
rightxp=rightxini-firstxini;
[0067]
topyp=topyini-firstyini;
[0068]
downyp=downyini-firstyini;
[0069]
然后再通过下列公式来计算得到第二人像位置信息,该公式为:
[0070]
leftx=leftxp
×
(600/w1);
[0071]
rightx=rightxp
×
(600/w1);
[0072]
topy=topyp
×
(800/h1);
[0073]
downy=downyp
×
(800/h1);
[0074]
其中,w1为预裁剪图片的宽度,h1为预裁剪图片的高度。800为人像分割模型需要的高度,而600为人像分割模型需要的宽度。需要说明的是,在本申请实施例中,人像分割模型需要的高度和宽度都是示例性的,可以根据实际所采用的分割模型进行配置。
[0075]
s240:基于所述人像分割模型对所述预裁剪图片进行背景替换,得到待裁剪图片。
[0076]
其中,在进行背景替换之前可以先获取到目标图片的特定背景,然后通过人像分割模型将预裁剪图片的背景替换为该特定背景,以得到待裁剪图片。
[0077]
s250:基于所述第二人像位置信息,获取所述目标人像在所述待裁剪图片中的人
像宽度。
[0078]
示例性的,基于第二人像左边缘位置信息leftx以及第二人像右边缘位置信息rightx,可以得到人像宽度为rightx-leftx。
[0079]
s260:基于所述人像宽度得到目标图片对应的相对高度和相对宽度。
[0080]
需要说明的是,在本实施例中目标图片对应的相对高度与相对宽度的比,与目标图像的绝对高度和绝对宽度的比是相同的。其中,目标图像的绝对高度表征目标图片的实际的高度,绝对宽度表征的是目标图片的实际的宽度。可选的,目标图片对应的相对高度小于目标图像的绝对高度,而目标图片对应的相对宽度小于目标图像的绝对宽度。在本实施例中,可以将人像宽度与指定宽度比例参数的乘积作为目标图片对应的相对高度photoh。可选的,该指定宽度比例参数可以为2.6。
[0081]
如前述内容所示,目标图片对应的相对高度与相对宽度的比,与目标图像的绝对高度和绝对宽度的比是相同的,那么对应的,可以基于下列公式来得到相对宽度,该公式为:
[0082]
photow=2.6
×
facew
×
photoinitialw/photoinitialh
[0083]
其中,photow表征相对宽度,2.6为一种指定宽度比例参数,facew为在预裁剪图片中的人像宽度,photoinitialw为目标图片的绝对宽度,photoinitialh为目标图片的绝对高度。需要说明的是,其中的2.6只是一种示例,除了2.6以外还可以有其他数值,例如,可以为2.4或者2.5或者2.7。
[0084]
s270:在所述待裁剪图片中,基于所述相对高度和相对宽度获取宽度方向裁剪起始点以及所述高度方向裁剪起始点。
[0085]
作为一种方式,所述基于所述相对高度和相对宽度获取宽度方向裁剪起始点以及所述高度方向裁剪起始点,包括:基于所述待裁剪图片中的人像中心点位置信息以及所述相对宽度,得到宽度方向裁剪起始点;基于所述待裁剪图片中人像顶点、人像最高点、所述相对高度以及目标图片的高度,得到高度方向裁剪起始点。
[0086]
其中,可选的,所述基于所述待裁剪图片中的人像中心点位置信息以及所述相对宽度,得到宽度方向裁剪起始点,包括:
[0087]
获取所述待裁剪图片中的人像中心点位置信息与第一宽度数据的差值,作为宽度方向裁剪起始点,所述第一宽度数据为所述相对宽度与第一宽度参数的乘积。示例性的,可以基于下列公式来计算得到宽度方向裁剪起始点,该公式为:
[0088]
firstpixelx=centerx-0.5
×
photow
[0089]
其中,firstpixelx为宽度方向裁剪起始点,centerx为人像中心点位置信息,0.5
×
photow为第一宽度数据。其中,0.5为第一宽度参数,photow为相对宽度。其中,第一宽度参数除了为0.5以外还可以为其他数值,例如,还可以为0.4或者0.6。
[0090]
其中,作为一种方式,如图7所示,所述获取所述待裁剪图片中的人像中心点位置信息与第一宽度数据的差值,作为宽度方向裁剪起始点,包括:
[0091]
s271:获取所述待裁剪图片中的人像中心点位置信息与第一宽度数据的差值,作为参考宽度方向裁剪起始点。
[0092]
s272:基于所述参考宽度方向裁剪起始点确定是否需要在宽度方向对所述待裁剪图片进行扩展。
[0093]
其中,本实施例中的宽度方向包括左侧宽度方向以及右侧宽度方向。示例性的,如图8所示,箭头20所示的方向为宽度方向,其中箭头21所示的为左侧宽度方向,箭头22所示的方向为右侧宽度方向。那么在检测是否需要在宽度方向对所述待裁剪图片进行扩展则包括:检测是否需要在左侧宽度方向对所述待裁剪图片进行扩展,以及检测是否需要在右侧宽度方向对所述待裁剪图片进行扩展。
[0094]
其中,可选的,可以通过检测firstpixelx是否大于0来检测是否需要在左侧宽度方向对所述待裁剪图片进行扩展。可选的,若firstpixelx小于0,则确定需要在左侧宽度方向对所述待裁剪图片进行扩展。并且在确定在左侧宽度方向对所述待裁剪图片进行扩展后,且检测到可以在左侧宽度方向进行扩展后,则会对待裁剪图片在左侧宽度方向进行扩展。
[0095]
其中,可选的,可以通过检测firstpixelx+photow是否小于photoinitialw来确定是否需要在右侧宽度方向对所述待裁剪图片进行扩展,若不小于,则确定需要在右侧宽度方向对所述待裁剪图片进行扩展,并且在检测到可以在右侧宽度方向进行扩展后,则会对待裁剪图片在右侧宽度方向进行扩展。
[0096]
s273:若不需要,将所述参考宽度方向裁剪起始点作为宽度方向裁剪起始点。
[0097]
s274:若需要,在宽度方向对所述待裁剪图片进行扩展,得到第一扩展图片,并将参考宽度方向裁剪起始点与所述扩展宽度之和作为宽度方向裁剪起始点。
[0098]
示例性,以左侧宽度方向为例,如图9所示,若确定firstpixelx小于0,那么则firstpixelx所表示的位置可能位于坐标系(以预裁剪图片左上顶点为原点)的负方向位置,例如,图9中所示的虚线15可以为firstpixelx小于0的情况下所示的位置。其中,图9中虚线15所示的位置与原点之间的距离可以为图中所示的h1,该h1可以理解为人像偏离距离,那么为了使得宽度方向裁剪起始点至少是从原点开始。作为一种方式,可以在预裁剪图片的左侧边缘开始裁剪宽度为与人像偏离距离相同,且高度与预裁剪图片的高度相同的待拉伸图片,然后将预裁剪图片除该待拉伸图片以外的区域作为待拼接图片,然后将该待拉伸图片在宽度方向拉伸两倍后得到的图片,再与该待拼接图片进行拼接得到第一扩展图片。
[0099]
例如,可以在预裁剪图片12的左侧边缘开始裁剪宽度为h2(h2=h1)区域(即预裁剪图片中,原点与虚线16之间所示的区域),然后将裁剪得到的图片在宽度方向上拉伸2倍,得到图9中所示的宽度为h4(h4=2
×
h2)的图片,再将该宽度为h4的图片拼接到图9中所示的宽度为h3所示的图片,得到第一扩展图片。
[0100]
需要说明的是,若需要在右侧宽度方向进行扩展,也可以基于图9所示的方式进行扩展。并且,在右侧宽度方向也需要扩展的情况下,可以将左侧宽度方向和右侧宽度方向均进行扩展后的图片作为第一扩展图片。
[0101]
并且,在左侧方向进行扩展后,宽度方向裁剪起始点可以为firstpixelx+h1。
[0102]
所述在所述待裁剪图片进行裁剪得到目标图片,包括:在所述第一扩展图片进行裁剪得到目标图片。
[0103]
其中,可选的,所述基于所述待裁剪图片中人像顶点、人像最高点、所述相对高度以及目标图片的高度,得到高度方向裁剪起始点,包括:
[0104]
获取人像顶点与第一高度数据的差值,作为高度方向第一参考裁剪起始点,所述
第一高度数据为所述相对高度与第一高度参数的乘积。
[0105]
其中,需要说明的是,本实施例中人像顶点的坐标可以表征的是人像额头到预裁剪图片顶点之间的距离。可选的,可以通过下列公式来计算得到高度方向第一参考裁剪起始点,该公式为:
[0106]
firstpixely1=topy-0.15
×
photoh
[0107]
其中,firstpixely1为高度方向第一参考裁剪起始点,topy表征的是人像顶点,0.15为第一高度参数,该photoh为相对高度。其中,第一高度参数除了可以为0.15外还可以为其他数值,例如,还可以为0.14或者0.16。
[0108]
获取人像最高点与第二高度数据的差值,作为高度方向第二参考裁剪起始点,所述第二高度数据为目标图片的高度与第二高度参数的乘积。可选的,可以通过下列公式来计算得到高度方向第二参考裁剪起始点,该公式为:
[0109]
firstpixely2=msaktopy-0.03
×
photoinitialh
[0110]
其中,firstpixely2为高度方向第二参考裁剪起始点,msaktopy表征的是人像最高点,0.03为第二高度参数,该photoinitialh为绝对高度。其中,第二高度参数除了可以为0.03外还可以为其他数值,例如,还可以为0.02或者0.04。
[0111]
获取所述高度方向第一参考裁剪起始点和所述高度方向第二参考裁剪起始点的均值,作为高度方向裁剪起始点。示例性的,高度方向裁剪起始点firstpixely=(firstpixely1+firstpixely2)/2。
[0112]
其中,作为一种方式,如图10所示,所述获取所述高度方向第一参考裁剪起始点和所述高度方向第二参考裁剪起始点的均值,作为高度方向裁剪起始点,包括:
[0113]
s275:获取所述高度方向第一参考裁剪起始点和所述高度方向第二参考裁剪起始点的均值,作为高度方向第三参考裁剪起始点。
[0114]
s276:基于所述高度方向第三参考裁剪起始点,确定是否需要进行头部空间补偿。作为一种方式,可以比对firstpixely+photoh与photoinitialh之间的大小,以及firstpixely是否大于0来确定是否需要进行头部空间补偿。
[0115]
若firstpixely+photoh小于photoinitialh且firstpixely小于0则需要进行头部空间补偿;
[0116]
若firstpixely+photoh小于photoinitialh且firstpixely大于0,则表示不需要进行头部空间补偿;
[0117]
若firstpixely+photoh大于photoinitialh,则表示人像位置较为偏下,则退出本次的图片处理方法,并可以提示用户重新获取原始图片。
[0118]
s277:若不需要,将所述高度方向第三参考裁剪起始点作为高度方向裁剪起始点。
[0119]
s278:若需要,对所述待裁剪图片的顶部区域进行内容扩展,得到第二扩展图片;所述在所述待裁剪图片进行裁剪得到目标图片,包括:在所述第二扩展图片进行裁剪得到目标图片。
[0120]
如图11所示,对于预裁剪图片输入人像分割模型进而通过人像分割算法处理后可以得到对应的mask图32,通过mask图32可知人像的头部区域不够裁剪,进而进行头部补偿。所得到的第二扩展图片对应的mask图可以为其中的图33。在图33中可知,在头部区域扩展了高度为h5的图片。
[0121]
s280:在所述待裁剪图片进行裁剪得到目标图片。
[0122]
作为一种方式,所述在所述待裁剪图片进行裁剪得到目标图片,包括:
[0123]
在所述待裁剪图片进行裁剪,得到参考裁剪图片;若所述参考裁剪图片与目标图片的尺寸不同,将所述参考裁剪图片的进行拉伸得到所述目标人像对应的目标图片。可选的,在本申请实施例中,则可以以firstpixely为高度方向裁剪起始点,firstpixelx为宽度方向裁剪起始点在预裁剪图片中进行裁剪得到目标图片。
[0124]
本实施例提供的一种图片处理方法,从而通过对原始图片进行预裁剪的方式使得,可以减小输入到人像分割模型中的图片的大小,进而在保留最终输入目标图片所需的人像内容的情况下,更大程度的减小人像内容以外的图片内容,进而有利于降低人像分割模型的计算量,以便提升处理效率。并且,因为输入到人像分割模型的预裁剪图片相比原始图片尺寸会相对更小,进而不会因为为了满足人像分割模型的尺寸需求更过多的对预裁剪图片进行尺寸压缩,进而有利于提升输出的目标图片的清晰度。并且,在本实施例中,针对待裁剪图片,在确定宽度方向裁剪起始点的过程中还会进一步的检测是否需要在宽度方向进行扩展,以便保证最终所得到的目标图片中人像更加的居中。再者,针对待裁剪图片还会检测是否需要进行头部空间补偿,以便进一步的保证目标图片中人像在高度方向更加的居中,以便提升目标图片的输出质量。
[0125]
请参阅图12,图12所示为本申请一实施例提出的一种图片处理方法的流程图,该方法包括:
[0126]
s310:获取第一人像位置信息,所述第一人像位置信息为原始图片中目标人像的人像位置信息。
[0127]
s320:基于所述第一人像位置信息得到宽度方向的预裁剪起始点以及高度方向的预裁剪起始点。
[0128]
作为一种方式,所述第一人像位置信息包括第一人像左边缘位置信息、第一人像底部位置信息、第一人像右边缘位置信息以及第一人像顶部位置信息;所述基于所述第一人像位置信息得到宽度方向的预裁剪起始点以及高度方向的预裁剪起始点,包括:
[0129]
基于所述第一人像左边缘位置信息以及所述第一人像右边缘位置信息,得到原始图片中的人像中心点位置信息以及人像宽度。可选的,可以基于下列公式来计算原始图片中的人像中心点位置信息以及人像宽度,该公式为:
[0130]
facewini=rightxini-leftxini;
[0131]
centerxini=(rightxini+leftxini)/2;
[0132]
其中,facewini为原始图片中的人像宽度,centerxini为人像中心点位置信息,rightxini为第一人像右边缘位置信息,leftxini为第一人像左边缘位置信息。
[0133]
基于所述人像顶部位置信息、人像中心点位置信息以及人像宽度,得到宽度方向的预裁剪起始点以及高度方向的预裁剪起始点。
[0134]
可选的,所述基于所述人像顶部位置信息、人像中心点位置信息以及人像宽度,得到宽度方向的预裁剪起始点以及高度方向的预裁剪起始点,包括:
[0135]
若目标图片的高宽比小于所述人像分割模型的图像输入尺寸的高宽比,所述将所述人像宽度与指定宽度倍数相乘得到所述指定预裁剪宽度。
[0136]
其中,指定宽度倍数可以为2.5。
[0137]
基于所述指定预裁剪宽度以及所述人像分割模型的图像输入尺寸,得到所述指定预裁剪高度。可选的,可以通过下列公式来计算得到指定预裁剪高度,该公式为:
[0138]
h1=w1
×
(800/600);
[0139]
其中,w1可以为指定预裁剪宽度,800为人像分割模型需要的高度,而600为人像分割模型需要的宽度。需要说明的是,在本申请实施例中,人像分割模型需要的高度和宽度都是示例性的,可以根据实际所采用的分割模型进行配置。
[0140]
获取所述人像中心点位置信息与第二宽度数据的差值,作为宽度方向的预裁剪起始点,所述第二宽度数据为所述指定预裁剪宽度与第二宽度参数的乘积。可选的,该第二宽度参数可以为0.5。
[0141]
获取所述人像顶部位置信息与第三宽度数据的差值,作为高度方向的预裁剪起始点,所述第三宽度数据为所述指定预裁剪高度与第三宽度参数的乘积。可选的,该第三宽度参数可以为0.2。
[0142]
可选的,所述基于所述人像顶部位置信息、人像中心点位置信息以及人像宽度,得到宽度方向的预裁剪起始点以及高度方向的预裁剪起始点,包括:
[0143]
若目标图片的高宽比大于所述人像分割模型的图像输入尺寸的高宽比,所述将人像高度与指定高度倍数相乘得到所述指定预裁剪高度。可选的额,该指定高度倍数可以为2.5。
[0144]
基于所述指定预裁剪高度以及所述人像分割模型的图像输入尺寸,得到所述指定预裁剪宽度。可选的,可以通过下列公式来计算得到指定预裁剪宽度,该公式为:
[0145]
w1=h1
×
(600/800);
[0146]
其中,h1可以为指定预裁剪高度,800为人像分割模型需要的高度,而600为人像分割模型需要的宽度。需要说明的是,在本申请实施例中,人像分割模型需要的高度和宽度都是示例性的,可以根据实际所采用的分割模型进行配置。
[0147]
获取所述人像中心点位置信息与第四宽度数据的差值,作为宽度方向的预裁剪起始点,所述第四宽度数据为所述指定预裁剪宽度与第四宽度参数的乘积;可选的,该第四宽度参数可以为0.5。
[0148]
获取所述人像顶部位置信息与第三高度数据的差值,作为高度方向的预裁剪起始点,所述第三高度数据为所述指定预裁剪高度与第三高度参数的乘积。可选的,该第三高度参数可以为0.2。
[0149]
s330:基于指定预裁剪宽度、指定预裁剪高度、所述宽度方向的预裁剪起始点以及高度方向的预裁剪起始点对所述原始图片进行裁剪,得到预裁剪图片。
[0150]
s340:基于所述第一人像位置信息得到第二人像位置信息,所述第二人像位置信息为所述目标人像在所述预裁剪图片中的人像位置信息。
[0151]
s350:基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0152]
本实施例提供的一种图片处理方法,从而通过对原始图片进行预裁剪的方式使得,可以减小输入到人像分割模型中的图片的大小,进而在保留最终输入目标图片所需的人像内容的情况下,更大程度的减小人像内容以外的图片内容,进而有利于降低人像分割模型的计算量,以便提升处理效率。并且,因为输入到人像分割模型的预裁剪图片相比原始
图片尺寸会相对更小,进而不会因为为了满足人像分割模型的尺寸需求更过多的对预裁剪图片进行尺寸压缩,进而有利于提升输出的目标图片的清晰度。并且,在本实施例中,在预裁剪的过程中还可以根据目标图片要求的高宽比与人像分割模型需求的高宽比之间的比值来确定预裁剪图片的大小,进而有利于提升输出的目标图片的适配性和质量。
[0153]
请参阅图13,本申请实施例提供了一种图片处理装置400,所述装置400包括:
[0154]
第一人像位置获取单元410,用于获取第一人像位置信息,所述第一人像位置信息为原始图片中目标人像的人像位置信息;
[0155]
第一裁剪单元420,用于基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片;
[0156]
第二人像位置获取单元430,用于基于所述第一人像位置信息得到第二人像位置信息,所述第二人像位置信息为所述目标人像在所述预裁剪图片中的人像位置信息;
[0157]
第二裁剪单元440,用于基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0158]
作为一种方式,第二裁剪单元440,具体用于基于所述人像分割模型对所述预裁剪图片进行背景替换,得到待裁剪图片;基于所述第二人像位置信息,获取所述目标人像在所述待裁剪图片中的人像宽度;基于所述人像宽度得到目标图片对应的相对高度和相对宽度;在所述待裁剪图片中,基于所述相对高度和相对宽度获取宽度方向裁剪起始点以及所述高度方向裁剪起始点;在所述待裁剪图片进行裁剪得到目标图片。
[0159]
可选的,第二裁剪单元440,具体用于基于所述待裁剪图片中的人像中心点位置信息以及所述相对宽度,得到宽度方向裁剪起始点;基于所述待裁剪图片中人像顶点、人像最高点、所述相对高度以及目标图片的高度,得到高度方向裁剪起始点。在这种方式下,第二裁剪单元440,具体用于获取所述待裁剪图片中的人像中心点位置信息与第一宽度数据的差值,作为宽度方向裁剪起始点,所述第一宽度数据为所述相对宽度与第一宽度参数的乘积。
[0160]
可选的,第二裁剪单元440,具体用于获取所述待裁剪图片中的人像中心点位置信息与第一宽度数据的差值,作为参考宽度方向裁剪起始点;基于所述参考宽度方向裁剪起始点确定是否需要在宽度方向对所述待裁剪图片进行扩展;若不需要,将所述参考宽度方向裁剪起始点作为宽度方向裁剪起始点;若需要,在宽度方向对所述待裁剪图片进行扩展,得到第一扩展图片,并将参考宽度方向裁剪起始点与所述扩展宽度之和作为宽度方向裁剪起始点;所述在所述待裁剪图片进行裁剪得到目标图片,包括:在所述第一扩展图片进行裁剪得到目标图片。
[0161]
在这种方式下,第二裁剪单元440,具体用于获取人像顶点与第一高度数据的差值,作为高度方向第一参考裁剪起始点,所述第一高度数据为所述相对高度与第一高度参数的乘积;获取人像最高点与第二高度数据的差值,作为高度方向第二参考裁剪起始点,所述第二高度数据为目标图片的高度与第二高度参数的乘积;获取所述高度方向第一参考裁剪起始点和所述高度方向第二参考裁剪起始点的均值,作为高度方向裁剪起始点。
[0162]
可选的,第二裁剪单元440,具体用于获取所述高度方向第一参考裁剪起始点和所述高度方向第二参考裁剪起始点的均值,作为高度方向第三参考裁剪起始点;基于所述高度方向第三参考裁剪起始点,确定是否需要进行头部空间补偿;若不需要,将所述高度方向
第三参考裁剪起始点作为高度方向裁剪起始点;若需要,对所述待裁剪图片的顶部区域进行内容扩展,得到第二扩展图片;所述在所述待裁剪图片进行裁剪得到目标图片,包括:在所述第二扩展图片进行裁剪得到目标图片。
[0163]
作为一种方式,第二裁剪单元440,具体用于在所述待裁剪图片进行裁剪,得到参考裁剪图片;若所述参考裁剪图片与目标图片的尺寸不同,将所述参考裁剪图片的进行拉伸得到所述目标人像对应的目标图片。
[0164]
作为一种方式,第一裁剪单元420,具体用于基于所述第一人像位置信息得到宽度方向的预裁剪起始点以及高度方向的预裁剪起始点;基于指定预裁剪宽度、指定预裁剪高度、所述宽度方向的预裁剪起始点以及高度方向的预裁剪起始点对所述原始图片进行裁剪,得到预裁剪图片。
[0165]
可选的,所述第一人像位置信息包括第一人像左边缘位置信息、第一人像底部位置信息、第一人像右边缘位置信息以及第一人像顶部位置信息;第一裁剪单元420,具体用于基于所述第一人像左边缘位置信息以及所述第一人像右边缘位置信息,得到原始图片中的人像中心点位置信息以及人像宽度;基于所述人像顶部位置信息、人像中心点位置信息以及人像宽度,得到宽度方向的预裁剪起始点以及高度方向的预裁剪起始点。
[0166]
作为一种方式,第一裁剪单元420,具体用于若目标图片的高宽比小于所述人像分割模型的图像输入尺寸的高宽比,所述将所述人像宽度与指定宽度倍数相乘得到所述指定预裁剪宽度;基于所述指定预裁剪宽度以及所述人像分割模型的图像输入尺寸,得到所述指定预裁剪高度;获取所述人像中心点位置信息与第二宽度数据的差值,作为宽度方向的预裁剪起始点,所述第二宽度数据为所述指定预裁剪宽度与第二宽度参数的乘积;获取所述人像顶部位置信息与第三宽度数据的差值,作为高度方向的预裁剪起始点,所述第三宽度数据为所述指定预裁剪高度与第三宽度参数的乘积。
[0167]
作为一种方式,第一裁剪单元420,具体用于若目标图片的高宽比大于所述人像分割模型的图像输入尺寸的高宽比,所述将人像高度与指定高度倍数相乘得到所述指定预裁剪高度;基于所述指定预裁剪高度以及所述人像分割模型的图像输入尺寸,得到所述指定预裁剪宽度;获取所述人像中心点位置信息与第四宽度数据的差值,作为宽度方向的预裁剪起始点,所述第四宽度数据为所述指定预裁剪宽度与第四宽度参数的乘积;获取所述人像顶部位置信息与第三高度数据的差值,作为高度方向的预裁剪起始点,所述第三高度数据为所述指定预裁剪高度与第三高度参数的乘积。
[0168]
本申请实施例提供的一种图片处理方法装置,会先获取原始图片中目标人像的人像位置信息,作为第一人像位置信息,然后基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片;再基于所述第一人像位置信息得到所述目标人像在所述预裁剪图片中的人像位置信息作为第二人像位置信息,进而基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0169]
从而通过对原始图片进行预裁剪的方式使得,可以减小输入到人像分割模型中的图片的大小,进而在保留最终输入目标图片所需的人像内容的情况下,更大程度的减小人像内容以外的图片内容,进而有利于降低人像分割模型的计算量,以便提升处理效率。并且,因为输入到人像分割模型的预裁剪图片相比原始图片尺寸会相对更小,进而不会因为
为了满足人像分割模型的尺寸需求更过多的对预裁剪图片进行尺寸压缩,进而有利于提升输出的目标图片的清晰度。
[0170]
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
[0171]
下面将结合图14对本申请提供的一种电子设备进行说明。
[0172]
请参阅图14,基于上述的图片处理方法、装置,本申请实施例还提供的另一种可以执行前述图片处理方法的电子设备100。电子设备100包括相互耦合的一个或多个(图中仅示出一个)处理器102、存储器104以及网络模块106。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
[0173]
其中,处理器102可以包括一个或者多个处理核。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器102可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
[0174]
存储器104可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
[0175]
所述网络模块106用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。所述网络模块106可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(sim)卡、存储器等等。所述网络模块106可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。例如,网络模块106可以与基站进行信息交互。
[0176]
请参考图15,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质800中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
[0177]
计算机可读存储介质800可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质800包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质800具有执行上述方法中的任何方法步骤的程序代码810的存储空间。这些程序代码可
以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码810可以例如以适当形式进行压缩。
[0178]
本申请实施例提供的一种图片处理方法、装置、电子设备以及存储介质,会先获取原始图片中目标人像的人像位置信息,作为第一人像位置信息,然后基于所述第一人像位置信息对原始图片进行预裁剪,得到所述目标人像对应的预裁剪图片;再基于所述第一人像位置信息得到所述目标人像在所述预裁剪图片中的人像位置信息作为第二人像位置信息,进而基于所述第二人像位置信息以及人像分割模型,对所述预裁剪图片进行背景替换以及裁剪得到所述目标人像对应的目标图片。
[0179]
从而通过对原始图片进行预裁剪的方式使得,可以减小输入到人像分割模型中的图片的大小,进而在保留最终输入目标图片所需的人像内容的情况下,更大程度的减小人像内容以外的图片内容,进而有利于降低人像分割模型的计算量,以便提升处理效率。并且,因为输入到人像分割模型的预裁剪图片相比原始图片尺寸会相对更小,进而不会因为为了满足人像分割模型的尺寸需求更过多的对预裁剪图片进行尺寸压缩,进而有利于提升输出的目标图片的清晰度。
[0180]
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1