车辆识别方法、装置、系统、电子设备及存储介质与流程

文档序号:24073941发布日期:2021-02-26 16:26阅读:92来源:国知局
车辆识别方法、装置、系统、电子设备及存储介质与流程

[0001]
本发明涉及人工智能领域,尤其涉及一种车辆识别方法、装置、系统、电子设备及存储介质。


背景技术:

[0002]
随着人工智能的快速发展,图像识别技术得以在各种应用场景中落地,比如,门禁系统中的人脸识别,交通系统中的车辆识别等;其中,在车辆识别的应用中,比如,可以通过提取车辆的特征信息来检索出现在监控设备中曾经出现的车辆,或者通过提取车辆的特征信息来检索在其他监控设备中的目标车辆,或者通过提取车辆特征对车辆进行跟踪等。在车辆识别的实现过程中,通常是通过深度卷积神经网络进行特征提取,最后通过全连接层对提取到车辆信息进行分类识别,得到识别结果。然而,由于监控设备所拍摄到的照片存在质量问题,比如:车辆运动模糊、车辆反光、物体遮挡等,成为影响识别结果的因素,使得在提取特征的过程中,也同样提取到这些信息,使得特征表达不准确,从而使得全连接层的分类识别效果不好,识别的准确率不高。对此,虽然可以通过增加特征提取计算层的深度来得到更抽象更具有表征能力的车辆特征信息,但这无疑也增加了特征提取过程中的计算量,不利于小型化和前端化部署。因此,现有的车辆识别方式存在鲁棒性不高的问题。


技术实现要素:

[0003]
本发明实施例提供一种车辆识别方法,能够在不增加额外特征提取计算量的情况下,提高车辆识别的鲁棒性。
[0004]
第一方面,本发明实施例提供一种车辆识别方法,包括:
[0005]
提取待识别车辆图像中的目标车辆特征;
[0006]
将所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征;
[0007]
将所述车辆拆分特征分别输入预设的学习器中,对所述车辆拆分特征进行识别,得到预设数量的第一识别结果,其中,所述学习器根据全连接层进行拆分得到,所述学习器与所述车辆拆分特征的数量相同;
[0008]
对所述第一识别结果进行后处理,得到第二识别结果,将所述第二识别结果做为车辆识别结果进行输出。
[0009]
可选的,所述将所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征,包括:
[0010]
按所述目标车辆特征的维度信息,对所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征。
[0011]
可选的,所述对所述第一识别结果进行后处理,得到第二识别结果,将所述第二识别结果做为车辆识别结果进行输出,包括:
[0012]
将第一识别结果按所述学习器的顺序进行拼接,得到第二识别结果;
[0013]
将所述第二识别结果做为车辆识别结果进行输出。
[0014]
可选的,所述方法还包括:
[0015]
获取车辆图像训练集,所车辆图像训练集中包括车辆图像;
[0016]
基于所述车辆图像训练集,对待训练的深度神经网络进行训练,所述深度神经网络中包括多个学习器,在待训练的深度神经网络完成训练后,得到预设的多个学习器。
[0017]
可选的,所述深度神经网络中包括车辆特征提取器,所述基于所述车辆图像训练集,对待训练的深度神经网络进行训练,包括:
[0018]
通过所述车辆特征提取器,提取车辆图像训练集中车辆图像的训练特征;
[0019]
将所述训练特征进行拆分,得到预设数量的训练拆分特征;
[0020]
基于所述训练拆分特征,对所述待训练的深度神经网络中对应的学习器进行训练。
[0021]
可选的,所述基于所述训练拆分特征,对所述待训练的深度神经网络中对应的学习器进行训练,包括:
[0022]
获取上一学习器的学习权重;
[0023]
根据当前训练拆分特征,计算当前学习器的当前损失;
[0024]
根据所述上一学习器的学习权重以及所述当前学习器的当前损失,计算当前学习器的学习权重。
[0025]
可选的,车辆图像训练集中包括多组车辆图像,每组车辆图像中至少包括第一车辆图像以及第二车辆图像,所述基于所述车辆图像训练集,对待训练的深度神经网络进行训练,包括:
[0026]
提取所述第一车辆图像中的第一训练特征,以及提取所述第二车辆图像中的第二训练特征;
[0027]
将所述第一训练特征以及所述第二训练特征分别进行拆分,得到预设数量的第一训练拆分特征以及相同数量的第二训练拆分特征,所述第一训练特征的拆分方式与所述第二训练特征的拆分方式相同;
[0028]
基于所述第一训练拆分特征以及所述第二训练拆分特征,对待训练的深度神经网络中对应的学习器进行训练。
[0029]
可选的,所述基于所述第一训练拆分特征以及所述第二训练拆分特征,对待训练的深度神经网络中对应的学习器进行训练,包括:
[0030]
获取第一超参数以及第二超参数;
[0031]
计算当前第一训练拆分特征与当前第二训练拆分特征的当前相似度;
[0032]
根据所述第一超参数、所述第二超参数以及所述当前相似度,计算当前学习器的损失;
[0033]
基于所述当前学习器的损失,对所述当前学习器进行训练。
[0034]
可选的,在所述根据所述第一超参数、所述第二超参数以及所述当前相似度,计算当前学习器的损失之前,所述方法还包括:
[0035]
根据所述当前相似度,确定第一参数以及第二参数;
[0036]
所述根据所述第一超参数、所述第二超参数以及所述当前相似度,计算当前学习器的损失,包括:
[0037]
根据所述第一超参数、所述第二超参数、所述第一参数、所述第二参数以及所述当
前相似度,计算当前学习器的损失。
[0038]
可选的,所述根据所述当前相似度,确定第一参数以及第二参数,包括:
[0039]
判断所述当前相似度是否大于预设的相似度阈值;
[0040]
若所述当前相似度大于所述相似度阈值,则确定所述第一参数为第一预设值,以及确定所述第二参数为第三预设值;
[0041]
若所述当前相似度小于所述相似度阈值,则确定握权这第一参数为第二预设值,以及确定所述第二参数为第四预设值。
[0042]
第二方面,本发明实施例还提供一种车辆识别装置,所述装置包括:
[0043]
提取模块,用于提取待识别车辆图像中的目标车辆特征;
[0044]
拆分模块,用于将所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征;
[0045]
第一处理模块,用于将所述车辆拆分特征分别输入预设的学习器中,对所述车辆拆分特征进行识别,得到预设数量的第一识别结果,其中,所述学习器根据全连接层进行拆分得到,所述学习器与所述车辆拆分特征的数量相同;
[0046]
第二处理模块,用于对所述第一识别结果进行后处理,得到第二识别结果,将所述第二识别结果做为车辆识别结果进行输出。
[0047]
第三方面,本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至10中任一项所述的车辆识别方法中的步骤。
[0048]
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至10中任一项所述的车辆识别方法中的步骤。
[0049]
本发明实施例中,提取待识别车辆图像中的目标车辆特征;将所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征;将所述车辆拆分特征分别输入预设的学习器中,对所述车辆拆分特征进行识别,得到预设数量的第一识别结果,其中,所述学习器根据全连接层进行拆分得到,所述学习器与所述车辆拆分特征的数量相同;对所述第一识别结果进行后处理,得到第二识别结果,将所述第二识别结果做为车辆识别结果进行输出。通过将全连接层拆分为预设数量的学习器,来对车辆拆分特征进行识别,将原本单一的识别结果,通过多个第一识别结果所在维度来共同表示,使得识别结果更加鲁棒,还可以充分利用现有车辆特征的表达能力,从而不需要通过增加额外特征提取网络计算量就可以提高识别准确率。
附图说明
[0050]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0051]
图1是本发明实施例提供的一种车辆识别方法的流程图;
[0052]
图2是本发明实施例提供的一种深度神经网络训练方法的流程图;
[0053]
图3是本发明实施例提供的另一种深度神经网络训练方法的流程图;
[0054]
图4是本发明实施例提供的另一种深度神经网络训练方法的流程图;
[0055]
图5是本发明实施例提供的一种损失值计算方法的流程图;
[0056]
图6是本发明实施例提供的一种车辆识别装置的结构示意图;
[0057]
图7是本发明实施例提供的一种第二处理模块的结构示意图;
[0058]
图8是本发明实施例提供的另一种车辆识别装置的结构示意图;
[0059]
图9是本发明实施例提供的一种训练模块的结构示意图;
[0060]
图10是本发明实施例提供的一种第一训练子模块的结构示意图;
[0061]
图11是本发明实施例提供的另一种训练模块的结构示意图;
[0062]
图12是本发明实施例提供的一种第二训练子模块的结构示意图;
[0063]
图13是本发明实施例提供的另一种第第二训练子模块的结构示意图;
[0064]
图14是本发明实施例提供的一种确定单元的结构示意图;
[0065]
图15是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
[0066]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0067]
请参见图1,图1是本发明实施例提供的一种车辆识别方法的流程图,如图1所示,车辆识别方法包括以下步骤:
[0068]
101、提取待识别车辆图像中的目标车辆特征。
[0069]
在本发明实施例中,上述的待识别车辆图像可以是设置在交通路口的监控设备所采集到的车辆图像,比如,监控设备定时采集或实时采集到的车辆图像。上述的待识别车辆图像也可以是用户上传的车辆图像。
[0070]
上述的目标车辆特征可以是通过预设的车辆特征提取器来进行特征提取得到,上述预设的车辆特征提取器可以是预先训练好的。需要理解的是,上述的车辆特征提取器也可以称为车辆特征提取网络。在图像识别过程中,通过特征提取器提取出图像特征,再通过分类器对图像特征进行分类,以达到对图像进行识别的目的。也可以理解为,在一个图像识别模型中,包括特征提取器与特征分类器,在深度卷积神经网络中,特征提取器可以由多层的卷积计算层构成,用于提取图像的抽象特征表达,特征分类器可以由一个包括类别矩阵的全连接层构成,用于计算图像特征与各个类别特征的相似度和置信度,其中,图像特征与某个类别特征的相似度越高,则该图像特征属性该类别的机会就越高,置信度越高,则表示这个分类结果的可信度越高。
[0071]
上述的目标车辆特征可以是一个具有多维度的特征向量,在车辆特征提取器中,可以将待识别车辆图像提取为预设维度数的特征向量,比如1024维、512维、256维等维度的特征向量。
[0072]
102、将目标车辆特征进行拆分,得到预设数量的车辆拆分特征。
[0073]
在本发明实施例中,上述目标车辆特征指的是目标车辆的特征向量,上述将目标车辆特征进行拆分,可以是对特征向量的拆分,即是将一个高维度的特征向量,拆分为多个
低维度的特征向量(即是上述的车辆拆分特征)。进一步的,本发明实施例可以是按目标车辆特征的维度信息,对目标车辆特征进行拆分,得到预设数量的车辆拆分特征。
[0074]
上述的预设数量可以根据具体的情况进行设定,也可以是开发人员设定的默认值。需要说明的是,上述的预设数量为大于等于2的整数值。
[0075]
在一种可能的实施例中,上述的预设数量可以多个预设值,用户可以在交互界面中选取不同的预设值用来对目标车辆特征拆分。比如:预设值可以设置为2、3、4、5等值,当用户在交互界面选择预设值为2时,则会将目标车辆特征拆分为2个车辆拆分特征;当用户在交互界面选择预设值为3时,则会将目标车辆特征拆分为3个车辆拆分特征。
[0076]
具体的拆分方式可以是根据目标车辆特征的维度,将目标车辆特征拆分为多个低维度的车辆拆分特征,所有低维度的车辆拆分特征的维度总和为目标车辆特征的维度。以目标车辆特征为512维特征向量来说,若将目标车辆特征拆分为2个车辆拆分特征,可以是拆分为2个256维的车辆拆分特征;若将目标车辆特征拆分为3个车辆拆分特征,可以是拆分为128维、128维、256维的3个车辆拆分特征。
[0077]
进一步的,可以是按目标车辆特征的维度进行顺序拆分,比如,以目标车辆特征为512维特征向量来说,若将目标车辆特征拆分为3个车辆拆分特征,可以是拆分前128维为第一个车辆拆分特征、拆分128维到第256维为第二个车辆拆分特征、拆分256维到第512维为第三个车辆拆分特征。这样,可以将车辆拆分特征按顺序进行拼接,就可以得到原来的目标车辆特征。
[0078]
103、将车辆拆分特征分别输入预设的学习器中,对车辆拆分特征进行识别,得到预设数量的第一识别结果。
[0079]
在本发明实施例中,学习器根据全连接层进行拆分得到,上述学习器与上述车辆拆分特征的数量相同。具体的,可以根据车辆拆分特征的数量将全连接层拆分为对应的数量的学习器,使用多个学习器的组合代替原本的全连接层,再根据多个学习器的识别结果得到最终的结果,在将车辆特征拆分后,通过对应的学习器来进行识别,可以得到多个学习器的识别结果,再通过多个学习器的识别结果得到最终的识别结果,充分挖掘车辆特征的局部表达能力,进而提高车辆识别的鲁棒性。
[0080]
上述预设数量的第一识别结果,与上述预设数量的车辆拆分特征在数量上也是相同的。
[0081]
举例来说,以目标车辆特征为512维特征向量为例,若将目标车辆特征拆分为3个车辆拆分特征,若将目标车辆特征拆分为3个车辆拆分特征,可以是拆分前128维为第一个车辆拆分特征、拆分128维到第256维为第二个车辆拆分特征、拆分256维到第512维为第三个车辆拆分特征。学习器的数量为也3个,将第一个车辆拆分特征输入第一个学习器中,得到第一个第一识别结果,将第二个车辆拆分特征输入到第二个学习器中,得到第二个第一识别结果,将第三个车辆拆分特征输入到第三个学习器中,得到第三个第一识别结果。
[0082]
在本发明实施例中,上述学习器为根据全连接层拆分得到的多个学习器,每个学习器对应包含对应的类别矩阵,用于对车辆拆分特征进行分类识别。
[0083]
在前向推理的过程中,上述的多个学习器可以是并行关系,在对目标车辆特征进行拆分后,将各个车辆拆分特征分别输入到对应的学习器中即可。
[0084]
在训练的过程中,上述的多个学习器可以是串行关系,这样可以通过各个车辆拆
分特征之间的空间序列关系,加强各个学习器对目标车辆特征整体关系的依赖,从而提高各个学习器的识别准确度。
[0085]
104、对第一识别结果进行后处理,得到第二识别结果,将第二识别结果做为车辆识别结果进行输出。
[0086]
在本发明实施例中,上述的第一识别结果与车辆拆分特征的数量相同,即为预设数量个第一识别结果,该预设数量为大于等于2的。
[0087]
上述的后处理指的是将多个第一识别结果进行整合,以得到一个第二识别结果作为最终的车辆识别结果。
[0088]
上述的后处理可以是对第一识别结果进行拼接,拼接的顺序可以是按车辆拆分特征的拆分顺序进行。则第二识别结果由第一识别结果拼接而成,进一步的,第二识别结果也可以是由第一识别结果拼接后,再对拼接后的第一识别结果进行逻辑回归得到,可以理解为对拼接后的第一识别结果再进行一次全连接计算。比如,将第一个车辆拆分特征输入第一个学习器中,得到第一识别向量作为第一个第一识别结果,将第二个车辆拆分特征输入到第二个学习器中,得到第二识别向量作为第二个第一识别结果,将第三个车辆拆分特征输入到第三个学习器中,得到第三识别向量作为第三个第一识别结果。将第一识别向量、第二识别向量、第三识别向量进行拼接后,得到结果识别向量,将结果识别向量输入到全连接层再进行分类识别,输出最终的识别结果作为第二识别结果。
[0089]
在一些可能的实施例中,上述的后处理也可以是对第一识别结果的平均结果,或者是对第一识别结果的投票结果。
[0090]
上述的第二识别结果根据不同的应用场景有一不同的表达形式,比如车辆识别,可以得到车辆的颜色、型号等作为车辆识别结果。对应车辆重识别(reid),可以得到对应的车辆的预测id,用于表明车辆身份。
[0091]
本发明实施例中,提取待识别车辆图像中的目标车辆特征;将所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征;将所述车辆拆分特征分别输入预设的学习器中,对所述车辆拆分特征进行识别,得到预设数量的第一识别结果,其中,所述学习器根据全连接层进行拆分得到,所述学习器与所述车辆拆分特征的数量相同;对所述第一识别结果进行后处理,得到第二识别结果,将所述第二识别结果做为车辆识别结果进行输出。通过将全连接层拆分为预设数量的学习器,来对车辆拆分特征进行识别,将原本单一的识别结果,通过多个第一识别结果所在维度来共同表示,使得识别结果更加鲁棒,还可以充分利用现有车辆特征的表达能力,从而不需要通过增加额外特征提取网络计算量就可以提高识别准确率。
[0092]
需要说明的是,本发明实施例提供的车辆识别方法可以应用于可以进行车辆识别的手机、监控器、计算机、服务器、计算机外部设备等设备。
[0093]
请参见图2,图2是本发明实施例提供的一种深度神经网络训练方法的流程图,该深度神经网络训练方法用于上述车辆识别方法,如图2所示,深度神经网络训练方法包括以下步骤:
[0094]
201、获取车辆图像训练集。
[0095]
其中,车辆图像训练集中包括多张车辆图像作为训练样本,上述的车辆图像训练集中的车辆图像可以是rgb图像,也可以是灰度图像,在此,并不做具体限定。
[0096]
202、基于车辆图像训练集,对待训练的深度神经网络进行训练。
[0097]
其中,上述深度神经网络中包括车辆特征提取器以及多个学习器,在待训练的深度神经网络完成训练后,得到预设的多个学习器。
[0098]
上述的车辆特征提取器可以由多层的卷积计算层构成,用于提取图像的抽象特征表达。
[0099]
上述的多个学习器可以由深度神经网络中的全连接层拆分得到,用于对车辆拆分特征进行分类识别。
[0100]
具体的,请参见图3,图3是本发明实施例提供的另一种深度神经网络训练方法的流程图,如图3所示,上述步骤202具体包括:
[0101]
301、通过车辆特征提取器,提取车辆图像训练集中车辆图像的训练特征。
[0102]
在本发明实施例中,车辆特征提取器可以由多层的卷积计算层构成,通过各卷积计算层的卷积核对训练集中车辆图像进行计算,提取出抽象的训练特征。该训练特征也可以称为训练特征向量。提取到的训练特征可以是预设维度数的特征向量,比如1024维、512维、256维等维度的特征向量。
[0103]
302、将训练特征进行拆分,得到预设数量的训练拆分特征。
[0104]
在本发明实施例中,上述训练特征指的是根据车辆图像训练集中的车辆图像提取到的特征向量,上述将训练特征进行拆分,可以是对特征向量的拆分,即是将一个高维度的特征向量,拆分为多个低维度的特征向量(即是上述的训练拆分特征)。进一步的,本发明实施例可以是按训练特征的维度信息,对训练特征进行拆分,得到预设数量的训练拆分特征。
[0105]
上述的预设数量可以根据具体的情况进行设定,也可以是开发人员设定的默认值。需要说明的是,上述的预设数量为大于等于2的整数值。
[0106]
在一种可能的实施例中,上述的预设数量可以多个预设值,用户可以在交互界面中选取不同的预设值用来对训练特征拆分。比如:预设值可以设置为2、3、4、5等值,当用户在交互界面选择预设值为2时,则会将训练特征拆分为2个训练拆分特征;当用户在交互界面选择预设值为3时,则会将训练特征拆分为3个训练拆分特征。
[0107]
具体的拆分方式可以是根据训练特征的维度,将训练特征拆分为多个低维度的训练拆分特征,所有低维度的训练拆分特征的维度总和为训练特征的维度。以训练特征为512维特征向量来说,若将训练特征拆分为2个训练拆分特征,可以是拆分为2个256维的训练拆分特征;若将训练特征拆分为3个训练拆分特征,可以是拆分为128维、128维、256维的3个训练拆分特征。
[0108]
进一步的,可以是按训练特征的维度进行顺序拆分,比如,以训练特征为512维特征向量来说,若将训练特征拆分为3个训练拆分特征,可以是拆分前128维为第一个训练拆分特征、拆分128维到第256维为第二个训练拆分特征、拆分256维到第512维为第三个训练拆分特征。这样,可以将训练拆分特征按顺序进行拼接,就可以得到原来的训练特征。
[0109]
303、基于训练拆分特征,对待训练的深度神经网络中对应的学习器进行训练。
[0110]
在本发明实施例中,待训练的学习器根据训练拆分特征的数量对全连接层进行拆分得到,上述学习器与上述训练拆分特征的数量相同。具体的,可以根据训练拆分特征的数量将全连接层拆分为对应的数量的学习器,使用多个学习器的组合代替原本的全连接层,再根据多个学习器的识别结果得到最终的结果。在训练完成后,通过对应的学习器来进行
识别,可以得到多个学习器的识别结果,再通过多个学习器的识别结果得到最终的识别结果,充分挖掘特征向量的局部表达能力,进而提高车辆识别的鲁棒性。
[0111]
举例来说,以训练特征为512维特征向量为例,若将训练特征拆分为3个训练拆分特征,若将训练特征拆分为3个训练拆分特征,可以是拆分前128维为第一个训练拆分特征、拆分128维到第256维为第二个训练拆分特征、拆分256维到第512维为第三个训练拆分特征。学习器的数量为也3个,将第一个训练拆分特征输入第一个学习器中,得到第一个第一训练结果,将第二个训练拆分特征输入到第二个学习器中,得到第二个第一训练结果,将第三个训练拆分特征输入到第三个学习器中,得到第三个第一训练结果。
[0112]
在一种训练方式中,先初始化各个学习器的初始权重,根据第一训练结果,计算各个学习器的错误率,根据各个学习器的错误率所占比例,对各个学习器的权重进行更改,错误率大的学习器,分配更多的权重,以重点训练错误率大的学习器。每一轮的训练,都会根据各个学习器的错误率所占比例进行权重的分配,直到各个学习器的错误率符合预设的错误率为止,则停止训练,得到训练好的学习器,进而得到训练好的深度神经网络。
[0113]
在本发明实施例中,根据第一训练结果,计算各个学习器的损失,根据各个学习器的损失进行反向求偏导,更新各个学习器的权重。
[0114]
在训练的过程中,上述的多个学习器可以是串行关系,这样可以通过各个车辆拆分特征之间的空间序列关系,加强各个学习器对目标车辆特征整体关系的依赖,从而提高各个学习器的识别准确度。
[0115]
进一步的,可以获取上一学习器的学习权重;根据当前训练拆分特征,计算当前学习器的当前损失;根据上一学习器的学习权重以及当前学习器的当前损失,计算当前学习器的学习权重。在当前学习器为第一个学习器时,上一学习器的学习权重可以是初始值或者上一轮训练中最后一个学习器的学习权重。
[0116]
举例来说,将全连接层拆开为3个学习器,假设为学习器a1、学习器b1、学习器c1,对应的提取到的训练特征为abc,也拆分为3个训练拆分特征,分别为训练拆分特征a、训练拆分特征b、训练拆分特征c,其中,上述训练特征abc可以理解为一个整体连续特征,上述训练拆分特征a、训练拆分特征b、训练拆分特征c可以理解为三个独立子特征。将训练拆分特征a输入到学习器a1,并计算对应的损失a,根据该损失a反向求偏导,更新学习器a1对应的学习权重,得到学习权重w1。将训练拆分特征b输入学习器b1,并计算对应的损失b,根据该损失b以及上一学习器的学习权重w1的乘积w1
×
b反向求偏导,更新学习器b1对应的学习权重,得到w2。将训练拆分特征c输入学习器c1,并计算对应的损失c,根据该损失c以及上一学习器的学习权重w2的乘积w2
×
c反向求偏导,更新学习器c1对应的学习权重,得到w3。可以通过计算出的损失a、损失b、损失c计算总的损失,作为深度神经网络的总损失来对应深度神经网络进行反向传播,以训练该深度神经网络。
[0117]
需要说明的是,上述的损失指的是在训练过程中,通过学习器得到的值与训练集中预先准备的标签值的差别,比如,对于车辆图像a2来说,在训练集中预先准备的标签值为y=1,在训练过程中,学习器得到的训练结果为a2,预设的损失函数为l=f(y,a2),根据该损失函数,即可算出对应的损失值。
[0118]
可选的,请参见图4,图4是本发明实施例提供的另一种深度神经网络训练方法的流程图,与图3实施例不同的是,车辆图像训练集中包括多组车辆图像,每组车辆图像中至
少包括第一车辆图像以及第二车辆图像,如图4所示,上述步骤202具体包括:
[0119]
401、提取第一车辆图像中的第一训练特征,以及提取第二车辆图像中的第二训练特征。
[0120]
在本发明实施例中,车辆特征提取器可以由多层的卷积计算层构成,通过各卷积计算层的卷积核对训练集中车辆图像进行计算,提取出抽象的训练特征。该训练特征也可以称为训练特征向量。提取到的训练特征可以是预设维度数的特征向量,比如1024维、512维、256维等维度的特征向量。
[0121]
需要说明的是,第一训练特征与第二训练特征是同一车辆特征提取器所提取,所以得到的训练特征的维度是相同的。
[0122]
402、将第一训练特征以及第二训练特征分别进行拆分,得到预设数量的第一训练拆分特征以及相同数量的第二训练拆分特征。
[0123]
在本发明实施例中,上述第一训练特征的拆分方式与上述第二训练特征的拆分方式相同上述第一训练特征指的是根据车辆图像训练集中的第一车辆图像提取到的特征向量,上述将第一训练特征进行拆分,可以是对特征向量的拆分,即是将一个高维度的特征向量,拆分为多个低维度的特征向量(即是上述的训练拆分特征)。进一步的,本发明实施例可以是按第一训练特征的维度信息,对第一训练特征进行拆分,得到预设数量的第一训练拆分特征。
[0124]
上述的预设数量可以根据具体的情况进行设定,也可以是开发人员设定的默认值。需要说明的是,上述的预设数量为大于等于2的整数值。
[0125]
在一种可能的实施例中,上述的预设数量可以多个预设值,用户可以在交互界面中选取不同的预设值用来对第一训练特征拆分。比如:预设值可以设置为2、3、4、5等值,当用户在交互界面选择预设值为2时,则会将第一训练特征拆分为2个第一训练拆分特征;当用户在交互界面选择预设值为3时,则会将训练特征拆分为3个第一训练拆分特征。
[0126]
具体的拆分方式可以是根据第一训练特征的维度,将第一训练特征拆分为多个低维度的第一训练拆分特征,所有低维度的第一训练拆分特征的维度总和为第一训练特征的维度。以训练特征为512维特征向量来说,若将第一训练特征拆分为2个第一训练拆分特征,可以是拆分为2个256维的第一训练拆分特征;若将第一训练特征拆分为3个第一训练拆分特征,可以是拆分为128维、128维、256维的3个第一训练拆分特征。
[0127]
进一步的,可以是按第一训练特征的维度进行顺序拆分,比如,以第一训练特征为512维特征向量来说,若将第一训练特征拆分为3个第一训练拆分特征,可以是拆分前128维为第一个第一训练拆分特征、拆分128维到第256维为第二个第一训练拆分特征、拆分256维到第512维为第三个第一训练拆分特征。这样,可以将第一训练拆分特征按顺序进行拼接,就可以得到原来的第一训练特征。
[0128]
同样,上述第一训练特征指的是根据车辆图像训练集中的第一车辆图像提取到的特征向量,上述将第二训练特征进行拆分的方式,可以是与第一训练特征相同的方式,此处不再赘述。
[0129]
403、基于第一训练拆分特征以及第二训练拆分特征,对待训练的深度神经网络中对应的学习器进行训练。
[0130]
在本发明实施例中,上述第一训练拆分特征与第二训练拆分特征的数量是相同
的,待训练的学习器根据训练拆分特征的数量对全连接层进行拆分得到,上述学习器与上述第一训练拆分特征或第二训练拆分特征的数量相同。具体的,可以根据第一训练拆分特征或第二训练拆分特征的数量将全连接层拆分为对应的数量的学习器,使用多个学习器的组合代替原本的全连接层,再根据多个学习器的识别结果得到最终的结果。将第一训练特征和第二训练特征拆分,在训练完成后,通过对应的学习器来进行识别,可以得到多个学习器的识别结果,再通过多个学习器的识别结果得到最终的识别结果,充分挖掘特征向量的局部表达能力,进而提高车辆识别的鲁棒性。
[0131]
举例来说,以第一训练特征a1b1c1以及第二训练特征a2b2c2均为512维特征向量为例,若将第一训练特征拆分为3个第一训练拆分特征。相同的,将第二训练特征拆分为3个第二训练拆分特征。若将第一训练特征拆分为3个第一训练拆分特征,可以是拆分前128维为第一个第一训练拆分特征a1、拆分128维到第256维为第二个第一训练拆分特征b1、拆分256维到第512维为第三个第一训练拆分特征c1;相同的,将第二训练特征拆分为3个第二训练拆分特征,可以是拆分前128维为第一个第二训练拆分特征a2、拆分128维到第256维为第二个第二训练拆分特征b2、拆分256维到第512维为第三个第二训练拆分特征c2。学习器的数量为也3个,将第一个第一训练拆分特征a1以及第一个第二训练拆分特征输入a2第一个学习器中,得到第一个第二训练结果,将第二个第一训练拆分特征b1以及第二个第二训练拆分特征b2输入到第二个学习器中,得到第二个第二训练结果,将第三个第一训练拆分特征c1以及第三个第二训练拆分特征c2输入到第三个学习器中,得到第三个第二训练结果。
[0132]
上述的第二训练结果包括各个学习器对应的损失值,该损失值通过预设的损失函数进行计算。
[0133]
可选的,请参见图5,图5本发明实施例提供一种损失值计算方法的流程图,该损失值计算方法可以用于图4实施例中的各个学习器,如图5所示,损失值计算方法包括:
[0134]
501、获取第一超参数α以及第二超参数β。
[0135]
其中,第一超参数α以及第二超参数β为预先进行设置的,用户可以通过交互界面对第一超参数α以及第二超参数β进行更改调整。
[0136]
502、计算当前第一训练拆分特征与当前第二训练拆分特征的当前相似度s。
[0137]
举例来说,第一训练拆分特征分别为a1、b1、c1,第二训练拆分特征分别为a2、b2、c2,若当前第一训练拆分特征为a1,则当前第二训练拆分特征为a2,计算a1与a2的相似度s。
[0138]
503、根据所述第一超参数α、第二超参数β以及当前相似度s,计算当前学习器的损失l。
[0139]
具体的,可以通过下述的式子来计算当前学习器的损失l:
[0140]
l=log(1+e-α(s-β)
)
[0141]
其中,上述的式子中包括第一超参数α,第二超参数β以及当前相似度s。更具体的,上述的第一超参数α可以是0到1之间的小数,第二超参数β为大于等于1的任意整数。本发明实施例中,第一超参数α优选为0.5,第二超参数β优选为2.0。
[0142]
在一种可能的实施例中,根据所述第一超参数α、第二超参数β、第一参数y、第二参数c以及当前相似度s,计算当前学习器的损失l,具体可以根据当前相似度s,确定第一参数y以及第二参数c,此时,可以通过下述的式子来计算当前学习器的损失l:
[0143]
l=log(1+e-(2y-1)α(s-β)c
)
[0144]
其中,上述的式子中包括第一超参数α,第二超参数β、第一参数y、第二参数c以及当前相似度s。更具体的,上述的第一超参数α可以是0到1之间的小数,第二超参数β为大于等于1的任意整数。本发明实施例中,第一超参数α优选为0.5,第二超参数β优选为2.0。通过增加第一参数y以及第二参数c可以防止学习器过拟合。
[0145]
其中,上述第一参数y、第二参数c可以通过判断当前相似度s是否大于预设的相似度阈值,若当前相似度s大于相似度阈值,则确定第一参数y为第一预设值,以及确定第二参数c为第三预设值。
[0146]
若当前相似度小于相似度阈值,则确定第一参数y为第二预设值,以及确定第二参数c为第四预设值。
[0147]
其中,上述的第一参数y可以是0或1,即第一预设值为0或1,第二预设值为1或0。在本发明实施例中,第一预设值优选为1,第二预设值优选为0。
[0148]
上述的第二参数c为大于等于的整数,在本发明实施例中,第三预设值优选为1,第四预设值优选为25。
[0149]
具体来说,若当前相似度s大于相似度阈值,则第一参数y为1,第二参数c为1;若当前相似度s小于相似度阈值,则第一参数y为0,第二参数c为25。
[0150]
基于当前学习器的损失,对所述当前学习器进行训练。
[0151]
本发明实施例中,通过将全连接层拆分为预设数量的学习器,来对车辆拆分特征进行识别,将原本单一的识别结果,通过多个第一识别结果所在维度来共同表示,使得识别结果更加鲁棒,还可以充分利用现有车辆特征的表达能力,从而不需要通过增加额外特征提取网络计算量就可以提高识别准确率。
[0152]
本发明在车辆重识别数据集上进行测试,在该数据集中,包括车辆样本图像以及对应的车辆id,通过对车辆样本图像进行识别,输出的识别结果为车辆id,数据集分为三个规格,大数据集2400id,中数据集1600id,小数据集800id,对照组为全连接层作分类识别的深度神经网络inceptionv1,本发明则是对inceptionv1的全连接层进行拆分,得到多个学习器,并对提取的车辆特征也进行拆分,结合实施例4进行训练。
[0153]
对比结果如表1所示:
[0154] 2400id1600id800id本方案前1召回率0.7600.7930.826本方案前5召回率0.9060.8830.864inceptionv1前1召回率0.6790.7300.780inceptionv1前5召回率0.8750.8470.824
[0155]
表1
[0156]
其中,上述的前1召回率指的是检索出排第一的id中有正确id的准确率,上述的前5召回率指的是检索出排前5的id中有正确id的准确率。可以看出,通过多个学习器代替全连接层后,车辆重识别的准确率提高。并且,不用增加额外特征提取网络计算量。
[0157]
请参见图6,图6是本发明实施例提供的一种车辆识别装置的结构示意图,如图6所示,所述装置包括:
[0158]
提取模块601,用于提取待识别车辆图像中的目标车辆特征;
[0159]
拆分模块602,用于将所述目标车辆特征进行拆分,得到预设数量的车辆拆分特
征;
[0160]
第一处理模块603,用于将所述车辆拆分特征分别输入预设的学习器中,对所述车辆拆分特征进行识别,得到预设数量的第一识别结果,其中,所述学习器根据全连接层进行拆分得到,所述学习器与所述车辆拆分特征的数量相同;
[0161]
第二处理模块604,用于对所述第一识别结果进行后处理,得到第二识别结果,将所述第二识别结果做为车辆识别结果进行输出。
[0162]
可选的,所述拆分模块602还用于按所述目标车辆特征的维度信息,对所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征。
[0163]
可选的,如图7所示,所述第二处理模块604包括:
[0164]
拼接子模块6041,用于将第一识别结果按所述学习器的顺序进行拼接,得到第二识别结果;
[0165]
输出子模块6042,用于将所述第二识别结果做为车辆识别结果进行输出。
[0166]
可选的,如图8所示,所述装置还包括:
[0167]
获取模块605,用于获取车辆图像训练集,所述车辆图像训练集中包括车辆图像;
[0168]
训练模块606,用于基于所述车辆图像训练集,对待训练的深度神经网络进行训练,所述深度神经网络中包括多个学习器,在待训练的深度神经网络完成训练后,得到预设的多个学习器。
[0169]
可选的,如图9所示,所述深度神经网络中包括车辆特征提取器,所述训练模块606,包括:
[0170]
第一提取子模块6061,用于通过所述车辆特征提取器,提取车辆图像训练集中车辆图像的训练特征;
[0171]
第一拆分子模块6062,用于将所述训练特征进行拆分,得到预设数量的训练拆分特征;
[0172]
第一训练子模块6063,用于基于所述训练拆分特征,对所述待训练的深度神经网络中对应的学习器进行训练。
[0173]
可选的,如图10所示,所述第一训练子模块6063包括:
[0174]
第一获取单元60631,用于获取上一学习器的学习权重;
[0175]
第一计算单元60632,用于根据当前训练拆分特征,计算当前学习器的当前损失;
[0176]
第二计算单元60633,用于根据所述上一学习器的学习权重以及所述当前学习器的当前损失,计算当前学习器的学习权重。
[0177]
可选的,如图11所示,车辆图像训练集中包括多组车辆图像,每组车辆图像中至少包括第一车辆图像以及第二车辆图像,所述训练模块606包括:
[0178]
第二提取子模块6064,用于提取所述第一车辆图像中的第一训练特征,以及提取所述第二车辆图像中的第二训练特征;
[0179]
第二拆分子模块6065,用于将所述第一训练特征以及所述第二训练特征分别进行拆分,得到预设数量的第一训练拆分特征以及相同数量的第二训练拆分特征,所述第一训练特征的拆分方式与所述第二训练特征的拆分方式相同;
[0180]
第二训练子模块6066,用于基于所述第一训练拆分特征以及所述第二训练拆分特征,对待训练的深度神经网络中对应的学习器进行训练。
[0181]
可选的,如图12所示,所述第二训练子模块6066包括:
[0182]
第二获取单元60661,用于获取第一超参数以及第二超参数;
[0183]
第三计算单元60662,用于计算当前第一训练拆分特征与当前第二训练拆分特征的当前相似度;
[0184]
第四计算单元60663,用于根据所述第一超参数、所述第二超参数以及所述当前相似度,计算当前学习器的损失;
[0185]
训练单元60664,用于基于所述当前学习器的损失,对所述当前学习器进行训练。
[0186]
可选的,如图13所示,所述第二训练子模块6066还包括:
[0187]
确定单元60665,用于根据所述当前相似度,确定第一参数以及第二参数;
[0188]
第四计算单元60663还用于根据所述第一超参数、所述第二超参数、所述第一参数、所述第二参数以及所述当前相似度,计算当前学习器的损失。
[0189]
可选的,如图14所示,所述确定单元60665包括:
[0190]
判断子单元606651,用于判断所述当前相似度是否大于预设的相似度阈值;
[0191]
第一确定子单元606652,用于若所述当前相似度大于所述相似度阈值,则确定所述第一参数为第一预设值,以及确定所述第二参数为第三预设值;
[0192]
第二确定子单元606653,用于若所述当前相似度小于所述相似度阈值,则确定所述第一参数为第二预设值,以及确定所述第二参数为第四预设值。
[0193]
需要说明的是,本发明实施例提供的车辆识别装置可以应用于可以进行车辆识别的手机、监控器、计算机、服务器、计算机外部设备等设备。
[0194]
本发明实施例提供的车辆识别装置能够实现上述方法实施例中车辆识别方法实现的各个过程,且可以达到相同的有益效果。为避免重复,这里不再赘述。
[0195]
参见图15,图15是本发明实施例提供的一种电子设备的结构示意图,如图15所示,包括:存储器1502、处理器1501及存储在所述存储器1502上并可在所述处理器1501上运行的计算机程序,其中:
[0196]
处理器1501用于调用存储器1502存储的计算机程序,执行如下步骤:
[0197]
提取待识别车辆图像中的目标车辆特征;
[0198]
将所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征;
[0199]
将所述车辆拆分特征分别输入预设的学习器中,对所述车辆拆分特征进行识别,得到预设数量的第一识别结果,其中,所述学习器根据全连接层进行拆分得到,所述学习器与所述车辆拆分特征的数量相同;
[0200]
对所述第一识别结果进行后处理,得到第二识别结果,将所述第二识别结果做为车辆识别结果进行输出。
[0201]
可选的,处理器1501执行的所述将所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征,包括:
[0202]
按所述目标车辆特征的维度信息,对所述目标车辆特征进行拆分,得到预设数量的车辆拆分特征。
[0203]
可选的,处理器1501执行的所述对所述第一识别结果进行后处理,得到第二识别结果,将所述第二识别结果做为车辆识别结果进行输出,包括:
[0204]
将第一识别结果按所述学习器的顺序进行拼接,得到第二识别结果;
[0205]
将所述第二识别结果做为车辆识别结果进行输出。
[0206]
可选的,处理器1501还执行包括:
[0207]
获取车辆图像训练集,所述车辆图像训练集中包括车辆图像;
[0208]
基于所述车辆图像训练集,对待训练的深度神经网络进行训练,所述深度神经网络中包括多个学习器,在待训练的深度神经网络完成训练后,得到预设的多个学习器。
[0209]
可选的,所述深度神经网络中包括车辆特征提取器,处理器1501执行的所述基于所述车辆图像训练集,对待训练的深度神经网络进行训练,包括:
[0210]
通过所述车辆特征提取器,提取车辆图像训练集中车辆图像的训练特征;
[0211]
将所述训练特征进行拆分,得到预设数量的训练拆分特征;
[0212]
基于所述训练拆分特征,对所述待训练的深度神经网络中对应的学习器进行训练。
[0213]
可选的,处理器1501执行的所述基于所述训练拆分特征,对所述待训练的深度神经网络中对应的学习器进行训练,包括:
[0214]
获取上一学习器的学习权重;
[0215]
根据当前训练拆分特征,计算当前学习器的当前损失;
[0216]
根据所述上一学习器的学习权重以及所述当前学习器的当前损失,计算当前学习器的学习权重。
[0217]
可选的,车辆图像训练集中包括多组车辆图像,每组车辆图像中至少包括第一车辆图像以及第二车辆图像,处理器1501执行的所述基于所述车辆图像训练集,对待训练的深度神经网络进行训练,包括:
[0218]
提取所述第一车辆图像中的第一训练特征,以及提取所述第二车辆图像中的第二训练特征;
[0219]
将所述第一训练特征以及所述第二训练特征分别进行拆分,得到预设数量的第一训练拆分特征以及相同数量的第二训练拆分特征,所述第一训练特征的拆分方式与所述第二训练特征的拆分方式相同;
[0220]
基于所述第一训练拆分特征以及所述第二训练拆分特征,对待训练的深度神经网络中对应的学习器进行训练。
[0221]
可选的,处理器1501执行的所述基于所述第一训练拆分特征以及所述第二训练拆分特征,对待训练的深度神经网络中对应的学习器进行训练,包括:
[0222]
获取第一超参数以及第二超参数;
[0223]
计算当前第一训练拆分特征与当前第二训练拆分特征的当前相似度;
[0224]
根据所述第一超参数、所述第二超参数以及所述当前相似度,计算当前学习器的损失;
[0225]
基于所述当前学习器的损失,对所述当前学习器进行训练。
[0226]
可选的,在所述根据所述第一超参数、所述第二超参数以及所述当前相似度,计算当前学习器的损失之前,处理器1501还执行包括:
[0227]
根据所述当前相似度,确定第一参数以及第二参数;
[0228]
处理器1501执行的所述根据所述第一超参数、所述第二超参数以及所述当前相似度,计算当前学习器的损失,包括:
[0229]
根据所述第一超参数、所述第二超参数、所述第一参数、所述第二参数以及所述当前相似度,计算当前学习器的损失。
[0230]
可选的,处理器1501执行的所述根据所述当前相似度,确定第一参数以及第二参数,包括:
[0231]
判断所述当前相似度是否大于预设的相似度阈值;
[0232]
若所述当前相似度大于所述相似度阈值,则确定所述第一参数为第一预设值,以及确定所述第二参数为第三预设值;
[0233]
若所述当前相似度小于所述相似度阈值,则确定所述第一参数为第二预设值,以及确定所述第二参数为第四预设值。
[0234]
需要说明的是,上述电子设备可以是可以应用于可以进行车辆识别的手机、监控器、计算机、服务器、计算机外部设备等设备。
[0235]
本发明实施例提供的电子设备能够实现上述方法实施例中车辆识别方法实现的各个过程,且可以达到相同的有益效果,为避免重复,这里不再赘述。
[0236]
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现本发明实施例提供的车辆识别方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0237]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存取存储器(random access memory,简称ram)等。
[0238]
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1