API обнаружения объектов TF - не удалось вычислить меры оценки

Я успешно обучил модель на моем собственном наборе данных, экспортировал график вывода и сделал вывод на моем тестовом наборе данных.

У меня теперь есть

  • обнаружения как файл tfrecord, указанный во входной конфигурации
  • файл eval_config с указанным набором метрик

Когда я пытаюсь вычислить меры, как при вычислении вывода и оценки нового детектора объектов, руководство с

python object_detection/metrics/offline_eval_map_corloc.py --eval_dir=/media/sf_shared --eval_config_path=/media/sf_shared/eval_config.pbtxt --input_config_path=/media/sf_shared/input_config.pbtxt

Он возвращает это AttributeError:

INFO:tensorflow:Processing file: /media/sf_shared/detections.record
INFO:tensorflow:Processed 0 images...
Traceback (most recent call last):
 File "object_detection/metrics/offline_eval_map_corloc.py", line 173, in <module>
     tf.app.run(main)
 File "/home/chrza/anaconda2/envs/tf27/lib/python2.7/site-packages/tensorflow/python/platform/app.py", line 48, in run
     _sys.exit(main(_sys.argv[:1] + flags_passthrough))
 File "object_detection/metrics/offline_eval_map_corloc.py", line 166, in main
      metrics = read_data_and_evaluate(input_config, eval_config)
 File "object_detection/metrics/offline_eval_map_corloc.py", line 124, in read_data_and_evaluate
     decoded_dict)
 File "/home/chrza/anaconda2/envs/tf27/lib/python2.7/site-packages/tensorflow/models/research/object_detection/utils/object_detection_evaluation.py", line 174, in add_single_ground_truth_image_info
    (groundtruth_dict[standard_fields.InputDataFields.groundtruth_difficult]
AttributeError: 'NoneType' object has no attribute 'size'

Есть подсказки?


person Chris H    schedule 27.11.2017    source источник


Ответы (1)


Я исправил это (временно) следующим образом:

if (standard_fields.InputDataFields.groundtruth_difficult in groundtruth_dict.keys()) and groundtruth_dict[standard_fields.InputDataFields.groundtruth_difficult]: if groundtruth_dict[standard_fields.InputDataFields.groundtruth_difficult].size or not groundtruth_classes.size: groundtruth_difficult = groundtruth_dict[standard_fields.InputDataFields.groundtruth_difficult]

Вместо существующих линий (195-198) в г.

object_detection/metrutils/object_detection_evaluation.py

Ошибка возникает из-за того, что даже в случае отсутствия флага сложности проверяется размер объекта.

Это ошибка, если вы пропустили этот параметр в своих записях tf.

Возможно, это было намерением разработчиков, но ясность документации, безусловно, оставляет желать лучшего.

person Varun    schedule 24.05.2018