特征提取单元及方法、DCNN模型、识别方法及介质与流程

文档序号:18168066发布日期:2019-07-13 09:44阅读:1085来源:国知局
特征提取单元及方法、DCNN模型、识别方法及介质与流程

本申请涉及计算机视觉技术领域,具体而言,涉及一种特征提取单元及方法、dcnn(深度卷积神经网络)模型、识别方法及存储介质。



背景技术:

dcnn是图像分类、识别的主流方法,它是通过模拟人类的视觉系统来产生分类结果的,将特征提取与图像分类融合在了一起。而在dcnn模型中,特征提取的速度是决定模型好坏的一个重要因素,因此提供一种可以应用于dcnn模型中的、具有特征的快速提取能力的特征提取单元就十分有必要了。



技术实现要素:

本申请实施例的目的在于提供一种可以应用于dcnn模型中的、具有特征的快速提取能力的特征提取单元。

为达到上述目的,本申请实施例提供了一种特征提取单元,包括输入层、连接层、连接于所述输入层和连接层之间的处理层、与所述连接层连接的1×1卷积层、以及连接所述输入层和所述1×1卷积层的叠加层;所述输入层的通道数小于所述连接层的输出通道数,且所述1×1卷积层的通道数也小于所述连接层的输出通道数;所述输入层、连接层和处理层构成inception结构;所述输入层用于接收待处理特征图并输出给所述处理层和所述叠加层;所述处理层用于对所述待处理特征图进行包含卷积操作的特征提取处理,并输出至所述1×1卷积层;所述1×1卷积层用于进行降维以及通道数控制;所述通道数控制使得所述输入层的通道数与所述叠加层的通道数相同;所述叠加层用于将所述输入层传输的特征图与所述1×1卷积层输出的特征图进行相加处理,输出处理后的特征图。

在上述实现结构中,特征提取单元的输入层、连接层以及处理层三者共同构成了inception结构,而进一步由叠加层连接输入层即构成了反残差结构和瓶颈结构。即该特征提取单元有效融合了inception结构、瓶颈结构以及反残差结构,从而使得该特征提取单元对物体的特征具有非常高效的提取能力。而在上述实现结构中,特征提取单元通过inception结构的输入层、连接层以及处理层先进行通道数扩展,然后再进行通道数收缩,这就使得在dcnn模型中使用较少的特征提取单元就可实现很好的特征提取效果。

进一步地,所述处理层包括:并行连接于所述输入层和连接层之间的最大池化层和第一卷积层;所述输入层通过平均池化层与所述叠加层连接;所述最大池化层用于对所述输入层输出的待处理特征图进行最大池化处理;所述第一卷积层用于对所述输入层输出的待处理特征图进行卷积处理;所述平均池化层用于对所述输入层输出的待处理特征图进行均值池化处理;

或,

所述处理层包括:并行连接于所述输入层和连接层之间的第二卷积层、第三卷积层、第四卷积层;所述第二卷积层、第三卷积层、第四卷积层用于对所述输入层输出的待处理特征图进行卷积处理。

在上述两种处理层的实现结构下,处理层结构复杂度较低,便于实现,且具有较高的特征提取能力。

进一步地,所述第一卷积层包括:依次连接的一个1×1非线性卷积单元和一个3×3非线性卷积单元;所述第二卷积层包括:一个1×1非线性卷积单元;所述第三卷积层包括:依次连接的一个1×1非线性卷积单元和一个3×3非线性卷积单元;所述第四卷积层包括:依次连接的一个1×1非线性卷积单元和两个3×3非线性卷积单元;所述1×1非线性卷积单元用于对接收到特征图依次执行1×1卷积操作、批归一化操作和非线性激活操作;所述3×3非线性卷积单元用于对接收到特征图依次执行3×3卷积操作、批归一化操作和非线性激活操作。

在将上述卷积层的实现结构代入到前述两种处理层的实现结构中,即可得到两种具体的处理层实现结构(可分别参见图3和图6中所示)。而在采用前述结构来进行特征提取时,实现简单,复杂度低,并具有较高的特征提取能力。

进一步地,本申请实施例还提供了一种特征提取方法,所述特征提取方法应用于上述任一种的特征提取单元中,包括:所述特征提取单元的输入层接收待处理特征图并输出给所述处理层和所述叠加层;所述特征提取单元的处理层对所述待处理特征图进行包含卷积操作的特征提取处理,并输出至所述特征提取单元的1×1卷积层;所述特征提取单元的1×1卷积层进行降维以及通道数控制;所述通道数控制使得所述输入层的通道数与所述叠加层的通道数相同;所述特征提取单元的叠加层将所述输入层传输的特征图与所述1×1卷积层输出的特征图进行相加处理,输出处理后的特征图。

在上述实现过程中,特征提取单元的输入层接收待处理特征图并输出给所述处理层和所述叠加层;所述特征提取单元的处理层对所述待处理特征图进行包含卷积操作的特征提取处理,并输出至所述特征提取单元的1×1卷积层;所述特征提取单元的1×1卷积层进行降维以及通道数控制;所述通道数控制使得所述输入层的通道数与所述叠加层的通道数相同;所述特征提取单元的叠加层将所述输入层传输的特征图与所述1×1卷积层输出的特征图进行相加处理,输出处理后的特征图。整个特征提取过程十分高效而迅速。

本申请实施例还提供了一种深度卷积神经网络模型,包括:图片输入层和特征提取层;所述特征处理层包括向量输出层和由多个上述任一种的特征提取单元构成的多维特征提取层;所述图片输入层用于接收待识别图片;所述特征提取单元用于对所述待识别图片进行特征提取;所述向量输出层用于将提取出的特征转换为n(n≥2)维特征向量并输出给分类函数,以供所述分类函数依据所述n维特征向量输出所述待识别图片的类型。

在上述实现结构中,深度卷积神经网络模型包括图片输入层和特征提取层,模型通过图片输入层接收待识别图片,并通过特征提取层进行特征提取转换为向量输出给分类函数即可实现对待识别图片的类型识别,模型具有良好的类型识别能力。而特征提取层包括由多个上述任一种的特征提取单元构成的多维特征提取层,这就使得深度卷积神经网络模型具有很强的体征提取能力。

进一步的,在上述深度卷积神经网络模型的基础上,本申请实施例进一步提出了一种较具体的深度卷积神经网络模型结构:深度卷积神经网络模型的所述特征提取层还包括与所述多维特征提取层中的任一特征提取单元连接的特征分割单元;所述特征分割单元用于获取与之相连的所述特征提取单元输出的特征图,以及按照预先设定的p(p≥2)个分割区域将每一张所述特征图分割成p张局部特征图;所述向量输出层包括与所述多维特征提取层连接的第一向量输出层和分别与所述p个分割区域对应的p个第二向量输出层;所述n维特征向量包括n维全局特征向量、n维局部特征向量和n维分类向量;所述第一向量输出层用于将所述多维特征提取层最终输出的全局特征转换为一个n维全局特征向量并输出给所述分类函数,所述p个第二向量输出层用于将所述特征分割单元分割出的p张局部特征图转换为p个n维局部特征向量并输出给所述分类函数。

在上述实现结构中,深度卷积神经网络模型可以同时对待识别图片进行全局特征和局部特征的提取分析,同时上述实现结构也可看作是在一个多模型融合结构(每一个局部特征图的获取结构即可看做一个模型,而全局特征的获取结构也可看做一个模型),这既可以节省参数,又可以减少模型的运算,还可以充分利用所提取的特征信息,使得分类函数最后得到的分类结果更为准确,模型的泛化性更好。

本申请实施例还提供了一种深度卷积神经网络模型,包括:图片输入层和特征提取层;所述特征提取层中包括多个特征提取单元;所述特征分割单元与多维特征提取层中的任一特征提取单元连接;所述图片输入层用于接收待识别图片;所述特征提取单元用于对所述待识别图片进行特征提取;所述特征分割单元用于获取与之相连的所述特征提取单元输出的特征图,以及按照预先设定的p(p≥2)个分割区域将每一张所述特征图分割成p张局部特征图;所述向量输出层包括与所述多维特征提取层连接的第一向量输出层和分别与所述p个分割区域对应的p个第二向量输出层;所述第一向量输出层用于将所述多维特征提取层最终输出的特征转换为一个n维全局特征向量,所述p个第二向量输出层用于将所述特征分割单元分割出的p张局部特征图转换为p个n维局部特征向量;所述第一向量输出层和第二向量输出层还分别用于将所述n维全局特征向量和所述n维局部特征向量输出给分类函数,以供所述分类函数依据所述n维全局特征向量和所述n维局部特征向量输出所述待识别图片的类型。

在上述实现结构中,深度卷积神经网络模型可以同时对待识别图片进行全局特征和局部特征的提取分析,上述模型结构也可看作是在一个多模型融合结构,既可以节省参数,又可以减少模型的运算,还可以充分利用所提取的特征信息,使得分类函数最后得到的分类结果更为准确,模型的泛化性更好。

本申请实施例还提供了一种车辆类型识别方法,包括:获取包括车辆的待识别图片;将所述待识别图片输入前述任一种的深度卷积神经网络模型中,得到n维特征向量;通过分类函数对所述n维特征向量进行分类处理,得到所述待识别图片的车辆类型识别结果。

在上述实现结构中,由于采用的深度卷积神经网络模型具有十分高效的特征提取能力,因此对于车辆类型的识别速度很快,可以快速高效的实现对车辆类型的识别。此外通过上述方式可以有效对车辆的类型进行识别,从而对涉车问题可以提供有效的帮助,如可以有效预防、监测涉车违法案件等。

进一步地,在所述深度卷积神经网络模型为上述较具体的深度卷积神经网络模型结构时,所述通过分类函数对所述n维特征向量进行分类处理,得到所述待识别图片的车辆类型识别结果包括:依据所述n维全局特征向量和所述p个n维局部特征向量得到n维分类向量;将所述n维分类向量输入到所述分类函数中进行分类处理,得到所述待识别图片的车辆类型识别结果。

在上述实现过程中,将全局特征向量和局部特征向量综合得到一个分类向量,进而通过一个分类函数即可实现分类。整个分类过程实现简单,且同时考量了待识别图片的局部特征和全局特征,同时上述分类实现结构也可看作是在一个多模型融合结构,既节省了参数,又减少了模型的运算,充分利用了所提取的特征信息,最终使得分类结果更为准确。

本申请实施例中还提供了一种电子装置,包括:处理器、存储器及通信总线;所述通信总线用于实现处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个第一程序,以实现前述的特征提取方法的步骤;或,所述处理器用于执行存储器中存储的一个或者多个第二程序,以实现前述的车辆类型识别方法的步骤。

本申请实施例中还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述的特征提取方法的步骤,或实现前述的车辆类型识别方法的步骤。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种特征提取单元的基本结构示意图;

图2为本申请实施例提供的一种特征提取单元的可选结构示意图;

图3为本申请实施例提供的一种具体的特征提取单元的结构示意图;

图4-1为本申请实施例提供的非线性卷积单元的结构示意图;

图4-2为本申请实施例提供的线性卷积单元的结构示意图;

图5为本申请实施例提供的又一种特征提取单元的可选结构示意图;

图6为本申请实施例提供的又一种具体的特征提取单元的结构示意图;

图7为本申请实施例提供的一种特征提取方法的基本流程示意图;

图8为本申请实施例提供的一种dcnn模型的基本结构示意图;

图9为本申请实施例提供的一种可选的dcnn模型结构示意图;

图10为本申请实施例提供的一种可选的具体dcnn模型结构示意图;

图11为本申请实施例提供的一种可选的dcnn模型结构示意图;

图12为本申请实施例提供的几种可行的分割区域的示意图;

图13为本申请实施例提供的又一种可选的具体dcnn模型结构示意图;

图14为本申请实施例提供的一种深度卷积神经网络模型的训练方法的基本流程示意图;

图15为本申请实施例提供的一种车辆类型识别方法的基本流程示意图;

图16为本申请实施例提供的一种较具体的模型在训练时结构示意图;

图17为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

实施例一:

请参看图1,图1为本申请实施例提供的一种特征提取单元100的基本结构示意图,包括:输入层1001、连接层1002、连接于输入层1001和连接层1002之间的处理层1003、与连接层1002连接的1×1卷积层1004、以及连接输入层1001和1×1卷积层1004的叠加层1005。其中:

输入层1001用于接收待处理特征图并输出给处理层1003和叠加层1005。

处理层1003用于对待处理特征图进行包含卷积操作的特征提取处理,并输出至1×1卷积层1004。需要说明的是,1×1卷积层1004是指卷积核为1×1的卷积层,卷积层为可进行卷积操作的功能层。

1×1卷积层1004用于进行降维以及通道数控制。应当理解的是,本申请实施例中1×1卷积层1004通道数控制应当使得输入层1001的通道数与叠加层1005的通道数相同,从而使得多个特征提取单元100之间可以相互连接。在本申请实施例中,1×1卷积层1004通过对其接收到的特征图进行1×1卷积操作来实现降维以及通道数控制。所述1×1卷积操作是指卷积核为1×1的卷积操作。

叠加层1005用于将输入层1001传输的特征图与1×1卷积层1004输出的特征图进行相加处理,输出处理后的特征图。

在本申请实施例中,输入层1001、连接层1002以及处理层1003三者共同构成了inception结构,而进一步由叠加层1005连接输入层1001即构成了反残差结构和瓶颈结构。整个特征提取单元100的结构有效融合了inception结构、瓶颈结构以及反残差结构,从而使得特征提取单元100对物体的特征具有非常高效的提取能力。本申请实施例中,通过反残差结构对通道数进行先扩展再收缩,较传统的残差结构的先对通道数进行收缩再扩展的方案,可以使得在dcnn模型中使用较少的特征提取单元就可实现很好的特征提取效果。此外,本申请实施例中使用inception结构进行通道数的扩展和特征提取,充分考虑了不同感受野的特征,特征融合效果更好。

特别需要说明的是,本申请实施例中所述的inception结构为广义的inception结构,包括传统意义上的inceptionv1、inceptionv2、inceptionv3等结构,还包括在传统inception结构进行变形的inception变种结构,如图3中所示的结构即为本申请实施例中所提供一种inception变种结构。需要说明的是,处理层包含有多个并行的处理支路,且至少一个支路可以执行卷积操作时,即可认为输入层、连接层和处理层构成了inception结构。

还需要说明的是,在本申请实施例中,特征提取单元100中与连接层1002连接的1×1卷积层1004的通道数f应当小于连接层1002输出通道数g。从而使得特征提取单元100在应用到卷积模型后,模型中可以叠加多个特征提取单元100,即可以使得模型具有较好的扩展性。可选的,在本申请实施例的一种可行实施方式中,f的值可以设置为二分之一g,从而为模型提供更优的可扩展性。此外,本申请实施例中输入层1001、连接层1002以及处理层1003三者共同构成的inception结构在进行处理时,可以实现通道数扩展,这样特征提取单元通过inception结构的输入层、连接层以及处理层先进行通道数扩展,然后再进行通道数收缩,这就使得在dcnn模型中使用较少的特征提取单元就可实现很好的特征提取效果。

在本申请实施例中,输入层1001、连接层1002以及处理层1003三者共同构成的inception结构可以为具有k(k大于等于2)个并行的处理支路的inception结构。

在本申请实施例的一种可行实施方式中,输入层1001、连接层1002以及处理层1003三者共同构成的inception结构可以为两个并行的处理支路的inception结构。参见图2所示,处理层1003可以包括并行连接于输入层1001和连接层1002之间的最大池化层10031和第一卷积层10032;输入层1001通过平均池化层1006与叠加层1005连接。其中,最大池化层10031用于对输入层1001输出的待处理特征图进行最大池化处理;第一卷积层10032用于对输入层1001输出的待处理特征图进行卷积处理;平均池化层1006用于对输入层1001输出的待处理特征图进行均值池化处理。可选的,在该可行实施方式中,参见图3所示,第一卷积层10032可以包括依次连接的一个1×1非线性卷积单元(1×1conv-bn-relu,其中conv代表卷积、bn代表批归一化、relu表示激活函数relu,下文中conv、bn和relu的含义于此处相同,故不再赘述)和一个3×3非线性卷积单元(3×3conv-bn-relu);1×1非线性卷积单元对接收到特征图依次执行1×1卷积操作、批归一化操作和非线性激活操作;而3×3非线性卷积单元对接收到特征图依次执行3×3卷积操作、批归一化操作和非线性激活操作。需要说明的是,3×3卷积操作是指卷积核为3×3的卷积操作。还需要说明的是,本申请实施例中输入层1001可以用input表示,叠加层1005可以用sum表示,连接层1002可以用cancat表示,平均池化层1006可以用avepooling表示,最大池化层可以用maxpooling表示。

特别需要说明的是,本申请实施例中激活函数除了使用上述的relu函数外,还可以使用其他激活函数,如selu函数,leakyrelu函数等,在本申请实施例中并不做限定,不应认为本申请中非线性激活操作仅可采用上述relu函数来实现。

此外,在本申请实施例中,1×1卷积层1004可以为1×1线性卷积单元(1×1conv-bn),用于在接收到特征图时,对接收到的特征图依次执行1×1卷积操作和批归一化操作,从而实现降维以及通道数控制功能。应当理解的是,1×1卷积层1004也可以为1×1非线性卷积单元(1×1conv-bn-relu),其也可以实现降维以及通道数控制功能。

在本申请实施例中,conv-bn-relu的结构可以参见图4-1所示,conv-bn的结构可以参见图4-2所示,conv-bn的结构表征依次执行卷积和批归一化操作,conv-bn-relu的结构表征依次执行卷积、批归一化和通过relu进行非线性激活操作。

在本申请实施例的又一种可行实施方式中,输入层1001、连接层1002以及处理层1003三者共同构成的inception结构可以为三个并行的处理支路的inception结构。参见图5所示,处理层1003可以包括并行连接于输入层1001和连接层1002之间的第二卷积层10033、第三卷积层10034、第四卷积层10035。而第二卷积层10033、第三卷积层10034、第四卷积层10035用于对输入层1001输出的待处理特征图进行卷积处理,通过并行的第二卷积层10033、第三卷积层10034、第四卷积层10035在不同感受野上同时进行特征提取,从而保证了处理层1003具有很好的特征提取能力。可选的,在该可行实施方式中,参见图6所示,第二卷积层10033可以包括一个1×1非线性卷积单元(1×1conv-bn-relu),第三卷积层10034可以包括依次连接的一个1×1非线性卷积单元(1×1conv-bn-relu)和一个3×3非线性卷积单元(3×3conv-bn-relu),第四卷积层10035可以包括依次连接的一个1×1非线性卷积单元(1×1conv-bn-relu)和两个3×3非线性卷积单元(3×3conv-bn-relu)。

需要说明的是,本申请实施例中所提供的特征提取单元100包括但不限于应用于深度卷积神经网络模型中进行特征提取。

在本申请实施例中,还提供一种可以应用于上述特征提取单元100中的特征提取方法。参见图7所示,图7为本申请实施例所提供特征提取方法的基本流程示意图,包括:

s701:特征提取单元100的输入层1001接收待处理特征图并输出给处理层1003和叠加层1005;

s702:特征提取单元100的处理层1003对待处理特征图进行包含卷积操作的特征提取处理,并输出至特征提取单元100的1×1卷积层1004;

应当理解的是,处理层1003结构的不同会产生不同的处理过程,例如图3所示的特征提取单元100中,处理层1003同时进行最大池化操作和卷积操作;而图6所示的特征提取单元100中,处理层1003则同时进行三种不同的卷积操作。

s703:特征提取单元100的1×1卷积层1004进行降维以及通道数控制;

需要说明的是,1×1卷积层1004进行的通道数控制应当使得输入层1001的通道数与叠加层1005的通道数相同,从而保证在应用于卷积模型中时多个特征提取单元100之间可以相互连接。

s704:特征提取单元100的叠加层1005将输入层1001传输的特征图与1×1卷积层1004输出的特征图进行相加处理,输出处理后的特征图。

综上所述,本申请实施例提供的特征提取单元100,特征提取单元100的输入层1001、连接层1002以及处理层1003三者共同构成了inception结构,而叠加层1005连接输入层1001即构成了反残差结构和瓶颈结构。整个特征提取单元100的有效融合了inception结构、瓶颈结构以及反残差结构,从而使得该特征提取单元100对物体的特征具有非常高效的提取能力。此外,特征提取单元通过inception结构的输入层、连接层以及处理层先进行通道数扩展,然后再进行通道数收缩,使得在dcnn模型中使用较少的特征提取单元就可实现很好的特征提取效果。

实施例二:

本实施例在实施例一的基础上,提供了一种深度卷积神经网络模型(dcnn模型)。参见图8所示,dcnn模型包括:图片输入层2和特征提取层1;特征提取层1包括向量输出层11和由多个实施例一中所描述的特征提取单元100构成的多维特征提取层10。需要说明的是,构成多维特征提取层10的多个特征提取单元100的具体结构可以互不相同,当然也可以全部相同或部分相同。

在本申请实施例中,图片输入层2用于接收待识别图片。特征提取单元100用于对待识别图片进行特征提取,从而使得特征提取层1具有高效的特征提取功能。向量输出层11用于将提取出的特征转换为n(n≥2)维特征向量并输出给分类函数,以供分类函数依据n维特征向量输出待识别图片的类型。

需要说明的是,n的值等于dcnn模型中的分类数。即模型可以识别的类型数量为n。例如,模型是用于进行花朵品种的识别,设定的模型可识别的花朵品种数为2000,那么n值为2000。

需要说明的是,在本申请实施例中,参见图9所示,特征提取层1还可以包括低层特征提取层12,所述低层特征提取层12可以置于多维特征提取层10之前,从而在进行特征提取时,先由低层特征提取层低层特征提取层12进行低层特征提取,进而再由多维特征提取层10在已提取出低层特征的特征图的基础上进一步进行特征提取。应当理解的是,本申请实施例中的低层特征是指图片中的基础特征,如图片中的物体轮廓、边缘、纹理等特征。

应当理解的是,在本申请实施例中,低层特征提取层12可以由非线性卷积单元(conv-bn-relu)和/或线性卷积单元(conv-bn)构成,例如参见图10所示的特征提取层1结构中(为便于描述记图3所示的结构为invert-res-inception-a,记图6所示的结构为invert-res-inception-b),低层特征提取层12即由依次连接的两个conv-bn-relu和一个conv-bn构成。需要说明的是,图10中所示的低层特征提取层12结构仅为本实施例中所提供的一种可选结构,不代表本申请中低层特征提取层12结构仅可以采用该种结构。同理,图10中所示的多维特征提取层10结构也仅为本实施例中所提供的一种可选结构,不代表本申请中多维特征提取层10结构仅可以采用该种结构。事实上多维特征提取层10的结构可以根据工程师的需要灵活设置,例如设置为由6个invert-res-inception-a和16个invert-res-inception-b构成的结构等。特别值得注意的是,在本申请实施例中,特征提取层1也可以是不包含低层特征提取层12的,即直接由多维特征提取层10与图片输入层2连接,由多维特征提取层10直接对待识别图片进行特征提取。

在本申请实施例的一种具体实施方式中,参见图11所示,特征提取层1还可以包括与多维特征提取层10中的任一个特征提取单元100连接的特征分割单元13。特征分割单元13用于获取与之相连的特征提取单元100输出的特征图,以及按照预先设定的p(p≥2)个分割区域将每一张特征图分割成p张局部特征图。在本申请实施例中,特征图的分割区域是预先确定的,例如可以预先确定出大小不重叠的4个区域(一种可行方式是4个区域将特征图均分)。值得注意的是,本申请实施例的一种可行实施方式中,分割区域不交叠,但应当理解的是分割区域也可交叠。在本申请实施例中,对特征图的分割可以按照如图12所示的几种可行的分割区域来进行分割,但并不仅限于这几种分割方式。

在上述具体实施方式中,参见图11所示,向量输出层11可以包括与多维特征提取层10连接的第一向量输出层110,分别与p个分割区域对应的p个第二向量输出层111,以及同时连接所述第一向量输出层110和第二向量输出层111的第三向量输出层。其中,第一向量输出层110用于将多维特征提取层10最终输出的全局特征转换为一个n维全局特征向量并输出给所述分类函数,p个第二向量输出层111用于将特征分割单元13分割出的p张局部特征图转换为p个n维局部特征向量并输出给所述分类函数。

需要说明的是,在本申请实施例的一种可行实施方式中,可以具有(p+1)个分类函数,此时(p+1)个特征向量分别输入到这(p+1)个分类函数种得到(p+1)个分类结果,进而依据这(p+1)个分类结果得到最终的分类结果,例如选择出现次数最多的分类结果作为最终的分类结果。

需要说明的是,本申请实施例的另一种可行实施方式中,可以设置第三向量输出层,用于依据n维全局特征向量和p个n维局部特征向量得到一个n维输出向量输出给分类函数。即第三向量输出层用于计算接收到的(p+1)个特征向量得到一个最终的分类向量。可选的,第三向量输出层可以对n维全局特征向量和p个n维局部特征向量计算平均值后得到的平均向量。具体的,可以将n维全局特征向量和p个n维局部特征向量结合得到一个n行(p+1)列的矩阵,将每列的数值之和除以n即得到每列的平均值,这些平均值即构成了一个n维平均向量。应当理解的是,除了计算平均值得到平均向量作为输出向量以外,还可以根据实际需要设计所需的输出向量,例如可以设计每个向量使用不同权值进行相加作为输出向量,这些权值可以事先设计也可以进行学习来得到等。

需要说明的是,在本申请实施例中,第一向量输出层110和第二向量输出层111可以通过全局平局池化(globalaveragepooling,gap)操作来实现将特征转换为向量的(此时第一向量输出层110和第二向量输出层111为全局平局池化层),也可以通过全连接的方式来实现将特征转换为向量(此时第一向量输出层110和第二向量输出层111为全连接层)。还需要说明的是,在本申请实施例中,也可以仅进行全局特征的提取,例如参见图13所示,此时仅有一个向量输出层11,该向量输出层11可以为全局平局池化层或全连接层。

需要说明的是,在本申请实施例中,在特征分割单元13之前和/或之后还可以设置用于进行特征提取的特征提取单元100或卷积层。在特征分割单元13之后设置用于进行特征提取的特征提取单元100或卷积层时,可以是针对p张特征图分别设置特征提取单元100或卷积层,也可以是仅针对p张特征图中的部分特征图设置特征提取单元100或卷积层。

应当理解的是,为了得到较好识别效果的dcnn模型,可以对初始的dcnn模型进行训练,得到训练好的dcnn模型。而在前述图11所示的dcnn模型结构中,模型具有全局信息提取和局部信息提取的多条支路,结构较为复杂,若按照传统的直接训练的方式,可能会导致模型训练失败或训练时间很长。为此,本申请实施例中提供了一种深度卷积神经网络模型的训练方法,用于对前述图11所示的dcnn模型进行训练。参见图14所示,深度卷积神经网络模型的训练方法包括:

s1401:获取样本集;

需要说明的是,本申请实施例中可以用过各种渠道获取到模型识别对象的图片(模型识别对象是指需要模型识别的对象,如我们建立的是车辆类型识别模型,那么模型识别对象即为车辆;如我们建立的是花朵品种识别模型,那么模型识别对象即为花朵),在获取到模型识别对象的图片后需要将各图片进行尺寸和/或分辨率的归一化处理,得到样本集。还需要说明的是,为了增加样本集数量,提高所建立的模型的识别准确度,本申请实施例中可以对各归一化处理后的图片进行以下一种或多种图像处理:随机翻转(包括上下、左右、对角等)、一定范围内的随机对比度调整、一定范围内的随机饱和度调整、一定范围内的随机亮度调整、一定范围内的随机运动模糊调整,以及样本集中所有样本或部分样本的fancypca(principalcomponentanalysis,主成分分析方法)的采样处理,从而得到新的样本,扩大样本集。

s1402:根据样本集对多维特征提取层10和第一向量输出层110形成的全局特征提取支路进行训练,得到全局特征提取支路的参数;

s1403:将全局特征提取支路的参数的学习率设置为整体学习率的1/j(j≥1);

s1404:根据样本集对训练后的全局特征提取支路和由特征分割单元13及第二向量输出层111形成的局部特征提取支路进行训练,得到深度卷积神经网络模型的参数。

需要了解的是,通常训练一个模型,是为了确定这个模型的各个参数值。在训练开始时,通常会先初始化模型,也即会赋予各个参数一个初始值,然后输入样本,以训练函数进行训练,反向传播训练,直到达到收敛条件或者预设训练时长或者预设训练次数从而得到参数值,该得到的参数值即为模型的参数值。

而在本申请图14所示的上述训练过程中,先进行全局特征提取支路的学习训练,从而得到一个初步的参数,再对训练后的全局特征提取支路和未训练过的局部特征提取支路进行学习训练,这样由于有了一次学习训练,已经得到了一个较接近的参数值,再次学习训练时实际是对前次得到的参数值进行微调,这就极大的减小了第二次学习时的复杂度,可以很容易的得到最终所需的模型参数,保证了模型训练过程的成功率和有效性。

需要说明的是,本申请实施例中所述的训练函数可以为损失函数,例如softmax损失函数、am-softmax损失函数或者hinge损失函数等。还需要说明的是,本申请实施例中所述的损失函数如果使用softmax损失函数、am-softmax损失函数等则分类函数可以是softmax分类器函数。

本申请实施例所提供的dcnn模型具有很好的通用性与普适性,可以广泛应用到细粒度的识别场景中,例如可以应用到车辆类型、花朵种类、蔬菜品种、宠物品种等的识别中。下面以应用到车辆类型识别中的情况为例,对本申请实施例做示例说明。参见图15所示,图15为本申请实施例提供的一种车辆类型识别方法的基本流程示意图,包括:

s1501:获取包括车辆的待识别图片;

s1502:将待识别图片输入上述深度卷积神经网络模型中,得到n维特征向量;

s1503:通过分类函数对n维特征向量进行分类处理,得到待识别图片的车辆类型识别结果。

综上所述,根据本申请实施例所提供的dcnn模型,dcnn模型具有很强的体征提取能力,可以快速、高效的实现对物体特征的提取,从而可以胜任高强度的物体识别工作。且该dcnn模型还具有结构简单,类型识别能力的特点,能够广泛应用到细粒度的识别场景中,例如可以应用到车辆类型、花朵种类、蔬菜品种、宠物品种等的识别中,具有很好的普适性。在应用到车辆类型识别中时,可以快速高效的实现对车辆类型的识别,此外通过对车辆类型进行的有效识别,可以对涉车问题可以提供有效的帮助,如可以有效预防、监测涉车违法案件等。

实施例三:

本实施例在实施例二的基础上,以一种较具体的dcnn模型在车辆类型识别这一场景中的应用为例,对本申请的方案作进一步的示例说明。

记图3所示的结构为invert-res-inception-a,图6所示的结构为invert-res-inception-b,分割单元为block单元。

本实施例采用以下步骤实现对车辆类型的识别:

步骤1:样本集的采集、筛选、标注。

本申请实施例中可以从不同城市的各种视频、图像监控场景中,使用车辆检测算法检测出车辆,并将检测出来的每辆车保存为图片。可以在搜集m(m>4000万)张各种品牌型号的车辆数据后,经人工筛选,根据车辆的品牌型号精确分成n(n>4000)类,建立基本涵盖各种条件的车辆品牌型号图片数据库。

步骤2:样本处理。

将步骤1所建立的数据库尺度归一化到s×s(本申请实施例中s可以为192),将归一化的图像样本集拷贝一份随机进行以下一种或多种图像处理:随机翻转(包括上下、左右、对角等)、一定范围内的随机对比度调整、一定范围内的随机饱和度调整、一定范围内的随机亮度调整、一定范围内的随机运动模糊调整,以及样本集中所有样本或部分样本fancypca采样,形成新的样本,和之前归一化的图像样本集合并形成最终使用的样本集。

步骤3:将步骤2所得样本集送入深度卷积神经网络模型结构中。

参见图16所示,本申请实施例中的深度卷积神经网络模型结构使用卷积神经网络实现,该模型具有全局信息提取支路141和局域信息提取支路142。该模型中conv表示卷积,bn表示batchnormalization(批归一化),relu表示激活函数relu,sum表示用于将元素相加的叠加层。该模型中invert-res-inception-b在基础特征提取中使用,它不使用空洞卷积,且多个卷积使用concat层连接后的1×1卷积在通道数量f上要小于concat连接层输出的通道数g(本申请实施例中f可以为g的1/2);block单元可以将特征图分为p个新特征图(本申请实施例中p可以为4,将特征图均分为4份)。需要说明的是图中gap为全局平均池化层,执行全局平均池化操作。

本申请实施例中dcnn模型由1个输入层,3个invert-res-inception-a单元,8个invert-res-inception-b单元,1个block单元,若干个普通卷积单元(可选用2个conv-bn-relu单元,2个conv单元以及1个conv-bn单元),(p+1)个gap单元以及(p+1)个softmax损失函数(softmaxloss)单元组成。其中连接softmax损失函数的conv单元和连接block单元的conv单元的输出通道数均为n。

在步骤3中,可以将数据输入大小统一为3×192×192(设s为192),经过第1个conv-bn-relu单元后,输出数据大小为16×96×96;经过第2个conv-bn-relu单元后,输出数据大小为32×48×48;接下来使用conv-bn单元进行处理,输出数据大小为64×48×48;然后使用invert-res-inception-a单元处理,输出数据大小为64×24×24,接着使用invert-res-inception-b单元处理,输出数据大小不变;类似地,继续使用1个invert-res-inception-a单元和3个invert-res-inception-b单元顺序处理,处理后输出数据大小变为64×12×12;使用1个invert-res-inception-a单元和3个invert-res-inception-b单元顺序处理后数据同时输入到两个不同的模块,其中一个模块是继续使用1个invert-res-inception-a单元和4个invert-res-inception-b单元顺序处理,处理后输出数据大小为64×6×6,继续使用conv-bn-relu单元处理再使用1×1卷积将通道维数调整到车辆型号的总类数n,再经过globalaveragepooling输出n维矢量v1;另一个模块使用1×1卷积将通道维数调整到车辆型号的总类数n,经过block单元均分得到4个n×6×6特征图,这4个n×6×6特征图分别使用全局平局池化操作输出n维矢量v2,v3,v4,v5。最后,v1,v2,v3,v4,v5这5个矢量分别使用softmax损失函数进行训练。

步骤4:训练深度卷积神经网络,得到模型中每一层的参数权值。

本申请实施例采用了反向传递算法来训练深度卷积神经网络。训练开始前深度卷积神经网络模型的每一层参数使用xavier初始化或者msra初始化。深度卷积神经网络的训练分两阶段进行:

(1)使用一个softmax损失函数训练图16中的全局信息提取支路。

(2)将全局信息提取支路的每一层参数的学习率设置为整体学习率的1/j(j可以设为10),使用(p+1)个softmax损失函数训练整个特征提取结构的参数。

这样可以有效保证训练结果得到的参数,既可以确保全局信息也能确保局域信息提取。

示例性的:

可以使用经典的反向传递算法来训练深度卷积神经网络,使用sgd(随机梯度下降)方式进行训练,学习率在迭代固定的次数之后以一定的比例降低,初始学习率设置为0.01,学习率降低前迭代的次数为20个epoch。

训练开始前深度卷积神经网络模型的每一层参数使用xavier初始化(或者msra初始化)。训练时:

先只训练图16中的全局信息结构这个分支,初始学习率设置为0.01,使用一个softmax损失函数训练。再将全局信息结构分支的每一层参数的学习率设置0.001,其它层的学习率设置为0.01训练整个特征提取结构,使用5个softmax损失函数进行训练。

需要说明的是,在采用softmax损失函数进行训练时,softmax损失会不断地对输入的数据进行学习训练,直到收敛为止。

步骤5:将待识别的车辆图像数据输入训练好的模型中,提取车辆的图像特征,进而识别车辆品牌型号。

将车辆图像数据输入训练好的模型后可以得到(p+1)个n维的特征向量,将这些特征组合成一个(p+1)×n维的向量,这个(p+1)×n维的向量就是车辆图像的特征向量。为了进一步进行子品牌识别分类,本申请实施例可以将(p+1)×n维特征向量按维度间隔n的(p+1)个向量求平均值,得到一个新的n维特征向量。例如(p+1)×n维特征向量为[x1、y1、x2、y2、x3、y3、x4、y4],p为3,n为2,那么计算平均值时即计算x1、x2、x3和x4的平均值x0,计算y1、y2、y3和y4的平均值y0,得到的新的n维特征向量即为[x0、y0]。将得到的新的n维特征向量输入softmax分类器进行分类,即可得到输入图像的车辆的品牌型号信息。

在图16中,最后得到即是5个n维的特征向量,将这些特征组合成一个5×n维的向量,这个5×n维的向量就是车辆图像的特征向量。进一步地将5×n维特征向量按维度间隔n的5个向量求平均值,得到一个新的n维特征向量,输入softmax进行分类,即可得到输入图像的车辆的品牌型号信息。

本申请实施例提供的深度卷积神经网络模型结构具有极强的特征提取能力,鲁棒性好,区分度强。本申请实施例中dcnn模型具有以下特征:

(1)该卷积神经网络模型基础特征提取单元上的invert-res-inception-a和invert-res-inception-b有效地融合不同运算操作或者不同感受野的特征,同时使用了通道扩展、收缩策略的瓶颈结构,极优地提取出特征信息。

(2)使用block单元切分特征图,提取局部特征,然后将局部特征与整体特征(即全局特征)进行综合得到最终特征,由于模型结合了整体特征和局部特征,使得模型具有很强的识别能力。

实施例四:

本实施例提供了一种电子设备,参见图17所示,其包括处理器1701、存储器1702以及通信总线1703。其中:

通信总线1703用于实现处理器1701和存储器1702之间的连接通信。

存储器1702中存储有上述实施例中所提供的dcnn模型,以及相关控制程序;

处理器1701用于执行存储器1702中存储的一个或多个控制程序,以实现上述实施例中的特征提取方法的各步骤,或实现上述实施例中的车辆类型识别方法的各步骤,或实现上述实施例中的深度卷积神经网络模型的训练方法的各步骤。

可以理解,图17所示的结构仅为示意,电子设备还可包括比图17中所示更多或者更少的组件,或者具有与图17所示不同的配置。

本实施例还提供了一种存储介质,如软盘、光盘、硬盘、闪存、u盘、cf卡、sd卡、mmc卡等,在该存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例中的特征提取方法的各步骤,或实现上述实施例中的车辆类型识别方法的各步骤,或实现上述实施例中的深度卷积神经网络模型的训练方法的各步骤。在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

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