Python 约罗锚箱

Python 约罗锚箱,python,anchor,yolo,Python,Anchor,Yolo,当我读到YOLO的报纸时,它说它用K-means制作锚盒。 然而,当我看到实现此功能的代码时,它似乎修复了锚定大小,如下所示。 我希望你描述一下它的确切含义,或者指出我对此的误解 谢谢,还有你的问候 [yolo] mask = 6,7,8 ***anchors = 10,13, 16,30, 33,23, 30,61, 62,45, 59,119, 116,90, 156,198, 373,326*** “定位”类似于单元格的默认边界框。它由每个锚的宽度和高度组成 ancho

当我读到YOLO的报纸时,它说它用K-means制作锚盒。 然而,当我看到实现此功能的代码时,它似乎修复了锚定大小,如下所示。 我希望你描述一下它的确切含义,或者指出我对此的误解

谢谢,还有你的问候

[yolo] 
mask = 6,7,8
***anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326***

“定位”类似于单元格的默认边界框。它由每个锚的宽度和高度组成

anchors=anchor1_宽度、anchor1_高度、anchor2_宽度、anchor2_高度、…、anchor_宽度、anchor_高度

如果您正在培训yolov3,您可以使用此代码生成自己的锚

约洛夫2号


生成自己的定位点后,在.cfg文件中将默认定位点替换为您的定位点。

定位点类似于单元格的默认边界框。它由每个锚的宽度和高度组成

anchors=anchor1_宽度、anchor1_高度、anchor2_宽度、anchor2_高度、…、anchor_宽度、anchor_高度

如果您正在培训yolov3,您可以使用此代码生成自己的锚

约洛夫2号


生成自己的锚点后,将.cfg文件中的默认锚点替换为您的锚点。如其他答案所述,cfg文件中的锚点框值仅为初始值,稍后它将调整为最接近的预测对象。你们可以用K-均值生成你们自己的锚箱,如其他答案中所述

重要的是,初始值将被调整大小。请参阅AlexeyAB的解释

锚是初始尺寸(宽度、高度),其中一些(最接近 将大小调整为对象大小-使用一些 神经网络输出(最终特征图):

x[…]
-神经网络的输出

偏差[…]
-锚定

b、 w和b.h结果将显示的有界框的宽度和高度 关于结果图像

因此,网络不应预测对象的最终大小,而应 应仅将最近锚的尺寸调整为锚的尺寸 反对

在Yolo v3中,锚定(宽度、高度)-是图像上对象的大小 已调整为网络大小(cfg文件中的宽度=和高度=的大小)

在Yolo v2中,锚定(宽度、高度)-是相对于对象的大小 最终的特征映射(默认情况下比Yolo v3小32倍) cfg文件)


如其他答案所述,cfg文件中的锚定框值仅为初始值,稍后将调整为最接近的预测对象。你们可以用K-均值生成你们自己的锚箱,如其他答案中所述

重要的是,初始值将被调整大小。请参阅AlexeyAB的解释

锚是初始尺寸(宽度、高度),其中一些(最接近 将大小调整为对象大小-使用一些 神经网络输出(最终特征图):

x[…]
-神经网络的输出

偏差[…]
-锚定

b、 w和b.h结果将显示的有界框的宽度和高度 关于结果图像

因此,网络不应预测对象的最终大小,而应 应仅将最近锚的尺寸调整为锚的尺寸 反对

在Yolo v3中,锚定(宽度、高度)-是图像上对象的大小 已调整为网络大小(cfg文件中的宽度=和高度=的大小)

在Yolo v2中,锚定(宽度、高度)-是相对于对象的大小 最终的特征映射(默认情况下比Yolo v3小32倍) cfg文件)


我们需要更多的上下文。在我的文章中,Ctrl-F-ing表示“means”,因为你所说的文章没有提到K-means。此外,这不是Python。很抱歉,我提出了一个没有上下文的不礼貌问题。我引用的论文是YOLO9000:更好,更快,更强,从下面的链接。arxiv.org/pdf/1612.08242.pdf从第2页开始,有一个“维度集群”的部分,上面说YOLO 9000使用K方式制作锚盒(不是手工挑选的)。但从实现此功能的源代码来看,它使锚定框从下面的配置文件中具有预先固定的编号。请参阅下文。()所以,我好奇的是:为什么它应该遵循锚定框信息而不使用K-means。再次感谢:)YOLO9000配置文件看起来与您在帖子中引用的完全不同。YOLO9000和旧配置文件之间的差异看起来与切换到已学习的锚定优先级一致。也许你期望模型在运行时实际执行K-means?我们需要更多的上下文。在我的论文中,你所说的“means”的Ctrl-F-ing没有提到K-means。此外,这不是Python。很抱歉我没有上下文的不礼貌问题。我引用的论文是YOLO9000:更好,更快,更强,从下面的链接。arxiv.org/pdf/1612.08242.pdf从第2页开始,有一个“维度集群”的部分,上面说YOLO 9000使用K方式制作锚盒(不是手工挑选的)。但从实现此功能的源代码来看,它使锚定框从下面的配置文件中具有预先固定的编号。请参阅下文。()所以,我好奇的是:为什么它应该遵循锚定框信息而不使用K-means。再次感谢:)YOLO9000配置文件看起来与您在帖子中引用的完全不同。YOLO9000和旧配置文件之间的差异看起来与切换到已学习的锚定优先级一致。也许您希望模型在运行时实际执行K-means?
darknet/src/yolo_layer.c

Lines 88 to 89 in 6f6e475

 b.w = exp(x[index + 2*stride]) * biases[2*n]   / w;   
 b.h = exp(x[index + 3*stride]) * biases[2*n+1] / h;