基于神经网络的模型快速升级方法及装置与流程

文档序号:20514586发布日期:2020-04-24 18:56阅读:151来源:国知局
基于神经网络的模型快速升级方法及装置与流程

本发明涉及机器学习技术领域,具体而言,涉及一种基于神经网络的模型快速升级方法及装置。



背景技术:

随着计算机视觉技术的不断发展,图像识别问题已成为人工智能领域的重要研究热点之一。随着例如人脸识别和行人再识别(personre-identification,reid)等相关应用的不断出现,对安全检查、打击犯罪、移动支付、交通控制、自动驾驶等领域均有很大作用。也使得对图像识别准确度的要求越来越高,进一步地,对图像识别模型的要求也随之提高。

例如非重叠视域下的行人再识别的实质就是判断在一个摄像头被监控的行人是否在另一个摄像头中出现,并能对其进行持续性的追踪。在实际的行人再识别场景中,由于摄像机角度的变化、背景因素的影响、光照强度的变化、行人姿势的改变和行人运动过程中遮挡物的出现等因素,使得对行人再识别系统中用于识别的reid模型的准确度要求较高。因此需合理的进行模型升级,以保证更准确的识别效果。

现有的部署在用户现场的reid产品,当需要升级其reid模型时(例如从modela升级到modelb),用户reid产品中用于识别的特征库(feature-store)中所存储的特征(feature)也需要同步进行升级(例如从modela对应的featurea升级到modelb对应的featureb),否则由于特征不对应将无法进行检索和识别。现行的对reid模型特征库升级的操作一般包括:

使用当前特征库中的特征所对应的原图重新经过modelb生成featureb。这样要求用户需要额外完整存储训练需要用到的所有原图或原视频信息,增大了存储资源上的需求。并且,一般情况下modelb较大,经过modelb生成featureb的速度较慢,如果训练集中存有大量图像或视频,模型升级将非常消耗资源和时间。



技术实现要素:

本发明旨在至少在一定程度上解决相关技术中的技术问题,为达上述目的,本发明第一方面的实施例提供了一种基于神经网络的模型快速升级方法,其包括:

获取升级前的第一模型的原始特征;

将所述原始特征输入预先训练好的第三模型,得到所述第三模型的输出特征作为第二模型的升级后特征,所述第二模型是对所述第一模型升级后得到的模型。

进一步地,对所述第三模型的预先训练包括:

将训练集图像输入所述第一模型,得到所述第一模型输出的第一特征;

将所述训练集图像输入所述第二模型,得到输出的第二特征;

将所述第一特征输入所述第三模型,得到输出的第三特征;

根据所述第二特征和所述第三特征确定所述第三模型的损失函数的值;

更新所述第三模型的参数,使得所述损失函数的值最小时,完成对所述第三模型的预先训练。

进一步地,所述将所述第一特征输入所述第三模型,得到输出的第三特征包括:

将所述第一特征输入所述第三模型后得到与所述第二特征维度相同的向量;

将所述第一特征与所述向量相加后作为所述第三特征。

进一步地,所述根据所述第二特征和所述第三特征确定损失函数的值包括:

确定所述训练集中同一图像对应的所述第二特征和所述第三特征的距离,所述距离包括欧几里得距离和/或曼哈顿距离;将所述距离作为所述损失函数的值。

进一步地,所述根据所述第二特征和所述第三特征确定损失函数的值还包括:

根据所述训练集中所有图像对应的所述第二特征和所述第三特征来确定三元组损失函数的值;

根据所述第三特征来确定其对应的分类损失函数的值;

根据所述三元组损失函数的值、所述分类损失函数的值和所述距离来确定所述损失函数的值。

进一步地,所述第三模型为神经网络模型,包括多层全连接层,其中,所述多层全连接层中第一层的维度大于所述第一特征的维度,所述多层全连接层中最后一层的维度与所述第二特征的维度相同。

进一步地,所述多层全连接层的维度满足上采样增加所述维度以及下采样减小所述维度。

为达上述目的,本发明第二方面的实施例还提供了一种基于神经网络的模型快速升级装置,其包括:

获取模块,用于获取升级前的第一模型的原始特征;

升级模块,用于将所述原始特征输入预先训练好的第三模型,得到所述第三模型的输出特征作为第二模型的升级后特征,所述第二模型是对所述第一模型升级后得到的模型。

使用本发明实施例的基于神经网络的模型快速升级方法或装置,利用构建的神经网络直接将特征作为输入和输出,可实现直接对用户端的特征库进行端到端的快速升级。且采用高质量的升级模型,在传统识别问题神经网络模型训练方法的基础上,结合多种损失函数,获得更好的模型训练效果。保证在节省存储空间和实现快速升级的同时,保证精度基本不会损失,保证系统的稳定性和可靠性。且不需要额外存储原图或原视频,节省了存储空间。

为达上述目的,本发明第三方面的实施例提供了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现根据本发明第一方面所述的基于神经网络的模型快速升级方法。

为达上述目的,本发明第四方面的实施例提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面所述的基于神经网络的模型快速升级方法。

根据本发明的非临时性计算机可读存储介质和计算设备,具有与根据本发明第一方面的基于神经网络的模型快速升级方法具有类似的有益效果,在此不再赘述。

附图说明

图1为根据本发明实施例的基于神经网络的模型快速升级方法的原理示意图;

图2为根据本发明实施例的第三模型的预训练方法的原理示意图;

图3为根据本发明实施例的确定第三特征的原理示意图;

图4为根据本发明实施例的确定损失函数的值的原理示意图;

图5为根据本发明实施例的基于神经网络的模型快速升级装置的结构示意图;

图6为根据本发明实施例的计算设备的结构示意图。

具体实施方式

下面将参照附图详细描述根据本发明的实施例,描述涉及附图时,除非另有表示,不同附图中的相同附图标记表示相同或相似的要素。要说明的是,以下示例性实施例中所描述的实施方式并不代表本发明的所有实施方式。它们仅是与如权利要求书中所详述的、本发明公开的一些方面相一致的装置和方法的例子,本发明的范围并不局限于此。在不矛盾的前提下,本发明各个实施例中的特征可以相互组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

行人再识别(reid)技术是现在计算机视觉研究的热门方向,主要解决跨摄像头跨场景下对行人的识别与检索。该技术能够根据行人的穿着、体态、发型等特征信息认知行人,与人脸识别技术相结合能够适用于更多新的应用场景,可将人工智能的认知水平提高到一个新阶段。现有的reid在实际应用场景下的数据非常复杂,会受到各种客观因素,例如相机拍摄角度、室内外环境变化、白天夜间光线差异等的影响,因此对reid模型的要求较高。

随着机器学习技术的不断发展,用于识别的reid模型更新升级的速度也有了较大提高。而reid模型对应的特征库也需要相应进行升级,否则由于reid模型升级前后特征不对应将无法正常进行检索和分析等处理。但每次升级模型后重新训练特征库将耗费很大的时间和资源成本,因此如何实现对特征库的快速升级,是现有计算机视觉图像识别技术中亟待解决的问题。

本发明实施例基于神经网络,根据现有reid模型的modela、modelb以及当前特征库(仅保存有featurea),目标是通过构建升级模型(modelt)根据featurea直接生成新的特征作为对应的featureb,形成新的升级后的特征库,提高升级模型的质量和特征库升级的速度。

图1所示为根据本发明实施例的基于神经网络的模型快速升级方法的原理示意图,包括步骤s11~s12。

在步骤s11中,获取升级前的第一模型的原始特征。在本发明实施例中,所述第一模型作为升级前的模型(即modela),则当前特征库包含的特征就是对应的原始特征。

在步骤s12中,将所述原始特征输入预先训练好的第三模型(即modelt),得到所述第三模型的输出特征作为第二模型的升级后特征,所述第二模型是对所述第一模型升级后得到的模型。在本发明实施例中,将通过所述第三模型得到的输出特征作为升级后的第二模型(即modelb)的特征,实现对第二模型的快速升级。

在本发明实施例中,预先训练一个第三模型modelt,用于根据modela的特征形成新的特征作为modelb的特征,以此实现对modelb的快速升级。图2所示为根据本发明实施例的所述第三模型的预训练方法的原理示意图,包括步骤s21~s25。

在步骤s21中,将训练集图像输入所述第一模型,得到所述第一模型输出的第一特征。在本发明实施例中,将训练集图像输入第一模型modela,得到对应输出的第一特征featurea。

在步骤s22中,将所述训练集图像输入所述第二模型,得到输出的第二特征。在本发明实施例中,还将训练集图像也输入第二模型modelb,得到输出的第二特征featureb。

在本发明实施例中,可采用已经训练过的已有reid模型modela和modelb分别作为第一模型和第二模型,其各项参数在之后的训练过程中均保持固定。在一些实施例中,可采用对modela和/或modelb进行训练时所使用的对应数据集作为所述训练集图像,无需额外准备专门的训练集。

在步骤s23中,将所述第一特征输入所述第三模型,得到输出的第三特征。在本发明实施例中,将所述第一特征featurea输入所述第三模型modelt,得到输出的第三特征featureb’。使用第一特征featurea输入第三模型modelt,有利于提高对第三模型的预训练的准确度。

在本发明实施例中,实际需要训练一个较小的升级模型(即modelt),使其输入为原始特征,输出的特征作为升级后的第二模型的特征。在一些实施例中,所述第三模型modelt为神经网络模型,包括多层全连接层。由于根据原始特征直接生成对应的第二模型的升级后的特征的实际需求是将特征向量从一个特征空间转换到另一个特征空间,所以其需要解决的是一个映射问题。在神经网络中,采用全连接层(fullyconnectedlayer)做映射是非常合适的选择,通过多个全连接层相叠加就可以得到很强的映射能力。下文给出一个采用4层全连接层组成的一个简单的神经网络模型为例,以便更好的解释本发明实施例。采用4层全连接层是为了形成一个比较好的“上采样、下采样”结构,但并不以此为限。

在本发明实施例中,第三模型modelt连接在第一模型modela之后,即第三模型modelt的输入为第一模型modela输出的第一特征featurea,假设所述第一特征featurea的维度为n。第一特征featurea输入第三模型modelt之后,依次通过4个全连接层。在本发明实施例中,前3个全连接层每层均依次包含一个fc(全连接)操作、一个batchnormalization(批归一化)操作以及一个relu(激活函数)操作,最后一个全连接层只有一个fc操作。4个全连接层的输出维度分别为2*n、4*n、2*n以及n。

其中,fc操作可以对输入进行线性映射;batchnormalization操作通过一定的规范化手段,把每层神经网络任意神经元输入值的分布强行拉回到均值为0方差为1的标准正态分布,以尽可能保证每一层网络的输入具有相同的分布;relu操作可增加神经网络模型的非线性,且具有较快的计算速度和收敛速度。采用上述4个全连接层构成的第三模型modelt,具有计算速度快、拟合能力强的优点。

在一些实施例中,假设第一特征featurea和第二特征featureb的维度相同,均为n,则可采用上述4个全连接层的输出维度设计。

在其他一些实施例中,假设第一特征featurea的维度为n,第二特征featureb的维度为m(不等于n),那么也可以类似地设计全连接层的维度:所述多层全连接层中第一层的维度大于所述第一特征featurea的维度,所述多层全连接层中最后一层的维度与所述第二特征featureb的维度相同。设4个全连接层的输出维度分别为n1、n2、n3、n4,则关键是要满足:n<n1<n2>n3>n4=m即可,即要有一个上采样增加维度和下采样减小维度的设计,这样可以增强第三模型modelt的拟合能力,从而更好地进行映射,提高升级模型质量。

图3所示为根据本发明实施例的确定第三特征的原理示意图,包括步骤s231~s232。

在步骤s231中,将所述第一特征输入所述第三模型后得到与所述第二特征维度相同的向量。在本发明实施例中,第一特征featurea输入第三模型modelt(即经过上述4个全连接层)后得到维度为n的向量,其中,假设第一特征featurea和第二特征featureb的维度相同,均为n。

在步骤s232中,将所述第一特征与所述向量相加后作为所述第三特征。在本发明实施例中,将作为输入的第一特征featurea与上述维度为n的向量相加,得到最终的结果,即为第三模型modelt输出的第三特征featureb’。

在本发明实施例中,将第三模型modelt的输入featurea和所述featurea经过四个全连接层得到的向量相加作为第三模型的最终输出featureb’,使得后续在第一特征featurea的基础上学习第二特征featureb更为容易,且训练时的收敛速度更快,有效提升模型训练的效率。

在步骤s24中,根据所述第二特征和所述第三特征确定所述第三模型的损失函数的值。在本发明实施例中,将训练集图像输入第二模型modelb得到的第二特征featureb视为该输入的groundtruth(正确输出),对待升级的第三模型modelt训练的目标为使得第二特征featureb和第三特征featureb’尽可能地相同,以此实现对第三模型modelt的训练,使其输入为第一特征featurea,输出的第三特征可作为第二特征featureb,其中,根据模型的训练效果不同,在实际应用中,使得所述输出的第三特征非常接近第二特征。

图4所示为根据本发明实施例的确定损失函数的值的原理示意图。在一些实施例中,所述根据所述第二特征和所述第三特征确定损失函数的值包括:

确定所述训练集中同一图像对应的所述第二特征和所述第三特征的距离,所述距离包括欧几里得距离和/或曼哈顿距离;

将所述距离作为所述损失函数的值。

在本发明实施例中,计算相同图片的第二特征featureb和第三特征featureb’的l2距离(欧几里得距离)作为l2distanceloss。现在的任务实际上是要使第三特征featureb’逼近一个已有的分布,即第二特征featureb的分布,那么采用的最直接的约束即是让相同图片生成的第三特征featureb’和第二特征featureb最相近。在一些实施例中,使得第二特征featureb和第三特征featureb’的l2距离最小。

在其他一些实施例中,使得第二特征featureb和第三特征featureb’的l1距离(曼哈顿距离)最小。则相应计算相同图片的第二特征featureb和第三特征featureb’的l1距离作为l1distanceloss。在本发明实施例中,单独用l1distanceloss或l2distanceloss都可以获得很好且相近的结果,但l1distanceloss的收敛速度比l2distanceloss更快,更适用于需要快速完成模型训练的应用场景。在本发明实施例中,可单独使用l1distanceloss或l2distanceloss;在其他一些实施例中,也可同时使用l1distanceloss和l2distanceloss。

在一些实施例中,还可将一个训练集里的所有图片的第二特征featureb和第三特征featureb’放在一起计算tripletloss(三元组损失函数);再利用第三特征featureb’计算其对应的分类损失函数(例如cosfaceloss),其中,tripletloss和分类损失函数对最终结果具有较为轻微的影响,但可以加快模型收敛速度,提升模型训练效率。

在一些实施例中,将上述三个loss的值(即l2distanceloss、tripletloss以及cosfaceloss)加起来形成最终的损失函数的值。

在步骤s25中,更新所述第三模型的参数,使得所述损失函数的值最小时,完成对所述第三模型的预先训练。在本发明实施例中,根据所述损失函数的值更新第三模型modelt的参数。使用当所述损失函数的值最小时的参数作为第三模型modelt的参数,完成对modelt的预训练。上述对第三模型的预先训练过程通过使用类似孪生网络的方法对升级模型进行训练,可获得高质量的升级模型。在传统reid方法的基础上,结合多种损失函数,获得更好的模型训练效果。

采用本发明实施例的基于神经网络的模型快速升级方法,利用构建的神经网络直接将特征作为输入和输出,可实现直接对用户端的特征库进行端到端的快速升级。且采用高质量的升级模型,在传统识别问题神经网络模型训练方法的基础上,结合多种损失函数,获得更好的模型训练效果。保证在节省存储空间和实现快速升级的同时,保证精度基本不会损失,保证系统的稳定性和可靠性。且不需要额外存储原图或原视频,节省了存储空间。

本发明第二方面的实施例还提供了一种基于神经网络的模型快速升级装置。图5所示为根据本发明实施例的基于神经网络的模型快速升级装置500的结构示意图,包括获取模块501以及升级模块502,其中:

获取模块501用于获取升级前的第一模型的原始特征。

升级模块502用于将所述原始特征输入预先训练好的第三模型,得到所述第三模型的输出特征作为第二模型的升级后特征,所述第二模型是对所述第一模型升级后得到的模型。

可选地,图5所示装置500还可以包括训练模块,用于执行图2所示的预训练方法。

所述基于神经网络的模型快速升级装置500的各个模块的更具体实现方式可以参见对于本发明的基于神经网络的模型训练方法的描述,且具有与之相似的有益效果,在此不再赘述。

本发明第三方面的实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,实现根据本发明第一方面实施例所述的基于神经网络的模型快速升级方法。

一般来说,用于实现本发明实施例方法的计算机指令的可以采用一个或多个计算机可读的存储介质的任意组合来承载。非临时性计算机可读存储介质可以包括任何计算机可读介质,除了临时性地传播中的信号本身。

计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言,特别是可以使用适于神经网络计算的python语言和基于tensorflow、pytorch等平台框架。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本发明第四方面的实施例提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现根据本发明第一方面实施例所述的基于神经网络的模型快速升级方法。

根据本发明第三、四方面的非临时性计算机可读存储介质和计算设备,可以参照根据本发明第一方面实施例具体描述的内容实现,并具有与根据本发明第一方面实施例的基于神经网络的模型快速升级方法具有类似的有益效果,在此不再赘述。

图6示出了适于用来实现本公开的实施方式的示例性计算设备的框图。图6显示的计算设备12仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图6所示,计算设备12可以通用计算设备的形式实现。计算设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。

总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industrystandardarchitecture;以下简称:isa)总线,微通道体系结构(microchannelarchitecture;以下简称:mac)总线,增强型isa总线、视频电子标准协会(videoelectronicsstandardsassociation;以下简称:vesa)局域总线以及外围组件互连(peripheralcomponentinterconnection;以下简称:pci)总线。

计算设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。

存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(randomaccessmemory;以下简称:ram)30和/或高速缓存存储器32。计算设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性的计算机可读存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图中未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(compactdiscreadonlymemory;以下简称:cd-rom)、数字多功能只读光盘(digitalvideodiscreadonlymemory;以下简称:dvd-rom)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。

具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本公开所描述的实施例中的功能和/或方法。

计算设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(localareanetwork;以下简称:lan),广域网(wideareanetwork;以下简称:wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算设备12的其它模块通信。要说明的是,尽管图中未示出,可以结合计算设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现前述实施例中提及的方法。

本发明实施例的计算设备可以是服务器,也可以有限算力的终端设备。

尽管上面已经示出和描述了本发明的实施例,应当理解的是,上述实施例是示例性的,不能解释为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

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