深度学习|YOLO系列改进

来源 详解
YOLO v1 深度学习|YOLO系列改进
文章图片

BACKBONE GoogleNet
缺陷

  • 输入图像必须是固定尺寸
    • 输出层是全连接层
  • 每个网格只输出一个类别
  • 训练依赖于物体标注,泛化能力差。
    • IoU是通过,分类结果对应训练集的bb,以及预测的bb做运算。
  • 小目标鲁棒性差。
    • 下采样层多,物体特征不够精细
YOLO v2 深度学习|YOLO系列改进
文章图片

BACKBONE Darknet-19
改进 Batch Normalization
加入Batch Normalization,消除对正则化的依赖,去掉Dropout,避免过拟合。
Convolution with anchor boxes
关注到物体倾向于出现在图片的中间位置,设置一个单独位于图像中心的位置用于预测。
Dimension clusters
去掉全连接层,通过Anchor boxes回归位置。聚类训练集的BB数据,确定anchor的尺寸。
如果我们用标准的欧式距离的k-means,尺寸大的框比小框产生更多的错误。因为我们的目的是提高IOU分数,这依赖于Box的大小,所以距离度量的使用:
深度学习|YOLO系列改进
文章图片

Direct location prediction
预测位置方式如图:
深度学习|YOLO系列改进
文章图片

Fine-Grained Features
【深度学习|YOLO系列改进】YOLO加上了一个Passthrough Layer来取得之前的某个26×26分辨率的层的特征。这个Passthrough layer能够把高分辨率特征与低分辨率特征联系在一起,联系起来的方法是把相邻的特征堆积在不同的Channel之中,这一方法类似与Resnet的Identity Mapping,从而把26×26×512变成13×13×2048。YOLO中的检测器位于扩展后(expanded )的Feature Map的上方,所以他能取得细粒度的特征信息,这提升了YOLO 1%的性能。
Multi-ScaleTraining
区别于之前的补全图片的尺寸的方法,YOLO v2每迭代几次都会改变网络参数。每10个Batch,网络会随机地选择一个新的图片尺寸,由于使用了下采样参数是32,所以不同的尺寸大小也选择为32的倍数{320,352……608},最小320×320,最大608×608,网络会自动改变尺寸,并继续训练的过程。
Datasets combination with wordtree
用WordTree 把数据集合中的类别映射到分层树中的同义词上,例如上图Figure 6,WordTree混合ImageNet与COCO。
深度学习|YOLO系列改进
文章图片

Joint classification and detection
作者的目的是:训练一个Extremely Large Scale检测器。所以训练的时候使用WordTree混合了COCO检测数据集与ImageNet中的Top9000类,混合后的数据集对应的WordTree有9418个类。另一方面,由于ImageNet数据集太大了,作者为了平衡一下两个数据集之间的数据量,通过过采样(oversampling)COCO数据集中的数据,使COCO数据集与ImageNet数据集之间的数据量比例达到1:4。
数据增强 随机裁剪、旋转、变换颜色(hue)、变换饱和度(saturation), 变换曝光度(exposure shifts)
YOLO v3 BACKBONE Darknet-53
改进
  • 多尺度预测(FPN),每种尺度预测3个box, anchor的设计方式仍然使用聚类,得到9个聚类中心,将其按照大小均分给3种尺度.
    • 尺度1: 在基础网络之后添加一些卷积层再输出box信息.
    • 尺度2: 从尺度1中的倒数第二层的卷积层上采样(x2)再与最后一个16x16大小的特征图相加,再次通过多个卷积后输出box信息.相比尺度1变大两倍.
    • 尺度3: 与尺度2类似,使用了32x32大小的特征图.
  • 更好的基础分类网络(ResNet)
  • 更好的分类器(Darknet-53)
BACKBONE 深度学习|YOLO系列改进
文章图片

    推荐阅读