Ce référentiel contient les résultats de notre participation au concour FLAIR2 organisé par l'IGN.
- Lien du concours : https://codalab.lisn.upsaclay.fr/competitions/13447#results
- Source des scripts : https://huggingface.co/blog/fine-tune-segformer
- Source de données : https://ignf.github.io/FLAIR/#FLAIR2
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érienneIMG_{Img_id}.npy
, nous normalisons cette image par les moyennes et les écart-types de chaque chanaux (rgb) de l'image sentinel2SEN_{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.
Nous avons ensuite effectué une inférence simultanée des 4 modèles sur le jeu de test.
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 |
Exécutez ./scripts/preprocess_sentinel2_files.py
.
Exécutez ./scripts/convert_segformers_onnx.py
.
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.
- Environnement: Colab Pro
- GPU: NVIDIA Tesla T4 16 Go
- RAM: Haute capacité
- Installation des Dépendances
pip install -r requirements.txt
- 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) :
- données de test (données sentinel2 préprocessées + images aeriennes à la racine du même dossier) :
- Inférence
exécutez ./scripts/run.py
.