YOLO v1, v2, v3总结与比较

今天总结下YOLO V123的细节
官网:https://pjreddie.com/

YOLO v1

[CVPR2016] You Only Look Once: Unified, Real-Time Object Detection
https://arxiv.org/abs/1506.02640

  • 图像被分成SxS个网格grid cell
  • 包含GT中心的网格负责检测相应的物体
  • 每个网格预测B个检测框及其置信度,和C个类别概率

输出Bounding box: [X, Y, W, H, S]
x, y: 预测框相对于网格左上角的偏移
w, h: 预测框相对于整张图片的比例
s: 得分,如果不包含物体,s=0,如果包含物体,s=1xIOU
总向量长度为SxSx(5xB+C)

**局限:**每个网格只能属于一钟类别的一个Bounding box,对于目标密集图像效果不好
在这里插入图片描述
论文里,有7x7个网格,每个网格预测2个检测框,每个检测框5个值,又有20个类别,所以每个网格有5x2+20=30个值,输出的向量长度为7x7x30,为了方便resize成这么大小的三维张量
虽然预测两个bounding box,最后只输出得分最高的那个

损失函数:
在这里插入图片描述
损失函数是对一张图片所有网格cell中预测的B个boundingbox的遍历
简单的全部采用了sum-squared error loss来做这件事会有以下不足: a) 8维的localization error和20维的classification error同等重要显然是不合理的; b) 如果一个网格中没有object(一幅图中这种网格很多),那么就会将这些网格中的box的confidence push到0,相比于较少的有object的网格,这会导致网络不稳定甚至发散。

V1 缺陷之处:

输入尺寸固定:由于输出层为全连接层,因此在检测时,YOLO 训练模型只支持与训练图像相同的输入分辨率。其它分辨率需要缩放成此固定分辨率;
占比较小的目标检测效果不好:虽然每个格子可以预测 B 个 bounding box,但是最终只选择只选择 IOU 最高的 bounding
box
作为物体检测输出,即每个格子最多只预测出一个物体。当物体占画面比例较小,如图像中包含畜群或鸟群时,每个格子包含多个物体,但却只能检测出其中一个。

YOLO v2

[CVPR2017] YOLO9000: Better, Faster, Stronger
https://arxiv.org/abs/1612.08242v1

1. 引入anchor box机制
这里并不是说引入Faster RCNN这样的人为预设的anchor box,而是采用 k-means 在训练集 bbox 上进行聚类产生合适的先验框,k=5
YOLO v1只能在每张图给出98个预测框,但是使用了anchor boxes机制之后模型能预测超过1000个框。

2. 提出Darknet-19主干网络模型
输出层使用1x1卷积层替代 YOLOv1 的全连接层
最终输出的分辨率为13x13

输出框依旧是5个值: ( t x , t y , t w , t h , t o ) (t_x, t_y, t_w, t_h, t_o) (tx,ty,tw,th,to)
预测框的x和y直接暴力预测,而w和h通过bounding box prior的调整来确定
b x = σ ( t x ) + c x b_x = \sigma (t_x)+c_x bx=σ(tx)+cx
b y = σ ( t y ) + c y b_y = \sigma (t_y)+c_y by=σ(ty)+cy
b w = p w e t w b_w = p_we^{t_w} bw=pwetw
b h = p h e t h b_h = p_he^{t_h} bh=pheth
σ ( t o ) = P r ( o b j e c t ) ∗ I O U ( b , o b j e c t ) \sigma(t_o) = Pr(object)*IOU(b, object) σ(to)=Pr(object)IOU(b,object)
p w p_w pw p h p_h ph都是kmeans聚类之后的prior(模板框)的宽和高,yolo直接预测出偏移量 t w t_w tw t h t_h th,相当于直接预测了bounding box的宽和高

YOLO v3

提出Darknet-53主干网络,除了最后的GAP,特征提取阶段取消了池化层
聚类的k=9
原图按照长宽比缩放,其余位置用(128,128,128)填充
多尺度特征图预测输出
二元交叉熵损失来进行类别预测
https://blog.csdn.net/leviopku/article/details/82660381

yolo v3设定的是每个网格单元预测3个box,所以每个box需要有(x, y, w, h, confidence)五个基本参数,然后还要有80个类别的概率。所以3*(5 + 80) = 255。这个255就是这么来的
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值