动手学习深度学习——锚框

锚框

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

用锚框检测的步骤

基于锚框的目标检测算法就是随机生成多个锚框,比较这些锚框与真实边缘框的差异来预测

  • 提出多个被称为锚框的区域(边缘框)
  • 预测每个锚框里是否含有关注的物体
  • 如果是,预测这个锚框到真实边缘框的偏移

在这里插入图片描述

处理锚框

即计算锚框与真实边缘框的距离

并交比(IoU)
用来计算两个框之间的相似度

  • 0表示无重叠,1表示重合
    这是Jaccard指数的一个特殊情况
    杰卡德系数(Jaccard)可以衡量两组之间的相似性。 给定集合和,他们的杰卡德系数是他们交集的大小除以他们并集的大小:
    在这里插入图片描述
    在这里插入图片描述

赋予锚框编号

为了训练目标检测模型,我们需要每个锚框的类别(class)和偏移量(offset)标签,其中前者是与锚框相关的对象的类别,后者是真实边界框相对于锚框的偏移量。

  • 每个锚框是一个训练样本
  • 将每个锚框,要么标注成背景,要么关联上一个真实边缘框
  • 我们可能会生成大量锚框
    • 这可能会导致大量的父类样本

将真实边界框分配给锚框

  • 算法步骤:
    在这里插入图片描述
  • 举例:
    矩阵的横向(1,2,3,4)表示边缘框(即图像中四个物体的真实边框),纵向(1到9表示随机生成的锚框)
    假设矩阵X中的最大值x23,我们将真实边界框B3分配给锚框A2。然后,我们丢弃矩阵第2行和第3列中的所有元素,在剩余元素(阴影区域)中找到最大的x71,然后将真实边界框B1分配给锚框A7。丢弃矩阵第7行和第1列中的所有元素,在剩余元素(阴影区域)中找到最大的x54,然后将真实边界框分配B4给锚框A5。 丢弃矩阵第5行和第4列中的所有元素,在剩余元素(阴影区域)中找到最大的x92,然后将真实边界框B2分配给锚框A9。之后,我们只需要遍历剩余的锚框A1,A3,A4,A6,A8,然后根据阈值确定是否为它们分配真实边界框。
    在这里插入图片描述

使用非极大值抑制输出(NMS)

当有许多锚框时,可能会输出许多相似的具有明显重叠的预测边界框,都围绕着同一目标。 为了简化输出,我们可以使用非极大值抑制(non-maximum suppression,NMS)合并属于同一目标的类似的预测边界框

  • 工作原理
    在这里插入图片描述

总结

  • 我们以图像的每个像素为中心生成不同形状的锚框。
  • 交并比(IoU)也被称为杰卡德系数,用于衡量两个边界框的相似性。它是相交面积与相并面积的比率。
  • 在训练集中,我们需要给每个锚框两种类型的标签。一个是与锚框中目标检测的类别,另一个是锚框真实相对于边界框的偏移量。
  • 在预测期间,我们可以使用非极大值抑制(NMS)来移除类似的预测边界框,从而简化输出
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值