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é     : 🛠️ [setup]
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.

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 télécharger l’archive TGZ du réseau Faster R-CNN ResNet50 V1 640x640 sur le site TensorFlow 2 Detection Model Zoo (~203 Mo).
Une fois téléchargée, il faut extraire 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 ~/Téléchargements
(tf2) jlc@pikatchou $ tar xvzf ~/Téléchargements/faster_rcnn_resnet50_v1_640x640_coco17_tpu-8.tar.gz -C pre-trained

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

Exemple

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 qui doit donner les affichages ci-dessous :

# 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