用于训练神经网络的方法、计算机程序产品和装置与流程

文档序号:14836574发布日期:2018-06-30 12:40阅读:171来源:国知局
用于训练神经网络的方法、计算机程序产品和装置与流程

本发明总体上涉及一种用于训练神经网络的方法、装置和计算机程序产品,该神经网络适于处理图像数据,并输出形成处理后的图像数据的特征向量的值的向量。本发明进一步涉及一种使用在装置上运行的神经网络输出的特征向量来跟踪对象的装置的系统。



背景技术:

当训练神经网络时,围绕训练和神经网络(例如,神经网络的架构等)的许多不同细节影响网络如何形成多维空间。输入数据在该多维空间上的映射将形成该特定输入数据的特征向量。

神经网络的目标是建立多维空间(超空间),使得类似的输入数据(即,根据神经网络被训练来识别的输入数据之间的相似性,属于相同的身份或相同的类的输入数据)将被映射得在该空间中靠近在一起,而不同的输入数据(即,属于不同身份/类的输入数据)将被映射得彼此远离。然而,该多维空间是如何形成的,取决于例如:

-使用哪个训练输入数据,以及它们以何种顺序输入到网络;

-所使用的神经网络的类型、所实现的成本函数(也称为损失函数或误差函数)、节点的层数等;

-训练时运行神经网络的装置的硬件架构,例如在此硬件中浮点数如何四舍五入、相乘等;

-对输入数据的压缩,或对计算速度的其它优化;

-网络权重的随机化初始化;

-等等。

而且,神经网络的训练成本函数(或优化成本函数)通常包含某种随机函数,使得两个神经网络的训练本质上不同。

这意味着,即使两个不同网络的独立训练以完全相同的方式完成,以相同的顺序使用相同的训练输入数据,也不能保证针对某一输入数据的由一个神经网络产生的特征向量可以与针对同一输入数据的由另一个神经网络产生的特征向量进行比较。

因此在这方面需要改进。



技术实现要素:

有鉴于此,本发明的一个目标就是解决或至少减轻上述的一个或几个缺点。一般而言,上述目标由所附独立专利权利要求实现。

根据第一方面,本发明通过一种用于训练第一神经网络的方法来实现,该第一神经网络适于处理图像数据,并输出形成所处理的图像数据的特征向量的值的向量,该方法包括以下步骤:

获取参考特征向量,参考特征向量是通过参考神经网络处理第一训练图像而计算的,参考神经网络适于处理图像数据并且输出形成所处理的图像数据的特征向量的值的向量;

训练第一神经网络以优化成本函数,成本函数包括至少参考特征向量与第一神经网络在处理第一训练图像时输出的特征向量之间的第一距离度量,其中成本函数适于使第一距离度量最小化。

在本说明书的上下文中,术语“神经网络”应该被理解为由大脑中的大量神经元网络所启发的相互关联的节点组。神经网络也可以被称为“人工神经网络”(ANN)。术语“深度学习”也是常用的。可以在这种情况下使用的特定类型的神经网络是卷积神经网络(CNN),但是可以使用任何其它类型的前馈神经网络(FNN)。还可以使用诸如递归神经网络(RNN)或深度置信网络(DBN)等其它类型。

在本说明书的上下文中,术语“特征向量”应当被理解为在神经网络的训练期间,由进行分析的神经网络设计的多维空间中的向量。空间中的维度对于人类来说通常是不可理解的,这是因为它们描述了神经网络在识别或分类训练期间经历的最有用的视觉特征。因此,在这种情况下,特征向量(也称为外观向量)描述了例如神经网络已经处理的图像数据中的对象的视觉外观。多维空间被设计来对相似类的输入数据进行聚类,并分离不同类的输入数据。根据神经网络设计的目的,“相似类”和“不同类”意味着不同的事物。被设计来用于监视目的的神经网络的最常见情况是对由神经网络处理的图像中的对象(例如人)进行识别。在这种情况下,相似类的输入数据是指包括相同身份的人的输入数据,而不同类的输入数据是指包括不同身份的人的输入数据。在这种情况下,神经网络被设计来识别人,并且即使例如图像是从不同的角度拍摄的,将呈现相同身份的人的输入数据聚类。在其它实施例中,神经网络已被训练来聚类相同类的输入数据(根据一些共同的关系或属性将分布分为组、类、目、族等),例如相同品种的狗、或例如将汽车与自行车分开。在这种情况下,相似类的输入数据是指包括同一类的对象的输入数据,而不同类的输入数据是指包括不同类的对象的输入数据。换句话说,目标是使特征向量表征与网络被训练的诸如人的重新识别的分析任务相关的视觉外观的各个方面。特征向量包含使得有可能判断两个图像是否描绘同一个人的个体之间的不变方面,不过由于例如姿态/角度、照明差异、图像的清晰度等引起的外观差异的依赖性在特征向量中被尽可能地抑制。

在神经网络的情况下,使用成本函数来训练这样的网络,学习过程尝试优化(通常是最小化,但成本函数也可以被设计为将被最大化)成本函数。如上所述,神经网络通常需要被训练以根据用户的需求来处理数据。应对神经网络进行训练,以关于成本函数来优化性能。在神经网络训练期间,学习算法取决于成本函数的梯度以找到成本函数的最小值(或最大值)。在某些情况下,找到的最小值可能是一个局部最小值。因此,在本实施例的情况下,如果参考特征向量与第一神经网络输出的特征向量之间的距离度量较大,则成本较大,更新第一神经网络的权重以(根据成本函数的梯度)使得成本较小。

如上所述,当训练神经网络时,围绕训练的许多不同细节和神经网络的设计/架构影响网络如何形成多维空间。每个输入图像数据的输出特征向量的值取决于空间是如何形成的。

发明人已经认识到,在本实施例中,即使例如装置的硬件的架构或神经网络的架构不同,来自在不同装置上实现的神经网络处理的图像数据的特征向量也可以被比较。由于在训练神经网络时,参考神经网络的输出已经被用作基础事实,因而这是可能的。通过使用从参考神经网络(也可以称为公共神经网络、第二神经网络等)输出的特征向量(即,参考特征向量)来训练第一神经网络,第一神经网络的多维空间将会向参考神经网络的多维空间收敛。因此参考神经网络将对如本文所述训练的任何神经网络具有归一化的效果。

本实施例的另一个优点是第一神经网络的实现,例如,架构的选择、节点的数量、神经网络的类型等,可以在不考虑或不了解参考神经网络的细节的情况下完成。此外,由于每个神经网络的多维空间将是类似的,所以在没有任何彼此的细节,或者甚至不知道彼此的存在的情况下,多个第一网络可以被训练,并且仍然可以产生相匹配的输出特征向量。

本实施例的另一个优点是可以将参考神经网络训练到所需的精确度,例如,使用大量训练图像,或者在适于产生非常准确的结果(“最佳”架构)的装置上实施。另一个优点可以是对于训练参考神经网络来说没有时间约束或硬件约束,这是因为这可以在专用装置上离线地完成,或者在第一神经网络的训练之前完成。参考神经网络可以被保留为专有的秘密,而不需要暴露,只有参考特征向量需要对第一个神经网络来说是可访问的。

根据一些实施例,已经使用基于三元组的成本函数来训练参考神经网络,其中基于三元组的成本函数旨在将相同类或身份的输入图像对与另一类或身份的第三输入图像分离,使得相同类或身份的输入图像对之间的第一距离与相同类或身份的输入图像对中的一个输入图像与第三输入图像之间的第二距离之间的差异至少为距离余量α,其中训练第一神经网络以优化成本函数的步骤包括:将第一距离度量减小到至少α除以四。

在本说明书的上下文中,术语“基于三元组的成本函数”应理解为用于最小化或减小包括第一类或身份的对象的第一输入图像(也称为锚点(anchor))和包括同一类或身份的对象的第二输入图像(也称为正像(positive))之间的距离的函数。基于三元组的成本函数还应该进一步实现:第一输入图像与包括另一类或身份的对象的第三图像(也称为负像(negative))之间的距离比输入图像的锚点一正像对之间的距离大α。这意味着使用α值来产生锚点一正像对和锚点一负像对之间的分离差异,使得对于特定的三元组图像,锚点一负像对之间的距离至少比锚点一正像对之间的距离大α。应该指出,α总是一个正数。如果三元组的锚点一正像对之间的距离与锚点一负像对之间的距离之间的差小于α,则成本函数将改变神经网络的权重以朝着α增大差。还应该指出,达到α距离余量可能是一个迭代过程。基于三元组的成本函数将改变权重,使得差朝着α增加,但是在一次迭代中可能不会达到α距离余量。对于训练数据库中的所有图像满足所有α条件是一个迭代过程,不是为了特定的三元组实现α距离余量,基于成本函数计算的梯度使得权重改变,使得特定的三元组稍微接近满足α余量。但是,如果差已经大于α,则成本函数不会影响该特定三元组的神经网络的权重。因此,实现了在神经网络超空间中不同类或身份的图像数据的分离。这种α值的细节被公开在在已发表的文章中,例如在(谷歌公司的)Schroff等人的文章“FaceNet:人脸识别和聚类的统一嵌入”中。

在第一网络的训练中使用α值并且将第一神经网络的特征向量和从参考神经网络获取的参考特征向量之间的距离减小到至少α/4可以为第一神经网络何时“足够好”和训练可以在何处停止,提供良好的值,这是因为α/4的误差仍然意味着:尽管与参考向量相比有误差,但是具体分类的对象将被分类到正确的类中。下面将结合图6和图7对此作进一步解释。本实施例可以增加训练的速度。根据一些实施例,获取参考特征向量的步骤包括将第一训练图像发送到参考神经网络、由参考神经网络处理第一训练图像和获取来自参考神经网络的输出特征向量。通过这种方式,参考神经网络就不需要在之前已经“看到”第一训练图像,或已经被在第一训练图像上训练。第一训练图像可以是第一神经网络的图像处理任务特定的图像(例如,在地铁站或在办公楼入口处等等拍摄的处理图像)。然后,第一训练图像可以由参考神经网络处理,然后参考神经网络返回特征向量以供第一神经网络进行获取。

根据一些实施例,获取参考特征向量的步骤包括:使用与第一训练图像有关的数据作为在包括特征向量的数据库中的关键字,并且从数据库获取对应于关键字的值。在本实施例中,将与相应的图像有关的数据(例如,诸如哈希值的图像的指纹)作为关键字,参考神经网络已经处理了特定的一组图像,并且将得到的特征向量存储在数据库中。因此,第一神经网络的训练可以包括:将与训练图像有关的数据或这可选地整个训练图像发送到数据库,数据库可选地在从第一神经网络接收的数据中提取将被用作数据库中的关键字的数据(例如,哈希值);并且从数据库中获取先前由参考神经网络产生的特征向量(即,为用于训练第一神经网络的基础事实(ground truth))。本实施例在训练第一神经网络时可以节省时间,并且由于根据一些实施例的整个训练图像不需要被传输,还可以节省带宽。

根据一些实施例,第一距离度量是参考特征向量与第一神经网络输出的特征向量之间的欧几里德距离。这是一个计算上便宜的距离度量。可替代地,可以使用其它距离度量,例如任何p范数度规(p-norm metric)或度量(measure)。

根据一些实施例,第一神经网络和参考神经网络是不同类型的神经网络。例如,可能已经使用了不同类型的软件库(例如开源(Open Source))或网络架构。这种网络架构的示例包括GoogLeNet、AlexNet等。软件库的示例有TensorFlow、Caffe等。根据其它实施例,第一神经网络和参考神经网络包括不同数量的层,每层中不同数量的节点等。术语“不同类型的神经网络”进一步包括第一神经网络和参考神经网络的内部数字表示中不同的比特宽度,否则第一神经网络和参考神经网络可能具有相同的网络架构。该术语进一步包括被修剪的(一些小权重被设置为零以加速计算)但是在其它方面类似的网络,或者对于其一些操作使用被优化了的函数的网络(例如具有通过使用可能产生较小的准确性错误的一些技巧来进行被优化了的卷积的特定函数)等。

根据一些实施例,第一神经网络由具有第一硬件架构的装置来实现,并且参考神经网络由具有不同于第一硬件架构的第二硬件架构的装置来实现。举例来说,第一神经网络可以是在嵌入式装置上运行的非常小的整数神经网络,而参考神经网络是在云中,或者在专用计算框上运行的大型浮点网络。

根据一些实施例,针对多个训练图像迭代前述实施例中的任何一个的步骤。

根据一些实施例,该方法进一步包括:将第一神经网络与版本号相关联,版本号反映在利用来自参考神经网络的参考特征向量对第一神经网络进行训练时的参考神经网络的版本号。如本实施例中那样使用版本号可以有助于知道什么时候需要升级或重新训练第一神经网络。

在第二方面,本发明提供了一种具有指令的计算机可读存储介质,指令适于在由具有处理能力的装置执行时执行第一方面的任何实施例的方法。

在第三方面,本发明提供了一种装置,包括:第一神经网络,该第一神经网络适于处理图像数据并输出形成所处理的图像数据的特征向量的值的向量,该装置包括处理器,该处理器被配置为:

获取参考特征向量,参考特征向量是通过参考神经网络处理第一训练图像而计算的,参考神经网络适于处理图像数据并且输出形成所处理的图像数据的特征向量的值的向量;

训练第一神经网络以优化成本函数,该成本函数包括参考特征向量与第一神经网络在处理第一训练图像时输出的特征向量之间的至少第一距离度量,其中成本函数适于使第一距离度量最小化。

在第四方面,本发明提供了一种包括多个装置的系统,每个装置包括根据第一方面训练的第一神经网络,其中每个装置进一步适用于从图像中提取对象,使用第一神经网络处理所提取的对象的图像数据并发送从第一神经网络输出的特征向量,其中该系统还包括对象跟踪单元,对象跟踪单元适于从该装置接收特征向量,并且基于接收到的特征向量来通过装置的系统跟踪对象。

如上所述,使用公共的参考神经网络来为训练图像提供参考特征向量,并将其用于训练其它神经网络,训练的神经网络被引导以产生类似的多维空间,使得可以以有意义的方式(由于所有特征向量存在于相同或非常相似的向量空间中)来比较来自每个神经网络的针对某个图像的输出特征向量。因此,来自不同神经网络(在不同装置上实现的神经网络)的特征向量可以被比较并从而用于跟踪对象。

根据一些实施例,多个装置中的每一个装置的第一神经网络进一步与版本号相关联,版本号反映在训练第一神经网络时的参考神经网络的版本号,其中多个装置中的装置的版本号与从第一神经网络输出的特征向量一起被发送,并且其中对象跟踪单元适于基于所接收的特征向量和版本号来通过该装置的系统跟踪对象。

根据一些实施例,多个装置中的至少一个是网络摄像机,其中从网络摄像机捕获的图像中提取对象。

根据一些实施例,对象跟踪单元在多个装置中的至少一个装置中实现,其中使用多播或广播传输来实现从装置传输特征向量。

根据一些实施例,对象跟踪单元被实现在与多个装置分离并且连接到多个装置中的每一个的另外的装置中。

第二、第三和第四方面通常可以具有与第一方面相同的特征和优点。

附图说明

参考附图,通过以下对本发明实施例的说明性和非限制性的详细描述,将更好地理解本发明的上述以及其它目的、特征和优点,其中相同的附图标记将用于相似的元件,在附图中:

图1示出了处理输入图像并输出描述输入图像的特征向量的神经网络;

图2示出了由两个不同的神经网络处理的在二维特征空间中的两个对象的特征向量;

图3示出了根据实施例的神经网络的训练;

图4示出了用于跟踪由图像捕获的对象的装置的系统;

图5示出了根据实施例的用于训练神经网络的方法;

图6示出了距离余量,该距离余量为具有映射在参考神经网络的多维空间中的相同分类的图像的群集之间的最小距离;

图7示出了在训练第一神经网络时对参考神经网络的α值使用。

具体实施方式

图1通过示例的方式示出了神经网络104的功能。使用神经网络可能是一种解决诸如对象识别的计算机视觉问题的好方式,在这里,基于规则的方法可能效果不佳。。使用基于规则的方法,与其它类型(即类)的其它对象相比,(复杂)对象的区别特征可能难以定义,特别是当事先不知道哪些类型的对象需要被识别和彼此可区分时。这里存在着神经网络的一个优势。当采用神经网络识别或分类对象时,输出可以是特征向量。这在图1中示出,其中输入图像102(或输入图像数据102)由神经网络104处理。神经网络的输出是特征向量106。在图1的示例中,特征向量106的维度是四,但是这仅仅是作为示例。特征向量106描述输入图像102中的对象的视觉外观。特征向量106是由执行分析的神经网络104设计的多维空间中的向量。空间中的维度(在本示例中数量是四,每个维度由特征向量106中的值106a-d表示)对于人类来说通常是不可理解的,因为它们描述了神经网络104在其训练期间所经历的、对对象的识别或分类以及不同身份/类的对象之间的分离最有用的视觉特征。

然而,如上所述,对于相同的对象,不同的神经网络可能会出现(在不同的不可比较的特征空间中的)不同类型的特征向量。

图2通过示例的方式示出了两个不同的神经网络在二维空间中所作的两个对象(在图2中示出为四面星和菱形)的映射。在这个简化的例子中,两个神经网络输出了相同维度的向量。这是典型的情况,但是有可能两个不同的神经网络输出不同维度的向量。通常,为了使用神经网络对复杂对象进行良好分类,需要100-1000个维度。在图2中,为了简单起见,使用了两个维度。一个神经网络已经在图2的二维空间中将星形202分类到左侧(较低的x值)并将菱形208分类到右侧(较高的x值),而另一神经网络已经将星形204分类到右侧(较高的x值)并将菱形206分类到左侧(较低的x值)。如果两个不同对象的来自两个神经网络的特征向量直接用于比较对象,则第一神经网络的菱形将与第二网络的星形匹配,反之亦然。这在监视系统中可能会成为问题,在监视系统中,不同的监视摄像机、视频编码器和视频服务器(各自具有用于对象分类的单独的神经网络)被用于在监控系统中跟踪对象(相同的身份的,或者在一些较不典型的实施例中,相同的类的对象)。

本公开提供了这个问题的解决方案。总之,这个问题是通过参照参考神经网络来训练神经网络来解决的。现在将结合图3和图5来举例说明。第一神经网络104(即,待训练的神经网络)适于处理图像数据310并输出形成用于处理的图像数据310的特征向量106的值106a-d的向量。为了将针对特定输入图像数据310输出的特征向量106“强制”为对具有不同架构的,或者使用不同训练图像训练的,或者在具有不同规格的硬件上运行的神经网络来说是可比较的,参考神经网络(第二神经网络)302被用于训练。假定参考神经网络302被训练到了期望的精度。在第一神经网络104的训练期间,不对例如参考神经网络302的权重进行修改。为训练图像310,第一神经网络104计算特征向量106。此外,第一神经网络104获取(S508)参考特征向量306,该参考特征向量306被用作该特定训练图像310的基础事实(即,正确的特征向量)。这可以通过从例如提供这种参考特征向量的服务312请求(S502)用于训练图像310的参考特征向量来完成。根据一些实施例,获取参考特征向量306包括将第一训练图像310发送到参考神经网络302。然后,参考神经网络302可以处理(S504)第一训练图像310。然后,第一神经网络104然后获取(S508)从参考神经网络302输出的特征向量306(基础事实)。例如,当参考神经网络302已经输出参考特征向量306时,提供参考特征向量的服务312可以将参考特征向量306发送到请求的神经网络104。本实施例可以例如利用参考神经网络302之前没有处理过的训练图像来促进对第一神经网络104的训练。在其它实施例中,获取参考特征向量306包括使用与第一训练图像310有关的数据310',并将数据310'传送给提供参考特征向量的服务312。数据310'可以是训练图像310的任何类型的唯一标识符,例如整个训练图像310、训练图像310的哈希值、或训练图像310的预定标识符。然后,可以将数据310'用作数据库304中的关键字(可选地,数据310'在服务312处被预处理为对于数据库的正确格式,其中预处理后的数据仍然是与第一训练图像310有关的数据),以在数据库304中找到训练图像310的参考特征向量306。先前已经向数据库304提供了参考特征向量和每个参考特征向量的标识符,其中参考特征向量已经由参考神经网络302计算。在本实施例中,在可以(使用来自用于训练的预定义图像的集合的图像)进行第一神经网络的训练之前,由参考神经网络302确定并处理预定义图像的集合。

当已经获取到参考特征向量306时,可以训练第一神经网络104,使得第一神经网络104将输出与参考神经网络302输出的特征向量可比较的特征向量106。这通过降低成本函数308(在图3中由S形符号示意性地表示)来完成,其中成本函数308包括至少参考特征向量306和由第一神经网络104在处理第一训练图像310时输出的特征向量106之间的第一距离度量。如此,例如通过改变神经网络中的神经元(节点)之间的权重,来调整成本函数,以最小化第一距离度量,使得输出特征向量106将更接近参考特征向量(与参考特征向量更相匹配(comparable))。这样的成本函数的细节由本领域技术人员来实现,但是一般来说,成本函数被优化以达到其中第一距离度量被至少局部地最小化的最小值或最大值。

因此,训练第一神经网络以优化成本函数,使得成本函数被调整以使输出特征向量106与参考特征向量306之间的距离最小化。在来自第一神经网络的特征向量和参考特征向量可以变得多近这一方面,可能存在性能限制,然而,通过使用上述方法来训练神经网络,参照同一参考神经网络训练的所有神经网络可以在某个可信度(confidence level)内生成相匹配的特征向量。根据一些实施例,可以使用与参考神经网络的训练有关的数据来将第一神经网络训练到合理的可信度。具体来说,如果已经使用所谓的三元组训练(triplet training)来训练参考神经网络,其中三元组训练包括使用具有相同身份(identification)或分类(classification)的输入图像对和具有另一身份/分类的第三输入图像的训练,那么在训练第一神经网络时,可以使用这样的训练的所谓的距离余量。在这种类型的训练中,神经网络的成本函数旨在将具有相同身份/分类的输入图像对与所述另一身份/分类的第三输入图像分离开至少距离余量(也称为α)。

图6至图7示意性地描述了距离余量α,α部分地确定了映射在多维空间中的具有相同身份/分类的图像的群集(cluster)之间的最小距离。从图6中可以看出,三个群集602-606中的任何两个之间的距离是α+r1/r2/r3。值r1对应于群集604中的最分离的特征向量之间的距离与群集606中的最分离的特征向量之间的距离中的最大值(max(群集604中的最分离的特征向量之间的距离,群集606中的最分离的特征向量之间的距离))。以相同的方式,值r2/r3分别取决于群集602、604和602、606的散布。通过上述使用三元组训练来训练参考神经网络的方式,在所有三元组组合被视为满足α要求的完美场景中,最终结果将变成如图6中所述,其中r1/r2/r3距离表示最小的距离,使得从图像的群集中选择的三元组的所有组合给出来自损失函数的零误差。应该指出的是,这种完美的训练,即从图像的群集中选择的三元组的所有组合给出来自损失函数的零误差,几乎从不发生。这是例如因为在所有的三元组的组合上训练是不可行的,这是因为它们太多了,无论如何也不能保证神经网络永远将能够收敛到能够很好地执行完美的训练的状态。然而,图6是良好训练的网络,对于第一网络的训练的准确性,该良好训练的网络很可能是针对α值的当前讨论的足够好的近似。

群集602-606的分离将因此而不同,但是全部将部分地由α值确定。在本实施例中,训练(S510)第一神经网络以优化成本函数的步骤包括:将第一距离度量减小到至少α除以四。这是针对特定输入图像数据的输出特征将导致正确的分类/识别(即,如使用参考神经网络那样分类/识别)仍然合理地有可能的最小的距离。

图7以简化的方式显示了对第一神经网络进行训练以使第一距离度量最小化为至少α除以四的数值背后的基本原理。为了便于描述,在图7中,每个图像数据已经被处理并被映射到单维度空间,即,输出的特征向量包括一个值。针对每个群集602,606示出了两个特征向量,这两个特征向量表示彼此离得最远但仍具有相同的身份/类的特征向量(即,每个群集602,606中最分离的特征向量)。因此,左侧群集602中的特征向量之间的距离是d1,并且右侧群集606中的特征向量之间的距离是d1。如上所述,多维空间中不同身份/类的两个最接近的特征向量之间的距离是α+max(d1,d2)。如图7所示,这种分离在训练第一神经网络时允许一些余量,并且仍然对所涉及的被处理的图像数据产生正确的识别/分类。在这种情况下,余量为α/4。在所有特征向量以“错误方式”偏离α/4,即,使得相同群集602,604中的样本(例如,代表每个样本的特征向量的图7中的星)之间的距离增加并且相邻群集中的“外部”样本之间的距离增加的情况下,相比于相同群集602,604内彼此距离最远的特征向量,不同身份/类的最接近的特征向量仍将彼此离得更远。

如上所述,使用用于训练第一神经网络104的方法可以导致从第一神经网络104和第二神经网络302输出的相匹配的特征向量,即使第一神经网络104和第二神经网络302例如是不同类型的神经网络。例如,参考神经网络可以使用第一网络架构来实现,并且第一神经网络可以使用不同的网络架构来实现。此外,即使第一神经网络104由具有第一硬件架构的装置实现,而参考神经网络302由具有与第一硬件架构不同的第二硬件架构的装置来实现,使用用于训练第一神经网络104的方法也可以导致从第一神经网络104和第二神经网络302输出的相匹配的特征向量。因此,训练方法是鲁棒的,例如,针对不同的舍入浮点值的方式是鲁棒的。

在将第一训练图像用于训练第一神经网络之后,可以针对多个训练图像迭代(图5中的L1)上述(根据任何实施例的)方法。

根据一些实施例,第一神经网络104可以与版本号相关联,版本号反映在第一神经网络被训练时的参考神经网络302的版本号。可以使用本实施例来确保当在神经网络之间比较特征向量时,相同版本的参考神经网络(即,参考神经网络302)已经被用于训练。否则,不能进行特征向量的比较。

图4通过示例的方式示出了包括多个装置404-408的系统400,其中每个装置404-408包括根据本公开训练的神经网络。由于可以比较来自神经网络的输出特征向量,因此系统400可以用于在装置之间跟踪对象。例如,每个装置可以适于从图像中提取对象,使用第一神经网络来处理所提取的对象的图像数据,并发送从第一神经网络输出的特征向量106。根据一些实施例,多个装置中的至少一个是网络摄像机,其中从网络摄像机捕获的图像中提取对象。

在系统400中,适于从装置接收特征向量的对象跟踪单元402可以用于基于接收到的特征向量106,通过装置的系统来跟踪对象。对象跟踪单元402可以在多个装置中的至少一个中实现,这意味着对象跟踪单元本身是类似于多个装置404-408的装置,并且还包括如本文所述训练的神经网络。因此,系统400可以是对等网络或任何其它合适的网络架构。在这种情况下,可以使用单播、多播或广播传输来实现来自多个装置404-408中的装置的特征向量106的传输。在其它实施例中,对象跟踪单元402被实现在与多个装置404-408分离并连接到多个装置404-408中的每一个的另外的装置中。在这个实施例中,对象追踪单元402可以在服务器或相似物中实现,以促进对象追踪的集中处理。因此,在多个装置404-408和分离的对象跟踪单元402之间的特征向量的传输可以是专用传输(即,传输至特征向量106的专用接收器)。

根据一些实施例,多个装置中的每一个装置的第一神经网络进一步与版本号410相关联。如上所述,版本号反映了训练第一神经网络时的参考神经网络的版本号。在这种情况下,多个装置404-408中的装置的版本号410与从第一神经网络输出的特征向量106一起被发送。因此,对象跟踪单元可以适于基于接收到的特征向量和版本号,通过装置的系统来跟踪对象,并且确保只有从具有相同版本号的神经网络的装置接收的特征向量被比较。

在接收到的特征向量106的版本号与版本号410不同的情况下,对象跟踪单元402可以忽略该特征向量。根据其它实施例,对象跟踪单元可以请求具有与其神经网络相关联的正确版本号的另一个装置404-406,或者例如已经实现了与正确版本号相关联的神经网络的服务器,重新处理作为具有错误版本号的特征向量的起因的图像数据,并且将新的特征向量发送到对象跟踪单元402。对象跟踪单元402还可以触发具有错误(旧)版本号的神经网络的更新(重新训练),和/或相应地标记该装置。

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