низкие показатели достоверности объекта при обучении yolov2 для набора данных лица-лица - PullRequest
0 голосов
/ 12 февраля 2020

В настоящее время я работаю над проблемой обнаружения объектов, которая включает в себя обнаружение лиц на изображениях и создание рамок вокруг них. Чтобы решить эту проблему, я создал модель yolov2, как описано в статье, с функцией потерь, как упомянуто в самой статье. На более ранних этапах я столкнулся с проблемой потерь Nan для потери локализации и, следовательно, нестабильного обучения. Следовательно, нашли обходной путь, сделав некоторые небольшие изменения в функции потерь. В настоящее время проблема, с которой я сталкиваюсь, связана с очень низким показателем достоверности объекта, так как я имею дело с набором данных face-no_face, оценка класса при выводе равна 1,0, но показатель достоверности объекта очень меньше для многих экземпляров, которые содержат только одно лицо, не говоря уже о нескольких лицах в изображении. Хотя во время обучения кумулятивная потеря насыщается около 0,06, но при выводе существует совершенно новая картина с очень низким показателем достоверности.

Функция потери: функция потерь, которую я использую для расчета показателя доверия, представляет собой совокупную потерю двух термины: no_object_loss и object_loss, и оба являются потерями MSE для ячеек сетки, у которых есть object (object_loss) и остальные, вносят вклад в no_object_loss.

Примечание: Мой набор данных содержит 4996 экземпляров изображений с несколькими лицами и ТОЛЬКО 4 МОМЕНТА БЕЗ ЛИЦА. и поэтому мне было интересно, если это проблема, поэтому я получаю низкие оценки достоверности объекта.

1 Ответ

1 голос
/ 13 февраля 2020

Я выкладываю ответ здесь, в случае, если кто-то проходит ту же самую проблему, он может выполнить те же самые шаги отладки, поэтому сначала я выяснил, что было причиной низких комбинированных оценок, и оказалось, что это были объектные оценки, которые было очень меньше, поэтому я посмотрел на распределение активаций после каждой потери, а также на поведение потери объекта, казалось, что оно сильно колебалось, что позволило предположить, что потеря от этого конкретного термина не соответствовала желаемой схеме. следовательно, я вернулся к функции потерь, и, к счастью, ошибка заключалась в вычислении IOU функции потерь. В основном проблема заключалась в границах вычисления iou, то есть не было границ того, каким может быть пересечение двух блоков, поэтому диапазон пересечения может быть от -inf до + inf. Следовательно, вы должны были быть очень много раз, но интуитивно вы можете быть только от 0 до 1 и. Решением этой проблемы было усечение локализации прогнозов от 0 до высоты и ширины изображения во время предварительной обработки для вычисления. Кроме того, при расчете iou, который является пересечением / объединением, я убедился, что пересечение больше или равно 0 (не меньше, что означает, что пересечения вообще нет). Это помогло модели научиться правильному и более точному способу предсказывать блоки, когда это возможно.

...