1.一种基于改进YOLOv3的车辆检测方法,其特征在于,包括以下步骤:
1)修改卷积神经网络结构,在Darknet层与三个yolo层之间设计三个平行分支的网络,即YOLO‑TN网络,三个平行分支网络都加入具有不同膨胀率(dilation rate)的空洞卷积(dilated convolution),使得三个平行分支网络具有不同的感受野(receptive field),并共享三个平行分支网络的参数;
2)构建车辆检测数据集,并对车辆检测数据集中的车辆位置信息进行标注;
3)定义损失函数,通过K‑means聚类方法生成锚框(anchor box),训练基于YOLO‑TN和YOLOv3的车辆检测模型;
4)基于BN(Batch Normalization)层中的γ系数对YOLO‑TN网络进行模型剪枝,压缩YOLO‑TN网络;
5)利用训练好的车辆检测模型对车辆进行检测,对比两者的检测结果。
2.如权利要求1所述的基于改进YOLOv3的车辆检测方法,其特征在于,所述步骤(1)中的YOLO‑TN网络包含大小为1×1的卷积层、大小为3×3的卷积层、BN(Batch Normalization)层、上采样层、路由层(route)、shortcut层、yolo层,各层含义及作用如下:卷积层:用于提取图像的特征,参数为Wi,i由卷积的大小决定;
BN层:用于加速训练过程,BN层对卷积层传递来的参数Wi进行归一化处理,引入两个可学习的参数γ和β,重新分布归一化的参数;
上采样层:用于扩大特征图,提高分辨率;
路由层:将低层卷积层的输出与上采样层的输出合并;
shortcut层:一种跨层连接,将输入层与输出层一起作为最终的输出层;
yolo层:网络的最后一层,输出三个尺度的特征图,通过K‑means方法聚类得到的锚框(anchor box),对边界框进行回归,得到最终的预测框。
3.如权利要求2所述的基于改进YOLOv3的车辆检测方法,其特征在于,所述BN层的归一化处理过程如下:
1.1)给定一批训练数据b={X1,X2,……,Xm},求数据均值和方差,公式如下:其中,μb是数据均值, 是数据方差,m是数据大小;
1.2)对数据进行归一化处理,公式如下:
其中,ε是一个极小值,防止分母为零时计算出错;
1.3)对归一化的数据进行变换重构,公式如下:
其中,γ和β为待学习的参数;
1.4)为了恢复数据中原来的特征分布,γ和β按如下公式进行计算:β=ub。
4.如权利要求1所述的基于改进YOLOv3的车辆检测方法,其特征在于,所述步骤(2)中构建的车辆检测数据集包括训练集、测试集、验证集,所述训练集用于训练YOLO‑TN和YOLOv3网络模型,所述测试集用于测试训练得到的模型的精度,验证集主要用于评估训练得到的模型的泛化能力;所述对车辆位置信息进行标注,获得标注框(ground truth)的中心点坐标 宽和高 以及该标注框的标签,标记为Car。
5.如权利要求1所述的基于改进YOLOv3的车辆检测方法,其特征在于,所述步骤(3)中的损失函数定义如下:边界框的位置信息损失计算公式如下:
其中λcoord=5,用于增大含有目标的grid cell的损失权重; 表示第i个grid cell中的第j个边界框中是否存在待检测的车辆,如果存在则取1,否则取0,即不计算边界框位置损失;x,y,w,h为预测的边界框的位置, 为标注框的坐标信息; 为一个权重系数,用于加大对小目标的损失;
置信度损失包括含有目标和不含目标的损失,计算公式如下:
上式左边为grid cell中存在车辆时的置信度损失,计算3个边界框与标注框(ground truth)之间的交并比即IOU大小,选择其中的最大值Ci进行置信度损失的计算;上式右边为gridcell中不存在车辆时的置信度损失,其中λnoobj=0.5,用于减小不含有目标的grid cell的损失权重, 表示第i个grid cell中的第j个边界框中是否存在待检测的车辆,如果存在则取0,即不计算该损失,否则取1;
目标的分类损失计算公式如下:
当目标属于汽车该类别时 为1,否则为0,pi(c)为当前目标属于汽车的概率。
6.如权利要求1所述的基于改进YOLOv3的车辆检测方法,其特征在于,所述步骤(3)中通过K‑means聚类生成锚框的方法包括如下步骤:
3.1)观察车辆检测数据集中标注框坐标信息分布,选择k个聚类中心(Wi,Hi),i∈{1,
2,……,k},其中,Wi和Hi为锚框的宽和高;
3.2)计算每个标注框和每个聚类中心的距离d,计算公式如下:其中,IOU表示交并比,anchor表示锚框,truth表示标注框,计算公式如下:其中,分子表示锚框和标注框相交的面积大小,分母表示锚框和标注框相并的面积大小,当IOU值最大时,即标注框和锚框匹配得最好,此时d最小,将标注框分配给该聚类中心;
3.3)将所有标注框分配完毕后,分别计算每个聚类中心所属的标注框宽和高的平均值,作为新的聚类中心;
3.4)重复步骤3.2)、3.3)n次,直到dn‑dn‑1趋于0时,输出聚类结果。
7.如权利要求1所述的基于改进YOLOv3的车辆检测方法,其特征在于,步骤(3)中所述的车辆检测模型的训练过程步骤如下:
3.a)采用在ImageNet数据集上预先训练好的Darknet模型参数作为YOLO‑TN和YOLOv3的初始化权重以减少训练时间;
3.b)将训练集中的图片分辨率调整为416×416,分别输入到YOLO‑TN和YOLOv3网络中,图片在网络层中经过卷积层、BN层、上采样层、路由层、shortcut层处理后,传递给yolo层;
3.c)yolo层中特征图被划分成S×S个网格(grid cell),利用K‑means聚类得到的锚框,得到锚框相对于标注框的偏移值:tx,ty,tw,th,具体计算公式如下:tx=Gx‑Cx
ty=Gy‑Cy
其中,Gx和Gy表示特征图中标注框的坐标,Gw和Gh表示特征图中标注框的宽和高,Cx和Cy表示特征图中grid cell的左上角坐标,Pw和Ph是锚框映射到特征图上的宽和高;
3.d)训练集中的图片经过步骤3.b)和3.c)处理后,最终得到包括卷积层、BN层以及偏移值:tx,ty,tw,th这些待学习的参数。
8.如权利要求1所述的基于改进YOLOv3的车辆检测方法,其特征在于,所述步骤(4)中的模型剪枝基于BN层的γ系数进行,方法如下:对所有BN层中的γ系数按从小到大的规则进行排序,设定阈值为0.3,舍去前30%的γ值,即舍弃这些γ值所在的BN层以及与该BN层相关联的卷积层,最终得到剪枝后的模型。
9.如权利要求1所述的基于改进YOLOv3的车辆检测方法,其特征在于,所述步骤(5)中车辆检测过程包括以下步骤:
5.1)将测试集中的图片大小调整为416×416,分别输入到训练好的YOLOv3和YOLO‑TN车辆检测模型中;
5.2)车辆检测模型对输入的图片进行特征提取,经过yolo层时,根据车辆检测模型所学习到的锚框相对于标注框的偏移值,得到所预测的边界框的位置信息,计算公式如下:bx=(σ(tx)+Cx)/W
by=(σ(ty)+Cy)/H
其中,W和H是输入到yolo层中特征图的大小,bx,by,bw,bh即是最终输出的边界框,由于tw和th目前目前存在于对数空间,为了输出真实值,需要将其映射回指数空间,即转换为和
5.3)yolo层特征图中每个grid cell都分配三个锚框,通过非极大值抑制(non‑maximum suppression,NMS)的方法,过滤掉冗余的窗口,得到最优检测框。
10.如权利要求9所述的基于改进YOLOv3的车辆检测方法,其特征在于,所述步骤5.3得到最优检测框的具体步骤如下:
5.3.1)计算出所有锚框中置信度得分最高的一个,记为A;
5.3.2)设定阈值为0.5,计算剩下的锚框与A的IOU值,若IOU≥0.5,则舍弃该框;
5.3.3)保留IOU<0.5的锚框,重复5.3.1)和5.3.2)直到遍历完所有的锚框。