1.一种融合滑动窗口与Faster R-CNN卷积神经网络的车标识别方法,其特征在于具体步骤如下:步骤1:定义车标种类集合为C={Ci|i=1,…,t},其中t为车标的总数,并建立相应的含ground truth的数据集;
步骤2:构建含有10层的卷积神经网络,10层依次是卷积层Conv1,池化层Pool2,卷积层Conv3,池化层Pool4,卷积层Conv5,卷积层Conv6,卷积层Conv7,全连接层Fc8,全连接层Fc9,分类层Softmax及回归层bbox_prediction;为了生成区域建议窗口,在该网络卷积神经网络卷积层Conv7输出的特征图上滑动一个小网络,这个网络全连接到全连接层Fc8,对RPN区域建议网络进行初始化,设定建议窗口的滑动步长,滑动窗口尺寸等初始化信息,其中全连接层Fc8的输入特征大小为N*N*M,M为卷积层Conv7的输出特征图的维度,N为归一化后的特征图边长,单位为像素,分类层Softmax的输出向量大小为t+1,回归层bbox_prediction的输出向量大小为4*(t+1);
步骤3:使用步骤1中的车标数据集对卷积神经网络进行训练,得到训练好的卷积神经网络:步骤4:利用训练好的卷积神经网络对输入的车辆图像I进行识别,具体为:
步骤4.1:识别车灯并根据车灯的位置对车标进行粗定位,得到车标粗定位区域Rc;
步骤4.2:将图像I输入训练好的卷积神经网络,得到Z个目标区域包围框集合bbox=(bboxi|i=1,2,...,Z)与该区域的预测概率向量 bboxi=(xi1,yi1,xi2,yi2),i=1,2,...,Z,根据式(19)得到bboxi的识别结果 及其概率其中, 为bboxi区域为车标Ck的概率,k=1,2,...,t,(xi1,yi1)为bboxi左上角的坐标,(xi2,yi2)为bboxi右下角的坐标,单位为像素;
步骤4.3:根据式(20)从上一步所得的集合bbox中筛选新的集合BBOX:其中,Nb为集合BBOX中包围框的数量,ρ1,ρ2为比例系数;
步骤4.4:根据式(21),得到车标定位的包围框bboxmaxk与其识别结果Cmax,完成车标定位与识别:其中, 为bboxmaxk的得分。
2.根据权利要求1所述的融合滑动窗口与Faster R-CNN卷积神经网络的车标识别方法,其特征在于步骤3中的对卷积神经网络进行训练的具体过程为:步骤3.1:将一批数量为Nbatch的训练集传入卷积神经网络并进行前7层的卷积与池化操作,得到Nbatch张M维特征图;
步骤3.2:将上一步得到的特征图传入RPN区域建议网络,建议窗口对特征图进行目标提取并传入全连接层Fc8,具体为:步骤3.2.1:采用2种不同尺寸和3种不同比例合成的6种规格的滑动窗口在特征图上自上而下、自左而右提取目标窗口 其中i=1,2,...,Nbatch,j=1,2,...,nj,nj为第j张特征图提取到的目标窗口的总数,窗口的滑动步长为1;
步骤3.2.2:将ground truth区域映射到M维特征图上,记为GTi,其中i=1,2,...,Nbatch;
步骤3.2.3:根据式(1),(2)划分前景样本集合PS与背景样本集合BS并从 中剔除不属于PS与BS的样本:其中, 为 与GTi的交集占并集的比例,μ1,μ2为分类系数,0<μ2<μ1<1;
步骤3.2.4:将 分割平均为N*N个小矩阵 如式(3)所示:
其中,x=1,2,...,N,y=1,2,...,N;
步骤3.2.5:根据式(4),(5)将窗口 归一化为 并输入Fc8:
其中, 为窗口 第x行第y列的像素值,x=1,2,...,N,y=1,2,...,N;
步骤3.3:全连接层Fc8输出的特征向量输入全连接层Fc9,构成一般神经网络;
步骤3.4:将全连接层Fc9输出的特征向量输出至分类层Softmax与回归层bbox_prediction,Softmax用于判断特征的类型,bbox_prediction用于确定特征的目标位置,根据式(6),(7),(8),(9),(10)计算损失函数L({pij},{tij}),并根据链式法则逐步计算反向误差,更新各层的权重参数值,完成训练:其中, 为GTi标签,设第i张特征图的标签为 k=1,2,...,t,则pij为 是车标Ck的预测概率,tij为一个4维向量,表示预测包围框的4个参数坐标,为GTi的包围框坐标向量,Ncls为分类层Softmax的归一化系数,Nreg为回归层bbox_prediction的归一化系数,λ为平衡权重,Lcls为分类层Softmax的损失函数,Lreg为回归层bbox_prediction的损失函数。
3.根据权利要求1所述的融合滑动窗口与Faster R-CNN卷积神经网络的车标识别方法,其特征在于步骤4.1中的识别车灯并根据车灯的位置对车标进行粗定位的具体过程为:步骤4.1.1:根据公式(11)对车灯进行粗定位,得到左车灯区域Il与右车灯区域Ir:其中,图像I的高度为height,宽度为width, 为比例系数,k=1,2,3, (xl,yl)为Il左上角的坐标,hl与wl分别为Il的高和宽,(xr,yr)为Ir左上角的坐标,hr与wr分别为Ir的高和宽,单位为像素;
步骤4.1.2:根据Il与Ir从I中提取并得到图像ROIl与ROIr;
步骤4.1.3:根据式(13)得到差值图像Difl与Difr,并选取合适的阈值进行二值化,得到Bl与Br:其中,Difp为灰度图,Difp为Difl或Difr,ROIp为Difl或Difr,Difp(i,j)为图像Difp上第i行第j列的像素值,ROIp(i,j,k)为图像ROIp上第k个通道的第i行第j列的像素值,temp1与temp2为中间值,abs为取绝对值;
步骤4.1.4:统计Bl与Br中每一行白色像素点的个数Tl,i与Tr,i,i=1,2,...,wl,并根据式(14)(15)更新Tl,k,并将Bk中Tk,i=0的行置为黑色:Tk,max=max(Tk,i)(14)
其中,Tk,i为Tl,i或Tr,i,Bk为Bl或Br,Tk,max为Tk,i中的最大值,threshold为系数;
步骤4.1.5:根据式(16)对Bk进行处理:
其中,e1,e2为结构元,为膨胀运算,Θ为腐蚀运算;
步骤4.1.6:扫描整幅二值图像Bk,计算各白色区域的像素面积,得到连通区域的候选集合lk,i={li|i=1,2,…,m},m为过滤后连通区域的总数,并计算各个连通域面积ak,i={ai|i=1,2,…,m};
步骤4.1.7:通过比较筛选出面积最大的区域ak,max,使其满足公式(7),得到ak,max的外接矩形Rk(x'k,y'k,w'k,h'k),并根据Ik在I中的位置,更新Rk的坐标,完成车灯识别:ak,max=max{ak,1,ak,2,......,ak,n} (17)其中,Rk(x'k,y'k,w'k,h'k)为Rl(x'l,y'l,w'l,h'l)或Rr(x'r,y'r,w'r,h'r),Rl为左车灯外接矩形,Rr为右车灯外接矩形,(x'k,y'k)为Rk左上角的坐标,h'k与w'k分别为Rk的高和宽;
步骤4.1.8:根据式(18)得到车标粗定位区域Rc:
其中,为扩展系数,y'min为y'l与y'r中的较小值,y'max为Rl与Rr下边界竖直方向的较大值,(x1c,y1c)为Rc左上角的坐标,(x2c,y2c)为Rc右下角的坐标。