先验框/锚框
- 先验框(prior bounding box),锚框(anchor box)在不同的论文里叫法不一样,但是都是同一概念。
锚框的作用
- 锚框的作用,在进行目标检测任务的基本思路:通过设定众多的候选框,然后针对候选框进行分类和微调,找到目标中最接近的真实框,实现目标检测。这里的候选框也就是锚框。
锚框的大小设定(多个不同大小)
- 在任务中,为了尽可能地覆盖更多的面积和区域,需要设定多种不同尺度的先验框,为了后续与真实框(标注的框)尽可能接近。不同尺度也就是不同的长宽高比例的先验框。
- 显然,设置不同尺度的先验框,出现与目标物体较为匹配(高IoU)的先验框的概率更高。
锚框的位置设定(与特征图相对应)
- 先验框需要设定在不同的位置上。加入每个cell上需要设定三个先验框,如果遍历原图所有像素,假设一个224x224的图片,每个像素位置设置3个先验框,一共需要设置224x224x3=150528个先验框。如果是遍历原图下采样得到的feature map,则会大大减少先验框的数量。
锚框的类别信息的确定
- 我们需要让模型去学习,使得先验框尽可能地接近真实框。也就是学习先验框中是否存在目标值。如何去学习呢,需要优先设置有一个IOU值,也就是先验框与真实框之间的交并比,需要对IOU值进行一个阈值设定,如果IOU值大于阈值,则表示先验框中存在目标值,分类为目标框;否则,IOU值小于阈值,表示先验框中不存在目标值,分类为背景框。
- 如下图中所示,如果IOU的阈值设定为0.5,可以将先验框分为背景先验框和目标先验框两类。
先验框截断
- 先验框超出图片界限时,一般用图片尺寸将越界的先验框进行截断,比如某个先验框左上角坐标是(-5, -9),那么就截断为(0,0),某个先验框右下角坐标是(324,134),当图片大小为(224,224)时,就将其截断为(224,134)。