文章目录
- 前言
- 一、主干网络darknet53
- 二、从特征获取预测结果
前言
本文主要讲解yolov3的基本知识,如有错误请指出。
本文主要来自
博客1
博客2
一、主干网络darknet53
53是因为有53层。
1、darknet53没有使用pooling 来进行下采样,而是用一个33,步长为2的卷积来进行下采样,该下采样之后的特征层会压缩图片的宽和高,得到一个特征层。之后该特征层经过残差网络。在该特征层的基础上进行一个11和一个3*3卷积,并把这个结果加上特征层,此时我们便构成了残差结构。内部使用残差结构可以使得防止梯度消失的问题。
2、注意Convolutional是指Conv2d+BN+LeakyReLU,和Darknet53图中的一样,而生成预测结果的最后三层都只是Conv2d。
普通的RELU是将小于0的赋值为0,而leakyrelu则是将小于零的赋予一个非零斜率。
二、从特征获取预测结果
从特征获取预测结果的过程可以分为两个部分,分别是:
1、构建FPN特征金字塔进行加强特征提取。
2、利用Yolo Head对三个有效特征层进行预测。
Yolo Head本质上是一次3x3卷积加上一次1x1卷积,3x3卷积的作用是特征整合,1x1卷积的作用是调整通道数。
3、预测结果的解码
我们通过yolo head 最后得到的结果并不是在原图上的位置
而是 x,y,w,h
我们需要将物体的网格点加上x,y来得到中心点
以及利用先验框和h,w来得到 预测框的w,h
最终来得到预测框的位置。
得到预测框之后我们还要使用nms
4、在原图上进行绘制。