Какова цель ignore_thresh и true_thresh в слоях YOLO в yolov3.cfg? - PullRequest
2 голосов
/ 18 мая 2019

Я пытаюсь объяснить назначение различных параметров в файле yolov3.cfg, однако не могу найти объяснения ignore_thresh и true_thresh.

Мое текущее (ограниченное) понимание состоит в том, что они либо связаны с немакс-подавлением, когда они действуют как пороги для объединения ограничивающих рамок, либо с верхними и нижними границами для уверенности в предсказаниях.

Не удалось найти никого, кто бы на самом деле объяснял параметры в Интернете, только люди, у которых есть скопированные части файла конфигурации. Я просмотрел https://blog.paperspace.com/tag/series-yolo/, где YOLOv3 реализован в PyTorch, однако они плавно пропускают использование и объяснение этих двух параметров.

Соответствующие части yolov3.cfg показаны ниже.

[yolo]
mask = 3,4,5
anchors = 10,13,  16,30,  33,23,  30,61,  62,45,  ...
classes=80
num=9
jitter=.3
ignore_thresh = .7
truth_thresh = 1
random=1

Не думаю, что это имеет значение, но я использую хранилище darknet от AlexeyAB в качестве фреймворка.

1 Ответ

1 голос
/ 19 мая 2019

Я также нашел это :

ignore_thresh = .7 : параметр определяет, должна ли ошибка IOU рассчитываться больше порога, и ошибка IOU не ограничивается в функции стоимости.

true_thresh = 1 : размер порога IOU, участвующего в расчете.

Когда предсказанный блок обнаружения перекрывает наземный истинный IOU с помощью ignore_thresh, блок обнаружения не участвует в вычислении потерь, в противном случае он делает.

Цель состоит в том, чтобы контролировать масштаб кадра обнаружения, участвующего в расчете потерь.

Когда значение ignore_thresh слишком велико, близко к 1, затем участвуйте. Число регрессий в поле обнаружения будет меньше, и это легко приведет к переопределению.

Если ignore_thresh установлено слишком маленьким, тогда число участников, участвующих в расчете, будет большим. В то же время, легко выполнить подгонку при выполнении регрессии кадра детектирования.

...