YOLOV3网络

文章目录

  • 一、YOLOV3网络结构
    • 1.1 边界框的预测
    • 1.2 分类预测
    • 1.3 跨尺度预测
  • 二、算法使用步骤
  • 三、损失函数
    • 3.1 V1 loss 计算
    • 3.2 V2 loss 计算
    • 3.3 V3 loss 计算
      • 3.3.1 V3 loss 计算
      • 3.3.2 V3 loss 计算
      • 3.3.2 V3 loss 计算


一、YOLOV3网络结构

YOLOV3网络_第1张图片

1.1 边界框的预测

网络使用维度集群作为锚点盒来预测边界框。网络预测每个边界框的4个坐标tx, ty, tw, th,具有维度先验和位置预测的边界框如图3.4所示,如果单元格与图像左上角偏移(cx, cy),且边界框先验具有宽度和高度pw, ph,则预测结果为:

YOLOV3网络_第2张图片

在训练过程中,使用了误差损失平方和。如果某坐标预测的参考标准是,则梯度是参考标准值减去预测值:。这个参考标准值可以很容易地通过上述转换方程来计算。
YOLOV3网络_第3张图片
网络使用逻辑回归预测每个边界框的对象得分。如果边界框先验与参考标准对象的重叠比任何其它边界框先验都多,那么这个值应该是1;如果边界框优先级不是最好的,但是与参考标准对象重叠超过某个阈值就忽略预测。本文使用的阈值是5,该网络仅为每个参考标准对象预先分配一个边界框。如果一个边界框先验没有分配给一个参考标准对象,它不会导致坐标或类预测的损失,而仅仅是一个对象。

1.2 分类预测

输入的图像被网络划分为S×S的网格,每个网络预测是否有物体的中心落入其内部。若某网格预测为是,则该网格再预测出B个检测边界框以及每个框的置信度(Confidence)。其中,置信度反映了检测边界框对其检测出物体的自信程度。计算公式为:
YOLOV3网络_第4张图片
式中,Pr(Object)为边界框包含目标物体的概率;BBgt为基于训练标签的参考标准框(Uround Truth Box);BBdt为检测边界框;area(·)表示面积。每个框使用多标签分类来预测边界框可能包含的类。网络没有使用softmax,因为它对于良好的性能是不必要的,而是简单地使用独立的逻辑分类器。在训练过程中,使用二元交叉熵损失进行分类预测。

1.3 跨尺度预测

网络采用了三种不同尺度的预测边框,该网络提取特征来源使用了与特征金字塔网络[43]相似的概念,从基本特征提取器中添加了几个卷积层。最后预测了一个三维张量,包括编码边界框、目标和分类预测。

二、算法使用步骤

采用深度预警网络对高速行驶的侧后方车辆进行检测,其算法过程如下:
第一步:离线数据集的获取和网络的训练
基于本章所述的数据集制作过程进行数据集的制作,建立好深度预警网,在完整的图像上进行训练,使用多尺度的训练,大量的数据扩充,批处理标准化,使用Keras深度学习框架来训练和测试。在训练过程中,使用二元交叉熵损失进行分类预测。损失函数由坐标误差、IOU误差以及分类误差三部分组成,如公式 (3.11)。
在这里插入图片描述
最后通过前向传播和反向传播算法确定神经元之间的传递权值。
第二步:算法在线实时检测
通过第一步训练好的深度预警网络就可以实现高速环境下car、turck、bus不同车型的检测,深度预警网络算法流程如图3.7所示,该网络主要由卷积、残差块、上采样、连接块等操作完成,具体的操作流程和结构在第二章和本章3.1节已经进行了详细的介绍。算法的实质是:首先通过特征提取网络对输入416×416×3的图像进行提取特征,得到S×S大小的特征图,然后将输入图像分成S×S个网格单元,接着如果ground truth中某个检测目标的中心坐标落在某个网格单元中,那么就由该网格单元来预测该目标,因为每个网格单元都会预测3个边界框,这几个边界框中只有和ground truth的IOU最大的边界框才是用来预测该目标的。预测得到的输出特征图有两个维度是提取到的特征的维度,比如S×S,还有一个维度是B×(5+C)的深度,从而实现对高速驾驶环境下的目标车辆进行检测。

YOLOV3网络_第5张图片

三、损失函数

我们都知道V3是经过V2,V1迭代而来的,接下来就分别介绍一下各个损失函数。

3.1 V1 loss 计算

YOLOV3网络_第6张图片

3.2 V2 loss 计算

V2在v1基础上改动了关于bbox的w和h的损失计算方式 即从:
在这里插入图片描述

3.3 V3 loss 计算

YOLOV3网络_第7张图片

3.3.1 V3 loss 计算

3.3.2 V3 loss 计算

3.3.2 V3 loss 计算

你可能感兴趣的:(机器视觉算法,算法)