1

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

为此,bounding box的个数只允许为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
4

1 回答 1

4

有四个重要的变量:

锚点:预先确定的一组具有特定高宽比的框

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

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

全面的,

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

第二[yolo]层负责 3,4,5 个锚点。

第三[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
于 2018-08-07T10:05:36.667 回答