Уровень достоверности API обнаружения тензорного объекта - PullRequest
1 голос
/ 24 апреля 2019

Я работаю над выполнением обнаружения объекта с помощью тензорного потока, и у меня возникают проблемы, связанные с тем, что обнаружение объекта не очень точное.Я использую архитектуру faster_rcnn_resnet_101.

В частности, я хочу ответить на следующий вопрос:

Я пытаюсь обнаружить ящики, но прикрепленное изображение обнаружило планшеткак коробка, но с действительно высоким уровнем достоверности (99%).Я хочу выяснить, где уровень достоверности определен и напечатан, потому что мне действительно любопытно, почему планшет имеет такой высокий уровень достоверности, который определяется как коробка.Все тренировочные данные, которые я вводил, были коробками, подобными тем, которые я обнаружил.

this is the image of object detection

Может ли кто-нибудь помочь мне выяснить, где определен уровень доверия в API обнаружения объектов Tensorflow?Или может привести меня к решению этой проблемы?

1 Ответ

0 голосов
/ 24 апреля 2019

Сначала я объясню, как создается оценка. Показатель достоверности, отображаемый на краю рамки, представляет собой результат model faster_rcnn_resnet_101. Вот как это генерируется.

enter image description here

Вышеприведенный рисунок заимствован из Fast R-CNN, но для части предиктора коробки Faster R-CNN имеет такую ​​же структуру. Мы начинаем со слоя пула ROI, все предложения по регионам (на карте объектов) проходят через слой пула и будут представлены в виде векторов объектов фиксированной формы, затем через полностью связанные слои и станут вектором объектов ROI , как показано на рисунке. Теперь один и тот же вектор признаков ROI будет подан в классификатор softmax для прогнозирования класса и регрессор bbox для регрессии ограничивающего прямоугольника. Вот как они выглядят на графике тензорного потока.

enter image description here

На графике узлы Flatten и Flatten_1 получают один и тот же тензор объектов и выполняют операцию выравнивания (после операции flatten они фактически являются вектором объектов ROI на первом рисунке), и они остаются одинаковыми. Теперь мы сосредоточимся на ClassPredictor , потому что это фактически даст окончательные предсказания класса.

enter image description here

На рисунке выше показано, что находится внутри ClassPredictor. Это фактически полностью связанный слой, как показано на первом рисунке. Выходной тензор имеет форму 64 * 24 на рисунке и представляет 64 прогнозируемых объекта, каждый из которых является одним из 24 классов (23 класса с 1 фоновым классом). Таким образом, для каждого объекта выходной сигнал представляет собой вектор 1x24, показатель достоверности 99% и 100% является наибольшим значением в векторе.

Итак, что касается вашего вопроса, доверительная оценка не определяется, но результат модели, есть доверительная оценка порог , который вы можете определить в функции визуализации, все оценки больше этого порога будет отображаться на изображении. Таким образом, вы не можете изменить показатель доверия, если вы не переучите модель и / или не предоставите больше данных для обучения. На вашем рисунке 99% обнаружение планшета будет классифицироваться как ложно-положительный при расчете точности.

И решение этой проблемы состоит в том, чтобы добавить больше обучающих данных и / или обучить больше шагов (но не переоснащать)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...