首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在目标检测中,我们能用多个边界盒预测器代替锚盒吗?

在目标检测中,我们能用多个边界盒预测器代替锚盒吗?
EN

Stack Overflow用户
提问于 2019-06-26 12:56:03
回答 2查看 935关注 0票数 1

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-26 16:13:04

不,锚框不能简单地被多个边框预测器替换。

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

为了检测,网络预测具有给定对象重叠程度最高的锚盒的偏移量。

选择与地面真相重叠最大的锚盒只会在训练阶段发生。如SSD文件第2.2节所述,匹配策略。不仅选择了最高的重叠锚框,而且还选择了IoU大于0.5的那些。

在预测期间,盒预测器将预测的四个偏移量--每个锚盒--以及所有类别的信任。

现在来讨论为什么要预测偏移量而不是框属性(x,y,c,h)。

简而言之,这与尺度有关。为此,我同意@viceriel的回答,但这里有一个生动的例子。

假设下面两幅大小相同的图像(左侧有蓝色背景)被输入到预测器中,我们希望得到狗的bbox。现在每个图片中的红色bbox代表了锚盒,都是关于狗的完美的bbox。如果我们预测偏移量,在这两种情况下,方框预测器只需要对这四个偏移量预测0。如果使用多个预测器,则模型必须为ch提供两组不同的值,而xy是相同的。从本质上讲,这就是“预测偏移量”所解释的,因为对于预测器来说,这将提供一个不太困难的映射。

此示例还解释了为什么锚盒可以帮助提高检测器的性能。

票数 2
EN

Stack Overflow用户

发布于 2019-06-26 15:23:11

关键是理解如何创建锚框。例如,YOLOv3从训练集获取包围框的大小,将K-方法应用于它们,并找到框大小,它很好地描述了训练集中的所有框。

如果你预测w,h而不是锚盒的偏移量,你可能的输出将是更多的变量,在意义上,有很多很多可能的高度和宽度。但是,如果您预测的偏移框,它有适当的大小,您的对象检测任务,将有较少的可变性,因为锚框描述了想要的包围盒。这将为网络带来更好的性能,因为您可以重新设置任务,而网络现在学习的输入输出映射就不那么困难了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56773365

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档