图像识别方法、装置及设备与流程





1.本公开涉及图像识别技术领域,尤其涉及一种图像识别方法、装置及设备。


背景技术:

2.图像识别是进行自动化场景分析的重要一步,其可以针对图像,自动判断该图像所包含的物体或场景的类别。然而,相关技术在进行图像识别时,一般都是将待识别图像输入至物体或场景相关的深度学习网络模型中,输出识别结果,但是,图像的识别结果往往只有物体或场景等单一属性,例如,针对一张图像,只能输出物体属性,或场景属性,通用性较差。


技术实现要素:

3.本公开提供一种图像识别方法、装置及设备,以至少解决相关技术中针对一张图像,只能输出物体属性,通用性较差的问题。本公开的技术方案如下:
4.根据本公开实施例的第一方面,提供一种图像识别方法,包括:
5.获取待识别图像;
6.识别所述待识别图像对应的场景类别,得到场景类别信息;
7.检测所述待识别图像中包含的面部区域,识别所述面部区域对应的面部属性信息;
8.对所述待识别图像进行对象检测,得到所述待识别图像中的对象区域;
9.若所述对象区域中存在目标对象的身体区域,且所述身体区域与所述面部区域对应于同一目标对象,则将所述面部属性信息与所述目标对象关联标记,得到目标对象信息;若所述对象区域中存在非目标对象区域,则识别所述非目标对象区域对应的对象类别,得到非目标对象类别信息;
10.输出所述场景类别信息、所述目标对象信息和所述非目标对象类别信息。
11.在一些实施例中,所述识别所述待识别图像对应的场景类别,包括:
12.使用第一场景识别模型识别出所述待识别图像对应的第一场景类别;
13.使用与所述第一场景类别对应的第二场景识别模型识别出所述待识别图像对应的第二场景类别,所述第二场景类别是所述第一场景类别的子类别。
14.在一些实施例中,所述检测所述待识别图像中包含的面部区域,识别所述面部区域对应的面部属性信息,包括:
15.使用面部关键点检测模型检测所述待识别图像中包含的面部区域以及面部关键点;
16.使用面部识别模型,根据所述面部关键点识别出所述面部区域对应的面部属性信息。
17.在一些实施例中,所述得到所述待识别图像中包的对象区域之后,所述方法还包括:
18.使用第一对象识别模型分别识别出所述对象区域对应的第一对象类别,所述第一对象类别包括目标对象类别和非目标对象类别;
19.所述若所述对象区域中存在非目标对象区域,则识别所述非目标对象区域对应的对象类别,包括:
20.若根据所述对象区域分别对应的第一对象类别确定所述对象区域中包括非目标对象区域,则使用第二对象识别模型识别所述非目标对象区域对应的第二对象类别,所述第二对象类别是所述非目标对象类别对应的子类别。
21.在一些实施例中,不同识别处理所使用的目标识别模型的训练步骤包括:
22.获取与所述目标识别模型对应的训练样本图像以及所述训练样本图像对应的监督向量;
23.获取使用所述训练样本图像预先训练的多个老师模型;
24.以所述目标识别模型作为学生模型,将所述训练样本图像分别输入所述多个老师模型和所述目标识别模型,得到所述多个老师模型分别输出的分类预测向量以及所述目标识别模型输出的分类预测向量;
25.确定所述监督向量与所述多个老师模型分别输出的分类预测向量对应的均值向量;
26.确定所述均值向量与所述目标识别模型输出的分类预测向量之间的第一kl散度损失;
27.将所述均值向量和所述目标识别模型输出的分类预测向量输入预设的判别器模型,根据所述判别器模型的输出结果确定所述判别器模型对应的判别损失;
28.根据所述第一kl散度损失与所述判别损失,调整所述目标识别模型的参数。
29.在一些实施例中,所述目标识别模型的训练步骤还包括:
30.对所述训练样本图像进行不同的数据增强处理,得到第一训练样本图像和第二训练样本图像;
31.将所述第一训练样本图像输入所述目标识别模型,得到第一分类预测结果,以及将所述第二训练样本图像输入所述目标识别模型,得到第二分类预测结果;
32.根据所述第一分类预测结果以及所述第一训练样本图像对应的监督信息,确定第一交叉熵损失;根据所述第二分类预测结果以及所述第二训练样本图像对应的监督信息,确定第二交叉熵损失;
33.确定所述第一训练样本图像与所述第二训练样本图像分别输入到所述目标识别模型后,所述目标识别模型的各同级卷积层之间的特征相似度损失;
34.确定所述第一分类预测结果作为老师模型的输出结果,所述第二分类预测结果作为学生模型的输出结果时的第二kl散度损失,以及,确定所述第一分类预测结果作为学生模型的输出结果,所述第二分类预测结果作为老师模型的输出结果时的第三kl散度损失;
35.根据所述第一交叉熵损失、所述第二交叉熵损失、所述特征相似度损失、所述第二kl散度损失以及所述第三kl散度损失,调整所述目标识别模型的参数,得到最终的目标识别模型。
36.在一些实施例中,所述确定所述第一分类预测结果作为老师模型的输出结果,所述第二分类预测结果作为学生模型的输出结果时的第二kl散度损失,以及,确定所述第一
分类预测结果作为学生模型的输出结果,所述第二分类预测结果作为老师模型的输出结果时的第三kl散度损失,包括:
37.所述第一分类预测结果作为老师模型的输出结果,所述第二分类预测结果作为学生模型的输出结果时,根据所述第一分类预测结果和所述第二分类预测结果的正确性,确定所述第一分类预测结果对应的第一权重系数;
38.根据所述第一权重系数、所述第一分类预测结果和所述第二分类预测结果确定所述第二kl散度损失;
39.所述第一分类预测结果作为学生模型的输出结果,所述第二分类预测结果作为老师模型的输出结果时,根据所述第一分类预测结果和所述第二分类预测结果的正确性,确定所述第二分类预测结果对应的第二权重系数;
40.根据所述第二权重系数、所述第一分类预测结果和所述第二分类预测结果确定所述第三kl散度损失。
41.在一些实施例中,所述第一权重系数和第二权重系数的确定过程包括:
42.若作为老师模型输出的分类预测结果是错误的,则作为老师模型输出的分类预测结果对应的权重系数为零;
43.若作为老师模型输出的分类预测结果是正确的,且作为学生模型输出的分类预测结果是正确的,则作为老师模型输出的分类预测结果对应的权重系数为一;
44.若作为老师模型输出的分类预测结果是正确的,且作为学生模型输出的分类预测结果是错误的,则作为老师模型输出的分类预测结果对应的权重系数为大于一的设定值。
45.在一些实施例中,所述目标识别模型的训练步骤还包括:
46.获取图像分割模型,所述图像分割模型用于区分所述训练样本图像的前景和背景;
47.将所述训练样本图像输入所述目标识别模型,得到所述目标识别模型输出的分类预测向量;
48.根据所述分类预测向量与所述监督向量确定所述目标识别模型对应的第三交叉熵损失;
49.将所述目标识别模型中不同卷积层提取的特征图对应地输入所述图像分割模型中的不同上采样层,以使所述图像分割模型基于不同上采样层生成的特征图进行所述训练样本图像的分割处理,并根据分割处理结果确定所述图像分割模型对应的分割损失;
50.根据所述第三交叉熵损失和所述分割损失调整所述目标识别模型的参数。
51.根据本公开实施例的第二方面,提供一种图像识别装置,包括:
52.获取单元,被配置为执行获取待识别图像;
53.第一识别单元,被配置为执行识别所述待识别图像对应的场景类别,得到场景类别信息;
54.第一检测单元,被配置为执行检测所述待识别图像中包含的面部区域,识别所述面部区域对应的面部属性信息;
55.第二检测单元,被配置为执行对所述待识别图像进行对象检测,得到所述待识别图像中的对象区域;
56.判断单元,被配置为执行若所述对象区域中存在目标对象的身体区域,且所述身
体区域与所述面部区域对应于同一目标对象,则将所述面部属性信息与所述目标对象关联标记,得到目标对象信息;若所述对象区域中存在非目标对象区域,则识别所述非目标对象区域对应的对象类别,得到非目标对象类别信息;
57.输出单元,被配置为执行输出所述场景类别信息、所述目标对象信息和所述非目标对象类别信息。
58.在一些实施例中,所述第一识别单元还被配置为执行:
59.使用第一场景识别模型识别出所述待识别图像对应的第一场景类别;
60.使用与所述第一场景类别对应的第二场景识别模型识别出所述待识别图像对应的第二场景类别,所述第二场景类别是所述第一场景类别的子类别。
61.在一些实施例中,所述第一检测单元还被配置为执行:
62.使用面部关键点检测模型检测所述待识别图像中包含的面部区域以及面部关键点;
63.使用面部识别模型,根据所述面部关键点识别出所述面部区域对应的面部属性信息。
64.在一些实施例中,所述装置还包括:
65.第二识别单元,被配置为执行使用第一对象识别模型分别识别出所述对象区域对应的第一对象类别,所述第一对象类别包括目标对象类别和非目标对象类别;
66.第三识别单元,被配置为执行若根据所述对象区域分别对应的第一对象类别确定所述对象区域中包括非目标对象区域,则使用第二对象识别模型识别所述非目标对象区域对应的第二对象类别,所述第二对象类别是所述非目标对象类别对应的子类别。
67.在一些实施例中,还包括:训练单元,被配置为执行对不同识别处理所使用的目标识别模型进行训练,不同识别处理所使用的目标识别模型的训练步骤包括:
68.获取与所述目标识别模型对应的训练样本图像以及所述训练样本图像对应的监督向量;
69.获取使用所述训练样本图像预先训练的多个老师模型;
70.以所述目标识别模型作为学生模型,将所述训练样本图像分别输入所述多个老师模型和所述目标识别模型,得到所述多个老师模型分别输出的分类预测向量以及所述目标识别模型输出的分类预测向量;
71.确定所述监督向量与所述多个老师模型分别输出的分类预测向量对应的均值向量;
72.确定所述均值向量与所述目标识别模型输出的分类预测向量之间的第一kl散度损失;
73.将所述均值向量和所述目标识别模型输出的分类预测向量输入预设的判别器模型,根据所述判别器模型的输出结果确定所述判别器模型对应的判别损失;
74.根据所述第一kl散度损失与所述判别损失,调整所述目标识别模型的参数。
75.在一些实施例中,所述训练单元还被配置为执行:
76.对所述训练样本图像进行不同的数据增强处理,得到第一训练样本图像和第二训练样本图像;
77.将所述第一训练样本图像输入所述目标识别模型,得到第一分类预测结果,以及
将所述第二训练样本图像输入所述目标识别模型,得到第二分类预测结果;
78.根据所述第一分类预测结果以及所述第一训练样本图像对应的监督信息,确定第一交叉熵损失;根据所述第二分类预测结果以及所述第二训练样本图像对应的监督信息,确定第二交叉熵损失;
79.确定所述第一训练样本图像与所述第二训练样本图像分别输入到所述目标识别模型后,所述目标识别模型的各同级卷积层之间的特征相似度损失;
80.确定所述第一分类预测结果作为老师模型的输出结果,所述第二分类预测结果作为学生模型的输出结果时的第二kl散度损失,以及,确定所述第一分类预测结果作为学生模型的输出结果,所述第二分类预测结果作为老师模型的输出结果时的第三kl散度损失;
81.根据所述第一交叉熵损失、所述第二交叉熵损失、所述特征相似度损失、所述第二kl散度损失以及所述第三kl散度损失,调整所述目标识别模型的参数,得到最终的目标识别模型。
82.在一些实施例中,所述训练单元还被配置为执行:
83.所述第一分类预测结果作为老师模型的输出结果,所述第二分类预测结果作为学生模型的输出结果时,根据所述第一分类预测结果和所述第二分类预测结果的正确性,确定所述第一分类预测结果对应的第一权重系数;
84.根据所述第一权重系数、所述第一分类预测结果和所述第二分类预测结果确定所述第二kl散度损失;
85.所述第一分类预测结果作为学生模型的输出结果,所述第二分类预测结果作为老师模型的输出结果时,根据所述第一分类预测结果和所述第二分类预测结果的正确性,确定所述第二分类预测结果对应的第二权重系数;
86.根据所述第二权重系数、所述第一分类预测结果和所述第二分类预测结果确定所述第三kl散度损失。
87.在一些实施例中,所述训练单元还被配置为执行:
88.若作为老师模型输出的分类预测结果是错误的,则作为老师模型输出的分类预测结果对应的权重系数为零;
89.若作为老师模型输出的分类预测结果是正确的,且作为学生模型输出的分类预测结果是正确的,则作为老师模型输出的分类预测结果对应的权重系数为一;
90.若作为老师模型输出的分类预测结果是正确的,且作为学生模型输出的分类预测结果是错误的,则作为老师模型输出的分类预测结果对应的权重系数为大于一的设定值。
91.在一些实施例中,所述训练单元还被配置为执行:
92.获取图像分割模型,所述图像分割模型用于区分所述训练样本图像的前景和背景;
93.将所述训练样本图像输入所述目标识别模型,得到所述目标识别模型输出的分类预测向量;
94.根据所述分类预测向量与所述监督向量确定所述目标识别模型对应的第三交叉熵损失;
95.将所述目标识别模型中不同卷积层提取的特征图对应地输入所述图像分割模型中的不同上采样层,以使所述图像分割模型基于不同上采样层生成的特征图进行所述训练
样本图像的分割处理,并根据分割处理结果确定所述图像分割模型对应的分割损失;
96.根据所述第三交叉熵损失和所述分割损失调整所述目标识别模型的参数。
97.根据本公开实施例的第三方面,提供一种电子设备,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行上述图像识别方法。
98.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述图像识别方法。
99.根据本公开实施例的第五方面,提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述图像识别方法。
100.本公开的实施例提供的技术方案至少带来以下有益效果:
101.本公开的实施例可以应用于移动终端,在获取待识别图像后,可以识别出待识别图像对应的场景类别,得到场景类别信息。并且通过检测待识别图像中包含的面部区域,可以识别出面部区域对应的面部属性信息,再通过对待识别图像进行物体检测,可以得到待识别图像中的对象区域,若识别出对象区域中存在目标对象的身体区域,且身体区域与所述面部区域对应于同一目标对象,则将所述面部属性信息与所述目标对象关联标记,得到目标对象信息。若识别出对象区域中存在非目标对象区域,则识别非目标对象区域对应的对象类别,得到非目标对象类别信息。可见,本公开在获取待识别图像后,可以同时获取该待识别图像对应的多种属性信息,具体包括:场景类别信息、目标对象信息和非目标对象类别信息,通用性较好。
102.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
103.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
104.图1是根据一示例性实施例示出的一种图像识别方法的流程图;
105.图2是根据一示例性实施例示出的目标识别模型第一训练的流程图;
106.图3是根据一示例性实施例示出的目标识别模型第二训练的流程图;
107.图4是根据一示例性实施例示出的目标识别模型第三训练的流程图;
108.图5是根据一示例性实施例示出的目标识别模型第一训练的应用示意图;
109.图6是根据一示例性实施例示出的目标识别模型第二训练的应用示意图;
110.图7是根据一示例性实施例示出的目标识别模型第三训练的应用示意图;
111.图8是根据一示例性实施例示出的一种图像识别方法的应用示意图;
112.图9是根据一示例性实施例示出的一种图像识别装置的框图;
113.图10是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
114.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公
开实施例中的技术方案进行清楚、完整地描述。
115.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
116.图像识别是进行自动化场景分析的重要一步,其可以针对图像,自动判断该图像所包含的物体或场景的类别。然而,相关技术在进行图像识别时,一般都是将待识别图像输入至物体或场景相关的深度学习网络模型中,输出识别结果,但是,图像的识别结果往往只有物体或场景等单一属性,例如,针对一张图像,只能输出物体属性,或场景属性,通用性较差。
117.有鉴于此,本公开实施例提供的图像识别方法,在获取待识别图像后,可以识别出待识别图像对应的场景类别,得到场景类别信息。并且通过检测待识别图像中包含的面部区域,可以识别出面部区域对应的面部属性信息,再通过对待识别图像进行物体检测,可以得到待识别图像中的对象区域,若识别出对象区域中存在目标对象的身体区域,且身体区域与所述面部区域对应于同一目标对象,则将所述面部属性信息与所述目标对象关联标记,得到目标对象信息。若识别出对象区域中存在非目标对象区域,则识别非目标对象区域对应的对象类别,得到非目标对象类别信息。可见,本公开在获取待识别图像后,可以同时获取该待识别图像对应的多种属性信息,具体包括:场景类别信息、目标对象信息和非目标对象类别信息,通用性较好。
118.需要说明的是,本公开实施例提供的一种图像识别方法,可以应用于移动终端,该移动终端可以是诸如平板电脑、笔记本电脑、智能手机等终端设备。而为了确保本公开实施例提供的图像识别方法可以顺利应用于移动终端,并且保持在移动终端上具有小存储空间以及实时运行速度,本公开实施例下述不同识别处理所使用的目标识别模型可以是对卷积神经网络训练得到的模型,该卷积神经网络采用深度可分离卷积。具体地,举例来说,该模型可以为mobilenet模型。mobilenet是一种基于深度可分离卷积的模型,深度可分离卷积是一种将标准卷积分解成深度卷积以及一个1x1的卷积即逐点卷积。对于mobilenet而言,深度卷积针对每个单个输入通道应用单个滤波器进行滤波,然后逐点卷积应用1x1的卷积操作来结合所有深度卷积得到的输出。而标准卷积一步即对所有的输入进行结合得到新的一系列输出。深度可分离卷积将其分成了两步,针对每个单独层进行滤波然后下一步即结合,这种分解能够有效的大量减少计算量以及模型的大小。
119.图1为本公开实施例提供的一种图像识别方法的流程图,应用于移动终端,如图1所示,该方法包括:
120.在步骤s11中,获取待识别图像。
121.在本公开实施例中,待识别图像可以是对某人物、物体、景色进行拍照而得到的图片,也可以是从网络上搜索得到的图片,还可以是对某视频进行分帧处理得到的多帧图像,在此不作限定。
122.在步骤s12中,识别待识别图像对应的场景类别,得到场景类别信息。
123.在本公开实施例中,为了识别出待识别图像对应的场景类别,使用了场景识别模型,具体步骤如下:
124.步骤s1211、使用第一场景识别模型识别出待识别图像对应的第一场景类别。
125.步骤s1212、使用与第一场景类别对应的第二场景识别模型识别出待识别图像对应的第二场景类别,第二场景类别是第一场景类别的子类别。
126.在实际应用中,第一场景类别可以包括室内、室外等,而第二场景类别则是第一场景类别的子类别,具体地,若第一场景类别的识别结果为室内,则第二场景类别此时可以为教室、办公室、卧室等。若第一场景类别的识别结果为室外,则第二场景类别此时可以为自然景色、建筑等。
127.通过使用第一场景识别模型和第二场景识别模型对待识别图像进行二级识别,可以准确地识别出待识别图像对应的场景类别。
128.在步骤s13中,检测待识别图像中包含的面部区域,识别面部区域对应的面部属性信息。
129.在本公开实施例中,为了准确检测出待识别图像中包含的面部区域,并识别出面部区域对应的面部属性信息,使用了面部关键点检测模型和面部识别模型,具体步骤如下:
130.步骤s1311、使用面部关键点检测模型检测待识别图像中包含的面部区域以及面部关键点。
131.步骤s1312、使用面部识别模型,根据面部关键点识别出面部区域对应的面部属性信息。
132.在实际应用中,面部关键点检测模型用于检测出当前输入图像中包含的面部位置及面部关键点,并将该面部位置及面部关键点作为面部识别模型的输入,输出预测的面部区域对应的面部属性信息。其中,面部关键点包括眼睛、鼻子、嘴巴等,而面部属性信息包括:性别、年龄等。
133.在步骤s14中,对待识别图像进行对象检测,得到待识别图像中的对象区域。
134.在本公开实施例中,对象检测即为物体检测。在实际应用中,可以使用目标检测模型对待识别图像进行物体检测,以得到待识别图像中包含的各物体区域。具体地,可以基于ssd(single shot multibox detector)算法对待识别图像进行物体检测,而为了确保本公开实施例能够顺利应用于移动终端,该物体检测模型也可以为mobilenet模型。
135.具体实施时,举例来说,将待识别图像经过预处理后变为像素矩阵的形式,然后输入到目标检测模型中,在该目标检测模型的中间卷积层中提取n(n可以为4、5、6等)个不同尺度的特征图,并对n个特征图进行特征图求和,然后将求和结果输入senet结构的边框预测网络(此边框预测网络只有一个简单的卷积层,而senet结构可以提高边框预测网络的预测精度),输出四个坐标值(中心x偏移值、中心y偏移值、width偏移值,height偏移值),即可得到物体区域对应的框体的四点坐标。同理,将求和结果输入se结构的分类网络(二分类模型),输出0或1(0表示不是物体,1表示是物体),即可得到物体区域内是否存在物体。
136.在步骤s15中,若对象区域中存在目标对象的身体区域,且身体区域与面部区域对应于同一目标对象,则将面部属性信息与目标对象关联标记,得到目标对象信息;若对象区域中存在非目标对象区域,则识别非目标对象区域对应的对象类别,得到非目标对象类别信息。
137.在步骤s16中,输出场景类别信息、目标对象信息和非目标对象类别信息。
138.为了准确得到对象区域对应的具体类别,在得到待识别图像中的对象区域之后,本公开实施例提供的方法还包括:
139.使用第一对象识别模型分别识别出对象区域对应的第一对象类别,第一对象类别包括目标对象类别和非目标对象类别;
140.若对象区域中存在非目标对象区域,则识别非目标对象区域对应的对象类别,包括:
141.若根据对象区域分别对应的第一对象类别确定对象区域中包括非目标对象区域,则使用第二对象识别模型识别非目标对象区域对应的第二对象类别,第二对象类别是非目标对象类别对应的子类别。
142.实际应用中,在得到待识别图像中包含的各物体区域之后,会通过第一对象识别模型识别出各物体区域是目标对象类别还是非目标对象类别(如人体类别还是非人体类别)。
143.若识别出对象区域中包括目标对象的身体区域,且身体区域与面部区域对应于同一目标对象,则将面部属性信息与目标对象关联标记,以进行面部与身体区域的同一性匹配,将面部属性识别结果赋值给该目标对象,即找出待识别图像中的完整的人,输出目标对象信息。
144.若是非目标对象类别,则通过第二对象识别模型识别出该物体区域的具体物体类别。举例来说,将一张图像输入至第一对象识别模型,输出结构为目标对象(人体)类别,则直接结束。若输出结果为动物、数码产品等非目标对象类别,则将该图像继续输入至第二对象识别模型。若第一对象识别模型输出的结果为动物,则通过第二对象识别模型可以输出猫、狗、天鹅等动物的具体类别,若之前输出的结果为数码产品,则通过第二对象识别模型可以输出手机、平板电脑等,其它类别在此不一一列举。
145.此处需要说明的是,若同一张图像在分别输入到了第二对象识别模型和第二场景识别模型,且均产生了识别结果,则可以根据预设分类阈值确定其具体的输出类别。举例来说,当一张图像输入到第二场景识别模型后,输出的识别结果为教室,而在将该图像输入到第二对象识别模型后,输出的识别结果为桌子,则判断第二对象识别模型输出的识别结果阈值是否大于预设分类阈值,若大于,则输出的识别结果为桌子,忽略场景识别结果。否则,输出的识别结果为教室,忽略物体识别结果。为了便于对该阈值进行理解,下面进一步举例对上述情况进行说明:如果一个图像显示的是教室内的一张桌子,但是这个桌子已经占了该图像整个像素区域的80%,那么这时候再输出场景识别结果(教室)显然是不合理的,因此,此时忽略场景识别结果,直接输出物体识别结果(桌子)即可。
146.下面介绍一下上述不同识别处理所使用的目标识别模型的训练步骤,如图2和图5所示,具体如下:
147.在步骤s21中,获取与目标识别模型对应的训练样本图像以及训练样本图像对应的监督向量。
148.在本公开实施例中,目标识别模型可以为上述第一场景识别模型、第二场景识别模型、面部识别模型、第一对象识别模型、第二对象识别模型等。训练样本图像为待待识别图像中的物体区域图像,其可以为具有二级标签的样本图像。具体地,由于识别类别体系较
大,如果直接标记图像中目标的二级类别,难以找到对应符合要求的类别。因此,本公开进行两步标注:
149.首先,对图像中的目标进行一级标注。例如,该图像为一只猫的照片,那么,此处对图像中的猫的标注为“动物”,而具体的标注方式可以为分类标注和标框标注。
150.随后,根据一级标注结果进行二级标注。例如,如果一级标注结果为“动物”,则此时的二级标注结果则为“猫”。同时,在进行二级标注的过程中,也可以进一步检查出一级标注是否存在标注错误。
151.在步骤s22中,获取使用训练样本图像预先训练的多个老师模型。
152.在本公开实施例中,多个老师模型的训练过程与目标识别模型的训练过程相同,也是基于训练样本图像以及训练样本图像对应的监督向量进行训练。
153.在步骤s23中,以目标识别模型作为学生模型,将训练样本图像分别输入多个老师模型和目标识别模型,得到多个老师模型分别输出的分类预测向量以及目标识别模型输出的分类预测向量。
154.在步骤s24中,确定监督向量与多个老师模型分别输出的分类预测向量对应的均值向量。
155.对于监督向量,举例来说,假设现在需要识别猫、狗、蛇三个类别,若当前图像是狗,则狗的分类标签为1,监督向量即为010;若当前图像是猫,则猫的分类标签为1,监督向量即为100;若当前图像是蛇,则蛇的分类标签为1,监督向量即为001。在确定监督向量后,将监督向量与多个老师模型分别输出的分类预测向量求和,再取均值,即可得到该均值向量。
156.在步骤s25中,确定均值向量与目标识别模型输出的分类预测向量之间的第一kl散度损失。
157.应理解,老师模型用于指导学生模型的训练,基于老师模型得到的均值向量与基于学生模型(目标识别模型)得到的分类预测向量之间会产生损失,即本公开实施例中的第一kl散度损失。
158.在步骤s26中,将均值向量和目标识别模型输出的分类预测向量输入预设的判别器模型,根据判别器模型的输出结果确定判别器模型对应的判别损失。
159.在本公开实施例中,判别器的作用是区分老师模型和学生模型输出的分类预测向量,将均值向量和目标识别模型输出的分类预测向量输入到判别器模型后,判别器模型会将均值向量和目标识别模型输出的分类预测向量与一个预先设定好的阈值进行比较,高于这个阈值,则认定该向量是老师模型输出的,低于这个阈值,则认定该向量是学生模型输出的。具体地,可以用标签0和1来表示老师模型和学生模型,输出1表示老师模型,输出0表示学生模型。根据该输出结果即可确定判别器模型对应的判别损失,通过确定判别损失,可以使老师模型和学生模型的输出具有明显的可分性,保证了后续学生模型训练的顺利进行。
160.在步骤s27中,根据第一kl散度损失与判别损失,调整目标识别模型的参数。
161.在获取第一kl散度损失与判别损失后,即可根据第一kl散度损失与判别损失更新目标识别模型的参数,从而完成对目标识别模型的训练。
162.为了进一步实现对目标识别模型的训练优化,如图3和图6所示,目标识别模型的训练步骤还包括:
163.在步骤s31中,获取图像分割模型,图像分割模型用于区分训练样本图像的前景和背景。
164.在步骤s32中,将训练样本图像输入目标识别模型,得到目标识别模型输出的分类预测向量。
165.在步骤s33中,根据分类预测向量与监督向量确定目标识别模型对应的第三交叉熵损失。
166.在步骤s34中,将目标识别模型中不同卷积层提取的特征图对应地输入图像分割模型中的不同上采样层,以使图像分割模型基于不同上采样层生成的特征图进行训练样本图像的分割处理,并根据分割处理结果确定图像分割模型对应的分割损失。
167.在步骤s35中,根据第三交叉熵损失和分割损失调整目标识别模型的参数。
168.在本公开实施例中,图像分割模型的本质作用是二分类,用于区分训练样本图像的前景和背景,其输出决定了其对应的损失,再确定其对应的损失后,与目标识别模型通过分类预测向量与监督向量训练得到的第三交叉熵损失一起进行梯度回传,以更新目标识别模型中的参数,实现对目标识别模型的训练。具体地,将目标识别模型中不同卷积层(参见图6中的conv1-conv5)提取的特征图对应地输入图像分割模型中的不同上采样层(参见图6中的upconv2-upconv4),使图像分割模型基于不同上采样层生成的特征图进行训练样本图像的分割处理,分割出对于分类预测更为重要的对应于前景对象的特征。综上,通过设置分割模型,可以帮助学生模型(目标识别模型)获得对分类预测结果更为重要的对应于前景对象的特征,而弱化掉背景的影响。
169.而为了在完成对目标识别模型的训练优化后能够顺利得到最终的目标识别模型,如图4和图7所示,该目标识别模型的训练步骤还包括:
170.在步骤s41中,对训练样本图像进行不同的数据增强处理,得到第一训练样本图像和第二训练样本图像。
171.在本公开实施例中,数据增强处理指的是对训练样本图像进行旋转、平移、颜色变化等处理。
172.在步骤s42中,将第一训练样本图像输入目标识别模型,得到第一分类预测结果,以及将第二训练样本图像输入目标识别模型,得到第二分类预测结果。
173.在实际应用中,参见图7,在获取第一训练样本图像和第二训练样本图像后,会将第一训练样本图像和第二训练样本图像先后输入到同一目标识别模型中,以分别得到第一分类预测结果和第二分类预测结果。需要说明的是,图7中示出了两个目标识别模型只是为了便于理解,实际上第一训练样本图像和第二训练样本图像是先后输入到同一目标识别模型中。
174.在步骤s43中,根据第一分类预测结果以及第一训练样本图像对应的监督信息,确定第一交叉熵损失,即图7中第一训练样本图像最终输出的ce损失。根据第二分类预测结果以及第二训练样本图像对应的监督信息,确定第二交叉熵损失,即图7中第二训练样本图像最终输出的ce损失。
175.应理解,第一分类预测结果与第一训练样本图像对应的监督信息之间会存在一定的损失,即本公开实施例中的第一交叉熵损失,同样,第二分类预测结果与第二训练样本图像对应的监督信息也会存在一定的损失,即本公开实施例中的第二交叉熵损失。该第一交
叉熵损失和第二交叉熵损失的计算公式如下:
[0176][0177]
其中,loss
ce
为第一交叉熵损失或第二交叉熵损失,为第一分类预测结果或第二分类预测结果,yi为第一训练样本图像对应的监督信息或第二训练样本图像对应的监督信息。
[0178]
在步骤s44中,确定第一训练样本图像与第二训练样本图像分别输入到目标识别模型后目标识别模型的各同级卷积层之间的特征相似度损失。目标识别模型中的卷积层可参见图7中的conv1-conv5。
[0179]
在实际应用中,该目标识别模型的各同级卷积层之间的特征相似度损失的计算公式如下:
[0180][0181]
其中,loss
ssim
为特征相似度损失,x和y表示两个同级卷积层对应的特征值,σ为卷积层对应的特征均值,μ为卷积层对应的特征标准差。
[0182]
在步骤s45中,确定第一分类预测结果作为老师模型的输出结果,第二分类预测结果作为学生模型的输出结果时的第二kl散度损失,即图7中的klloss(outa,outb),以及,确定第一分类预测结果作为学生模型的输出结果,第二分类预测结果作为老师模型的输出结果时的第三kl散度损失,即图7中的klloss(outb,outa)。
[0183]
在本公开实施例中,第一训练样本图像和第二训练样本图像输入的目标识别模型为学生模型,只是在训练的时候,会将第一分类预测结果视为老师模型的输出结果,第二分类预测结果视为学生模型的输出结果,以得到第二kl散度损失,或者将第一分类预测结果视为学生模型的输出结果,而将第二分类预测结果视为老师模型的输出结果,以得到第三kl散度损失。
[0184]
第二kl散度损失和第三kl散度损失的具体计算过程如下:
[0185]
当第一分类预测结果作为老师模型的输出结果,第二分类预测结果作为学生模型的输出结果时,根据第一分类预测结果和第二分类预测结果的正确性,确定第一分类预测结果对应的第一权重系数;
[0186]
根据第一权重系数、第一分类预测结果和第二分类预测结果确定第二kl散度损失。
[0187]
当第一分类预测结果作为学生模型的输出结果,第二分类预测结果作为老师模型的输出结果时,根据第一分类预测结果和第二分类预测结果的正确性,确定第二分类预测结果对应的第二权重系数;
[0188]
根据第二权重系数、第一分类预测结果和第二分类预测结果确定第三kl散度损失。
[0189]
具体地,第二kl散度损失或第三kl散度损失的计算公式如下:
[0190][0191]
其中,p(xi)为老师模型的输出结果,q(xi)为学生模型的输出结果,weight为权重系数。
[0192]
上述第一权重系数和第二权重系数的确定过程具体如下:
[0193]
若作为老师模型输出的分类预测结果是错误的,则作为老师模型输出的分类预测结果对应的权重系数为零;
[0194]
若作为老师模型输出的分类预测结果是正确的,且作为学生模型输出的分类预测结果是正确的,则作为老师模型输出的分类预测结果对应的权重系数为一;
[0195]
若作为老师模型输出的分类预测结果是正确的,且作为学生模型输出的分类预测结果是错误的,则作为老师模型输出的分类预测结果对应的权重系数为大于一的设定值。
[0196]
其中,该大于一的设定值可以为1.5、2等,在此不作限定。
[0197]
在步骤s46中,根据第一交叉熵损失、第二交叉熵损失、特征相似度损失、第二kl散度损失以及第三kl散度损失,调整目标识别模型的参数,得到最终的目标识别模型。
[0198]
实际应用中,在获取上述第一交叉熵损失、第二交叉熵损失、特征相似度损失、第二kl散度损失以及第三kl散度损失后,即可根据第一交叉熵损失、第二交叉熵损失、特征相似度损失、第二kl散度损失以及第三kl散度损失更新目标识别模型的参数,从而完成对目标识别模型的训练,得到最终的目标识别模型。需要说明的是,若存在n对训练样本,则待所有训练样本测试完成后,得到总的kl散度损失(由n个kl
p-q
和n个kl
q-p
加和得到)、和总的特征相似度损失和总的交叉熵损失,再将总的kl散度损失、和总的特征相似度损失和总的交叉熵损失进行加和、梯度回传即可。
[0199]
下面根据一具体应用场景对本公开的方案进行示例性说明:
[0200]
如图8所示,分别向面部关键点检测模型、物体检测模型和第一场景识别模型输入待识别图像。
[0201]
其中,面部关键点检测模型会输出待识别图像中包含的面部区域以及面部关键点,通过面部识别模型,根据面部关键点识别出面部区域对应的面部属性信息。
[0202]
物体检测模型会输出待识别图像中包含的各物体区域,由于一般的物体检测模型检测精度不高,因此,此处将该待识别图像输入至二分类器中,进一步确定待识别图像中包含的各物体区域中是否真的存在物体,若不存在,则物体识别作业结束。若存在,则提取待识别图像中的物体区域(即抠图),随后,将提取出来的物体区域输入至第一对象识别模型进行一级识别,输出第一物体类别,即该物体为人体类别还是非人体类别,若为人体类别,则将该物体区域(此时即为人体区域)与面部关键点模型检测出的面部区域进行匹配,若为同一人,则将该面部区域对应的面部属性信息与人体区域关联标记。若为非人体类别,则将该提取出来的物体区域图像输入至第二对象识别模型进行二级识别,输出该物体区域(此时即为非人体区域)对应的第二物体类别,此第二物体类别为非人体类别的子类别。
[0203]
第一场景识别模型会输出待识别图像对应的第一场景类别,再将该待识别图像输入与第一场景识别模型对应的第二场景识别模型中,输出第二场景类别,此第二场景类别是第一场景类别的子类别。
[0204]
综上所述,本公开在获取待识别图像后,可以识别出待识别图像对应的场景类别,得到场景类别信息。并且通过检测待识别图像中包含的面部区域,可以识别出面部区域对应的面部属性信息,再通过对待识别图像进行物体检测,可以得到待识别图像中的对象区域,若识别出对象区域中存在目标对象的身体区域,且身体区域与所述面部区域对应于同一目标对象,则将所述面部属性信息与所述目标对象关联标记,得到目标对象信息。若识别出对象区域中存在非目标对象区域,则识别非目标对象区域对应的对象类别,得到非目标对象类别信息。可见,本公开在获取待识别图像后,可以同时获取该待识别图像对应的多种属性信息,具体包括:场景类别信息、目标对象信息和非目标对象类别信息,通用性较好,通用性较好。并且,本公开还可以应用于移动终端,适用性广,对于数据处理量较大的大公司而言,解决了识别图像需要上传到服务端,侵犯用户隐私的问题;对于普通用户而言,能够快速调用,无需漫长等待。
[0205]
图9是根据一示例性实施例示出的一种图像识别装置框图。参照图9,该装置包括获取单元901、第一识别单元902、第一检测单元903、第二检测单元904、判断单元905和输出单元906。
[0206]
获取单元901被配置为执行获取待识别图像;
[0207]
第一识别单元902被配置为执行识别待识别图像对应的场景类别,得到场景类别信息;
[0208]
第一检测单元903被配置为执行检测待识别图像中包含的面部区域,识别面部区域对应的面部属性信息;
[0209]
第二检测单元904被配置为执行对待识别图像进行对象检测,得到待识别图像中的对象区域;
[0210]
判断单元905被配置为执行若对象区域中存在目标对象的身体区域,且身体区域与面部区域对应于同一目标对象,则将面部属性信息与目标对象关联标记,得到目标对象信息;若对象区域中存在非目标对象区域,则识别非目标对象区域对应的对象类别,得到非目标对象类别信息;
[0211]
输出单元906被配置为执行输出场景类别信息、目标对象信息和非目标对象类别信息。
[0212]
在本公开的一种示例性实施例中,第一识别单元902还被配置为执行:
[0213]
使用第一场景识别模型识别出待识别图像对应的第一场景类别;
[0214]
使用与第一场景类别对应的第二场景识别模型识别出待识别图像对应的第二场景类别,第二场景类别是第一场景类别的子类别。
[0215]
在本公开的一种示例性实施例中,第一检测单元903还被配置为执行:
[0216]
使用面部关键点检测模型检测待识别图像中包含的面部区域以及面部关键点;
[0217]
使用面部识别模型,根据面部关键点识别出面部区域对应的面部属性信息。
[0218]
在本公开的一种示例性实施例中,该装置还包括:
[0219]
第二识别单元,被配置为执行使用第一对象识别模型分别识别出对象区域对应的第一对象类别,第一对象类别包括目标对象类别和非目标对象类别;
[0220]
第三识别单元,被配置为执行若根据对象区域分别对应的第一对象类别确定对象区域中包括非目标对象区域,则使用第二对象识别模型识别非目标对象区域对应的第二对
象类别,第二对象类别是非目标对象类别对应的子类别。
[0221]
在本公开的一种示例性实施例中,该装置还包括:训练单元,被配置为执行对不同识别处理所使用的目标识别模型进行训练,不同识别处理所使用的目标识别模型的训练步骤包括:
[0222]
获取与目标识别模型对应的训练样本图像以及训练样本图像对应的监督向量;
[0223]
获取使用训练样本图像预先训练的多个老师模型;
[0224]
以目标识别模型作为学生模型,将训练样本图像分别输入多个老师模型和目标识别模型,得到多个老师模型分别输出的分类预测向量以及目标识别模型输出的分类预测向量;
[0225]
确定监督向量与多个老师模型分别输出的分类预测向量对应的均值向量;
[0226]
确定均值向量与目标识别模型输出的分类预测向量之间的第一kl散度损失;
[0227]
将均值向量和目标识别模型输出的分类预测向量输入预设的判别器模型,根据判别器模型的输出结果确定判别器模型对应的判别损失;
[0228]
根据第一kl散度损失与判别损失,调整目标识别模型的参数。
[0229]
在本公开的一种示例性实施例中,训练单元还被配置为执行:
[0230]
对训练样本图像进行不同的数据增强处理,得到第一训练样本图像和第二训练样本图像;
[0231]
将第一训练样本图像输入目标识别模型,得到第一分类预测结果,以及将第二训练样本图像输入目标识别模型,得到第二分类预测结果;
[0232]
根据第一分类预测结果以及第一训练样本图像对应的监督信息,确定第一交叉熵损失;根据第二分类预测结果以及第二训练样本图像对应的监督信息,确定第二交叉熵损失;
[0233]
确定第一训练样本图像与第二训练样本图像分别输入到目标识别模型后目标识别模型的各同级卷积层之间的特征相似度损失;
[0234]
确定第一分类预测结果作为老师模型的输出结果,第二分类预测结果作为学生模型的输出结果时的第二kl散度损失,以及,确定第一分类预测结果作为学生模型的输出结果,第二分类预测结果作为老师模型的输出结果时的第三kl散度损失;
[0235]
根据第一交叉熵损失、第二交叉熵损失、特征相似度损失、第二kl散度损失以及第三kl散度损失,调整目标识别模型的参数,得到最终的目标识别模型。
[0236]
在本公开的一种示例性实施例中,训练单元还被配置为执行:
[0237]
第一分类预测结果作为老师模型的输出结果,第二分类预测结果作为学生模型的输出结果时,根据第一分类预测结果和第二分类预测结果的正确性,确定第一分类预测结果对应的第一权重系数;
[0238]
根据第一权重系数、第一分类预测结果和第二分类预测结果确定第二kl散度损失;
[0239]
第一分类预测结果作为学生模型的输出结果,第二分类预测结果作为老师模型的输出结果时,根据第一分类预测结果和第二分类预测结果的正确性,确定第二分类预测结果对应的第二权重系数;
[0240]
根据第二权重系数、第一分类预测结果和第二分类预测结果确定第三kl散度损
失。
[0241]
在本公开的一种示例性实施例中,训练单元还被配置为执行:
[0242]
若作为老师模型输出的分类预测结果是错误的,则作为老师模型输出的分类预测结果对应的权重系数为零;
[0243]
若作为老师模型输出的分类预测结果是正确的,且作为学生模型输出的分类预测结果是正确的,则作为老师模型输出的分类预测结果对应的权重系数为一;
[0244]
若作为老师模型输出的分类预测结果是正确的,且作为学生模型输出的分类预测结果是错误的,则作为老师模型输出的分类预测结果对应的权重系数为大于一的设定值。
[0245]
在本公开的一种示例性实施例中,训练单元还被配置为执行:
[0246]
获取图像分割模型,图像分割模型用于区分训练样本图像的前景和背景;
[0247]
将训练样本图像输入目标识别模型,得到目标识别模型输出的分类预测向量;
[0248]
根据分类预测向量与监督向量确定目标识别模型对应的第三交叉熵损失;
[0249]
将目标识别模型中不同卷积层提取的特征图对应地输入图像分割模型中的不同上采样层,以使图像分割模型基于不同上采样层生成的特征图进行训练样本图像的分割处理,并根据分割处理结果确定图像分割模型对应的分割损失;
[0250]
根据第三交叉熵损失和分割损失调整目标识别模型的参数。
[0251]
在本公开的一种示例性实施例中,上述图9所示图像识别装置的结构可实现为一电子设备,如图10所示,该电子设备可以包括:处理器1001、存储器1002、显示器1003;其中,存储器1002上存储有可执行代码,当可执行代码被处理器1001执行时,使处理器1001执行上述图像识别方法。其中,处理器1001还可以执行前述相关实施例提供的图像识别方法中的其他相关步骤,在此不赘述。可选的,存储介质可以是非临时性存储介质,例如,非临时性存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
[0252]
在示例性实施例中,本公开还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器,上述指令可由电子设备的处理器1001执行以完成上述图像识别方法。可选的,存储介质可以是非临时性存储介质,例如,非临时性存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。本公开还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器1001执行时实现上述图像识别方法。
[0253]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0254]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。




上一篇:Nature:人工智能助力时间分辨冷冻电镜,北大毛
下一篇:工程之家