web-dev-qa-db-fra.com

Tensorflow 1.9/Détection d'objet: model_main.py n'évalue qu'une image

J'ai mis à jour Tensorflow 1.9 et le dernier maître de l'API de détection d'objet. Lorsque vous exécutez une session de formation/évaluation qui fonctionnait bien auparavant (je pense à la version 1.6), la formation semble se dérouler comme prévu, mais je ne reçois que des évaluations et des mesures pour une image (la première).

Dans Tensorboard, l'image est intitulée 'Detections_Left_Groundtruth_Right'. La phase d’évaluation elle-même est extrêmement rapide, ce qui m’amène à penser que ce n’est pas uniquement un problème de Tensorboard.

En regardant modèle_lib.py, je vois un code suspect (près de la ligne 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)

Cela me lit comme si l’évaluateur exécutait toujours une seule évaluation sur la première image. Est-ce que quelqu'un a vu et/ou corrigé cela? Je mettrai à jour si changer les travaux ci-dessus.

7
Ryan

Vous avez raison, la détection d'objet ne prend en charge que des lots de 1 pour l'évaluation. Le nombre d'évaluations est égal au nombre d'étapes d'évaluation. Les mesures d'évaluation sont cumulées sur plusieurs lots.

Btw, un changement pour afficher plus d'images eval dans Tensorboard vient d'être soumis au master.

1
iga

J'ai le même problème lorsque j'utilise le module model_main.py. Lorsque vous utilisez les fonctions train.py et eval.py qui se trouvent dans le répertoire object_detection/legacy/, je peux toutefois voir plusieurs images dans tensorboard.

Je n'avais pas encore le temps de parcourir le code pour bien comprendre ce qui se passait. Je pense que cette fonction eval n'appelle pas la partie du code que vous citez, car les images dans tensorboard sont différentes. Plutôt que d'avoir les paires d'image gauche/droite montrant prediction/ground_truth, c'est uniquement le cadre de sélection prévu qui est affiché.

0
Aplln