🐳多尺度目标检测
2021-11-30
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
以输入图像的每个像素为中心,生成多个锚框,这些锚框代表了图像不同区域的样本。 然而,如果为每个像素都生成的锚框,最终可能会得到太多需要计算的锚框。 一个561×728的输入图像,如果以每个像素为中心生成五个形状不同的锚框,就需要在图像上标记和预测超过200万个锚框(561×728×5)
减少图像上的锚框数量并不困难。 比如,可以在输入图像中均匀采样一小部分像素,并以它们为中心生成锚框。 此外,在不同尺度下,可以生成不同数量和不同大小的锚框。 直观地说,比起较大的目标,较小的目标在图像上出现的可能性更多样。 例如,1×1、1×2和2×2的目标可以分别以4、2和1种可能的方式出现在2×2图像上。 因此,当使用较小的锚框检测较小的物体时,可以采样更多的区域,而对于较大的物体可以采样较少的区域。
 
卷积图层的二维数组输出称为特征图, 通过定义特征图的形状可以确定任何图像上均匀采样锚框的中心
display_anchors函数定义如下。 在特征图(fmap)上生成锚框(anchors),每个单位(像素)作为锚框的中心。 由于锚框中的轴坐标值(anchors)已经被除以特征图(fmap)的宽度和高度,因此这些值介于0和1之间,表示特征图中锚框的相对位置。
由于锚框(anchors)的中心分布于特征图(fmap)上的所有单位,因此这些中心必须根据其相对空间位置在任何输入图像上均匀分布。 更具体地说,给定特征图的宽度和高度fmap_wfmap_h,以下函数将均匀地对任何输入图像中fmap_h行和fmap_w列中的像素进行采样。 以这些均匀采样的像素为中心,将会生成大小为s(假设列表s的长度为1)且宽高比(ratios)不同的锚框。
 
首先考虑探测小目标。 为了在显示时更容易分辨,在这里具有不同中心的锚框不会重叠: 锚框的尺度设置为0.15,特征图的高度和宽度设置为4。可以看到,图像上4行和4列的锚框的中心是均匀分布的
notion image
 
 
将特征图的高度和宽度减小一半,然后使用较大的锚框来检测较大的目标,当尺度设置为0.4时,一些锚框将彼此重叠
notion image
进一步将特征图的高度和宽度减小一半,然后将锚框的尺度增加到0.8,此时锚框的中心即是图像的中心
notion image
  • PyTorch
  • 锚框目标检测数据集
    目录