在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
最佳答案
有四个重要的变量:
anchor :具有特定高宽比的预定框组
掩码:图层负责预测的边界框( anchor )的 id 列表
num: anchor 总数
过滤器 = (num_classes+5)*k,其中 k=一个 yolo 层中的掩模数量
YOLOv3 预测具有特定高宽比( anchor )的预定框集的偏移量。 anchor 是初始(宽度、高度)尺寸,其中一些(最接近对象尺寸)将调整为对象尺寸。
每个[yolo]
层都必须了解所有 anchor 框,但只负责其中的一个子集。掩码告诉图层应该使用哪个边界框进行预测。
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]
层)负责用于预测与 anchor 0 (10,13)、1 (16,30)、2 (33,23) 相关的边界框。
总的来说,
第一个[yolo]
层负责6,7,8个 anchor 。
第二个[yolo]
层负责3,4,5个 anchor 。
第三个[yolo]
层负责0,1,2个 anchor 。
在每个 [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
关于neural-network - Yolo v3 不能设置少于三个的边界框吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51608208/