On Cloud N: Cloud Cover Detection Challenge

On Cloud N : Cloud Cover Detection Challenge

Houssem, d’AViSTO Sophia, a participé au « On Cloud N: Cloud Cover Detection Challenge ».

L’objectif était de détecter la couverture nuageuse sur des images satellite pour supprimer les interférences des nuages.

Pourquoi c’est important ?

L’amélioration des méthodes d’identification des nuages peut libérer le potentiel d’une gamme illimitée de cas d’utilisation d’images satellitaires, permettant une recherche plus efficace et plus précise.

Avec sa solution basée sur un algorithme de deep-learning UNET (Ronneberger, 2015) dédié au problème de segmentation sémantique et un encoder mobilenetv3-large, Houssem s’est classé 35ème sur 847 avec un écart de performance de 0.007 par rapport au premier : toutes nos félicitations !!

Il nous en dit plus dans cet article.

Présentation du défi

L’imagerie satellitaire est essentielle pour une grande variété d’applications.

Les nuages représentent un obstacle majeur et doivent généralement être identifiés et supprimés d’un ensemble de données avant que l’imagerie satellite puisse être utilisée.

L’amélioration des méthodes d’identification des nuages peut libérer le potentiel d’une gamme illimitée de cas d’utilisation d’images satellitaires, permettant une recherche plus efficace et plus précise.

Dans ce défi, l’objectif est de détecter la couverture nuageuse sur des images satellite pour supprimer les interférences des nuages.

Le défi utilise les données satellitaires accessibles au public de la mission Sentinel-2, qui capture une imagerie multi-spectrale à haute résolution.

Pour chaque tuile, les données sont séparées en différentes bandes de lumière sur tout le spectre visible, le proche infrarouge et la lumière infrarouge.

Les données sont partagées via le serveur planétaire de Microsoft.

Sachant que seules les bandes B02 (Blue visible light avec une longueur d’onde = 497 nm), B03 (Green visible light avec une longueur d’onde = 560 nm), B04 (Red visible light avec une longueur d’onde = 665 nm) et B08 (Near infrared light avec une longueur d’onde= 835 nm) sont accessibles au téléchargement.

Les autres bandes sont accessibles seulement via le serveur planétaire de Microsoft.

La solution d’Houssem

  • Data : les 3 bandes RGB ont été utilisés pour l’entrainement. Un nettoyage de données a été fait pour éliminer les images mal labélisées. Une partition d’images a été réalisée en prenant en compte la séparation géographique pour assurer une bonne généralisation :
    • Train : 8683
    • Validation : 2381
  • Algo : un algorithme de deep-learning UNET (Ronneberger, 2015) dédié au problème de segmentation sémantique, avec un encoder mobilenetv3-large ({Howard, 2019) (mobilenetv3-large un backbone optimisé pour les appareils mobile) ;
  • Fonction de perte : dice loss + jaccard loss + 1 * local loss ;
  • L’encoder est initialisé avec les poids d’ImageNet ;
  • Batch Size : 32 (8 pour chaque GPU – entrainement sur 4 gpu en parallèle) ;
  • Learning rate : 0.01 ;
  • Optimiser : Adam ;
  • Epochs : 122 epochs;
  • Classes weights : 1.0 –> No-cloud , 100.0 –> cloud
  • Stratégie d’entrainement : Early-stopping + Reduce-On plateau (le modèle bénéficie d’une réduction du taux d’apprentissage d’un facteur de 0.1 une fois que l’apprentissage stagne pendant 15 époques).
  • Classification binaire avec une fonction sigmoïde à la fin du réseau.
  • Augmentation de données :
    • Rotation
    • Up down flip
    • Right left flip

Les résultats

Les résultats sont disponibles ici.

Les modèles sont évalués avec l’indice de Jaccard :

Indice de Jaccard

Le meilleur score d’Houssem : 0.8904 (Rank : 35 / 847).

Meilleur score (première place) : 0.8974 (diff = 0.007 par rapport à Houssem).

Unet-mobileNetv3 Architecture

Figure 1 : Unet-mobileNetv3 Architecture

Exemples de prédictions du modèle Unet-mobileNetV3

Figure 2 : exemples de prédictions du modèle Unet-mobileNetV3 sur quatre images. Images de gauche à droite : image en RGB, vérité terrain, masque prédit, et la matrice de confusion. Légende des couleurs de la matrice de confusion : les pixels noir, vert, rouge et bleu représentent respectivement les vrais négatifs, les vrais positifs, les faux négatifs et les vrais positifs.

 

Références

{Howard, A. a.-C. (2019). Searching for MobileNetV3. arXiv.

Ronneberger, O. a. (2015). {U-Net: Convolutional Networks for Biomedical Image Segmentation. arXiv.