锚框:Anchor box综述

anchor boxes是学习卷积神经网络用于目标识别过程中最重要且最难理解的一个概念。这个概念最初是在Faster R-CNN中提出,此后在SSD、YOLOv2、YOLOv3等优秀的目标识别模型中得到了广泛的应用,这里就详细介绍一下anchor boxes到底是什么?有什么作用?在哪里起作用?

在这里插入图片描述
问题1:为什么需要anchor box?
要了解为什么需要anchor box需要首先了解一下在此之前的一些目标识别方法。

1.滑动窗口

这是比较原始的目标检测方法,给定一个固定尺寸的窗口,根据设定的步伐,一步一步的从左至右、从上至下滑动,把每个窗口输入到卷积神经网络中进行预测和分类,这样做有两个缺点:

由于窗口尺寸固定,因此不适合形变较大的物体
窗口较多,运算量大

2.region proposal

在这里插入图片描述
这是R-CNN系列中核心的思想,以Faster R-CNN为例,模型中使用了两个神经网络,一个是是CNN,一个是RPN(Regional Proposal),区域建议网络不负责图像的分类,它只负责选取出图像中可能属于数据集其中一类的候选区域。接下来就是把RPN产生的候选区域输入到分类网络中进行最终的分类。

3.anchor box

anchor box第一次是出现在Faster R-CNN的论文里,要理解anchor box 首先要理解两个问题。

为什么提出anchor box?

主要有两个原因:

  • 一个窗口只能检测一个目标
  • 无法解决多尺度问题。
    在这里插入图片描述
    以往的模型一个窗口只能预测一个目标,把窗口输入到分类网络中,最终得到一个预测概率,这个概率偏向哪个类别则把窗口内的目标预测为相应的类别,例如在图中红色框内回归得到的行人概率更大,则认为这个目标为行人。此外,在解决多尺度问题时主要采用一种思想–金字塔,或者是例如DPM模型中经典的特征金字塔。在不同分辨率的特征图下检测不同尺寸的目标。但是这样存在一个问题,就是大大的增加了计算量。

为什么使用不同尺寸和不同长宽比?

在这里插入图片描述

为了得到更大的交并比(intersection over union, IOU)。

以训练阶段为例。

对于计算机视觉,比较容易理解的是真实标签(ground truth),人为为每个目标标记的标签。但是在加入anchor box思想之后,在训练集中,我们将每个锚框视为一个训练样本。因此,为了训练目标模型,需要标记每个anchor box的标签,这里的标签包括两个部分:

  • 类别标签
  • 偏移量

有多个anchor box,到底该选取哪一个呢?这是就要通过交并比进行选择。试想一下,如果用一个固定尺寸的anchor,那么对于anchor的标记就没有了针对性。

在这里插入图片描述
举例说明一下,图中棕色的为行人的真实标签,黄色的为车辆的真实标签,红色的框是从feature map映射的anchor box,这样的话通过交并比就很难获取feature map中每个单元对应的标签。

在这里插入图片描述
在这里插入图片描述

这样的话,可以用anchor box1与行人的交并比比较大,可以用于训练和预测行人,anchor box 2与汽车的交并比较大,可以用于训练和预测汽车。使用不同长宽比和尺寸的anchor box,这样更加具有针对性。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

训练

在这里插入图片描述

训练阶段在什么时候触发anchor box?

在这里插入图片描述
在这里插入图片描述

2.预测阶段

在模型的预测阶段,怎么才能获得预测的边界框呢?

首先在图像中生成多个anchor box,然后根据训练好的模型参数去预测这些anchor box的类别和偏移量,进而得到预测的边界框。由于阈值和anchor box数量选择的问题,同一个目标可能会输出多个相似的预测边界框,这样不仅不简洁,而且会增加计算量,为了解决这个问题,常用的措施是使用非极大值抑制(non-maximum suppression,NMS)。
NMS就是一个抑制冗余的反复迭代-遍历的过程。

在这里插入图片描述

  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Anchor Box和Bounding Box的区别是,Anchor Box是一种被设计用来做目标检测的技术,它是一种已经预定义的框架,用来指导模型检测特定物体的位置;而Bounding Box是一种用来标记边界框的方法,用来提取特定物体的轮廓和位置信息。 ### 回答2: Anchor box(锚定框)和bounding box(边界框)是在目标检测和物体识别中常用的两个概念。 边界框(bounding box)是用于描述和定位目标物体的矩形框,通常由左上角和右下角的坐标表示。边界框可以准确地框住目标物体,以便进行目标检测和识别。 锚定框(anchor box),也称为先验框(prior box),是一组预定义的边界框,具有不同的尺寸和宽高比。锚定框通常是在输入图像中以相对位置进行均匀分布的。目标检测算法会根据锚定框对感兴趣的区域进行候选框的生成,然后判断这些候选框是否包含目标物体。 边界框和锚定框的区别在于它们的作用和使用方式。边界框用于描述目标物体的精确位置和边界,而锚定框用于生成检测器的候选框。边界框用于标注目标物体的位置,然后通过边界框的坐标信息进行目标定位和识别。而锚定框则在目标检测算法中作为一种基于先验知识的辅助工具,用于生成候选框,然后通过分类和回归等技术对候选框进行进一步的处理和筛选。 总而言之,边界框用于描述目标位置和形状,而锚定框用于生成候选框并辅助目标检测算法进行目标识别。 ### 回答3: anchor box和bounding box是在目标检测模型中常用的概念,用于定位和识别图像中的目标物体。 首先,bounding box是一个由四个坐标值(通常是左上角和右下角的坐标)定义的矩形框,用于标记图像中目标物体的位置和大小。bounding box可以围住目标物体,使得模型可以定位和识别目标。 而anchor box(也称为prior box)是在目标检测模型中使用的一组预定义的固定大小和宽高比的矩形框。这些anchor box通常是在训练模型之前通过聚类等方式选择得到的。目标检测模型使用这些anchor box作为候选框,通过对这些anchor box进行调整和分类,来实现对物体的定位和识别。 anchor box和bounding box的区别主要在于用途和性质上。bounding box是用于表示真实目标物体的位置和大小的框,而anchor box是一组预定义框,用于通过模型的候选框生成机制选取候选框。bounding box一般是根据真实目标物体标注得到的,而anchor box则是通过聚类等方式选择得到的。另外,bounding box是根据实际物体进行调整得到的,而anchor box则是通过在图像上定位和尺度空间的规定选择得到的。 在目标检测模型的训练中,通常会使用anchor box来生成候选框,然后通过和真实目标物体的bounding box比较,计算损失函数进行优化。这样模型可以通过学习来调整和预测出更好的bounding box来定位和识别目标物体。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值