YOLOV3-综述

YOLOV3-综述_第1张图片

一、回顾YOLOV1和YOLOV2的骨干网络
在YOLOV1中,输入数据为448x448x3,经过骨干网络后,最后输出7x7x30大小的矩阵。表示为一个输入图片被划分为7x7的网格,每一个网格输出2个BBOX,每一个BBOX有4个位置参数,1个置信度参数,每一个网格还有20个标签分类概率。故总的大小为7x7x(2x5+20)。
YOLOV3-综述_第2张图片

在YOLOV2中,输入数据为416x416x3,通过Darknet-19网络,经过32倍下采样,最终输出13x13x125大小的矩阵。表示为每一张图片被划分为13x13的网格,没一个网格划分5个Anchor,每一个Anchor有4个位置参数,1个置信度参数,20个类别概率。故总的大小为13x13x(5x(4+1+20))。
YOLOV3-综述_第3张图片
二、YOLOV3的骨干网络
YOLOV3最大的改变就是使用的全新的骨干网络****Darknet-53
下图为Darknet-53网络的结构图。总的来说该网络会经历一些卷积层,再经过一些残差卷积层,还需要对数据进行Concat操作
YOLOV3-综述_第4张图片
下面这张图能够更加清晰的解释Darknet-53骨干网络究竟干了什么。如图所示,假设输入416x416x3的图片,最后会输出3个矩阵。
第一个矩阵可以粗略的理解为对数据进行了32倍下采样,最后输出矩阵的大小变成了13x13x255。
第二个矩阵可以是将32倍下采样的数据进行上采样后和上一阶段的数据进行Concat操作,最后输出26x26x255的数据
第三个矩阵同理是进行Concat操作。
YOLOV3-综述_第5张图片
(1)为什么需要之前的YOLO都是输出1个矩阵,YOLOV3是输出3个矩阵。
最大的目的就是为了更加细致的检测不同大小的物体。具体来说,我们对一张输入图片,输出三种不同的GC,按照如图的输入尺寸,输出的大小13x13,26x26,52x52的GC。这样便于我们去分开检测小物体,中物体,大物体。可以看到下图13x13负责检测大物体,52x52负责检测小物体。
(2)为什么需要上采样再拼贴?
因为这样可以充分的利用高维度的语义信息和低纬度的细粒度信息。

可以看到当输入为更小的256时也是进行上述操作的。
YOLOV3-综述_第6张图片

三、YOLOV3的损失函数
在YOLOV3中负责预测物体的框是正样本,那些超过阈值但是不负责预测的框什么都不是,剩下的没达到阈值的框都是负样本。
损失函数主要分成:
(1)正样本的坐标损失
(2)正样本的置信度和类别损失
(3)负样本的置信度损失

YOLOV3-综述_第7张图片

四、YOLOV3的训练
YOLOV3-综述_第8张图片
五、YOLOV3的测试过程
YOLOV3-综述_第9张图片

你可能感兴趣的:(计算机视觉,算法,人工智能)