参考:YOLOv3网络结构和解析
【论文笔记】YOLOv3
【论文理解】yolov3损失函数
yolov3损失函数具体是什么?
目标检测——目标检测方法的综述
计算机视觉四大基本任务(分类、定位、检测、分割)
网络结构图
特征提取主干:Darknet-53
深入浅出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基础知识完整讲解
YOLO主体是由许多这种残差模块组成,减小了梯度爆炸的风险,加强了网络的学习能力。
yolov3网络结构补充
参考: yolo系列理论合集
输出大小和尺度
参考:【论文理解】理解yolov3的anchor、置信度和类别概率添加链接描述
YOLO有3个尺度的输出
分别在52×52,26×26,13×13。嗯,都是奇数,使得网格会有个中心位置。同时YOLO输出为3个尺度,每个尺度之间还有联系。比如说,13×13这个尺度输出用于检测大型目标,对应的26×26为中型的,52×52用于检测小型目标
S×S×3×(5+class_number)
所以其输出需要构造为
Anchor BOx
Anchor box其实就是从训练集中将所有的矩形框的大小尺寸统计处最常出现的某几个矩形框,这里我们可以采用K-Means来得到。这样也就不难理解使用anchor的目的了:目标先验。即我们提前告诉模型,应该去用多大的矩形框去寻找目标,帮助模型快速收敛。
作者:烟花如雨旧故里
链接:https://www.jianshu.com/p/f2c5afe26750
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
损失函数
分类使用二值交叉熵损失
每个框预测分类,bounding box使用多标签分类(multi-label classification)。论文中说没有使用softmax分类,只是使用了简单的逻辑回归进行分类,采用的二值交叉熵损失(binary cross-entropy loss)。
预测对象类别时不使用softmax,改成使用logistic的输出进行预测。这添加链接描述添加链接描述样能够支持多标签对象(比如一个人有Woman 和 Person两个标签)。
训练期间,使用平方误差损失的和
在训练期间,我们使用平方误差损失的和。如果一些坐标预测的ground truth是t* ,梯度就是ground truth值(从ground truth box计算出来)减去预测,即:t*-t 。 通过翻转上面的方程可以很容易地计算出这个ground truth值。
2021.10
yolov3——yaml格式网络实现
下载好代码以后看yolov3-master\models文件下的yolo.py和common.py
标准卷积 Conv + BN + activate
Bottleneck瓶颈层
参数:
图片链接
实际网络结构:
说明:
输入:-1 上一层
数量:一个
输出:64通道
默认shortcut为ture,是残差结构
参数说明:输出512层通道
shortcut为false,无残差结构,只有一个11和33卷积