YOLOV3网络


一、YOLOV3网络结构

在这里插入图片描述

1.1 边界框的预测

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

在这里插入图片描述

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

1.2 分类预测

输入的图像被网络划分为S×S的网格,每个网络预测是否有物体的中心落入其内部。若某网格预测为是,则该网格再预测出B个检测边界框以及每个框的置信度(Confidence)。其中,置信度反映了检测边界框对其检测出物体的自信程度。计算公式为:
在这里插入图片描述
式中,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)的深度,从而实现对高速驾驶环境下的目标车辆进行检测。

在这里插入图片描述

三、损失函数

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

3.1 V1 loss 计算

在这里插入图片描述

3.2 V2 loss 计算

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

3.3 V3 loss 计算

在这里插入图片描述

3.3.1 V3 loss 计算

3.3.2 V3 loss 计算

3.3.2 V3 loss 计算

YOLOv3是一种基于深度学习的目标检测算法,需要使用深度学习框架进行实现。在MATLAB中,可以使用深度学习工具箱来实现YOLOv3算法。下面介绍在MATLAB中如何安装YOLOv3网络。 1. 安装深度学习工具箱 首先需要安装MATLAB的深度学习工具箱。可以在MATLAB的Add-On Explorer中搜索“Deep Learning Toolbox”进行安装。 2. 下载YOLOv3预训练模型 下载YOLOv3预训练模型。可以在YOLO官方网站上下载,也可以在GitHub上下载。这里以在GitHub上下载为例。 打开YOLOv3的GitHub页面:https://github.com/pjreddie/darknet 点击“cfg/yolov3.cfg”进入文件页面,点击“Raw”按钮,保存文件到本地。 点击“yolov3.weights”进入文件页面,点击“Download”按钮,保存文件到本地。 3. 将预训练模型转换为MATLAB格式 下载预训练模型后,需要将其转换为MATLAB格式,才能在MATLAB中使用。可以使用MATLAB提供的importDarknetNetwork函数进行转换。代码如下: ```matlab cfgFileName = 'yolov3.cfg'; weightsFileName = 'yolov3.weights'; net = importDarknetNetwork(cfgFileName, weightsFileName); ``` 4. 使用YOLOv3网络进行目标检测 将预训练模型转换为MATLAB格式后,就可以使用YOLOv3网络进行目标检测了。可以使用MATLAB提供的detect函数进行目标检测。代码如下: ```matlab [bboxes, scores, labels] = detect(net, img); ``` 其中,net为YOLOv3网络,img为需要进行目标检测的图像。函数返回的bboxes变量为目标的边界框,scores变量为目标的概率值,labels变量为目标的标签。 注意,在使用YOLOv3进行目标检测时,需要将图像先进行预处理。可以使用MATLAB提供的yolov3Preprocess函数进行预处理。代码如下: ```matlab img = imread('test.jpg'); img = yolov3Preprocess(img); [bboxes, scores, labels] = detect(net, img); ``` 这样就可以使用YOLOv3进行目标检测了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhiBing_Ding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值