图像处理方法及装置、电子设备和计算机可读存储介质与流程

文档序号:32350534发布日期:2022-11-26 12:52阅读:53来源:国知局
图像处理方法及装置、电子设备和计算机可读存储介质与流程

1.本公开的实施例涉及一种图像处理方法、图像处理装置、电子设备和计算机可读存储介质。


背景技术:

2.随着计算机技术的快速发展,手机、电脑等电子设备越来越多地融入人们的生活和工作中,并且电子设备的功能也越来越丰富。在一些场景中,电子设备需要对用户的脸部等对象进行特征信息检测。例如,在人脸打卡场景中,可以采集用户的脸部图像,根据脸部图像确定脸部的特征信息,进而根据特征信息识别用户,完成打卡。


技术实现要素:

3.本公开至少一个实施例提供一种图像处理方法,包括:获取被检测图像,其中,所述被检测图像包括目标对象;将所述被检测图像输入图像检测模型,得到所述图像检测模型的输出结果,其中,所述图像检测模型的输出结果包括所述目标对象的特征向量,所述特征向量用于识别所述目标对象;其中,所述图像检测模型包括m个第一子模型和第二子模型;将所述被检测图像输入图像检测模型,得到所述图像检测模型的输出结果,包括:将所述被检测图像分别输入所述m个第一子模型;将所述m个第一子模型中的n个第一子模型分别对应的n个预定网络层的结果输入所述第二子模型,得到所述第二子模型的输出结果,其中,所述第二子模型的输出结果包括所述目标对象的特征向量;其中,m为正整数,n为小于或等于m的正整数。
4.例如,在本公开一实施例提供的图像处理方法中,所述目标对象为脸部。
5.例如,本公开一实施例提供的图像处理方法还包括:将所述目标对象的特征向量与数据库中的多个特征向量进行比对,以从所述多个特征向量中确定与所述目标对象的特征向量满足距离条件的目标特征向量,将所述目标特征向量对应的标签信息作为所述目标对象的识别结果。
6.例如,在本公开一实施例提供的图像处理方法中,所述m个第一子模型中的每个包括依次连接的第一输入层、多个第一中间层和第一输出层,所述n个第一子模型中的每个第一子模型对应的预定网络层为所述每个第一子模型中的多个第一中间层中的一层或者所述每个第一子模型中的第一输出层;所述第二子模型包括依次连接的第二输入层、多个第二中间层和第二输出层。
7.例如,在本公开一实施例提供的图像处理方法中,所述n个预定网络层分别为所述n个第一子模型中具有相同维度的结果的层。
8.例如,在本公开一实施例提供的图像处理方法中,所述多个第一中间层包括依次连接的多个深度卷积层;或者所述多个第一中间层包括依次连接的多个深度卷积层和多个反卷积层;所述多个第二中间层包括依次连接的多个深度卷积层;或者所述多个第二中间层包括依次连接的多个深度卷积层和多个反卷积层。
9.例如,在本公开一实施例提供的图像处理方法中,将所述m个第一子模型中的n个第一子模型分别对应的n个预定网络层的结果输入所述第二子模型,包括:对所述n个预定网络层的结果进行运算,得到运算结果;将所述运算结果输入所述第二子模型。
10.例如,在本公开一实施例提供的图像处理方法中,所述运算包括乘法运算或加法运算;其中,所述n个预定网络层的结果的维度相同。
11.例如,在本公开一实施例提供的图像处理方法中,所述图像检测模型的输出结果还包括所述m个第一子模型分别对应的m个子模型输出结果,其中,所述m个子模型输出结果分别对应m种类型的特征。
12.例如,在本公开一实施例提供的图像处理方法中,所述m个子模型输出结果包括热图特征、检测框特征和关键点特征中的至少一个。
13.例如,本公开一实施例提供的图像处理方法还包括:获取多个样本图像和所述多个样本图像分别对应的多个标签数据,其中,每个所述样本图像包括样本对象;基于所述多个样本图像和所述多个标签数据,对初始模型的参数进行更新迭代,直至满足训练完成条件,将训练完成的初始模型作为所述图像检测模型。
14.例如,在本公开一实施例提供的图像处理方法中,基于所述多个样本图像和所述多个标签数据,对初始模型的参数进行更新迭代,包括:针对每个所述样本图像执行以下操作:将所述样本图像输入所述初始模型,得到所述初始模型的输出结果,其中,所述初始模型的输出结果包括所述样本图像中的样本对象的初始特征向量;根据所述初始模型的输出结果和所述样本图像对应的标签数据,计算得到损失信息;基于所述损失信息,更新所述初始模型的参数;其中,所述初始模型包括m个第一初始子模型和第二初始子模型;将所述样本图像输入所述初始模型,得到所述初始模型的输出结果,包括:将所述样本图像分别输入所述m个第一初始子模型;将所述m个第一初始子模型中的n个第一初始子模型分别对应的n个预定网络层的结果输入所述第二初始子模型,得到所述第二初始子模型的输出结果,所述第二初始子模型的输出结果包括所述样本图像中的样本对象的初始特征向量。
15.例如,在本公开一实施例提供的图像处理方法中,所述初始模型的输出结果还包括所述m个第一初始子模型分别对应的m个初始子模型输出结果;根据所述初始模型的输出结果和所述样本图像对应的标签数据,计算得到损失信息,包括:利用损失函数,对所述m个初始子模型输出结果、所述第二初始子模型的输出结果和所述标签数据进行运算,得到所述损失信息。
16.本公开至少一个实施例提供一种图像处理装置,包括获取模块和检测模块,获取模块配置为获取被检测图像,其中,所述被检测图像包括目标对象;检测模块配置为将所述被检测图像输入图像检测模型,得到所述图像检测模型的输出结果,其中,所述图像检测模型的输出结果包括所述目标对象的特征向量,所述特征向量用于识别所述目标对象;其中,所述图像检测模型包括m个第一子模型和第二子模型;所述检测模块进一步配置为:将所述被检测图像分别输入所述m个第一子模型;将所述m个第一子模型中的n个第一子模型分别对应的n个预定网络层的结果输入所述第二子模型,得到所述第二子模型的输出结果,其中,所述第二子模型的输出结果包括所述目标对象的特征向量;其中,m为正整数,n为小于或等于m的正整数。
17.本公开至少一个实施例提供一种电子设备,包括拍摄装置和图像处理装置,拍摄
装置配置为拍摄被检测图像,其中,所述被检测图像包括目标对象;图像处理装置,配置为接收所述被检测图像,并基于所述被检测图像执行本公开任一实施例提供的图像处理方法。
18.本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现本公开任一实施例提供的图像处理方法的指令。
19.本公开至少一个实施例提供一种计算机可读存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时实现本公开任一实施例提供的图像处理方法。
附图说明
20.为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
21.图1a示出了本公开至少一实施例提供的一种图像处理方法的流程图;
22.图1b示出了图1a所示的步骤s120的一个示例的流程图;
23.图2示出了本公开至少一实施例提供的一种图像检测模型的示意图;
24.图3示出了本公开至少一实施例提供的一种热图的示意图;
25.图4a示出了本公开至少一实施例提供的一种第一子模型的示意图;
26.图4b示出了本公开至少一实施例提供的另一种第一子模型的示意图;
27.图5示出了本公开至少一实施例提供的一种初始模型的示意图;
28.图6为本公开至少一实施例提供的一种图像处理装置的示意性框图;
29.图7a为本公开至少一实施例提供的一种电子设备的示意性框图;
30.图7b为本公开至少一实施例提供的另一种电子设备的示意性框图;
31.图8为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图;以及
32.图9为本公开至少一实施例提供的一种硬件环境的示意图。
具体实施方式
33.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
34.除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或
者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
35.发明人发现在根据用户的脸部图像检测脸部的特征向量时,通常采用两阶段检测,两阶段检测包括两个阶段,即人脸检测和人脸识别,例如,首先将脸部图像输入第一个模型进行人脸检测,得到人脸的若干个检测框;然后,从脸部图像中截取这若干个检测框中的图片;再将截取的若干张图片送入到第二个模型中进行人脸识别,以提取得到特征向量。在这一方式中,需要经过两个单独的模型,并且在两个模型中间需要进行图片截取操作。因此,这种两阶段的检测方式耗时耗算力,检测速度慢,在人脸打卡等场景中不能满足实时性的要求。并且,随着边缘端部署的应用广泛,希望边缘端能够承载尽可能多的模型,因此需要减少与压缩模型。
36.本公开至少一个实施例提供一种图像处理方法、图像处理装置、电子设备和计算机可读存储介质。该图像处理方法包括:获取被检测图像,被检测图像包括目标对象;将被检测图像输入图像检测模型,得到图像检测模型的输出结果,图像检测模型的输出结果包括目标对象的特征向量,特征向量用于识别目标对象;图像检测模型包括m个第一子模型和第二子模型;将被检测图像输入图像检测模型,得到图像检测模型的输出结果,包括:将被检测图像分别输入m个第一子模型;将m个第一子模型中的n个第一子模型分别对应的n个预定网络层的结果输入第二子模型,得到第二子模型的输出结果,第二子模型的输出结果包括目标对象的特征向量;其中,m为正整数,n为小于或等于m的正整数。
37.根据该图像处理方法,将被检测图像输入图像检测模型,根据图像检测模型可以直接得到被检测图像中的目标对象的特征向量,而无需再从原图(即被检测图像)中截取图片,实现了一阶段检测。因此,相比于两阶段检测,本公开实施例的图像处理方法,可以节省时间和算力,检测速度加快,更能够满足实时性的要求。
38.需要说明的是,在本公开的实施例中,“一阶段检测”可以表示将检测操作和识别操作(例如,当应用于人脸识别的场景时,检测操作为人脸检测,例如获得人脸检测框等;识别操作为人脸识别,例如获得用于人脸识别的特征向量)通过同一个模型实现的。例如,在人脸识别的场景中,可以通过图像检测模型处理人脸图像,从而直接提取到人脸的特征向量,特征向量用于实现对人脸的识别。
39.图1a示出了本公开至少一实施例提供的一种图像处理方法的流程图,图1b示出了图1a所示的步骤s120的一个示例的流程图。
40.如图1a所示,该图像处理方法可以包括步骤s110~s120。
41.步骤s110:获取被检测图像,被检测图像包括目标对象。
42.步骤s120:将被检测图像输入图像检测模型,得到图像检测模型的输出结果,图像检测模型的输出结果包括目标对象的特征向量,特征向量用于识别目标对象。
43.例如,图像检测模型包括m个第一子模型和第二子模型。如图1b所示,步骤s120可以包括步骤s121~s122。
44.步骤s121:将被检测图像分别输入m个第一子模型。
45.步骤s122:将m个第一子模型中的n个第一子模型分别对应的n个预定网络层的结果输入第二子模型,得到第二子模型的输出结果,其中,第二子模型的输出结果包括目标对
象的特征向量。
46.例如,m为正整数,n为小于或等于m的正整数。
47.例如,在步骤s110中,可以通过图像采集的方式获取被检测图像,被检测图像中的目标对象可以是脸部。脸部可以是人脸,在本公开的实施例中,以目标对象是人脸为例进行说明。需要说明的是,在实际应用中,可以根据实际需要来设置目标对象的类型,除了人脸以外,目标对象例如还可以是动物的脸部或者其他需要检测特征向量的对象。
48.例如,在一些场景中(例如打卡场景),被检测图像中的目标对象的数量为一,即一张被检测图像包含一个目标对象。若被检测图像中包含两个或以上的对象,则可以从该两个或以上的对象中选取一个对象作为目标对象,忽略其他对象,例如可以选取与被检测图像的中心点距离最近的对象作为目标对象,或者可以选取面积占比最大的对象作为目标对象。
49.例如,图像检测模型可以是神经网络模型,可以通过样本预先对图像检测模型进行训练,得到训练好的图像检测模型。在步骤s120中,将被检测图像输入该训练好的图像检测模型中,以得到目标对象的特征向量。
50.例如,特征向量可以包含目标对象的轮廓信息、距离信息、曲率信息等信息中的至少一种。在目标对象为人脸的情况下,特征向量例如是对人脸及其多个脸部器官(眼睛、鼻子、嘴巴等)各自的特征和/或人脸及其多个脸部器官之间的结构关系的描述。例如,轮廓信息可以包括脸部整体轮廓信息和/或脸部器官的轮廓信息等,轮廓信息可以通过轮廓上关键点的坐标来表征。距离信息可以包括多个脸部器官之间的距离和/或脸部器官与人脸整体轮廓之间的距离。曲率信息例如可以包括人脸整体轮廓的曲率和/或脸部器官的轮廓的曲率等。
51.图2示出了本公开至少一实施例提供的一种图像检测模型的示意图。
52.如图2所示,图像检测模型例如包括子模型a1、子模型a2、子模型a3和子模型b,该子模型a1、a2和a3中的每个可以作为一个第一子模型,子模型b可以作为第二子模型。每个第一子模型和第二子模型例如可以是神经网络模型,均包括多个网络层。将待检测图像分别输入子模型a1、子模型a2、子模型a3中,以分别利用各个第一子模型的多个网络层依次对被检测图像进行计算。对于每个第一子模型,被检测图像经过第一子模型的每个网络层的计算处理后可以得到对应该网络层的结果(结果可以是向量,以下也将结果称为特征图)。特征图的尺寸与被检测图像的原始尺寸以及各个网络层的卷积核的尺寸相关。可以将子模型a1、子模型a2、子模型a3各自的预定网络层的计算结果(即特征图)输入至子模型b,经过子模型b的多个网络层的处理后,可以得到被检测图像中的目标对象的特征向量。
53.例如,图像检测模型的输出结果还包括m个第一子模型分别对应的m个子模型输出结果,其中,m个子模型输出结果分别对应m种类型的特征。例如,m个子模型输出结果包括热图特征、检测框特征和关键点特征中的至少一个。
54.例如,每个第一子模型输出至少一种类型的特征,并且各个第一子模型输出的特征的类型各不相同。例如,如图2所示,子模型a1可以输出热图特征,子模型a2可以输出检测框特征,子模型a3输出可以关键点特征。例如,在得到一个或多个第一子模型的输出结果后,可以向用户提供一个或多个第一子模型的输出结果。
55.例如,将被检测图像输入子模型a1,子模型a1可以输出多张热图,每张热图可以示
出一个关键点,例如,每张热图中数值最高的位置即表示该热图对应的关键点的位置。图3示出了本公开至少一实施例提供的一种热图的示意图,图3的(a)部分表示被检测图像,(b)部分表示一张热图,(c)部分为(a)部分与(b)部分叠加的效果图像。如图3所示,将(a)部分的被检测图像输入子模型a1后,子模型a1可以输出多张热图,每张热图可以包含一个关键点,(b)部分示出的热图例如表示嘴巴处的关键点,该热图中的各个坐标位置具有对应的热量值,并通过不同的色阶或颜色来表示不同的热量值。例如,图3的(b)部分中高亮的位置p处的热量值最高,可以将该高亮位置p作为热图的一个关键点。
56.例如,将被检测图像输入子模型a2,子模型a2可以输出关于目标对象的一个或多个检测框(例如脸部检测框)。将被检测图像输入子模型a3,子模型a2可以输出关于目标对象的一个或多个关键点的位置信息。
57.例如,在一些实施例中,在得到一个或多个第一子模型的输出结果后,可以将一个或多个第一子模型的输出结果展示给用户,以作参考。在一些实施例中,可以将一个或多个第一子模型的输出结果与被检测图像叠加展示给用户,例如,在被检测图像上叠加人脸检测框和关键点等特征,以丰富视觉效果,提高用户体验。
58.例如,n可以等于m,即可以将全部m个第一子模型的预定网络层的结果均输入第二子模型;或者,n可以小于m,即可以将m个第一子模型中的部分第一子模型的预定网络层的结果输入第二子模型。
59.例如,以上实施例中以m=3为例进行说明,但是,本公开并不限于此,m可以是其他数值,例如,m=1,或者m=2,或者m》3,m的数值可以根据实际需求而定。
60.例如,以上实施例中以第二子模型的数量为一为例进行说明,但是在实际应用中,也可以根据实际需求,设置两个或多个第二子模型,即可以将n个第一子模型的预定网络层的结果同时输入两个或多个第二子模型中,不同的第二子模型例如可以输出不同的特征向量。
61.例如,在训练图像检测模型时,图像检测模型包含的各个子模型(例如m个第一子模型和第二子模型)一起训练。例如,在训练时,图像检测模型的损失信息基于m个第一子模型的输出(例如,热图、检测框和关键点)和第二子模型的输出(特征向量)共同计算得到,并利用该损失信息同时对图像检测模型的参数(即每个第一子模型的参数和第二子模型的参数)进行调整。在m个第一子模型和第二子模型的相互影响下,可以使得m个第一子模型的各个网络层的计算结果不仅包含目标对象的位置信息也可以包含原图中目标对象的特征信息,因而无需再去原图中截取图片,直接将包含原图特征信息的特征图输入第二子模型,即可得到目标对象的特征向量。
62.根据本公开实施例的图像处理方法,将被检测图像输入图像检测模型,根据图像检测模型可以直接得到被检测图像中的目标对象的特征向量,而无需再从原图截取图片,实现了一阶段检测。因此,相比于两阶段检测,本公开实施例的图像处理方法,可以节省时间和算力,检测速度加快,更能够满足实时性的要求。
63.图4a示出了本公开至少一实施例提供的一种第一子模型的示意图,图4b示出了本公开至少一实施例提供的另一种第一子模型的示意图。
64.如图4a和图4b所示,例如,m个第一子模型中的每个可以包括依次连接的第一输入层、多个第一中间层和第一输出层。在一些实施例中,如图4a所示,多个第一中间层可以包
括依次连接的多个深度卷积层(深度卷积层1~深度卷积层n,n为大于1的整数)。在另一些实施例中,如图4b所示,多个第一中间层可以包括依次连接的多个深度卷积层(深度卷积层1~深度卷积层n,n为大于1的整数)和多个反卷积层(反卷积层1~反卷积层m,m为大于1的整数,m和n相等或不相等,例如m可以小于n)。
65.例如,深度卷积层可以执行深度可分离卷积操作。
66.例如,图4a示出的是一种基于深度卷积层的网络结构,该网络结构例如适用于对图像进行检测、分类、特征提取等方向。图4b示出的是一种基于深度卷积层并增加反卷积层的网络结构,该网络结构例如适合用于对图像进行分割,并且由于加入了反卷计算,可以使得该网络结构输出的特征图的尺寸较大,即输出结果的尺寸较大。
67.例如,对于各个第一子模型,可以根据输出结果的尺寸大小,使用图4a和图4b所示的网络结构中的一种。例如,子模型a1输出热图特征,由于热图特征的尺寸较大,因此,子模型a1可以采用图4b所示的网络结构。对于输出结果的尺寸较小的子模型(例如子模型a2)可以采用图4a所示的网络结构。
68.例如,每个第一子模型均包含输入层与输出层,因为不能保证所有子模块的输入与输出都是一致的,因此输入层和输出层的形式可以根据实际需求而定,本公开对此不做限制。由于每个第一子模型均包含完整的模型结构(输入层、中间层和输出层),训练完成的图像检测模型的多个第一子模型和第二子模型互不影响,因此,对于训练完成的图像检测模型,在需要时,可以将图像检测模型的一个或多个第一子模型或第二子模型拆分出来,并将拆分出来的第一子模型或第二子模型作为单独的网络模型使用。例如,在某一场景中,需要获取检测框,则可以将图像检测模型中的子模型a2拆分出来,作为一个单独的网络模型使用。再例如,若在进行特征向量检测时,不需要使用子模型a3,那么可以将子模型a3拆分出去,使用子模型a1、子模型a1和子模型b对被检测图像进行处理以得到特征向量。再例如,在某一场景中,需要获取检测框特征、热图特征和关键点特征,而不需要获取特征向量,即不需要子模型b,则可以将子模型b拆分出去,保留子模型a1、a2和a3。例如,图像检测模型包含的各个子模型在模型训练的时候可以一起进行训练,训练完成后可以根据需要将一个或多个子模型拆分出来进行单独推理预测,而对其他子模型没有影响。基于这一方式,可以使得图像检测模型的应用更为灵活,应用场景更为广泛。此外,还可以任意设计子模型的网络结构,子模型之间互相不影响,只要能够满足所要求的输出结果即可。
69.例如,每个第一子模型对应的预定网络层可以是每个第一子模型中的多个第一中间层中的一层或者每个第一子模型中的第一输出层。例如,在图4a所示的示例中,预定网络层可以是一层深度卷积层或者第一输出层;在图4a所示的示例中,预定网络层可以是一层深度卷积层,或者一层反卷积层,或者第一输出层。
70.例如,n个预定网络层分别为n个第一子模型中具有相同维度的结果的层。例如,对于每个第一子模型,其每个网络层所得到的特征图的尺寸不同,可以将n个第一子模型中输出的特征图的尺寸相同的层作为预定网络层,即该n个预定网络层的结果(向量)的维度相同。
71.例如,步骤s122可以包括:对n个预定网络层的结果进行运算,得到运算结果;将运算结果输入第二子模型。
72.例如,运算包括乘法运算或加法运算。
73.例如,n个预定网络层的结果的维度相同,因此可以对该n个预定网络层的结果直接进行乘法运算或加法运算,例如将该n个预定网络层的结果中的对应位置的元素进行乘法运算或加法运算。例如,n个预定网络层的结果均为1*256维度的向量,子模型a1的预定网络层的结果例如为r1=[p1,p2,

,p256],子模型a2的预定网络层的结果例如为r2=[q1,q2,

,q256],子模型a1的预定网络层的结果和子模型a2的预定网络层的结果相乘的结果为k=r1*r2=[p1*q1,p2*q2...p256*q256],然后,可以将k输入至子模型b。相乘的考量主要在于凸显特征的梯度,如果两个明显的特征(数值大)相乘后,那么明显的特征会被放大,相反不明显的特征会被弱化,因此,可以增加识别的准确率。
[0074]
例如,可以选取多个子模型的特征进行相乘,例如选取子模型a1,a2和a3的结果进行相乘,然后将乘积输入子模型b。具体选择哪些子模型的结果进行相乘根据实际应用需求设置。
[0075]
例如,在另一些实施例中,n个第一子模型的预定网络层的结果也可以不进行运算,直接输入第二子模型。
[0076]
例如,第二子模型包括依次连接的第二输入层、多个第二中间层和第二输出层。多个第二中间层包括依次连接的多个深度卷积层;或者多个第二中间层包括依次连接的多个深度卷积层和多个反卷积层。例如,对于第二子模型,也可以根据输出的特征向量的尺寸,采用图4a所示的网络结构或者图4b所示的网络结构。例如,若输出的特征向量的尺寸大于尺寸阈值,则采用4b所示的网络结构;若输出的特征向量的尺寸不大于尺寸阈值,则采用4a所示的网络结构。
[0077]
例如,在得到目标对象的特征向量后,可以将目标对象的特征向量与数据库中的多个特征向量进行比对,以从多个特征向量中确定与目标对象的特征向量满足距离条件的目标特征向量,将目标特征向量对应的标签信息作为目标对象的识别结果。
[0078]
例如,在人脸打卡场景中,可以先获取需要进行打卡的各个用户中的每个用户的脸部特征向量,并将各个用户的标签信息(例如名字和/或编号等)及其脸部特征向量对应地存储于数据库中,标签信息可以作为用户的唯一标识。在用户打卡时,采集包含用户脸部的图像,作为被检测图像,根据图像检测模型得到该被检测图像中脸部的特征向量。然后,可以从数据库中确定与该模型输出的特征向量满足距离条件的特征向量作为目标特征向量,并将该目标特征向量对应的标签信息作为目标对象的识别结果,进而可以识别得到用户的名字和/或编号等信息。
[0079]
例如,目标对象的特征向量与目标特征向量满足距离条件。在一些实施例中,可以计算数据库中的每个特征向量与目标对象的特征向量之间的距离(例如欧氏距离),然后根据距离从小到大进行排序,可以将数据库中与目标对象的特征向量距离最小的特征向量作为目标特征向量,即距离条件可以包括与目标对象的特征向量距离最近这一条件。在另一些实施例中,距离条件还可以包括与目标对象的特征向量之间的距离小于距离阈值这一条件,例如可以从数据库中的与目标对象的特征向量距离小于距离阈值的一个或多个特征向量中,选取一个特征向量作为目标特征向量。例如,通过上述方式得到的识别结果可以输出给用户,可以通过例如图像或者声音等形式输出给用户。
[0080]
例如,如上所述,在利用图像检测模型预测特征向量之前,需要先对图像检测模型进行训练,以下对训练过程进行描述。
[0081]
例如,可以获取多个样本图像和多个样本图像分别对应的多个标签数据,其中,每个样本图像包括样本对象;基于多个样本图像和多个标签数据,对初始模型的参数进行更新迭代,直至满足训练完成条件,将训练完成的初始模型作为图像检测模型。
[0082]
例如,样本对象可以是脸部,样本图像即为包含脸部的图像。每个样本图像具有对应的标签数据,标签数据可以包含热图标签数据、检测框标签数据、关键点标签数据和特征向量标签数据。标签数据表示样本真值,即样本图像对应的真实数据,标签数据可以通过预定算法(例如关键点检测等图像处理算法)计算得到或者可以通过人工标注的方式得到。
[0083]
例如,在对初始模型的参数进行更新迭代的过程中,可以针对每个样本图像执行以下操作:将样本图像输入初始模型,得到初始模型的输出结果,其中,初始模型的输出结果包括样本图像中的样本对象的初始特征向量;根据初始模型的输出结果和样本图像对应的标签数据,计算得到损失信息;基于损失信息,更新初始模型的参数。
[0084]
例如,初始模型包括m个第一初始子模型和第二初始子模型。将样本图像输入初始模型,得到初始模型的输出结果,可以包括:将样本图像分别输入m个第一初始子模型;将m个第一初始子模型中的n个第一初始子模型分别对应的n个预定网络层的结果输入第二初始子模型,得到第二初始子模型的输出结果,第二初始子模型的输出结果包括样本图像中的样本对象的初始特征向量。需要说明的是,n个第一初始子模型分别对应的n个预定网络层的定义在不矛盾的情况下可以参考上面对于n个第一子模型分别对应的n个预定网络层的描述。
[0085]
图5示出了本公开至少一实施例提供的一种初始模型的示意图。如图5所示,初始模型例如包括初始子模型a1`、初始子模型a2`、初始子模型a3`和初始子模型b`,该初始子模型a1`、a2`和a3`中的每个可以作为一个第一初始子模型,初始子模型b可以作为第二初始子模型。每个第一初始子模型和第二初始子模型例如可以是神经网络模型,均包括多个网络层。将一个样本图像(例如第一样本图像)分别输入初始子模型a1`、初始子模型a2`和初始子模型a3`中,然后可以将初始子模型a1`、初始子模型a2`和初始子模型a3`各自的预定网络层的结果输出至初始子模型b`,经过初始子模型b`的处理后,可以得到第一样本图像中的样本对象的初始特征向量。
[0086]
例如,初始模型的输出结果还包括m个第一初始子模型分别对应的m个初始子模型输出结果,该m个初始子模型输出结果分别对应m种类型的特征。例如,m个初始子模型输出结果包括初始热图特征、初始检测框特征和初始关键点特征中的至少一个。例如,如图5所示,初始子模型a1`输出初始热图特征,初始子模型a2`输出初始检测框特征,初始子模型a3`输出初始关键点特征。
[0087]
例如,在得到m个初始子模型输出结果和第二初始子模型的输出结果之后,可以利用损失函数,对m个初始子模型输出结果、第二初始子模型的输出结果和标签数据进行运算,得到损失信息(例如总损失值)。
[0088]
例如,利用初始模型得到第一样本图像对应的初始输出结果(初始特征向量、初始热图特征、初始检测框特征和初始关键点特征)之后,可以利用损失函数对第一样本图像对应的初始输出结果与第一样本图像的标签数据进行计算,得到第一损失信息。基于该第一损失信息,对m个第一初始子模型和第二初始子模型的参数进行调整更新,得到一次更新后的初始模型。然后,将下一个样本图像(例如第二样本图像)输入该更新后的初始模型,以得
到第二样本图像对应的初始输出结果,并利用损失函数对第二样本图像对应的初始输出结果与第二样本图像的标签数据进行计算,得到第二损失信息,然后利用该第二损失信息对m个第一初始子模型和第二初始子模型的参数(一次更新后的参数)进行第二次调整更新,得到第二次更新后的初始模型。以此类推,利用多个样本图像,不断地更新迭代初始模型的参数,直至满足训练完成条件,可以结束训练。将训练完成的初始模型(即末次更新后的初始模型)作为图像检测模型。训练完成条件例如包括:损失信息小于损失阈值,或者训练时间超过时间阈值。
[0089]
训练完成之后的初始子模型a1`即为图2所示的图像检测模型中的子模型a1,训练完成之后的初始子模型a2`即为图2所示的图像检测模型中的子模型a2,训练完成之后的初始子模型a3`即为图2所示的图像检测模型中的子模型a3,训练完成之后的初始子模型b`即为图2所示的图像检测模型中的子模型b。
[0090]
需要说明的是,也可以利用同一个样本图像对该初始模型的参数进行多次调整。
[0091]
例如,损失函数包括两部分,一部分是关于第二初始子模型的第一子函数,另一部分是关于m个第一初始子模型的第二子函数。
[0092]
例如,第一子函数可以联合softmax loss和center loss(中心损失)一起使用,第一子函数可以表示为:
[0093][0094]
上述式(1)中,l为第一子函数的损失值,ls表示softmax loss对应的损失值,lc表示center loss对应的损失值,y表示模型输出结果(即第二初始子模型输出的初始特征向量),yi表示模型输出结果的第i行(即第yi个类别),表示模型输出结果的第yi个类别的特征中心,b表示偏置,xi表示属于第yi类别的第i层的深度特征,bj表示网络第j列的偏移量,b
yi
表示第yi类别的偏移量,表示输入为xi、偏移量为b
yi
时的网络权重,表示第j列的权重,m表示批尺寸,n表示类别数量,λ表示权重系数,λ为用户自定义,通常为0.5。
[0095]
例如,第二子函数可以包括:热图的损失、目标对象长宽预测的损失、目标对象的中心点偏移值的损失等。第二子函数可以表示为:
[0096]
l
det
=lk+λ
size
l
size

off
l
off
ꢀꢀꢀꢀꢀꢀ
(2)
[0097]
式(2)中,l
det
表示第二子函数的损失值,lk表示热图的损失值,l
size
表示长宽预测损失值,l
off
表示中心点偏移值的损失值,λ
size
和λ
off
为超参数,λ
size
例如为0.1,λ
off
例如为1。
[0098]
例如,lk可以通过热图标签数据和初始子模型a1`输出的初始热图特征计算得到,lk可以表示为:
[0099][0100]
式(3)中,α和β为超参数,α例如为2,β例如为4,n表示热图关键点的数量,求和符号
∑的下标xyc表示所有热图上的全部坐标点,c表示类别,每个类别对应一张热图,表示模型的预测值(即初始热图特征),y
xyc
表示标签数据中的真实值(即热图标签数据)。
[0101]
例如,l
size
和l
off
可以通过检测框标签数据和初始子模型a2`输出的初始检测框特征计算得到,l
size
可以表示为:
[0102][0103]
式(4)中,n表示检测框的数量,k表示第k个检测框,表示检测框的预测尺寸(即初始检测框特征中的尺寸数据),sk表示真实尺寸(即检测框标签数据中的尺寸数据)。
[0104]
例如,l
off
可以表示为:
[0105][0106]
式(5)中,n表示检测框的数量,p表示检测框中心点的真实坐标(即初始检测框特征中的中心点偏移值),表示中心点偏移值的预测值(即初始检测框特征中的中心点偏移值数据),r表示缩放尺度,表示缩放后中心点的近似整数坐标。
[0107]
此外,第二子函数还可以包括关键点的损失l
lm
,例如可以在上述式(2)的基础上增加λ
lm
l
lm
,从而第二子函数可以表示为:
[0108]
l
det
=lk+λ
size
l
size

off
l
off

lm
l
lm
ꢀꢀꢀꢀꢀ
(6)
[0109]
λ
lm
为超参数,l
lm
可以通过关键点标签数据和初始子模型a3`输出的初始关键点特征计算得到,l
lm
可以表示为:
[0110][0111]
式(7)中,表示关键点的x坐标的损失值,表示关键点的y坐标的损失值,lm
x
表示关键点的x坐标预测值,lmy表示关键点的y坐标预测值,c
x
表示关键点的x坐标真实值,cy表示关键点的y坐标真实值,boxw表示表示框的宽,boxh表示框的高。
[0112]
例如,总损失值l
total
为第一子函数的损失值与第二子函数的损失值的加和,即l
total
=l+l
det
。又例如,总损失值l
total
还可以为第一子函数的损失值与第二子函数的损失值的加权和,即l
total
=a1*l+a2*l
det
,a1表示第一子函数l的权重,a2表示第二子函数的权重,a1和a2的具体值可以根据实际情况设置。
[0113]
例如,第一子函数可以辅助特征向量的提取,可以帮助缩小同一身份人脸特征向量之间的类内差距,并且扩大不同身份人脸特征向量之间的距离,第二子函数可以帮助检测模型网络,提高人脸检测框等的准确性,因此将这两部分联合起来一起训练模型,可以结合两部分的优点,使模型同时具有以上两个子函数所带来的效果。
[0114]
例如,在一些实施例中,可以将n个第一初始子模型分别对应的n个预定网络层的结果进行运算,得到运算结果,然后将运算结果输入第二初始子模型。运算包括乘法运算或加法运算。
[0115]
例如,n个预定网络层分别为n个第一初始子模型中具有相同维度的结果的层,即n个预定网络层的结果(例如向量)的维度相同。
[0116]
例如,m个第一初始子模型中的每个包括依次连接的第一初始输入层、多个第一初始中间层和第一初始输出层。多个第一初始中间层包括依次连接的多个初始深度卷积层;或者多个第一初始中间层包括依次连接的多个初始深度卷积层和多个初始反卷积层。
[0117]
例如,n个第一初始子模型中的每个第一初始子模型对应的预定网络层为每个第一初始子模型中的多个第一初始中间层中的一层或者每个第一初始子模型中的第一初始输出层。
[0118]
例如,第二初始子模型包括依次连接的第二初始输入层、多个第二初始中间层和第二初始输出层。多个第二初始中间层包括依次连接的多个初始深度卷积层;或者多个第二初始中间层包括依次连接的多个初始深度卷积层和多个初始反卷积层。
[0119]
例如,图像检测模型是对初始模型进行参数调整而得到的,训练过程中可以不对模型的网络结构和数据处理流程进行调整,因此图像检测模型的网络结构和数据处理流程例如与初始模型的网络结构和数据处理流程一致。
[0120]
本公开至少一实施例还提供一种图像处理装置,图6为本公开至少一实施例提供的一种图像处理装置的示意性框图。
[0121]
如图6所示,图像处理装置200可以包括获取模块201和检测模块202。这些组件通过总线系统和/或其它形式的连接机构(未示出)互连。例如,这些模块可以通过硬件(例如电路)模块、软件模块或二者的任意组合等实现,以下实施例与此相同,不再赘述。例如,可以通过中央处理单元(cpu)、图像处理器(gpu)、张量处理器(tpu)、现场可编程逻辑门阵列(fpga)或者具有数据处理能力和/或指令执行能力的其它形式的处理单元以及相应计算机指令来实现这些单元。应当注意,图6所示的图像处理装置200的组件和结构只是示例性的,而非限制性的,根据需要,图像处理装置200也可以具有其他组件和结构。
[0122]
例如,获取模块201配置为获取被检测图像,被检测图像包括目标对象。
[0123]
例如,检测模块202配置为将被检测图像输入图像检测模型,得到图像检测模型的输出结果,其中,图像检测模型的输出结果包括目标对象的特征向量,特征向量用于识别目标对象。
[0124]
例如,图像检测模型包括m个第一子模型和第二子模型。检测模块202进一步配置为:将被检测图像分别输入m个第一子模型;将m个第一子模型中的n个第一子模型分别对应的n个预定网络层的结果输入第二子模型,得到第二子模型的输出结果,第二子模型的输出结果包括目标对象的特征向量;m为正整数,n为小于或等于m的正整数。
[0125]
例如,获取模块201和检测模块202可以包括存储在存储器中的代码和程序;处理器可以执行该代码和程序以实现如上所述的获取模块201和检测模块202的一些功能或全部功能。例如,获取模块201和检测模块202可以是专用硬件器件,用来实现如上所述的获取模块201和检测模块202的一些或全部功能。例如,获取模块201和检测模块202可以是一个电路板或多个电路板的组合,用于实现如上所述的功能。在本技术实施例中,该一个电路板
或多个电路板的组合可以包括:(1)一个或多个处理器;(2)与处理器相连接的一个或多个非暂时的存储器;以及(3)处理器可执行的存储在存储器中的固件。
[0126]
需要说明的是,获取模块201可以用于实现图1a所示的步骤s110,检测模块202可以用于实现图1a和1b所示的步骤s120。从而关于获取模块201和检测模块202能够实现的功能的具体说明可以参考上述图像处理方法的实施例中的步骤s110至步骤s120的相关描述,重复之处不再赘述。此外,图像处理装置200可以实现与前述图像处理方法相似的技术效果,在此不再赘述。
[0127]
需要注意的是,在本公开的实施例中,该图像处理装置200可以包括更多或更少的电路或单元,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路或单元的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。
[0128]
例如,在一些实施例中,图像处理装置200还可以包括识别模块,该识别模块配置为:将目标对象的特征向量与数据库中的多个特征向量进行比对,以从多个特征向量中确定与目标对象的特征向量满足距离条件的目标特征向量,将目标特征向量对应的标签信息作为目标对象的识别结果。
[0129]
例如,在一些实施例中,图像处理装置200还可以包括训练模块,该训练模块配置为:获取多个样本图像和多个样本图像分别对应的多个标签数据,每个样本图像包括样本对象;基于多个样本图像和多个标签数据,对初始模型的参数进行更新迭代,直至满足训练完成条件,将训练完成的初始模型作为图像检测模型。
[0130]
本公开一些实施例还提供一种电子设备。图7a为本公开至少一实施例提供的一种电子设备的示意性框图。
[0131]
例如,如图7a所示,电子设备300包括拍摄装置301和图像处理装置302。
[0132]
例如,拍摄装置301配置为拍摄被检测图像,被检测图像包括目标对象。
[0133]
例如,图像处理装置302配置为接收被检测图像,并基于被检测图像执行如上任一实施例所述的图像处理方法。
[0134]
例如,拍摄装置301可以是电子设备的后置摄像头,或者是电子设备的前置摄像头及反射装置。
[0135]
例如,图像处理装置302可以实现为中央处理器、专用处理芯片、数字信号处理器等,本公开对此不作具体限制。
[0136]
例如,电子设备300可以为打卡机等终端设备,并且还可以提供有显示单元(例如触控显示屏)等,例如显示单元可以提供相应的人机交互界面,用于显示交互操作的响应、交互动作提示信息等,本公开对此不作具体限制。
[0137]
例如,关于电子设备300执行图像处理方法的过程的详细说明可以参见上述图像处理方法的实施例中的相关描述,重复之处不再赘述。
[0138]
本公开一些实施例还提供另一种电子设备。图7b为本公开至少一实施例提供的另一种电子设备的示意性框图。
[0139]
例如,如图7b所示,电子设备400包括处理器401和存储器402。应当注意,图7b所示的电子设备400的组件只是示例性的,而非限制性的,根据实际应用需要,该电子设备400还可以具有其他组件。
[0140]
例如,处理器401和存储器402之间可以直接或间接地互相通信。
[0141]
例如,处理器401和存储器402可以通过网络进行通信。网络可以包括无线网络、有线网络、和/或无线网络和有线网络的任意组合。处理器401和存储器402之间也可以通过系统总线实现相互通信,本公开对此不作限制。
[0142]
例如,在一些实施例中,存储器402用于非瞬时性地存储计算机可读指令。处理器401用于运行计算机可读指令时,计算机可读指令被处理器401运行时实现根据上述任一实施例所述的图像处理方法。关于该图像处理方法的各个步骤的具体实现以及相关解释内容可以参见上述图像处理方法的实施例,重复之处在此不作赘述。
[0143]
例如,处理器401和存储器402可以设置在服务器端(或云端)。
[0144]
例如,处理器401可以控制电子设备400中的其它组件以执行期望的功能。处理器401可以是中央处理器(cpu)、图形处理器(graphics processing unit,gpu)、网络处理器(np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。中央处理元(cpu)可以为x86或arm架构等。
[0145]
例如,存储器402可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(rom)、硬盘、可擦除可编程只读存储器(eprom)、便携式紧致盘只读存储器(cd-rom)、usb存储器、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机可读指令,处理器401可以运行所述计算机可读指令,以实现电子设备400的各种功能。在存储介质中还可以存储各种应用程序和各种数据等。
[0146]
例如,在一些实施例中,电子设备400可以为手机、平板电脑、电子纸、电视机、显示器、笔记本电脑、数码相框、导航仪、可穿戴电子设备、智能家居设备等。
[0147]
例如,电子设备400可以包括显示面板,显示面板可以用于分割图像等。例如,显示面板可以为矩形面板、圆形面板、椭圆形面板或多边形面板等。另外,显示面板不仅可以为平面面板,也可以为曲面面板,甚至球面面板。
[0148]
例如,电子设备400可以具备触控功能,即电子设备400可以为触控装置。
[0149]
例如,关于电子设备400执行图像处理方法的过程的详细说明可以参见上述图像处理方法的实施例中的相关描述,重复之处不再赘述。
[0150]
图8为本公开至少一实施例提供的一种非瞬时性计算机可读存储介质的示意图。例如,如图8所示,在计算机可读存储介质500上非暂时性地存储有计算机可读指令501。例如,当计算机可读指令501由处理器执行时可以执行根据上文所述的图像处理方法中的一个或多个步骤。
[0151]
例如,该存储介质500可以应用于上述电子设备400中。例如,存储介质500可以包括电子设备400中的存储器402。
[0152]
例如,关于存储介质500的说明可以参考电子设备400的实施例中对于存储器402的描述,重复之处不再赘述。
[0153]
图9为本公开至少一实施例提供的一种硬件环境的示意图。本公开提供的电子设备可以应用在互联网系统。
[0154]
利用图9中提供的计算机系统可以实现本公开中涉及的图像处理装置和/或电子设备的功能。这类计算机系统可以包括个人电脑、笔记本电脑、平板电脑、手机、个人数码助理、智能眼镜、智能手表、智能指环、智能头盔及任何智能便携设备或可穿戴设备。本实施例中的特定系统利用功能框图解释了一个包含用户界面的硬件平台。这种计算机设备可以是一个通用目的的计算机设备,或一个有特定目的的计算机设备。两种计算机设备都可以被用于实现本实施例中的图像处理装置和/或电子设备。计算机系统可以包括实施当前描述的实现图像处理所需要的信息的任何组件。例如,计算机系统能够被计算机设备通过其硬件设备、软件程序、固件以及它们的组合所实现。为了方便起见,图9中只绘制了一台计算机设备,但是本实施例所描述的实现图像处理所需要的信息的相关计算机功能是可以以分布的方式、由一组相似的平台所实施的,分散计算机系统的处理负荷。
[0155]
如图9所示,计算机系统可以包括通信端口650,与之相连的是实现数据通信的网络,例如,计算机系统可以通过通信端口650发送和接收信息及数据,即通信端口650可以实现计算机系统与其他电子设备进行无线或有线通信以交换数据。计算机系统还可以包括一个处理器组620(即上面描述的处理器),用于执行程序指令。处理器组620可以由至少一个处理器(例如,cpu)组成。计算机系统可以包括一个内部通信总线610。计算机系统可以包括不同形式的程序储存单元以及数据储存单元(即上面描述的存储器或存储介质),例如硬盘670、只读存储器(rom)630、随机存取存储器(ram)640,能够用于存储计算机处理和/或通信使用的各种数据文件,以及处理器组620所执行的可能的程序指令。计算机系统还可以包括一个输入/输出组件660,输入/输出组件660用于实现计算机系统与其他组件(例如,用户界面680等)之间的输入/输出数据流。
[0156]
通常,以下装置可以连接输入/输出组件660:例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置;例如显示器(例如,lcd、oled显示器等)、扬声器、振动器等的输出装置;包括例如磁带、硬盘等的存储装置;以及通信接口。
[0157]
虽然图9示出了具有各种装置的计算机系统,但应理解的是,并不要求计算机系统具备所有示出的装置,可以替代地,计算机系统可以具备更多或更少的装置。
[0158]
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
[0159]
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
[0160]
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
[0161]
对于本公开,还有以下几点需要说明:
[0162]
(1)本公开实施例附图只涉及到与本公开实施例涉及到的结构,其他结构可参考通常设计。
[0163]
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
[0164]
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
[0165]
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1