CN110188795A - 图像分类方法、数据处理方法和装置 - Google Patents
图像分类方法、数据处理方法和装置 Download PDFInfo
- Publication number
- CN110188795A CN110188795A CN201910335678.8A CN201910335678A CN110188795A CN 110188795 A CN110188795 A CN 110188795A CN 201910335678 A CN201910335678 A CN 201910335678A CN 110188795 A CN110188795 A CN 110188795A
- Authority
- CN
- China
- Prior art keywords
- convolution
- benchmark
- convolution kernel
- group
- mask tensor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请提供了图像分类方法和装置,涉及人工智能领域,具体涉及计算视觉领域。其中,该图像分类方法包括:获取神经网络的基准卷积核的卷积核参数和神经网络的掩码张量,对该神经网络的基准卷积核以及基准卷积核对应的掩码张量进行哈达玛积运算,得到多个子卷积核;根据该多个子卷积核对待处理图像进行卷积处理,并根据卷积最终得到的卷积特征图对待处理图像分类,得到待处理图像的分类结果。由于掩码张量相对于卷积核占用的存储空间更小,因而能够使得一些存储资源受限的设备也能够部署包含基准卷积核和掩码张量的神经网络,进而实现对图像的分类。
Description
技术领域
本申请涉及人工智能领域,并且更具体地,涉及一种图像分类方法、数据处理方法和装置。
背景技术
随着人工智能技术的快速发展,神经网络的处理能力变得越来越强,神经网络所包含的参数也越来越多,这样就使得这些神经网络在部署或者应用时往往需要占用很大的存储空间来存储神经网络的参数。这就影响了神经网络在某些存储资源受限的设备上的部署和应用。
以对图像进行分类的神经网络为例,很多用于图像分类的神经网络(尤其是一些网络结构比较复杂,功能比较强大的神经网络)由于包含的参数较多,因此,很难部署到一些存储空间比较有限设备(例如,手机,摄像头,智能家居)上,影响了神经网络的应用。因此,如何降低神经网络的存储开销是一个需要解决的问题。
发明内容
本申请提供一种图像分类方法,数据处理方法和装置,以使得神经网络能够部署在一些存储资源有限的设备上并进行图像分类处理。
第一方面,提供了一种图像分类方法,该方法包括:获取神经网络的M个基准卷积核的卷积核参数;获取神经网络的N组掩码张量;对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;根据多个子卷积核分别对待处理图像进行卷积处理,得到多个卷积特征图;根据多个卷积特征图对待处理图像进行分类,得到待处理图像的分类结果。
其中,上述M和N均为正整数,上述N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
另外,上述基准卷积核是用于获取或者得到神经网络的其他子卷积核的一个比较基础的卷积核,该基准卷积核也可以称为基础卷积核。
上述图像分类方法可以由图像分类装置执行,该图像分类装置可以是具有图像处理功能的电子设备,该电子设备可以是动终端(例如,智能手机),电脑,个人数字助理,可穿戴设备,车载设备,物联网设备或者其他能够进行图像处理的设备。
可选地,上述方法还包括:获取待处理图像。
上述待处理图像可以是待分类的图像或者图片。
上述获取待处理图像,既可以从摄像头获取,也可以从相册中获取。
具体地,当上述方法由图像分类装置执行时,可以通过该图像分类装置的摄像头来获取图片(例如,实时拍摄图片),也可以从该图像分类装置的内部存储空间存储的相册中获取待处理图像。
可选地,上述M个基准卷积核的卷积核参数存储在寄存器中。
可选地,上述获取神经网络的M个基准卷积核的卷积核参数,包括:从寄存器中获取(读取)神经网络的M个基准卷积核的卷积核参数。
当上述M个基准卷积核的卷积核参数存储在寄存器中时,能够较为快速地从寄存器中获取M个基准卷积核的卷积核参数(相对于从外部存储中获取,从寄存器中获取的速度会更快一些),能够在一定程度上提高上述方法执行速度。
可选地,上述N组掩码张量存储在寄存器中。
可选地,上述获取神经网络的N组掩码张量,包括:从寄存器中获取(读取)神经网络的N组掩码张量。
当上述N组掩码张量存储在寄存器中时,能够较为快速地从寄存器中获取N组掩码张量(相对于从外部存储中获取,从寄存器中获取参数的速度会更快一些),能够在一定程度上提高上述方法执行速度。
上述寄存器具体可以是权重存储器。
本申请中,在对待处理图像进行分类处理时,只需要从存储空间中获取基准卷积核的卷积核参数以及相应的掩码张量,就能够利用基准卷积核以及相应的掩码张量实现对待处理图像的卷积处理,进而实现对待处理图像的分类,而不必获取神经网络中每个卷积核的参数,可以减少神经网络部署时产生的存储开销,使得神经网络能够部署在一些存储资源有限的设备上并进行图像分类处理。
具体地,相对于基准卷积核中的参数中的元素,掩码张量中元素占用的存储空间更小,因此,采用基准卷积核与掩码张量相结合的方式得到子卷积核的方式,减少了卷积核参数的数量,实现了对卷积核参数的压缩,使得神经网络能够部署到一些存储资源受限的设备上执行图像分类任务。
可选地,上述N组掩码张量中每组掩码张量均包含T个掩码张量,对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核,包括:对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到M×T个子卷积核。
具体地,对于一个基准卷积核来说,该基准卷积核与对应的一组掩码张量中的T个掩码张量进行哈达玛积运算可以得到T个子卷积核,那么,对于M个基准卷积核来说,通过与对应的掩码张量进行哈达玛积运算,一共可以得到M*T个子卷积核。
可选地,上述根据多个卷积特征图对待处理图像进行分类,得到待处理图像的分类结果,包括:对多个卷积特征图进行拼接,得到目标卷积特征图;根据目标卷积特征图对待处理图像行分类,得到待处理图像的分类结果。
上述多个卷积特征的宽和高应当是相同的,上述对多个卷积特征图进行拼接实质上就是将上述多个卷积特征图的通道数叠加,得到一个通道数是多个卷积特征图的通道数总和的目标卷积特征图。
例如,一共存在3个卷积特征图,这3个卷积特征图的大小分别为c1×d1×d2,c2×d1×d2,c3×d1×d2,那么,对这3个卷积特征图进行拼接得到的目标特征图的大小为c×d1×d2,其中,c=c1+c2+c3。
应理解,上述M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量,上述N组掩码张量中的一组掩码张量可以对应上述M个基准卷积核中的一个或者多个卷积核。
结合第一方面,在第一方面的某些实现方式中,N小于M,M个基准卷积核中的至少两个基准卷积核对应N组掩码张量中的一组掩码张量。
当N小于M时,会出现多个基准卷积核共同对应同一组掩码张量(共享一组掩码张量)的情况,这种情况可以称为掩码张量共享的情况。在掩码张量共享的情况下,在进行哈达玛积运算时,部分基准卷积核会与相同的掩码张量进行运算得到子卷积核,这样能够进一步减少掩码张量的数量,可以进一步的减少存储开销。
进一步的,上述N=1,此时只需要保存一组掩码张量即可,节省存储开销的效果更加明显。
结合第一方面,在第一方面的某些实现方式中,N=M,M个基准卷积核与N组掩码张量一一对应。
每个基准卷积核对应一组掩码张量,每一组掩码张量也对应一个基准卷积核,基准卷积核与掩码张量组是一一对应的关系,这种情况可以称为掩码张量独立的情况。在这种情况下,基准卷积核之间并没有共享掩码张量组。相比于掩码张量共享的情况,虽然掩码张量独立的情况下的包含的参数量稍微大一点,但是由于每个基准卷积核都是与不同组的掩码张量进行运算来得到子卷积核的,这样就使得最终根据这些子卷积核提取到的图像特征更具区分性和判别性,能够在一定程度上提高图像分类的效果。
结合第一方面,在第一方面的某些实现方式中,上述N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。
当两个掩码张量满足正交时,说明这两个掩码张量中的参数的差异较大,根据这两个掩码张量与相同基准卷积核或者不同基准卷积核做哈达玛积运算,得到的子卷积核之间的差异也会比较大,从而使得根据相应的子卷积核进行卷积处理时,提取到的图像特征更具区分性和判别性,能够在一定程度上提高图像分类的效果。
可选地,上述N组掩码张量中至少一组掩码张量中的全部掩码张量满足两两正交。
N组掩码张量中至少一组掩码张量中的任意两个掩码张量满足两两正交时,根据基准卷积核与掩码张量进行卷积处理提取到的图像的特征更加丰富,可以提高图像的最终处理效果。
可选地,上述N组掩码张量中每组掩码张量中的全部掩码张量满足两两正交。
当N组掩码张量中的每组掩码张量中的全部掩码张量均满足两两正交时,能够根据基准卷积核与掩码张量进行卷积处理提取到的图像的特征更加丰富,可以提高图像的最终处理效果。
可选地,上述神经网络的基准卷积核由上述M个基准卷积核组成,上述神经网络的掩码张量由上述N组掩码张量组成。
其中,M和N的大小可以根据神经网络构建的情况来确定。例如,上述M和N可以根据神经网络的网络结构的复杂度以及神经网络的应用需求来确定,当上述神经网络的网络结构的复杂度较高或者应用需求较高(例如,对处理能力要求较高)时,可以将M和/或N设置成较大的数值,而当上述神经网络的网络结构比较简单或者应用需求较低(例如,对处理能力要求较低)时,可以将M和/或N设置成较小的数值。
可选地,上述M个基准卷积核大小完全相同或者完全不同或者部分相同。
当M个基准卷积核中存在不同大小的基准卷积核时,能够最终从待处理图像中提取出更丰富的图像特征。具体地,不同的基准卷积核与相应的掩码张量进行哈达玛积运算时得到的子卷积核一般也不相同,根据这些不同的子卷积核能够得到从待处理图像中提取出更全面更有区别性的特征。
进一步的,当M个基准卷积核的大小均不相同时,能够进一步的从待处理图像中提取出更丰富的图像特征,便于后续对待处理图像进行更好的分类。
可选地,上述N组掩码张量完全相同或者完全不同或者部分相同。
应理解,上述N组掩码张量中的每组掩码张量内部包含的各个掩码张量相同。
上述M组基准卷积核中的每个基准卷积核都会对应N组掩码张量中的一组掩码张量,在本申请中,由于基准卷积核能够与对应的一组掩码张量中的掩码张量进行哈达玛积运算,因此,基准卷积核的大小与其对应的掩码张量的大小相同。只有这样,基准卷积核才能与对应的掩码张量进行哈达玛积运算,从而得到子卷积核。
可选地,上述N组掩码张量中的任意一组掩码张量与对应的基准卷积核的大小相同。
也就是说,在与某个基准卷积核相对应的一组掩码张量中,每个掩码张量的大小都与对应的基准卷积核的大小相同。
如果上述N组掩码中的第一组掩码张量与M个基准卷积核中的第一基准卷积核相对应,那么,该第一组掩码张量中的每个掩码张量的大小与第一基准卷积核的大小相同。
具体地,如果第一基准卷积核大小为c×d1×d2,其中,c表示通道数,d1和d2分别表示高和宽。那么,第一组掩码张量中的任意一个第一掩码张量的大小也为c×d1×d2(其中,c为通道数,d1和d2分别是高和宽)。
结合第一方面,在第一方面的某些实现方式中,上述M个基准卷积核的卷积核参数以及N组掩码张量是根据训练图像对神经网络进行训练得到的。
其中,上述训练图像的图像类别与待处理图像的图像类别相同。例如,当待处理图像为人体运动的图像时,训练图像可以是包含人体各种运动类型的图像。
具体地,在构建神经网络时,可以根据需要构建的网络的性能需求,网络结构的复杂性以及存储相应的卷积核参数和掩码张量的参数需要的存储空间的大小等因素,来确定M和N的数值以及每组掩码张量所包含的掩码张量的个数,然后初始化M个基准卷积核的卷积核参数以及N组掩码张量(也就是为这些基准卷积核和掩码张量设置一个初始值),并构造一个损失函数。接下来,就可以利用训练图像对神经网络进行训练,在训练的过程中可以根据损失函数的大小来更新基准卷积核以及掩码张量中的参数值,当该损失函数收敛或者损失函数的函数值满足要求,或者训练次数达到预设次数时,可以停止训练,将此时基准卷积核和掩码张量中的参数值确定为基准卷积核和掩码张量的最终的参数值,接下来,就可以根据需要将包含相应参数值(也就是训练得到的基准卷积核和掩码张量的最终的参数值)的神经网络部署到需要的设备上去,进而能够利用部署该神经网络的设备进行图像分类。
第二方面,提供了一种图像分类方法,该方法包括:获取神经网络的M个基准卷积核的卷积核参数;获取神经网络的N组掩码张量;根据M个基准卷积核对待处理图像进行卷积处理,得到待处理图像的M个基准卷积特征图;对M个基准卷积特征图和N组掩码张量进行哈达玛积运算,得到待处理图像的多个卷积特征图;根据待处理图像的多个卷积特征图对待处理图像进行分类,得到待处理图像的分类结果。
其中,上述M和N均为正整数,上述N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
可选地,上述方法还包括:获取待处理图像。
上述待处理图像可以是待分类的图像或者图片。
上述获取待处理图像,既可以从摄像头获取,也可以从相册中获取。
可选地,上述M个基准卷积核的卷积核参数存储在寄存器中。
可选地,上述获取神经网络的M个基准卷积核的卷积核参数,包括:从寄存器中获取(读取)神经网络的M个基准卷积核的卷积核参数。
当上述M个基准卷积核的卷积核参数存储在寄存器中时,能够较为快速地从寄存器中获取M个基准卷积核的卷积核参数(相对于从外部存储中获取,从寄存器中获取参数的速度会更快一些),能够在一定程度上提高上述方法执行速度。
可选地,上述N组掩码张量存储在寄存器中。
可选地,上述获取神经网络的N组掩码张量,包括:从寄存器中获取(读取)神经网络的N组掩码张量。
当上述N组掩码张量存储在寄存器中时,能够较为快速地从寄存器中获取N组掩码张量(相对于从外部存储中获取,从寄存器中获取参数的速度会更快一些),能够在一定程度上提高上述方法执行速度。
上述寄存器具体可以是权重存储器。
本申请中,在对待处理图像进行分类处理时,只需要从存储空间中获取基准卷积核的卷积核参数以及相应的掩码张量,就能够利用基准卷积核以及相应的掩码张量实现对待处理图像的卷积处理,进而实现对待处理图像的分类,而不必获取神经网络中每个卷积核的参数,可以减少神经网络部署时产生的存储开销,使得神经网络能够部署在一些存储资源有限的设备上并进行图像分类处理。
可选地,上述根据多个卷积特征图对待处理图像进行分类,得到待处理图像的分类结果,包括:对多个卷积特征图进行拼接,得到目标卷积特征图;根据目标卷积特征图对待处理图像行分类,得到待处理图像的分类结果。
结合第二方面,在第二方面的某些实现方式中,N小于M,M个基准卷积核中的至少两个基准卷积核对应N组掩码张量中的一组掩码张量。
当N小于M时,会出现多个基准卷积核共同对应同(共享)一组掩码张量的情况,这种情况可以称为掩码张量共享的情况。在掩码张量共享的情况下,在进行哈达玛积运算时,部分基准卷积核会与相同的掩码张量进行运算得到子卷积核,这样能够进一步减少掩码张量的数量,可以进一步的减少存储开销。
结合第二方面,在第二方面的某些实现方式中,N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。
每个基准卷积核对应一组掩码张量,每一组掩码张量也对应一个基准卷积核,基准卷积核与掩码张量组是一一对应的关系,这种情况可以称为掩码张量独立的情况。在这种情况下,基准卷积核之间并没有共享掩码张量组。相比于掩码张量共享的情况,虽然掩码张量独立的情况下的包含的参数量稍微大一点,但是由于每个基准卷积核都是与不同组的掩码张量进行运算来得到子卷积核的,这样就使得最终根据这些子卷积核提取到的图像特征更具区分性和判别性,能够在一定程度上提高图像分类的效果。
结合第二方面,在第二方面的某些实现方式中,上述N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。当两个掩码张量满足正交时,说明这两个掩码张量中的参数的差异较大,根据这两个掩码张量与相同基准卷积核或者不同基准卷积核做哈达玛积运算,得到的子卷积核之间的差异也会比较大,从而使得根据相应的子卷积核进行卷积处理时,提取到的图像特征更具区分性和判别性,能够在一定程度上提高图像分类的效果。
结合第二方面,在第二方面的某些实现方式中,上述M个基准卷积核的卷积核参数以及N组掩码张量是根据训练图像对神经网络进行训练得到的。
应理解,在上述第一方面中对相关内容的扩展、限定、解释和说明也适用于第二方面中相同的内容,这里在第二方面中不再详细描述。
第三方面,提供了一种数据处理方法,该方法包括:获取神经网络的M个基准卷积核的卷积核参数;获取神经网络的N组掩码张量;对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;根据多个子卷积核分别对多媒体数据进行卷积处理,得到多媒体数据的多个卷积特征图;根据多媒体数据的多个卷积特征图对多媒体数据进行处理。
其中,上述M和N均为正整数,上述N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
可选地,上述多媒体数据是文字、声音、图片(图像)、视频、动画等等
可选地,当上述多媒体数据为图像时,根据多媒体数据的多个卷积特征图对多媒体数据进行处理,包括:根据多媒体数据的多个卷积特征图对多媒体数据进行分类或者识别。
可选地,当上述多媒体数据为图像时,根据多媒体数据的多个卷积特征图对多媒体数据进行处理,包括:根据多媒体数据的多个卷积特征图对多媒体数据进行图像处理。
例如,对获取到的人脸图像进行卷积处理,得到人脸图像的卷积特征图,然后对该人脸图像的卷积特征图进行处理,生成与人脸表情相对应的动画表情。或者,也可以将其他的表情迁移到输入的人脸图像中再输出。
本申请中,在利用神经网络对多媒体数据进行处理时,只需要获取神经网络的基准卷积核的卷积核参数以及相应的掩码张量,就能够利用基准卷积核以及相应的掩码张量实现对待处理数据的卷积处理,从而能够减少利用神经网络进行卷积处理时的存储开销,进而使得神经网络能够部署到更多存储资源受限的设备上并对多媒体数据进行处理。
第四方面,提供了一种数据处理方法,该方法包括:获取神经网络的M个基准卷积核的卷积核参数;获取神经网络的N组掩码张量;根据M个基准卷积核对待处理图像进行卷积处理,得到待处理图像的M个基准卷积特征图;对M个基准卷积特征图和N组掩码张量进行哈达玛积运算,得到多媒体数据的多个卷积特征图;据多媒体数据的多个卷积特征图对多媒体数据进行处理。
其中,上述M和N均为正整数,上述N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
可选地,上述多媒体数据是文字、声音、图片(图像)、视频、动画等等
可选地,当上述多媒体数据为图像时,根据多媒体数据的多个卷积特征图对多媒体数据进行处理,包括:根据多媒体数据的多个卷积特征图对多媒体数据进行分类或者识别。
可选地,当上述多媒体数据为图像时,根据多媒体数据的多个卷积特征图对多媒体数据进行处理,包括:根据多媒体数据的多个卷积特征图对多媒体数据进行图像处理。
例如,对获取到的人脸图像进行卷积处理,得到人脸图像的卷积特征图,然后对该人脸图像的卷积特征图进行处理,生成与人脸表情相对应的动画表情。
第五方面,提供了一种图像处理方法,该方法包括:获取神经网络的M个基准卷积核的卷积核参数;获取神经网络的N组掩码张量;根据M个基准卷积核的卷积核参数和N组掩码张量对道路画面进行卷积处理,得到道路画面的多个卷积特征图;对道路画面的多个卷积特征图进行反卷积处理,获得道路画面的语义分割结果。
其中,上述M和N均为正整数,上述N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
本申请中,在利用神经网络对道路画面进行图像处理时,只需要获取神经网络的基准卷积核的卷积核参数以及相应的掩码张量,就能够利用基准卷积核以及相应的掩码张量实现对道路画面的卷积处理,从而能够减少利用神经网络进行卷积处理时的存储开销,进而使得神经网络能够部署到更多存储资源受限的设备上并对道路画面进行图像处理。
可选地,上述方法还包括:获取道路画面。
上述方法的执行主体可以是自动驾驶车辆中的图像处理装置,上述道路画面可以是路边的监控设备获取到的,也可以是自动驾驶车辆根据摄像头实时获取的图像。
可选地,上述对道路画面的多个卷积特征图进行反卷积处理,获得道路画面的语义分割结果,包括:对道路画面的多个卷积特征图进行拼接处理,得到道路画面的目标卷积特征图;对道路画面的目标卷积特征图进行反卷积处理,获得道路画面的语义分割结果。
上述道路画面的多个卷积特征的宽和高应当是相同的,上述对多个卷积特征图进行拼接实质上就是将上述多个卷积特征图的通道数叠加,得到一个通道数是多个卷积特征图的通道数总和的目标卷积特征图。
可选地,上述根据M个基准卷积核的卷积核参数和N组掩码张量对道路画面进行卷积处理,得到道路画面的多个卷积特征图,包括:对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;根据多个子卷积核分别对道路画面进行卷积处理,得到道路画面的多个卷积特征图。
可选地,上述根据M个基准卷积核的卷积核参数和N组掩码张量对道路画面进行卷积处理,得到道路画面的多个卷积特征图,包括:根据M个基准卷积核对道路画面进行卷积处理,得到道路画面的M个基准卷积特征图;对M个基准卷积特征图和N组掩码张量进行哈达玛积运算,得到道路画面的多个卷积特征图。
通过先采用基准卷积核对道路画面进行卷积处理,在得到一个基准的卷积特征图之后,再结合掩码张量来获取道路画面的多个卷积特征图,能够减少卷积计算的次数,可以在一定程度上起到降低运算量的效果。
第六方面,提供了一种图像处理方法,该方法包括:获取神经网络的M个基准卷积核的卷积核参数;获取神经网络的N组掩码张量;对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;根据多个子卷积核分别对道路画面进行卷积处理,得到道路画面的多个卷积特征图;将人脸图像的多个卷积特征图与人脸图像对应身份证件的图像的卷积特征图进行对比,得到人脸图像的验证结果。
其中,上述M和N均为正整数,上述N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
本申请中,在利用神经网络对人脸图像进行图像处理时,只需要获取神经网络的基准卷积核的卷积核参数以及相应的掩码张量,就能够利用基准卷积核以及相应的掩码张量实现对人脸图像的卷积处理,从而能够减少利用神经网络进行卷积处理时的存储开销,进而使得神经网络能够部署到更多存储资源受限的设备上并对人脸图像进行图像处理。
可选地,上述方法还包括:获取人脸图像。
可选地,上述根据M个基准卷积核的卷积核参数和N组掩码张量对人脸图像进行卷积处理,得到人脸图像的多个卷积特征图,包括:对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;根据多个子卷积核分别对人脸图像进行卷积处理,得到人脸图像的多个卷积特征图。
可选地,上述根据M个基准卷积核的卷积核参数和N组掩码张量对人脸图像进行卷积处理,得到人脸图像的多个卷积特征图,包括:根据M个基准卷积核对人脸图像进行卷积处理,得到人脸图像的M个基准卷积特征图;对M个基准卷积特征图和N组掩码张量进行哈达玛积运算,得到人脸图像的多个卷积特征图。
通过先采用基准卷积核对人脸图像进行卷积处理,在得到一个基准的卷积特征图之后,再结合掩码张量来获取道路画面的多个卷积特征图,能够减少卷积计算的次数,可以在一定程度上起到降低运算量的效果。
第七方面,提供了一种图像分类装置,该图像分类装置包括:存储器,用于存储神经网络的M个基准卷积核的卷积核参数和N组掩码张量;处理器,用于获取神经网络的M个基准卷积核的卷积核参数和N组掩码张量,并执行以下操作:对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;根据多个子卷积核分别对待处理图像进行卷积处理,得到多个卷积特征图;根据多个卷积特征图对待处理图像进行分类,得到待处理图像的分类结果。
其中,上述M和N均为正整数,N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
本申请中,在对待处理图像进行分类处理时,只需要从存储空间中获取基准卷积核的卷积核参数以及相应的掩码张量,就能够利用基准卷积核以及相应的掩码张量实现对待处理图像的卷积处理,进而实现对待处理图像的分类,而不必获取神经网络中每个卷积核的参数,可以减少神经网络部署时产生的存储开销,使得神经网络能够部署在一些存储资源有限的设备上并进行图像分类处理。
可选地,上述根据多个卷积特征图对待处理图像进行分类,得到待处理图像的分类结果,包括:对多个卷积特征图进行拼接,得到目标卷积特征图;根据目标卷积特征图对待处理图像行分类,得到待处理图像的分类结果。
结合第七方面,在第七方面的某些实现方式中,N小于M,M个基准卷积核中的至少两个基准卷积核对应N组掩码张量中的一组掩码张量。
结合第七方面,在第七方面的某些实现方式中,N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。
结合第七方面,在第七方面的某些实现方式中,上述M个基准卷积核的卷积核参数以及N组掩码张量是根据训练图像对神经网络进行训练得到的。
应理解,上述第七方面的图像分类装置与第一方面的图像分类方法是相对应的,第七方面中的图像分类装置能够执行第一方面中的图像分类方法,在上述第一方面中对相关内容的扩展、限定、解释和说明也适用于第七方面中相同的内容,这里对第七方面的相关内容不再详细描述。
第八方面,提供了一种图像分类装置,该图像分类装置包括:存储器,用于存储神经网络的M个基准卷积核的卷积核参数和N组掩码张量;处理器,用于获取神经网络的M个基准卷积核的卷积核参数和N组掩码张量,并执行以下操作:根据M个基准卷积核对待处理图像进行卷积处理,得到待处理图像的M个基准卷积特征图;对M个基准卷积特征图和N组掩码张量进行哈达玛积运算,得到待处理图像的多个卷积特征图;根据待处理图像的多个卷积特征图对待处理图像进行分类,得到待处理图像的分类结果。
其中,上述M和N均为正整数,N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量
本申请中,在对待处理图像进行分类处理时,只需要从存储空间中获取基准卷积核的卷积核参数以及相应的掩码张量,就能够利用基准卷积核以及相应的掩码张量实现对待处理图像的卷积处理,进而实现对待处理图像的分类,而不必获取神经网络中每个卷积核的参数,可以减少神经网络部署时产生的存储开销,使得神经网络能够部署在一些存储资源有限的设备上并进行图像分类处理。
可选地,上述根据多个卷积特征图对待处理图像进行分类,得到待处理图像的分类结果,包括:对多个卷积特征图进行拼接,得到目标卷积特征图;根据目标卷积特征图对待处理图像行分类,得到待处理图像的分类结果。
结合第八方面,在第八方面的某些实现方式中,N小于M,M个基准卷积核中的至少两个基准卷积核对应N组掩码张量中的一组掩码张量。
结合第八方面,在第八方面的某些实现方式中,N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。
结合第八方面,在第八方面的某些实现方式中,上述M个基准卷积核的卷积核参数以及N组掩码张量是根据训练图像对神经网络进行训练得到的。
应理解,上述第八方面的图像分类装置与第二方面的图像分类方法是相对应的,第八方面中的图像分类装置能够执行第二方面中的图像分类方法,在上述第二方面中对相关内容的扩展、限定、解释和说明也适用于第八方面中相同的内容,这里对第八方面的相关内容不再详细描述。
第九方面,提供了一种数据处理装置,该数据处理装置包括:存储器,用于存储神经网络的M个基准卷积核的卷积核参数和N组掩码张量;处理器,用于获取神经网络的M个基准卷积核的卷积核参数和N组掩码张量,并执行以下操作:对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;根据多个子卷积核分别对多媒体数据进行卷积处理,得到多媒体数据的多个卷积特征图;据多媒体数据的多个卷积特征图对多媒体数据进行处理。
其中,上述M和N均为正整数,N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
应理解,上述第九方面的数据处理装置与第三方面的数据处理方法是相对应的,第九方面中的数据处理装置能够执行第三方面中的数据处理方法,在上述第三方面中对相关内容的扩展、限定、解释和说明也适用于第九方面中相同的内容,这里对第九方面的相关内容不再详细描述。
第十方面,提供了一种数据处理装置,该数据处理装置包括:存储器,用于存储神经网络的M个基准卷积核的卷积核参数和N组掩码张量;处理器,用于获取神经网络的M个基准卷积核的卷积核参数和N组掩码张量,并执行以下操作:根据M个基准卷积核对多媒体数据进行卷积处理,得到多媒体数据的M个基准卷积特征图;对M个基准卷积特征图和N组掩码张量进行哈达玛积运算,得到多媒体数据的多个卷积特征图;据多媒体数据的多个卷积特征图对多媒体数据进行处理。
其中,上述M和N均为正整数,N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
应理解,上述第十方面的数据处理装置与第四方面的数据处理方法是相对应的,第十方面中的数据处理装置能够执行第四方面中的数据处理方法,在上述第四方面中对相关内容的扩展、限定、解释和说明也适用于第十方面中相同的内容,这里对第十方面的相关内容不再详细描述。
第十一方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面至第六方面中的任一方面中的方法。
第十二方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述第一方面至第六方面中的任一方面中的方法。
第十三方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,执行上述第一方面至第六方面中的任一方面中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令,所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执行第一方面至第六方面中的任一方面中的方法。
附图说明
图1是本申请实施例提供的系统架构的结构示意图;
图2是本申请实施例提供的根据卷积神经网络模型进行图像分类的示意图;
图3是本申请实施例提供的一种芯片硬件结构示意图;
图4是手机自拍场景时示意图;
图5是人脸验证场景示意图;
图6是语音识别和机器翻译场景的示意图;
图7是本申请实施例的图像分类方法的示意性流程图;
图8是根据基准卷积核和掩码张量得到子卷积核的示意图;
图9是根据基准卷积核和掩码张量得到子卷积核的示意图;
图10是利用神经网络进行图像分类的过程的示意图;
图11是获取基准卷积核的卷积核参数以及掩码张量的过程的示意图;
图12是本申请实施例的数据处理方法的示意性流程图;
图13是本申请实施例的神经网络训练装置的硬件结构示意图;
图14是本申请实施例的图像分类装置的硬件结构示意图;
图15是本申请实施例的数据处理装置的硬件结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请实施例提供了图像的分类方法以及数据处理方法。
其中,本申请实施例的数据处理方法能够应用在计算机视觉等领域的各种场景中,例如,本申请实施例的处理方法可以应用在人脸识别、图像分类、目标检测、语义分割等场景中。
为了更形象的理解本申请实施例的数据处理方法的应用场景,下面以具体的场景为例进行说明。
终端设备物体检测:
这是一个目标检测的问题,当用户使用终端设备(例如,手机,平板等)进行拍照时,终端设备可以自动抓取人脸、动物等目标(这个过程中终端设备实现了对人脸或者其他物体的识别以及抓取等),能够帮助终端设备自动对焦、美化等。因此,终端设备需要一个体积小、运行快的目标检测卷积神经网络模型,从而为用户带来更好的用户体验,提升终端设备的产品品质。
例如,如图4所示,用户在使用手机进行自拍时,手机能够根据神经网络模型自动识别人脸,并自动抓取人脸,生成预测框。图4中的神经网络模型可以是位于手机中的目标检测卷积神经网络模型,该目标检测卷积神经网络模型具有参数量少的特点(卷积核的参数量比较少),能够部署在储存资源有限的手机上。另外,应理解,图4中所示的预测框仅为示意,这里为了便于理解,将预测框直接显示在了图片中,实际上该预测框是显示在自拍手机的拍摄界面的。
自动驾驶场景下的语义分割:
自动驾驶车辆的摄像头会实时捕捉到道路画面,为了能够使自动驾驶车辆识别道路上的不同物体,自动驾驶车辆中的智能设备需要对捕捉到的道路画面进行分割,从而分出路面、路基、车辆、行人等不同物体,并将这些信息反馈到自动驾驶车辆的控制系统中,使得自动驾驶车辆行驶在正确的道路区域。由于自动驾驶对安全性要求极高,因此,自动驾驶车辆中的智能设备需要能够对捕捉到的实时道路画面都进行快速的处理和分析,得到语义分割结果。
入口闸机人脸验证:
这是一个图像相似度比对问题。在高铁、机场等入口的闸机上,乘客进行人脸认证时,摄像头会拍摄人脸图像,对于拍摄到的人脸图像可以采用卷积神经网络抽取图像特征,然后将抽取到的图像特征与存储在系统中的身份证件的图像特征进行相似度计算,如果相似度高就验证成功。
例如,如图5所示,神经网络模型对拍摄到的人脸图像进行处理得到特征A,神经网络模型对身份证件的图像进行处理,得到特征B,接下来,通过对特征A和特征B的相似性可以确定被拍摄者与身份证件上的人是否属于同一个人,如果特征A和特征B的相似性满足要求(例如,特征A和特征B的相似性大于或者等于预设的相似性阈值),那么,可以确定被拍摄者与身份证件上的人属于同一个人。
翻译机同声传译:
这是一个语音识别和机器翻译问题。在语音识别和机器翻译问题上,卷积神经网络也是常用到的识别模型。在同声传译的场景下,必须要采用高效的神经网络来做到实时语音识别并进行翻译,以带来更好的用户体验。
例如,如图6所示,输入的语音为英文“Hello world!”,通过神经网络模型对接收到的语音进行识别,并根据识别结果进行机器翻译,输出相应的译文为中文“世界,你好!”,这里的译文既可以包括译文的语音也可以包括译文的文本。
在上述几种应用场景(终端设备物体检测、自动驾驶场景下的语义分割、入口闸机人脸验证和翻译机同声传译)中,都需要采取性能相对较高的神经网络模型进行相应的数据处理,但是很多情况下,需要部署的设备的存储空间有限,因此,如何在这些存储资源有限的设备上部署性能相对较高,但是参数相对较少的神经网络,进而进行数据处理是一个很重要的问题,因此,本申请提供了一种数据处理方法,该方法通过部署一些参数较少的神经网络模型,使得一些存储资源有限的设备也能够实现对数据的高效处理,具体的过程会在下文中详细描述。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于DNN层数多,系数W和偏移向量的数量也比较多。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
综上,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。
(5)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(6)反向传播算法
神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
(7)像素值
图像的像素值可以是一个红绿蓝(RGB)颜色值,像素值可以是表示颜色的长整数。例如,像素值为256*Red+100*Green+76Blue,其中,Blue代表蓝色分量,Green代表绿色分量,Red代表红色分量。各个颜色分量中,数值越小,亮度越低,数值越大,亮度越高。对于灰度图像来说,像素值可以是灰度值。
如图1所示,本申请实施例提供了一种系统架构100。在图1中,数据采集设备160用于采集训练数据。针对本申请实施例的图像分类方法来说,训练数据可以包括训练图像以及训练图像对应的分类结果,其中,训练图像的结果可以是人工预先标注的结果。而针对本申请实施例的数据处理方法来说,训练数据的具体类型与待处理的数据的数据类型相同以及数据处理的具体过程有关,例如,当待处理的数据为待处理图像,本申请实施例的数据处理方法是对待处理的图像进行降噪处理的话,那么,本申请实施例的数据处理方法对应的训练数据可以包括原始图像,以及在原始图像上加上噪声之后的噪声图像。
在采集到训练数据之后,数据采集设备160将这些训练数据存入数据库130,训练设备120基于数据库130中维护的训练数据训练得到目标模型/规则101。
下面对训练设备120基于训练数据得到目标模型/规则101进行描述,训练设备120对输入的原始图像进行处理,将输出的图像与原始图像进行对比,直到训练设备120输出的图像与原始图像的差值小于一定的阈值,从而完成目标模型/规则101的训练。
上述目标模型/规则101能够用于实现本申请实施例的图像分类方法或者数据处理方法,即,将待处理图像通过相关预处理后输入该目标模型/规则101,即可得到去噪处理后的图像。本申请实施例中的目标模型/规则101具体可以为神经网络。需要说明的是,在实际的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型/规则101的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中,如应用于图1所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)AR/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器或者云端等。在图1中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:客户设备输入的待处理图像。
预处理模块113和预处理模块114用于根据I/O接口112接收到的输入数据(如待处理图像)进行预处理,在本申请实施例中,也可以没有预处理模块113和预处理模块114(也可以只有其中的一个预处理模块),而直接采用计算模块111对输入数据进行处理。
在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口112将处理结果,如上述得到的去噪处理后的图像返回给客户设备140,从而提供给用户。
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在附图1中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端,采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库130。
值得注意的是,附图1仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在附图1中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置于执行设备110中。
如图1所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101在本申请实施例中可以是本申请中的神经网络,具体的,本申请实施例提供的神经网络可以CNN,深度卷积神经网络(deep convolutional neural networks,DCNN),循环神经网络(recurrent neural network,RNNS)等等。
由于CNN是一种非常常见的神经网络,下面结合图2重点对CNN的结构进行详细的介绍。如上文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
如图2所示,卷积神经网络(CNN)200可以包括输入层210,卷积层/池化层220(其中池化层为可选的),以及神经网络层230。下面对这些层的相关内容做详细介绍。
卷积层/池化层220:
卷积层:
如图2所示卷积层/池化层220可以包括如示例221-226层,举例来说:在一种实现中,221层为卷积层,222层为池化层,223层为卷积层,224层为池化层,225为卷积层,226为池化层;在另一种实现方式中,221、222为卷积层,223为池化层,224、225为卷积层,226为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层221为例,介绍一层卷积层的内部工作原理。
卷积层221可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络200进行正确的预测。
当卷积神经网络200有多个卷积层的时候,初始的卷积层(例如221)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络200深度的加深,越往后的卷积层(例如226)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图2中220所示例的221-226各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层230:
在经过卷积层/池化层220的处理后,卷积神经网络200还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层220只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络200需要利用神经网络层230来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层230中可以包括多层隐含层(如图2所示的231、232至23n)以及输出层240,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等。
在神经网络层230中的多层隐含层之后,也就是整个卷积神经网络200的最后层为输出层240,该输出层240具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络200的前向传播(如图2由210至240方向的传播为前向传播)完成,反向传播(如图2由240至210方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络200的损失,及卷积神经网络200通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图2所示的卷积神经网络200仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。
图3为本申请实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图1所示的执行设备110中,用以完成计算模块111的计算工作。该芯片也可以被设置在如图1所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则101。如图2所示的卷积神经网络中各层的算法均可在如图3所示的芯片中得以实现。
神经网络处理器NPU 50NPU作为协处理器挂载到主中央处理器(centralprocessing unit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电路50,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
统一存储器506用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器505(direct memory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令;
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
入口:可以根据实际发明说明这里的数据是说明数据,比如探测到车辆速度?障碍物距离等
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,简称DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
其中,图2所示的卷积神经网络中各层的运算可以由运算电路303或向量计算单元307执行。
上文中介绍的图1中的执行设备110能够执行本申请实施例的图像分类方法或者数据处理方法的各个步骤,图2所示的CNN模型和图3所示的芯片也可以用于执行本申请实施例的图像分类方法或者数据处理方法的各个步骤。下面结合附图对本申请实施例的图像分类方法和本申请实施例的数据处理方法进行详细的介绍。
在下面结合介绍本申请实施例的图像分类方法和数据处理方法时,会涉及到对待处理图像或者待处理数据进行卷积处理,其中,卷积处理得到的既可以称为卷积特征图,也可以直接称为特征图。
图7是本申请实施例的图像分类方法的示意性流程图。图7所示的方法可以由图像分类装置执行,该图像分类装置可以是具有图像处理功能的电子设备。该电子设备具体可以是移动终端(例如,智能手机),电脑,个人数字助理,可穿戴设备,车载设备,物联网设备或者其他能够进行图像处理的设备。
图7所示的方法包括步骤1001至1004,下面分别对这些步骤进行详细的描述。
1001、获取神经网络的M个基准卷积核的卷积核参数。
其中,上述M为正整数。
1002、获取神经网络的N组掩码张量。
其中,上述N组掩码张量中的每组掩码张量由多个掩码张量组成,上述N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数(一般情况下,掩码张量中元素占用的存储空间会远远小于卷积核参数中的元素占用的存储空间),M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
上述M个基准卷积核的卷积核参数以及N组掩码张量可以存储在寄存器中。此时,可以从寄存器中读取上述M个基准卷积核的卷积核参数以及N组掩码张量。该寄存器具体可以是权重寄存器,也就是神经网络中用于存储卷积核参数的寄存器。
应理解,上述神经网络的基准卷积核由上述M个基准卷积核组成,上述神经网络的掩码张量由上述N组掩码张量组成。该神经网络在部署时只需要保存M个基准卷积核的卷积核参数,以及N组掩码张量即可,而不必再逐个存储每个卷积核的参数。能够节省神经网络部署时所需要的存储空间,使得该神经网络也能够部署到一些存储资源受限的设备上。
另外,上述M和N的大小可以根据神经网络构建的情况来确定。例如,上述M和N可以根据神经网络的网络结构的复杂度以及神经网络的应用需求来确定,当上述神经网络的网络结构的复杂度较高或者应用需求较高(例如,对处理能力要求较高)时,可以将M和/或N设置成较大的数值,而当上述神经网络的网络结构比较简单或者应用需求较低(例如,对处理能力要求较低)时,可以将M和/或N设置成较小的数值。
应理解,上述M个基准卷积核的大小可以完全相同、完全不同或者部分相同。
当M个基准卷积核中存在不同大小的基准卷积核时,能够从待处理图像中提取出较多的图像特征。
进一步的,当M个基准卷积核的大小均不相同时,能够进一步的从待处理图像中提取出更多的图像特征,便于后续对待处理图像进行更好的分类。
与上述M个基准卷积核类似,上述N组掩码张量完全相同、完全不同或者部分相同。
可选地,上述N组掩码张量中的每组掩码张量内部包含的各个掩码张量的大小相同。
可选地,上述M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量,上述N组掩码张量中的一组掩码张量可以对应上述M个基准卷积核中的一个或者多个卷积核。
可选地,上述N组掩码张量中的任意一组掩码张量与对应的基准卷积核的大小相同。
也就是说,在与某个基准卷积核相对应的一组掩码张量中,每个掩码张量的大小都与对应的基准卷积核的大小相同。
如果上述N组掩码中的第一组掩码张量与M个基准卷积核中的第一基准卷积核相对应,那么,该第一组掩码张量中的每个掩码张量的大小与第一基准卷积核的大小相同。
具体地,如果第一基准卷积核大小为c×d1×d2,其中,c表示通道数,d1和d2分别表示高和宽。那么,第一组掩码张量中的任意一个第一掩码张量的大小也为c×d1×d2(其中,c为通道数,d1和d2分别是高和宽)。
本申请中,由于掩码张量的大小与相对应的基准卷积核的尺寸大小相同。使得基准卷积核与掩码张量之间通过运算得到的卷积核的尺寸大小与基准卷积核的尺寸大小相同,使得根据基准卷积核和掩码张量能够得到相同尺寸大小的卷积核,便于后续根据得到的卷积核对待处理图像进行统一的处理。
具体地,如果第一基准卷积核大小为c×d1×d2,其中,c表示通道数,d1和d2分别表示高和宽。那么,第一组掩码张量中的任意一个第一掩码张量的大小也为c×d1×d2(其中,c为通道数,d1和d2分别是高和宽)。
当基准卷积核的尺寸大小要与掩码张量的尺寸大小相同时,能够保证基准卷积核与掩码张量之间能够正常进行哈达玛积运算,从而根据基准卷积核和掩码张量得到子卷积核。
其中,哈达玛积运算也可以称为元素相乘操作,它是矩阵中的一种运算。如果A=(aij)和B=(bij)是两个同阶矩阵,并且cij=aij×bij,则称矩阵C=(cij)为A和B的哈达玛积,或称为基本积。
可选地,上述掩码张量为L值掩码张量。也就是说,对于某个掩码张量来说,该掩码张量中的元素的取值可能有L种。其中,L为大于或者等于2的正整数。
一般来说,L的取值越小,掩码张量占用的存储空间越小。
可选地,上述中的掩码张量为二值化掩码张量,此时,掩码张量中每个元素只有两种可能的取值,占用的比特位大大减少。
当信息库中的掩码张量为二值化掩码张量时,占用的存储空间很小,节省存储空间的效果比较明显。
二值化掩码张量中元素的候选取值可以是[0,1]或者[0,-1]或者[1,-1]。
对于上述M个基准卷积核与N组掩码张量来说,M的数值一般大于或者等于N。也就是说,上述M个基准卷积核中的每个基准卷积核可以对应N组掩码张量中的一组掩码张量,上述N组掩码张量中的一组掩码张量可以对应上述M个基准卷积核中的一个或者多个卷积核。当M大于N或者M=N时,上述M个基准卷积核与N组掩码张量有不同的对应关系,下面分别对M>N和M=N这两种情况进行介绍。
第一种情况:M>N
在第一种情况下,M个基准卷积核中的至少两个基准卷积核共同对应N组掩码张量中的一组掩码张量。
例如,M=3,N=2,M个基准卷积核包括第一基准卷积核,第二基准卷积核和第三基准卷积核,N组掩码张量包括第一组掩码张量和第二组掩码,那么,M个基准卷积核与N组掩码张量的对应关系可以如表1所示。
表1
如表1所示,第一基准卷积核和第二基准卷积核均对应于第一组掩码张量,第三基准卷积核对应于第二组掩码张量,在根据基准卷积核与掩码张量对待处理图像进行卷积处理时,可以根据第一基准卷积核和第一组掩码张量,第二基准卷积核与第一组掩码张量以及第三基准卷积核和第二组掩码张量对待处理图像分别进行卷积处理,最终得到待处理图像的卷积特征图。
在第一种情况中,N还可以等于1,此时,M组基准卷积核均对应一组掩码张量,此时掩码张量被多个基准卷积核共享(这种情况可以称为掩码张量共享),采用掩码张量共享的方式能够进一步减少掩码张量带来的存储开销。
在上述第一种情况中,会出现多个基准卷积核对应同一组掩码张量的情况,也就是说,在第一种情况下,不同的基准卷积核可以共享相同的掩码张量,因此,上述第一种情况也可以称为掩码张量共享的情况。
下面结合图8对掩码张量共享的情况做进一步的说明。
如图8所示,基准卷积核1和基准卷积核2共享一组掩码张量,共享的这一组掩码张量包括掩码张量1和掩码张量2。通过基准卷积核1分别与掩码张量1和掩码张量2的运算,能够得到子卷积核1和子卷积核2,通过基准卷积核2分别与掩码张量1和掩码张量2的运算,能够得到子卷积核3和子卷积核4。
在根据基准卷积核1与掩码张量1进行运算时,具体可以是对基准卷积核1和掩码张量1对应的掩码张量进行哈达玛积运算(也就是元素相乘运算),得到子卷积核1的参数,其他子卷积核的计算过程与之类似。
下面结合公式对掩码张量共享时的相关运算进行详细描述。
假设输入数据(相当于上文中的待处理图像)为其中,c为通道数,h和w分别表示输入数据的长和宽(当输入数据为图像时,h和w分别表示图像的长和宽)。神经网络中的一个卷积核可以记为其中,c仍然表示通道数,d1×d2表示卷积核的尺寸。在神经网络中,一个卷积层往往包含很多个卷积核,神经网络中卷积层的卷积操作可以用公式(1)来表示。
[Y1,...,Yn]=[F1*X,...,Fn*X] (1)
在上述公式(1)中,X表示输入数据,F1、F2、…Fn分别表示卷积层中的n个卷积核,*代表着卷积操作,是对输入数据进行卷积处理后输出的卷积特征图,H′和W′分别表示输出的卷积特征图的长和宽。
由公式(1)可知,一个卷积层的卷积操作往往需要对很多个卷积参数进行计算得到,为了减少卷积核的参数,可以采用一个基准卷积核和一组掩码张量来生成大量的子卷积核,以减少卷积核的参数。
下面结合公式对根据基准卷积核以及二值化掩码张量(这里以二值化掩码张量为例进行说明)得到多个子卷积核,进而进行卷积运算的情况进行说明。
假设,基准卷积核为二值化掩码张量为来说,那么,可以通过对基准卷积核和二值化掩码张量进行哈达玛积运算,得到多个子卷积核,具体计算过程可以如公式(2)所示。
在上述公式(2)中,Bi表示第i个基准卷积核,i的取值范围为[1,k],Mj表示第j个二值化掩码张量,j的取值范围为[1,s],表示哈达玛积运算(也可以称为元素相乘操作),通过将一个基准卷积核与s个二值化掩码张量进行运算,能够得到s个子卷积核,这样,通过k个基准卷积核和s个二值掩码(该k个基准卷积核共用该s个二值化掩码),就能够得到与原卷积操作(如公式(1)所示,有n个卷积核进行卷积计算)相同数量(k×s=n)的子卷积核,用这些子卷积核来进行卷积计算,得到n个通道的输出特征图的计算过程如公式(3)所示。
也就是说,通过k个基准卷积核和s个二值掩码张量得到n个子卷积核,并利用n个子卷积核进行卷积运算,能够达到传统方案中直接采用n个卷积核进行卷积计算的效果,并且,通过采用k个基准卷积核和s个二值掩码能够大大减少参数的数量。具体地,由于k小于n,因此,卷积核的参数量减少,另外,二值化掩码对于存储需求极低,相对于卷积核来说,需要保存的参数很少,因此,采用k个基准卷积核和s个二值掩码相组合的方式能够减少参数的数量。
当采用k个基准卷积核和s个二值化掩码张量得到n子卷积核时,能够实现对卷积核参数的压缩,具体的参数压缩率可以如公式(4)所示。
在上述公式(4)中,r1为参数压缩率,k为基准卷积核的数量,n为子卷积核的数量,c为卷积核的通道数,d1和d2是卷积核的尺寸,s为二值化掩码张量的个数。
由公式(4)可知,相对于直接采用n个卷积核的方式,采用k个基准卷积核和s个二值化掩码张量的方式能够实现对卷积核参数的有效压缩。
第二种情况:M=N
在第二种情况下,M个基准卷积核与N组掩码张量一一对应(这种对应的方式可以称为掩码张量独立)。
例如,M=3,N=3,M个基准卷积核包括第一基准卷积核,第二基准卷积核以及第三基准卷积核,N组掩码张量包括第一组掩码张量、第二组掩码张量和第三组掩码张量,那么,该M个基准卷积核与N组掩码张量的对应关系可以如表2所示。
表2
基准卷积核 | 掩码张量组 |
第一基准卷积核 | 第一组掩码张量 |
第二基准卷积核 | 第二组掩码张量 |
第三基准卷积核 | 第三组掩码张量 |
如表2所示,第一基准卷积核对应于第一组掩码张量,第二基准卷积核对应于第二组掩码张量,第三基准卷积核对应于第三组掩码张量。在根据基准卷积核与掩码张量对待处理图像进行卷积处理时,可以分别根据第一基准卷积核和第一组掩码张量,第二基准卷积核和第二组掩码张量,以及第三基准卷积核和第三组掩码张量对待处理图像进行卷积处理,最终得到待处理图像的卷积特征图。
下面结合公式对掩码张量独立的相关内容进行详细说明。
通过k个基准卷积核和ks个二值化掩码,生成和原卷积操作相同数量(k×s=n)的子卷积核,并根据这些子卷积核进行卷积计算的过程可以如公式(5)所示。
相比于掩码张量共享的方式,虽然掩码张量独立的方式对应的参数量稍微大一点,但是由于每个基准卷积核对应的是不同组的掩码张量,使得最终卷积生成的特征更具区分性和判别性。
当采用k个基准卷积核和ks个二值化掩码张量得到n子卷积核时,能够实现对卷积核参数的压缩,具体的参数压缩率可以如公式(6)所示。
在上述公式(6)中,r2为参数压缩率,k为基准卷积核的数量,n为子卷积核的数量,c为卷积核的通道数,d1和d2是卷积核的尺寸,ks为二值化掩码张量的个数。
由公式(6)可知,采用k个基准卷积核和ks个二值化掩码张量得到n子卷积核,也能够实现对卷积核参数的有效压缩。
为了更形象的理解掩码张量独立的情况,下面结合图9进行说明。
如图9所示,基准卷积核1和基准卷积核2分别对应不同组的掩码张量,基准卷积核1对应的是第一组掩码张量,基准卷积核2对应的是第二组掩码张量。其中,第一组掩码张量包括掩码张量1和掩码张量2,第二组掩码张量包括掩码张量3和掩码张量4。在获得子卷积核时,基准卷积核1分别与掩码张量1和掩码张量2进行运算,可以得到子卷积核1和子卷积核2,基准卷积核2分别与掩码张量3和掩码张量4进行运算,得到子卷积核3和子卷积核4。
可选地,上述N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。
在利用神经网络中的卷积核对输入的图像进行卷积处理时,一般是不同卷积核之间的差异越大,利用卷积核提取到的特征越丰富,进而能够得到相对更好的处理结果,因此,当上述N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交时,能够使得后续进行卷积处理时得到更丰富的特征的可能性变大,可能会提高最终的处理效果。
可选地,上述N组掩码张量中至少一组掩码张量中的全部掩码张量满足两两正交。
N组掩码张量中至少一组掩码张量中的任意两个掩码张量满足两两正交时,根据基准卷积核与掩码张量进行卷积处理提取到的图像的特征更加丰富,可以提高图像的最终处理效果。
可选地,上述N组掩码张量中每组掩码张量中的全部掩码张量满足两两正交。
当N组掩码张量中的每组掩码张量中的全部掩码张量均满足两两正交时,能够根据基准卷积核与掩码张量进行卷积处理提取到的图像的特征更加丰富,可以提高图像的最终处理效果。
假设一组掩码张量中共有s个二值掩码张量,那么,可以将这s个二值掩码张量向量化并拼成矩阵M,为了使得s个二值化掩码张量中的任意两个二值化掩码张量满足两两正交的需求,该矩阵M应当近似是一个正交矩阵以使得根据s个二值化掩码张量和基准卷积核生成的卷积核具有明显的区别。因此,可以在上述s个二值掩码张量上加上如公式(7)所示的正则项:
在上述公式(7)中,I是一个单位矩阵,||·||F是Frobenius范数,d1和d2分别表示卷积核的高和宽,c是卷积核的输入通道数,Lorth表示正则项。通过正则项的约束,能够使得上述s个二值掩码张量之间的相关性很小,进而使得根据同一基准卷积核生成的卷积核也更具多样性和区分性。
1003、根据M个基准卷积核的卷积核参数和N组掩码张量对待处理图像进行卷积处理,得到待处理图像的多个卷积特征图。
应理解,在上述步骤1003之前,可以先获取待处理图像。
上述待处理图像可以是待分类的图像或者图片。当图7所示的方法由电子设备执行时,该待处理图像可以是电子设备通过摄像头拍摄到的图像,或者,该待处理图像还可以是从电子设备内部存储的图像(例如,电子设备的相册中的图片)。
在步骤1003中对待处理图像进行处理,得到待处理图像的多个卷积特征图的具体实现方式有多种,下面对其中常见的两种方式进行介绍。
第一种方式:先获得多个卷积核,然后再利用该多个卷积核对待处理图像进行卷积处理,得到待处理图像的多个卷积特征图。
具体地,在第一种方式下,获取待处理图像的多个卷积特征图的具体过程包括:
(1)对M个基准卷积核中的每个基准卷积核,以及每个基准卷积核在N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积;
(2)根据多个子卷积核分别对待处理图像进行卷积处理,得到多个卷积特征图。
第二种方式:先根据M个基准卷积核对待处理图像进行卷积处理,得到M个基准卷积特征图,然后再根据M个基准卷积特征图以及N组掩码张量得到待处理图像的多个卷积特征图。
具体地,在第二种方式下,获取待处理图像的多个卷积特征图的具体过程包括:
(3)根据M个基准卷积核对待处理图像进行卷积处理,得到待处理图像的M个基准卷积特征图;
(4)对M个基准卷积特征图和N组掩码张量进行哈达玛积运算,得到待处理图像的多个卷积特征图。
采用第二种方式能够减少卷积计算的次数,当存在M个基准卷积核时,只需要进行M次卷积计算,而不必再生成M*N个卷积核之后进行M*N次卷积运算,很可能会在整体上减少运算的复杂度,提高数据处理效率。
应理解,上述基准卷积特征图是指采用基准卷积核对待处理图像进行卷积处理得到的卷积特征图。
上述第二种计算方式也可以称为高效前向计算方式,在这种方式下,通过将卷积计算提前,利用基准卷积核进行卷积计算,能够减少卷积计算的计算量。下面结合具体的公式对第二种方式下减少卷积计算的计算量进行说明。
对于一个图像块来说,采用传统的卷积计算方式进行计算时,该图像块要与每个卷积核种的元素相乘,然后加和,具体可以如公式(8)所示。
其中,在上述公式(8)中,F1至Fn表示n个卷积核,X表示待处理的图像块,表示元素相乘操作,Y表示卷积得到的卷积特征图,假设F1至Fn是对应的卷积核参数均为c×d1×d2,那么,采用公式(8)所示的传统卷积过程包括ncd1d2次乘法和ncd1d2次加法计算。
而采用基准卷积核与掩码张量得到多个子卷积核,然后再利用该多个子卷积核对图像块进行卷积处理的计算过程可以如公式(9)所示,待处理图像块需要与每个子卷积核进的元素相乘,然后加和。
其中,在上述公式(9)中,F11至Fks是多个子卷积核,X表示待处理的图像块,表示元素相乘操作,Y表示卷积得到的卷积特征图,Bi表示第i个基准卷积核,Mj表示第j个掩码张量。
由上述公式(9)可以看出,图像块和基准卷积核的元素相乘被重复计算了s次,而实际上只需计算一次,并将计算结果缓存起来。缓存的中间结果为这样,公式(9)就可以简化为公式(10)。
当Mj是二值化的掩码张量时,这里的可以通过耗时极小的掩码(masking)操作实现。上述高效前向计算方式包含kcd1d2次乘法,ncd1d2次加法计算以及可以忽略的ncd1d2次掩码操作。和传统卷积操作相比,基准卷积核对乘法操作的减少比例为r2=s,大大减少了乘法操作的次数,降低了计算的复杂度。
1004、根据待处理图像的多个卷积特征图对待处理图像进行分类,得到待处理图像的分类结果。
可选地,上述根据所述多个卷积特征图对所述待处理图像进行分类,得到所述待处理图像的分类结果,包括:对所述多个卷积特征图进行拼接,得到目标卷积特征图;根据目标卷积特征图对待处理图像行分类,得到所述待处理图像的分类结果。
上述多个卷积特征的宽和高应当是相同的,上述对多个卷积特征图进行拼接实质上就是将上述多个卷积特征图的通道数叠加,得到一个通道数是多个卷积特征图的通道数总和的目标卷积特征图。
例如,一共存在3个卷积特征图,这3个卷积特征图的大小分别为c1×d1×d2,c2×d1×d2,c3×d1×d2,那么,对这3个卷积特征图进行拼接得到的目标特征图的大小为c×d1×d2,其中,c=c1+c2+c3。
本申请中,在对待处理图像进行分类处理时,只需要从存储空间中获取基准卷积核的卷积核参数以及相应的掩码张量,就能够利用基准卷积核以及相应的掩码张量实现对待处理图像的卷积处理,进而实现对待处理图像的分类,而不必获取神经网络中每个卷积核的参数,可以减少神经网络部署时产生的存储开销,使得神经网络能够部署在一些存储资源有限的设备上并进行图像分类处理。
具体地,相对于基准卷积核中的参数中的元素,掩码张量中元素占用的存储空间更小,因此,采用基准卷积核与掩码张量相结合的方式得到子卷积核的方式,减少了卷积核参数的数量,实现了对卷积核参数的压缩,使得神经网络能够部署到一些存储资源受限的设备上执行图像分类任务。
下面对本申请实施例的图像分类方法对应的神经网络模型能够减少存储开销的具体原因进行分析。对于神经网络中的一个卷积层来说,它的卷积核的参数量为n×c×d1×d2,其中,n是该卷积层包含的卷积核个数,c是卷积核的通道数,d1和d2分别是卷积核的高度和宽度。该卷积层在对一个输入图像进行卷积计算的计算量为h×w×n×c×d1×d2次乘法和加法,其中,h和w分别表示该卷积层输出的卷积特征图的高度和宽度。
由于一个卷积层中n个卷积核之间存在参数冗余,在保持卷积层输入特征和输出特征维数一定的情况下,可以考虑使用少量的k个基准卷积核(k小于n)和存储需求极低的二值化掩码,通过基准卷积核和掩码张量的两两结合,可以衍生出n个子卷积核(k<n),其中,子卷积核的参数全部来自于基准卷积核和二值化掩码,这样就能够减少卷积核的参数量,减少神经网络部署时由于保存卷积核参数产生的存储开销。
为了更形象的说明本申请实施例的图像分类方法,下面结合图10对本申请实施例的整个过程进行介绍。如图10所示,基准卷积核与掩码张量进行运算,能够得到神经网络种的子卷积核,这些子卷积核可以对输入图片(该输入图片为一张猫的图片)进行处理,得到输入图片的卷积特征图,接下来,可以再利用神经网络种的分类器对输入图片的卷积特征图进行处理,得到输入图片属于各个类型图片的概率(该输入图片属于猫的概率最高),然后可以将概率值大于一定数值的类别确定为输入图片的类别(由于该输入图片属于猫的概率最高,因此,可以将该输入图片的类别确定为猫),并将该输入图片的类别信息输出。
由图10可知,对于神经网络来说,只需要保存基准卷积核的卷积核参数与掩码张量,就能够通过后续推导得到很多子卷积核,而不必保存每个子卷积核的参数,能够节省神经网络部署或者应用时所占用的存储空间,便于将该神经网络部署到一些存储资源有限的设备上,进而在这些设备上实现对图像的分类或者识别。
仍以图10所示的处理过程为例,基于基准卷积核的神经网络包括N层卷积层(图10示出了其中的一层),假设神经网络中原有的卷积层中一共包含16个大小为3*7*7的普通卷积核。那么,当采用掩码张量独立的方式进行处理时,该卷积层可以需要4个3*7*7的全栈卷积核以及16个3*7*7的二值化掩码张量。这样,每个基准卷积核都可以和对应的4个掩码张量进行元素级相乘,得到4个子卷积核。这样,根据4个子卷积核就可以总共生成16个子卷积核,用来替代原网络的16个普通卷积核。这种情况下,该层全栈卷积核的参数量为4*3*7*7=588,二值掩码张量的参数量为16*3*7*7/32=73.5,总参数量为588+73.5=661.5。而使用普通卷积核的卷积层的参数量为16*3*7*7=2352,参数量压缩了2352/661.5=3.56倍,从而实现了对参数的有效压缩。
应理解,图7所示的图像分类方法可以应用图4所示的场景中。具体地,当通过手机自拍获取到待拍摄的图像之后,可以根据图7所示的方法对待拍摄图像进行图像分类,在得到分类结果之后,根据图像分类结果在拍摄界面生成预测框,便于用户进行更好的拍摄。
图7所示的图像分类方法可以应用在自动驾驶场景中,通过图7所示的图像分类方法对车辆行驶过程中捕捉到的道路画面进行图像分类,识别出不同类别的物体,进而得到道路的语义分割结果。
可选地,上述基准卷积核参数库中的基准卷积核的卷积核参数以及中的掩码张量是根据训练图像对神经网络进行训练得到的。
其中,上述训练图像的图像类别与待处理图像的图像类别相同。例如,当待处理图像为人体运动的图像时,训练图像可以是包含人体各种运动类型的图像。
具体地,在构建神经网络时,可以根据需要构建的网络的性能需求,网络结构的复杂性以及存储相应的卷积核参数和掩码张量的参数需要的存储空间的大小等因素,来确定M和N的数值以及每组掩码张量所包含的掩码张量的个数,然后初始化M个基准卷积核的卷积核参数以及N组掩码张量(也就是为这些基准卷积核和掩码张量设置一个初始值),并构造一个损失函数。接下来,就可以利用训练图像对神经网络进行训练,在训练的过程中可以根据损失函数的大小来更新基准卷积核以及掩码张量中的参数值,当该损失函数收敛或者损失函数的函数值满足要求,或者训练次数达到预设次数时,可以停止训练,将此时基准卷积核和掩码张量中的参数值确定为基准卷积核和掩码张量的最终的参数值,接下来,就可以根据需要将包含相应参数值(也就是训练得到的基准卷积核和掩码张量的最终的参数值)的神经网络部署到需要的设备上去,进而能够利用部署该神经网络的设备进行图像分类。
为了更好地理解获取基准卷积核的卷积核参数以及掩码张量的过程,下面结合图11对获取一个基准卷积核的卷积核参数和一组掩码张量的过程进行说明。
图11是获取基准卷积核的卷积核参数以及掩码张量的过程的示意图。
图11所示的过程包括步骤S1至S6,通过步骤S1至S6能够得到基准卷积核的卷积核参数以及掩码张量的参数。
下面分别对这些步骤进行详细介绍。
S1、初始化基准卷积核和掩码张量。
应理解,在S1中可以初始化一个基准卷积核的卷积核参数以及对应的一组掩码张量中各个元素的取值,通过初始化操作可以得到图11所示的第一基准卷积核和第一组掩码张量。其中,第一组掩码张量包括掩码张量1、掩码张量2以及掩码张量3(图11中未示出)。
S2、根据第一基准卷积核和第一组掩码张量,生成子卷积核。
其中,在S2中,根据第一基准卷积核和第一组掩码张量生成的子卷积核具体包括子卷积核A、子卷积核B和子卷积核C。
具体地,在S2中,可以根据第一基准卷积核与掩码张量1生成子卷积核A,根据第一基准卷积核与掩码张量2生成子卷积核B,根据第一基准卷积核与掩码张量3生成子卷积核C。
其中,上述子卷积核A、子卷积核B和子卷积核C本质上属于神经网络内的卷积核,用于对输入数据进行卷积处理。
S3、利用子卷积核对输入数据进行处理,得到输入数据的卷积特征图。
具体地,在S3中,子卷积核A对输入数据进行卷积处理分别得到特征图A,子卷积核B对输入数据进行卷积处理分别得到特征图B,子卷积核C对输入数据进行卷积处理分别得到特征图C。
上述输入数据具体可以是待处理图像。
另外,在获得输入数据的卷积特征图时,也可以先采用第一卷积核对输入数据进行处理,得到初始的卷积特征图,然后再根据该初始特征图和掩码张量1生成特征图A,根据该初始特征图和掩码张量2生成特征图B,根据该初始特征图和掩码张量3生成特征图C。采用这种方式能够减少卷积运算的次数,降低运算量。
S4、对特征图A、特征图B和特征图C进行拼接,得到拼接特征图。
S5、根据拼接特征图确定预先设置的损失函数是否收敛。
当S5中判断出损失函数没有收敛时,说明神经模型的训练已经满足要求,接下来,可以执行S6。
S6、按照一定的梯度更新第一基准卷积核的卷积核参数和/或第一组掩码张量中的参数。
在S6中,可以根据学习率等参数来确定更新第一基准卷积核的卷积核参数以及第一组掩码张量的参数的梯度。在执行完S6之后,可以继续重复执行S2至S5,直到预先设置的损失函数收敛。
当S5中判断出损失函数收敛时,说明神经模型的训练已经满足要求,接下来可以执行S7。
S7、获得第一基准卷积核的卷积核参数以及第一组掩码张量中的掩码张量的参数。
应理解,为了便于理解和说明,上述图11仅以一个基准卷积核和一组掩码张量为例进行了说明,当存在多个基准卷积核和多组掩码张量时,也可以采用图11所示的过程来确定基准卷积核的卷积核参数以及掩码张量的参数,只是初始化时需要初始化多个基准卷积核的卷积核参数以及多组掩码张量的参数,并且在更新参数时,也需要更新多个基准卷积核的卷积核参数和/或多组掩码张量的参数。
在神经网络进行训练的过程中,需要进行卷积计算,并计算神经网络模型对应的损失函数,当损失函数收敛时对应的基准卷积核的卷积核参数以及掩码张量就是最终得到的基准卷积核参数核掩码张量。下面结合公式对这些过程进行详细的介绍。
卷积操作可以通过矩阵乘法实现,具体地,在进行卷积计算之前,可以先将输入特征图划分为l=H×W个区块(每个区块大小为d1×d2×c),并将这些区块向量化,则这些小块对应的可以得到向量如公式(11)所示。
类似的,可以将输出特征图进行向量化处理,得到的结果如公式(12)所示,对所有的子卷积核也可以进行向量化处理,得到的结果如公式(13)所示。
这里以掩码张量共享的情况为例,需要优化的变量有两个,这两个变量分别如公式(14)和公式(15)所示。
其中,B为基准卷积核,M为掩码张量,具体地,基准卷积核包括B1、…、Bk,掩码张量包括M1、…、Mk。
基准卷积核的卷积操作可以用公式(16)来表示。
以上述基准卷积核为基础的神经网络的目标函数如公式(17)所示。
minL=L0(B,M)+λLortho(M) (17)
其中,L0是任务相关的损失函数,如分类任务的交叉熵损失,η为学习率,Lortho(M)为正交损失函数。如公式(18)和(19)所示,可以通过标准的反向传播算法,我们可以计算得到两个变量的梯度。
接下来,可以根据公式(20)更新B。
在更新M时,由于它是二值化的,梯度下降无法直接应用。因此,可以先定义一个代理变量M,如公式(21)所示。
M=sin(H) (21)
接下来,在根据公式(22)计算梯度,根据公式(23)更新变量H,通过更新变量H能够间接的实现更新M。
在对B和M每次进行更新后可以确定公式(17)是否收敛,如果公式(17)不收敛则要继续更新B和M,再计算公式(17)。如果公式(17)收敛,则对应的B和M就是最终的要确定的参数。
上文结合图7至图11对本申请实施例的图像分类方法进行了详细的描述,下面结合图12对本申请实施例的数据处理方法进行描述。
图12是本申请实施例的数据处理方法的示意性流程图。图12所示的方法可以由数据处理装置执行,该数据处理装置可以是具有数据处理(尤其是多媒体数据处理)功能的电子设备。该电子设备具体可以是移动终端(例如,智能手机),电脑,个人数字助理,可穿戴设备,车载设备,物联网设备或者其他能够进行图像处理的设备。
图12所示的方法包括步骤2001至2004,下面分别对这些步骤进行介绍。
2001、获取神经网络的M个基准卷积核的卷积核参数。
其中,上述M为正整数。
2002、获取所述神经网络的N组掩码张量。
其中,上述N为正整数,N组掩码张量中的每组掩码张量由多个掩码张量组成,N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,M个基准卷积核中的每个基准卷积核对应N组掩码张量中的一组掩码张量。
应理解,上述步骤2001和2002的执行过程与图7所示的方法中的步骤1001和步骤1002执行的过程相同,上文中对步骤1001和步骤1002的相关描述也适用于步骤2001和2002,为了避免不必要的重复,这里不再重复介绍。
2003、根据M个基准卷积核以及N组掩码张量对多媒体数据进行卷积处理,得到多媒体数据的多个卷积特征图。
上述步骤2003中得到多媒体数据的多个卷积特征图的过程与图7所示的方法中的步骤1003类似,主要的区别在于,步骤1003是对待处理图像进行卷积处理,而步骤2003是对多媒体数据进行处理。因此,步骤2003的具体处理过程可以参见上文中步骤1003的处理过程。
2004、根据多媒体数据的多个卷积特征图对多媒体数据进行处理。
上述多媒体数据可以是文字、声音、图片(图像)、视频、动画等等。
具体地,当上述多媒体数据为待处理图像时,可以根据多个卷积特征图对多媒体数据进行识别或者分类。
或者,当多媒体数据为待处理图像时,可以根据多个卷积特征图对多媒体数据进行图像处理。例如,对获取到的人脸图像进行卷积处理,得到人脸图像的卷积特征图,然后对该人脸图像的卷积特征图进行处理,生成与人脸表情相对应的动画表情。或者,也可以将其他的表情迁移到输入的人脸图像中再输出。
本申请中,在利用神经网络对多媒体数据进行处理时,只需要获取神经网络的基准卷积核的卷积核参数以及相应的掩码张量,就能够利用基准卷积核以及相应的掩码张量实现对待处理数据的卷积处理,从而能够减少利用神经网络进行卷积处理时的存储开销,进而使得神经网络能够部署到更多存储资源受限的设备上并对多媒体数据进行处理。
图12所示的数据处理方法可以应用在图5所示的场景下,此时,多媒体数据就是人脸图像,通过对人脸图像进行卷积处理,能够得到人脸图像的卷积特征图,接下来,再将人脸图像的卷积特征图与相应身份证件对应的卷积特征图进行对比,就能够确定被拍摄者的身份。
为了验证本申请实施例的采用基准卷积核和掩码张量降低存储开销的效果。下面采用ImageNet数据集采用本申请实施例的基准卷积核的效果进行测试,在这里,将使用了全栈卷积核的CNN叫做最小可用网络(minimum viable networks,MVnet)。表1示出了本申请实施例的图像分类方法分别利用标准模型VGG-16,ResNet-50以及ImageNet数据集进行测试的结果。
在测试采用本申请实施例采用基准卷积核和掩码张量的效果时,并不改变现有神经网络模型的结构(层数、每层的卷积核尺寸、参数等),而是仅仅根据本申请所提出的基准卷积核的计算方式来对每一层的卷积核个数进行减少。
表3示出了本申请采用基准卷积核在ImageNet 2012数据集上的结果统计,其中,MVNet-A表示使用了掩码张量共享的基准卷积核的CNN,MVNet-B表示使用了掩码张量独立的基准卷积核的CNN,括号中的s表示掩码张量的个数。
表3
如表3所示,在VGG-16模型下,无论是采用掩码张量共享的基准卷积核还是掩码张量独立的基准卷积核对应的前1预测错误率和前5预测错误率与之前的方法基本保持一致,但是相对应的参数量以及相应的内存开销都有明显的减少。尤其是采用掩码张量共享的基准卷积核减少的内存开销更为明显。
在ResNet-50模型下,无论是采用掩码张量共享的基准卷积核还是掩码张量独立的基准卷积核,对应的参数量以及内存开销也都有明显的减少,同时,前1预测错误率和前5预测错误率与之前的方法基本保持一致。
在表3的最后两行,在掩码张量独立的情况下,当采用了更小的基准卷积核更多的掩码张量时,对应的参数量和内存开销又有进一步的减少。
表3示出的主要是利用本申请所提出的基准卷积核替换现有深度卷积神经网络模型中传统的卷积核后减少存储开销的效果。
另外,在表3中,MV Net-A(s=4)、MV Net-B(s=4)、MV Net-A(s=4)、MV Net-B(s=4)以及MV Net-B(s=32)均采用了前向计算的方式(先采用基准卷积核对待处理图像进行卷积处理,然后再结合掩码张量得到待处理图像的卷积特征图)来获得卷积特征图。由表3可知,这些情况下都很大程度少减少了乘法量,起到了减少运算量的效果。
另外,在上述表3中,第一列分别表示不同的方法或者架构,其中,相关方法或架构相应的论文链接如下:
BN low-rank:https://arxiv.org/pdf/1511.06067.pdf
ThiNet-Conv,ThiNet-30:http://openaccess.thecvf.com/content_ICCV_2017/papers/Luo_ThiNet_A_Filter_ICCV_2017_paper.pdf
ShiftResNet:http://openaccess.thecvf.com/content_cvpr_2018/papers/Wu_Shift_A_Zero_CVPR_2018_paper.pdf
Versatile-v2:https://papers.nips.cc/paper/7433-learning-versatile-filters-for-efficient-convolutional-neural-networks
实际上,还可以将本申请提出的基准卷积核嵌入到一些轻量级的深度卷积神经网络模型中,来验证其参数量和内存开销减少的效果。如表4所示,通过将本申请提供的基准卷积核和掩码张量嵌入到MobileNet中,替换其中传统的卷积核,并在ImageNet数据集上进行训练。虽然MobileNet中绝大多数的卷积核尺寸都是1x1的,但是应用本申请所提出的基准卷积核仍然可以将其内存和计算开销减少近一半。
表4
方法 | 内存 | 乘法量 | 前1预测错误率(%) |
MobileNet-v1 | 16.1 | 569 | 29.4 |
MV Net-B(s=2,MobileNet-v1) | 10.5 | 299 | 29.9 |
MobileNet-v2 | 13.2 | 300 | 28.2 |
MV Net-B(s=4,MobileNet-v2) | 7.5 | 93 | 29.9 |
如表4所示,MV Net-B(s=2,MobileNet-v1)是在原来的结构MobileNet-v1上嵌入了基准卷积核,其中,s=2表示一组掩码张量所包含的掩码张量的个数,MV Net-B(s=2,MobileNet-v1)与MobileNet-v1相比,内存和乘法量都有明显的减少。MV Net-B(s=2,MobileNet-v2)是在原来的结构MobileNet-v2上嵌入了基准卷积核,其中,s=2表示一组掩码张量所包含的掩码张量的个数,MV Net-B(s=2,MobileNet-v2)与MobileNet-v2相比,内存和乘法量也都有明显的减少(内存减少了几乎一半)。
另外,在表4中,MV Net-B(s=2,MobileNet-v1)和MV Net-B(s=2,MobileNet-v2)均采用了前向计算的方式(先采用基准卷积核对待处理图像进行卷积处理,然后再结合掩码张量得到待处理图像的卷积特征图)来获得卷积特征图。
其中,MV Net-B(s=2,MobileNet-v1)与MobileNet-v1的传统计算方式相比(采用各个子卷积核对待处理图像进行处理,得到卷积特征图),乘法量下降了接近一半。MVNet-B(s=2,MobileNet-v2)与MobileNet-v2的传统计算方式相比,乘法量下降了超过三倍。
由此可见,将本申请实施例提出的基准卷积核嵌入到一些轻量级的深度卷积神经网络模型之后存储开销减少的效果非常明显,另外,当基准卷积核再结合前向计算的方式进行计算时,计算量减少的效果也比较明显。
应理解,在上述表3和表4对比测试效果的时候,并未给出每种情况下基准卷积核的个数以及掩码张量的组数,这主要是因为每种情况下的基准卷积核的个数以及掩码张量的组数需要是根据具体应用的网络架构来确定。
图13是本申请实施例提供的神经网络训练装置的硬件结构示意图。图13所示的神经网络训练装置3000(该装置3000具体可以是一种计算机设备)包括存储器3001、处理器3002、通信接口3003以及总线3004。其中,存储器3001、处理器3002、通信接口3003通过总线3004实现彼此之间的通信连接。
存储器3001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器3001可以存储程序,当存储器3001中存储的程序被处理器3002执行时,处理器3002和通信接口3003用于执行本申请实施例的神经网络的训练方法的各个步骤。
处理器3002可以采用通用CPU,微处理器,应用专用集成电路(applicationspecific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的神经网络的训练装置中的单元所需执行的功能,或者执行本申请方法实施例的神经网络的训练方法。
处理器3002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的神经网络的训练方法的各个步骤可以通过处理器3002中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器3002还可以是通用处理器、数字信号处理器(digital signal processing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器3001,处理器3002读取存储器3001中的信息,结合其硬件完成本申请实施例的神经网络的训练装置中包括的单元所需执行的功能,或者执行本申请方法实施例的神经网络的训练方法。
通信接口3003使用例如但不限于收发器一类的收发装置,来实现装置3000与其他设备或通信网络之间的通信。例如,可以通过通信接口3003获取训练数据(如本申请实施例中的原始图像和在原始图像上加上噪声后得到的噪声图像)。
总线3004可包括在装置3000各个部件(例如,存储器3001、处理器3002、通信接口3003)之间传送信息的通路。
图14是本申请实施例的图像分类装置的硬件结构示意图。图14所示的图像分类装置4000包括存储器4001、处理器4002、通信接口4003以及总线4004。其中,存储器4001、处理器4002、通信接口4003通过总线4004实现彼此之间的通信连接。
存储器4001可以是ROM,静态存储设备和RAM。存储器4001可以存储程序,当存储器4001中存储的程序被处理器4002执行时,处理器4002和通信接口4003用于执行本申请实施例的图像分类方法的各个步骤。
处理器4002可以采用通用的,CPU,微处理器,ASIC,GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的图像分类装置中的单元所需执行的功能,或者执行本申请方法实施例的图像分类方法。
处理器4002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请实施例的图像分类方法的各个步骤可以通过处理器4002中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器4002还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器4001,处理器4002读取存储器4001中的信息,结合其硬件完成本申请实施例的图像分类装置中包括的单元所需执行的功能,或者执行本申请方法实施例的图像分类方法。
通信接口4003使用例如但不限于收发器一类的收发装置,来实现装置4000与其他设备或通信网络之间的通信。例如,可以通过通信接口4003获取训练数据。
总线4004可包括在装置4000各个部件(例如,存储器4001、处理器4002、通信接口4003)之间传送信息的通路。
应注意,尽管装置3000和4000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置3000和4000还包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置3000和4000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置3000和4000也可仅仅包括实现本申请实施例所必须的器件,而不必包括图13或图14中所示的全部器件。
图15是本申请实施例的数据处理装置的硬件结构示意图。图15所示的数据处理装置5000与图14中的图像分类装置4000类似,数据处理装置5000包括存储器5001、处理器5002、通信接口5003以及总线5004。其中,存储器5001、处理器5002、通信接口5003通过总线5004实现彼此之间的通信连接。
存储器5001可以是ROM,静态存储设备和RAM。存储器5001可以存储程序,当存储器5001中存储的程序被处理器5002执行时,处理器5002和通信接口5003用于执行本申请实施例的图像分类方法的各个步骤。
处理器5002可以采用通用的,CPU,微处理器,ASIC,GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的图像分类装置中的单元所需执行的功能,或者执行本申请方法实施例的数据处理方法。
上文中对图14所示的图像分类装置4000内部的模块和单元的相关描述内容也适用于图15中的数据处理装置5000内部的模块和单元,为了避免不必要的重复,这里适当省略相关描述。
可以理解,上述装置3000相当于1中的训练设备120,上述装置4000和装置5000相当于图1中的执行设备110。
另外,上述装置4000具体可以是具有图像分类功能的电子设备,上述装置5000具体可以是具有数据处理(尤其是多媒体数据处理)功能的电子设备,这里的电子设备具体可以动终端(例如,智能手机),电脑,个人数字助理,可穿戴设备,车载设备,物联网设备等等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (18)
1.一种图像分类方法,其特征在于,包括:
获取神经网络的M个基准卷积核的卷积核参数,M为正整数;
获取所述神经网络的N组掩码张量,N为正整数,所述N组掩码张量中的每组掩码张量由多个掩码张量组成,所述N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,所述M个基准卷积核中的每个基准卷积核对应所述N组掩码张量中的一组掩码张量;
对所述M个基准卷积核中的每个基准卷积核,以及所述每个基准卷积核在所述N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;
根据所述多个子卷积核分别对待处理图像进行卷积处理,得到多个卷积特征图;
根据所述多个卷积特征图对所述待处理图像进行分类,得到所述待处理图像的分类结果。
2.如权利要求1所述的方法,其特征在于,N小于M,所述M个基准卷积核中的至少两个基准卷积核对应所述N组掩码张量中的一组掩码张量。
3.如权利要求1或2所述的方法,其特征在于,所述N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。
4.一种图像分类方法,其特征在于,包括:
获取神经网络的M个基准卷积核的卷积核参数,M为正整数;
获取所述神经网络的N组掩码张量,N为正整数,所述N组掩码张量中的每组掩码张量由多个掩码张量组成,所述N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,所述M个基准卷积核中的每个基准卷积核对应所述N组掩码张量中的一组掩码张量;
根据所述M个基准卷积核对待处理图像进行卷积处理,得到所述待处理图像的M个基准卷积特征图;
对所述M个基准卷积特征图和所述N组掩码张量进行哈达玛积运算,得到所述待处理图像的多个卷积特征图;
根据所述待处理图像的多个卷积特征图对所述待处理图像进行分类,得到所述待处理图像的分类结果。
5.如权利要求4所述的方法,其特征在于,N小于M,所述M个基准卷积核中的至少两个基准卷积核对应所述N组掩码张量中的一组掩码张量。
6.如权利要求4或5所述的方法,其特征在于,所述N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。
7.一种数据处理方法,其特征在于,包括:
获取神经网络的M个基准卷积核的卷积核参数,M为正整数;
获取所述神经网络的N组掩码张量,N为正整数,所述N组掩码张量中的每组掩码张量由多个掩码张量组成,所述N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,所述M个基准卷积核中的每个基准卷积核对应所述N组掩码张量中的一组掩码张量;
对所述M个基准卷积核中的每个基准卷积核,以及所述每个基准卷积核在所述N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;
根据所述多个子卷积核分别对多媒体数据进行卷积处理,得到所述多媒体数据的多个卷积特征图;
根据所述多媒体数据的多个卷积特征图对所述多媒体数据进行处理。
8.一种数据处理方法,其特征在于,包括:
获取神经网络的M个基准卷积核的卷积核参数,M为正整数;
获取所述神经网络的N组掩码张量,N为正整数,所述N组掩码张量中的每组掩码张量由多个掩码张量组成,所述N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,所述M个基准卷积核中的每个基准卷积核对应所述N组掩码张量中的一组掩码张量;
根据所述M个基准卷积核对多媒体数据进行卷积处理,得到所述多媒体数据的M个基准卷积特征图;
对所述M个基准卷积特征图和所述N组掩码张量进行哈达玛积运算,得到所述多媒体数据的多个卷积特征图;
据所述多媒体数据的多个卷积特征图对所述多媒体数据进行处理。
9.一种图像分类装置,其特征在于,包括:
存储器,用于存储神经网络的M个基准卷积核的卷积核参数和N组掩码张量,其中,M和N均为正整数,所述N组掩码张量中的每组掩码张量由多个掩码张量组成,所述N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,所述M个基准卷积核中的每个基准卷积核对应所述N组掩码张量中的一组掩码张量;
处理器,用于获取所述神经网络的M个基准卷积核的卷积核参数和N组掩码张量,并执行以下操作:
对所述M个基准卷积核中的每个基准卷积核,以及所述每个基准卷积核在所述N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;
根据所述多个子卷积核分别对待处理图像进行卷积处理,得到多个卷积特征图;
根据所述多个卷积特征图对所述待处理图像进行分类,得到所述待处理图像的分类结果。
10.如权利要求9所述的装置,其特征在于,N小于M,所述M个基准卷积核中的至少两个基准卷积核对应所述N组掩码张量中的一组掩码张量。
11.如权利要求9或10所述的装置,其特征在于,所述N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。
12.一种图像分类装置,其特征在于,包括:
存储器,用于存储神经网络的M个基准卷积核的卷积核参数和N组掩码张量,其中,M和N均为正整数,所述N组掩码张量中的每组掩码张量由多个掩码张量组成,所述N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,所述M个基准卷积核中的每个基准卷积核对应所述N组掩码张量中的一组掩码张量;
处理器,用于获取所述神经网络的M个基准卷积核的卷积核参数和N组掩码张量,并执行以下操作:
根据所述M个基准卷积核对待处理图像进行卷积处理,得到所述待处理图像的M个基准卷积特征图;
对所述M个基准卷积特征图和所述N组掩码张量进行哈达玛积运算,得到所述待处理图像的多个卷积特征图;
根据所述待处理图像的多个卷积特征图对所述待处理图像进行分类,得到所述待处理图像的分类结果。
13.如权利要求12所述的装置,其特征在于,N小于M,所述M个基准卷积核中的至少两个基准卷积核对应所述N组掩码张量中的一组掩码张量。
14.如权利要求12或13所述的装置,其特征在于,所述N组掩码张量中至少一组掩码张量中的至少部分掩码张量满足两两正交。
15.一种数据处理装置,其特征在于,包括:
存储器,用于存储神经网络的M个基准卷积核的卷积核参数和N组掩码张量,其中,M和N均为正整数,所述N组掩码张量中的每组掩码张量由多个掩码张量组成,所述N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,所述M个基准卷积核中的每个基准卷积核对应所述N组掩码张量中的一组掩码张量;
处理器,用于获取所述神经网络的M个基准卷积核的卷积核参数和N组掩码张量,并执行以下操作:
对所述M个基准卷积核中的每个基准卷积核,以及所述每个基准卷积核在所述N组掩码张量中对应的一组掩码张量进行哈达玛积运算,得到多个子卷积核;
根据所述多个子卷积核分别对多媒体数据进行卷积处理,得到所述多媒体数据的多个卷积特征图;
据所述多媒体数据的多个卷积特征图对所述多媒体数据进行处理。
16.一种数据处理装置,其特征在于,包括:
存储器,用于存储神经网络的M个基准卷积核的卷积核参数和N组掩码张量,其中,M和N均为正整数,所述N组掩码张量中的每组掩码张量由多个掩码张量组成,所述N组掩码张量中的元素存储时占用的比特数小于M个基准卷积核中卷积核参数中的元素存储时占用的比特数,所述M个基准卷积核中的每个基准卷积核对应所述N组掩码张量中的一组掩码张量;
处理器,用于获取所述神经网络的M个基准卷积核的卷积核参数和N组掩码张量,并执行以下操作:
根据所述M个基准卷积核对多媒体数据进行卷积处理,得到所述多媒体数据的M个基准卷积特征图;
对所述M个基准卷积特征图和所述N组掩码张量进行哈达玛积运算,得到所述多媒体数据的多个卷积特征图;
据所述多媒体数据的多个卷积特征图对所述多媒体数据进行处理。
17.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如权利要求1-8中任一项所述的方法。
18.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行如权利要求1-8中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910335678.8A CN110188795B (zh) | 2019-04-24 | 2019-04-24 | 图像分类方法、数据处理方法和装置 |
PCT/CN2020/086015 WO2020216227A1 (zh) | 2019-04-24 | 2020-04-22 | 图像分类方法、数据处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910335678.8A CN110188795B (zh) | 2019-04-24 | 2019-04-24 | 图像分类方法、数据处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110188795A true CN110188795A (zh) | 2019-08-30 |
CN110188795B CN110188795B (zh) | 2023-05-09 |
Family
ID=67715037
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910335678.8A Active CN110188795B (zh) | 2019-04-24 | 2019-04-24 | 图像分类方法、数据处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110188795B (zh) |
WO (1) | WO2020216227A1 (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110780923A (zh) * | 2019-10-31 | 2020-02-11 | 合肥工业大学 | 应用于二值化卷积神经网络的硬件加速器及其数据处理方法 |
CN110995688A (zh) * | 2019-11-27 | 2020-04-10 | 王培根 | 一种用于互联网金融平台的个人数据共享方法、装置及终端设备 |
CN110991643A (zh) * | 2019-12-25 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 一种模型部署方法、装置、电子设备及存储介质 |
CN111126572A (zh) * | 2019-12-26 | 2020-05-08 | 北京奇艺世纪科技有限公司 | 一种模型参数处理方法、装置、电子设备及存储介质 |
CN111260037A (zh) * | 2020-02-11 | 2020-06-09 | 深圳云天励飞技术有限公司 | 图像数据的卷积运算方法、装置、电子设备及存储介质 |
CN111275166A (zh) * | 2020-01-15 | 2020-06-12 | 华南理工大学 | 基于卷积神经网络的图像处理装置、设备及可读存储介质 |
CN111381968A (zh) * | 2020-03-11 | 2020-07-07 | 中山大学 | 一种高效运行深度学习任务的卷积运算优化方法及系统 |
CN111539462A (zh) * | 2020-04-15 | 2020-08-14 | 苏州万高电脑科技有限公司 | 模仿生物视觉神经元的图像分类方法、系统、装置及介质 |
CN111708641A (zh) * | 2020-07-14 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种内存管理方法、装置、设备及计算机可读存储介质 |
WO2020216227A1 (zh) * | 2019-04-24 | 2020-10-29 | 华为技术有限公司 | 图像分类方法、数据处理方法和装置 |
CN111860522A (zh) * | 2020-07-23 | 2020-10-30 | 中国平安人寿保险股份有限公司 | 身份证图片处理方法、装置、终端及存储介质 |
CN111860582A (zh) * | 2020-06-11 | 2020-10-30 | 北京市威富安防科技有限公司 | 图像分类模型构建方法、装置、计算机设备和存储介质 |
WO2021051497A1 (zh) * | 2019-09-16 | 2021-03-25 | 平安科技(深圳)有限公司 | 肺结核判定方法、装置、计算机设备及存储介质 |
CN112686249A (zh) * | 2020-12-22 | 2021-04-20 | 中国人民解放军战略支援部队信息工程大学 | 一种基于对抗补丁的Grad-CAM攻击方法 |
CN112686320A (zh) * | 2020-12-31 | 2021-04-20 | 深圳市优必选科技股份有限公司 | 图像分类方法、装置、计算机设备及存储介质 |
CN113392899A (zh) * | 2021-06-10 | 2021-09-14 | 电子科技大学 | 一种基于二值化图像分类网络的图像分类方法 |
CN113537492A (zh) * | 2021-07-19 | 2021-10-22 | 第六镜科技(成都)有限公司 | 模型训练及数据处理方法、装置、设备、介质、产品 |
CN114239814A (zh) * | 2022-02-25 | 2022-03-25 | 杭州研极微电子有限公司 | 用于图像处理的卷积神经网络模型的训练方法 |
WO2022141511A1 (zh) * | 2020-12-31 | 2022-07-07 | 深圳市优必选科技股份有限公司 | 图像分类方法、计算机设备及存储介质 |
CN115170917A (zh) * | 2022-06-20 | 2022-10-11 | 美的集团(上海)有限公司 | 图像处理方法、电子设备及存储介质 |
CN115294381A (zh) * | 2022-05-06 | 2022-11-04 | 兰州理工大学 | 基于特征迁移和正交先验的小样本图像分类方法及装置 |
CN113537492B (zh) * | 2021-07-19 | 2024-04-26 | 第六镜科技(成都)有限公司 | 模型训练及数据处理方法、装置、设备、介质、产品 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215243A (zh) * | 2020-10-30 | 2021-01-12 | 百度(中国)有限公司 | 图像特征提取方法、装置、设备及存储介质 |
CN113138957A (zh) * | 2021-03-29 | 2021-07-20 | 北京智芯微电子科技有限公司 | 用于神经网络推理的芯片及加速神经网络推理的方法 |
CN113239899A (zh) * | 2021-06-17 | 2021-08-10 | 阿波罗智联(北京)科技有限公司 | 用于处理图像和生成卷积核的方法、路侧设备和云控平台 |
CN113536943B (zh) * | 2021-06-21 | 2024-04-12 | 上海赫千电子科技有限公司 | 一种基于图像增强的道路交通标志识别方法 |
CN113537325B (zh) * | 2021-07-05 | 2023-07-11 | 北京航空航天大学 | 一种用于图像分类的基于提取高低层特征逻辑的深度学习方法 |
CN113642589B (zh) * | 2021-08-11 | 2023-06-06 | 南方科技大学 | 图像特征提取方法及装置、计算机设备和可读存储介质 |
CN114491399A (zh) * | 2021-12-30 | 2022-05-13 | 深圳云天励飞技术股份有限公司 | 数据处理方法、装置、终端设备及计算机可读存储介质 |
CN115797709B (zh) * | 2023-01-19 | 2023-04-25 | 苏州浪潮智能科技有限公司 | 一种图像分类方法、装置、设备和计算机可读存储介质 |
CN117314938B (zh) * | 2023-11-16 | 2024-04-05 | 中国科学院空间应用工程与技术中心 | 一种基于多尺度特征融合译码的图像分割方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127297A (zh) * | 2016-06-02 | 2016-11-16 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
US9779786B1 (en) * | 2016-10-26 | 2017-10-03 | Xilinx, Inc. | Tensor operations and acceleration |
CN107886164A (zh) * | 2017-12-20 | 2018-04-06 | 东软集团股份有限公司 | 一种卷积神经网络训练、测试方法及训练、测试装置 |
CN108229360A (zh) * | 2017-12-26 | 2018-06-29 | 美的集团股份有限公司 | 一种图像处理的方法、设备及存储介质 |
CN108304795A (zh) * | 2018-01-29 | 2018-07-20 | 清华大学 | 基于深度强化学习的人体骨架行为识别方法及装置 |
CN108615072A (zh) * | 2016-12-13 | 2018-10-02 | 谷歌公司 | 在硬件中执行平均池化 |
US20190108444A1 (en) * | 2017-10-11 | 2019-04-11 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for customizing kernel machines with deep neural networks |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9202144B2 (en) * | 2013-10-30 | 2015-12-01 | Nec Laboratories America, Inc. | Regionlets with shift invariant neural patterns for object detection |
CN104517103A (zh) * | 2014-12-26 | 2015-04-15 | 广州中国科学院先进技术研究所 | 一种基于深度神经网络的交通标志分类方法 |
WO2017129325A1 (en) * | 2016-01-29 | 2017-08-03 | Fotonation Limited | A convolutional neural network |
CN110188795B (zh) * | 2019-04-24 | 2023-05-09 | 华为技术有限公司 | 图像分类方法、数据处理方法和装置 |
-
2019
- 2019-04-24 CN CN201910335678.8A patent/CN110188795B/zh active Active
-
2020
- 2020-04-22 WO PCT/CN2020/086015 patent/WO2020216227A1/zh active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106127297A (zh) * | 2016-06-02 | 2016-11-16 | 中国科学院自动化研究所 | 基于张量分解的深度卷积神经网络的加速与压缩方法 |
US9779786B1 (en) * | 2016-10-26 | 2017-10-03 | Xilinx, Inc. | Tensor operations and acceleration |
CN108615072A (zh) * | 2016-12-13 | 2018-10-02 | 谷歌公司 | 在硬件中执行平均池化 |
US20190108444A1 (en) * | 2017-10-11 | 2019-04-11 | Arizona Board Of Regents On Behalf Of Arizona State University | Systems and methods for customizing kernel machines with deep neural networks |
CN107886164A (zh) * | 2017-12-20 | 2018-04-06 | 东软集团股份有限公司 | 一种卷积神经网络训练、测试方法及训练、测试装置 |
CN108229360A (zh) * | 2017-12-26 | 2018-06-29 | 美的集团股份有限公司 | 一种图像处理的方法、设备及存储介质 |
CN108304795A (zh) * | 2018-01-29 | 2018-07-20 | 清华大学 | 基于深度强化学习的人体骨架行为识别方法及装置 |
Non-Patent Citations (2)
Title |
---|
MICHAËL DEFFERRARD等: "Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering", 《ARXIV》 * |
RITCHIE ZHAO 等: "Building Efficient Deep Neural Networks with Unitary Group Convolutions", 《ARXIV》 * |
Cited By (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020216227A1 (zh) * | 2019-04-24 | 2020-10-29 | 华为技术有限公司 | 图像分类方法、数据处理方法和装置 |
WO2021051497A1 (zh) * | 2019-09-16 | 2021-03-25 | 平安科技(深圳)有限公司 | 肺结核判定方法、装置、计算机设备及存储介质 |
CN110780923A (zh) * | 2019-10-31 | 2020-02-11 | 合肥工业大学 | 应用于二值化卷积神经网络的硬件加速器及其数据处理方法 |
CN110995688A (zh) * | 2019-11-27 | 2020-04-10 | 王培根 | 一种用于互联网金融平台的个人数据共享方法、装置及终端设备 |
CN110995688B (zh) * | 2019-11-27 | 2021-11-16 | 深圳申朴信息技术有限公司 | 一种用于互联网金融平台的个人数据共享方法、装置及终端设备 |
CN110991643A (zh) * | 2019-12-25 | 2020-04-10 | 北京奇艺世纪科技有限公司 | 一种模型部署方法、装置、电子设备及存储介质 |
CN110991643B (zh) * | 2019-12-25 | 2024-01-30 | 北京奇艺世纪科技有限公司 | 一种模型部署方法、装置、电子设备及存储介质 |
CN111126572A (zh) * | 2019-12-26 | 2020-05-08 | 北京奇艺世纪科技有限公司 | 一种模型参数处理方法、装置、电子设备及存储介质 |
CN111126572B (zh) * | 2019-12-26 | 2023-12-08 | 北京奇艺世纪科技有限公司 | 一种模型参数处理方法、装置、电子设备及存储介质 |
CN111275166A (zh) * | 2020-01-15 | 2020-06-12 | 华南理工大学 | 基于卷积神经网络的图像处理装置、设备及可读存储介质 |
CN111275166B (zh) * | 2020-01-15 | 2023-05-02 | 华南理工大学 | 基于卷积神经网络的图像处理装置、设备及可读存储介质 |
CN111260037B (zh) * | 2020-02-11 | 2023-10-13 | 深圳云天励飞技术股份有限公司 | 图像数据的卷积运算方法、装置、电子设备及存储介质 |
CN111260037A (zh) * | 2020-02-11 | 2020-06-09 | 深圳云天励飞技术有限公司 | 图像数据的卷积运算方法、装置、电子设备及存储介质 |
CN111381968A (zh) * | 2020-03-11 | 2020-07-07 | 中山大学 | 一种高效运行深度学习任务的卷积运算优化方法及系统 |
CN111381968B (zh) * | 2020-03-11 | 2023-04-25 | 中山大学 | 一种高效运行深度学习任务的卷积运算优化方法及系统 |
CN111539462A (zh) * | 2020-04-15 | 2020-08-14 | 苏州万高电脑科技有限公司 | 模仿生物视觉神经元的图像分类方法、系统、装置及介质 |
CN111539462B (zh) * | 2020-04-15 | 2023-09-19 | 苏州万高电脑科技有限公司 | 模仿生物视觉神经元的图像分类方法、系统、装置及介质 |
CN111860582A (zh) * | 2020-06-11 | 2020-10-30 | 北京市威富安防科技有限公司 | 图像分类模型构建方法、装置、计算机设备和存储介质 |
CN111708641A (zh) * | 2020-07-14 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 一种内存管理方法、装置、设备及计算机可读存储介质 |
CN111708641B (zh) * | 2020-07-14 | 2024-03-19 | 腾讯科技(深圳)有限公司 | 一种内存管理方法、装置、设备及计算机可读存储介质 |
CN111860522B (zh) * | 2020-07-23 | 2024-02-02 | 中国平安人寿保险股份有限公司 | 身份证图片处理方法、装置、终端及存储介质 |
CN111860522A (zh) * | 2020-07-23 | 2020-10-30 | 中国平安人寿保险股份有限公司 | 身份证图片处理方法、装置、终端及存储介质 |
CN112686249B (zh) * | 2020-12-22 | 2022-01-25 | 中国人民解放军战略支援部队信息工程大学 | 一种基于对抗补丁的Grad-CAM攻击方法 |
CN112686249A (zh) * | 2020-12-22 | 2021-04-20 | 中国人民解放军战略支援部队信息工程大学 | 一种基于对抗补丁的Grad-CAM攻击方法 |
CN112686320A (zh) * | 2020-12-31 | 2021-04-20 | 深圳市优必选科技股份有限公司 | 图像分类方法、装置、计算机设备及存储介质 |
CN112686320B (zh) * | 2020-12-31 | 2023-10-13 | 深圳市优必选科技股份有限公司 | 图像分类方法、装置、计算机设备及存储介质 |
WO2022141511A1 (zh) * | 2020-12-31 | 2022-07-07 | 深圳市优必选科技股份有限公司 | 图像分类方法、计算机设备及存储介质 |
CN113392899A (zh) * | 2021-06-10 | 2021-09-14 | 电子科技大学 | 一种基于二值化图像分类网络的图像分类方法 |
CN113392899B (zh) * | 2021-06-10 | 2022-05-10 | 电子科技大学 | 一种基于二值化图像分类网络的图像分类方法 |
CN113537492A (zh) * | 2021-07-19 | 2021-10-22 | 第六镜科技(成都)有限公司 | 模型训练及数据处理方法、装置、设备、介质、产品 |
CN113537492B (zh) * | 2021-07-19 | 2024-04-26 | 第六镜科技(成都)有限公司 | 模型训练及数据处理方法、装置、设备、介质、产品 |
CN114239814A (zh) * | 2022-02-25 | 2022-03-25 | 杭州研极微电子有限公司 | 用于图像处理的卷积神经网络模型的训练方法 |
CN115294381A (zh) * | 2022-05-06 | 2022-11-04 | 兰州理工大学 | 基于特征迁移和正交先验的小样本图像分类方法及装置 |
CN115170917B (zh) * | 2022-06-20 | 2023-11-07 | 美的集团(上海)有限公司 | 图像处理方法、电子设备及存储介质 |
CN115170917A (zh) * | 2022-06-20 | 2022-10-11 | 美的集团(上海)有限公司 | 图像处理方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020216227A1 (zh) | 2020-10-29 |
CN110188795B (zh) | 2023-05-09 |
WO2020216227A9 (zh) | 2020-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110188795A (zh) | 图像分类方法、数据处理方法和装置 | |
CN109685819B (zh) | 一种基于特征增强的三维医学图像分割方法 | |
CN110378381A (zh) | 物体检测方法、装置和计算机存储介质 | |
CN110188239B (zh) | 一种基于跨模态注意力机制的双流视频分类方法和装置 | |
CN110532871A (zh) | 图像处理的方法和装置 | |
CN110309856A (zh) | 图像分类方法、神经网络的训练方法及装置 | |
CN112446476A (zh) | 神经网络模型压缩的方法、装置、存储介质和芯片 | |
CN112236779A (zh) | 基于卷积神经网络的图像处理方法和图像处理装置 | |
WO2021022521A1 (zh) | 数据处理的方法、训练神经网络模型的方法及设备 | |
CN109840530A (zh) | 训练多标签分类模型的方法和装置 | |
CN109902546A (zh) | 人脸识别方法、装置及计算机可读介质 | |
WO2021057056A1 (zh) | 神经网络架构搜索方法、图像处理方法、装置和存储介质 | |
WO2021018163A1 (zh) | 神经网络的搜索方法及装置 | |
CN112446270A (zh) | 行人再识别网络的训练方法、行人再识别方法和装置 | |
CN109993707A (zh) | 图像去噪方法和装置 | |
Shi et al. | Image manipulation detection and localization based on the dual-domain convolutional neural networks | |
WO2022052601A1 (zh) | 神经网络模型的训练方法、图像处理方法及装置 | |
CN111914997B (zh) | 训练神经网络的方法、图像处理方法及装置 | |
CN111989689A (zh) | 用于识别图像内目标的方法和用于执行该方法的移动装置 | |
CN110222718B (zh) | 图像处理的方法及装置 | |
CN110378208B (zh) | 一种基于深度残差网络的行为识别方法 | |
WO2021218517A1 (zh) | 获取神经网络模型的方法、图像处理方法及装置 | |
WO2021018245A1 (zh) | 图像分类方法及装置 | |
Liu et al. | The classification and denoising of image noise based on deep neural networks | |
CN109086802A (zh) | 一种基于八元数卷积神经网络的图像分类方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |