Пакетное прогнозирование возвращает одинаковые прогнозы для всех экземпляров в одном пакете (модель обнаружения объектов платформы Google AI) - PullRequest
1 голос
/ 28 мая 2020

Я успешно обучил алгоритм обнаружения объектов, в основном следуя этому руководству . Я могу отправить задание пакетного прогнозирования (как указано здесь ), используя следующий файл prediction_instances.json:

{"encoded_image": {"b64": "3wrJITSQiN..."}, "key": "1"}
{"encoded_image": {"b64": "lFd/dhbajX..."}, "key": "2"}
{"encoded_image": {"b64": "yrThwP50t8..."}, "key": "3"}
{"encoded_image": {"b64": "P+Qmx+TD92..."}, "key": "4"}
{"encoded_image": {"b64": "5yd5UiOokG..."}, "key": "5"}
...

длиной 100, где каждая строка содержит кодировку в b64 image.

Задание пакетного прогнозирования выполняется без ошибок, и три файла prediction.results-00000-of-00003, prediction.results-00001-of-00003 и prediction.results-00002-of-00003 (содержащие 21, 39 и 40 экземпляров соответственно) сохраняются в моем сегменте. Пока все хорошо.

Проблема заключается в следующем: Предсказанные ограничивающие рамки (и соответствующие метки) одинаковы для всех экземпляров прогнозов в одном файле. Например, это сокращенный (Я включил только 3 ограничивающих прямоугольника на изображение и только 3 изображения) prediction.results-00000-of-00003 файл.

{
"detection_classes": [27.0, 3.0, 5.0, …], 
"detection_boxes": [[0.29, 0.31, 0.34, 0.38],  [0.39, 0.39, 0.44, 0.46],  [0.43, 0.39, 0.49, 0.47],  …],
"detection_scores": [0.589, 0.500 0.480, …], 
"key": “1”, 
"num_detections": 44.0
}
{
"detection_classes": [27.0, 3.0, 5.0, …], 
"detection_boxes": [[0.29, 0.31, 0.34, 0.38],  [0.39, 0.39, 0.44, 0.46],  [0.43, 0.39, 0.49, 0.47],  …],
"detection_scores": [0.589, 0.500 0.480, …], 
"key": “2”, 
"num_detections": 44.0
}
{
"detection_classes": [27.0, 3.0, 5.0, …], 
"detection_boxes": [[0.29, 0.31, 0.34, 0.38],  [0.39, 0.39, 0.44, 0.46],  [0.43, 0.39, 0.49, 0.47],  …],
"detection_scores": [0.589, 0.500 0.480, …], 
"key": “3”, 
"num_detections": 44.0
}
...

Вы можете видеть, что все данные точно такие же, за исключением "ключевых" -переменных, которые отличаются.

В двух других файлах происходит то же самое; правда, с другими данными. То есть, похоже, что для 100 изображений, которые я отправляю в качестве входных данных, я получаю только 3 прогноза в качестве выходных данных (по одному для каждого выходного файла).

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

{"encoded_image": {"b64": "3wrJITSQiN..."}, "key": "1"}

, все работает нормально (то есть предсказывает идеальные ограничивающие рамки для этого изображения).

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