Yolo v3 不能设置少于三个的边界框吗?

har*_*ddo 2 neural-network conv-neural-network darknet

在Yolo v3的滤波器的计算公式中,边界框的数量除以3(为什么?)。

为此,边界框的数量只允许是3的倍数。

但我想设置一个边界框。这可能吗?

如果可以的话,过滤器需要多少个?

下面是我想实现的代码。

[convolutional]
batch_normalize=1
size=3
stride=1
pad=1
filters=256
activation=leaky

[convolutional]
size=1
stride=1
pad=1
filters=????????? 
activation=linear

[yolo]
mask = 0,1,2
anchors = 10,13
classes=20
num=1
jitter=.3
ignore_thresh = .5
truth_thresh = 1
random=1
Run Code Online (Sandbox Code Playgroud)

小智 5

有四个重要的变量:

锚点:具有特定高宽比的预定框集

mask:该层负责预测的边界框(锚点)的 id 列表

num:锚点总数

filter = (num_classes+5)*k 其中 k=一个 yolo 层中的掩模数量

YOLOv3 预测一组具有特定高宽比(锚点)的预定框的偏移量。锚点是初始(宽度、高度)尺寸,其中一些(最接近对象尺寸)将调整为对象尺寸。

[yolo]一层都必须了解所有锚框,但只负责其中的一个子集。掩码告诉层应该使用哪个边界框进行预测。

YOLOv3的默认配置:

[convolutional]
size=1
stride=1
pad=1
filters=255
activation=linear


[yolo]
mask = 0,1,2
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  59,119,  116,90,  156,198,  373,326
classes=80
num=9
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
Run Code Online (Sandbox Code Playgroud)

这里mask = 0,1,2意味着该[yolo]层([yolo]配置文件中的最后一层)负责预测与锚点 0 (10,13)、1 (16,30)、2 (33,23) 相关的边界框。

全面的,

第一[yolo]层负责6,7,8个anchor。

第二[yolo]层负责3、4、5个anchor。

第三[yolo]层负责0、1、2个锚点。

用于预测每[yolo]一层一个边界框的示例配置:

[convolutional]
size=1
stride=1
pad=1
filters=85
activation=linear


[yolo]
mask = 0
anchors = 10,13,  30,61,  116,90
classes=80
num=3
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1
Run Code Online (Sandbox Code Playgroud)