一文读懂传统目标检测和YOLO

本文介绍了传统目标检测的滑动窗口、选择性搜索和EdgeBoxes方法,以及它们在速度与精度上的局限。随后,重点讨论了YOLO的单阶段检测策略,如何通过网格划分和锚框实现快速且精确的目标检测。
摘要由CSDN通过智能技术生成

在这里插入图片描述

一、传统的目标检测思路

目标检测简而言之就是识别图片上的物体,标注位置,并将其分类。传统目标检测包括物体定位物体分类,即先确定物体位置,再进行物体特征的提取,再分类。
大致分为三步:

  1. 选取感兴趣区域,即选取可能包含物体的区域——选取区域;
  2. 对可能包含物体的区域进行特征提取——特征提取;
  3. 对提取的特征进行检测分类——目标分类。

其中最重要的就是候选区域的生成,传统的候选区域生成大致有三种方法,分别是滑动窗口(Sliding Window)选择性搜索(Selective Search)EdgeBoxes

1.1. 滑动窗口(Sliding Window)

传统的目标检测算法采用滑动窗口的方式,即一个固定大小的窗口在检测图片上滑动,依次选取区域进行特征提取,再对提取的特征进行分类,判断是否包含某类物体。

但物体有大有小,用同一尺寸的窗口选取区域会出现三种情况

  • 理想情况,滑动窗口正好框住物体
  • 滑动窗口>物体大小,会选取较多背景,物体识别效果较差,准确率低。
  • 滑动窗口<物体大小,对物体局部进行特征提取。产生误分类或多个正确识别的分类

因此需要设计不同大小的窗口,进行区域选取,会产生大量的计算,影响运行速度。

1.2选择性搜索

既然一副图像中物体可能只占一小部分,那着重扫描可能含有物体的区域效率不是更高吗?这也是后续优化的主要思想和方向。
选择性搜索是一种启发式算法,通过分割合并图像区域来生成可能包含物体的候选框。通俗地来说选择性搜索类似于拼图
在这里插入图片描述

  • 一个物体由一些相似的小部分构成,在颜色、纹理等方面会非常相似。
  • 选择性搜索把图片切割成许多小区域,小区域如同小拼图块,再逐步把相似的拼图块合并在一起,形成更大的拼图块。
  • 如此产生一些不同大小和形状的大拼图块,即是候选框,每个候选框会有一个分数,对应物体存在的可能性大小,最后根据分数确定一些候选框进入下一步处理,判断是否有物体。

1.3EdgeBoxes

EdgeBoxes利用图像中的物体的边缘信息来估计物体的位置和大小,从而生成可能包含物体的候选框。

  • 图中包含的物体肯定会有边界,找到边界也就大致找到了物体。
  • EdgeBoxes在图片上移动一个特殊的检测区域,检测不同的边缘变化,如果存在就可能存在物体。
  • 如此产生一些可能的区域,再用固定大小的窗口去检测可能的区域,并赋一个分数,作为可能的候选框,最后根据分数去选择候选框,进入下一步处理,判断是否有问题。

传统的物体定位不管选用何种的候选区域生成方法,选取候选框花费的时间都是难以避免的,那么去除候选框选取的步骤能否大幅加快检测速度呢?

二、YOLO

2.1YOLO

上述的传统目标检测基本都是**双阶段(two-stage)检测,即先选取候选框,再进行检测,精度较高,但速度较慢,不能满足实时性需求,速度更快的单阶段(one-stage)**检测算法YOLO(YouOnlyLookOnce)应运而生。

2.2单阶段检测和双阶段检测

单阶段(one-stage)目标检测网络与双阶段(Two-stage)检测的有着显著区别,简单来说双阶段检测需要经历定位(候选框生成)和检测识别(物体分类和定位)两个阶段,而单阶段的定位和检测识别在同一阶段。

  • 双阶段检测由算法计算出目标候选框,再通过神经网络对目标候选框进行分类与回归。
  • 单阶段检测,不再需要候选区域,仅使用卷积神经网络直接将目标定位框转为回归问题。

传统目标检测的两个阶段二合一之后速度显著提升,能满足实时检测的要求。那么YOLO不使用目标候选框是如何定位问题的呢?

2.3YOLO检测策略

YOLO抛弃了传统的的候选区域检测策略,而是采用**“分而治之”**的策略。
YOLO将输入图像均匀划分为许许多多大小相同的网格,由每个网格单元去检测其范围内是否存在目标,在网格内部使用不同的大小锚框(Anchor boxes)进行捕捉物体,并完成对物体的定位,特征提取,物体分类等。
具体的检测策略如下:

YOLO v1将一张图片平均分成7×7个网格,如果某个object的中心落在这个网格中,则这个网格就负责预测这个object。

在这里插入图片描述

  1. 将一幅图像分成S×S个网格(grid cell),如果某个物体的中心落在这个网格中,则这个网格就负责预测这个物体。
  2. 每个网格要预测B个边界框(bounding box),每个边界框要预测(x,y,w,h)和confidence共5个值,还要预测C个类别信息,记为C个类。
    (x,y指的是x,y坐标,w,h指宽和高,confidence为置信度即是某个类的可能性,C个类别信息为预设要检测的物体类别)

注:在目标检测模型中,边界框回归用于微调模型设定或者学习到的候选框位置,使这些边界框更加接近实际的标注框,是提高目标检测精度的关键步骤之一。

  1. S×S个网格,每个网格要预测B个边界框,还要预测C个类。网络输出就是一个S×S×(5×B+C)的张量。

在这里插入图片描述
YOLO v1把一张图片划分为了7×7个网格,每个网格预测2个Box(Box1和Box2),20个类别。网络输出的shape:7×7×30。


参考:
前奏 | 传统目标检测算法思路
YOLO系列算法精讲:从yolov1至yolov8的进阶之路

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Flyy.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值