往期回顾
【目标检测】YOLOv1:You Only Look Once
【目标检测】YOLOv2:YOLO9000: Better, Faster, Stronger
YOLO系列详解:YOLOv3
往期回顾前言模型创新点网络结构借鉴FPN实现多尺度检测网络结构损失函数前言
YOLO系列目标检测算法是卷积神经网络中的一阶段检测算法,是基于深度学习的端到端的回归方法。
YOLO官网:/pjreddie/darknet
模型
论文名称:YOLOv3:An Incremental Improvement
论文地址:/abs/1804.02767
Pytorch复现代码: /eriklindernoren/PyTorch-YOLOv3
发表时间: 4月8日
引用格式:Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv:1804.02767, .
创新点
网络结构:DarkNet-53融合FPN用逻辑回归代替Softmax作为分类器网络结构
在YOLOv2的基础上,引入了残差模块,并且进一步加深了网络。
该网络主要是由1x1和3x3的卷积组成的,在每一个卷积后都会跟着一个BN层和LeakyReLU层。
由图可知,一共包含了52个卷积层,再加上一个全连接层就是53个。但是YOLOv3中去掉了全连接层,但是仍然称呼为DarkNet-53网络。
TitanX上,采用相同的实验设置,将 256 × 256的图片分别输入以DarkNet-19,ResNet-101,ResNet-152和DarkNet-53为基础网络的分类模型中,实验得到的结果如下图所示。
可以看到DarkNet-53比ResNet-101的性能更好,而且速度是其1.5倍,DarkNet-53与ResNet-152性能相似但速度几乎是其2倍。注意到,DarkNet-53相比于其它网络结构实现了每秒最高的浮点计算量,说明其网络结构能更好的利用GPU。
借鉴FPN实现多尺度检测
YOLOv3借鉴了FPN的思想,从不同尺度提取特征。
YOLOv3提取了不同尺度的特征图,是在最后三个不同的卷积层上进行提取的。当输入尺度为416 × 416时,得到下采样32 × ,16 × ,8 × 的特征图,即大小为13 × 13,26 × 26,52 × 52。图中带颜色的部分为检测结果。
这种将不同尺度的特征两两concat,一方面使特征重用,加快训练和比较梯度消失。另一方面可以让下层特征和上层特征融合,使大尺度模板检测的时候能参考小尺度特征
YOLOv3在每个尺度的特征图上分配了3个先验框。其先用维度聚类的思想聚类出9种尺度的anchor box,将9种尺度的anchor box均匀的分配给3种尺度的特征图。
YOLOv3对每个尺度下的特征图都进行边界框的预测。
下图是在网络结构图的基础上加上多尺度特征提取部分的示意图:
网络结构
(图片转载江大白)
上面三个蓝色方框内表示YOLOv3的三个基本组件:
CBL:由Conv+BN+LeakyReLU激活函数三者组成。Res unit:借鉴了ResNet网络中的残差结构,可以构建更深的网络。ResX:由一个CBL和X个残差组件构成。
(图片转自太阳花的小绿豆)
损失函数
YOLO v3网络结构分析(太阳花的小绿豆)
YOLO v3也是Joseph Redmon Ali Farhadi的最后一篇目标检测领域的论文,他因为一些原因已经宣布永远退出目标检测领域。
深度学习_目标检测_YOLOv3论文详解
YOLO v3网络结构分析(太阳花的小绿豆)