Не может ли Yolo v3 установить количество ограничивающих рамок меньше трех?

В формуле расчета фильтра 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

1 ответ

Есть четыре важных переменных:

якоря: предопределенный набор ящиков с определенным соотношением высоты и ширины

маска: список идентификаторов ограничивающих рамок (якорей), которые слой отвечает за прогнозирование

num: общее количество якорей

filter = (num_classes + 5) * k, где k= количество масок в одном слое йоло

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
Другие вопросы по тегам