Détection d’Avions sur Imagerie Satellite (PlanesNet)

Classification supervisée : réseaux de neurones et algorithmes classiques

Python PyTorch / scikit-learn Vision par ordinateur MLOps léger

Présentation du Projet

Ce projet applique plusieurs méthodes d’apprentissage supervisé pour détecter la présence d’avions dans des images satellites issues du dataset Planes in Satellite Imagery (PlanesNet). Les images (20×20 RGB) sont labellisées plane ou no-plane et sont fournies en JSON (vecteurs de 1200 pixels). L’objectif est de construire un socle de modèles de classification (CNN, MLP, ResNet18, KNN, Naive Bayes, arbre de décision) avec métriques complètes (ROC-AUC, matrices de confusion, courbes précision) et de les comparer pour faciliter le choix et le déploiement selon le contexte.

Implémentation

Pile technique : Python, PyTorch, torchvision, scikit-learn, matplotlib, joblib.

Résultats & Visualisations

Les visualisations suivantes illustrent les performances et l’interprétabilité des modèles supervisés :

Courbe ROC du modèle CNN sur le jeu de test
Courbe ROC – capacité du modèle à distinguer avions et non-avions selon le seuil de probabilité.
Matrice de confusion du modèle CNN
Matrice de confusion – comparaison des prédictions aux vraies classes (TP, FP, TN, FN).
Arbre de décision scikit-learn
Arbre de décision – structure hiérarchique des règles apprises pour séparer les classes.
Carte de chaleur des importances de caractéristiques
Carte de chaleur des importances – zones de l’image les plus déterminantes pour la détection (arbre de décision).

Analyse & Conclusion

Les expériences sur le dataset PlanesNet montrent l’efficacité des méthodes supervisées pour la détection d’avions en imagerie satellite. Les modèles CNN et ResNet18 se démarquent par leur robustesse face aux variations visuelles, tandis que KNN et Naive Bayes restent pertinents pour des déploiements légers ou des bases de référence. L’arbre de décision apporte une interprétabilité directe et des cartes d’importance des pixels, utiles pour expliquer les décisions.

En conclusion, la combinaison de réseaux profonds et d’algorithmes classiques offre une approche complète et reproductible pour la classification binaire (avion / non-avion), avec des métriques et visualisations adaptées à la prise de décision (sécurité, gestion aéroportuaire, R&D).

Cas d’usage & Prise de décision

Reproductibilité & Commandes

Un fichier regroupe les commandes pour lancer chaque algorithme et le runner : télécharger planesnet_commands.txt.

Exemple : entraîner le CNN
python planesnet_cnn.py --json Data/planesnet/planesnet.json --model cnn --epochs 25 --batch-size 256
Exemple : lancer le runner unifié
python planesnet_runner.py --algo cnn --mode train --json Data/planesnet/planesnet.json

Dataset

Code Source

Scripts et pipeline complet disponibles sur GitHub :

Accéder au dépôt GitHub