一种人脸识别模型的训练方法、装置以及设备与流程

文档序号:32006434发布日期:2022-11-02 13:25阅读:46来源:国知局
一种人脸识别模型的训练方法、装置以及设备与流程

1.本说明书涉及互联网技术领域,尤其涉及基于一种人脸识别模型的训练方法、装置以及设备。


背景技术:

2.在人脸识别的过程中,将别人照片的目标区域裁剪掉部分,然后贴在真人脸目标区域,来进行攻击,是一种常见的活体攻击方法,这一类攻击类型称之为异形攻击。
3.相比较于常见的纸张攻击,对于这类攻击的识别难度会更加高。其原因在于,对于机器而言,其检测得到的图像实际上是部分被攻击人脸的图像+部分攻击人脸的图像,这往往就不会被认为是纸张攻击,同时,这种攻击手段也降低了模型召回攻击人脸的难度。
4.基于此,需要一种可以准确识别异形攻击的人脸识别模型的训练方案。


技术实现要素:

5.本说明书一个或多个实施例提供一种人脸识别模型的训练方法、装置、设备以及存储介质,用以解决如下技术问题:需要一种可以准确识别异形攻击的人脸识别模型的训练方案。
6.为解决上述技术问题,本说明书一个或多个实施例是这样实现的:
7.在第一方面,本说明书实施例提供一种人脸识别模型的训练方法,包括:获取训练样本,其中,所述训练样本为包括多个区域块的真实样本或者合成样本,所述合成样本中的区域块的类别包括被攻击人脸的第一区域和攻击人脸的第二区域;生成与所述区域块相关的类别矩阵,其中所述类别矩阵中的一行或者一列表征一个区域块与其它区域块的类别的异同;采用初始模型对所述训练样本进行分类,确定分类所产生的分类损失值;采用所述初始模型提取所述合成样本中的区域特征,生成与所述类别矩阵大小相同的预测矩阵,根据所述预测矩阵与所述类别矩阵的差异确定区域类别损失值;融合所述分类损失值和所述区域类别损失值生成目标损失值,根据所述目标损失值对所述初始模型进行训练,生成目标模型。
8.在第二方面,本说明书实施例提供一种人脸识别模型的训练装置,包括:获取模块,获取训练样本,其中,所述训练样本为包括多个区域块的真实样本或者合成样本,所述合成样本中的区域块的类别包括被攻击人脸的第一区域和攻击人脸的第二区域;矩阵生成模块,生成与所述区域块相关的类别矩阵,其中,所述类别矩阵中的一行或者一列表征一个区域块与其它区域块的类别的异同;分类损失模块,采用初始模型对所述训练样本进行分类,确定分类所产生的分类损失值;区域类别损失模块,采用所述初始模型提取所述合成样本中的区域特征,生成与所述类别矩阵大小相同的预测矩阵,根据所述预测矩阵与所述类别矩阵的差异确定区域类别损失值;融合模块,融合所述分类损失值和所述区域类别损失值生成目标损失值,根据所述目标损失值对所述初始模型进行训练,生成目标模型。
9.在第三方面,本说明书实施例提供的一种电子设备,包括:至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
10.在第四方面,本说明书实施例提供一种非易失性计算机存储介质存储有计算机可执行指令,当计算机读取存储介质中的计算机可执行指令后,该指令使得一个或多个处理器执行如第一方面所述的方法。
11.本说明书一个或多个实施例采用的上述至少一个技术方案能够达到以下有益效果:通过获取训练样本;生成与所述区域块相关的类别矩阵,其中所述类别矩阵中的一行或者一列表征一个区域块与其它区域块的类别的异同;采用初始模型对所述训练样本进行分类,确定分类所产生的分类损失值;采用所述初始模型提取所述合成样本中的区域特征,生成与所述类别矩阵大小相同的预测矩阵,根据所述预测矩阵与所述类别矩阵的差异确定区域类别损失值;融合所述分类损失值和所述区域类别损失值生成目标损失值,根据所述目标损失值对所述初始模型进行训练,生成目标模型。从而实现准确学习在检测得到的图像中第一区域和第二区域之间的不相关性、第一区域和第一区域之间的相关性以及第二区域和第二区域之间的相关性,并基于这种相关性和不相关性去实现攻击识别,以更加本质的形式去解决这一类攻击类型的拦截,提高训练得到的模型对于异形攻击的识别准确性。
附图说明
12.为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
13.图1为本说明书一个或多个实施例提供的一种基于小程序动静态分析的风险检测方法的流程示意图;
14.图2为本说明书实施例所提供的一种包含多个区域块的合成样本的示意图。
15.图3为本说明书实施例所提供的一种训练架构的整体示意图。
16.图4为本说明书实施例提供的一种人脸识别模型的训练装置的结构示意图。
17.图5为本说明书实施例提供的一种电子设备的结构示意图。
具体实施方式
18.本说明书实施例提供一种人脸识别模型的训练方法、装置、设备以及存储介质。
19.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本说明书实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
20.将纸张的目标区域裁剪下来贴在真人脸目标区域是一种常见的活体攻击方法,这一类攻击类型称之为异形攻击。例如,双眼区域通常被当作是一字形区域,双眼+鼻子是人脸的t字形区域,或者,双岩+嘴唇也是人脸的t字形区域。一字形和t字形攻击等异形攻击相
比较于常见的纸张攻击,识别难度会更加高。如果采用直接添加样本的方式来进行模型训练,那么则会对于原有模型的带来负面影响,使得原来网络的分界面被破坏,也就是说其准确识别这一攻击方式同时,会降低真人通过率
21.基于此,本说明书实施例提供一种可以准确识别异形攻击的人脸识别模型的训练方案。
22.如图1所示,图1为本说明书实施例提供的一种人脸识别模型的训练方法的流程示意图,包括以下步骤:
23.s101,获取训练样本。
24.训练样本中包含带有标签的正样本和负样本。正样本即为正常人脸的真实样本,负样本即为包括了部分的攻击人脸和部分被攻击人脸的样本,由于实际应用中真实的负样本很难直接获取,因此,一般可以采用合成的方式得到包括被攻击人脸和攻击人脸的合成样本。正样本或者负样本将作为训练样本的分类标签参与训练。
25.在本说明书实施例中,训练样本已经被进行了预处理,从而训练样本被resize成一个长方形或者正方形,并且被划分为多个区域块。其中,任意的一个区域块要么属于被攻击人脸,要么属于攻击人脸。其中,属于攻击人脸的区域则被视为第二区域,其余的区域则被视为第一区域。
26.对于真实样本而言,其所包含的多个区域块均属于同一用户,即真实样本中的区域块的类别均为第一区域。而对于合成样本而言,其中的部分区域块属于被攻击人脸,另外部分的区域块属于攻击人脸,即合成样本中的区域块的类别包括了部分的第一区域和部分的第二区域。
27.如图2所示,图2为本说明书实施例所提供的一种包含多个区域块的合成样本的示意图。在该示意图中,合成样本一共被被划分成为了5*5个区域块。其中,左半部分的图像即为包含了t字形的第二区域的合成样本,右半部分图像即为包含了一字形的第二区域的合成样本。
28.s103,生成与所述区域块相关的类别矩阵,其中所述类别矩阵中的一行或者一列表征一个区域块与其它区域块的类别的异同。
29.当存在n个区域块时,生成的类别矩阵即为一个大小为n*n的矩阵。具体而言,其可以采用遍历式的方式去生成,例如,将所述n个区域块依次进行编号,得到编号为1至n的n个区域块,则对于类别矩阵中的第i行第j列的元素a
ij
,则其表征了在训练样本中编号为i的区域块与编号为j的区域块的类别的异同,其中,1≤i,j≤n。
30.当二者的类别相同时,可以将元素a
ij
的值赋值为1,当二者的类别不同时,可以将元素a
ij
的值赋值为-1。具体的赋值大小可以根据实际需要自行确定。例如,对于真实样本而言,其对应的类别矩阵的中的元素的值则均为1。而对于图2中的合成样本而言,则显然有部分元素的值为1,而部分元素的值为-1。生成的类别矩阵将同样作为所述训练样本的标签之一去参与训练。
31.在一种实施例中,对于生成类别矩阵,还可以首先生成一个对应的标记矩阵,进而基于标记矩阵中的相应元素的值来生成类别矩阵。
32.例如,对于一个任意的已经被划分为m行和m列的训练样本,其每一个区域块可以用一个对应的矩阵元素b
ij
来表征,1≤i,j≤n,b
ij
的值表征其对应的区域块(即第i行第j列
的)属于被攻击人脸或者攻击人脸。例如,可以用1表征属于被攻击人脸,用-1表征输入攻击人脸。
33.以如图2中所示意的合成样本为例,对于如图2中所示意的一个t字形的5*5的合成样本,其对应一个5*5的标记矩阵,该标记矩阵中的元素b
22
=b
23
=b
24
=b
33
=-1,其余的元素的值均为1;而对应于图2中所示意的一字型的合成样本而言,其对应的5*5的标记矩阵中则是b
22
=b
23
=b
24
=-1,其余的元素的值均为1。
34.进而即可以将标记矩阵展开,得到一个一维的长度为m^2的行向量,并将该向量进行转置,得到一个维度为m^2但长度为1的列向量,并将列向量和行向量进行相乘,即可以得到一个大小为m^2*m^2的类别矩阵。
35.以前述的图2中的示意为例,其对应的标记矩阵为5*5大小,展开得到的行向量即为1*25大小,对应的列向量即为25*1,将列向量和行向量进行相乘,即可以得到一个大小为25*25的类别矩阵。类别矩阵中的一行或者一列表征一个区域块与其它区域块(包括自身)的类别的异同,由前述算法可知,通常而言,区域块的类别一致时对应的类别矩阵中的元素的值为1,不一致为-1。
36.s105,采用初始模型对所述训练样本进行分类,确定分类所产生的分类损失值。
37.这里的分类即可以是一个二分类即可。即只需要对训练样本进行预测,其是正样本还是负样本即可。从而基于预测值与真实值的差异确定所产生的分类损失值。例如,可以采用一个对于常规的攻击方式已经具有一定准确率的识别模型来作为初始模型。即可以首先采用不包括前述合成样本的集合对一个模型进行训练,直至其对于真实样本已经具有一定的准确率,并将此时的模型作为本方案的初始模型。
38.初始模型可以采用诸如mobilenetv1、mobilenetv2等卷积神经网络(convolutional neural network,cnn)模型。cnn模型其可以对于输入的训练样本进行卷积、批标准化之后得到相应的特征向量,进而再对特征向量进行反向卷积,并通过全连接进行预测,从而得到对于初入的训练样本是正样本还是负样本的概率。分类所产生的分类损失值即为该概率值与标签值之间的差异。
39.s107,采用所述初始模型提取所述合成样本中的区域特征,生成与所述类别矩阵大小相同的预测矩阵,根据所述预测矩阵与所述类别矩阵的差异确定区域类别损失值。
40.例如,初始模型可以采用包含有依序排列的如下结构的特征提取层来提取区域特征:批标准化(batch normalization,bn)层、relu激活函数层、卷积核大小为1
×
1的conv卷积层、批标准化层、relu激活函数层和卷积核大小为3
×
3的conv卷积层。每个卷积层包含12个滤波器。
41.如前所述,初始模型可以对输入的训练样本进行相应的特征提取,从即可以基于速所提取的区域特征进行相应的卷积、批标准化以及激活等方式,来生成与所述类别矩阵大小相同的预测矩阵
42.此外,在一种实施例中还可以采用如下方式来生成与所述类别矩阵大小相同的预测矩阵,即,首先根据提取得到的区域特征生成与所述标记矩阵大小相同的特征矩阵,进而基于特征矩阵来计算得到预测矩阵。
43.例如,可以通过用于实现下采样的特征提取层,来获取得到特征矩阵中每个元素的值。特征提取层中所包含的卷积核等特征提取参数即为需要经过训练进行调整的参数。
由于特征提取层中的卷积核大小以及输出通道是可以控制的,因此,对于不同大小的标记矩阵,只需事先对其进行适配即可。
44.同时,特征提取层中的参数也会参与前述二分类过程。换言之,二分类过程和预测矩阵的生成过程中所采用的参数是共享的。
45.此处需要说明的是,前述的标记矩阵中,每个元素的值均是明确的通过值表征了一个对应的区域块的类别。例如,其值为1或者为-1。
46.而在特征矩阵中,计算得到的值则通常是浮点的,例如,取值可能是0.8或者-0.3等等,此时,特征矩阵中每一个元素的值即表征的是其对应于一个类别的可能性。
47.基于此。为了更明确的表明这种可能性,此时,即可以展开所述特征矩阵,生成一维的展开矩阵(即一维行向量),进而对对所述展开矩阵进行归一化,生成归一化之后的展开矩阵。归一化之后的展开矩阵即可以更清晰的表明了一个区块块是第一区域或者第二区域的概率。
48.进而,即可以将将所述归一化之后的展开矩阵的转置与所述归一化之后的展开矩阵相乘,生成与所述类别矩阵大小相同的预测矩阵。预测矩阵中的每个元素的值即表征了预测得到的一个区域块与另一个区域块的相关程度。
49.此时,即可以计算预测矩阵与所述类别矩阵的差异,来确定区域类别损失值。例如,可以采用均方损失mseloss函数来计算预测矩阵与所述类别矩阵的差异。由于预测矩阵与所述类别矩阵大小一致,mseloss=(x
i-yi)^2,xi即为预测矩阵中的第i个元素,yi即为类别矩阵中的对应的第i个元素。
50.如图3所示,图3为本说明书实施例所提供的一种训练架构的整体示意图。在该示意图中,以训练样本包含了5*5的区域块为例,训练样本对应的标记矩阵同样为5*5大小,对应的类别矩阵即为25*25大小,进而产生一个25*25大小的预测矩阵。通过预测矩阵和类别矩阵即可以计算对应的区域类别损失值。
51.s109,融合所述分类损失值和所述区域类别损失值生成目标损失值,根据所述目标损失值对所述初始模型进行训练,生成目标模型。
52.基于分类损失值和目标损失值的数量级,可以采用不同的融合方式。例如,当分类损失值和目标损失值的数量级相当时,可以采用预设的权重参数(例如默认权重均为1),即直接相加分类损失值和所述区域类别损失值生成目标损失值。
53.又例如,当分类损失值和目标损失值的数量级相当,但是为了突出所述区域类别损失值的影响,即使得模型能够对于区域类别损失值更为敏感,此时,即可以提高区域类别损失值的权重参数,例如,将所述分类损失值的权重参数设置为1,而将所述区域类别损失值的权重设置为3,进行加权求和而得到目标损失值。通过该方式可以使得训练得到的目标模型对于异形攻击有更好的敏感性。
54.又例如,在模型训练前期,当分类损失值和目标损失值之间有至少一个变化波动较大(例如,在变化波动超过一个数量级)时,那么还可以采用自适应调整的方式,根据所述分类损失值和所述区域类别损失值的大小,自适应调整所述分类损失值和所述区域类别损失值的权重参数,根据所述调整后的权重参数融合所述分类损失值和所述区域类别损失值生成目标损失值。
55.即默认分类损失值和所述区域类别损失值,在加权后的比例应当保持为在一定比
例区间(例如,应当在区间[0.5,2]之间,在模型训练初期,若一个损失值小于另一个损失值太多,则放大该损失值对应的权重参数,使得加权后的损失值的比例落入该默认区间即可。避免模型初期训练时的剧烈波动,提高模型收敛速度。
[0056]
通过获取训练样本;生成与所述区域块相关的类别矩阵,其中所述类别矩阵中的一行或者一列表征一个区域块与其它区域块的类别的异同;采用初始模型对所述训练样本进行分类,确定分类所产生的分类损失值;采用所述初始模型提取所述合成样本中的区域特征,生成与所述类别矩阵大小相同的预测矩阵,根据所述预测矩阵与所述类别矩阵的差异确定区域类别损失值;融合所述分类损失值和所述区域类别损失值生成目标损失值,根据所述目标损失值对所述初始模型进行训练,生成目标模型。从而实现准确学习在检测得到的图像中第一区域和第二区域之间的不相关性、第一区域和第一区域之间的相关性以及第二区域和第二区域之间的相关性,并基于这种相关性和不相关性去实现攻击识别,以更加本质的形式去解决这一类攻击类型的拦截,提高训练得到的模型对于异形攻击的识别准确性。
[0057]
在一种实施例中,由于合成样本的获取较为困难,因此合成样本可以采用采用如下方式预先生成。即从训练样本中随机获取两个真实样本(真实样本中默认所有的区域块均为第一区域),即第一真实样本和第二真实样本,进而确定需要进行替换的目标区域块,将所述第一真实样本和第二真实样本中的目标区域块中的图像互相替换,生成两个合成样本。
[0058]
例如,对于一个包含了5*5个区域块的第一真实样本和第二真实样本,指定其将第3行或者第3列中的目标区域块进行互换。这样一来,替换后的第一真实样本中的第三行均可以视为攻击人脸,而替换后的第二真实样本中的第三行同样可以视为攻击人脸,因此,通过指定目标区域块的互换即可以同时得到两个合成样本。通过这种方式,提高了生成合成样本的效率。
[0059]
如图2中所示,指定的目标区域块可以是连接两个眼部图像所形成的一字形区域中所包含的多个区域块,或者,为连接两个眼部图像以及鼻子部位的图像所形成的t字形区域中所包含的多个区域块。由于这部分的目标区域块对于人脸识别更为敏感,因此挑选这部分作为目标区域块可以使得生成的合成样本更具有代表性,提高训练得到的目标模型对于实际攻击的适应性。
[0060]
此外,在一种实施例中,还可以在选择得到第一真实样本和第二真实样本之后,不指定目标区域块,则采用随机选取的目标区域块进行替换。例如,对于第一真实样本中随机选取3个区域块:第1行第3列,第2行第4列和第5行第4列,将其替换为第二真实样本中的对应区域块,同时对于第二真实样本中,随机挑选5个区域块,将其替换为第一区域块中的5个区域块。通过该方式,可以提高所产生的合成样本的随机性,使得训练得到的目标模型可以广泛适应各种异形攻击。
[0061]
在一种实施例中,根据提取得到的区域特征生成与所述标记矩阵大小相同的特征矩阵时,可以采用如下的方式来生成,即根据提取得到的区域特征生成特征向量;升维所述特征向量,并降维所述升维后的特征向量,生成与所述标记矩阵大小相同的特征矩阵。
[0062]
例如,根据提取得到的区域特征生成一个64*64*25维的特征向量,然后通过扩展层expansion layer将其扩展为64*64*150维(即扩展了6倍)的向量,之后在用深度可分离
卷积来提取特征,之后使用projection layer来压缩数据,让输出向量从新变小至64*64*25维。因为expansion layer和projection layer都是有可以学习的参数,所以整个网络结构可以学习到如何更好的扩展数据和从新压缩数据,从而提取到整体的足够多的信息,实现更为准确的提取得到目标区域块的信息并通过特征矩阵所反映出来。
[0063]
基于同样的思路,本说明书一个或多个实施例还提供了上述方法对应的装置和设备,如图4、图5所示。
[0064]
在第二方面,如图4所示,图4为本说明书实施例提供的一种人脸识别模型的训练装置的结构示意图,所述装置包括:
[0065]
获取模块401,获取训练样本,其中,所述训练样本为包括多个区域块的真实样本或者合成样本,所述合成样本中的区域块的类别包括被攻击人脸的第一区域和攻击人脸的第二区域;
[0066]
矩阵生成模块403,生成与所述区域块相关的类别矩阵,其中,所述类别矩阵中的一行或者一列表征一个区域块与其它区域块的类别的异同;
[0067]
分类损失模块405,采用初始模型对所述训练样本进行分类,确定分类所产生的分类损失值;
[0068]
区域类别损失模块407,采用所述初始模型提取所述合成样本中的区域特征,生成与所述类别矩阵大小相同的预测矩阵,根据所述预测矩阵与所述类别矩阵的差异确定区域类别损失值;
[0069]
融合模块409,融合所述分类损失值和所述区域类别损失值生成目标损失值,根据所述目标损失值对所述初始模型进行训练,生成目标模型。
[0070]
可选地,所述装置还包括合成样本生成模块411,随机获取第一真实样本和第二真实样本;确定需要进行替换的目标区域块;将所述第一真实样本和第二真实样本中的目标区域块中的图像互相替换,生成两个合成样本。
[0071]
可选地,所述矩阵生成模块403,确定与所述区域块对应的标记矩阵,其中,所述标记矩阵中的元素与所述训练样本中的区域块对应,所述元素的值表征其对应的区域块属于被攻击人脸或者攻击人脸;遍历所述标记矩阵中的元素,针对遍历至的任一元素,根据该元素与所述标记矩阵中其它元素的值的异同生成所述类别矩阵中的一行或者一列。
[0072]
可选地,所述区域类别损失模块407,所述根据提取得到的区域特征生成与所述标记矩阵大小相同的特征矩阵;展开所述特征矩阵,生成一维的展开矩阵;对所述展开矩阵进行归一化,生成归一化之后的展开矩阵;将所述归一化之后的展开矩阵的转置与所述归一化之后的展开矩阵相乘,生成与所述类别矩阵大小相同的预测矩阵。
[0073]
可选地,所述区域类别损失模块407,根据提取得到的区域特征生成特征向量;升维所述特征向量,并降维所述升维后的特征向量,生成与所述标记矩阵大小相同的特征矩阵。
[0074]
可选地,所述融合模块409,,采用预设的权重参数融合所述分类损失值和所述区域类别损失值生成目标损失值;或者,根据所述分类损失值和所述区域类别损失值的大小,自适应调整所述分类损失值和所述区域类别损失值的权重参数,根据所述调整后的权重参数融合所述分类损失值和所述区域类别损失值生成目标损失值。
[0075]
可选地,所述目标区域块为连接两个眼部图像所形成的一字形区域中所包含的多
个区域块,或者,为连接两个眼部图像以及鼻子部位的图像所形成的t字形区域中所包含的多个区域块。
[0076]
在第三方面,如图5所示,图5为本说明书实施例提供的一种电子设备的结构示意图,所述设备包括:
[0077]
至少一个处理器;以及,
[0078]
与所述至少一个处理器通信连接的存储器;其中,
[0079]
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
[0080]
在第四方面,基于同样的思路,本说明书实施例还提供了对应于上述方法的一种非易失性计算机存储介质,存储有计算机可执行指令,当计算机读取存储介质中的计算机可执行指令后,该指令使得一个或多个处理器执行如第一方面所述的方法。
[0081]
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
[0082]
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种
功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
[0083]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
[0084]
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
[0085]
本领域内的技术人员应明白,本说明书实施例可提供为方法、系统、或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0086]
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0087]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0088]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0089]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0090]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0091]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、
数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0092]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0093]
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
[0094]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备、非易失性计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0095]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0096]
以上所述仅为本说明书的一个或多个实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书的一个或多个实施例可以有各种更改和变化。凡在本说明书的一个或多个实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1