yolo系列之yolov3

在说到yolo时,顺便提一下ssd,ssd算法的出现在于利用多层特征做预测,旨在解决单阶段目标检测算法对于小目标的不友好性。但是ssd 利用多层特征的方式只是单纯的将各层特征提取出来。并没有做特征之间的融合。而yolov3的做法在于在yolov2的基础上引入fpn网络。

1.特征提取

原始yolov3使用了darknet53网络模型。该模型借鉴在特征提取方面借鉴了残差网络,引入了残差单元。并且引入了fpn网络结构。yolov3的下采样没有使用pooling 层而是使用了步长为2的卷积层。

在这里插入图片描述

yolo系列之yolov3_第1张图片

yolo系列之yolov3_第2张图片

 

红框的地方是相当于池化,每次做这个操作的时候,通道数翻倍。

2.解码过程

和yolov2一样,只不过在每一层的anchor大小不一样,yolov2中anchor 的个数大小为5,而在yolov3中每一层的anchor 个数为3,由于有三种尺度的特征,因此anchor一共有9个。

YOLO v3的Bounding Box由YOLOV2又做出了更好的改进。在yolo_v2和yolo_v3中,都采用了对图像中的object采用k-means聚类。 feature map中的每一个cell都会预测3个边界框(bounding box) ,每个bounding box都会预测三个东西:(1)每个框的位置(4个值,中心坐标tx和ty,,框的高度bh和宽度bw),(2)一个objectness prediction ,(3)N个类别,coco数据集80类,voc20类。

三次检测,每次对应的感受野不同,32倍降采样的感受野最大,适合检测大的目标,所以在输入为416×416时,每个cell的三个anchor box为(116 ,90); (156 ,198); (373 ,326)。16倍适合一般大小的物体,anchor box为(30,61); (62,45); (59,119)。8倍的感受野最小,适合检测小目标,因此anchor box为(10,13); (16,30); (33,23)。所以当输入为416×416时,实际总共有(52×52+26×26+13×13)×3=10647个proposal box。

这里提到的anchor 是相对于原始图片的大小的,而yolov2中的anchor 是相对于cell grid 的大小,

感受一下9种先验框的尺寸,下图中蓝色框为聚类得到的先验框。黄色框式ground truth,红框是对象中心点所在的网格。
 

3.模型训练

yolo v3的损失函数使用了交叉熵,分类用softmax 代替sigmoid。

4.创新点

1.网络结构上引入了darknet53

2.用步长为2的卷积代替池化层

3.多尺度检测

你可能感兴趣的:(深度学习,计算机视觉,深度学习,卷积)