美文网首页
目标检测基础

目标检测基础

作者: 英文名字叫dawntown | 来源:发表于2020-02-25 21:57 被阅读0次

1. 目标检测和边界框

实际上是人工生成一系列有限个框,然后给这些框打标签

2. 锚框

目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整区域边缘从而更准确地预测目标的真实边界框(ground-truth bounding box)。不同的模型使用的区域采样方法可能不同。这里我们介绍其中的一种方法:它以每个像素为中心生成多个大小和宽高比(aspect ratio)不同的边界框。这些边界框被称为锚框(anchor box)。

2.1 生成多个锚框

假设输入图像高为h,宽为w。我们分别以图像的每个像素为中心生成不同形状的锚框。设大小为s∈(0,1]且宽高比为r>0,那么锚框的宽和高将分别为ws\sqrt{r}和 hs/\sqrt{r} 。当中心位置给定时,已知宽和高的锚框是确定的。

下面我们分别设定好一组大小 s_1,…,s_n 和一组宽高比r_1,…,r_m。如果以每个像素为中心时使用所有的大小与宽高比的组合,输入图像将一共得到 whnm个锚框。虽然这些锚框可能覆盖了所有的真实边界框,但计算复杂度容易过高。因此,我们通常只对包含s_1r_1的大小与宽高比的组合感兴趣,即

(s_1,r_1),(s_1,r_2),…,(s_1,r_m),(s_2,r_1),(s_3,r_1),…,(s_n,r_1).

也就是说,以相同像素为中心的锚框的数量为n+m−1。对于整个输入图像,我们将一共生成wh(n+m−1)个锚框。

2.2 交并比

我们刚刚提到某个锚框较好地覆盖了图像中的狗。如果该目标的真实边界框已知,这里的“较好”该如何量化呢?一种直观的方法是衡量锚框和真实边界框之间的相似度。我们知道,Jaccard系数(Jaccard index)可以衡量两个集合的相似度。给定集合 A 和 B ,它们的Jaccard系数即二者交集大小除以二者并集大小:

J(A,B)=\frac{|A∩B|}{|A∪B|}.

实际上,我们可以把边界框内的像素区域看成是像素的集合。如此一来,我们可以用两个边界框的像素集合的Jaccard系数衡量这两个边界框的相似度。当衡量两个边界框的相似度时,我们通常将Jaccard系数称为交并比(Intersection over Union,IoU),即两个边界框相交面积与相并面积之比,如图9.2所示。交并比的取值范围在0和1之间:0表示两个边界框无重合像素,1表示两个边界框相等。


IoU

2.3 标注训练集的锚框

在训练集中,我们将每个锚框视为一个训练样本。为了训练目标检测模型,我们需要为每个锚框标注两类标签:一是锚框所含目标的类别,简称类别;二是真实边界框相对锚框的偏移量,简称偏移量(offset)。在目标检测时,我们首先生成多个锚框,然后为每个锚框预测类别以及偏移量,接着根据预测的偏移量调整锚框位置从而得到预测边界框,最后筛选需要输出的预测边界框。

2.4 输出预测边界框

在模型预测阶段,我们先为图像生成多个锚框,并为这些锚框一一预测类别和偏移量。随后,我们根据锚框及其预测偏移量得到预测边界框。当锚框数量较多时,同一个目标上可能会输出较多相似的预测边界框。为了使结果更加简洁,我们可以移除相似的预测边界框。常用的方法叫作非极大值抑制(non-maximum suppression,NMS)。

我们来描述一下非极大值抑制的工作原理。对于一个预测边界框B,模型会计算各个类别的预测概率。设其中最大的预测概率为p,该概率所对应的类别即B的预测类别。我们也将 p 称为预测边界框 B 的置信度。在同一图像上,我们将预测类别非背景的预测边界框按置信度从高到低排序,得到列表L。从 L 中选取置信度最高的预测边界框 B_1 作为基准,将所有与 B_1的交并比大于某阈值的非基准预测边界框从L中移除。这里的阈值是预先设定的超参数。此时,L 保留了置信度最高的预测边界框并移除了与其相似的其他预测边界框。 接下来,从L中选取置信度第二高的预测边界框 B_2 作为基准,将所有与 B_2 的交并比大于某阈值的非基准预测边界框从L 中移除。重复这一过程,直到L中所有的预测边界框都曾作为基准。此时L中任意一对预测边界框的交并比都小于阈值。最终,输出列表L中的所有预测边界框。

3. 多尺度目标检测

在1.节 锚框中,我们在实验中以输入图像的每个像素为中心生成多个锚框。这些锚框是对输入图像不同区域的采样。然而,如果以图像每个像素为中心都生成锚框,很容易生成过多锚框而造成计算量过大。举个例子,假设输入图像的高和宽分别为561像素和728像素,如果以每个像素为中心生成5个不同形状的锚框,那么一张图像上则需要标注并预测200多万个锚框561\times728\times5

减少锚框个数并不难。一种简单的方法是在输入图像中均匀采样一小部分像素,并以采样的像素为中心生成锚框。此外,在不同尺度下,我们可以生成不同数量和不同大小的锚框。值得注意的是,较小目标比较大目标在图像上出现位置的可能性更多。举个简单的例子:形状为1\times1、1\times2、2\times2的目标在形状为2\times2的图像上可能出现的位置分别有4、2和1种。因此,当使用较小锚框来检测较小目标时,我们可以采样较多的区域;而当使用较大锚框来检测较大目标时,我们可以采样较少的区域。

相关文章

  • 目标检测基础

    1. 目标检测和边界框 实际上是人工生成一系列有限个框,然后给这些框打标签 2. 锚框 目标检测算法通常会在输入图...

  • 扩展:目标检测基础

    添加边界框 锚框 目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否包含我们感兴趣的目标,并调整...

  • 目标检测基础;图像风格迁移;图像分类案例 2020-02-25

    目标检测基础 目标检测和边界框 边界框 锚框 目标检测算法通常会在输入图像中采样大量的区域,然后判断这些区域中是否...

  • 基础知识 | 对目标检测认识及理解

    摘要:本文就目标检测算法的基础知识进行简要综述,方便大家学习查看。 本文分享自华为云社区《目标检测基础知识[htt...

  • 卷积神经网络的应用

    目标检测 图像识别中,目标检测的任务,是对输入图像样本准确进行分类的基础上,检测其中包含的某些目标,并对它们准确定...

  • Python目标检测

    本文介绍 python, yolov算法目标检测基础框架,可用于检测图片,视频,实时的摄像头监控,结果也可以很好的...

  • 两种端到端通用目标检测方法

    摘要:本文介绍两种端到端训练通用目标检测算法--DETR和DeFCN。 通用目标检测作为计算机视觉中一个基础的任务...

  • 深度学习-3

    1.目标检测基础 生成边界框 什么是锚框 对于一个检测图像,会有大量的采样区域,并调整边缘使得能够更准确预测目标的...

  • 图像分类快速入门:原理与代码

    原创:悬鱼铭 图像分类是人工智能中重要的基础任务,也是目标检测、图像分割、目标跟踪等视觉进阶任务的基础,是人工智能...

  • 目标检测从入门到精通—概述(一)

    目标检测基础知识介绍 导语:最近看了很多的关于目标检测的博客和论文,看的似懂非懂;因此今天开始写一下自己的学习心得...

网友评论

      本文标题:目标检测基础

      本文链接:https://www.haomeiwen.com/subject/jqpfchtx.html