YOLO v3详细解读

简介: 《YOLOv3: An Incremental Improvement》Joseph Redmon Ali FarhadiUniversity of Washington

YOLO v3总结了自己在YOLO v2的基础上做的一些尝试性改进,有的尝试取得了成功,而有的尝试并没有提升模型性能。其中有两个值得一提的亮点,一个是使用残差模型,进一步加深了网络结构;另一个是使用FPN架构实现多尺度检测。

YOLO v3的创新点有哪些?


1. 全新的网络结构:DarkNet-53

2. 融合了FPN

3. 用逻辑回归替代softmax作为分类器

1. YOLOv3网络结构改进–Darknet-53


YOLO v3在之前Darknet-19的基础上引入了残差模块,并进一步加深了网络,改进后的网络有53 5353个卷积层,取名为Darknet-53,网络结构如下图所示(以 256 × 256 以256×256以256×256的输入为例)。

image.png

Darknet-53模型结构 整个网络主要包括5组残差块,如下:

以256x256输入为例,首先经过一个3x3x32的卷积层输出为256x256x32;
接着经过一个3x3x64 stride=2的卷积层输出为128x128x64;
接着经过一个残差块(前面学习残差网络的时候学过),输出为128x128x64;
再经过一个3x3x128 stride=2的卷积层输出为64x64x128;
经过2个残差块后输出为64x64x128;
接着经过一个3x3x256 stride=2的卷积层输出为32x32x256;
接着经过8个残差块,输出为32x32x256;
再经过一个3x3x512 stride=2的卷积层输出为16x16x512;
接着经过8个残差块后输出为16x16x512;
接着经过一个3x3x1024 stride=2的卷积层输出为8x8x1024;
接着经过4个残差块后输出为8x8x1024;
最后经过池化全连接层以及softmax输出.

更加具体的Pytorch复现请看我另一篇文章 Darknet53网络结构复现(Pytorch版)

为了比较Darknet-53与其它网络结构的性能,作者在TitanX上,采用相同的实验设置,将256 × 256 256×256256×256的图片分别输入以Darknet-19,ResNet-101,ResNet-152和Darknet-53为基础网络的分类模型中,实验得到的结果如下图所示。可以看到Darknet-53比ResNet-101的性能更好,而且速度是其1.5倍,Darknet-53与ResNet-152性能相似但速度几乎是其2倍。注意到,Darknet-53相比于其它网络结构实现了每秒最高的浮点计算量,说明其网络结构能更好的发挥GPU性能 。

image.png

2.YOLOv3FPN改进


YOLO v3借鉴了FPN的思想,从不同尺度提取特征。相比YOLO v2,YOLO v3提取最后3层特征图,不仅在每个特征图上分别独立做预测,同时通过将小特征图上采样到与大的特征图相同大小,然后与大的特征图拼接做进一步预测。用维度聚类的思想聚类出9种尺度的anchor box,将9种尺度的anchor box均匀的分配给3种尺度的特征图。

在COCO数据集上,这9个先验框是(10x13),(16x30),(33x23),(30x61),(62x45),(59x119),(116x90),(156x198),(373x326).

分配上,在最小的13x13特征图上(有最大的感受野)应用较大的先验框(116x90),(156x198),(373x326)适合检测较大的对象。

中等的26x26特征图上(中等感受野)应用中等大小的先验框(30x61),(62x45),(59x119),适合检测中等大小的对象。

较大的52x52特征图上(较小的感受野)应用较小的先验框(10x13),(16x30),(33x23),适合检测较小的对象

image.png

3.YOLOv3损失函数改进


YOLOv3对类别预测的代价函数进行了修改,并且没有用softmax。用了逻辑回归层来对每个类别做二分类。逻辑回归层主要用到sigmoid函数,该函数可以将输入约束在0~1的范围内,因此当一张图像经过特征提取后的某一类输出经过sigmoid函数约束后如果大于0.5,就表示属于该类,这样一个框就可以预测多个类别,代价函数用的是sigmoid的交叉熵。

总结


从YOLO v1到YOLO v2再到YOLO 9000、YOLO v3, YOLO经历三代变革,在保持速度优势的同时,不断改进网络结构,同时汲取其它优秀的目标检测算法的各种trick,先后引入anchor box机制、引入FPN实现多尺度检测等,在目标检测领域取得了空前的成功,但YOLO v3也是Joseph Redmon Ali Farhadi的最后一篇目标检测领域的论文,他因为一些原因已经宣布永远退出目标检测领域。


本文只介绍YOLO v3较v1 v2的创新之处,v1 v2详解见

YOLO v1详细解读

YOLO v2详细解读


相关文章
|
2月前
|
机器学习/深度学习 数据可视化 网络架构
请你继续卷:YOLOV9
请你继续卷:YOLOV9
97 0
|
2月前
|
计算机视觉
YOLOv8改进 | 2023Neck篇 | 利用Gold-YOLO改进YOLOv8对小目标检测
YOLOv8改进 | 2023Neck篇 | 利用Gold-YOLO改进YOLOv8对小目标检测
94 1
|
8月前
|
机器学习/深度学习 并行计算 算法
基于 PyTorch 的目标检测(YOLO实现)
基于 PyTorch 的目标检测(YOLO实现)
|
8月前
|
算法 Go 计算机视觉
【YOLO系列】YOLOv5超详细解读(网络详解)
【YOLO系列】YOLOv5超详细解读(网络详解)
4122 1
【YOLO系列】YOLOv5超详细解读(网络详解)
|
8月前
|
数据挖掘
YoloV2的改进
YoloV2的改进
|
机器学习/深度学习 算法 计算机视觉
YOLOV5与YOLOv4的对比
YOLOV5与YOLOv4的对比
1053 0
|
计算机视觉
|
机器学习/深度学习 数据挖掘
|
Serverless 计算机视觉
yolo3-yolo5
yolo3-yolo5
159 0

相关实验场景

更多