一种基于快速R‑CNN深度神经网络的车型识别方法与流程

文档序号:12471051阅读:334来源:国知局
一种基于快速R‑CNN深度神经网络的车型识别方法与流程
本发明涉及计算机技术、模式识别、人工智能、应用数学以及生物视觉技术在智能交通领域的应用,尤其涉及一种基于快速R-CNN深度神经网络的车型识别方法。
背景技术
:智能交通系统中的核心功能是对过往车辆的准确检测和正确的车型识别。当前对车辆检测分类技术的研究主要有两个重要技术:即车辆自动识别和车辆自动分类。车辆自动识别是利用车载设备与地面基站设备互识进行,该技术主要用于收费系统中,在一些技术发达国家使用范围较广,如美国的AE-PASS系统、日本的ETC系统,全球卫星GPS定位等。车辆自动分类是通过检测车辆本身固有的参数,在一定车辆分类标准下运用适当的分类识别算法,主动地对车辆进行分型,这一类技术应用比较广泛,己经有很多成熟的系统应用在实际生活中,该类技术可以通过射频微波、红光、激光、声表面波等方式来自动识别车辆信息,也可以使用视频图像处理的方式来识别车牌、车型等车辆信息。车辆自动分类比较成熟技术有环形线圈检测、激为红外线检测、超声波/微波检测、地磁检测等,但这几种方法各有优劣,优点是识别精确比较高,但缺点也很明显,主要缺点有施工和安装过程十分复杂,影响正常交通秩序,维护困难,主要设备易损坏,花费较大等。近年来,视频检测技术己成为智能交通领域最重要的信息采集手段,综合评比,将视频检测技术应用于高速公路和城市道路具有极大的实际应用价值,基于视频车型识别系统,将全面提升城市道路的信息采集和安全管理的水平,在智能交通系统中会发挥越来越重要的作用。车型的视觉识别,国内外很多学者进行了相关研究。论文“RobertT.Collins,AlanJ.Lipton,HironobuFujiyoshi,andTakeoKanade.AlgorithrnsForcooperativemultisensorsurveillanee.InProceedingsoftheIEEE”披露了一个路上移动目标的检测、跟踪、识别系统,用训练过的神经网络来识别运动目标是人、人群、车辆还是干扰,网络的输入特性量有目标的分散性度量、目标大小目标表面大小与摄影机监视区域大小的相对值。车辆又进一步区分为不同类型和颜色。论文“TieniuN.TanandKeithD.BakerEfficientimagegradientbasedvehiclelocalization.IEEETransactiononIimageProeessing,2000,9(8):1343-1356.”描述了一种车辆定位和识别的方法,在一个小窗口内,该方法依据图像梯度进行。利用地面约束以及大部分车辆外形受两条直线约束的事实,可得到车辆的姿态。论文“GeorgeFung,NelsonYung,andGranthajmPang.Vehicleshapeapproximationfrommotionforvisualtrafficsurveillance.InProc.IEEEConf.IntelligentTransportSystem,2001,608-613.”用高精度摄像机观察车辆的运动来估计车辆形状,通过估计特征点得到车辆轮廓。基本思想是高特征点的移动速度大于低特征点的移动速度,因为高特征点离摄像机近,车辆轮廓可用与车辆识别。论文“Ferryman,A.Worral,G.Sullivan,K.Baker,AgenericdeformablemodelforVehiclerecognition,ProeeedingofBritishMachineVisionConference,1995,127-136.”提出了一个参数化的可变形三维模板,该模板通过演变,据称是可适用于各种车辆识别。论文“LarryDavis,V.PhilominandR.Duralswami.Trackinghumansfromamovingplatform.InProc.IntematlonConferenceonPattemRecognition,2000.”用变形模板来研究车辆识别,首先,建立目标车辆车头部分的侧视图以及正视图的变形模板。通过直方图交集,车辆的RGB直方图也必须比较,合适的车型模板边的点集也通过点集间的Hausdorff距离与其他车辆模板进行比较。上述技术基本上还需要人工来完成特征抽取,更大的问题是:1)受具体应用环境的影响太大,各类检测算法要求的条件太苛刻;2)车辆种类繁多但差别不大,没有明显的区别特征;3)受视觉变化的影响大,从不同角度所摄的汽车特征差别大;4)受自然环境影响太大,特别是光照影响,严重的光照反射使得车辆轮廓线不分明,颜色偏离、变化太大,难以辨认;5)汽车的外形更新太快,特征变化太快,使得算法适应性较差。国内在车型识别技术方面大多数仍停留在研究状态,如中国科学院、西安公路所、上海交通大学、西安交通大学、四川大学等一些研究成果。其关键问题是人类本身对车型识别过程的知识限制。用来进行车辆分类的特征需要对尺度、旋转以及一定的角度变换、光照变化都有很好的鲁棒性,前深度学习时代的计算机视觉技术一般都是人工花费大量时间和精力去设计合适的特征。为了能让计算机自动选择合适特征,人工神经网络就应运而生了,早在1999年就有国外的研究者利用神经网络对物体进行分类,包括了模糊神经网络和BP网络等方法;但由于其性能存在诸多问题,如难以解决模式识别中存在的复杂性和推广性的矛盾,神经网络虽然有强大的建模能力,但对诸如车型大规模图像进行分类,其巨大的参数空间使寻找优良的优化初始值较为困难等,因此被人们冷落了很长时间,直到深度学习的提出才又重新成为研究热点。在图像分类领域,对数量庞大的图像分类主要有两种方法:一种为提取每张照片的局部特征,将提取的特征进行聚类和编码得到一个高维向量,然后将其用分类器分类。其中编码的方法有视觉词袋模型编码,稀疏编码和费舍尔向量编码等,从目前研究结果来看费舍尔向量编码的性能较其他几种编码方式要好。另一种应用很广的图像分类方法是深度神经网络,深度学习是神经网络研究中的一个新的热点,其目的在于通过非监督的预训练为神经网络提供优良的参数初始值,通过贪婪的方式,一层一层的训练,对大规模图像分类取得非常好的效果。深度学习的概念开始引起人们的注意是在大约2006年前后,论文“Hinton,G.E.andR.R.Salakhutdinov,Reducingthedimensionalityofdatawithneuralnetworks.Science,2006.313(5786):504-507”提出了一种多层的前向神经网络能够逐层做高效的前期训练,采用无监督的限制性玻尔兹曼机对每一层进行训练,最后在利用有监督的后向传播做微调,为解决模式识别中存在的复杂性和推广性的矛盾提供了一种新的方法和思路,这样就拉开了深度学习时代的计算机视觉技术序幕。卷积神经网络,即CNN,是深度学习算法的一种,是专门处理图像领域中的模式识别,同时也是目前图像模式识别中成果最惊人的算法。卷积神经网络算法的好处在于训练模型的时候不需要使用任何人工特征,算法可以自动探索图像所隐含的特征。申请号为201610019285.2的中国专利申请公开了一种车型识别方法及系统,包括了机器训练生成分类器过程和对待测图片的判别过程,在生成分类器的过程中,基于车牌确定训练集图片中所需要的图像范围,将已经确定的图像范围划分区域,选定各区域内的特征信息,分别将选定的各自区域内所有特征信息投入机器训练生成一一对应各区域的分类器,通过已经生成的分类器对待测图片进行单区域判别,依据单区域判别结果再经过多区域置信度融合判断得到车型识别结果。该发明采用随机深林分类器进行车型识别,最大的问题是缺少无监督的学习过程。申请号为201510639752.7的中国专利申请公开了一种车型识别方法,所述方法包括:获取待检测图片;采用第一预设分类器对所述待检测图片进行检测;若所述待检测图片中含目标车辆,提取所述待检测图片中的目标车辆;对所述目标车辆进行对齐处理,以使得所述目标车辆的车头方向与所述目标区域的垂直方向之间的夹角小于预设阈值;对所述对齐处理之后的目标车辆进行特征提取,以得到M个特征,所述M为大于1的整数;采用第二预设分类器对所述M个特征进行分类;根据所述分类的结果确定所述目标车辆的车型。从某种意义上说,该发明仍然属于浅神经网络,在架构上就难以实现无监督的学习过程。申请号为201510071919.4的中国专利申请提出了一种基于卷积神经网络的车型识别方法,基于特征提取模块与车型识别模块,包括以下步骤:通过设计卷积与池化层,全连接层,分类器来构建车型识别的神经网络,其中卷积与池化层和全连接层用来提取车型特征,分类器用来车型分类识别;利用包含不同车型特征的数据库训练该神经网络,训练方式为带标签的数据进行的有监督的学习,并用随机梯度下降法进行权重参数矩阵和偏移量的调整;得到训练好的各层中的权重参数矩阵和偏移量,把它们对应地赋值给该神经网络中的各个层,则该网络具有车型特征提取及识别的功能。该发明缺少比较详细的实现细节,只是从概念上提出了基于卷积神经网络的车型识别方法,尤其是训练方式为带标签的数据进行的有监督的学习。车辆的外形图像量属于海量数据,要对这些图像数据进行标注是一个极其困难的事情;此外车辆的外形更新太快造成特征变化快,所以造成该发明中的一些算法难以满足实际应用。此外,实际路面釆集到的车型图像复杂;包括了背景复杂,车辆之间的遮挡等干扰;若无对实际获得的图像进行分割处理,将会严重影响最终的识别结果。申请号为201510738852.5和201510738843.6的中国专利申请提出了一种基于深度费舍尔网络的车型识别方法,首先构建费舍尔网络的第0层,对有K种车型图像的数据库,提取出每种车型车辆图像的SIFT特征;然后构建费舍尔网络的第1层,对提取到的SIFT特征进行费舍尔向量编码,将编码后的向量在空间堆叠,再进行L2归一化和PCA降维;将第1层得到的特征表示进行费舍尔向量编码,通过符号平方根和L2归一化处理,形成费舍尔网络的第2层;最后将不同车型图像得到的全局特征表示用于线性支持向量机训练,得到具有K种车型类别的识别系统;对待识别车辆,使其通过费舍尔网络得到测试特征向量,导入识别系统即可识别出待识别车辆车型。该发明也有两个不足,其一是缺少深度学习过程,其二是缺少对图像进行车辆分割处理步骤。申请号为201510738540.4的中国专利申请提出了一种基于局部特征聚合描述符的车型识别方法,首先提取车型数据库中车辆图像的SIFT特征;然后对所有车辆图像的SIFT特征进行Kmeans聚类,形成K个聚类中心,得到具有K个视觉单词的字典;接着针对每张车型图像将每个SIFT特征赋给离其最近的视觉单词;统计每个视觉单词周围的SIFT特征向量与当前视觉单词的残差累积量,得到当前车辆图片的局部特征聚合描述符;最后,将训练模块的n张车型图像的局部特征聚合描述符,通过量化编码,得到一个可索引的n类车型类别的编码图像库;而对测试车辆图像,同样提取其局部特征聚合描述符,作为查询向量,导入图像库进行索引,通过近似最近邻搜索方法进行匹配,识别出测试车辆车型。同样该发明也有两个缺陷,其一是缺少深度学习,其二是缺少对图像进行车辆分割处理步骤。卷积神经网络在大货车、小货车、大巴、面包车、SUV和轿车识别上还是比较成功的,但是在子类分类,如识别车的不同车型中的精度就远比不上大类分类的精度。通常来说子类图像识别的困难一般在于两点:(1)子类图像标注数据的获取十分困难,通常需要相关领域的专家进行标注。(2)子类图像识别存在大的类内差别,如在车型识别中,车不同的观察角度,以及小的类间差别。综上所述,采用卷积神经网络等深度神经网络技术对车型识别,目前尚存在着如下若干个棘手的问题:1)如何从复杂的背景中准确分割出被测车辆的整体图像;2)如何尽可能采用极少的标签图像数据来准确获得车辆车型的特征数据;3)如何在车辆车型大类识别基础上还能识别出是哪一款、哪种颜色、哪个年代出的车;4)如何通过深度学习来自动获取车辆车型的特征;5)如何兼顾好识别精度和检测效率,同时尽可能减少训练和学习时间;6)如何在分类器设计时,该分类器即能满足车辆车型子类的分类要求,又能在汽车的外形更新后无需再重新对整个网络进行训练学习;7)如何设计一个真正意义上的使用一个CNN网络实现端到端的车辆检测和识别的框架;8)如何降低天气条件的影响,增加系统的自适应性。技术实现要素:为了克服已有的车辆车型视觉识别技术中的自动化和智能化水平低、缺乏深度学习、难以对适应环境天气变化、难以准确提取出用于识别的车辆整体图像、难以用视觉方式对车辆车型子类进行识别分类、难以兼顾识别精度与时间和检测效率等不足,本发明提供一种基于快速R-CNN深度神经网络的车型识别方法,能有效提高车型视觉识别的自动化和智能化水平、能较好适应环境天气变化具有广泛的自适应性、能保证在较好的检测识别精度基础上有实时检测识别能力、能大大减少对标签车辆数据的依赖具有自动学习和提取车型特征的能力、能较好解决车型识别的复杂性和推广性的矛盾具有较佳的普适性。要实现上述
发明内容,必须要解决几个核心问题:(1)设计一种车辆对象的快速视觉分割算法;(2)研发一种深度学习方法,实现无监督的车型特征提取;(3)设计一种适用于上千种的类型子类的分类器,并具有扩展性;(4)设计一个真正意义上的使用一个快速R-CNN网络实现端到端的车辆检测和识别的框架。本发明解决其技术问题所采用的技术方案是:一种基于快速R-CNN深度神经网络的车型识别方法,包括一个用于深度学习和训练识别的VGG网络、一个用于提取出感兴趣区域的区域建议网络和一个用于车型分类的Softmax分类器;所述的VGG网络,包括8个卷基层,3个全连接层,共计11层;8个卷基层中有5个组的卷积层、2个分类层提取图像特征、1个分类层分类特征;3个全连接层分别连接分类层6、分类层7和分类层8;所述的区域建议网络,包括1个分类层、1个窗口回归层、1个计算分类损失的模块和1个计算窗口回归损失的模块,输出p个感兴趣的建议框;所述的Softmax分类器,将提取到的输入数据特征与学习训练得到特征库数据进行比对,计算出每一个分类结果的概率,然后取概率最高的一个结果进行输出;快速R-CNN深度神经网络,在所述的VGG网络的第5层末尾接入了所述的区域建议网络,使得所述的区域建议网络共享所述的VGG网络的前5层的底层特征提取过程与结果;所述的VGG网络的第6和第7层根据所述的区域建议网络输出的p个感兴趣的建议框内的图像特征进行卷积和ReLU处理,得到p个含有4096向量的特征图,接着分别送给分类层和窗口回归层进行处理,实现车辆图像的分割;另一方面,所述的Softmax分类器对p个含有4096向量的特征图进行分类识别,得到车辆车型的分类结果。所述的Softmax分类器,在学习训练期间将快速R-CNN中的学习结果作为softmax分类器的输入数据;Softmax回归是面向多类分类问题的Logistic回归,是Logistic回归的一般形式,适用于类别之间互斥的情况;假设对于训练集{(x(1),y(1),…,x(m),y(m))},有y(1)∈{1,2,…,k},对于给定的样本输入x,输出一个k维的向量来表示每一种分类结果出现的概率为p(y=i|x),假设函数h(x)如下:hθ(x(i))=p(y(i)=1|x(i),θ)p(y(i)=1|x(i),θ)...p(y(i)=k|x(i),θ)=1Σj=1keθjTx(i)eθ1Tx(i)eθ2Tx(i)...eθkTx(i)---(11)]]>θ1,θ2,…θk是模型的参数,并且所有的概率和为1;加入规则项后的代价函数为:J(θ)=-1m[Σi=1mΣj=1k1{y(i)=j}logeθjTx(i)Σl=1keθlTx(i)]+λ2Σl=1kΣj=0nθij2---(12)]]>代价函数对第j个类别的第l个参数的偏导数为:▿θjJ(θ)=-1mΣi=1m[x(i)(1{y(i)=j}-p(y(i)=j|x(i);θ))}]+λθj---(13)]]>最后,通过最小化J(θ),实现softmax的分类回归,将分类回归结果保存到特征库中;在识别分类时,将提取到的输入数据特征与学习训练得到特征库数据进行比对,计算出每一个分类结果的概率,然后取概率最高的一个结果进行输出。所述的区域建议网络,为了生成区域建议框,在所述的VGG网络的第5层末尾接入了所述的区域建议网络,即在第5层的卷积层输出的卷积特征映射图上滑动一个小网络,这个网络全连接到输入卷积特征映射的n×n的空间窗口上;每个滑动窗口映射到一个低维向量上,低维向量为256-d,每个特征映射的一个滑动窗口对应一个数值;这个向量输出给两个同级的全连接的层;—个窗口回归层和一个分类层;窗口回归层输出每一个位置上,9种推荐区域对应窗口需要具有平移缩放不变性,窗口回归层从256维特征中输出4个平移缩放参数,有4k个输出,即k个建议框的坐标编码;分类层从256维特征中输出属于前景和背景的概率,输出2k个建议框得分,即对每个建议框是车辆目标/非车辆目标的估计概率。区域建议网络的训练,给每个候选区域分配一个二进制的标签,即是否是车辆对象;这里分配正标签给两类候选区域:(i)与某个GT的包围区域有最高的交集并集之比,IoU,重叠的候选区域;(ii)与任意GT包围区域大于0.7的IoU交叠的候选区域;同时分配负标签给与所有GT包围区域的IoU比率都低于0.3的候选区域;删去非正非负的候选区域;具体算法如下:STEP31:顺序读取训练集中的每张图;STEP32:对每个标定的真值候选区域,与其重叠比例最大的候选区域记为前景样本;STEP33::对STEP32)剩余的候选区域,如果其与某个标定重叠,IoU比例大于0.7,记为前景样本;如果其与任意一个标定的重叠比例都小于0.3,记为背景样本;STEP34:对STEP32和STEP33剩余的候选区域弃去不用;STEP35:对跨越图像边界的候选区域弃去不用。为了自动进行候选区域的筛选和区域位置精修,这里采用最小化目标函数;对一个图像的代价函数用公式(14)表示,L({pi},{ti})=1NclsΣiLcls(pi,pi*)+λ1NregΣipi*Lreg(ti,ti*)---(14)]]>式中,i是一个批处理中候选区域的索引,Ncls为分类层的归一化系数,Nreg为窗口回归层的归一化系数,λ为平衡权重,pi为车辆目标的预测概率,为GT标签,如果候选区域为正如果候选区域为负ti为一个向量,表示预测的包围框的4个参数化坐标,为与正候选区域对应的GT包围框的坐标向量,Lcls为分类的对数代价,Lreg为回归对数代价,L({pi},{ti})为总的对数代价;分类的对数代价Lcls由公式(15)计算,Lcls(pi,pi*)=-log[pi*pi+(1-pi*)(1-pi)]---(15)]]>窗口回归对数代价Lreg由公式(16)计算,Lreg(ti,ti*)=R(ti-ti*)---(16)]]>式中,R为定义的鲁棒的代价函数,属于SmoothL1误差,对离群值不敏感,用公式(17)计算,公式(14)中的这一项意味着只有正候选区域,即时才有回归代价,其他情况由于没有回归代价;分类层和窗口回归层的输出分别由{pi}和{ti}组成,这两项分别由Ncls和Nreg以及一个平衡权重λ归一化,这里选择λ=10,Ncls=256,Nreg=2400,通过这样的选择分类层和窗口回归层项差不多是等权重的;关于位置精修,这里采用4个值,中心坐标、宽度和高度,计算方法如下,tx=(x-xa)/wa,ty=(y-ya)/ha,tw=log(w/wa),th=log(h/ha),t*x=(x*-xa)/wa,t*y=(y*-ya)/ha,t*w=log(w*/wa),t*h=log(h*/ha)---(18)]]>式中,x、y、w、h分别表示包围框中心坐标、宽度和高度,xa、ya、wa、ha分别表示候选区域中心坐标、宽度和高度,x*、y*、w*、h*分别表示预测的包围框中心坐标、宽度和高度;用公式(18)的计算结果进行位置精修;实际上,并没有显式地提取任何候选窗口,完全使用区域建议网络自身完成判断和位置精修。所述的VGG网络,在标签车辆图像数据上建立多层神经网络的方法,分为两步,一是每次训练一层网络,二是调优,使原始表示X向上生成的高级表示r和该高级表示r向下生成的X'尽可能一致;卷积神经网络的前向传播过程,上一层的输出即为当前层的输入,并通过激活函数逐层传递,因此整个网络的实际计算输出用公式(4)表示,Op=Fn(…(F2(F1(XW1)W2)…)Wn)(4)式中,X表示原始输入,Fl表示第l层的激活函数,Wl表示第l层的映射权值矩阵,Op表示整个网络的实际计算输出;当前层的输出用(5)表示,Xl=fl(WlXl-1+bl)(5)式中,l代表网络层数,Xl表示当前层的输出,Xl-1表示上一层的输出,即当前层的输入,Wl代表已经训练好的、当前网络层的映射权值矩阵,bl为当前网络的加性偏执,fl是当前网络层的激活函数;采用的激活函数fl为纠正线性单元,即ReLU,用公式(6)表示,fl=max((Wl)TXl,0)=(Wl)TXl(Wl)TXl>00(Wl)TXl≤0---(6)]]>式中,l代表网络层数,Wl代表已经训练好的、当前网络层的映射权值矩阵,fl是当前网络层的激活函数;其作用是如果卷积计算结果小于0,则让其为0;否则保持其值不变。所述的VGG网络,前5层是一个典型的深度卷积神经网络,该神经网络训练是一个反向传播过程,通过误差函数反向传播,利用随机梯度下降法对卷积参数和偏置进行优化调整,直到网络收敛或者达到最大迭代次数停止;反向传播需要通过对带有标签的训练样本进行比较,采用平方误差代价函数,对于c个类别,N个训练样本的多类别进行识别,网络最终输出误差函数用公式(7)来计算误差,EN=12Σn=1NΣk=1c(tkn-ykn)2---(7)]]>式中,EN为平方误差代价函数,为第n个样本对应标签的第k维,为第n个样本对应网络预测的第k个输出;对误差函数进行反向传播时,采用传统的BP算法类似的计算方法,如公式(8)所示,δl=(Wl+1)Tδl+1×f′(ul)ul=Wlxl-1+bl---(8)]]>式中,δl代表当前层的误差函数,δl+1代表上一层的误差函数,Wl+1为上一层映射矩阵,f'表示激活函数的反函数,即上采样,ul表示未通过激活函数的上一层的输出,xl-1表示下一层的输入,Wl为本层映射权值矩阵;通过误差反向传播后,得到各个网络层的误差函数δl,然后采用随机梯度下降法对网络权值Wl进行修改,再进行下一次迭代,直至网络达到收敛条件;在进行误差传递时需要先通过公式(8)中的上采样使得前后两层尺寸相同,再进行误差传递;算法思想是:1)首先逐层构建单层神经元,这样每次都是训练一个单层网络;2)当所有层训练完后,使用wake-sleep算法进行调优。深度学习训练过程具体如下:STEP21:使用自下而上的非监督学习,即从底层开始,一层一层的往顶层训练,学习车辆图像特征:先用无标签车辆图像数据训练第一层,训练时先学习第一层的参数,由于模型容量的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第l-1层后,将l-1层的输出作为第l层的输入,训练第l层,由此分别得到各层的参数;具体计算如公式(5)、(6)所示;STEP22:自顶向下的监督学习,即通过带标签的车辆图像数据去训练,误差自顶向下传输,对网络进行微调:具体计算如公式(7)、(8)所示;基于STEP21得到的各层参数进一步微调整个多层模型的参数,这一步是一个有监督训练过程;STEP21类似神经网络的随机初始化初值过程,由于深度学习的STEP21不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果。所述的VGG网络的前5层的模型初始化:主要分为数据准备、计算图像均值、网络的定义、训练和恢复数据等5个步骤;1)数据准备;通过爬虫软件收集了各类车型的图像数据,得到的基本上是带有标签的车辆图像数据,将其作为训练图像数据;另一类数据是通过卡口摄像机获取的车辆图像数据;2)计算图像均值;模型需要从每张图片减去均值;3)网络的定义;主要定义xml标签路径、图片的路径、存放train.txt、val.txt、test.txt和trainval.txt文件的路径;4)训练;运行训练模块;5)恢复数据;删除前ReLu5的层,并将roi_pool5的bottom改为data和rois;经过上述处理完成了车辆车型预训练的模型初始化工作。所述的区域建议网络利用了所述的VGG网络的前5层底层特征提取结果,即两个网络共享了所述的VGG网络的前5层底层特征,需要通过交替优化来学习优化共享的特征;具体算法如下:STEP41:用区域建议网络的优化训练区域建议网络,用上述的数据准备、计算图像均值、网络的定义、训练和恢复数据等5个步骤完成模型初始化,并端到端微调用于区域建议任务;STEP42:用STEP1的区域建议网络生成的建议框,由快速R-CNN训练一个单独的检测网络,这个检测网络同样是由车辆车型预训练的模型初始化的,这时候两个网络还没有共享卷积层;STEP43:用检测网络初始化区域建议网络训练,固定共享的卷积层,并且只微调区域建议网络独有的层,这时两个网络共享卷积层了;STEP44:保持共享的卷积层固定,微调快速R-CNN的分类层;这样,两个网络共享相同的卷积层,最终构成一个统一的网络。本发明中,车辆车型视觉识别主要流程如下;STEP51:读取待识别图像;STEP52:对待识别图像进行归一化处理,得到RGB三个不同颜色224×224归一化的图像数据;STEP53:将RGB三个不同颜色224×224归一化的图像数据输入到三个CNN通道,经5层卷积处理得到车辆车型特征图像数据;STEP54:对车辆车型特征图像数据通过区域建议网络生成的建议框,选取一个最高得分的建议框,即得到一个感兴趣区域,RoI;将这个RoI通过最大池化5层进行处理得到一个6×6×256RoI的卷积图;STEP55:将RoI的卷积图输出给两个同级的全连接的层处理后得到4096维的特征向量,作为softmax分类器的输入数据;STEP56:对4096维的特征向量用softmax的分类回归分析得到车辆车型识别结果,识别出被测图像中的车辆属于哪一款车型。本发明的有益效果主要表现在:1)提供了一种基于快速R-CNN深度神经网络的车型识别方法;2)研发一种深度学习方法,实现无监督的车型特征提取;3)设计一种适用于上千种的类型子类的分类器,并具有扩展性;4)实现了一个真正意义上的使用一个快速R-CNN网络实现端到端的车辆检测和识别的框架,并具有适用于车辆目标的形态多样性,光照变化多样性,背景多样性等环境下快速、高精度和鲁棒性的车辆子类识别。附图说明图1为边缘信息候选框的检测算法流程;图2为区域建议网络中的处理内容;图3为3种尺度和3种长宽比的滑动窗口示意图;图4为区域建议网络的概要图;图5为区域建议框生成说明图;图6为快速R-CNN网络中的共享网络的说明图;图7为对实际道路上车辆通过区域建议网络处理后得到的候选区域;图8为用代价函数实现区域建议网络自身完成判断和位置精修示意图;图9为基于CNN的车型识别流程框图;图10为wake-sleep算法说明图;图11为VGG模型的CNN的车型识别流程框图;图12为快速R-CNN网络实现端到端的车辆检测和识别的训练过程图;图13为快速CNN网络实现端到端的车辆检测和识别流程概要图;图14为快速R-CNN网络实现端到端的车辆检测和识别的流程图。具体实施方式下面结合附图对本发明的技术方案作进一步详细描述。实施例1参照图1~14,本发明解决其技术问题所采用的技术方案是:(1)关于设计一种车辆对象的快速视觉分割算法;首先,设计一种车辆对象的快速视觉分割算法,即对车辆对象进行区域选择和定位;为了对车辆目标的位置进行定位;由于车辆目标可能出现在图像的任何位置,而且目标的大小、长宽比例也不确定,原有的技术是最初采用滑动窗口的策略对整幅图像进行遍历,而且需要设置不同的尺度,不同的长宽比;这种穷举的策略虽然包含了目标所有可能出现的位置,但是缺点也是显而易见的:时间复杂度太高,产生冗余窗口太多,这也严重影响后续特征提取和分类的速度和性能;对于滑动窗口存在的问题,本发明提出了一种候选区域的解决方案;即预先找出图中车辆目标可能出现的位置;由于候选区域利用了图像中的纹理、边缘、颜色等信息,能保证在选取较少窗口的情况下保持较高的召回率;这样能有效降低后续操作的时间复杂度,并且获取的候选窗口要比滑动窗口的质量更高;可选用的算法是选择性搜索,即selectiveSearch和边缘信息候选框,即edgeBoxes;这些算法的核心是利用了人类视觉的一眼“纵观全局”,直接发现车辆目标在整幅图像中的“大概的位置”;由于选择性搜索算法耗时比较大,不适用与在线的车型识别与检测;本发明采用边缘信息候选框的检测算法。边缘信息候选框的检测算法思想是:利用边缘信息,确定候选框内的轮廓个数和与候选框边缘重叠的轮廓个数,并基于此对候选框进行评分,进一步根据得分的高低顺序确定由大小,长宽比,位置构成的候选区域信息;边缘信息候选框的检测算法流程如图1所示;算法步骤如下:STEP11:用结构深林边缘检测算法对原图像进行处理,得到的边缘图像,然后用非极大值抑制算法对边缘图像进一步处理得到一个相对稀疏的边缘图像;STEP12:将相对稀疏的边缘图像中近乎在一条直线上的边缘点,集中起来形成一个边缘组,具体的做法是,不停地寻找8连通的边缘点,直到两两边缘点之间的方向角度差值的和大于pi/2,这样便得到了N多个边缘组si∈S;STEP13:用公式(1)计算两两边缘组之间的相似度,a(si,sj)=|cos(θi-θij)cos(θj-θij)|γ(1)式中,θi和θj分别为两个边缘组的平均取向,si和sj分别表示两个边缘组,θij为两个边缘组的平均位置xi和xj之间的夹角,γ为相似敏感系数,这里选择γ=2,a(si,sj)两个边缘组之间的相似度;为了提高计算效率,这里将相似度a(si,sj)计算值超过阈值,Ts≥0.05的边缘组进行储存,其余均设置为零;STEP14:给每一个边缘组赋予一个权值,权值计算方法由公式(2)给出,Wb(si)=1-maxTΠj|T|-1a(tj,tj+1)---(2)]]>式中,T为从候选框的边缘开始到达si的边缘组序列集合的路径,Wb(si)为边缘si的权值,tj为……,(参数解释);如果没有找到路径就将Wb(si)设定为1;STEP15:用公式(3)计算候选框的评分,hb=ΣiWb(si)mi2(bw+bh)k---(3)]]>式中,mi为对在边缘组si中所有边缘p的大小mp的总和,Wb(si)为边缘si的权值,bw和bh分别为候选框的宽度和高度,k为大小系数,这里定义k=1.5;计算窗口内边缘个数进行打分,最后排序打分来过滤掉低分的候选框;对于本发明主要应用于卡口车辆的提取,这里就选择最高分的候选框作为被测车辆对象前景图像;(2)关于研发一种深度学习方法,实现无监督的车型特征提取;由于车辆目标的形态多样性,光照变化多样性,背景多样性等因素使得设计一个鲁棒的特征并不是那么容易;然而提取特征的好坏直接影响到分类的准确性;满足上述三个多样性需求的、鲁棒的车型特征提取必须通过无监督深度学习来实现完成,逐层初始化是一个非常有用的解决方案;深度学习的实质,是通过构建具有很多隐层的机器学习模型和海量的训练数据,来学习更有用的特征,从而最终提升分类或预测的准确性;因此,本发明中通过以下两点来实现深度学习:1)模型结构的深度有5层~10多层的隐层节点;2)通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,从而使分类或预测更加容易;本发明,提出了一种在非监督数据上,即无标签车辆图像数据上建立多层神经网络的方法,简单的说,分为两步,一是每次训练一层网络,二是调优,使原始表示X向上生成的高级表示r和该高级表示r向下生成的X'尽可能一致;卷积神经网络的前向传播过程,上一层的输出即为当前层的输入,并通过激活函数逐层传递,因此整个网络的实际计算输出用公式(4)表示,Op=Fn(…(F2(F1(XW1)W2)…)Wn)(4)式中,X表示原始输入,Fl表示第l层的激活函数,Wl表示第l层的映射权值矩阵,l=1,2,3…代表网络层数,Op表示整个网络的实际计算输出;当前层的输出用公式(5)表示,Xl=fl(WlXl-1+bl)(5)式中,l代表网络层数,Xl表示当前层的输出,Xl-1表示上一层的输出,即当前层的输入,Wl代表已经训练好的、当前网络层的映射权值矩阵,bl为当前网络的加性偏执,fl是当前网络层的激活函数;本发明采用的激活函数fl为纠正线性单元,即RectifiedLinearUnits,ReLU,用公式(6)表示,fl=max((Wl)TXl,0)=(Wl)TXl(Wl)TXl>00(Wl)TXl≤0---(6)]]>式中,l代表网络层数,Wl代表已经训练好的、当前网络层的映射权值矩阵,fl是当前网络层的激活函数;其作用是如果卷积计算结果小于0,则让其为0;否则保持其值不变;在CNN中采用局部感受野以及权值共享的方法来进一步降低网络参数。所谓局部感受野,指的是每种卷积核只与图像中的某个特定区域相连接,即每种卷积核只卷积图像的一部分,接下来再在其他层中将这些局部卷积特征联系在一起,既符合图像像素在空间上的关联性,又降低了卷积参数数量。而权值共享则是使得每种卷积核的权值均相同,通过增加卷积核的种类来提取图像多方面特征;为了给车辆车型子类分类提供更多的细节特征,本发明中适当地增加了卷积核的种类;卷积神经网络训练是一个反向传播过程,与传统的BP算法类似,通过误差函数反向传播,利用随机梯度下降法对卷积参数和偏置进行优化调整,直到网络收敛或者达到最大迭代次数停止。反向传播需要通过对带有标签的训练样本进行比较,计算误差。例如采用平方误差代价函数,对于c个类别,N个训练样本的多类别识别问题,网络最终输出误差函数用公式(7)表示,EN=12Σn=1NΣk=1c(tkn-ykn)2---(7)]]>式中,EN为平方误差代价函数,为第n个样本对应标签的第k维,为第n个样本对应网络预测的第k个输出;对误差函数进行反向传播时,采用传统的BP算法类似的计算方法,如公式(8)所示,δl=(Wl+1)Tδl+1×f′(ul)ul=Wlxl-1+bl---(8)]]>式中,δl代表当前层的误差函数,δl+1代表上一层的误差函数,Wl+1为上一层映射矩阵,f'表示激活函数的反函数,即上采样,ul表示未通过激活函数的上一层的输出,xl-1表示下一层的输入,Wl为本层映射权值矩阵;通过误差反向传播后,得到各个网络层的误差函数δl,然后采用随机梯度下降法对网络权值Wl进行修改,再进行下一次迭代,直至网络达到收敛条件;要注意的是,由于层与层之间的大小尺寸不同,在进行误差传递时需要先通过公式(8)中的上采样使得前后两层尺寸相同,再进行误差传递;算法思想是:1)首先逐层构建单层神经元,这样每次都是训练一个单层网络;2)当所有层训练完后,使用wake-sleep算法进行调优。深度学习训练过程具体如下:STEP21:使用自下而上的非监督学习,即从底层开始,一层一层的往顶层训练,学习车辆图像特征:先用无标签车辆图像数据训练第一层,训练时先学习第一层的参数,由于模型容量的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第l-1层后,将l-1层的输出作为第l层的输入,训练第l层,由此分别得到各层的参数;具体计算如公式(5)、(6)所示;STEP22:自顶向下的监督学习,即通过带标签的车辆图像数据去训练,误差自顶向下传输,对网络进行微调:具体计算如公式(7)、(8)所示;基于STEP21得到的各层参数进一步微调整个多层模型的参数,这一步是一个有监督训练过程;STEP21类似神经网络的随机初始化初值过程,由于深度学习的STEP21不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以深度学习效果好坏很大程度上归功于STEP21的特征学习过程;对于带标签的车辆图像数据集,本发明采用网络爬虫技术收集各种车型的车辆图像,这样收集到的车辆图像再经过人工确认作为带标签的车辆图像数据;关于wake-sleep算法,见附图8,其主要思想是在wake阶段对给定生成权值,通过学习得到认知权值;在sleep阶段对给定认知权值,通过学习得到生成权值;wake阶段,第l层生成权值gl,用公式(9)进行更新,Δgl=εsl+1(sl-pl)(9)式中,Δgl为第l层生成权值gl的更新变化值,ε为学习速率,sl+1为第l+1层神经元活跃度,sl为第l层神经元活跃度,pl为第l层神经元的当前状态驱动时的激活概率;sleep阶段,第l层认知权值wl,用公式(10)进行更新,Δwl=εsl-1(sl-ql)(10)式中,Δwl为第l层认知权值wl的更新变化值,ε为学习速率,sl-1为第l-1层神经元活跃度,sl为第l层神经元活跃度,ql为第l层神经元被使用当前认知权值的前一层神经元的当前状态驱动时的激活概率;(3)设计一种适用于上千种的类型子类的分类器,并具有扩展性;本发明采用Softmax分类器对车型进行分类;Softmax分类器在特征鲁棒的情况下,具有较好的分类效果,同时这种分类器具有扩展性,在新的车型出现后无需对原有训练好的网络特征进行重新学习训练,增加了系统的实用性;softmax原理是将提取到的输入数据特征与特征库进行比对,计算出每一个分类结果的概率,然后取概率最高的一个结果进行输出;将CNN中的学习结果作为softmax分类器的输入数据;Softmax回归是面向多类分类问题的Logistic回归,是Logistic回归的一般形式,适用于类别之间互斥的情况。假设对于训练集{(x(1),y(1),…,x(m),y(m))},有y(1)∈{1,2,…,k},对于给定的样本输入x,输出一个k维的向量来表示每一种分类结果出现的概率为p(y=i|x),假设函数h(x)如下:hθ(x(i))=p(y(i)=1|x(i),θ)p(y(i)=1|x(i),θ)...p(y(i)=k|x(i),θ)=1Σj=1keθjTx(i)eθ1Tx(i)eθ2Tx(i)...eθkTx(i)---(11)]]>θ1,θ2,…θk是模型的参数,并且所有的概率和为1。加入规则项后的代价函数为:J(θ)=-1m[Σi=1mΣj=1k1{y(i)=j}logeθjTx(i)Σl=1keθlTx(i)]+λ2Σl=1kΣj=0nθij2---(12)]]>代价函数对第j个类别的第l个参数的偏导数为:▿θjJ(θ)=-1mΣi=1m[x(i)(1{y(i)=j}-p(y(i)=j|x(i);θ))}]+λθj---(13)]]>最后,通过最小化J(θ),实现softmax的分类回归。(4)设计一个真正意义上的使用一个快速R-CNN网络实现端到端的车辆检测和识别的框架;本发明要着重解决以下三个问题:1)如何设计区域建议网络;2)如何训练区域建议网络;3)如何让区域建议网络和快速R-CNN网络共享特征提取网络;区域建议网络内容主要包括:区域建议网络结构、特征提取、区域建议网络的设计和训练思路、候选区域、窗口分类和位置精修;区域建议网络结构、特征提取、区域建议网络的设计:区域建议网络结构、特征提取、区域建议网络的设计如附图11所示,为了能在多个GPU上进行计算,在层内计算中划分为若干组,每组中的计算由其对应GPU完成,这样能提升计算速度;图12所示是一种VGG网络,即visualgeometrygroup,8个卷基层,3个全连接层,共计11层;8个卷基层中有5个组的卷积层、2个分类层提取图像特征、1个分类层分类特征;3个全连接层分别连接分类层6、分类层7和分类层8;图11中,归一化的224×224图像直接送入网络,前五阶段是基础的卷积+ReLU+池化的形式,在第五阶段结尾处再输入p个候选区域,候选区域带有1个图像序号和4个几何位置信息;在第五阶段结尾处的RoI-池化层将每个候选区域均匀分成M×N块,对每块进行最大池化操作;将特征图上大小不一的候选区域转变为大小统一的数据,送入下一层训练和识别;上述前五阶段技术都是卷积神经网络技术中被证明成熟的技术,关键是如何使得这些候选区域可以复用这些图片前五个阶段的网络特征;区域建议网络和快速R-CNN网络共享特征提取网络:附图6描述了区域建议网络和快速R-CNN如何共享的卷积层输出,图11中前五阶段属于一个原始特征提取网络,之后分别给区域建议网络生成区域建议框和给快速R-CNN检测区域建议框内的图像特征,然后输出给两个同级的全连接的层,即图11中的分类层6+ReLU6和分类层7+ReLU7,得到p个含有4096向量的特征图,接着分别送给分类层和窗口回归层进行处理;生成区域建议框:为了生成区域建议框,本发明在最后一个共享的卷积层输出的卷积特征映射上滑动小网络,这个网络全连接到输入卷积特征映射的n×n的空间窗口上,如附图5所示;每个滑动窗口映射到一个低维向量上,附图5中的低维向量为256-d,每个特征映射的一个滑动窗口对应一个数值;这个向量输出给两个同级的全连接的层;—个窗口回归层和一个分类层;窗口回归层输出每一个位置上,9种推荐区域对应窗口需要具有平移缩放不变性,回归层从256维特征中输出4个平移缩放参数;分类层从256维特征中输出属于前景和背景的概率;比如,在每一个滑动窗口的位置,同时预测k个区域建议,因此窗口回归层有4k个输出,即k个建议框的坐标编码;分类层输出2k个建议框得分,即对每个建议框是车辆目标/非车辆目标的估计概率;候选区域:k个建议框被相应的k个称为候选区域的框参数化,即每个候选区域以当前滑动窗口中心为中心,并对应一种尺度和长宽比,本发明使用3种尺度和3种长宽比,如附图3所示;这样在每一个滑动位置就有k=9种候选区域;对于大小为W×H的卷积特征映射,总共有W×H×k个候选区域;在整个快速R-CNN算法中,共有三种图像尺度:1)原图尺度:原始输入图像的大小,不受任何限制,不影响性能;2)归一化尺度:输入特征提取网络的大小,在测试时设置,候选区域在这个尺度上设定;这个参数和候选区域的相对大小决定了想要检测的目标范围;3)网络输入尺度:输入特征检测网络的大小,在训练时设置,为224×224。综上所述,区域建议网络是将一个图像作为输入,输出矩形目标建议框的集合,每个框有一个车辆对象的得分,如附图7所示;训练区域建议网络内容主要包括:训练样本、代价函数和超参数;区域建议网络的训练:区域建议网络的训练,本发明给每个候选区域分配一个二进制的标签,即是否是车辆对象;这里分配正标签给两类候选区域:(i)与某个GT,groundtruth的包围区域有最高的交集并集之比,IoU,Intersection-over-Union,重叠的候选区域;(ii)与任意GT包围区域大于0.7的IoU交叠的候选区域;同时分配负标签给与所有GT包围区域的IoU比率都低于0.3的候选区域;删去非正非负的候选区域;训练样本算法:STEP31:顺序读取训练集中的每张图;STEP32:对每个标定的真值候选区域,与其重叠比例最大的候选区域记为前景样本;STEP33::对STEP32剩余的候选区域,如果其与某个标定重叠,IoU比例大于0.7,记为前景样本;如果其与任意一个标定的重叠比例都小于0.3,记为背景样本;STEP34:对STEP32和STEP33剩余的候选区域弃去不用;STEP35:对跨越图像边界的候选区域弃去不用。代价函数:根据这些定义,这里遵循的多任务代价,采用最小化目标函数;对一个图像的代价函数用公式(14)表示,L({pi},{ti})=1NclsΣiLcls(pi,pi*)+λ1NregΣipi*Lreg(ti,ti*)---(14)]]>式中,i是一个批处理中候选区域的索引,Ncls为分类层的归一化系数,Nreg为回归层的归一化系数,λ为平衡权重,pi为车辆目标的预测概率,为GT标签,如果候选区域为正如果候选区域为负ti为一个向量,表示预测的包围框的4个参数化坐标,为与正候选区域对应的GT包围框的坐标向量,Lcls为分类的对数代价,Lreg为回归对数代价,L({pi},{ti})为总的对数代价;分类的对数代价Lcls由公式(15)计算,Lcls(pi,pi*)=-log[pi*pi+(1-pi*)(1-pi)]---(15)]]>窗口回归对数代价Lreg由公式(16)计算,Lreg(ti,ti*)=R(ti-ti*)---(16)]]>式中,R为定义的鲁棒的代价函数,属于SmoothL1误差,对离群值不敏感,用公式(17)计算,公式(14)中的这一项意味着只有正候选区域,即时才有回归代价,其他情况由于没有回归代价;分类层和窗口回归层的输出分别由{pi}和{ti}组成,这两项分别由Ncls和Nreg以及一个平衡权重λ归一化,这里选择λ=10,Ncls=256,Nreg=2400,通过这样的选择分类层和窗口回归层项差不多是等权重的;关于位置精修,这里采用4个值,中心坐标、宽度和高度,计算方法如下,tx=(x-xa)/wa,ty=(y-ya)/ha,tw=log(w/wa),th=log(h/ha),t*x=(x*-xa)/wa,t*y=(y*-ya)/ha,t*w=log(w*/wa),t*h=log(h*/ha)---(18)]]>式中,x、y、w、h分别表示包围框中心坐标、宽度和高度,xa、ya、wa、ha分别表示候选区域中心坐标、宽度和高度,x*、y*、w*、h*分别表示预测的包围框中心坐标、宽度和高度;用公式(18)的计算结果进行位置精修;实际上,并没有显式地提取任何候选窗口,完全使用区域建议网络自身完成判断和位置精修;区域建议网络的优化:区域建议网络能自然地实现为全卷积网络,通过反向传播和随机梯度下降端到端训练;这里采用图像中心的采样策略训练这个网络,每个批处理由包含了许多正负样本的单个图像组成;随机地在一个图像中采样256个候选区域,用公式(14)计算批处理中的代价函数,其中采样的正负候选区域的比例是1:1;如果一个图像中的正样本数小于128,我们就用负样本填补这个批处理中的其他剩余候选区域;这里将批处理的大小设置为256;通过从零均值标准差为0.01的高斯分布中获取的权重来随机初始化所有新层,所谓新层指的是在区域建议网络后面的层,如附图11中的分类层6+ReLU6和分类层7+ReLU7;所有其他层,即共享的卷积层,如附图11中的前五层,通过对车辆车型的分类样本预训练的模型来初始化的;本发明在车辆车型数据集上对于60k个批处理用的学习率为0.001,对于下一20k个批处理用的学习率是0.0001;动量是0.9,权重衰减为0.0005;车辆车型预训练的模型初始化:主要分为数据准备、计算图像均值、网络的定义、训练和恢复数据等5个步骤;1)数据准备;在data中新建文件夹myself,我们通过爬虫软件收集了各类车型的图像数据,由于带了关键字进行搜索得到的基本上是带有标签的车辆图像数据,我们将其作为训练数据;另一类数据是我们通过卡口摄像机获取的车辆图像数据;训练和测试的输入是用train.txt和val.txt描述的,列出所有文件和他们的标签;分类的名字是ASCII码的顺序,即0-999,对应的分类名和数字的映射在synset_words.txt中;val.txt不能标签,全部设置成0;然后将图片的大小统一成256×256;然后在caffe-master/examples中新建myself文件夹,然后将caffe-maester/examples/imagenet的create_imagenet.sh复制到该文件夹下,将其名改为create_animal.sh,修改训练和测试路径的设置,运行该sh;最后得到myself_train_lmdb和myself_val_lmdb;2)计算图像均值;模型需要我们从每张图片减去均值,所以我们必须获得训练的均值,用tools/compute_image_mean.cpp实现,同样复制caffe-maester/examples/imagenet的./make_imagenet_mean到examples/myself中,将其改名为make_car_mean.sh,加以修改路径;3)网络的定义;把caffe-master/models/bvlc_reference_caffenet中所有文件复制到caffe-master/examples/myself文件夹中,修改train_val.prototxt,注意修改数据层的路径;在训练中,我们用一个softmax—loss层计算损失函数和初始化反向传播,而在验证,我们使用精度层检测我们的精度;还有一个运行的协议solver.prototxt,复制过来,将第一行路径改为我们的路径net:“examples/myself/train_val.prototxt”,test_iter:1000是指测试的批次;test_interval:1000是指每1000次迭代测试一次;base_lr:0.01是基础学习率;lr_policy:“step”学习率变化;gamma:0.1学习率变化的比率;stepsize:100000每100000次迭代减少学习率;display:20每20层显示一次;max_iter:450000最大迭代次数;momentum:0.9学习的参数;weight_decay:0.0005学习的参数;snapshot:10000每迭代10000次显示状态;solver_mode:GPU末尾加一行,代表用GPU运算;4)训练;把caffe-master/examples/imagenet中的train_caffenet.sh复制过来并修改名为train_myself.sh运行,修改里面的路径;5)恢复数据;把caffe-master/examples/imagenet中的resume_training.sh复制过来并运行;经过上述处理完成了车辆车型预训练的模型初始化工作;进一步,本发明提出一种4步训练算法,通过交替优化来学习共享的特征;STEP41:用区域建议网络的优化训练区域建议网络,用上述数据准备、计算图像均值、网络的定义、训练和恢复数据等5个步骤完成模型初始化,并端到端微调用于区域建议任务;STEP42:用STEP1的区域建议网络生成的建议框,由快速R-CNN训练一个单独的检测网络,这个检测网络同样是由车辆车型预训练的模型初始化的,这时候两个网络还没有共享卷积层;STEP43:用检测网络初始化区域建议网络训练,固定共享的卷积层,并且只微调区域建议网络独有的层,这时两个网络共享卷积层了;STEP44:保持共享的卷积层固定,微调快速R-CNN的分类层;这样,两个网络共享相同的卷积层,最终构成一个统一的网络;车辆车型的视觉识别:下面我们给出一个车辆车型视觉识别主要流程,整个处理流程如附图13所示;STEP51:读取待识别图像;STEP52:对待识别图像进行归一化处理,得到RGB三个不同颜色224×224归一化的图像数据;STEP53:将RGB三个不同颜色224×224归一化的图像数据输入到三个CNN通道,经5层卷积处理得到车辆车型特征图像数据;STEP54:对车辆车型特征图像数据通过区域建议网络生成的建议框,选取一个最高得分的建议框,即得到一个感兴趣区域,RoI;将这个RoI通过最大池化5层进行处理得到一个6×6×256RoI的卷积图;STEP55:将RoI的卷积图输出给两个同级的全连接的层处理后得到4096维的特征向量,作为softmax分类器的输入数据;STEP56:对4096维的特征向量用softmax的分类回归分析得到车辆车型识别结果,本发明中将车辆车型分类成1000种类,从而识别出被测图像中的车辆属于哪一款车型。实施例2本发明的视觉识别技术具有普适性,适用于其他对象的子类识别,只要参与训练的数据运行在本发明开发的系统中进行学习,获得该类对象的特征后就能实现该类对象的子类识别任务。实施例3本发明的视觉识别技术具有扩展性,在新的子类出现后无需对原有训练好的网络特征进行重新学习训练,只要对新的子类进行训练学习,并且在系统中的softmax分类器扩展分类的数据即可。以上所述仅为本发明的较佳实施举例,并不用于限制本发明,凡在本发明精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1