1 yolov1
(1)每个grid cell 预测 2 个BBOX。
(2) 输入图片(448 X 448 X 3) ——> 7 X 7 X 30 30 = (2 X 5 + 20) 5 —> (x, y, w, h, score)
(3)不适于小目标和密集目标检测。
(4)Loss
(5) Leaky Relu
端到端:反向传播贯穿整个网络。
2 yolov2
(1) yolov2 : 每个cell有5个anchor box进行预测,13 X 13 X 5 = 845
yolov1: 7 X 7 X 2 = 98
(2)BN成了yolo的标配
(3)pw和ph都是kmeans聚类之后的宽和高,yolo直接预测出偏移量tw和th。tx , ty, tw 和 th为每个BBOX预测的值。
(4)采用标准的k-means(即用欧式距离来衡量差异),在box的尺寸比较大的时候其误差也更大,要的是误差和box的尺寸没有太大关系。定义了如下距离函数,使得误差和box的大小无关:
d(box, centroid) = 1 - IOU(box, centroid)
(5)YOLOv2 只有卷积和池化层,不需要固定输入图片的大小。
(6)darknet 19作为yolov2 的backbone网络 :
19个卷积层 5个 max pooling 层
(7)YOLOv2 结构示意图 :
===============分割线2019.6.10==============
YOLO算法的基本思想是:
1、通过特征提取网络对输入图像提取特征,得到一定size的feature map,比如26*26。
2、将输入图像分成26*26个grid cell。
3、若ground truth中某个object的中心坐标落在哪个grid cell中,那么就由该grid cell来预测该object。因为每个grid cell都会预测固定数量的bounding box。
YOLO v1:2个,YOLO v2:5个,YOLO v3:3个。
YOLO V3的三个scale:13 * 13;26 * 26;52 * 52,
每个尺度对应3个anchors,共9个anchors。
那么这几个bounding box中最终是由哪一个来预测该object?
答:这几个bounding box中只有和ground truth的IOU最大的bounding box才是用来预测该object的。
anchors:
在YOLOv2中,用最后一层feature map的相对大小来定义anchor大小。例如,最后一层feature map大小为13X13,相对的anchor大小范围就在(0x0,13x13]。
在YOLOv3中,又改用相对于原图的大小来定义anchor,anchor的大小为(0x0,input_width x input_height]。
==================分割线2019.6.4=====================
Yolov1
一 概述
- YOLOv1在最后使用全连接层进行类别输出,因此全连接层的输出维度是S×S×(B×5+C)。
A:Yolo将输入的图像分成S×S个grid
B:每个grid预测B个bounding box(4)以及置信度(1),以及C个类别概率。其中,bounding box的信息(x, y, w, h)为object的中心位置相对格子位置的偏移和宽度及高度。
- 缺点
A:输入图像的尺寸是固定的:因为全连接层的关系
B:每个grid最多只能预测出一个Object
二 训练
(1)预训练
训练YOLO网络的前20个卷积层+1个average池化层+1个全连接层。
数据集:ImageNet 1000 类数据
图像分辨率224 X 224
- 训练
预训练得到的前20个卷积层网络参数来初始化YOLO模型前20个卷积层的网络参数,然后进行YOLO模型训练。
数据集:VOC 20 类数据
图像分辨率448 X 448
Yolov2
yoloV2主要改进:提高定位能力和召回率
(1)YOLO v2用k-means在训练集bounding box上进行聚类产生合适的先验框.
(2)多尺度训练:YOLOv2的网络使用的downsamples倍率为32,因此使用32的倍数调整输入图像尺寸{320,352,…,608}。训练使用的最小的图像尺寸为320 x 320,最大的图像尺寸为608 x 608。
(3)BN:在卷积层全部使用Batch Normalization;v2中取消了dropout
- 用于检测网络的训练:448 X448
YOLOV2提出的分类模型Darknet-19:19 conv + 5 maxpooling
YOLOV3
- YOLOv3不使用Softmax对每个框进行分类
- 多尺度预测
基础网络 Darknet-53结构如下:
参数anchors指定kmeans计算出来的anchor box的长宽的绝对值(与网络输入大小相关)。num参数为anchor box的数量。