Machine learning 我们可以用多个边界框预测器替换目标检测中的锚框吗?

Machine learning 我们可以用多个边界框预测器替换目标检测中的锚框吗?,machine-learning,neural-network,computer-vision,conv-neural-network,object-detection,Machine Learning,Neural Network,Computer Vision,Conv Neural Network,Object Detection,许多流行和最先进的对象检测算法,如YOLO和SSD,都使用锚盒的概念。据我所知,对于像YOLO v3这样的网络,每个输出网格单元都有多个具有不同纵横比的锚盒。对于检测,网络预测与给定对象具有最高重叠a的锚箱的偏移。为什么不使用多个边界框预测器(每个预测器预测x、y、w、h和c)。关键在于了解锚定框是如何创建的。例如,YOLOv3从训练集中获取边界框的大小,对其应用K-均值,并找到能够很好地描述训练集中存在的所有框的框大小 如果您预测w,h而不是锚定框的偏移量,您可能的输出将更加可变,从某种意义上

许多流行和最先进的对象检测算法,如YOLO和SSD,都使用锚盒的概念。据我所知,对于像YOLO v3这样的网络,每个输出网格单元都有多个具有不同纵横比的锚盒。对于检测,网络预测与给定对象具有最高重叠a的锚箱的偏移。为什么不使用多个边界框预测器(每个预测器预测x、y、w、h和c)。

关键在于了解锚定框是如何创建的。例如,YOLOv3从训练集中获取边界框的大小,对其应用K-均值,并找到能够很好地描述训练集中存在的所有框的框大小


如果您预测w,h而不是锚定框的偏移量,您可能的输出将更加可变,从某种意义上讲,边界框将有许多可能的高度和宽度。但是,如果您预测框的偏移量,该框在某种程度上具有适合您的对象检测任务的大小,那么可变性将更小,因为锚框描述所需的边界框。这将为网络带来更好的性能,因为您重新定义了任务,网络现在学习的输入-输出映射就不那么困难了。

不,锚框不能简单地由多个边界框预测器代替

在你的描述中,有一个小误会

为了进行检测,网络预测与给定对象具有最高重叠a的锚箱的偏移量

只有在训练阶段,才能选择与地面真相重叠程度最高的锚箱。如SSD论文第2.2节“匹配策略”所述。不仅选择最高重叠锚箱,而且选择IoU大于0.5的锚箱

在预测期间,框预测器将预测每个锚框的四个偏移量,以及所有类别的置信度

现在的问题是,为什么预测偏移量而不是框属性(x、y、c、h)

简言之,这与规模有关。对此,我同意@viceriel的回答,但这里有一个生动的例子

假设以下两幅大小相同的图像(左边的图像背景为蓝色)被输入预测器,我们想要得到狗的bbox。现在,每张图片中的红色bbox代表锚盒,这两个都是狗的完美bbox。如果我们预测偏移量,在这两种情况下,框预测器只需要预测四个偏移量的0。如果使用多个预测器,模型必须为
c
h
提供两组不同的值,而
x
y
是相同的。这本质上就是@vicerial解释的,因为预测偏移量将为预测者提供一个不太难学习的映射


这个例子也解释了为什么锚定框可以帮助提高探测器的性能。

我对你的观点感到困惑,锚定框是由大量的边界框组成的,通过设置框的大小来设置archior框的配置