一种识别方法及装置与流程

文档序号:22471711发布日期:2020-10-09 22:04阅读:88来源:国知局
一种识别方法及装置与流程

本申请涉及计算机视觉技术领域,特别涉及一种识别方法及装置。



背景技术:

行人重识别(personreid)是一项重要的计算机视觉任务,用于从在不同摄像机下捕捉的图像库中识别行人,或者在单个摄像机下识别不同的时间戳。近年来,由于其在大规模监控系统中的可疑人员搜索和多摄像机人员跟踪等领域巨大的潜在应用,行人重识别引起了学术界的广泛关注。然而,由于摄像机视角、照明、摄像机分辨率和人体姿势的巨大差异,使得行人重识别的任务极具挑战性。

基于分类损失函数的卷积神经网络是相关技术中比较常用的行人重识别方式。基于神经网络的行人重识别方式主要包括特征学习和特征匹配两个阶段。在特征学习中,通常特征的方向和幅值没有经过解耦,因此特征鉴别性可能同时存在于特征的方向和幅值这两个属性中。而在特征匹配阶段,通常只使用到特征的余弦距离,而余弦距离一般只考虑到特征之间的角度距离。因此,相关技术中的行人重识别方式在特征学习阶段和特征匹配阶段存在一定的不一致性。

因此,相关技术中亟需一种能够消除特征学习阶段和特征匹配阶段之间不一致性的行人重识别方法。



技术实现要素:

本申请实施例的目的在于提供一种识别方法及装置,可以实现对行人特征向量、分类权重向量的幅值与角度的解耦,能够统一特征学习和特征匹配阶段的计算方式。

本申请实施例提供的识别方法及装置具体是这样实现的:

一种识别方法,所述方法包括:

获取待识别行人图像;

将所述待识别行人图像输入至识别模型组件中,经所述识别模型组件输出识别结果;所述识别模型组件被设置为利用多个行人样本图像与所述行人样本图像中的行人身份之间的对应关系训练得到,且在训练阶段,将从所述行人样本图像提取的行人特征向量和所述识别模型组件的分类权重向量归一化处理成两个同心超球面。

一种识别装置,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:

获取待识别行人图像;

将所述待识别行人图像输入至识别模型组件中,经所述识别模型组件输出识别结果;所述识别模型组件被设置为利用多个行人样本图像与所述行人样本图像中的行人身份之间的对应关系训练得到,且在训练阶段,将从所述行人样本图像提取的行人特征向量和所述识别模型组件的分类权重向量归一化处理成两个同心超球面。

一种监测设备,包括摄像装置和识别装置,其中,

所述摄像装置,用于捕捉待识别行人图像;

所述识别装置,用于按照所述识别方法识别所述待识别行人图像。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行所述识别方法。

本申请各个实施例提供的识别方法及装置,可以在利用识别模型组件进行特征学习的阶段,将行人特征向量归一化为幅值相等的向量,以及将分类权重向量归一化为幅值相等的向量,这样,行人特征向量之间、行人特征向量与分类权重向量之间的距离可以忽略幅值的影响,而只考虑到特征的角度化鉴别性,实现对行人特征向量、分类权重向量的幅值与角度的解耦,能够统一特征学习和特征匹配阶段的计算方式。另外,本申请各个实施例提供的识别方法的实现比较直观,容易整合到实际业务中去,可以提高人搜的准确率,使得更多的基于人搜的业务得以提高表现。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的应用场景示意图;

图2是本申请实施例提供的应用场景示意图;

图3是本申请提供的识别方法的一种实施例的方法流程图;

图4是本申请实施例提供的同心超球面示意图;

图5是本申请实施例提供的同心超球面示意图;

图6是本申请提供的识别装置的一种实施例的模块结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

如上所述,在基于神经网络的行人重识别过程中,特征学习阶段往往同时考虑到特征向量的方向和幅值两种属性,而特征匹配阶段往往只考虑到特征向量的方向属性。因此,特征学习阶段和特征匹配阶段存在一定的不一致性,在特征匹配阶段利用特征学习阶段学习到的模型组件识别行人图像中的行人特征,可能导致识别结果不准确,甚至无法得出识别结果。

基于类似于上文描述的技术需求,本申请提供的识别方法可以将行人特征的方向属性和幅值属性进行解耦处理,使得行人重识别过程在特征匹配阶段和特征学习阶段保持一致性,从而可以得到较准确的识别结果。

下面通过一个具体的应用场景说明本实施例方法的具体实施方式。

在本应用场景中,某城市正在举行重要的国际会议,为了保证会议期间参会人员的安全,相关部门在城市重要公共场所设置监控摄像装置,捕捉行人的图像并识别行人的身份。如果发现可疑人员,还可以进一步根据不同位置的监控摄像装置跟踪该可以人员的行踪。如图1所示,在某街角处监控摄像装置捕捉到身穿白衬衫黑裤子行人的待识别行人图像,所述监控摄像装置在捕捉到所述待识别行人图像之后,可以将该待识别行人图像上传至云端进行处理。在云端服务器中,可以存储有大量的已知身份的行人对应的图像集。云端服务器在获取到所述待识别行人图像之后,目的在于从所述图像集获取与所述待识别行人图像之间距离最小的图像,从而确定所述待识别行人图像对应的行人身份。如图1所示,不同的行人身份分别对应于一个id,如身份证、地址信息等等。当然,在其他应用场景中,所述监控摄像装置还可以进行本地处理,本申请在此不做限制。

在本应用场景中,如图2所示,所述云端服务器或者所述监控摄像装置可以利用识别模型组件处理所述待识别行人图像。所述识别模型组件中还可以包括特征提取模块、特征压缩模块、特征匹配模块。所述特征提取模块用于提取所述待识别行人图像对应的行人特征向量。所述特征压缩模块用于对所述行人特征向量进行降维处理,降维处理不仅可以减少存储行人特征向量所需的存储空间、加快计算速度、去除冗余特征,还可以避免太多的特征或太复杂的模型导致的过拟合现象。所述特征匹配模块用于计算压缩后的行人特征向量与已知身份的行人特征向量之间的角度距离,角度距离越小,表示两个行人特征向量对应于同一id的可能性越大,具体的计算方式可以参考以下识别方法的具体实施方式,在此不做限制。

在本应用场景中,经过识别模型组件的识别,可以确定所述待识别行人图像对应的行人身份为第k类行人身份,身份id=375xxxx1。

下面结合附图对本申请所述的识别方法进行详细的说明。图3是本申请提供的识别方法的一种实施例的方法流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本申请实施例提供的执行顺序。所述方法在实际中的识别过程中或者装置执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。

图3是本申请提供的识别方法的一种实施例的方法流程图,如图3所述,所述方法可以包括以下步骤:

s301:获取待识别行人图像。

s303:将所述待识别行人图像输入至识别模型组件中,经所述识别模型组件输出识别结果;所述识别模型组件被设置为利用多个行人样本图像与所述行人样本图像中的行人身份之间的对应关系训练得到,且在训练阶段,将从所述行人样本图像提取的行人特征向量和所述识别模型组件的分类权重向量归一化处理成两个同心超球面。

本申请实施例中,在利用识别模型组件进行行人重识别之前,可以获取到待识别行人图像,本申请各个实施例方法的目的在于识别所述待识别行人图像中的行人身份是否属于已有的行人数据库中的行人身份。所述待识别行人图像中可以包括行人的脸部和/或身体图像。所述待识别行人图像可以是通过任何种类的摄像设备捕捉的具有行人特征的图像,如从街道监控录像中截取的视频帧、手机拍摄的行人图像等。

在获取到所述待识别行人图像之后,可以将所述待识别行人图像输入至识别模型组件中,经所述识别模型组件输出识别结果。在本申请的一个实施例中,所述识别模型组件可以被设置为按照下述方式训练得到:

s401:获取多个行人样本图像以及所述行人样本图像中的行人身份;

s403:构建识别模型组件,所述识别模型组件中设置有网络参数,所述网络参数中包括分类权重向量,所述分类权重向量为不同行人身份的类中心向量;

s405:分别提取所述多个行人样本图像中的行人特征向量;

s407:将从所述行人特征向量和所述分类权重向量归一化处理成两个同心超球面;

s409:基于所述多个行人样本图像中的行人特征向量,利用所述识别模型组件分别生成所述多个行人样本图像的预测结果;

s4011:基于所述预测结果与所述行人身份之间的差异,对所述网络参数进行迭代调整,直至所述差异满足预设要求。

本申请实施例中,所述识别模型组件被设置为利用多个行人样本图像与所述行人样本图像中的行人身份之间的对应关系训练得到。其中,所述多个行人样本图像可以包括多个行人身份的多个图像,在一个示例性的图像集合中,具有行人身份为“张三”的300张图像、行人身份为“李四”的500张图像、行人身份为“王五”的400张图像。当然,这些行人样本图像可以包括建立的实际应用场景中具有真实身份的用户的图像,如某个管辖区域内住户的图像等。另外,所述行人样本图像还可以从已有的图像数据源中获得,如market1501、cuhk01、cuhk03、dukemtmc-reid等等,本申请对于所述行人样本图像的获取方式不做限制。需要说明的是,所述行人身份可以作为标签设置于所述行人图像样本中。

本申请实施例中,构建的所述识别模型组件可以包括深度神经网络,所述深度神经网络可以包括多个网络层,所述网络层中设置有网络参数。所述网络参数中可以包括分类权重向量,所述分类权重向量可以为不同行人身份的类中心向量。在一个实施例中,所述深度神经网络的最后一个网络层可以包括全连接层,在所述全连接层中可以具有n个分类权重向量,所述n个分类权重向量可以分别对应于n个不同行人身份的类中心向量。也就是说,分类权重向量的数量与行人身份的数量相匹配,当行人图像对应的行人特征向量与某个类中心向量之间的距离越小,表示该行人图像的行人身份与该类中心向量对应的行人身份为同一行人身份的可能性越大。

基于此,在本申请实施例中,可以分别提取所述多个行人样本图像中的行人特征向量。在一些实施例中,提取所述行人特征向量的方法可以包括方向梯度直方图(histogramoforientedgradient,hog)、局部二值模式(localbinarypattern,lbp)、haar-like特征提取、灰度积分、模板匹配、snakes等算法,本申请对于行人特征向量提取的方式不做限制。

在本申请实施例中,在对所述识别模型组件进行训练的阶段,可以将所述行人特征向量和所述分类权重向量归一化处理成两个同心超球面。具体地,在一个实施例中,可以分别对所述多个行人图像样本中的行人特征向量进行归一化处理,使得所述行人特征向量的终点位于第一超球面上,并且,分别对所述识别模型组件的分类层的分类权重向量进行归一化处理,使得所述分类权重向量的终点位于第二超球面上,所述第一超球面和所述第二超球面为同心超球面。所述归一化处理包括l1归一化处理、l2归一化处理等等。在一个具体的示例中,可以利用下述公式(1)分别对所述分类权重向量、所述行人特征向量进行归一化处理:

其中,是对基于缩放因子α1进行l2归一化处理后的分类权重向量,是基于缩放因子α2进行l2归一化处理后的行人特征向量。

图4是对所述分类权重向量wl、所述行人特征向量x进行归一化处理后生成的同心超球面的效果图。如图4所示,归一化处理后的分类权重向量的终点均位于半径为α1的第一超球面(即内球面)上,而归一化处理后的行人特征向量均位于半径为α2的第二超球面(即外球面)上,所述第一超球面和所述第二超球面具有相同的球心o。在所述第二超球面上,更近的行人特征向量具有更小的角度距离,也就是说同一行人身份对应的多个行人特征向量的终点可能聚集于所述第二超球面的同一区域。另外,对应于同一行人身份的行人特征向量和分类权重向量之间的夹角较小。如图1所示,行人特征向量与分类权重向量之间的夹角分别为θ1和θ2,由于θ1小于θ2,因此,行人特征向量更有可能与分类权重向量对应于相同的行人身份。

本申请提供的实施例可以在对所述识别模型组件进行训练的阶段,将所有的行人特征向量归一化为幅值相等的向量,将所有的分类权重向量归一化为幅值相等的向量,这样,行人特征向量之间、行人特征向量与分类权重向量之间的距离可以忽略幅值的影响,而只考虑到角度距离,实现对行人特征向量、分类权重向量的幅值与角度的解耦。

本申请实施例中,在将所述行人特征向量和所述分类权重向量归一化处理成两个同心超球面之后,还可以对所述行人特征向量进行降维处理,降维处理不仅可以减少存储行人特征向量所需的存储空间、加快计算速度、去除冗余特征,还可以避免太多的特征或太复杂的模型导致的过拟合现象。在一个实施例中,所述降维处理的方式可以包括在特征提取网络层之后设置降维网络层,所述降维网络层中神经元的数量少于特征提取网络层中神经元的数量,这样,可以实现对所述行人特征向量的降维。需要说明的是,对所述行人特征向量的降维处理还可以在提取行人特征向量之后、生成所述同心超球面之前完成,本申请在此不做限制。

本申请实施例中,在将所述行人特征向量和所述分类权重向量归一化处理成两个同心超球面之后,可以基于所述多个行人样本图像中的行人特征向量,利用所述识别模型组件分别生成所述多个行人样本图像的预测结果。所述预测结果例如所述行人样本图像分别为各个不同行人身份的概率向量,在一个示例中,所述预测结果为p={0.1,0.06,0,2,0.04,0.17,…,0.28}。然后,可以基于所述预测结果与所述行人身份之间的差异,对所述网络参数进行迭代调整,直至所述差异满足预设要求。

在本申请实施例中,基于所述同心超球面,在对所述网络参数进行迭代调整的过程中,可以构建损失角度函数,所述损失角度函数被设置为分类损失角度函数与三元组损失角度函数的加权和。然后,可以基于所述损失角度函数,对所述网络参数进行迭代调整,直至所述损失函数的值满足预设要求。如上所述,所述同心超球面可以实现对行人特征向量、分类权重向量的幅值与角度两个属性的解耦,且不同行人特征向量的幅值均相等、不同分类权重向量的幅值均相等,因此,构建的损失函数只与角度相关,故称为损失角度函数。在一个实施例中,所述损失角度函数l可以用公式(2)表示:

其中,lat、lac分别为三元组损失角度函数和分类损失角度函数,λ为权重系数。

本申请实施例中,由于三元组损失角度函数和分类损失角度函数各有优势,一方面,三元组损失函数可以减小类内距离,另一方面,分类损失角度函数可以增大类间距离,因此,将这两种分类函数相结合,可以增强所述识别模型组件的分类性能。

在本申请的一个实施例中,在利用所述三元组损失函数的情况下,需要构建三元组样本。在本申请实施例中,构建的三元组样本可以包括在线高难三元组样本(onlinehardtriplet),所述在线高难三元组样本可以包括锚样本、正样本、负样本,其中,所述正样本与所述锚样本为同一行人身份的夹角最大的行人特征向量,所述负样本与所述锚样本为不同行人身份的夹角最小的行人特征向量。本申请实施例中,基于所述同心超球面,在计算不同行人特征向量之间的距离的过程中,只需要计算两个行人特征向量之间的角度,角度越大,表示两个行人特征向量之间的距离越大,反之越小。从上述对在线高难三元组样本的的定义来看,相对于普通的三元组样本,在线高难三元组样本可以进一步地减小同一行人身份对应的行人特征向量之间的距离(即夹角),从而进一步提升所述识别模型组件的分类性能。在构建生成所述在线高难三元组样本之后,可以将所述在线高难三元组样本输入至所述识别模型组件,经所述识别模型组件输出预测结果。基于此,在本申请的一个实施例中,构建的所述三元组损失函数lat可以包括下述公式(3):

其中,p为行人身份的数量,n为各个行人身份对应的样本数量,i为第i个锚样本,θiap表示第i个锚样本与正样本之间的角度,θian表示第i个锚样本与负样本之间的角度,θm表示角度阈值,即锚样本与正样本之间的角度与锚样本和负样本之间的角度之间的最小间隔。

在本申请实施例中,所述分类损失角度函数lac可以包括下述公式(4):

其中,所述i表示第i个样本,θyi表示行人特征向量x与对应的分类权重向量wl(即类中心向量)之间的夹角,k为总的分类权重向量的数量,也就是行人身份的数量,θk为行人特征向量x与第k个分类权重向量之间的夹角。

由公式(4)可以发现,训练阶段的目标是最大化其对应于同一行人身份的行人特征向量和分类权重向量之间的余弦相似性,也就是最小化两者的角度距离。本申请实施例中,第l类对应的分类权重向量wl将累积来自所有同一行人身份的多个样本的信息,因此,可以被视为第l个行人身份的类中心向量。

图5是损失角度函数l所产生的效果图。如图5所示,在p*n的样本集合中,锚样本特征为与锚样本特征之间具有最大角度距离的正样本特征为与锚样本特征之间具有最小角度距离的负样本特征为构成高难三元组样本。三元组损失角度函数的目的在于最大化之间的夹角θan,并最小化之间的夹角θap。分类损失角度函数的目的在于最小化行人特征向量与其对应的分类权重向量(即类中心向量)之间的角度。如图5所示,为对应于同一行人身份的行人特征向量,损失角度函数l所产生的效果不仅使得之间的夹角变小,还使得分别与其对应的分类权重向量(即内球面中最左侧的向量)之间的夹角变小。

在本申请实施例中,在训练完成所述识别模型组件之后,并利用所述识别模型组件进行特征匹配的过程中,可以提取所述待识别行人图像的目标行人特征向量。然后,可以分别计算所述目标行人特征向量与各个分类权重向量之间的夹角,并根据所述夹角确定对所述待识别行人图像的识别结果。在本申请的一个实施例中,在所述夹角小于预设阈值的情况下,确定所述待识别行人图像的行人身份与所述分类权重向量对应的行人身份为同一行人身份。在另一个实施例中,还可以将夹角最小的分类权重向量对应的行人身份作为所述待识别行人图像对应的行人身份,本申请在此不做限制。

本申请各个实施例提供的识别方法可以在利用识别模型组件进行特征学习的阶段,将行人特征向量归一化为幅值相等的向量,以及将分类权重向量归一化为幅值相等的向量,这样,行人特征向量之间、行人特征向量与分类权重向量之间的距离可以忽略幅值的影响,而只考虑到特征的角度化鉴别性,实现对行人特征向量、分类权重向量的幅值与角度的解耦,能够统一特征学习和特征匹配阶段的计算方式。另外,本申请各个实施例提供的行人重识别方法的实现比较直观,容易整合到实际业务中去,可以提高人搜的准确率,使得更多的基于人搜的业务得以提高表现。

对应于上述实施例方法,如图6所示,本申请还提供一种行人重识别装置,可以包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时可以实现:

获取待识别行人图像;

将所述待识别行人图像输入至识别模型组件中,经所述识别模型组件输出识别结果;所述识别模型组件被设置为利用多个行人样本图像与所述行人样本图像中的行人身份之间的对应关系训练得到,且在训练阶段,将从所述行人样本图像提取的行人特征向量和所述识别模型组件的分类权重向量归一化处理成两个同心超球面。

可选的,在本申请的一个实施例中,所述识别模型组件被设置为按照下述方式训练得到:

获取多个行人样本图像以及所述行人样本图像中的行人身份;

构建识别模型组件,所述识别模型组件中设置有网络参数,所述网络参数中包括分类权重向量,所述分类权重向量为不同行人身份的类中心向量;

分别提取所述多个行人样本图像中的行人特征向量;

将所述行人特征向量和所述分类权重向量归一化处理成两个同心超球面;

基于所述多个行人样本图像中的行人特征向量,利用所述识别模型组件分别生成所述多个行人样本图像的预测结果;

基于所述预测结果与所述行人身份之间的差异,对所述网络参数进行迭代调整,直至所述差异满足预设要求。

可选的,在本申请的一个实施例中,所述处理器在实现步骤将从所述行人样本图像提取的行人特征向量和所述识别模型组件的分类权重向量归一化处理成两个同心超球面时包括:

分别对所述多个行人样本图像中的行人特征向量进行归一化处理,使得所述行人特征向量的终点位于第一超球面上;

分别对所述识别模型组件的分类层的分类权重向量进行归一化处理,使得所述分类权重向量的终点位于第二超球面上,所述第一超球面和所述第二超球面为同心超球面。

可选的,在本申请的一个实施例中,所述处理器在实现步骤基于所述预测结果与所述行人身份之间的差异,对所述网络参数进行迭代调整,直至所述差异满足预设要求时包括:

构建损失角度函数,所述损失角度函数被设置为分类损失角度函数与三元组损失角度函数的加权和;

基于所述损失角度函数,对所述网络参数进行迭代调整,直至所述损失函数的值满足预设要求。

可选的,在本申请的一个实施例中,所述处理器在实现步骤基于所述多个行人样本图像中的行人特征向量,利用所述识别模型组件分别生成所述多个行人样本图像的预测结果时包括:

基于所述行人特征向量构建三元组样本,所述三元组样本包括锚样本、正样本、负样本,其中,所述正样本与所述锚样本为同一行人身份的夹角最大的行人特征向量,所述负样本与所述锚样本为不同行人身份的夹角最小的行人特征向量;

利用所述识别模型组件分别获取所述三元组样本的预测结果。

可选的,在本申请的一个实施例中,所述处理器在实现步骤将所述行人特征向量和所述分类权重向量归一化处理成两个同心超球面时包括:

对所述多个行人样本图像中的行人特征向量进行降维处理;

从将降维处理后的行人特征向量和所述分类权重向量归一化处理成两个同心超球面。

可选的,在本申请的一个实施例中,所述识别模型组件利用下述方式确定所述识别结果:

提取所述待识别行人图像的目标行人特征向量;

分别计算所述目标行人特征向量与所述分类权重向量之间的夹角;

根据所述夹角确定对所述待识别行人图像的所述识别结果。

可选的,在本申请的一个实施例中,所述处理器在实现步骤根据所述夹角确定对所述待识别行人图像的所述识别结果时包括:

在所述夹角小于预设阈值的情况下,确定所述待识别行人图像的行人身份与所述分类权重向量对应的行人身份为同一行人身份。

本申请另一方面还提供一种监测设备,包括摄像装置和识别装置,其中,

所述摄像装置,用于捕捉待识别行人图像;

所述识别装置,用于按照以上任一实施例所述的识别方法识别所述待识别行人图像。

本申请另一方面还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任一实施例所述识别方法的步骤。

所述计算机可读存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。本实施例所述的计算机可读存储介质有可以包括:利用电能方式存储信息的装置如,各式存储器,如ram、rom等;利用磁能方式存储信息的装置如,硬盘、软盘、磁带、磁芯存储器、磁泡存储器、u盘;利用光学方式存储信息的装置如,cd或dvd。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1