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

1. 概述

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

YOLO9000

Better: 提升性能、速度

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

Stronger: 检测目标达 9000 多种

YOLOV1 的不足之处:

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

(2)定位性能比较差;

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

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

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

2. YOLOV2

2.1 Better

Better

2.1.1 Batch Normalization

Batch Normalization
具体操作:神经元的输出减去均值再除以标准差,变为以 0 为中心,均值为 0,标准差为 1 的分布(如上图)。

BN

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

BN解释

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

BN操作

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

BN操作

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

BN position

2.1.2 High Resolution Classifier

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

High Resolution Classifier

2.1.3 Anchor

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

Anchor

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

Anchor
CNN 输出的 feature map 结构:

feature map 结构
5 个 Anchor 通过聚类方法得到,而不是人工手动标出。

5 个 Anchor

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

Anchor 选择

2.1.4 Direct location prediction

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

x,y 坐标的偏移量用 sigmoid 函数进行约束, h,w 没有限制。
Direct location prediction

预测框参数:

预测框参数
上图中,b 即是预测框的参数,宽高通过 sigmoid 函数来约束,提高模型在训练过程中的稳定性。

损失函数:

损失函数

2.1.5 Fine-Grained Features

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

Fine-Grained Features

具体实现:

passthrough
代码实现:

passthrough layer

2.1.6 Muti-Scale Training

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

Muti-Scale Training
多尺度图像输入:

Muti-Scale Training

2.2 Faster

更换了主干网络。

Network

分类、预测网络结构:

网络结构

网络中数据传递:

网络中数据传递

2.3 Stronger

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

Stronger
对于那些并非真正互斥的数据(such as 阿拉斯加,拉布拉多),先对数据进行处理,按照不同的属性分门别类,最终在互斥的分类下进行 softmax,这样,通过每一个层级之间的预测结果来达到最终的结果。

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


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



参考:

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

猜你喜欢

转载自blog.csdn.net/wwt18811707971/article/details/129637615