1.一种基于深度学习的车辆检测方法,其特征在于,具体按照以下步骤实施:
步骤1,构建带有标注和标签的图片库作为训练样本集和测试样本集;
步骤2,构建改进的Faster R-CNN模型,所述改进的Faster R-CNN模型由区域建议网络和改进的Fast R-CNN网络组成;
步骤3,利用Edge Boxes初步提取出较为准确的车辆候选区域;
步骤4,对改进的Faster R-CNN模型参数进行初始化;
步骤5,进行特征提取,对候选区域进行系列卷积、池化和非线性运算,得到特征图;
步骤6,利用RPN过滤掉不包含车辆区域的候选框,即,将步骤5提取的特征图矩阵输入到步骤2中构建的区域建议网络中,利用Softmax对提取到的特征进行分类判别过滤掉不包含车辆的候选框,并利用非极大值抑制算法去除多余的候选框,得到候选框集合C';
步骤7,融合第三、第四和第五层卷积层特征对车辆进行描述,利用改进的Fast R-CNN模型对步骤6中RPN模型产生的候选框进行分类判别,得到图像中车辆所在的位置和所属类别;
步骤8,根据步骤7得到的结果划分用于训练的正负样本;
步骤9,根据实际输出与期望输出得到总体误差,利用反向传播算法和随机梯度下降算法,通过交替训练的方式对模型进行训练,依次调整每层神经网络的权值,最终得到改进的Faster R-CNN模型;
步骤10,使用训练集测试初步训练好的改进的Faster R-CNN模型,从而产生难负样本;
将步骤9输出的得分高于0.7并且与任意真实区域包围盒的IoU值(两个区域的交集面积与并集面积之比)小于0.5的候选框作为难负样本;
步骤11,将步骤9产生的难负样本加入到训练集中,对网络再次训练,从而加强模型的类别判定能力,得到最优的改进的Faster R-CNN模型;
步骤12,利用步骤11得到的最优的改进的Faster R-CNN模型,对实际中采集的待检测图像进行处理,从而得到车辆检测结果。
2.根据权利要求1所述的基于深度学习的车辆检测方法,其特征在于,所述的步骤1具体为:利用开源标定软件LabelImg构建带有标注和标签的图片库作为训练样本集和测试样本集,其中样本集包含相同天气情况不同场景下和不同天气情况相同场景下拍摄的车辆照片(包括背景),标注是记录车辆在一整张图像中的左上角点和右下角点的坐标,标签是指每个给定的车辆位置上车辆所属的类别。
3.根据权利要求1所述的基于深度学习的车辆检测方法,其特征在于,所述的步骤2中,RPN由六个串联的卷积层和两个并行的卷积层构成,两个并行的卷积层中一个卷积层负责输出一系列的矩形候选框的位置坐标值,另一个卷积层负责输出该矩形候选区域是否为目标的置信度;改进的Fast R-CNN由五个卷积层、三个RoI池化层、一个全连接层和两个并行的全连接层构成,两个并行的全连接层中一个全连接层通过Softmax预测候选区域属于每个类别的概率(置信度),另一个全连接层通过边框回归输出矩形候选框更合适的位置。
4.根据权利要求1所述的基于深度学习的车辆检测方法,其特征在于,所述的步骤3具体按照以下步骤实施:步骤3.1,根据结构化边缘算法计算整张图片中每一个像素点的边缘响应;
步骤3.2,确定边缘组,将近似在同一直线上的边缘线段集中起来形成一个边缘组,使用贪心算法计算相邻8条边的曲率,如果方向变化小于一个阈值π/2,则把这8条边确定为一个边缘组,得到所有边缘组集合R;
步骤3.3,计算边缘组之间的相似度,,定义相似度集合为S,S初始化为 根据公式(1)计算边缘组ri与边缘组rj相似度,并将其添加到相似度集合S中;
s(ri,rj)=|cos(θi-θij)cos(θj-θij)|γ (1)其中θij表示di,dj之间的夹角,di为边缘组ri的平均距离,dj为边缘组rj的平均距离,θi表示边缘组ri的平均角度,θj表示边缘组rj的平均角度,γ表示相似度的敏感度,用来调整两个边缘组ri和rj之间的相似度,在实际应用中一般取值为2;
当s(ri,rj)大于0.05时,则认定认为这两个边缘组ri,rj之间具有相似性,则相似性的值即为s(ri,rj),添加至相似度集合S中,当s(ri,rj)小于等于0.05时,将边缘组ri,rj之间的相似性值记为0,并添加至相似度集合S中;
步骤3.4,使用一个滑动窗口扫描整个图像搜索候选框,每滑动一步根据步骤3.1、步骤
3.2和步骤3.3得到一个窗口中的边缘组以及相似度之后,按照公式(2)计算每一个边缘组的权值;
若wb(si)=0,则判定该边缘组不属于窗口中物体轮廓,若wb(si)=1,则把该边缘组判定为该窗口中物体轮廓的一部分;其中T为物体轮廓边缘组按顺序排列的路径;
步骤3.5根据步骤步骤3.4得到的边缘组权值以及候选框的长宽等参数计算出其置信度;
其中,bw与bh分别为候选款的宽度与长度,其中κ=1.5;mi表示每一个像素点的幅度值;
步骤3.6,设置置信度阈值,如果该候选框的置信度hb小于置信度阈值,则去除该候选框,如果hb大于置信度阈值,则保留该候选框,得到可能包含车辆的候选框集合C;本发明中将置信度阈值设置为0.75。
5.根据权利要求1所述的基于深度学习的车辆检测方法,其特征在于,所述的步骤4具体为,其中RPN和改进的Fast R-CNN共享的卷积层参数使用ImageNet上训练好的ZF权值参数进行初始化,两个网络独有的层采用均值为0,标准差为0.01的高斯分布随机初始化。
6.根据权利要求1所述的基于深度学习的车辆检测方法,其特征在于,所述的步骤5具体为,对步骤3提取的候选框集合C输入到改进的Faster R-CNN模型中通过前五层的卷积层进行系列卷积和池化处理,得到特征图矩阵,其中候选框集合C={x1,x2,...xj},卷积运算公式为:其中 为第l层卷积层的第j个特征图矩阵;f(g)为非线性激活函数,本发明采用ReLU激活函数对卷积运算结果进行非线性处理,;Nj代表输入特征图的组合,*代表卷积运算,为卷积核矩阵,表示第l层第j个特征图与第l-1层第i个特征图连接之间的卷积核,为偏置矩阵,表示第j个特征图对应的偏置项;池化运算公式为:其中down(·)表示采样函数, 表示第l层第j个特征图对应的系数, 为其对应的偏置项。
7.根据权利要求1所述的基于深度学习的车辆检测方法,其特征在于,所述的步骤7具体按照以下步骤实施:利用Fast R-CNN模型对步骤6中RPN模型产生的候选框集合C'进行分类判别,得到检测框P和检测框中车辆所属的类别;在这一步骤中,融合第三、第四和第五层卷积层特征对车辆进行描述,通过RoI池化将每一个候选区域分别映射到卷积层第三层、第四层和第五层的特征图中,获取相应的特征图信息,并采样到固定的长度,然后将各层提取到的特征经过L2归一化之后进行合并缩放,最后再利用1×1的卷积核对特征进行进一步的降维之后输出到全连接层进行分类和回归。
8.根据权利要求6所述的基于深度学习的车辆检测方法,其特征在于,所述的步骤8具体为:划分正负样本,根据公式(6)计算步骤7输出的检测矩形框Bp与步骤1中人工标注的真实矩形框Bgt的交并比IoU划分正负样本;其中将与真实矩形框有最大IoU值检测矩形框和与任意真实矩形框的IoU值大于0.7的检测矩形框划分为正样本,将所有与真实矩形框的IoU值低于0.3的检测矩形框划分为负样本,
9.根据权利要求1所述的基于深度学习的车辆检测方法,其特征在于,所述的步骤9具体为,步骤9.1,根据实际输出与期望输出得到总体误差,其公式为:
式中i是一次批处理中选取的候选框索引,pi为候选框i是车辆的概率;如果候选框是一个正样本,其对应的真实区域标签 为1,否则 为0;ti表示预测的矩形框的4个参数化坐标向量,是相对应的真实区域矩形框的坐标向量;
步骤9.2,通过交替训练的方式对模型进行训练,交替训练指的是RPN和Fast R-CNN两个模型之间的交替;利用反向传播算法将一定比例的误差分配给每个权值,随机梯度下降学习算法依次调整每层神经网络的权值以减少误差,得到初步训练好的Faster R-CNN模型;其中交替训练时网络初始学习率设置为0.01,按照polynomial多项式衰减策略进行衰减,最低的学习率设置为0.0001,动量设置为0.9,权重衰减系数设置为0.0005,Dropout值设置为0.5。
10.根据权利要求9所述的基于深度学习的车辆检测方法,其特征在于,所述的步骤9.2具体为,步骤9.2.1,采用反向传播算法和随机梯度下降算法独立训练一个RPN模型,该阶段迭代80000次;
步骤9.2.2,将步骤9.2.1中生成的候选框作为Fast R-CNN模型的输入,独立训练一个Fast R-CNN模型,该阶段迭代40000次;
步骤9.2.3,微调RPN模型参数,使用步骤9.2.2中得到的权值参数对RPN进行初始化,将共享卷积层的学习率设置为0,只更新RPN独有层的参数,该阶段迭代80000次;
步骤9.2.4,微调Fast R-CNN模型参数,同样将共享卷积层的学习率设置为0,只更新Fast R-CNN全连接层的参数,该阶段迭代40000次。