Télécharger un réseau pré-entraîné à la détection d'objets des des images


Acquis d'apprentissage visés :
- Connaître les principaux avantages/inconvénients des réseaux R-CNN et SSD.
- Savoir installer dans l'arborescence de travail un réseau pré-entrainé téléchargé depuis le site "TensorFlow2 Detection Model Zoo".

Type d'activité     : ⚙️ [tâche]
Durée approximative : 20 minutes (dépend du débit internet)

Les réseaux tensorflow pré-entraînés à la détection d’objets

Plusieurs familles de réseaux pré-entrainés dédiés à la détection d’objets sont proposés sur le site TensorFlow 2 Detection Model Zoo, parmi lesquelles :

La différence entre ces deux familles de réseaux est qu’un réseau R-CNN réalise une classification sur chacune des 2000 fenêtres générées par l’algorithme de recherche ciblée, alors qu’un réseau SSD cherche à prédire la classe ET la fenêtre de l’objet en même temps. Cela rend les réseaux SSD plus rapides que les réseaux Faster R-CNN, mais également moins précis.

Télécharger un réseau R-CNN pré-entraîné et l’installer dans l’arborescence de travail

Dans le tableau du site TensorFlow 2 Detection Model Zoo, les performances des différents réseaux sont exprimées en COCO mAP (Mean Average Precision), métrique couramment utilisée pour mesurer la précision d’un modèle de détection d’objets. Elle consiste à mesurer la proportion de détections réussies sur des images déjà annotées du dataset COCO (Common Object in CONtext) qui contient 200 000 images annotées avec 80 objets différents. Cette mesure sert de référence pour comparer la précision de différentes architectures de détection d’objets (cf Lectures complémentaires [2] en fin de page).

📥 Pour la suite du travail, tu peux utiliser le Faster R-CNN ResNet50 V1 640x640 téléchargeable sur le site TensorFlow 2 Detection Model Zoo (~203 Mo).

Télecharge puis extrait l’archive TGZ au bon endroit dans l’arborescence de travail :

# From within tod_tf2/
(tf2) jlc@pikatchou $ wget http://download.tensorflow.org/models/object_detection/tf2/20200711/faster_rcnn_resnet50_v1_640x640_coco17_tpu-8.tar.gz -P /tmp
(tf2) jlc@pikatchou $ tar xvzf /tmp/faster_rcnn_resnet50_v1_640x640_coco17_tpu-8.tar.gz -C pre-trained
(tf2) jlc@pikatchou $ rm /tmp/faster_rcnn_resnet50_v1_640x640_coco17_tpu-8.tar.gz

puis créé le dossier correspondant faster_rcnn_resnet50_v1_640x640_coco17_tpu-8 dans le dossier <project>/training.

Exemple : projet de reconaissance de chiffres écrits sur des cubes

Avec le projet faces_cubes :

# From within tod_tf2/
(tf2) jlc@pikatchou $ mkdir faces_cubes/training/faster_rcnn_resnet50_v1_640x640_coco17_tpu-8

Vérifie avec la commande tree :

# From within tod_tf2/
(tf2) jlc@pikatchou $ tree -d . -I models
.
├── faces_cubes
│   ├── images
│   │   ├── test
│   │   └── train
│   └── training
│       └── faster_rcnn_resnet50_v1_640x640_coco17_tpu-8
├── pre-trained
│   └── faster_rcnn_resnet50_v1_640x640_coco17_tpu-8
│       ├── checkpoint
│       └── saved_model
│           └── variables
└── tod_tf2_tools

lectures