CN114444558A - 用于对象识别的神经网络的训练方法及训练装置 - Google Patents
用于对象识别的神经网络的训练方法及训练装置 Download PDFInfo
- Publication number
- CN114444558A CN114444558A CN202011220649.6A CN202011220649A CN114444558A CN 114444558 A CN114444558 A CN 114444558A CN 202011220649 A CN202011220649 A CN 202011220649A CN 114444558 A CN114444558 A CN 114444558A
- Authority
- CN
- China
- Prior art keywords
- image
- training
- samples
- student
- image sample
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/764—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Image Analysis (AREA)
Abstract
本发明涉及用于对象识别的神经网络的训练方法及训练装置。一种训练方法包括:将包含待识别对象的训练图像集输入到所述神经网络,以提取每个图像样本的学生特征,所述训练图像集包括一组正常图像样本和一组变化图像样本;基于所提取的学生特征,将所述训练图像集中的图像样本划分为简单样本和困难样本;对于正常图像样本和变化图像样本中的每一种:由相应的传递迁移适配器对该图像样本的学生特征进行基于所述划分的传递迁移,以得到迁移学生特征;计算该图像样本的迁移学生特征相对于从对应的另一种图像样本中提取的教师特征的蒸馏损失;由相应的分类器基于学生特征对该图像样本进行分类;以及计算该图像样本的分类损失;基于对于所有图像样本计算的蒸馏损失和分类损失,计算与所述训练图像集相关的总损失;以及根据计算的总损失,更新所述神经网络的参数。
Description
技术领域
本发明涉及用于对象识别的神经网络,更特别地,涉及神经网络模型的训练方法及训练装置。
背景技术
近年来,静态图像或一系列运动图像(诸如视频)中的对象检测/识别/比对/跟踪被普遍地和重要地应用于图像处理、计算机视觉和图案识别领域。人脸/物体识别是最重要的计算机视觉任务之一,其目标是根据输入的照片/视频来识别或验证特定的人/物体。近年来,用于人脸/物体识别的神经网络模型、特别是卷积神经网络(CNN)模型在显著提高性能方面取得了突破性进展。给定一个训练数据集,CNN训练过程利用通用的CNN架构作为特征提取器从训练图像中提取特征,然后通过使用各种设计的损失函数来计算损失数据以用于监督训练CNN模型。所以当CNN架构选定后,对象识别模型的性能由损失函数和训练数据集驱动。
然而,现有的公共训练数据集大部分是由高质量的正常图像构成的,在这种训练数据集上训练好的CNN对于正常图像一般都具有较好的识别能力。但是当输入图像是在对象姿态、种族、分辨率、光照等方面存在各种变化的变化图像时,对象识别模型的识别性能明显下降,这是因为对象识别模型没有从变化有限的训练数据集中学习到鲁棒的特征表示。因此,当前的对象识别模型的主要挑战是在输入图像可能具有各种变化的无约束场景下仍能保持高识别性能。
常规的解决方案是采用图像数据合成(synthesis)或增广(augmentation)方法生成特定变化的图像,并将其加入到训练数据集中以用于对象识别模型的训练。然而,由于特征域差异,直接对合成或增广的图像进行训练可能导致网络难以收敛,或者即使收敛,所得到的模型在合成或增广的图像上的识别性能有所提高的同时,在正常图像上的识别性能下降,即,出现所谓的“负迁移”。
例如,Yuge Huang等人在“Improving Face Recognition from Hard Samplesvia Distribution Distillation Loss”中提出了一种基于相似度分布的蒸馏损失函数来缩小容易样本和困难样本的性能差距。该方法首先利用Arcface等先进的分类器构造了两个相似度分布:容易样本的教师分布和困难样本的学生分布,然后利用分布驱动的损失函数约束学生分布来近似教师分布,使得学生分布中的正对(positive pairs)和负对(negative pairs)重叠减小。然而,容易样本和困难样本被离线划分,它们的相似度分布实际上存在固定的差异。当容易样本与困难样本之间存在较大差异时,它们实际的特征域也存在较大差距,仅利用相似度分布驱动的损失函数来推动困难样本的学生分布向容易样本的教师分布趋近,一方面可能使网络很难收敛而无法得到最终的训练模型,另一方面可能会导致知识的负迁移。此方法假设容易样本的教师分布在识别能力上是最优的并用来监督困难样本的学习,但由于容易样本和困难样本实际上同时作用于同一分类损失函数,困难样本会产生较大的梯度影响训练模型向其特征域偏移,导致最终的训练模型不能同时保证在容易样本和困难样本上最优。
发明内容
本发明提出了一种新的基于传递知识蒸馏(transitive knowledgedistillation)和双分支分类(bilateral classification)的神经网络训练方法。通过引入传递域作为过渡桥梁,从两个方向同时拉近不同的特征域,从而避免大的域间差异,缩小正常图像和变化图像之间的性能差距。此外,通过采用基于课程学习策略的双分支分类,在学习过程中将学习焦点逐渐从正常图像转移到变化图像,降低来自变化图像的负面影响,提高表示学习的上限。
根据本发明的一个方面,提供了一种用于对象识别的神经网络的训练方法,包括:将包含待识别对象的训练图像集输入到所述神经网络,以提取每个图像样本的学生特征,所述训练图像集包括一组正常图像样本和一组变化图像样本;基于所提取的学生特征,将所述训练图像集中的图像样本划分为简单样本和困难样本;对于正常图像样本和变化图像样本中的每一种:由相应的传递迁移适配器对该图像样本的学生特征进行基于所述划分的传递迁移,以得到迁移学生特征;计算该图像样本的迁移学生特征相对于从对应的另一种图像样本中提取的教师特征的蒸馏损失;由相应的分类器基于学生特征对该图像样本进行分类;以及计算该图像样本的分类损失,基于对于所有图像样本计算的蒸馏损失和分类损失,计算与所述训练图像集相关的总损失;以及根据计算的总损失,更新所述神经网络的参数。
根据本发明的一个方面,还提供了一种用于对象识别的神经网络的训练装置,包括用于执行上述训练方法的各个步骤的单元。
根据本发明的一个方面,还提供了一种利用上述训练方法来针对多个变化场景训练神经网络的迭代训练方法。
根据本发明的一个方面,还提供了利用上述训练方法训练的神经网络。
根据本发明的一个方面,还提供了一种存储有可执行指令的非暂时性计算机可读存储介质,可执行指令当被执行时可用于实现上述训练方法。
附图说明
本发明可以通过参考下文中结合附图所给出的详细描述而得到更好的理解,其中在所有附图中使用了相同或相似的附图标记来表示相同或者相似的要素。所有附图连同下面的详细说明一起包含在本说明书中并形成说明书的一部分,用来进一步举例说明本发明的实施例和解释本发明的原理和优点。其中:
图1是示出了利用传递迁移(transitive transfer)融合不同变化的人脸图像的示意图;
图2是根据本发明的神经网络训练方法的概述示意图;
图3示出了根据本发明的动态样本划分的伪代码;
图4示出了用于定义简单样本的阈值在训练过程中的变化;
图5是示出了传统的直接迁移和根据本发明的传递迁移的示意图;
图6是示出了正常图像和变化图像的分类学习示意图;
图7是根据本发明的迭代训练方法的示意图;
图8是根据本发明的训练装置的配置框图;
图9是根据本发明的训练方法的流程图;
图10是根据本发明的第一示例的训练过程的流程图;
图11是根据本发明的第二示例的训练过程的流程图;
图12是根据本发明的第三示例的训练过程的流程图;
图13是根据本发明的第四示例的训练过程的流程图;
图14示出了能够实现本发明的实施例的计算机系统的示例性硬件配置的框图。
通过参照附图对示例性实施例的以下描述,本发明的其它特征将变得清晰。
具体实施方式
在下文中将参照附图来详细描述本发明的各种示例性实施例。为了清楚和简明起见,在本说明书中并未描述实施例的所有实现方式。然而应注意,在实现本发明的实施例时可以根据特定需求做出很多特定于实现方式的设置。
此外,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与本发明的技术方案密切相关的处理步骤和/或设备结构。以下对于示例性实施例的描述仅仅是说明性的,不意在作为对本发明及其应用的任何限制。
【概述】
在给出每个实施例的具体描述之前,将描述本发明的要旨。本发明使用包括含有待识别对象的正常图像样本和变化图像样本的训练图像集来训练对象识别模型,以使其获得在无约束场景下的优异识别性能。
在本发明的上下文中,训练图像集中的“图像样本”可指的是任何图像,诸如彩色图像、灰度图像等。图像样本的类型和格式不受特别限制,只要这样的图像可经受处理以便可检测该图像是否含有对象即可。此外,图像可以是原始图像或其处理版本,诸如在对图像执行本申请的操作之前已经经受了初步的过滤或者前处理的图像的版本。
此外,图像样本含有待识别对象是指图像样本含有该对象的对象图像。该对象图像有时也可被称为图像样本中的对象区域。对象识别也即是指对图像样本中的对象区域进行识别。待识别对象可以是人或其部位(诸如脸部、手部、身体等)、其它动物或者植物、或者任何其它希望检测的物体。下文中以典型的人脸作为待识别对象的示例,但是本发明不限于此。
对象识别模型的典型示例是神经网络,诸如卷积神经网络(CNN)。在下文中将主要以CNN为例进行描述,但是应理解,本发明可以类似地应用于其它神经网络,诸如生成式对抗网络(GAN)、最近神经网络(RNN)等,甚至可应用于其它深度学习模型,只要模型能够提取待识别对象的特征即可。
如本文所使用的,“正常图像”是指就对象识别而言的高质量图像,如传统的公共数据集中的那些,一般包括丰富的区分信息。相反,“变化图像”是指与正常图像相比,包括一种或多种变化的图像,诸如对象姿态、种族、分辨率、光照等变化。变化图像既可以是利用成像装置捕获的图像,也可以是经过特定图像处理而得到的图像。在本发明中,主要通过增广技术来针对一种或多种特定变化场景产生变化图像的样本,但是变化图像不限于此。
为了得到对于不同变化图像的泛化性更好的CNN,变化图像样本与正常图像样本被一起输入到模型中。在人脸识别的情景中,深度识别模型将人脸映射到特征空间,以提取相应的特征表示。对象的特征表示可以是例如向量的形式,其可被称为是对象的“特征向量”。例如,CNN将选取人脸的代表性部分的像素纹理信息、位置坐标等作为特征来构成图像的特征向量。通过设计损失函数来实现小的类内距离和大的类间距离,从而可以基于所获得的特征向量来进行对象识别/检测/跟踪。应理解,特征表示的形式可以根据所使用的对象识别模型而有所不同,并不受特别限制。
然而,正常图像和变化图像的特征域之间可能存在较大差异,而从不同变化的图像中学习知识的一个关键要求是正常图像的特征域(正常域)和变化图像的特征域(变化域)要有所关联。如图1中所示,由于正常图像和具有不同变化的图像之间存在着明显的特征域差异,正常域和变化域没有足够多的共性因素来缩小两者之间的差距,很难找到直接的关联,因此强行知识迁移是行不通的。直接最小化同一对象的距离必然会造成负迁移,因为正常域的知识很难传播到目标变化域。
有鉴于此,本发明提出了传递知识蒸馏的概念。如图1中所示,由于不能进行直接迁移,引入了适配器作为连接正常域和目标变化域的桥梁。这种适配器将所提取的特征转换为中间特征,借助于传递迁移学习(transitive transfer learning,TTL)来转换传递知识,从而在具有较少共性因素的正常域和变化域之间建立关联。由此,可以在训练过程中控制变化图像间的相互影响,融合不同变化的图像的特征表示。随后,可以通过由适配器产生的传递域进行知识的蒸馏学习。通过定义并减少传递域与目标变化域之间的蒸馏损失,将特定变化的特征表示和正常图像的特征表示融合在同一特征表示中。
考虑到使用相同结构的适配器转换不同质量的训练样本是不合理的,本发明通过动态样本划分策略来将图像样本划分为简单样本和困难,并使适配器对简单样本和困难样本进行不同程度的传递迁移。
此外,当同时对正常图像样本和变化图像样本进行训练时,如果模型为这两者赋予相同的可信度,则学习到的模式将是所有训练样本的中心。然而,由于变化图像样本的大变化是不真实的且难以收敛,它们趋于提供更大的梯度影响以将混合模式推向更接近变化图像样本,这样导致正常图像样本的分类无法优化。
对此,本发明针对正常图像样本和变化图像样本实现双分支分类,即,利用相应的分类器分别对正常图像样本和变化图像样本进行分类,使得正常图像样本和变化图像样本的分类训练互不影响。基于课程学习策略,变化图像样本分支的分类损失的影响随着训练过程逐渐增大,由此模型的学习逐渐从正常图像过渡到变化图像,从而缓解变化图像难以优化带来的负面影响,并提高表示学习的上限。
【神经网络的训练方法】
下面更详细地介绍根据本发明的神经网络训练方法。
作为神经网络的示例,卷积神经网络(CNN)是一种得到广泛应用的深度学习模型,包含卷积计算和深度结构,具有极强的非线性拟合能力。借助于例如卷积神经网络的非线性拟合能力,当将包含对象区域的图像样本输入到卷积神经网络中时,可以挖掘隐藏在图像中的关于对象的信息。卷积神经网络具有自学习能力,可以通过真实数据的训练来确定神经网络的参数,而无需复杂的手动参数设计。
在本发明的上下文中,一“代(epoch)”训练是指在所有训练数据集上都训练过一次。取决于实际需要,训练数据集可以按照批大小(batch size)被分成若干批,则在一批训练数据上的训练被称为一次迭代(iteration),每迭代一次,神经网络的参数更新一次。
用于训练的训练数据集可包括大量的包括待识别对象(例如人脸)的图像样本,例如数万、数十万、数百万张。根据本发明的训练数据集包括一组正常图像样本(xN,LN)和一组变化图像样本(xA,LA)。每个变化图像样本都有对应的正常图像样本,也就是说,这一组变化图像样本对应于这一组正常图像样本的子集,在本发明的上下文中,正常图像样本与变化图像样本“对应”是指它们包含相同的待识别对象(例如,人物身份)。
正常图像样本可以是例如来自公共数据集(例如,CAISA-WebFace)的高质量图像。变化图像样本可以是例如通过图像增广技术获得的低质量图像,下面的实施例中将直接称为“增广图像”。通过图像增广技术对正常图像样本做一系列随机改变,产生相似但又不同的训练样本,从而可以扩大训练数据集的规模,也可以降低模型对某些属性的依赖,从而提高模型的泛化能力。典型的图像增广有:翻转(flipping),诸如左右翻转、上下翻转;裁剪,使得感兴趣的物体出现在不同位置,从而让模型减轻对于对象出现位置的依赖性;颜色调整,例如改变图像样本的亮度、对比度、饱和度和色调,以降低模型对于颜色的敏感度;分辨率调整,例如产生不同分辨率的低质量图像,等等。取决于实际需要,既可以针对仅一种变化场景进行增广以获得包含一种变化的增广图像,也可以针对两种或更多种变化场景进行增广以获得包含多种变化的增广图像。
训练数据集中的图像样本可以经过前处理(pre-processing)。前处理操作可包括例如对象检测、对象对齐、规范化等等。特别地,对象检测可例如指的是从包含人脸的图像中检测到人脸并获取主要包含待识别人脸的图像,对象对齐可指的是将图像中处于不同姿态的对象图像对齐至同样的或者适当的姿态,由此基于对齐后的对象图像进行对象检测/识别/跟踪。人脸识别是一种常见的对象识别操作,并且对于人脸识别训练图像集,可以执行包括例如人脸检测、人脸对齐等等的前处理。由于使用梯度下降算法进行学习,图像样本数据被规范化为均值为0、方差为1的标准分布,从而加速神经网络的收敛。应指出,前处理操作还可以包括本领域已知的其它类型的前处理操作,这里将不再详细描述。
图2是示出了根据本发明的神经网络训练方法的示意图。为了便于下面的说明,首先给出图2中的一些符号定义:
(xN,LN):正常图像样本,其中xN表示正常图像数据,LN是表示该样本为正常图像的标记;
(xA,LA):增广图像样本,其中xA表示增广图像数据,LA是表示该样本为增广图像的标记;
MS:需要训练的神经网络,作为传递迁移学习中被指导的学生角色,因此下文中也被称为学生网络;
下面参照图2具体描述训练方法的各个部分。
特征提取
在图2所示的训练方法中,首先,将训练数据集输入到学生网络MS中。虽然在图2中正常图像样本(xN,LN)和增广图像样本(xA,LA)被示为输入到分开的卷积神经网络,但是这仅仅是出于直观图示的目的,它们实际上被输入到同一个卷积神经网络,即,学生网络MS。学生网络MS可以采用本领域已知的各种卷积神经网络架构,诸如VGG16、ResNet、SENet等,这里不受特别限制。
一般而言,学生网络MS可以包括卷积层、激活函数、池化层等。
在卷积层中,参数可自学习的滤波器(即卷积核)和数据矩阵进行卷积,以提取输入数据中隐藏的特征。考虑到卷积核的尺寸往往远小于数据矩阵,卷积核在数据矩阵上移动以遍历数据矩阵,移动的距离被称为步长。此外,为了同卷积核的移动相匹配,数据矩阵可能进行边缘扩展(即边缘填充)。不同参数的卷积核被用于从数据矩阵中提取不同的特征,其对应的卷积后的输出被称为特征通道。为了提取更丰富的特征,随着网络层数的加深,特征通道数目逐渐增加。
卷积层的输出往往在被输入到下一层之前通过激活函数,诸如ReLU、Sigmoid等。激活函数通常为非线性函数,因此激活函数能为CNN引入非线性拟合能力。深度学习可以表现出高性能,正是因为通过用多层结构重复非线性变换可以获得高非线性。如果没有激活函数负责非线性变化并且网络仅包括线性变换,那么无论层数多少都仅存在等效的单层线性变换,并且多次结构是无用的。显然,随着层数的增加,深度学习表现出更强的非线性和更高的性能。
池化层对输入矩阵进行降采样,以降低神经网络的数据量和运算量。池化操作包含最大值池化和平均值池化。不同池化层获得的特征向量可以组合成一个特征向量,以便于后续网络结构预测输出。
学生网络MS具有初始参数,以便于神经网络的启动。学生网络MS从输入的每个图像样本中提取相应的特征,如从正常图像样本(xN,LN)中提取学生特征从增广图像样本(xA,LA)提取学生特征因此,学生网络MS可以视为由卷积神经网络的骨干网络(backbone network)构成的特征提取器。
动态样本划分
在对所提取的学生特征进行传递迁移学习之前,可以对图像样本进行划分(图2中未示出),以便为不同质量的对象图像适配相应的传递迁移特征。
鉴于现有技术中对图像样本进行离线划分会导致其特征域存在固定的差异,本发明提出了基于提取的特征的动态样本划分策略。根据本发明的实施例,可以根据学生网络MS从训练样本提取的特征到不同特征域中心的距离(诸如但不限于L1-范式距离)来定义简单样本和困难样本。
图3示出了根据本发明的动态样本划分算法的伪代码。参照图3,对于每一代(epoch)训练,执行以下步骤:
2、假设训练数据集中涉及的类的数目为C(每个图像样本可以附带指示其实际所属类的标记),对于训练数据集中每一个类,计算所提取的学生特征域的中心fc,包括与正常图像样本对应的特征域的中心(正常特征中心)、与增广图像样本对应的特征域的中心(增广特征中心)和与全部图像样本对应的混合特征域的中心(混合特征中心)。在这个阶段,正常图像样本和增广图像样本可以通过相应的标志LN、LA来区分;
3、对于每个图像样本,可以计算其学生特征f到各特征中心fc的域内距离D=||f-fc||,这里所计算的距离可以是L1-范式距离;
4、对于每个特征域,计算其最大域内差Dd=Dmax-Dm)n,即,每个特征域中的最大域内距离与最小域内距离之差;
5、对于每个特征域,计算用于定义简单样本的阈值γeasy=(∈+λα)Dd+Dmin。这里涉及三个参数,其中阈值∈是初始阈值,动态参数α是如上计算的与训练代数有关的参数,而超参数λ是训练之前设置的参数并且不随训练过程变化;
6、随后,可以基于所计算的阈值来划分样本。具体而言,对于正常图像样本,如果其特征与正常特征中心的距离小于相应的阈值或其特征与混合特征中心的距离小于相应的阈值则该图像样本为简单样本,否则为困难样本;而对于增广图像样本,如果其特征与增广特征中心的距离小于相应的阈值或其特征与混合特征中心的距离小于相应的阈值则该图像样本为简单样本,否则为困难样本。
在训练开始时,可以设置一个的小的初始阈值∈来定义初始的简单样本。图4示出了用于定义简单样本的阈值γ在训练过程中的变化。在训练早期阶段,由于正在训练的学生网络MS对于不同变化的图像样本不够稳定,大部分的图像样本被定义为困难样本。之后,如图4中所示,随着学生网络MS对于困难样本的区分能力增强,动态参数α动态增大定义简单样本的阈值γ,使得越来越多的图像样本被划分为简单样本,从而能够逐步学习到不同特征域的区分信息并融合到紧凑的类内特征表示中。
传递知识蒸馏
继续参照图2,由学生网络MS提取的学生特征可以被输入到不同的适配器以转换到传递域。具体而言,从正常图像样本提取的学生特征被输入到正常→增广适配器,而从增广图像样本提取的学生特征被输入到增广→正常适配器。
根据本发明,基于传递迁移学习思想,利用传递迁移适配器将学生网络提取的特征转换为中间特征(也被称为迁移学生特征),从而充当连接正常域和目标变化域的桥梁,放大特定变化的隐藏信息。由于两个域之间的适配方向不同,因此分别采用正常→增广适配器和增广→正常适配器来保存和恢复知识,通过传递迁移有效地扩大潜在的区分因素信息。
正常→增广适配器和增广→正常适配器可以被实现为具有相同结构的神经网络,诸如卷积神经网络,但是具有不同的参数并被分开使用。作为示例,这两种传递迁移适配器都可以是具有多个卷积层(激活函数)和池化层的卷积神经网络的骨干网络,各个层保证特征维数不变。它们具有初始参数,并在训练过程中被不断更新参数。
每个传递迁移适配器可以针对不同质量的图像样本适配相应的传递迁移特征,例如,对于含有丰富识别信息的正常图像样本和增广图像样本,可以使用深层的传递迁移特征作为输出以充分提取跨区域的信息;而对于缺少识别能力的增广图像,诸如低分辨率图像,可以使用浅层的传递迁移特征来提取足够的信息保证快速收敛。
通过上面所述的动态样本划分策略来定义图像样本的质量,从浅层到深层的传递适配就自然而然地应用到不同质量的图像样本中。因此,根据本发明的传递迁移适配器的输出可以定义为:
其中,GN→A是正常→增广适配器,GA→N是增广→正常适配器。当正常/增广图像样本被定义为简单样本时,ξN/A=1,则选择深层迁移转换特征作为输出;当正常/增广图像样本被定义为困难样本时,ξN/A=0,则选择浅层迁移转换特征作为输出。
图5是示出了传统的直接迁移和根据本发明的传递迁移的示意图。图5的(a)示出了直接减小特征域差异,然而,由于正常图像和增广图像间存在的巨大的域差异,很难找到足够多的共性因素来缩小二者之间的差距。直接最小化同一对象的距离必然会造成负迁移,因为正常域的知识很难传播到目标变化域。图5的(b)选择特定的传递迁移特征来适应不同质量的对象图像,从而具有共同因素的信息可以关联起来。
另一方面,为了平衡不同变化图像间的知识传递,可以引入两个教师模型进行知识蒸馏。如图2中所示,可以在正常图像集上预先训练并固定神经网络模型(即,正常图像教师网络),在增广图像集上预先训练并固定神经网络模型(即,增广图像教师网络),以在后面训练学生网络过程中作为教师网络。这里,教师网络和可以是例如卷积神经网络,但是本发明不限于此。
随后,被输入到学生网络MS的训练图像集中的正常图像样本也被输入到正常图像教师网络中,以提取教师特征被输入到学生网络MS的训练图像集中的增广图像样本也被输入到增广图像教师网络中,以提取教师特征应理解,由于教师网络和已被预先训练好,因此既可以在将训练数据集输入到学生网络MS的同时将相应的图像样本输入到教师网络,也可以在学生网络MS的训练之前就提取并存储教师特征,以便于在学生网络MS的训练过程中使用。
如图2的下半部分所示,由于从增广图像样本中提取的学生特征缺乏识别能力,因此可以利用正常图像教师网络来指导学生网络中的增广图像恢复区分能力;同时,如图2的上半部分所示,还可以利用增广图像教师网络来指导学生网络中的正常图像保存目标区分信息。通过这种方式,学生网络MS从两边学习到跨越变化的特征表示。
随后,可以对来自适配器的传递迁移特征(传递域)和由教师网络提供的教师特征(目标域)进行知识蒸馏。在到目标变化域的蒸馏中,可以将正常图像样本的传递迁移学生特征相对于对应的增广图像样本的教师特征的蒸馏损失计算为它们之间的L1-范式距离相应地,在到目标正常域的蒸馏中,可以将增广图像样本的传递迁移学生特征相对于对应的正常图像样本的教师特征的蒸馏损失计算为它们之间的L1-范式距离因此,总蒸馏损失函数定义如下:
其中,GN→A和GA→N分别表示正常→增广适配器和增广→正常适配器。通过减少传递域和目标域之间的蒸馏损失,可以将特定变化的特征表示与正常特征表示融合在同一特征表示中。
借助于传递迁移适配器的传递作用和蒸馏函数的约束作用,分别向不同的目标域进行传递知识蒸馏,从两边同时减小正常图像和增广图像之间的域差距,促进正迁移的同时减轻负迁移,保证不同变化图像的特征集成到目标表示中。
双分支分类
在利用正常图像样本和变化图像样本训练学生网络时,如果假定所有图像样本最后通过同一个分类器(例如,全连接层),那么最终训练得到的模式将在所有图像样本的中心。但是,由于具有大变化的图像样本多是不真实的且难以收敛,它们在训练过程中会持续地存在较大的梯度,将训练得到的模型推向更靠近增广图像的位置,如图6的(a)所示,其中图6是示出了正常图像样本和增广图像样本的分类学习的示意图。因此,正常图像样本的分类很难达到最优,导致表示学习的上限被拉低。
为了解决这一问题,本发明提出基于课程学习的双分支分类策略。
首先,基于课程学习的思想,在训练前期阶段聚焦学习正常图像的模式,随着训练过程逐渐增强增广图像的可信度将网络模型过渡到困难样本的学习。具体来说,利用参数β来表示增广图像的可信度,在训练早期阶段赋予参数β较小的值,使得正常图像样本能够在不受增广图像样本的负面影响下得到很好地学习;然后随着训练过程逐步增加增广图像样本的指导作用,使得变化图像能够向正常图像靠近,如图6的(b)所示。此时的分类损失函数可定义为:
其中,e为当前的训练代数,emax为最大训练代数,W表示分类器,LN、LA表示图像样本的标记。
然而,在仅仅利用课程学习策略的情况下,随着参数β增大,学习的模型可能持续偏向增广图像的梯度,如图6的(c)所示。因此,为了保证学习的模型始终临近正常图像的特征域且不会因为参数β的增大而偏向增广图像的梯度,如图6的(d)所示,本发明采用双分支分类使得正常图像和变化图像的分类分支训练互不影响。
具体而言,如图2中所示,分别使用独立的分类器来对正常图像样本和增广图像样本进行分类。作为一个分支,分类器WN基于从正常图像样本中提取的学生特征来对正常图像样本进行分类,以获得概率分布作为另一个分支,分类器WA基于从增广图像样本中提取的学生特征来对增广图像样本进行分类,以获得概率分布分类器WN和WA可以被实现为例如全连接层,以用于综合特征向量中的区分信息。假设训练集中的类的总数为C,则概率分布和中的每个概率指示图像样本属于C个类中的每个类的概率(或者说可信度)。
随后,分类损失函数可以通过将所获得的分类概率与真实情况值(例如(0,1,0,…,0),其中1指示真实值)进行比较以确定两者之间的差异,例如交叉熵,作为分类损失数据。根据本发明,分类损失函数可以包括但不限于ArcFace损失函数、CosFace损失函数、SphereFace损失函数等。
因此,最终的分类损失函数被计算为:
在参数β和双分类器的双重引导下,学生网络的分类训练可以大大降低增广图像样本的负面影响,保持在每个特征域上的类内紧凑和类间分离的特性。
参数更新
来自传递知识蒸馏的损失数据和来自分类的损失数据可以被综合用于参数更新。
根据本发明,使用超参数η来平衡总的损失函数,则总损失函数可以被定义为:
上面描述的过程可以在一代训练或一次迭代中完成。为了实现令人满意的性能,可以使用相同的训练图像集多次重复上述过程,直到满足预定义的条件,例如重复次数达到预定的最大次数,或者计算的总损失小于预定义的阈值。
【神经网络的迭代训练方法】
在上面描述的训练方法中,同时利用从正常图像训练的教师网络和从变化图像训练的教师网络对学生网络进行引导,可以有效地整合不同的知识来增强学生网络模型的鲁棒性。然而,同时从多种变化图像中学习是很困难的。一种方法是利用从不同的变化图像集训练的教师网络同时进行监督,但由于不同的变化图像之间也存在较大的特征域差异,必然导致最终训练的模型性能下降。
本发明提出一种迭代学习的策略,在不同的迭代中训练不同的变化,从而逐步学习多种变化。
图7示出了根据本发明的迭代训练方法的示意图。如图7中所示,迭代训练方法包括:
1、在第一次迭代中,将包括正常图像样本(xN,LN)和第一种变化(例如低分辨率LR)图像样本(xLR,LLR)的训练图像集输入到要训练的学生网络中,并使用针对正常图像训练好的神经网络和针对第一种变化图像样本训练好的神经网络作为教师网络,通过上面参照图2描述是训练方法来训练学生网络,得到蒸馏网络(MR);
2、在第二迭代中,将包括正常图像样本(xN,LN)和第二种变化(例如低光照LI)图像样本(xLI,LLI)的训练图像集输入到在第1步中训练得到的蒸馏网络(MR)中,并使用所得到的蒸馏网络(MR)和针对第二种变化图像样本训练好的神经网络作为教师网络,通过上面参照图2描述的训练方法来继续训练蒸馏网络(MR),得到蒸馏网络(通用);
3、如果还存在其它变化,则重复第2步,直到已学到所有变化的知识。
通过上述迭代训练过程,在上一次迭代中训练得到的学生网络成为教师网络用于监督当前迭代中出现的新的变化图像的训练,以防止遗忘先验知识,并将其作为学生网络的初始的基干网络模型进行微调。针对新变化预先训练好的另一教师网络被用来扩展学生网络的识别能力。因此,更新后的模型可以在每次迭代中聚焦集成一种特定的变化图像的特征域,同时保留之前所学到的知识。
【实验验证】
以下将通过实验比较根据本发明的神经网络训练方法与现有技术的性能。
实验1:在小规模训练集上进行验证
训练集:CASIA-WebFace,包括10000个人物身份,共500000张图像。
测试集:Scface,包括130个人物身份,共4160张在不同距离的摄像头下拍摄的静态图像。
评估准则:1:N TPIR(真阳性识别率,Rank1@106),与Megaface challenge相同
卷积神经网络架构:RestNet50
现有技术比较:ArcFace,ArcFace+增广,DDL(分布式深度学习)
实验结果:
表1本发明与现有技术的训练方法的性能比较
其中,d1列为在从远距离摄像头拍摄的低质量图像子集上的性能,LFW列为在从中间距离摄像头拍摄的中间质量图像子集上的性能,CFP-FP列为在从近距离摄像头拍摄的高质量图像子集上的性能,AGEDB表示平均性能。
从表1可以看出,虽然使用图像增广的现有技术可以提高低质量图像集上的识别性能,但是会导致高质量图像集上的识别性能下降。相比之下,根据本发明的神经网络训练方法可以实现低质量图像集上的性能提升,并同时抑制高质量图像集上的负迁移。
【训练装置和训练方法】
以下将参照附图来描述本发明的用于对象识别的神经网络的训练装置和训练方法。
图8是示出了根据本发明的用于对象识别的神经网络模型的训练装置100的框图,并且图9是示出了根据本发明的用于对象识别的神经网络模型的训练方法200的流程图。训练装置100可用于训练诸如卷积神经网络等,以实现对于各种质量的图像的优秀识别性能。训练装置100可以包括特征提取器101、划分单元102、传递迁移适配器103、蒸馏损失计算单元104、分类器105、分类损失计算单元106、总损失计算单元107和更新单元108。
特征提取器101被配置为将包含待识别对象的训练图像集输入到要训练的神经网络,以提取每个图像样本的学生特征(即,执行方法200的步骤S201)。训练图像集包括一组正常图像样本和一组变化图像样本。
划分单元102被配置为基于由特征提取器101提取的学生特征,将训练图像集中的图像样本划分为简单样本和困难样本(即,执行方法200的步骤S202)。划分单元102可以基于图像样本的学生特征与各种特征中心之间的距离(例如L1-范式距离)来进行划分。
传递迁移适配器103被配置为对正常图像样本的学生特征进行基于划分单元102的划分结果的传递迁移,以得到迁移学生特征(即,执行方法200的步骤S203)。传递迁移适配器103可以包括分别用于正常图像样本和变化图像样本的传递迁移适配器。
蒸馏损失计算单元104被配置为计算正常图像样本的迁移学生特征相对于从对应的变化图像样本中提取的教师特征的蒸馏损失,以及计算变化图像样本的迁移学生特征相对于从对应的正常图像样本中提取的教师特征的蒸馏损失(即,执行方法200的步骤S204)。
分类器105被配置为基于由特征提取器101提取的学生特征对图像样本进行分类(即,执行方法200的步骤S205)。分类器105可以包括分别用于正常图像样本和变化图像样本的分类器,从而实现双分支分类。
分类损失计算单元106被配置为计算分类器105对于每个图像样本的分类的分类损失(即,执行方法200的步骤S206)。分类损失计算单元106可以使用例如ArcFace损失函数、CosFace损失函数、SphereFace损失函数等来计算分类损失。
总损失计算单元107被配置为基于对于所有图像样本计算的蒸馏损失和分类损失,计算与训练图像集相关的总损失(即,执行方法200的步骤S207)。总损失计算单元107可以针对正常图像样本与对应的变化图像样本,计算它们的蒸馏损失之和作为总蒸馏损失,计算它们的分类损失之加权和作为总分类损失,并总蒸馏损失与总分类损失之加权和作为总损失。其中,在计算总分类损失时,总损失计算单元107可以随着当前训练代数增加变化图像样本的权重,以将训练焦点逐渐偏向变化图像样本。
更新单元108被配置为根据总损失计算单元107计算的总损失,更新神经网络的参数(即,执行方法200的步骤S208)。此外,更新单元108还可以根据总损失来更新传递迁移适配器103和分类器105的参数。
应指出,图8仅仅是训练装置的概略性结构配置,训练装置100还可以包括其他可能的单元/部件,诸如存储器等。存储器可以存储由训练装置产生的各种信息(例如,图像样本的特征、损失数据、参数值等)、用于训练装置操作的程序和数据等。例如,存储器可以包括但不限于随机存储存储器(RAM)、动态随机存储存储器(DRAM)、静态随机存取存储器(SRAM)、只读存储器(ROM)、闪存存储器。作为示例,存储器还可以位于训练装置100之外。训练装置100可以直接或间接(例如,中间可能连接有其它部件)连接到存储器,以进行数据的存取。存储器可以是易失性存储器和/或非易失性存储器。
应理解,上述各个单元仅是根据其所实现的具体功能划分的逻辑模块,而不是用于限制具体的实现方式,例如可以以软件、硬件或者软硬件结合的方式来实现。在实际实现时,上述各个单元可被实现为独立的物理实体,或者也可由单个实体(例如,处理器(CPU或DSP等)、集成电路等)来实现。此外,上述各个单元在附图中用虚线示出指示这些单元可以并不实际存在,而它们所实现的操作/功能可由处理电路本身来实现。
应理解,除了包括多个单元之外,上述的训练装置100可采用多种其它形式来实现,例如可以是通用处理器,也可以是专用处理电路,例如ASIC。例如,训练装置100能够由电路(硬件)或中央处理设备(诸如,中央处理单元(CPU))构造。此外,训练装置100上可以承载用于使电路(硬件)或中央处理设备工作的程序(软件)。该程序能够存储在存储器(诸如,布置在存储器中)或从外面连接的外部存储介质中,以及经由网络(诸如,互联网)下载。
应理解,根据本发明的训练方法200还可相应地包括上文所述的各种操作,这里将不再详细描述。应指出,根据本发明的训练方法200的各个步骤/操作可以由上述训练装置100的各单元来执行,也可由各种形式的处理电路来执行。
下面描述根据本发明的神经网络训练过程的各种示例性实现方式。
【第一示例】
第一示例涉及当训练数据集包括足够的正常图像样本和变化图像样本(可能具有一种或多种变化)时的训练过程。这里,样本数量“足够”是说能够满足神经网络模型收敛的要求。
图10示出了根据第一示例的神经网络训练过程的流程图,其中包括以下步骤。
S1100:通过前处理获得网络训练数据
在此步骤中,输入带有物体或者人脸真实标记的原始图像,然后通过已有的一系列前处理操作将输入的原始图像转化为满足卷积神经网络模型要求的训练数据,这一系列前处理包括人脸或物体检测、人脸或物体对齐等。
S1200:训练教师网络模型
可选地,在此步骤中,输入带有物体或者人脸真实标记的已满足卷积神经网络模型要求的图像样本数据。这些图像样本数据包括正常图像样本和变化图像样本。然后通过现有的先进的识别方法如ArcFace、CosFace等,选择常用的卷积神经网络结构如ResNet等,分别针对正常图像训练集和变化图像训练集来训练神经网络,最终得到在正常图像域和变化图像域上各自具有一定识别性能的教师网络模型。
S1300:从学生基干网络中提取与图像样本对应的学生特征
在此步骤中,输入带有物体或者人脸的已满足卷积神经网络模型要求的所有图像样本数据,然后利用已选定的具有初始参数的神经网络结构作为学生网络,提取每个图像样本的学生特征。卷积神经网络的结构可以为常用的网络结构,如VGG16,ResNet,SENet等。
S1400:提取与正常/变化图像训练数据对应的教师特征
在此步骤中,输入带有物体或者人脸的已满足卷积神经网络要求的所有图像样本数据,然后利用在S1200中已训练好的教师网络模型分别从正常图像样本和变化图像样本中提取对应的教师特征。
S1500:将图像样本分为容易样本和困难样本
在此步骤中,输入在S1300中提取的学生特征,根据前面描述的基于特征距离的动态样本划分策略,将所有图像样本划分为容易样本和困难样本。
S1600:由相应的传递迁移适配器进行基于样本划分的传递迁移
在此步骤中,一方面,将从正常图像样本中提取的学生特征输入到正常域到变化域的传递迁移适配器中,根据其容易/困难样本的划分将其转换为迁移学生特征;另一方面,将从变化图像样本中提取的学生特征输入到变化域到正常域的传递迁移适配器中,根据其容易/困难样本的划分将其转换为迁移学生特征。
S1700:计算蒸馏损失
在此步骤中,根据定义的蒸馏损失函数计算蒸馏损失,蒸馏损失被定义为类内损失的一部分,其由两部分组成:(1)变化图像样本的迁移学生特征相对于对应的正常图像样本的教师特征的距离,例如L1-范式距离;(2)正常图像样本的迁移学生特征相对于对应的变化图像样本的教师特征的距离,例如L1-范式距离。
S1800:计算分类损失
在此步骤中,在正常图像样本和变化图像样本的双分支上进行分类,并根据定义的分类损失函数分别计算正常图像样本的分类损失和变化图像样本的分类损失,即类内分类损失。基于课程学习策略,通过计算正常图像样本的分类损失和变化图像样本的分类损失的加权和来获得类间分类损失。具体的分类损失函数例如是ArcFace、CosFace、SphereFace等。
S1900:计算总损失并根据总损失更新参数
基于在S1700中计算的蒸馏损失和在S1800中计算的分类损失,计算与训练图像集相关的总损失。根据所计算的总损失,利用反向传播算法来更新学生基干网络的参数、传递迁移适配器的参数和分类器的参数。
S11000:判断训练过程是否结束
在此步骤中,可以通过预定义的条件来判断是否结束训练,例如当前计算的总损失是否小于预定义的阈值,或当前训练代数/迭代次数是否达到预定义的最大代数/迭代次数。如果满足条件,则结束模型训练;否则,继续进行下一次训练过程。
S11100:输出训练好的学生基干网络模型
在此步骤中,学生基干网络中所有层的当前参数即构成训练好的模型,从而输出学生基干网络结构和当前参数信息即可。
【第二示例】
第二示例涉及当训练数据集仅包括正常图像样本时希望得到在一种特定的变化场景下也具有较好识别能力的神经网络模型。例如,可能存在诸如室外/夜晚/监控/运动等场景,使得在这些场景下拍摄的对象图像会出现各种各样的角度/姿态/光照/模糊/大小等变化。
图11示出了根据第二示例的神经网络训练过程的流程图。与第一示例相比,第二示例的区别之处在于包括步骤S2101-S2102。
步骤S2101:针对变化场景选择对应的图像增广方法
在此步骤中,针对考虑的变化场景,选择对应的图像增广方法。举例来说,为了增强神经网络模型在低光照场景下的性能,可以选择用于降低图像亮度的图像增广方法,以便增广低光照的变化图像;或者为了使神经网络模型适应低分辨率场景,可以选择用于降低图像分辨率的图像增广方法,以便增广低分辨率的变化图像,等等。
在此步骤中,可供选择的图像增广方法既可以包括简单的图像处理算法,也可以包括利用深度学习训练的图像处理模型。
步骤S2102:从正常图像增广出变化图像样本
在此步骤中,利用选择的图像增广方法,从经过S2100处理的正常图像增广出变化图像样本。可以不必增广与所有正常图像样本对应的变化图像样本,只要变化图像样本的数量满足需要即可。
由此,在正常图像样本和增广得到的变化图像样本可以作为网络训练数据被输入到基干学生网络中。剩余步骤S2200-S21100与第一示例的步骤S1200-S11100相同,这里不再赘述。
【第三示例】
第三示例涉及当训练数据集包括足够的正常图像样本和少量的特定变化场景下的变化图像样本时希望得到在这种变化场景下也具有较好识别能力的神经网络模型。
图12示出了根据第三示例的神经网络训练过程的流程图。与第一示例相比,第三示例的区别之处在于包括步骤S3101-S3102。
步骤S3101:针对变化场景选择对应的图像增广方法
在此步骤中,针对考虑的变化场景,选择对应的图像增广方法。在第三示例中,可以利用基于深度学习的图像处理模型(例如,生成式对抗网络)来学习训练数据集中已有的变化图像涉及的变化场景,从而增广出相同变化场景下的更多变化图像样本。
步骤S3102:从正常图像增广出变化图像样本
在此步骤中,利用选择的图像增广方法,从经过S3100处理的正常图像增广出变化图像样本,以扩充训练数据集。
由此,在正常图像样本和增广得到的变化图像样本可以作为网络训练数据被输入到基干学生网络中。剩余步骤S3200-S31100与第一示例的步骤S1200-S11100相同,这里不再赘述。
【第四示例】
第四示例涉及利用上面介绍的迭代训练方法来获得在多种变化场景下都具有较好识别能力的神经网络模型。
图13示出了根据第四示例的神经网络训练过程的流程图,其中包括以下步骤。
S4100:通过前处理获得网络训练数据
此步骤与S1100相同。
S4200:将网络训练数据分为正常图像和各类的变化图像,并将正常图像作为初始的网络训练数据
在此步骤中,输入为所有通过前处理的网络训练数据,然后我们可以通过人的判断或某些预定义的阈值将这些训练数据分为正常图像样本和各类的变化图像样本,并赋予相应的标记。正常图像样本作为初始的网络训练数据。
S4300:判断是否所有要训练的变化都完成训练
此步骤中,首先要定义出期望训练的变化种类,然后判断是否所有的变化种类都完成训练。如果是,则结束训练,并输出训练好的学生基干网络模型,否则进行到步骤S4400。
S4400:选择其中某种特定变化作为本次迭代训练的目标变化,将原有的该特定变化图像加入到网络训练数据中
此步骤中,对于尚未训练的变化种类,如果在S4100中经过前处理获得的网络训练数据中存在该变化种类的变化图像样本,则将这些变化图像加入到网络训练数据中。
S4500:判断是否需要针对当前的变化种类进行增广
此步骤中,首先确定当前网络训练数据中包含当前变化种类的变化图像样本的数目,然后根据变化图像样本的数目判断是否需要增广。如果该数目低于给定的阈值,则需要进行增广,过程进行到S4600;反之,过程进行到S4700。
S4600:选择该特定变化对应的数据增广方法增广变化图像加入到网络训练数据中
此步骤与S2102和S3102相同。
S4700:利用当前的网络训练数据训练学生基干网络
在此步骤中,输入为包括正常图像样本和当前变化种类的变化图像样本(原来的训练数据集中已有的,或者通过增广得到的)的网络训练数据,利用前面介绍的第一示例中的训练过程对学生基干网络进行训练。
S4800:将训练好的学生基干网络作为下一次迭代训练的初始学生基干网络和正常图像教师网络模型
在此步骤中,一方面要将训练好的学生基干网络作为下一次迭代训练的初始学生基干网络,另一方面要将之前的正常图像教师网络模型替换为当前训练好的学生基干网络模型。
S4900:输出训练好的学生基干网络模型
此步骤与S11100相同。
通过第四示例,可以每次迭代学习一种新的变化场景,同时保留针对其它变化场景学习到的知识。
【计算机系统】
图14是示出可实施本发明的实施例的计算机系统1000的示例性硬件配置的框图。
如图14所示,计算机系统包括计算机1110。计算机1110可以被实现为上面参照图8所述的训练装置100或者用于执行上面参照图9所述的训练方法200。计算机1110包括处理单元1120、系统存储器1130、不可移除非易失性存储器界面1140、可移除非易失性存储器界面1150、用户输入界面1160、网络界面1170、视频界面1190、和输出外围界面1195,它们通过系统总线1121连接。
系统存储器1130包括ROM(只读存储器)1131和RAM(随机存取存储器)1132。BIOS(基本输入输出系统)1133驻留在ROM 1131中。操作系统1134、应用程序1135、其它程序模块1136和一些程序数据1137驻留在RAM 1132中。
不可移除非易失性存储器1141(诸如硬盘)连接到不可移除非易失性存储器界面1140。不可移除非易失性存储器1141可存储诸如操作系统1144、应用程序1145、其它程序模块1146以及一些程序数据1147。
可移除非易失性存储器(例如软盘驱动器1151和CD-ROM驱动器1155)连接到可移除非易失性存储器界面1150。例如,软盘1152可插入软盘驱动器1151,并且CD(光盘)1156可插入CD-ROM驱动器1155。
诸如鼠标1161和键盘1162的输入设备连接到用户输入界面1160。
计算机1110可通过网络界面1170连接到远程计算机1180。例如,网络界面1170可经局域网1171连接到远程计算机1180。可替换地,网络界面1170可连接到调制解调器(调制器-解调器)1172,并且调制解调器1172经广域网1173连接到远程计算机1180。
远程计算机1180可包括诸如硬盘的存储器1181,其存储远程应用程序1185。
视频界面1190连接到监视器1191。
输出外围界面1195连接到打印机1196和扬声器1197。
图14所示的计算机系统仅是说明性的,并非意在限制本发明、其应用或者使用。
图14所示的计算机系统可对于任一实施例被实现为孤立计算机,或者设备中的处理系统,其中可去除一个或多个不必要的组件或者可添加一个或多个附加的组件。
本发明可被用于许多应用。例如,本发明可被用于监测、识别、跟踪照相机捕获的静态图像或移动视频中的对象,并且对于配备有相机的便携式设备、(基于相机)的移动电话等等是尤其有利的。
应指出,文中所述的方法和设备可被实现为软件、固件、硬件或它们的任何组合。有些组件可例如被实现为在数字信号处理器或者微处理器上运行的软件。其他组件可例如实现为硬件和/或专用集成电路。
另外,可采用多种方式来实行本发明的方法和系统。例如,可通过软件、硬件、固件或它们的任何组合来实行本发明的方法和系统。上文所述的该方法的步骤的顺序仅是说明性的,并且除非另外具体说明,否则本发明的方法的步骤不限于上文具体描述的顺序。此外,在一些实施例中,本发明还可具体化为记录介质中记录的程序,包括用于实施根据本发明的方法的机器可读指令。因此,本发明还涵盖了存储用于实施根据本发明的方法的程序的记录介质。
本领域技术人员应当意识到,在上述操作之间的边界仅仅是说明性的。多个操作可以结合成单个操作,单个操作可以分布于附加的操作中,并且操作可以在时间上至少部分重叠地执行。而且,另选的实施例可以包括特定操作的多个实例,并且在其他各种实施例中可以改变操作顺序。但是,其它的修改、变化和替换同样是可能的。因此,本说明书和附图应当被看作是说明性的,而非限制性的。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。在此发明的各实施例可以任意组合,而不脱离本发明的精神和范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。
另外,本发明的实施方式还可以包括以下示意性示例(EE)。
EE1、一种用于对象识别的神经网络的训练方法,其特征在于,包括:
将包含待识别对象的训练图像集输入到所述神经网络,以提取每个图像样本的学生特征,所述训练图像集包括一组正常图像样本和一组变化图像样本;
基于所提取的学生特征,将所述训练图像集中的图像样本划分为简单样本和困难样本;
对于正常图像样本和变化图像样本中的每一种:
由相应的传递迁移适配器对该图像样本的学生特征进行基于所述划分的传递迁移,以得到迁移学生特征;
计算该图像样本的迁移学生特征相对于从对应的另一种图像样本中提取的教师特征的蒸馏损失;
由相应的分类器基于学生特征对该图像样本进行分类;以及
计算该图像样本的分类损失,
基于对于所有图像样本计算的蒸馏损失和分类损失,计算与所述训练图像集相关的总损失;以及
根据计算的总损失,更新所述神经网络的参数。
EE 2、如EE 1所述的训练方法,其中,所述一组变化图像样本包括利用针对一种或多种变化场景的增广方法从所述一组正常图像样本增广的图像样本。
EE 3、如EE 1所述的训练方法,其中,所述一组变化图像样本包括原始变化图像样本和通过参考所述原始变化图像样本、从所述一组正常图像样本扩充的变化图像样本。
EE 4、如EE 1所述的训练方法,其中,所述划分进一步包括:
分别计算所有图像样本的学生特征的第一特征中心、所述一组正常图像样本的学生特征的第二特征中心、和所述一组变化图像样本的学生特征的第三特征中心;
根据每个图像样本与所述第一特征中心、第二特征中心、第三特征中心之间的距离,将该图像样本划分为简单样本或困难样本。
EE 5、如EE 4所述的训练方法,其中,对于每个正常图像样本,如果该图像样本的学生特征与第一特征中心之间的距离小于阈值或该图像样本的学生特征与第二特征中心之间的距离小于阈值,则将该图像样本划分为简单样本,否则将该图像样本划分为困难样本;
对于每个变化图像样本,如果该图像样本的学生特征与第一特征中心之间的距离小于阈值或该图像样本的学生特征与三特征中心之间的距离小于阈值,则将该图像样本划分为简单样本,否则将该图像样本划分为困难样本。
EE 6、如EE 5所述的训练方法,其中,所述阈值由可调节的参数确定,并且所述可调节的参数是当前训练代数的函数并随着当前训练代数增加而增大。
EE 7、如EE 1所述的训练方法,其中,所述传递迁移适配器由保持特征维数不变的多个卷积层构成。
EE 8、如EE 1所述的训练方法,其中,基于所述划分的传递迁移进一步包括:
对于被划分为简单样本的图像样本,以所述传递迁移适配器的深层输出作为所述迁移学生特征;
对于被划分为困难样本的图像样本,以所述传递迁移适配器的浅层输出作为所述迁移学生特征。
EE 9、如EE 1所述的训练方法,其中,对于正常图像样本,其教师特征是使用在仅包括正常图像的训练图像集上训练好的第一教师神经网络提取的特征;
对于变化图像样本,其教师特征是使用在仅包括变化图像的训练图像集上训练好的第二教师神经网络提取的特征。
EE 10、如EE 1所述的训练方法,其中,所述蒸馏损失被计算为:正常图像样本的迁移学生特征与对应的变化图像样本的教师特征之间的距离,或变化图像样本的迁移学生特征与对应的正常图像样本的教师特征之间的距离。
EE 11、如EE 1所述的训练方法,其中,所述分类损失通过以下分类损失函数之一计算:ArcFace损失函数、CosFace损失函数、SphereFace损失函数。
EE 12、如EE 1所述的训练方法,其中,计算与所述训练图像集相关的总损失进一步包括:
计算正常图像样本与对应的变化图像样本的蒸馏损失的和作为总蒸馏损失;
计算正常图像样本与对应的变化图像样本的分类损失的加权和作为总分类损失;
计算所述总蒸馏损失和所述总分类损失的加权和作为所述总损失。
EE 13、如EE 12所述的训练方法,其中,在计算所述总分类损失时,变化图像样本的分类损失的权重是当前训练代数的函数,并且随着当前训练代数增加而增大。
EE 14、如EE 1所述的训练方法,其中,通过反向传播算法,利用所述总损失更新所述神经网络的参数。
EE 15、如EE 1所述的训练方法,还包括利用所述总损失更新所述传递迁移适配器的参数和所述分类器的参数。
EE 16、如EE 1所述的训练方法,所述训练方法的步骤被重复多次直到满足以下至少一个条件:重复次数达到预定义的最大次数、计算的总损失小于预定义的阈值。
EE 17、如EE 1所述的训练方法,所述待识别对象包括脸部、人、物体。
EE 18、一种用于对象识别的神经网络的训练装置,其特征在于,包括:
特征提取器,被配置为将包含待识别对象的训练图像集输入到所述神经网络,以提取每个图像样本的学生特征,所述训练图像集包括一组正常图像样本和一组变化图像样本;
划分单元,被配置为基于所提取的学生特征,将所述训练图像集中的图像样本划分为简单样本和困难样本;
对于正常图像样本和变化图像样本中的每一种:
传递迁移适配器,被配置为对该图像样本的学生特征进行基于所述划分的传递迁移,以得到迁移学生特征;
蒸馏损失计算单元,被配置为计算该图像样本的迁移学生特征相对于从对应的另一种图像样本中提取的教师特征的蒸馏损失;
分类器,被配置为基于学生特征对该图像样本进行分类;以及
分类损失计算单元,被配置为计算该图像样本的分类损失,
总损失计算单元,被配置为基于对于所有图像样本计算的蒸馏损失和分类损失,计算与所述训练图像集相关的总损失;以及
更新单元,被配置为根据计算的总损失,更新所述神经网络的参数。
EE 19、一种用于对象识别的神经网络的迭代训练方法,其特征在于,包括:
第一训练步骤,以包括一组正常图像样本和针对第一变化场景的一组变化图像样本的图像集作为训练图像集,使用根据权利要求1所述的训练方法来训练所述神经网络;以及
第二训练步骤,以包括所述一组正常图像样本和针对第二变化场景的一组变化图像样本的图像集作为训练图像集,使用根据权利要求1所述训练方法来训练经过第一训练步骤的所述神经网络。
EE 20、一种根据EE 1或19所述的训练方法训练的神经网络。
EE 21、一种设备,包括
处理器;以及
存储器,所述存储器上存储有可执行指令,该可执行指令在由所述处理器执行时使所述处理器执行如EE 1-17和19中任一项所述的训练方法。
EE 22、一种存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令当被执行时实现如EE 1-17和19中任一项所述的训练方法。
Claims (22)
1.一种用于对象识别的神经网络的训练方法,其特征在于,包括:
将包含待识别对象的训练图像集输入到所述神经网络,以提取每个图像样本的学生特征,所述训练图像集包括一组正常图像样本和一组变化图像样本;
基于所提取的学生特征,将所述训练图像集中的图像样本划分为简单样本和困难样本;
对于正常图像样本和变化图像样本中的每一种:
由相应的传递迁移适配器对该图像样本的学生特征进行基于所述划分的传递迁移,以得到迁移学生特征;
计算该图像样本的迁移学生特征相对于从对应的另一种图像样本中提取的教师特征的蒸馏损失;
由相应的分类器基于学生特征对该图像样本进行分类;以及
计算该图像样本的分类损失,
基于对于所有图像样本计算的蒸馏损失和分类损失,计算与所述训练图像集相关的总损失;以及
根据计算的总损失,更新所述神经网络的参数。
2.如权利要求1所述的训练方法,其中,所述一组变化图像样本包括利用针对一种或多种变化场景的增广方法从所述一组正常图像样本增广的图像样本。
3.如权利要求1所述的训练方法,其中,所述一组变化图像样本包括原始变化图像样本和通过参考所述原始变化图像样本、从所述一组正常图像样本扩充的变化图像样本。
4.如权利要求1所述的训练方法,其中,所述划分进一步包括:
分别计算所有图像样本的学生特征的第一特征中心、所述一组正常图像样本的学生特征的第二特征中心、和所述一组变化图像样本的学生特征的第三特征中心;
根据每个图像样本与所述第一特征中心、第二特征中心、第三特征中心之间的距离,将该图像样本划分为简单样本或困难样本。
5.如权利要求4所述的训练方法,其中,对于每个正常图像样本,如果该图像样本的学生特征与第一特征中心之间的距离小于阈值或该图像样本的学生特征与第二特征中心之间的距离小于阈值,则将该图像样本划分为简单样本,否则将该图像样本划分为困难样本;
对于每个变化图像样本,如果该图像样本的学生特征与第一特征中心之间的距离小于阈值或该图像样本的学生特征与三特征中心之间的距离小于阈值,则将该图像样本划分为简单样本,否则将该图像样本划分为困难样本。
6.如权利要求5所述的训练方法,其中,所述阈值由可调节的参数确定,并且所述可调节的参数是当前训练代数的函数并随着当前训练代数增加而增大。
7.如权利要求1所述的训练方法,其中,所述传递迁移适配器由保持特征维数不变的多个卷积层构成。
8.如权利要求1所述的训练方法,其中,基于所述划分的传递迁移进一步包括:
对于被划分为简单样本的图像样本,以所述传递迁移适配器的深层输出作为所述迁移学生特征;
对于被划分为困难样本的图像样本,以所述传递迁移适配器的浅层输出作为所述迁移学生特征。
9.如权利要求1所述的训练方法,其中,对于正常图像样本,其教师特征是使用在仅包括正常图像的训练图像集上训练好的第一教师神经网络提取的特征;
对于变化图像样本,其教师特征是使用在仅包括变化图像的训练图像集上训练好的第二教师神经网络提取的特征。
10.如权利要求1所述的训练方法,其中,所述蒸馏损失被计算为:正常图像样本的迁移学生特征与对应的变化图像样本的教师特征之间的距离,或变化图像样本的迁移学生特征与对应的正常图像样本的教师特征之间的距离。
11.如权利要求1所述的训练方法,其中,所述分类损失通过以下分类损失函数之一计算:ArcFace损失函数、CosFace损失函数、SphereFace损失函数。
12.如权利要求1所述的训练方法,其中,计算与所述训练图像集相关的总损失进一步包括:
计算正常图像样本与对应的变化图像样本的蒸馏损失的和作为总蒸馏损失;
计算正常图像样本与对应的变化图像样本的分类损失的加权和作为总分类损失;
计算所述总蒸馏损失和所述总分类损失的加权和作为所述总损失。
13.如权利要求12所述的训练方法,其中,在计算所述总分类损失时,变化图像样本的分类损失的权重是当前训练代数的函数,并且随着当前训练代数增加而增大。
14.如权利要求1所述的训练方法,其中,通过反向传播算法,利用所述总损失更新所述神经网络的参数。
15.如权利要求1所述的训练方法,还包括利用所述总损失更新所述传递迁移适配器的参数和所述分类器的参数。
16.如权利要求1所述的训练方法,所述训练方法的步骤被重复多次直到满足以下至少一个条件:重复次数达到预定义的最大次数、计算的总损失小于预定义的阈值。
17.如权利要求1所述的训练方法,所述待识别对象包括脸部、人、物体。
18.一种用于对象识别的神经网络的训练装置,其特征在于,包括:
特征提取器,被配置为将包含待识别对象的训练图像集输入到所述神经网络,以提取每个图像样本的学生特征,所述训练图像集包括一组正常图像样本和一组变化图像样本;
划分单元,被配置为基于所提取的学生特征,将所述训练图像集中的图像样本划分为简单样本和困难样本;
对于正常图像样本和变化图像样本中的每一种:
传递迁移适配器,被配置为对该图像样本的学生特征进行基于所述划分的传递迁移,以得到迁移学生特征;
蒸馏损失计算单元,被配置为计算该图像样本的迁移学生特征相对于从对应的另一种图像样本中提取的教师特征的蒸馏损失;
分类器,被配置为基于学生特征对该图像样本进行分类;以及
分类损失计算单元,被配置为计算该图像样本的分类损失,
总损失计算单元,被配置为基于对于所有图像样本计算的蒸馏损失和分类损失,计算与所述训练图像集相关的总损失;以及
更新单元,被配置为根据计算的总损失,更新所述神经网络的参数。
19.一种用于对象识别的神经网络的迭代训练方法,其特征在于,包括:
第一训练步骤,以包括一组正常图像样本和针对第一变化场景的一组变化图像样本的图像集作为训练图像集,使用根据权利要求1所述的训练方法来训练所述神经网络;以及
第二训练步骤,以包括所述一组正常图像样本和针对第二变化场景的一组变化图像样本的图像集作为训练图像集,使用根据权利要求1所述训练方法来训练经过第一训练步骤的所述神经网络。
20.一种根据权利要求1或19所述的训练方法训练的神经网络。
21.一种设备,包括
处理器;以及
存储器,所述存储器上存储有可执行指令,该可执行指令在由所述处理器执行时使所述处理器执行如权利要求1-17和19中任一项所述的训练方法。
22.一种存储有可执行指令的非暂时性计算机可读存储介质,所述可执行指令当被执行时实现如权利要求1-17和19中任一项所述的训练方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011220649.6A CN114444558A (zh) | 2020-11-05 | 2020-11-05 | 用于对象识别的神经网络的训练方法及训练装置 |
US17/519,123 US12026974B2 (en) | 2020-11-05 | 2021-11-04 | Training method and training apparatus for a neural network for object recognition |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011220649.6A CN114444558A (zh) | 2020-11-05 | 2020-11-05 | 用于对象识别的神经网络的训练方法及训练装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114444558A true CN114444558A (zh) | 2022-05-06 |
Family
ID=81361024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011220649.6A Pending CN114444558A (zh) | 2020-11-05 | 2020-11-05 | 用于对象识别的神经网络的训练方法及训练装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114444558A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115294407A (zh) * | 2022-09-30 | 2022-11-04 | 山东大学 | 基于预习机制知识蒸馏的模型压缩方法及系统 |
CN115664908A (zh) * | 2022-10-19 | 2023-01-31 | 西安电子科技大学 | 通信信号调制识别的跨层智能对抗方法、系统、介质及设备 |
CN117058437A (zh) * | 2023-06-16 | 2023-11-14 | 江苏大学 | 一种基于知识蒸馏的花卉分类方法、系统、设备及介质 |
-
2020
- 2020-11-05 CN CN202011220649.6A patent/CN114444558A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115294407A (zh) * | 2022-09-30 | 2022-11-04 | 山东大学 | 基于预习机制知识蒸馏的模型压缩方法及系统 |
CN115664908A (zh) * | 2022-10-19 | 2023-01-31 | 西安电子科技大学 | 通信信号调制识别的跨层智能对抗方法、系统、介质及设备 |
CN115664908B (zh) * | 2022-10-19 | 2024-04-05 | 西安电子科技大学 | 通信信号调制识别的跨层智能对抗方法、系统、介质及设备 |
CN117058437A (zh) * | 2023-06-16 | 2023-11-14 | 江苏大学 | 一种基于知识蒸馏的花卉分类方法、系统、设备及介质 |
CN117058437B (zh) * | 2023-06-16 | 2024-03-08 | 江苏大学 | 一种基于知识蒸馏的花卉分类方法、系统、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220138454A1 (en) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10733477B2 (en) | Image recognition apparatus, image recognition method, and program | |
KR102516360B1 (ko) | 타겟 검출 방법 및 장치 | |
US9530071B2 (en) | Hierarchical interlinked multi-scale convolutional network for image parsing | |
CN114444558A (zh) | 用于对象识别的神经网络的训练方法及训练装置 | |
US10395136B2 (en) | Image processing apparatus, image processing method, and recording medium | |
CN109977942B (zh) | 一种基于场景分类和超分辨率的场景文字识别方法 | |
CN106156777B (zh) | 文本图片检测方法及装置 | |
US8103058B2 (en) | Detecting and tracking objects in digital images | |
CN112950477B (zh) | 一种基于双路径处理的高分辨率显著性目标检测方法 | |
CN112150493A (zh) | 一种基于语义指导的自然场景下屏幕区域检测方法 | |
CN112084927B (zh) | 一种融合多种视觉信息的唇语识别方法 | |
CN111488833A (zh) | 一种行人重识别方法、装置及电子设备和存储介质 | |
CN110909724B (zh) | 一种多目标图像的缩略图生成方法 | |
CN107122713B (zh) | 一种基于深度学习的似物性检测方法 | |
JP2007047965A (ja) | デジタル画像の対象物検出方法および装置並びにプログラム | |
CN110781897A (zh) | 一种基于深度学习的语义边缘检测方法 | |
KR102655789B1 (ko) | 얼굴 검출 방법 및 장치 | |
CN110674759A (zh) | 一种基于深度图的单目人脸活体检测方法、装置及设备 | |
KR20190080388A (ko) | Cnn을 이용한 영상 수평 보정 방법 및 레지듀얼 네트워크 구조 | |
CN112036260A (zh) | 一种自然环境下多尺度子块聚合的表情识别方法及系统 | |
KR20220056707A (ko) | 얼굴의 정렬 형태에 강인한 얼굴 인식 방법 및 그 장치 | |
KR20210011707A (ko) | Cnn을 기반으로 한 동영상의 씬 단위 장소 분류 방법 및 이를 이용한 장소 분류 장치 | |
KR101408344B1 (ko) | 얼굴 검출 장치 | |
JP2011170890A (ja) | 顔検出方法および装置並びにプログラム | |
KR101592087B1 (ko) | 배경 영상의 위치를 이용한 관심맵 생성 방법 및 이를 기록한 기록 매체 |
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 |