Skip to content

alanent/flair2_ign_2nd_place

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IGN FLAIR2 Solution

Ce référentiel contient les résultats de notre participation au concour FLAIR2 organisé par l'IGN.

Entraînement

Nous avons entrainé 4 segformers avec 4 pré-processing et données différentes. Mis à part ces traitements, nous n'avons pas effectué d'augmentations de données supplémentaires.

  • Pour l'utilisation des données sentinels-2, nous avons filtrer les données contenant des nuages et de la neige. Nous enregistrons ensuite les données Sentinel2 correpondantes à chaque image aérienne IMG_{Img_id}.npy dans un fichier appelé SEN_{Img_id}.npy. Pour chaque image aérienne IMG_{Img_id}.npy, nous normalisons cette image par les moyennes et les écart-types de chaque chanaux (rgb) de l'image sentinel2 SEN_{Img_id}.npy précédement créée.
  • Pour la normalisation imagenet, nous avons repris le preprocessing effectué par la classe SegformerFeatureExtractor() de HuggingFace.
  • Pour la normalisation des images aeriennes nous utilisons, les moyennes et les écart-types de chaque canaux de l'ensemble du dataset des images aériennes.
Modèle GPU d'Entraînement Lot d'Entraînement Nombre d'Époques Mean IoU (test) Models Link Training Script
SegFormer-B5 RGB Norm Sentinel2 NVIDIA Tesla A100 8 4 61.3 Accéder aux modèles Ouvrir dans Colab
SegFormer-B5 RGB Norm Aerial NVIDIA Tesla A100 8 4 60.9 Accéder aux modèles Ouvrir dans Colab
SegFormer-B5 RGB Norm ImageNet NVIDIA Tesla A100 8 4 61.3 Accéder aux modèles Ouvrir dans Colab
SegFormer-B5 IGB Norm Aerial NVIDIA Tesla V100 4 8 62.4 Accéder aux modèles Ouvrir dans Colab

Inférence groupée & Pseudo labeling

Nous avons ensuite effectué une inférence simultanée des 4 modèles sur le jeu de test.

Modèles ensemblistes

Le résultat est ensuite utilisé pour réentrainer le modèle suivant sur 2 époques supplémentaires.

Modèle GPU d'Entraînement Lot d'Entraînement Nombre d'Époques Mean IoU (test) Models Link Colab Link
SegFormer-B5 IGB Norm Aerial + Pseudo labeling NVIDIA Tesla V100 4 2 63.3 Accéder aux modèles Ouvrir dans Colab

Preprocessing des données sentinel2

Exécutez ./scripts/preprocess_sentinel2_files.py.

Conversion des Modèles onnx en float16

Exécutez ./scripts/convert_segformers_onnx.py.

Solution finale

Notre solution est l'inférence simultanée des modèles : SegFormer-B5 IGB Norm Aerial pseudo labeled + SegFormer-B5 RGB Norm Sentinel2. Une sélection des résultats par classe est effectué dans un deuxième temps. Le temps total d'inférence des modèles sous l'environnement Colab décrit ci-dessous est de 46 minutes et le score obtenu est de 63.55 IoU.

Ouvrir dans Colab

Environnement d'Exécution

  • Environnement: Colab Pro
  • GPU: NVIDIA Tesla T4 16 Go
  • RAM: Haute capacité

Execution locale

  1. Installation des Dépendances

pip install -r requirements.txt

  1. Télécharger les données et les modèles

Télécharger et décompresser les données et les modèles respectivant dans les dossiers /data & /models

  • Modèles onnx (float16) : Accéder aux modèles
  • données de test (données sentinel2 préprocessées + images aeriennes à la racine du même dossier) : Accéder aux modèles
  1. Inférence

exécutez ./scripts/run.py.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published