一种基于卷积神经网络的车型识别方法、装置及设备与流程

文档序号:15047890发布日期:2018-07-27 23:07阅读:188来源:国知局

本申请涉及机器视觉技术领域,尤其涉及一种基于卷积神经网络的车型识别方法、装置及设备。



背景技术:

随着城市的建设与社会的发展,街道中车辆数量在不断增加,道路状况越来越复杂,交通管理面临着多方面的挑战——车辆拥堵、交通事故、道路障碍等。仅仅依靠制定相关法规和相关部门进行人工监控是远远不够的,因此需要一个切实有效的解决方案。构建智能交通系统则是一个行之有效的方法,同时也是现在城市交通发展的趋势。

车辆的检测和识别是智能交通系统的技术核心,车辆识别在车辆管理、车辆违规逃逸、车辆巡查等诸多问题上都起着关键作用。

现有技术方案中,会通过空间金字塔方法识别车型;识别过程中,需要将图像中车灯、车前窗、车标等关键部位的图像分割出来,针对不同部位使用不同的卷积神经网络特征提取,根据提起到的特征得到最终的车辆车型。

然而,使用现有技术识别车型时,不仅需要预先训练多个卷积神经网络,而且在对图像分割过程中造成误差,影响了识别结果的准确性。



技术实现要素:

本说明书实施例提供一种基于卷积神经网络的车型识别方法、装置及设备,以通过提取完整车辆图像中的特征,准确快速的识别车辆图像中车辆的车型。

本说明书实施例提供的一种基于卷积神经网络的车型识别方法,具体包括:

利用第一数量的卷积层单元提取待识别车辆图像的局部特征;

基于所述局部特征,利用第二数量的卷积层单元提取待识别车辆图像的全局特征;

根据所述局部特征和全局特征,并利用所述分类层识别所述车辆图像中车辆的车型。

此外,本实施例还提供了一种基于卷积神经网络的车型识别装置,具体包括:

局部特征提取模块,用于利用第一数量的卷积层单元提取待识别车辆图像的局部特征;

全局特征提取模块,用于基于所述局部特征,利用第二数量的卷积层单元提取待识别车辆图像的全局特征;

车型识别模块,用于根据所述局部特征和全局特征,并利用所述分类层识别所述车辆图像中车辆的车型。

此外,本实施例还提供了一种基于卷积神经网络的车型识别设备,具体包括:

存储器,存储基于卷积神经网络的车型识别程序;

通讯接口,接收特征的提取请求;

处理器,在通讯接口接收到接收特征的提取请求后,调用存储器中存储的基于卷积神经网络的车型识别程序,并执行:

利用第一数量的卷积层单元提取待识别车辆图像的局部特征;

基于所述局部特征,利用第二数量的卷积层单元提取待识别车辆图像的全局特征;

根据所述局部特征和全局特征,并利用所述分类层识别所述车辆图像中车辆的车型。

本说明书实施例采用上述至少一个技术方案能够达到以下有益效果:

利用卷积神经网络中的卷积层单元从待识别车辆图像中提取到的局部特征和全局特征,并将局部特征和全局特征输入至分类层,进而在识别车型中可以同时兼顾待识别车辆图像的局部特征和全局特征,避免了因特征过于单一,而丢失特征细节信息并导致的准确度下降的弊端,提高了识别结果的准确性。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本说明书实施例提供的基于卷积神经网络的车型识别方法流程图;

图2为本说明书实施例提供的另一种基于卷积神经网络的车型识别方法流程图;

图3为本说明书实施例提供的卷积神经网络结构示意图;

图4是本说明书实施例提供的卷积神经网络中卷积层单元的结构示意图;

图5是本说明书实施例提供的用于基于卷积神经网络的车型识别装置结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本说明书实施例中提供的基于卷积神经网络的车型识别方法,如图1所示,具体包括以下部分:

步骤s100、利用第一数量的卷积层单元提取待识别车辆图像的局部特征。

本实施例中所述的车型识别方法用于识别待识别车辆图像的中汽车的车型,可以在终端中执行,也可以在本地服务器或云端服务器中执行。

其中,所述待识别车辆图像可以是任意不同车型车辆的图像,例如,可以是不同品牌的车辆图像,可以是相同品牌不同年份的车辆图像;可以车辆外形的整体图像,也可以是车辆外形的部分图像,例如车脸图像、车尾图像,或车身图像。

本实施例中所述的卷积神经网络包括若干数量的卷积层单元和至少一个分类层,所述卷积层单元用于提取待识别车辆图像的特征,所述分类层可以利用提取到特征,识别车辆的类型。具体的,所述卷积层单元包括至少一个池化层和至少一个分支卷积层。

所述局部特征用于表示待识别车辆图像中车灯、车标、车后备箱、车窗等特征表达。本实施在完成局部特征的提取操作之后,会将局部特征输入至分类层,以使分类层在识别车型时,将局部特征作为参考,进而提高识别结果的准确率。

可以选择的,本实施例中用于提取局部特征的卷积层单元的数量,可以根据该卷积神经网络的识别能力或识别结果的准确率设置,本实施例在此处不做限定。

步骤s102、基于所述局部特征,利用第二数量的卷积层单元提取待识别车辆图像的全局特征。

其中,所述全局特征可以用来表示待识别车辆图像中由多个特征表达组合而成的特征表达,相较于局部特征,所述全局特征表示的特征更为全面、完整的特征。同样的,本实施例对用于提取局部特征的卷积层单元的数量也不做具体限定。

具体的,所述第一数量的卷积层单元与所述第二数量的卷积层单元串联于卷积神经网络中,本实施例中提取局部特征完毕后,会将所述局部特征输入至所述第二数量的卷积层单元,第二数量的卷积层数量可以将局部特征作为输入,提取全局特征。

步骤s104、根据所述局部特征和全局特征,并利用所述分类层识别所述车辆图像中车辆的车型。

具体的,本实施例中第一数量的卷积层单元与第二数量的卷积层单元分别串联于所述分类层,这样设置的好处在于,可以将局部特征和全局特征直接输入至分类层中,使得分类层识别车型时,可以将局部特征和全局特征作为参考,并充分利用这两种特征所携带的信息,以获得更好的车型识别性能。

需要说明的是,卷积神经网络中用于提取局部特征和全局特征的卷积层单元的结构模型的结构可以是相同的,也可以是不同的。

在一些实施例中,还提供了另外一种基于卷积神经网络的车型识别方法。如图2所示,该车型识别方法具体包括:

步骤s201、预先训练所述卷积神经网络。

本实施例中,需要预先训练卷积神经网络。具体的,可以通过设计卷积与池化层、全连接层和分类器等步骤来构建车型识别的卷积神经网络,其中,卷积层单元用来提取车型特征,分类器用来车型分类识别;可以利用包含不同车型特征的车辆图像训练该卷积神经网络,训练方式可以是使用带标签的数据进行的有监督的学习,并用随机梯度下降法进行权重参数矩阵和偏移量的调整;得到训练好的各层中的权重参数矩阵和偏移量,把它们对应地赋值给该卷积神经网络中的各个层,此时,该卷积神经网络就具有车型特征提取及识别的功能。训练过程中,所使用的车辆图片数量越多,训练所得到的卷积神经网络的性能越强。

步骤s203、接收所述待识别车辆图像。

步骤s205、预处理所述待识别车辆图像。

为了确保输入卷积神经网络中待识别车辆图像所需满足输入条件(例如,图像尺度、图像清晰度),本实施例中会预处理待识别车辆图像,预处理操作可以包括裁剪,转换为灰度图、下采样、亮度标准化、对比度标准化和/或补零等操作。

步骤s207、利用第三数量的卷积层单元提取待识别车辆图像的局部低级特征。

本实施例中所述的局部特征可以包括局部低级特征和局部高级特征,其中,局部低级特征用于表示局部特征中比较次要、边缘化的特征表达,例如车灯、车标、车后备箱、车窗等大致轮廓或颜色等特征表达。本实施例中用于提取所述局部低级特征的卷积层单元的数量即第三数量,小于所述第二数量。

步骤s209、基于所述局部低级特征,利用第四数量的卷积层单元提取待识别车辆图像的局部高级特征。

相较于所述局部低级特征,局部高级特征所表示的特征则时更为具体和完整,例如可以是用于表示车灯、车标、车后备箱、车窗等组件的形状细节等特征表达。

具体的,本实施例所述的第三数量的卷积层单元与所述第四数量的卷积层单元分别串联,这样设置的好处在于,提取到的局部低级特征可以直接输入至第四数量的卷积层单元,并将局部低级特征作为参考,以提取到携带更为完整、具体信息的局部高级特征。本实施例中用于提取所述局部低级特征的卷积层单元的数量即第四数量,小于所述第二数量。

步骤s211、基于局部高级特征,利用所述第二数量的卷积层单元提取待识别车辆图像的全局特征。

本实施例中所述的全局特征可以基于局部高级特征提取得到,相对应的,本卷积神经网络中第四数量的卷积神经串联于第二数量的卷积层单元,以将局部高级特征输入至第二数量的卷积层单元。

为了更具象的描述卷积神经网络的结构,本实施例提出一种卷积神经网络的优选实施方式,如图3所述,该卷积神经网络中包括一个数据层、九个卷积层单元和一个合并层。其中数据层用于接收和预处理所述待识别车辆图像,第1-3个卷积层单元用于提取局部低级特征,第4-7个卷积层单元用于提取局部高级特征,第8-9层卷积层用于提取全局特征,九个卷积层单元串联,同时第3、7、9层卷积层单元与分类层分别相连。

步骤s213、根据所述局部特征和全局特征得到高级特征。

其中,高级特征由局部特征和全局特征融合而成,进而兼具了局部特征和全局特征的所有的特征表达。

步骤s215、计算所述高级特征与标准车型特征的匹配度。

本实施例在识别车型的过程中,可以对高级特征和标准车型特征进行匹配,进而根据匹配度确定待识别车辆图像中车辆的图像。

可选的,本实施例中还可以利用softmax函数计算得到高级特征属于哪种车型的概率,进而将概率最高的车型作为最终的车型。

步骤s217、若匹配度大于预设匹配阈值,则将高级特征对应的车型确定为所述车辆图像中车辆的车型。

在上述实施例的基础上,所述卷积层单元包括池化层和若干分支卷积层;所述分支卷积层和池化层中的任意一层中包括至少一个相同通道数的卷积核。其中,所述相同通道数的卷积核用于将卷积层单元各分支输出的特征表达处理至相同通道数,进而将各个特征表达合并一个特征。

优选的,如图4所示,卷积层单元的结构可以包括三个分支卷积层和一个池化层,且每一层都具有一个通道数为1x1的卷积核,以将将卷积层单元各分支输出的特征表达维度降低至1x1,大大降低了计算复杂度。

在上述实施例的基础上,所述卷积神经网络可以表示为h=f(wx+b),其中,h为输入数据x经过卷积神经网络后得到的值,w和b为卷积参数,f(x)为激活函数,用来表示输入到输出的映射关系。

此外,本说明书中还提供了一种基于卷积神经网络的车型识别装置,如图5所述,所述车型识别装置具体包括:

局部特征提取模块501,用于利用第一数量的卷积层单元提取待识别车辆图像的局部特征;

全局特征提取模块502,用于基于所述局部特征,利用第二数量的卷积层单元提取待识别车辆图像的全局特征;

车型识别模块503,用于根据所述局部特征和全局特征,并利用所述分类层识别所述车辆图像中车辆的车型。

在上述实施例的基础上,所述局部特征包括局部低级特征和局部高级特征;局部特征提取模块502,用于利用第三数量的卷积层单元提取待识别车辆图像的局部低级特征;基于所述局部低级特征,利用第四数量的卷积层单元提取待识别车辆图像的局部高级特征;

全局特征提取模块503,用于基于局部高级特征,利用所述第二数量的卷积层单元提取待识别车辆图像的全局特征。

在上述实施例的基础上,所述卷积层单元包括池化层和若干分支卷积层;所述分支卷积层和池化层中的任意一层中包括至少一个相同通道数的卷积核。

在上述实施例的基础上,所述基于卷积神经网络的车型识别装置,还包括:

图像接收模块,用于接收所述待识别车辆图像;

图像处理模块,用于预处理所述待识别车辆图像。

在上述实施例的基础上,车型识别模块530,用于根据所述局部特征和全局特征得到高级特征;计算所述高级特征与标准车型特征的匹配度;若匹配度大于预设匹配阈值,则将高级特征对应的车型确定为所述车辆图像中车辆的车型。

在上述实施例的基础上,所述基于卷积神经网络的车型识别装置,还包括:网络训练模块,用于预先训练所述卷积神经网络。

此外,本说明书中还提供了一种基于卷积神经网络的车型识别设备,所述卷积神经网络包括若干数量的卷积层单元和至少一个分类层,该车型识别设备具体包括:

存储器,存储基于卷积神经网络的车型识别程序;

通讯接口,接收特征的提取请求;

处理器,在通讯接口接收到接收特征的提取请求后,调用存储器中存储的基于卷积神经网络的车型识别程序,并执行:

利用第一数量的卷积层单元提取待识别车辆图像的局部特征;

基于所述局部特征,利用第二数量的卷积层单元提取待识别车辆图像的全局特征;

根据所述局部特征和全局特征,并利用所述分类层识别所述车辆图像中车辆的车型。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和介质类实施例而言,这里就不再一一赘述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤或模块可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信编号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定事务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行事务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利范围之中。

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