Skip to content

alanent/flair2_ign_2nd_place

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