Détection d’Avions sur Imagerie Satellite (PlanesNet)
De la classification supervisée aux analyses non-supervisées et séries temporelles
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
- Supervisé : CNN 20×20, MLP, ResNet18 (upscale 64×64), KNN (+PCA), Naive Bayes (+PCA), Arbre de décision (+Graphviz).
- Non supervisé : KMeans (courbe du coude), Clustering hiérarchique (Ward / Average + cosine), cartes de chaleur par cluster.
- Séries temporelles : comptage quotidien d’images
planepar date extraite descene_id, prévision SARIMAX. - Orchestration : un
runnerunifié pour lancer chaque expérience en ligne de commande.
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 :
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
- Surveillance d’activité : suivi de l’intensité sur des aéroports pour la planification.
- Aide opérationnelle : maintenance, affectation de ressources, optimisation des créneaux.
- Analyse temporelle : détection de tendances, pics d’activité, corrélations saisonnières.
- R&D : comparaison de modèles, interprétabilité (arbres, importances, heatmaps).
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
- Taille : ~32 000 images 20×20 RGB, labels binaires.
- Formats : PNG nommées
{label}_{sceneid}_{lon}_{lat}.pnget JSON (data,labels,scene_ids,locations). - Pré-traitements : normalisation [0,1], augmentations légères (flips, rotations 90°) pour les CNN.
Code Source
Scripts et pipeline complet disponibles sur GitHub :
Accéder au dépôt GitHub