当前位置:   article > 正文

目标检测算法YOLO简介

目标检测算法YOLO简介

      YOLO全称为You Only Look Once,一种新的目标(object)检测方法,由Joseph Redmon等人于2015年提出,论文名为《You Only Look Once:Unified, Real-Time Object Detection》,论文见:https://arxiv.org/pdf/1506.02640.pdf ,项目网页:https://pjreddie.com/darknet/yolo/

      这里仅整理YOLOv1,以下内容主要来自论文:

      YOLO将目标检测视为空间分离的边界框和相关类别概率的回归问题(we frame object detection as a regression problem to spatially separated bounding boxes and associated class probabilities)。单个神经网络在一次评估中直接从完整图像预测边界框和类别概率YOLO可以直接基于完整图像做训练。由于整个检测管道是单个网络,因此可以直接在检测性能上进行端到端优化。

      YOLO将目标检测重新构建为单个回归问题(regression problem),直接从图像像素到边界框(bounding box)坐标和类别概率(class probabilities)。使用YOLO,你只需查看图像一次即可预测存在哪些目标以及它们所在的位置

      YOLO检测流程如下图所示:YOLO非常简单,单个卷积网络同时预测多个边界框和这些框的类别概率。YOLO在完整图像上进行训练并直接优化检测性能。与传统的目标检测方法相比,这种统一模型(unified model)有几个优点:

      1.首先,YOLO速度极快。由于我们将检测视为回归问题,因此不需要复杂的流程(pipeline)。我们只需在测试时在新图像上运行神经网络来预测检测结果。

      2.其次,YOLO在进行预测时对图像进行全局推理。与滑动窗口和基于候选区域(region proposal-based)的技术不同,YOLO在训练和测试期间看到整个图像,因此它隐式编码有关类别及其外观(appearance)的上下文信息(contextual information)。

      3.YOLO学习目标的泛化表示(generalizable representation)。由于YOLO具有高度通用性,因此在应用于新领域或意外输入时不太可能崩溃(break down)。

      YOLO在准确性方面仍然落后于最先进的(state-of-the-art)检测系统。虽然它可以快速识别图像中的目标,但很难精确定位某些目标,尤其是小目标。

      统一检测(Unified Detection):

      1.我们将目标检测的各个组成部分统一到单个神经网络中。我们的网络使用整个图像的特征来预测每个边界框。它还同时预测图像所有类别的所有边界框。这意味着我们的网络对完整图像和图像中的所有目标进行全局推理(reasons globally)。YOLO设计可实现端到端训练和实时速度,同时保持较高的平均精度。

      2.我们的系统将输入图像划分为SxS网格。如果目标的中心落入网格单元中,则该网格单元负责检测该目标

      3.每个网格单元预测B个边界框以及这些框的置信度分数(confidence score)。这些置信度分数反映了模型(model)对框(box)包含目标的置信度,以及模型认为框预测的准确性。如果该单元格中不存在目标,则置信度分数应为零。否则,我们希望置信度得分等于预测框(predicted box)与真实框(ground truth)之间的重叠程度(IOU,Intersection Over Union,当两个框完全重叠时,IOU值为1,表示预测框与真实框完全匹配;而当两个框没有重叠时,IOU值为0)。IOU计算公式如下图所示:

      4.每个边界框由5个预测组成:x、y、w、h和置信度。(x;y)坐标表示相对于网格单元边界的框中心。宽度和高度是相对于整个图像预测的。最后,置信度预测表示预测框(predicted box)与任何真实框(ground truth box)之间的IOU。

      5.每个网格单元还预测C个条件类别概率。这些概率取决于包含目标的网格单元。我们只预测每个网格单元的一组类别概率,而不管框B的数量。如下图所示:

      6.网络设计,如下图所示:网络的最终输出是预测的7x7x30张量

      (1).我们将该模型实现为卷积神经网络。网络的初始卷积层从图像中提取特征,而全连接层则预测输出概率和坐标。

      (2).我们的网络架构受到图像分类GoogLeNet模型的启发。我们的网络有24个卷积层(https://github.com/pjreddie/darknet/blob/master/cfg/yolov1.cfg),后面跟着2个全连接层。我们不使用GoogLeNet使用的inception模块,而是简单地使用1x1缩减层(reduction layer),后跟3x3卷积层。

      7.YOLO的局限性

      (1).YOLO对边界框预测施加了很强的空间约束(spatial constraints),因为每个网格单元只能预测两个框并且只能有一个类别。这种空间约束限制了我们的模型可以预测的附近目标的数量。我们的模型很难处理成群出现的小目标,例如鸟群。

      (2).由于我们的模型从数据中学习预测边界框,因此它很难推广到新的或不寻常的纵横比(unusual aspect ratios)或配置(configurations)的目标。我们的模型还使用相对粗糙的特征来预测边界框,因为我们的架构具有来自输入图像的多个下采样层。

      (3).当我们在近似检测性能的损失函数上进行训练时,我们的损失函数对小边界框和大边界框的错误处理相同。大框中的小错误通常是良性的(benign),但小框中的小错误对IOU的影响要大得多。我们的主要错误来源是不正确的定位(localization)。

      与其它检测系统的比较:

      (1).YOLO网络同时执行特征提取、边界框预测、非极大值抑制和上下文推理。YOLO网络不是静态特征(static feature),而是在线(in-line)训练特征并针对检测任务对其进行优化。

      (2).YOLO是一种通用检测器,可以学习同时检测各种目标(object)。

      (3).YOLO预测图像中多个类别的多个目标的边界框和类别概率。

      (4).YOLO系列属于One-Stage检测,而RCNN系列属于Two-Stage检测

      详细推理过程参见:YOLO Inference

      GitHubhttps://github.com/fengbingchun/NN_Test

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/475316
推荐阅读
相关标签
  

闽ICP备14008679号