Tensorflow 1.9 / Обнаружение объекта: model_main.py оценивает только одно изображение

Я обновился до Tensorflow 1.9 и последней версии API обнаружения объектов. При запуске сеанса обучения / оценки, который раньше работал нормально (я думаю, версия 1.6), обучение, похоже, продолжается, как и ожидалось, но я получаю оценку и показатели только для одного изображения (первого).

В Tensorboard изображение помечено как «Detections_Left_Groundtruth_Right». Сам этап оценки также происходит очень быстро, что наводит меня на мысль, что это не просто проблема Tensorboard.

Заглянув в model_lib.py, я вижу подозрительный код (около строки 349):

  eval_images = (
      features[fields.InputDataFields.original_image] if use_original_images
      else features[fields.InputDataFields.image])
  eval_dict = eval_util.result_dict_for_single_example(
      eval_images[0:1],
      features[inputs.HASH_KEY][0],
      detections,
      groundtruth,
      class_agnostic=class_agnostic,
      scale_to_absolute=True)

Мне кажется, что оценщик всегда выполняет единственную оценку для первого изображения. Кто-нибудь видел и / или исправлял это? Я обновлю, если изменение выше работает.


person Ryan    schedule 01.08.2018    source источник
comment
Я вижу ту же проблему, я бы очень хотел узнать, почему.   -  person n00dle    schedule 08.08.2018


Ответы (3)


Вы правы, обнаружение объектов поддерживает только пакет размером 1 для оценки. Количество оценок равно количеству шагов eval. Оценочные метрики накапливаются по партиям.

Кстати, изменение для просмотра большего количества изображений eval в Tensorboard только что было отправлено мастеру.

person iga    schedule 14.08.2018

У меня такая же проблема при использовании модуля model_main.py. Однако при использовании функций train.py и eval.py, которые можно найти в каталоге object_detection/legacy/, я могу видеть более одного изображения в тензорной доске.

У меня еще не было достаточно времени, чтобы просмотреть код, чтобы полностью понять, что происходит. Я думаю, что эта функция eval не вызывает ту часть кода, которую вы цитируете, потому что изображения в тензорной доске разные. Вместо того, чтобы иметь пары левого / правого изображения, показывающие prediction / ground_truth, отображается только предсказанная ограничивающая рамка.

person Aplln    schedule 29.08.2018

Для Tensorflow 1.14 и использования моделей я добавил это в свою конфигурацию:

num_visualizations: <number of images to evaluate>

пример:

eval_config: {
num_visualizations: 288
num_examples: 288
max_evals: 288

}

Я не уверен насчет num_examples или num_evals, но на 100% вам нужно, чтобы num_visualizations было в вашей конфигурации, чтобы увидеть больше изображений.

https://github.com/tensorflow/models/issues/5067

Это также упоминается здесь: Показать больше изображений в Tensorboard - Обнаружение объекта Tensorflow < / а>

person IamSierraCharlie    schedule 10.05.2020