目标检测(下)

目录

  • 目标检测(下)
    • 1 R-CNN
      • 1.1 R-CNN系列的结构
      • 1.2 R-FCN结构
      • 1.3 R-FCN的位置敏感卷积层
      • 1.4 R-FCN的Score map可视化
      • 1.5 R-FCN的训练
      • 1.6 R-FCN位置敏感的性能
    • 2 YOLO v1
      • 2.1 YOLO v1的优点
      • 2.2 YOLO v1 的不足
      • 2.3 NMS(非极大值抑制)
    • 3 YOLO v2
      • 3.1 YOLO v2的基础模型
      • 3.2 YOLO v2/9000
    • 4 YOLO v3

目标检测(下)

1 R-CNN

1.1 R-CNN系列的结构

基于旧形态CNN的结构(AlexNet,VGG):全卷积子网络;全连接子网络
相对应的结构设计:全卷积子网络;Rol-wise子网络

1.2 R-FCN结构

目标检测(下)_第1张图片

1.3 R-FCN的位置敏感卷积层

使用k^2(C+1)个通道对(位置,类别)组合进行编码
类别:C个物体类+1个背景类
相对位置:KK个Grid(k=3)
位置敏感分值图:每个分类k^2个score map;score map尺寸=图片尺寸
目标检测(下)_第2张图片

1.4 R-FCN的Score map可视化

目标检测(下)_第3张图片

1.5 R-FCN的训练

OHEM:首先对RPN获得的候选ROI(正负样本分别进行排序)进行排序操作;然后在含有正样本(目标)的ROI中选择前N个ROI,将正负样本的比例维持在1:3的范围内,保证每次抽取的样本中都会含有一定的正样本;这样训练可以提高网络的分类能力。

1.6 R-FCN位置敏感的性能

基于ResNet-101
位置敏感性带来大幅提升
目标检测(下)_第4张图片

性能对比R-FCN vs Faster R-CNN
基于ResNet-101;OHEM没有带来时间开销;KK=77;Test时间提升2.5x
目标检测(下)_第5张图片

2 YOLO v1

YOLO将物体检测任务当做一个regression问题来处理通过YOLO,每张图像只需要"看一眼"就能得出图像中都有哪些物体和这些物体的位置。
将图像resize到448*448 作为神经网络的输入,使用一个神经网络,直接从一整张图像来预测出bbox的坐标、box中包含物体的置信度和物体的可能性,然后进行非极大值抑制筛选Boxes。
目标检测(下)_第6张图片

首先利用ImageNet 1000-class的分类任务数据集Pretrain卷积层。使用上述网络中的前20个卷积层layer,最后加一个全连个 average-pooling接层,作为 Pretrain 的网络。
将Pretrain的结果的前20层卷积层应用到Detection中
,并加入剩下的4个卷积层及2个全连接。同时为了获取更精细化的结果,将输入图像的分辨率由 224224提升到 448448。
将所有的预测结果都归一化到0~1,使用LeakyRELU作为激活函数。
为了防止过拟合,在第一个全连接层后面接了一个
ratio=0.5的Dropout 层。

2.1 YOLO v1的优点

检测物体的速度很快;
假阳性率低;
能够学到更加抽象的物体的特征;

2.2 YOLO v1 的不足

YOLO的物体检测精度低于其他state-of-the-art的物体检测系统;
YOLO容易产生物体的定位错误;
YOLO对小物体的检测效果不好(尤其是密集的小物体,因为一个栅格只能预测2个物体)

YOLO v1:每个栅格两个bbox。对每个bbox有5个预测值:x,y,w,h,confidence。作为预测的结果每一行中前10个元素。
目标检测(下)_第7张图片

2.3 NMS(非极大值抑制)

首先从所有的检测框中找到置信度最大的那个框,然后挨个计算其与剩余框的IOU,如果其值大于一定阈值(重合度或高),那么就将该框剔除;之后对剩余的检测框重复上述过程,直到处理完所有的检测框。
目标检测(下)_第8张图片

Yolo的实际策略是先使用NMS,然后再确定各个box的类别,其基本过程如图所示∶
对于98个boxes,首先将小于置信度阈值的值归0,然后分类别地对置信度值采用NMS。这里NMS处理结果不是剔除,而是将其置信度值归为0。
最后才是确定各个box的类别,当其置信度值不为0时才做出检测结果输出。
目标检测(下)_第9张图片

3 YOLO v2

Batch Normalization
Batch Normalization可以提高模型收敛速度,减少过拟合。在所有卷积层都应用了BN,使结果提升了2%。
High Resolution Classifier
基于ImageNet数据集预训练模型,大部分类器输入图像尺寸小于256×256。在YOLOv2中,首先采用448×448分辨率的ImageNet数据fine tune使网络适应高分辨率输入;然后将该网络用于目标检测任务finetune。高分辨率输入使结果提升了4%mAP。
Convolutional With Anchor Boxes
在这一版本中借鉴了Faster R-CNN中的anchor思想,用
anchor boxes来预测bounding boxes。准确率只有小幅度的下降,而召回率则提升了7%□ Dimension Clusters使用了K-means聚类方法类训练bounding boxes,可以自动找到更好的boxes宽高维度。
Direct location prediction
在YOLO模型上采用anchor boxes的是模型不稳定性,大部分不稳定因素来源于预测boxes位置(x,y)。将预测偏移量改变为YOLO的预测grid cell的位置匹配性(location coordinate),将预测值限定在0-1范围内,增强稳定性。
Fine-Grained Features
改进后的YOLO对13×13的feature map进行目标检测。更精确的特征(finer grained features)可以提高对于小目标的检测。加入passtrough层以增加特征。passthrough类似于100
ResNet,将高分辨率特征和低分辨率特征结合,使26×26×512的特征图转化为13×13×2048的特征图
该改进增加了1%的性能。。
Multi-Scale Training
模型只包含卷积层和pooling层,因此可以随时改变输入尺寸。每经过10次训练,就会随机选择新的图片尺寸进行训练。

3.1 YOLO v2的基础模型

YOLOv2的基础模型是Darknet-19,其结构如表所示。
使用较多的33卷积核,在每一次池化操作后把通道数翻倍。网络使用了全局平均把11的卷积核置于3*3的卷积核之间,用来压缩特征也用了BN稳定模型训练。
目标检测(下)_第10张图片

3.2 YOLO v2/9000

ImageNet的数据标签来源于WordNet,具有一定层次结构。作者根据WordNet建立了ImageNet标签的树(WordTree)。作者采用wordtree来综合ImageNet和COCO数据集。
目标检测(下)_第11张图片

4 YOLO v3

YOLO v3中使用了一个53层的卷积网络,这个网络由残差单元叠加而成。YOLO v3使用逻辑回归预测每个边界框的分数。为了实现多标签分类,模型不再使用softmax函数作为最终的分类器,而是使用binary cross-entropy作为损失函数。
目标检测(下)_第12张图片

多尺度预测∶YOLOv3从三种不同尺度的特征图谱上进行预测任务。
在Darknet-53得到的特征图的基础上,经过7个卷积
上得到第一个特征图谱,在这个特征图谱上做第一次预测。
然后从后向前获得倒数第3个卷积层的输出,进行一次卷积一次x2上采样,将上采样特征与第43个卷积特征连接,经过7个卷积得到第二个特征图谱,在这个特征图谱上做第二次预测。
然后从后向前获得倒数第3个卷积层的输出,进行一次卷积一次x2上采样,将上采样特征与第26个卷积特征连接,经过7个卷积得到第三个特征图谱,在这个特征图谱上做第三次预测。

你可能感兴趣的:(人工智能,目标检测,cnn,深度学习)