一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图像处理方法和图像处理装置与流程

2021-10-29 21:48:00 来源:中国专利 TAG:图像处理 人工智能 装置 计算机 方法


1.本技术涉及人工智能领域中的计算机图像处理技术,尤其涉及一种图像处理方法和图像处理装置。


背景技术:

2.人脸检索被广泛应用于安防监控或门禁闸机等场景,由于在实际应用场景下,图像采集设备经常采集到正脸缺失的图像,例如模糊图像、有遮挡图像,大角度图像如侧脸图像等,正脸缺失的图像给识别算法或肉眼辨别均造成了困难,因为肉眼不容易辨别这些图像的人脸信息,而识别算法对同一人的正脸缺失的图像进行识别的相似度较低。
3.现有技术中,基于预构建的神经网络模型从正脸缺失的图像中提取一维特征向量,即人脸特征,通过该人脸特征恢复遮挡或重建无遮挡的正脸图像。
4.现有技术中通过人脸特征进行正脸图像的重建,相较原图像信息损失较多,据此重建得到的图像质量较低,不能通过肉眼识别,或通过识别算法识别辨别的匹配度较低。


技术实现要素:

5.本技术实施例提供了一种图像处理方法,用于基于正脸缺失的图像生成无遮挡的正脸图像,生成的无遮挡的正脸图像用于肉眼识别或识别算法辨别身份信息,可以提高人脸识别成功率。
6.本技术实施例的第一方面提供了一种图像处理方法,包括:获取人脸图像的人脸特征和关键点的位置信息,所述人脸特征包括所述人脸图像中人脸信息的特征向量,所述关键点包括所述人脸图像中表示人脸位置的特征点;根据所述人脸特征和所述关键点的位置信息,通过预训练的第一神经网络模型得到所述人脸图像对应的无遮挡的正脸图像。
7.在通过人脸图像进行身份识别的场景中,通常由图像采集装置拍摄人脸图像,常见的图像采集装置例如监控摄像头,采集到的人脸图像通常不包含完整的正脸信息,这给后续无论是通过人脸图像进行肉眼辨别,或者通过人脸识别系统中的人脸识别算法进行识别,均带来较大困难,本技术实施例提供的图像处理方法,对于图像采集装置获取的人脸图像,图像处理装置获取该人脸图像的人脸特征以及该人脸图像的关键点的位置信息,通过预训练得到的第一神经网络模型融合该人脸特征和关键点的位置信息,得到该人脸图像对应的无遮挡的正脸图像,根据该生成的无遮挡的正脸图像进行肉眼识别或识别算法辨别身份信息,均可以提高人脸识别成功率。
8.可选地,所述关键点的位置信息为五维的特征图,所述五维的特征图中每个维度分别代表人脸的一个关键点。可选地,所述人脸图像尺寸为224*224,所述五维的特征图尺寸为5*224*224。所述第一神经网络模型为生成器模型。
9.在第一方面的一种可能的实现方式中,所述第一神经网络模型包括一个或多个反卷积层,可选地,所述第一神经网络模型包括多个反卷积层。
10.本技术实施例提供的图像处理方法,第一神经网络模型包括反卷积层,由于反卷
积层可以扩大输入,由此,可以根据较少的数据量(人脸特征和关键点的位置信息)恢复较多的数据(重建的人脸图像)。
11.在第一方面的一种可能的实现方式中,所述关键点的位置信息包括关键点特征图;根据所述人脸特征和所述关键点的位置信息,通过预训练的第一神经网络模型获取所述人脸图像对应的无遮挡的正脸图像包括:将所述人脸特征输入第一反卷积层,以得到第一特征图;融合所述第一特征和所述关键点特征图,以得到第二特征图;将所述第二特征图输入第二反卷积层,以得到所述无遮挡的正脸图像。可选地,所述第一反卷积层包括一个或多个反卷积层。可选地,所述第二反卷积层包括一个或多个反卷积层。可选地,融合所述第一特征和所述关键点特征图包括:将所述第一特征和所述关键点特征图通过对位乘法融合。可选地,所述第一特征图为尺寸为8*56*56的特征图,所述第二特征图为尺寸为40*56*56的特征图,所述无遮挡的正脸图像尺寸为3*112*112。
12.本技术实施例提供的图像处理方法,提供了融合人脸特征和关键点的位置信息的一种具体方式,关键点的位置信息通常用于人脸图像中人脸区域定位,本技术实施例中通过将关键点的位置信息与人脸特征进行融合,即先通过多个反卷积层处理人脸特征,再通过对位相乘融合人脸特征和关键点的位置信息,最后通过多个反卷积层重建得到无遮挡的正脸图像。可以增加重建的人脸图像中的身份信息,提高无遮挡正脸图像的人脸识别效果。
13.在第一方面的一种可能的实现方式中,所述第一神经网络模型由第一初始网络模型训练后得到,所述方法还包括:将第一训练样本的第一人脸特征和第一关键点的位置信息输入所述第一初始网络模型中训练,以得到第一损失;根据所述第一损失更新所述第一初始网络模型中的权重参数,以得到所述第一神经网络模型。
14.本技术实施例提供的图像处理方法,提供了第一神经网络模型的一种具体训练方法,即图像处理装置通过第一训练样本的人脸特征和关键点的位置信息进行训练,根据获得的损失更新第一初始网络模型的权重参数。
15.在第一方面的一种可能的实现方式中,所述第一损失为第一特征与第二特征之间的差异,所述第一特征为从所述第一训练样本对应的正脸图像中提取的人脸特征,所述第二特征为从第一生成图像中提取的人脸特征,所述第一生成图像为将所述第一训练样本输入所述第一初始网络模型得到的无遮挡的正脸图像。可选地,所述第一损失为第一特征与第二特征之间的差异为所述第一特征与所述第二特征之间的均方误差。所述第一特征与所述第二特征之间的均方误差为:其中f为第一特征的总长度,第一特征的总长度与第二特征的总长度相等,f为所述f中的第f个数值,e
f
代表所述第一特征中第f个数的数值,z
f
代表所述第二特征中第f个数的数值。
16.本技术实施例提供的图像处理方法,提供了第一神经网络模型的具体训练方法,损失函数包括第一损失为第一特征与第二特征之间的差异,具体可以通过均方误差来度量特征之间的差异,通过设置该损失函数,可以使得生成图像提取的第二特征与训练样本对应的正脸图像(即真值)提取的第一特征相似,由此训练得到的第一神经网络模型生成的无遮挡的正脸图像可以保留更多的身份信息,以提高人脸识别的成功率。
17.在第一方面的一种可能的实现方式中,所述第一损失包括第一特征与第二特征之间的差异,以及所述第一训练样本对应的正脸图像与第一生成图像之间的差异。可选地,第
一训练样本对应的正脸图像与第一生成图像之间的差异为所述第一训练样本对应的正脸图像中第一位置的像素值,与所述第一生成图像中第二位置的像素值之间的均方误差,所述第一生成图像中第二位置对应于所述第一训练样本对应的正脸图像中第一位置。
18.本技术实施例提供的图像处理方法,提供了第一神经网络模型的另一种具体训练方法,损失函数还包括第一训练样本对应的正脸图像与第一生成图像之间的差异,可以使得生成图像与训练样本对应的正脸图像相似,由此训练得到的第一神经网络模型生成的无遮挡的正脸图像可以提高肉眼识别的成功率。
19.在第一方面的一种可能的实现方式中,所述第一损失包括第一特征与第二特征之间的差异、第一训练样本对应的正脸图像与第一生成图像之间的差异,以及判断损失,所述判断损失为判别器将所述第一生成图像判别为假的概率,所述判别器用于将真实图像判别为真,将生成的图像判别为假。所述判断损失为log(1-d(g)),其中,d为判别器,g为所述第一生成图像,d(g)是介于0到1之间的小数,值为1代表判定所述第一生成图像为真,值为0代表判定所述第一生成图像为假。
20.本技术实施例提供的图像处理方法,提供了第一神经网络模型的又一种具体训练方法,损失函数还包括判别器的损失,判别器用于判断输入图像是否为生成图像,如果是生成图像,则会输出假,如果是真实图像则会输出真,本技术实施例中,判断损失为判别器将所述第一生成图像判别为假的概率,即希望生成图被判别器判别为真图,由此训练得到的第一神经网络模型生成的无遮挡的正脸图像真实度高、图像效果好,可以提高肉眼以及人脸识别算法识别的成功率。
21.在第一方面的一种可能的实现方式中,所述获取人脸图像的人脸特征和关键点的位置信息包括:将所述人脸图像输入第二神经网络模型中得到所述人脸特征;将所述人脸图像输入第三神经网络模型中得到所述关键点的位置信息。
22.本技术实施例提供的图像处理方法,还可以直接基于人脸图像获取无遮挡的正脸图像,增加了方案实现的多样性。
23.在第一方面的一种可能的实现方式中,所述第二神经网络模型包括特征抽取器或编码器,所述特征抽取器为根据输入的人脸图像输出人脸特征的神经网络,所述编码器为自编码器中的部分。
24.本技术实施例提供的图像处理方法,提供了提取人脸特征的两种具体方式,通过特征抽取器得到特征向量,或者编码器提取潜在空间表征,通过编码器得到人脸特征的计算量较少,但潜在空间表征包含的身份信息也较少。实际应用场景中可以根据需要选取提取人脸特征的具体方式,提升了方案实现的灵活性。
25.在第一方面的一种可能的实现方式中,所述第三神经网络模型包括关键点模型,所述关键点模型,为根据输入的人脸图像输出关键点的位置信息的神经网络模型。
26.本技术实施例提供的图像处理方法,提供了提取关键点的位置信息的一种具体方式,即通过关键点模型提取。关键点模型提取的关键点的位置信息,具体为每个关键点的特征图,特征图用于指示图像中每个像素位置为关键点的概率,关键点的位置信息通常被用于进行图像中人脸区域的定位,本技术中将关键点的位置信息与人脸特征融合,可以增加生成的无遮挡的正脸图像中包含的身份信息,提高人脸识别的成功率。
27.在第一方面的一种可能的实现方式中,所述无遮挡的正脸图像用于肉眼识别,或
用于输入人脸识别系统实现人脸识别。
28.本技术实施例提供的图像处理方法,提供了图像处理装置生产的无遮挡的正脸图像的两种具体应用场景。
29.本技术实施例第二方面提供了一种图像处理装置,包括:获取单元,用于获取人脸图像的人脸特征和关键点的位置信息,所述人脸特征包括所述人脸图像中人脸信息的特征向量,所述关键点包括所述人脸图像中表示人脸位置的特征点;
30.处理单元,用于根据所述人脸特征和所述关键点的位置信息,通过预训练的第一神经网络模型得到所述人脸图像对应的无遮挡的正脸图像。
31.在第二方面的一种可能的实现方式中,所述第一神经网络模型包括一个或多个反卷积层。可选地,所述第一神经网络模型包括多个反卷积层。
32.在第二方面的一种可能的实现方式中,所述关键点的位置信息包括关键点特征图;所述处理单元具体用于:将所述人脸特征输入第一反卷积层,以得到第一特征图;融合所述第一特征和所述关键点特征图,以得到第二特征图;将所述第二特征图输入第二反卷积层,以得到所述无遮挡的正脸图像。
33.在第二方面的一种可能的实现方式中,所述第一神经网络模型由第一初始网络模型训练后得到,所述装置还包括:训练单元,用于将第一训练样本的第一人脸特征和第一关键点的位置信息输入所述第一初始网络模型中训练,以得到第一损失;所述处理单元,还用于根据所述第一损失更新所述第一初始网络模型中的权重参数,以得到所述第一神经网络模型。
34.在第二方面的一种可能的实现方式中,所述第一损失为第一特征与第二特征之间的差异,所述第一特征为从所述第一训练样本对应的正脸图像中提取的人脸特征,所述第二特征为从第一生成图像中提取的人脸特征,所述第一生成图像为将所述第一训练样本输入所述第一初始网络模型得到的无遮挡的正脸图像。
35.在第二方面的一种可能的实现方式中,所述第一损失包括第一特征与第二特征之间的差异,以及所述第一训练样本对应的正脸图像与第一生成图像之间的差异。
36.在第二方面的一种可能的实现方式中,所述第一损失包括第一特征与第二特征之间的差异、第一训练样本对应的正脸图像与第一生成图像之间的差异,以及判断损失,所述判断损失为判别器将所述第一生成图像判别为假的概率,所述判别器用于将真实图像判别为真,将生成的图像判别为假。
37.在第二方面的一种可能的实现方式中,所述获取单元具体用于:将所述人脸图像输入第二神经网络模型中得到所述人脸特征;将所述人脸图像输入第三神经网络模型中得到所述关键点的位置信息。
38.在第二方面的一种可能的实现方式中,所述第二神经网络模型包括特征抽取器或编码器,所述特征抽取器为根据输入的人脸图像输出人脸特征的神经网络,所述编码器为自编码器中的部分。
39.在第二方面的一种可能的实现方式中,所述第三神经网络模型包括关键点模型,所述关键点模型,为根据输入的人脸图像输出关键点的位置信息的神经网络模型。
40.在第二方面的一种可能的实现方式中,所述无遮挡的正脸图像用于肉眼识别,或用于输入人脸识别系统实现人脸识别。
41.本技术实施例第三方面提供了一种图像处理装置,其特征在于,包括处理器和存储器,所述处理器和所述存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令,执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
42.本技术实施例第四方面提供了一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得所述计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
43.本技术实施例第五方面提供了一种计算机可读存储介质,包括指令,其特征在于,当所述指令在计算机上运行时,使得计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
44.本技术实施例第六方面提供了一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行上述任一方面任意可能的实现方式中的方法。可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
45.从以上技术方案可以看出,本技术实施例具有以下优点:
46.本技术实施例提供的图像处理方法,将人脸图像的人脸特征和关键点的位置信息输入神经网络模型,可以基于正脸缺失的图像生成无遮挡的正脸图像,生成的无遮挡的正脸图像既可以用于肉眼识别,提高肉眼辨别成功率;还可以用于输入人脸识别系统通过识别算法进行辨别,该无遮挡正脸图像可以提高识别模型辨别成功率。
附图说明
47.图1为本技术实施例提供的一种人工智能主体框架示意图;
48.图2为本技术实施例提供的一种系统架构示意图;
49.图3为本技术实施例提供的一种卷积神经网络结构示意图;
50.图4为本技术实施例提供的另一种卷积神经网络结构示意图;
51.图5a为本技术实施例中图像处理方法一个应用场景的示意图;
52.图5b为本技术实施例中图像处理方法另一个应用场景的示意图;
53.图6为本技术实施例中图像处理方法的一个实施例示意图;
54.图7为本技术实施例中图像处理方法的另一个实施例示意图;
55.图8为本技术实施例中生成器的训练过程的一个实施例示意图;
56.图9为本技术实施例中判别器的训练过程的一个实施例示意图;
57.图10为本技术实施例中图像处理装置的一个实施例示意图;
58.图11为本技术实施例中图像处理装置的另一个实施例示意图;
59.图12为本技术实施例提供的一种芯片硬件结构图。
具体实施方式
60.本技术实施例提供了一种图像处理方法,用于基于正脸缺失的图像生成无遮挡的
正脸图像,生成的无遮挡的正脸图像用于肉眼识别或识别算法辨别身份信息,可以提高人脸识别成功率。
61.为了便于理解,下面对本技术实施例涉及的部分技术术语进行简要介绍:
62.1、卷积神经网络(convolutional neural network,cnn)本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式,在收集好训练样本后,对cnn加以训练,网络就具有输入输出对之间的映射能力。
63.2、反卷积神经网络(transposed convolution,tc)和cnn同属一类网络,也能通过大量输入输出学习映射关系,与卷积神经网络不同的是cnn通常会缩小输入(即输出的大小会比输入小),而tc则会扩大输入。
64.3、生成器(generator),本技术实施例提供的生成器是一种将特征(一维数组)和关键点的位置信息作为输入,图像作为输出的神经网络模型,由于本技术涉及多个神经网络模型,为便于区分,将本技术实施例中用于根据人脸特征和关键点的位置信息生成无遮挡正脸图像的神经网络模型称为生成器,生成器由多个tc层组成,利用反向传播算法去学习特征和图像的映射关系,使得生成的图像满足特定目的。本技术实施例中也将生成器称为生成器模型。
65.4、判别器(discriminator)是一种用于判断输入图像是否为生成图像的神经网络。如果是生成图像,则会输出假,如果是真实图像则会输出真。本技术实施例中也将判别器称为判别器模型。
66.5、特征抽取器(extractor)是一种将图像作为输入,特征作为输出的神经网络,输出的一维特征向量包含有人脸信息,可称为人脸特征,通过比较两张图像的人脸特征的相似度来判断两个人脸图像是否相似。本技术实施例中也将特征抽取器称为特征抽取器模型。
67.6、关键点模型(facial landmark detector)是一种将图像作为输入,关键点的位置信息作为输出的模型,关键点为人脸图像中表示人脸位置的特征点,关键点的位置信息用于指示人脸图像一个或多个特征点在图像中的像素位置,通常用于定位人脸位置。示例性地,本技术实施例中关键点的位置信息为五维的特征图,五个维度分别代表人脸的五个关键点,关键点例如可以是鼻子,眼睛或嘴巴等部位的标识点,特征图上的每个像素位置对应于输入图像上的像素位置,特征图中每个像素位置的五维数据代表了五个关键点位于输入图像对应的像素位置的概率。
68.7、均方误差(mean square error,mse)是反映估计量与被估计量之间差异程度的一种度量。是预测值与真实值之差的平方和的平均值,可用来作为衡量预测结果的一个指标。
69.8、人脸特征:人脸特征可以分为结构化特征和非结构化特征,结构化特征指有具体物理含义的特征,例如年龄、性别、角度等;非结构化特征没有具体的物理含义,而是由一串数字组成,又被称为特征向量,特征向量之间的相似度可代表原始图像之间的相似度(例如欧式距离、余弦距离),本技术实施例中提及的人脸特征均特指非结构化特征,具体为一维数组。
70.9、自编码器:(autoencoder,ae)一种利用反向传播算法使得输出值等于输入值的
神经网络,它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出。自编码器由两部分组成,编码器部分将输入压缩成潜在空间表征,可以用编码函数h=f(x)表示,解码器能重构来自潜在空间表征的输入,可以用解码函数r=g(h)表示。
71.10、身份信息:人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。人脸图像中,用于进行身份识别的特征信息可称为身份信息。
72.11、无遮挡的正脸图像:本技术实施例中通过生成器得到的无遮挡的正脸图像,是相对于原始输入的人脸图像,减少了遮挡或装饰物(例如帽子、口罩或墨镜等),包含人脸各个部位的正向的脸部图像。
73.下面结合附图,对本技术的实施例进行描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本技术实施例提供的技术方案对于类似的技术问题,同样适用。
74.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本技术中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。
75.图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
76.下面从“智能信息链”(水平轴)和“it价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。
[0077]“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
[0078]“it价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
[0079]
(1)基础设施:
[0080]
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片(cpu、npu、gpu、asic、fpga等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
[0081]
(2)数据
[0082]
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
[0083]
(3)数据处理
[0084]
数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
[0085]
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
[0086]
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
[0087]
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
[0088]
(4)通用能力
[0089]
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
[0090]
(5)智能产品及行业应用
[0091]
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
[0092]
参见附图2,本技术实施例提供了一种系统架构200。数据采集设备260用于采集人脸图像数据并存入数据库230,训练设备220基于数据库230中维护的人脸图像数据生成目标模型/规则201。下面将更详细地描述训练设备220如何基于人脸图像数据得到目标模型/规则201,目标模型/规则201能够用于人脸识别、图像分类和虚拟现实等应用场景。
[0093]
本技术实施例中,可以基于人脸图像数据进行训练,具体的,可以通过数据采集设备260采集各种人脸图像,包括存在遮挡的人脸图像,并存入数据库230。此外,还可以直接从常用的数据库,如lfw、yaleb、cmu pie、cfw、celeba等数据库获取人脸图像数据。
[0094]
该目标模型/规则201可以是基于深度神经网络得到的,下面对深度神经网络进行介绍。
[0095]
深度神经网络中的每一层的工作可以用数学表达式来描述:从物理层面深度神经网络中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由完成,4的操作由 b完成,5的操作则由a()来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,w是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量w决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重w控制着如何变换空间。训练深度神经网络的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩阵。
[0096]
因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的
各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
[0097]
训练设备220得到的目标模型/规则可以应用不同的系统或设备中。在附图2中,执行设备210配置有i/o接口212,与外部设备进行数据交互,“用户”可以通过客户设备240向i/o接口212输入数据。
[0098]
执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。
[0099]
计算模块211使用目标模型/规则201对输入的数据进行处理,以人脸图像识别为例,计算模块211可以对输入的人脸图像进行解析,得到人脸图像中的纹理信息等图像特征。
[0100]
关联功能模块213可以对计算模块211中的图像数据进行预处理,例如进行人脸图像预处理,包括人脸对齐等。
[0101]
关联功能模块214可以对计算模块211中的图像数据进行预处理,例如进行人脸图像预处理,包括人脸对齐等。
[0102]
最后,i/o接口212将处理结果返回给客户设备240,提供给用户。
[0103]
更深层地,训练设备220可以针对不同的目标,基于不同的数据生成相应的目标模型/规则201,以给用户提供更佳的结果。
[0104]
在附图2中所示情况下,用户可以手动指定输入执行设备210中的数据,例如,在i/o接口212提供的界面中操作。另一种情况下,客户设备240可以自动地向i/o接口212输入数据并获得结果,如果客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到训练数据存入数据库230。
[0105]
值得注意的,附图2仅是本技术实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图2中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备210中。
[0106]
本技术实施例中用于从图像中提取人脸特征的深度神经网络、提取关键点的位置信息的神经网络,例如,可以是卷积神经网络(convolutional neural network,cnn)。本技术实施例中用于根据人脸特征和关键点的位置信息生成无遮挡的正脸图像的神经网络,例如可以是反卷积神经网络(tc),cnn通常会缩小输入,而tc则会扩大输入。下面对cnn进行具体介绍。
[0107]
cnn是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,cnn是一种前馈(feed-forward)人工神经网络,以图像处理为例,该
前馈人工神经网络中的各个神经元对输入其中的图像中的重叠区域作出响应。当然,还可以是其他类型,本技术不限制深度神经网络的类型。
[0108]
如图3所示,卷积神经网络(cnn)100可以包括输入层110,卷积层/池化层120,其中池化层为可选的,以及神经网络层130。
[0109]
卷积层/池化层120:
[0110]
卷积层:
[0111]
如图3所示卷积层/池化层120可以包括如示例121-126层,在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
[0112]
以卷积层121为例,卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素
……
这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。
[0113]
当卷积神经网络100有多个卷积层的时候,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。为方便描述网络结构,可以将多个卷积层称为一个块(block)。
[0114]
池化层:
[0115]
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图3中120所示例的121-126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。
[0116]
神经网络层130:
[0117]
在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因此,在神经网络层130中可以包括多层隐含层(如图3所示的131、132至13n)以及输出层140,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
[0118]
在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140。
[0119]
需要说明的是,如图3所示的卷积神经网络100仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,例如,如图4所示的多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。
[0120]
在实际应用场景下,图像采集设备经常采集到正脸缺失的图像,例如模糊图像、有遮挡图像,大角度图像如侧脸图像等,正脸缺失的图像给识别算法或肉眼辨别均造成了困难,因为肉眼不容易辨别这些图像的人脸信息,而识别算法对同一人的正脸缺失的图像进
行识别的相似度较低。
[0121]
通常的图像处理方法基于预构建的神经网络模型从正脸缺失的图像中提取人脸特征,人脸特征为一维特征向量,通过该人脸特征恢复遮挡或重建无遮挡的正脸图像。
[0122]
由于,现有技术中通过人脸特征进行正脸图像的重建,由于人脸特征为一维数组,相较原图像信息损失较多,据此重建得到的图像质量较低,包含的身份信息较少,不能通过肉眼识别,或通过识别算法识别辨别的匹配度较低。
[0123]
请参阅图5a,为本技术实施例中图像处理方法一个应用场景的示意图;
[0124]
图像采集设备采集的各种人脸图像,包括模糊图像、有遮挡图像,或者大角度图像如侧脸图像等,均可以通过本技术实施例提供的图像处理方法生成无遮挡正脸图像,生成的图像可以用于肉眼辨别,或用于输入基于识别算法的人脸识别系统进行辨别,该图像处理方法既能提高肉眼辨别成功率,也能提高识别模型辨别成功率。生成的无遮挡正脸图像的应用具体此处不做限定。
[0125]
请参阅图5b,为本技术实施例中图像处理方法另一个应用场景的示意图;
[0126]
在另一种可能的应用场景中,图像采集设备可以对采集的人脸图像进行处理,获取人脸图像的人脸特征和关键点的位置信息,基于本技术实施例提供的图像处理方法,基于人脸特征和关键点的位置信息,可以生成无遮挡正脸图像,生成的图像可以用于肉眼辨别,或用于输入基于识别算法的人脸识别系统进行辨别,该图像处理方法既能提高肉眼辨别成功率,也能提高识别模型辨别成功率。
[0127]
可选地,图像采集设备可以是软件定义摄像机(software defined camera,sdc),sdc是一种集抓拍和算法处理能力为一体的摄像机,它可以将拍到的图片实时的进行处理,定位人脸并抽取出人脸的特征和关键点。
[0128]
可选地,图像采集设备还可以是视频内容管理系统(video content management,vcm)vcm是一种对摄像头抓拍到的视频进行算法处理的系统,摄像头抓拍图片之后,将会经由该系统进行人脸检测和特征抽取以及关键点抽取。
[0129]
需要说明的是,本技术实施例提供的图像处理方法,可以集成于图像采集设备,例如sdc或vcm中实现,也可以部署于独立的图像处理装置中实现。
[0130]
请参阅图6,为本技术实施例中图像处理方法的一个实施例示意图;
[0131]
601、获取图像的人脸特征和关键点的位置信息;
[0132]
可选地,根据训练好的特征抽取模型和关键点模型,提取图像的人脸特征和关键点的位置信息,或者直接获取图像的人脸特征和关键点的位置信息。
[0133]
特征提取器模型的输入为图像,输出为人脸特征,具体为非结构化特征,用于比对图像之间的相似度。可选地,人脸特征为一维特征向量,即一维数组,具体形式此处不做限定。特征提取器模型为预先训练好的模型,具体训练过程此处不做限定。
[0134]
关键点模型的输入为图像,输出为关键点的位置信息,能够提供图像中人脸的位置信息。可选地,关键点的位置信息为五维的特征图,五个维度分别代表人脸的五个关键点,关键点例如可以是鼻子,眼睛或嘴巴等部位的标识点,特征图上的每个像素位置对应于输入图像上的像素位置,特征图中每个像素位置的五维数据代表了五个关键点位于输入图像对应的像素位置的概率。
[0135]
示例性的,输入关键点模型的图像的尺寸为224*224(像素*像素),输出为五维的
特征图,尺寸为5*224*224,每个维度即1*224*224。
[0136]
602、将人脸特征和关键点的位置信息输入训练好的生成器模型,生成无遮挡的正脸图像;
[0137]
将通过特征提取器模型获取的人脸特征和通过关键点模型获取的关键点的位置信息输入预先训练好的生成器模型,生成无遮挡的正脸图像,该生成器模型的训练过程具体请参见后续实施例。本技术实施例中生成器模型也简称为生成器。
[0138]
生成器用于融合输入的关键点的位置信息和人脸特征,并生成无遮挡正脸图像。由于关键点的位置信息为多维数据,包含与人脸关键点相关的较多信息,与人脸特征融合,共同用于生成无遮挡正脸图时,得到的正脸图的质量较高,具体地,通过该正脸图中提取的人脸特征与从步骤601中原始的图像中提取的人脸特征的相似度高。
[0139]
请参考图7,为本技术实施例中图像处理方法的另一个实施例示意图。生成器的融合方法包括,输入图i 701经过关键点模型702和特征抽取模型703分别获得关键点的位置信息704,即特征图f,以及人脸特征705,即特征a,然后将特征图f和特征a输入生成器706进行融合,首先,特征a经过多重反卷积层707,扩张为尺寸为8*56*56的特征图708,然后该特征图708与特征图f 704进行对位乘法(element wise),融合成为一个尺寸为40*56*56的特征图709,最后再通过多重反卷积层710,输出正脸图像711,尺寸为3*112*112。
[0140]
使用过程:生成正脸图像g。
[0141]
603、通过无遮挡正脸图进行人脸识别;
[0142]
步骤602中获取的无遮挡正脸图像g将会用于肉眼辨别,可选地,g再经过特征抽取器获得生成图人脸特征e,生成图人脸特征e可用于输出人脸识别系统进行特征比对。
[0143]
本技术实施例提供的图像处理方法,对于采集的人脸图像为大侧脸图像、遮挡图像或者模糊图像等不利于人肉眼辨别该图像中人脸对应的身份时,可以通过本技术实施例提供的图像处理方法生成无遮挡的正脸图像,使得易于通过肉眼辨别身份。
[0144]
本技术实施例提供的图像处理方法,对于采集的人脸图像为大侧脸图像、遮挡图像或者模糊图像等含有的人脸信息较少的情况,基于这些原始人脸图像抽取的人脸特征通常和数据库中证件照中的人脸特征相似度较小,识别匹配度低,而通过本技术实施例提供的图像处理方法生成无遮挡的正脸图像抽取的人脸特征,相比原始人脸图像抽取的人脸特征更接近数据库中证件照的人脸特征,识别匹配度高,使得基于人脸识别算法更容易辨别出图像中的人物身份,进而提高识别模型辨别成功率。
[0145]
图6对应的实施例中步骤602用到的生成器为预先训练好的深度神经网络模型,下面对生成器的训练过程进行具体介绍。请参阅图8,为本技术实施例中生成器的训练过程的一个实施例示意图。
[0146]
本技术实施例中生成器通过第一神经网络模型经过训练得到,可选地,该第一神经网络模型由多个反卷积神经网络搭建组成。
[0147]
用于训练的图像数据集中的人脸图像包括侧脸图像或者有遮挡的人脸图像。需要说明的是,数据集中每张人脸图像具有对应的无遮挡正脸图,具体实现过程中,示例性地,该无遮挡正脸图可以是证件照,例如,人脸图像i1对应的证件照为r1;人脸图像i2对应的证件照为r2;人脸图像i3对应的证件照为r3。
[0148]
生成器的训练过程包括:
[0149]
将训练样本i,通过特征抽取器抽取人脸特征a,并通过关键点模型提取关键点的位置信息f,然后将人脸特征a和关键点的位置信息f输入生成器进行融合。示例性地,人脸特征a经过多重反卷积层,扩张为8*56*56大小的特征图,然后特征图和关键点特征图进行对位乘法,融合成为一个40*56*56的大小的特征图,最后再通过多重反卷积层,生成无遮挡正脸图像g。示例性地,下面以输入图像i1 801为例进行介绍,i1 801输入特征抽取器,获取人脸特征a1 804,i1输入关键点模型805,获取关键点的位置信息f1 806,将a1和f1输入生成器807,得到输入图像i1对应的无遮挡正脸图像g1 808。
[0150]
无遮挡正脸图像g1 808经过特征抽取器809获得的人脸特征为特征e1 810,输入图i1 801对应的证件照r1 802经过特征抽取器803抽取的人脸特征为特征z1 811,本技术实施例提供的训练方法中,要求特征e1 810与特征z1 811之间的差异尽可能小,即重构特征损失尽可能的小,可选地,重构特征损失为特征e和特征z之间的均方误差(mse)。
[0151]
可选地,重构特征损失的目标函数形式为:
[0152][0153]
人脸特征为一维数组,特征e和特征z的长度相同,式中f代表特征总长度,f代表一维数组中的第f个数值,e
f
代表特征e中第f个数的数值,z
f
代表特征z中第f个数的数值,特征e和特征z在每个对应位置的特征数值越接近,则均方误差越小,代表特征e和特征z之间的差异越小。
[0154]
目标函数的意义为使得e和z的每一个位置的特征值都尽可能相似。
[0155]
损失函数loss=重构特征损失
[0156]
可选的,根据输入图生成的无遮挡正脸图像g需要和输入图对应的证件照r之间的差异尽可能小,即重构图像损失尽可能的小,可选地,重构图像损失是指图像g和图像r之间的均方误差(mse)。例如,无遮挡正脸图像g1 808与证件照r1 802之间的差异尽可能小。
[0157]
其重构图像损失的目标函数形式为:
[0158][0159]
图像g和图像r的尺寸一致,也就是说,图像总的像素点数量一样,p代表总的像素点数量,p代表图像中第p个像素点,g
p
代表图像g的p点处像素点的值,r
p
代表图像r中p点处像素点的值。该目标函数的意义为使得g和r的每一个像素点都尽可能相似。
[0160]
损失函数loss=重构特征损失 重构图像损失
[0161]
可选的,还可以在生成器的训练中引入判别器,对于每个训练样本,需要交替训练判别器以及生成器。下面具体进行介绍:
[0162]
判别器和生成器联合训练过程:
[0163]
判别器是用于判断输入图像是否为生成图像的神经网络。判别器的训练目标是能够辨别生成的图像,即如果是生成图像输入判别器,则判别器输出值为假;如果是真实图像输入判别器,则判别器输出值为真。例如图8中,判别器判断生成的无遮挡正脸图像g1 808是否为真,得到的判别结果d1 812,对于判别器来说,它的目标是识别出真图为真,生成器生成的图为假,请参阅图9,为本技术实施例中判别器的训练过程的一个实施例示意图。
[0164]
例如,输入图i1 901经过特征和关键点抽取,再经由生成器902重构之后,生成的图片g1 903将会经由判别器904进行判断,得到判别结果d1 905此外,输入图对应的证件照r1 906,即真实正脸图像,也会输入判别器904进行判别,得到判别结果t1 907。判别器要尽可能认出生成图是假图,证件照是真图,目标函数即min(log(d(g)) log(1-d(r)))。其中,d(g)为判别器对生成器生成的图像的判断结果,d(r)为判别器对真实正脸图像的判断结果。在上述判别器训练过程中,生成器不做训练。
[0165]
当判别器训练完一个循环后,生成器将进行训练。如图8所示,对于生成器来说,它的损失函数包括三部分,一个是重构特征损失,一个是重构图像损失,还有一个是判断损失。判断损失指的是生成图要尽可能迷惑判别器,使得判别器判断该图为真,即min(log(1-d(g)))。本技术实施例中,生成器的训练过程中,可以将生成的图像输入预先训练好的判别器进行判断,生成器生成的无遮挡的正脸图像被判别为真,即可以迷惑判别器,判断生成的无遮挡的正脸图像被判别为真实正脸图像而非生成图。
[0166]
损失函数loss=重构特征损失 重构图像损失 判断损失
[0167]
判断损失为log(1-d(g)),代表判别器判断生成器生成的无遮挡的正脸图像为假图的概率,即判别器判定该无遮挡的正脸图像为真的损失。
[0168]
其中,d为判别器,g为生成器生成的图像,d(g)是介于0到1之间的小数,代表判别器判断生成器生成的图的结果,值为1代表判定g为真,值为0代表判定g为假,r为真实的图像,d(r)为判别器对真实正脸图像的判断结果,是介于0到1之间的小数,代表判别器判断生成器生成的图的结果,值为1代表判定g为真,值为0代表判定g为假。
[0169]
整个训练过程由判别器和生成器交替训练构成。
[0170]
根据人脸识别系统进行人脸检索时,存储于系统数据库中代表各人身份的图像通常为正脸图片,例如证件照,而输入的用于查询的图像,通常这是监控照,由此造成了查询数据域图片风格、数据分布与被查询数据域不一致的情况。由于本技术实施例提供的图像处理方法中的生成器模型在训练过程中,基于人脸图像对应的证件照进行训练,从训练得到的生成器生成的无遮挡正脸图像中提取的人脸特征,能起到将查询数据域的监控照特征迁移到被查询数据域的证件照特征,即起到域迁移的作用,能够提升检索系统的总体性能。
[0171]
本技术实施例提供的图像处理方法,可以将特征抽取模型替换为自编码器中的编码器。下面具体进行介绍。
[0172]
自编码器是一种利用反向传播算法使得输出值等于输入值的神经网络,它先将输入压缩成潜在空间表征,然后通过这种表征来重构输出。自编码器由两部分组成,编码器部分将输入压缩成潜在空间表征,可以用编码函数h=f(x)表示,解码器能重构来自潜在空间表征的输入,可以用解码函数r=g(h)表示。潜在空间表征具体为特征向量,该向量需要经解码器尽可能还原成原图,即需要尽可能包括原图像信息,通常该信息不能用于和其他图像的信息比较相似度,没有分辨能力。本技术实施例中可以将自编码器中的编码器将输入图像压缩成潜在空间表征以替代特征抽取模块抽取的人脸特征。将潜在空间表征和关键点的位置信息输入训练好的生成器,生成无遮挡的正脸图像。
[0173]
本技术实施例提供的图像处理方法,自编码器中的编码器将输入图像压缩成潜在空间表征以替代特征抽取模块抽取的人脸特征,由于自编码器结构更为简单,可以减少计算量,缺点是自编码器抽取的潜在空间表征包含的身份信息相较人脸特征更少,因此,相较
通过特征抽取器提取人脸特征的方案,生成的正脸图像包含的身份信息较少,肉眼识别效果较差或者通过识别算法进行人脸识别的匹配度较低,识别成功率较低。
[0174]
上面介绍了本技术提供的图像处理方法,下面对实现该图像处理方法的图像处理装置进行介绍,请参阅图10,为本技术实施例中图像处理装置的一个实施例示意图。
[0175]
图10中的各个模块的只一个或多个可以软件、硬件、固件或其结合实现。所述软件或固件包括但不限于计算机程序指令或代码,并可以被硬件处理器所执行。所述硬件包括但不限于各类集成电路,如中央处理单元(cpu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)或专用集成电路(asic)。
[0176]
该图像处理装置包括:
[0177]
获取单元1001,用于获取人脸图像的人脸特征和关键点的位置信息,所述人脸特征包括所述人脸图像中人脸信息的特征向量,所述关键点包括所述人脸图像中表示人脸位置的特征点;
[0178]
处理单元1002,用于根据所述人脸特征和所述关键点的位置信息,通过预训练的第一神经网络模型得到所述人脸图像对应的无遮挡的正脸图像。
[0179]
可选地,所述第一神经网络模型包括一个或多个反卷积层。
[0180]
可选地,所述关键点的位置信息包括关键点特征图;所述处理单元1002具体用于:将所述人脸特征输入第一反卷积层,以得到第一特征图;融合所述第一特征和所述关键点特征图,以得到第二特征图;将所述第二特征图输入第二反卷积层,以得到所述无遮挡的正脸图像。
[0181]
可选地,所述第一神经网络模型由第一初始网络模型训练后得到,所述装置还包括:训练单元1003,用于将第一训练样本的第一人脸特征和第一关键点的位置信息输入所述第一初始网络模型中训练,以得到第一损失;所述处理单元1002,还用于根据所述第一损失更新所述第一初始网络模型中的权重参数,以得到所述第一神经网络模型。
[0182]
可选地,所述第一损失为第一特征与第二特征之间的差异,所述第一特征为从所述第一训练样本对应的正脸图像中提取的人脸特征,所述第二特征为从第一生成图像中提取的人脸特征,所述第一生成图像为将所述第一训练样本输入所述第一初始网络模型得到的无遮挡的正脸图像。
[0183]
可选地,所述第一损失包括第一特征与第二特征之间的差异,以及所述第一训练样本对应的正脸图像与第一生成图像之间的差异。
[0184]
可选地,所述第一损失包括第一特征与第二特征之间的差异、第一训练样本对应的正脸图像与第一生成图像之间的差异,以及判断损失,所述判断损失为判别器将所述第一生成图像判别为假的概率,所述判别器用于将真实图像判别为真,将生成的图像判别为假。
[0185]
可选地,所述获取单元1001具体用于:将所述人脸图像输入第二神经网络模型中得到所述人脸特征;将所述人脸图像输入第三神经网络模型中得到所述关键点的位置信息。
[0186]
可选地,所述第二神经网络模型包括特征抽取器或编码器,所述特征抽取器为根据输入的人脸图像输出人脸特征的神经网络,所述编码器为自编码器中的部分。
[0187]
可选地,所述第三神经网络模型包括关键点模型,所述关键点模型,为根据输入的
人脸图像输出关键点的位置信息的神经网络模型。
[0188]
可选地,所述无遮挡的正脸图像用于肉眼识别,或用于输入人脸识别系统实现人脸识别。
[0189]
请参阅图11,为本技术实施例中图像处理装置的另一个实施例示意图。
[0190]
该图像处理装置1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器1101和存储器1102,该存储器1102中存储有程序或数据。
[0191]
其中,存储器1102可以是易失性存储或非易失性存储。可选地,处理器1101是一个或多个中央处理器(cpu,central processing unit,该cpu可以是单核cpu,也可以是多核cpu。处理器1101可以与存储器1102通信,在图像处理装置1100上执行存储器1102中的一系列指令。
[0192]
该图像处理装置1100还包括一个或一个以上有线或无线网络接口1103,例如以太网接口。
[0193]
可选地,尽管图11中未示出,图像处理装置1100还可以包括一个或一个以上电源;一个或一个以上输入输出接口,输入输出接口可以用于连接显示器、鼠标、键盘、触摸屏设备或传感设备等,输入输出接口为可选部件,可以存在也可以不存在,此处不做限定。
[0194]
本实施例中图像处理装置1100中的处理器1101所执行的流程可以参考前述方法实施例中描述的方法流程,此处不加赘述。
[0195]
请参阅图12,为本技术实施例提供的一种芯片硬件结构图。
[0196]
本技术实施例提供了一种芯片系统,可以用于实现该图像处理方法,具体地,图3和图4所示的基于卷积神经网络的算法可以在图12所示的npu芯片中实现。
[0197]
神经网络处理器npu 50作为协处理器挂载到主cpu(host cpu)上,由host cpu分配任务。npu的核心部分为运算电路503,通过控制器504控制运算电路503提取存储器中的矩阵数据并进行乘法运算。
[0198]
在一些实现中,运算电路503内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
[0199]
举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器502中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器501中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器508accumulator中。
[0200]
统一存储器506用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器505(direct memory access controller,dmac)被搬运到权重存储器502中。输入数据也通过dmac被搬运到统一存储器506中。
[0201]
biu为bus interface unit,即总线接口单元510,用于axi总线与dmac和取指存储器509instruction fetch buffer的交互。
[0202]
总线接口单元510(bus interface unit,biu),用于取指存储器509从外部存储器获取指令,还用于存储单元访问控制器505从外部存储器获取输入矩阵a或者权重矩阵b的原数据。
[0203]
dmac主要用于将外部存储器ddr中的输入数据搬运到统一存储器506或将权重数据搬运到权重存储器502中或将输入数据数据搬运到输入存储器501中。
[0204]
向量计算单元507可以包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/fc层网络计算,如pooling(池化),batch normalization(批归一化),local response normalization(局部响应归一化)等。
[0205]
在一些实现中,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
[0206]
控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
[0207]
统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为on-chip存储器。外部存储器私有于该npu硬件架构。
[0208]
其中,图3和图4所示的卷积神经网络中各层的运算可以由矩阵计算单元212或向量计算单元507执行。
[0209]
在本技术的各实施例中,为了方面理解,进行了多种举例说明。然而,这些例子仅仅是一些举例,并不意味着是实现本技术的最佳实现方式。
[0210]
上述实施例,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0211]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0212]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0213]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0214]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0215]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式
体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0216]
以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜