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

De la classification supervisée aux analyses non-supervisées et séries temporelles

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

Présentation du Projet

Ce projet applique plusieurs méthodes d’apprentissage automatique 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 également fournies en JSON (vecteurs de 1200 pixels). L’objectif est double : (1) construire un socle de modèles supervisés (CNN, KNN, Naive Bayes, Arbre de décision) avec métriques complètes et (2) explorer des approches non supervisées (KMeans, clustering hiérarchique) et une analyse temporelle basée sur les scene_id pour suivre l’activité par jour.

Implémentation

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

Résultats & Visualisations

Les visualisations suivantes illustrent les performances et les interprétations issues des différents modèles utilisés :

Courbe ROC du modèle CNN sur le jeu de test
Courbe ROC – montre la capacité du modèle à distinguer les avions des non-avions selon le seuil de probabilité.
Matrice de confusion du modèle CNN
Matrice de confusion – compare les prédictions du modèle aux vraies classes (TP, FP, TN, FN).
Arbre de décision scikit-learn
Arbre de décision – structure hiérarchique des règles apprises par le modèle supervisé pour séparer les classes.
Carte de chaleur des importances de caractéristiques
Carte de chaleur des importances – identifie les zones de l’image les plus déterminantes pour la détection.
Projection PCA 2D des clusters KMeans
Clustering KMeans – projection PCA 2D montrant les regroupements d’images selon leurs similarités visuelles.
Prévision SARIMAX des séries temporelles
Prévision SARIMAX – estimation de l’évolution quotidienne du nombre d’avions détectés sur les prochaines semaines.

Analyse & Conclusion

Les expériences menées sur le dataset PlanesNet démontrent l’efficacité des méthodes d’apprentissage supervisé pour la détection d’avions dans des images satellites. Les modèles CNN et ResNet18 se démarquent par leur robustesse face aux variations visuelles, tandis que les méthodes plus simples comme KNN ou Naive Bayes restent pertinentes pour des déploiements légers. L’arbre de décision offre une interprétabilité précieuse permettant d’expliquer les décisions du modèle.

Les approches non supervisées (KMeans, Clustering hiérarchique) ont permis de mettre en évidence des regroupements naturels d’images, révélant différentes configurations d’avions et de zones environnantes. Enfin, l’analyse temporelle via SARIMAX apporte une dimension dynamique, ouvrant la voie à une surveillance automatisée du trafic aérien et à la prédiction de tendances.

En conclusion, cette étude prouve qu’une combinaison de méthodes supervisées, non supervisées et temporelles offre une vue complète du phénomène observé, tout en facilitant la prise de décision dans les domaines de la sécurité, de la gestion aéroportuaire et de la planification urbaine.

Cas d’usage & Prise de décision

Reproductibilité & Commandes

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

Exemple : entraîner le CNN
python planesnet_nn.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