YOLO V3学习笔记

一、概述

yolo最先提出于2016年,可能是最早的端到端网络了,和Faster-RCNN最显著的区别是不再有RPN网络,这也使得网络结构更加统一。经过不断的发展,YOLO系列如今已经发展到YOLO V5,而2018年更新的YOLO V3由于灵活性强、性能好已被广泛应用,而V1、V2基本无人再使用,所以这里我们直接介绍V3。

二、网络结构

端到端的网络,结构非常清楚,训练和预测基本上没区别,不像RCNN系列那么复杂繁琐,所以不用废话,直接分析网络结构。如下图所示,YOLO V3整体网络分为backbone和head两部分。

1. Backbone

backbone即一个特征提取网络,一般采用分类网络,而作者采用的是darknet-53(V2采用darknet-19,没有残差结构),其结构如图所示。
在这里插入图片描述

darknet-53在ImageNet的分类效果和resnet-101及resnet-152在同一水平,但是速度快很多。
———— 性能对比
不过要注意的是darknet拿到YOLO V3也是有些改变的。

  1. YOLO V3的输入尺寸有所不同
  2. 没有要最后的全连接层,所以实际上是52层,可以数出来。
  3. YOLO V3采用了BN,除了head输出部分的3个Conv,其余72个Conv后面统一接一个BN,而BN后面都会接一个Leaky relu。
    在这里插入图片描述

2. Head

2.1 三个支路

YOLO V3借鉴SSD多尺度特征的思想,从backbone分出三条支路,分别对应降采样32倍,16倍和8倍。从backbone结构可以看到,原图一共经历了5次尺寸减半,也就是32倍,注意YOLO V3是不含池化层的,所有尺寸缩减都是靠stride=2的卷积。
但是和SSD不同的是,YOLO V3不是简单地直接输出降采样32倍、16倍和8倍的特征,而是32倍,(32/2+16)以及((32/2+16)/2)+8。所谓的“/2”是指上采用up sampling操作。这样就保证16倍和8倍的特征图也有深层信息,要知道在神经网络中深层网络的信息更丰富。

2.2 输出层

三个支路得到三个输出,分别是(52,52,255)、(26,26,255)和(13,13,255),尺寸是416的输入图像经过下采样倍数计算的,而深度为:
每个网格点预测3个bbox,每个bbox包括4个坐标值,1个置信度和80个类别,加起来就是255。

3. anchor的作用

  1. 在同一个网格中检测多个目标,比如yolo v3每个网格设置了3个anchor,那么最多就可以检测到3个目标,提高重叠对象的检测能力。
  2. 便于更快更好的找到预测框。
    anchor事实上是一个连接预测框和真实框的桥梁。试想一下,图中有一个真实框,你要在整张图中找到一个和他接近的预测框,是很难得,可以说无从下手,anchor就是给你提供了这个参考的。因为anchor是通过对样本聚类得到的,本身的尺寸是很接近待预测目标的,再加上anchor在全图中密集分布,所以对一个目标,很容易找到一个接近他的anchor。
    网络直接输出的其实是预测框相对于对应anchor的中心点偏移量及长宽的缩放量,接着以该anchor的坐标计算预测框的坐标,最后再和真实框做损失计算。
    参考

备注:anchor怎么和真实框对应?
3个anchor中和真实框IOU最大的负责该对象的预测,也就是说当做真值。这样做是合理的,因为IOU最大的属于先天条件最好,最容易得到最好的预测框。可是既然如此,为什么最后还需要NMS?不应该就预测到了这一个目标吗?难道其他网格也会也测到它?还是说head中另外两个分支会预测到它?

yolo系列之yolo v3【深度解析】
一文看懂YOLO v3

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值