【小白学YOLO】YOLOv3网络结构细致解析

7,551 阅读2分钟
摘要:本文将详细介绍Yolov3的网络结构相关内容。

Yolov3 网络结构

在博客“Yolo发展历史及网络结构”中我们已经详细的解释了Yolov1的网络结构,并简要的提到了Yolov2与Yolov3对于网络结构的改进,本篇博客将详细介绍Yolov3的网络结构,内容比较简单。

Yolov3网络结构图

从图中可以看出,Yolov3主要有以下几部分组成:

  • 输入
  • 基础网络:基础网络是可以根据具体的需求选择,作者原文用的是自己设计的:Darknet-53
  • YOLOv3网络的三个分支:Y1,Y2,Y3

网络部件介绍

DBL: 如图1左下角所示,也就是代码中的Darknetconv2d_BN_Leaky,是yolo_v3的基本组件。就是卷积+BN+Leaky relu。对于v3来说,BN和leaky relu已经是和卷积层不可分离的部分了(最后一层卷积除外),共同构成了最小组件。

resn:n代表数字,有res1,res2, … ,res8等等,表示这个res_block里含有多少个res_unit。这是yolo_v3的大组件,yolo_v3开始借鉴了ResNet的残差结构,使用这种结构可以让网络结构更深(从v2的darknet-19上升到v3的darknet-53,前者没有残差结构)。对于res_block的解释,可以在图1的右下角直观看到,其基本组件也是DBL。

concat:张量拼接。将darknet中间层和后面的某一层的上采样进行拼接。拼接的操作和残差层add的操作是不一样的,拼接会扩充张量的维度,而add只是直接相加不会导致张量维度的改变。

YOLOv3网络的三个分支

多尺度检测-Y1

适用目标:大目标

路径:绿色线标注

输出维度:13×13×255

输出维度具体解释:13×13:图片大小;255=(80+5)×3;80:识别物体种类数;5=x,y,w,h和c(置信度);3:每个点预测3个bounding box。

多尺度检测-Y2

适用目标:中目标

路径:黄色线标注

输出维度:26×26×255

输出维度具体解释:26×26:图片大小;255=(80+5)×3;80:识别物体种类数;5=x,y,w,h和c(置信度);3:每个点预测3个bounding box。

多尺度检测-Y3

适用目标:小目标

路径:紫色线标注

输出维度:52×52×255

输出维度具体解释:52×52:图片大小;255=(80+5)×3;80:识别物体种类数;5=x,y,w,h和c(置信度);3:每个点预测3个bounding box。


点击关注,第一时间了解华为云新鲜技术~