目标检测--YOLO算法

文章目录

  • Yolo
    • 介绍
    • YOLO v1
      • 算法
      • YOLO v1网络结构
      • 损失函数
      • 网络训练
      • 网络的缺陷
      • 性能
    • YOLO V2
      • 介绍
      • 改进之处
      • 网络结构
      • 性能对比
      • 使用场景
    • Yolo V3
      • 介绍
      • 网络性能
      • Darknet框架
    • YOLO算法的优点

Yolo

介绍

目标检测--YOLO算法_第1张图片

YOLO v1

算法

目标检测--YOLO算法_第2张图片目标检测--YOLO算法_第3张图片
目标检测--YOLO算法_第4张图片

  • yolo v1缺陷:一个格子只能对应一个类别,不能对应多个类别,导致无法对小物体识别

YOLO v1网络结构

目标检测--YOLO算法_第5张图片

损失函数

目标检测--YOLO算法_第6张图片

网络训练

目标检测--YOLO算法_第7张图片

  • 这里使用ImageNet输出类别个数为1000,将最后的FC去掉,换成输出类别个数为S * S * (B*5+C)
  • ImageNet用于分类,yolo算法是回归的方法
  • 将图片扩大,对于卷积生成的feature map来说并不敏感,对卷积核数敏感
  • FC的输入与feature map大小相关,通过改变图像分辨率,继续使用预训练模型conv,提取feature map。

网络的缺陷

目标检测--YOLO算法_第8张图片

  • 没有考虑大物体误差与小物体的误差,默认的贡献是相同的

性能

目标检测--YOLO算法_第9张图片

YOLO V2

介绍

目标检测--YOLO算法_第10张图片

  • 采用卷积层替代FC的好处在于使feature map作为输入的大小不敏感
  • coco用于检测的数据集,学习目标的位置,Imagenet用于分类,学习分类,通过多任务提高准确度

改进之处

目标检测--YOLO算法_第11张图片

  • DarkNet比VGG更快
  • Batch Normalization更稳定,收敛更快
  • 卷积替代FC,可以输入多尺度的图像

目标检测--YOLO算法_第12张图片
目标检测--YOLO算法_第13张图片

  • 采用416而非448,是因为448448采样后产生1414的feature,没有一个位于中心的网格,而416416采样产生1313的feature,这样可以预测位于中心的物体(一般大物体占据图像的中心位置),1313上采样得到416416

目标检测--YOLO算法_第14张图片

  • Anchor Box对比与建议框,召回率有显著的提升,mAP准确值降低
  • Anchor Box预测的框的个数比之前的个数要多1521>98
  • 通过k-means聚类的方式,进行回归,找到最好的BoundingBox,但传统通过欧式距离计算,导致较大的BoundingBox比较小的BoundingBox产生更多的error,聚类的结果也产生偏离。
  • 这里聚类作者使用IOU得分方式。BoundingBox的交集除以它的并集,这样得到的误差与BoundingBox的尺寸无关了。

目标检测--YOLO算法_第15张图片
目标检测--YOLO算法_第16张图片

  • 可以输入不同尺寸的图像在于使用卷积层,同一网络,执行不同图像的检测任务,在小尺寸的图像上,执行更快,在速度与性能上达到平衡
  • 28*28尺寸fps能达到90,准确率与faster-rcnn达到同一水准。

网络结构

目标检测--YOLO算法_第17张图片

目标检测--YOLO算法_第18张图片

  • 较YOLO V1而言,YOLO V2以每一个边框预测多个分类。

性能对比

目标检测--YOLO算法_第19张图片

目标检测--YOLO算法_第20张图片

  • WorldTree同一类中区分具体类别,例如狗,牧羊犬、藏獒等

目标检测--YOLO算法_第21张图片

使用场景

  • 用于低性能的GPU
  • 高帧率的视频检测
  • 多路视频场景中
  • 低功耗

Yolo V3

介绍

目标检测--YOLO算法_第22张图片### 改进策略
目标检测--YOLO算法_第23张图片
目标检测--YOLO算法_第24张图片

  • 精度提高,速度下降
    目标检测--YOLO算法_第25张图片
  • 从多个不同的featuremap上提取特征作为yolo检测的输入
  • Anchor的选择也是通过聚类的方式选择合适的长宽比,得到9个聚类中心,平均的分到3个尺度上啊,每个尺度对应3个BoundingBox
  • 对于每种尺度,使用卷积层进一步提取特征,之后输出box的信息
  • 对于尺寸2,3而言,需要对前者卷积的结果上采样,再与自己的featuremap相加,再通过卷积,输出boundingbox信息
  • 尺寸的大小相较于前者尺度扩大了两倍

目标检测--YOLO算法_第26张图片

  • softmax只分别一个标签,对于分别多个标签不行

网络性能

目标检测--YOLO算法_第27张图片

目标检测--YOLO算法_第28张图片

  • 对于使用ResNet而言,识别率有所下降

目标检测--YOLO算法_第29张图片

Darknet框架

目标检测--YOLO算法_第30张图片

YOLO算法的优点

目标检测--YOLO算法_第31张图片

你可能感兴趣的:(计算机视觉)