Я успешно обучил алгоритм обнаружения объектов, в основном следуя этому руководству . Я могу отправить задание пакетного прогнозирования (как указано здесь ), используя следующий файл 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"}
, все работает нормально (то есть предсказывает идеальные ограничивающие рамки для этого изображения).