深度学习系列7——目标检测 YOLO 系列2

1. 概述

YOLOV2 论文下载:YOLO9000: Better, Faster, Stronger

深度学习系列7——目标检测 YOLO 系列2_第1张图片

Better: 提升性能、速度

Faster: 修改骨干网,检测速度更快

Stronger: 检测目标达 9000 多种

YOLOV1 的不足之处:

(1)准确度(mAP)比较低;

(2)定位性能比较差;

(3)把目标全部检出的能力比较差;

(4)检测小目标,密集目标的检测效果不好。

YOLOV2 即针对这些不足进行了改进。

2. YOLOV2

2.1 Better

深度学习系列7——目标检测 YOLO 系列2_第2张图片

2.1.1 Batch Normalization

深度学习系列7——目标检测 YOLO 系列2_第3张图片
具体操作:神经元的输出减去均值再除以标准差,变为以 0 为中心,均值为 0,标准差为 1 的分布(如上图)。

深度学习系列7——目标检测 YOLO 系列2_第4张图片

目的:因为 sigmoid,tanh 等激活函数在 0 附近是非饱和区,远离 0 的区域是饱和区,当输出举例中心 0 较远的时候,容易发生梯度消失,难以训练,因此,将数据通过 BN 层操作,聚集到中心 0 的附近,梯度较大,方便训练,加快收敛。

深度学习系列7——目标检测 YOLO 系列2_第5张图片

经过 BN 操作,可以看到神经元的输出值聚集到了 0 附近。

深度学习系列7——目标检测 YOLO 系列2_第6张图片

更直观的一个例子(图源:莫烦Python)

深度学习系列7——目标检测 YOLO 系列2_第7张图片

BN 层位置:全连接层之后,激活函数之前。

深度学习系列7——目标检测 YOLO 系列2_第8张图片

2.1.2 High Resolution Classifier

训练时,在小分辨率的图像数据中插入大分辨率的图像 ,从而网络在面对高分辨率的图像时也适应的很好。

深度学习系列7——目标检测 YOLO 系列2_第9张图片

2.1.3 Anchor

相比于 YOLOV1 是自动生成检测框,YOLOV2 在训练之前就对不同形态的物体添加了先验框。比如:高瘦的目标使用高瘦的框,矮胖的物体使用矮胖的框,也即这些框有了针对性,不再是随机生成,使得模型的训练更加稳定,这样最终预测框只需要针对先验框做微调,最后找出 IOU 较大的那一个为目标框。

深度学习系列7——目标检测 YOLO 系列2_第10张图片

YOLOV2 将一张图片划分为 13 X 13 个 grid cell,每个 grid cell 预测 5 个 Anchor,训练之前针对一个 grid cell 得到了 5 个不同大小的先验框,每个 Anchor 对应一个预测框,预测框只需输出它对于 Anchor 的偏移量即可。


CNN 输出的 feature map 结构:

深度学习系列7——目标检测 YOLO 系列2_第11张图片
5 个 Anchor 通过聚类方法得到,而不是人工手动标出。

深度学习系列7——目标检测 YOLO 系列2_第12张图片

使用聚类方法选择 Anchor 是比较有效的(K-MEANS)。

深度学习系列7——目标检测 YOLO 系列2_第13张图片

2.1.4 Direct location prediction

YOLOV1 的目标预测框是可以在整个图像各个位置移动的,这样容易模型在训练初期极不稳定。V2 对此做了改进,将预测框相对 Anchor 的偏移量做了限制,把预测框的中心坐标限制在了其所在的 grid cell 里面,避免预测框四处乱窜。

x,y 坐标的偏移量用 sigmoid 函数进行约束, h,w 没有限制。
深度学习系列7——目标检测 YOLO 系列2_第14张图片

预测框参数:

深度学习系列7——目标检测 YOLO 系列2_第15张图片
上图中,b 即是预测框的参数,宽高通过 sigmoid 函数来约束,提高模型在训练过程中的稳定性。

损失函数:

深度学习系列7——目标检测 YOLO 系列2_第16张图片

2.1.5 Fine-Grained Features

整合不同尺度的特征。将浅层网络得到的 feature map 进行拆分,一路继续卷积,下采样,一路分为 4 份,尺寸大小减半,通道数目乘 4,然后再进行融合,这样就得到了底层的细粒度信息和卷积之后高层的信息,从而整合了不同尺度的特征,有利于小目标的目标检测。

深度学习系列7——目标检测 YOLO 系列2_第17张图片

具体实现:

深度学习系列7——目标检测 YOLO 系列2_第18张图片
代码实现:

深度学习系列7——目标检测 YOLO 系列2_第19张图片

2.1.6 Muti-Scale Training

输入不同尺度的图像,从而达到模型预测中速度与精度的权衡。

深度学习系列7——目标检测 YOLO 系列2_第20张图片
多尺度图像输入:

深度学习系列7——目标检测 YOLO 系列2_第21张图片

2.2 Faster

更换了主干网络。

深度学习系列7——目标检测 YOLO 系列2_第22张图片

分类、预测网络结构:

深度学习系列7——目标检测 YOLO 系列2_第23张图片

网络中数据传递:

深度学习系列7——目标检测 YOLO 系列2_第24张图片

2.3 Stronger

UOLO V2 理论上可以检测 9000 多个类别的物体。

深度学习系列7——目标检测 YOLO 系列2_第25张图片
对于那些并非真正互斥的数据(such as 阿拉斯加,拉布拉多),先对数据进行处理,按照不同的属性分门别类,最终在互斥的分类下进行 softmax,这样,通过每一个层级之间的预测结果来达到最终的结果。

注:本篇博文插图多来源于参考链接,感谢。


欢迎关注公众号:【千艺千寻】,共同成长



参考:

  1. 【精读AI论文】YOLO V2目标检测算法
  2. 3.1 YOLO系列理论合集(YOLOv1~v3)
  3. 什么是 Batch Normalization 批标准化 (深度学习 deep learning)

你可能感兴趣的:(DL,and,ML,Machine,Learning,深度学习,目标检测,YOLO)