#23 ReX Kaggle - Dstl Satellite Imagery Feature Detection

#23 ReX Kaggle - Dstl Satellite Imagery Feature Detection

« Can you train an eye in the sky? »

Avec cette accroche, le laboratoire de science et technologie de défense britannique (DSTL) a sollicité la communauté Kaggle sur la problématique de la génération de cartes à partir d’images satellites multispectrales WorldView-3.

Reconnaître des chats sur internet d’accord, mais produire des plans depuis des images satellites ? C’est possible ?

tuile_chat.png

Lors de cette présentation, Victor Fomin et Thomas Soumarmon nous feront un retour d’expérience sur les différentes étapes qu’ils ont du franchir et les solutions mises en œuvre lors de cette compétition.

Au programme de ce ReX :

* une compétition à $100.000

* exploitation d’images multispectrales WorldView-3 résolution 30 cm

* deep-learning : un réseau de neurones pour la segmentation de pixel

* travailler pour Q au service de sa majesté

--------------------------------------------------------------------------------------------------------

Bio :

Thomas Soumarmon: Consultant data scientist IA passionné de deep-learning. Kaggler depuis 1 an. Fondateur de Cogitae.

Victor Fomin: Ingénieur traitement d’images. A travaillé pendant 4 ans chez Telespazio (Thales/Leonardo) sur l’imagerie satellite optique et radar.

6aa4f3c589d3108830b371d0310bc4da?s=128

Toulouse Data Science

June 01, 2017
Tweet

Transcript

  1. Dstl Satellite Imagery Feature Detection Can you train an eye

    in the sky? Thomas Soumarmon aka @cogitae Victor Fomin aka @vfdev_5 Meetup TDS, 31/05/2017
  2. Merci aux organisateurs ! Toulouse Data Science www.meetup.com/fr­FR/Tlse­Data­Science Harry Cow

    http://www.harrycow.com/
  3. Dstl : The Defence Science and Technology Laboratory (Dstl) is

    the UK’s leading government agency in applying science and technology (S&T) to the defence and security of the UK. • 5000 solutions • ~2,9 M€ de recherche https://www.gov.uk/government/news/dstls­kaggle­competition­has­been­a­great­success
  4. • 419 équipes • $50,000 ­ 1ère place • $30,000

    ­ 2ème place • $20,000 ­ 3ème place https://www.kaggle.com/c/dstl­satellite­imagery­feature­detection/leaderboard
  5. Thomas Soumarmon Ingénieur consultant IA Kaggler depuis 1 an. Fondateur

    de Cogitae. Dans une ancienne vie architecte logiciel, fullstack dev, chef de projet Victor Fomin Ingénieur traitement d’images A travaillé pendant 4 ans à Telespazio (Thales/Leonardo) sur l’imagerie satellite optique et SAR.
  6. Contenu • Présentation de la compétition • Notre solution •

    Autres solutions sur Kaggle • Conclusion et perspectives
  7. T.Soumarmon, V.Fomin • Kaggle ? ­ 1ere plateforme crowdsourcing datascience

    ­ communauté internationale ­ compétition / collaboration Kaggle: We’re changing the way data science is done. Kaggle: We’re changing the way data science is done. Kaggle compétition “Dstl Feature Detection” 7
  8. T.Soumarmon, V.Fomin • Compétition Kaggle ? ­ Sponsors ­ Récompense

    : argent / job / reconnaissance Kaggle compétition “Dstl Feature Detection” 8
  9. T.Soumarmon, V.Fomin • Compétition Kaggle en pratique ? ­ Récupérer

    les données ­ Analyse des données et problématique ­ Forum et « kernels » ­ Créer un modèle ­ Générer des labels de test ­ Soumettre Evaluation Timeline Public ~ 20 % Private = 100 % données max 3­5 / jour Apprentissage données labels Test données ? Score Kaggle compétition “Dstl Feature Detection” 9
  10. T.Soumarmon, V.Fomin Présentation de la compétition Dstl Satellite Imagery Feature

    Detection Infos pratiques : 15 Décembre 2016 – 7 Mars 2017 3 soumissions/jour 419 équipes $100,000 de prix Can you train an eye in the sky? Kaggle compétition “Dstl Feature Detection” 10
  11. T.Soumarmon, V.Fomin Présentation de la compétition Dstl Satellite Imagery Feature

    Detection Données : ­ Imagerie satellite WorldView­3 : RGB, panchro, MS, SWIR ­ Panchro & RGB ~ 0.31m, MS ~ 1.24 m, SWIR ~ 7.5m *MS – Multi­Spectrale, SWIR ­ Short­Wave Infrared Kaggle compétition “Dstl Feature Detection” 11
  12. T.Soumarmon, V.Fomin Présentation de la compétition Dstl Satellite Imagery Feature

    Detection Données : ­ Imagerie satellite WorldView­3 : RGB, panchro, MS, SWIR ~ 20 Go ­ Panchro & RGB ~ 3,4k x 3,4k pixels, uint16 ­ MS ~ 850x850 pixels, 8 canaux, uint16 ­ SWIR ~ 350x350 pixels, 8 canaux, uint16 ­ 18 zones par 25 tuiles = 450 tuiles ­ 25 tuiles d’apprentissage ­ Tableau descriptif d’objets à détecter en format WKT ­ 10 classes d’objets ­ Coords X,Y anonymes Evaluation : Jaccard Index 1. Buildings 2. Misc. Manmade structures 3. Road 4. Track 5. Trees 6. Crops 7. Waterway 8. Standing water 9. Vehicle Large 10. Vehicle Small *MS – Multi­Spectrale, SWIR ­ Short­Wave Infrared, WKT – Well­Known Text Kaggle compétition “Dstl Feature Detection” 12
  13. T.Soumarmon, V.Fomin Présentation de la compétition Données d’apprentissage et de

    test ­ Imagerie satellite WorldView­3 : ­ Panchro & RGB ~ 0.31m, MS ~ 1.24 m, SWIR ~ 7.5m ­ Scènes : désert, forêts et fleuves, urbain, agriculture, ... 25 tuiles d’apprentissage 18 zones par 25 tuiles = 450 tuiles Kaggle compétition “Dstl Feature Detection” 13
  14. Présentation de la compétition Exemple d’une tuile de données d’apprentissage

  15. T.Soumarmon, V.Fomin Présentation de la compétition Exemple de labels de

    données d’apprentissage Labels format WKT avec coordonnées X, Y anonymisées : Tutoriel Kaggle : ­ Transformation de X, Y en pixels ­ Transformation de pixels en X, Y x'= x x max W2 W +1 , y '= y y min H2 H +1 Kaggle compétition “Dstl Feature Detection” 15
  16. T.Soumarmon, V.Fomin Présentation de la compétition Zoom sur une tuile

    de données d’apprentissage Kaggle compétition “Dstl Feature Detection” 16
  17. T.Soumarmon, V.Fomin Présentation de la compétition Zoom sur une tuile

    avec labels Gd véhicule Chemins Routes Arbres Bâtiments Construct° Champs Ptt vehicule Kaggle compétition “Dstl Feature Detection” 17
  18. T.Soumarmon, V.Fomin Présentation de la compétition Zoom sur une tuile

    Kaggle compétition “Dstl Feature Detection” 18
  19. T.Soumarmon, V.Fomin Présentation de la compétition Zoom sur une tuile

    avec labels Gd véhicule Chemins Routes Arbres Bâtiments Construct° Champs Ptt vehicule Kaggle compétition “Dstl Feature Detection” 19
  20. T.Soumarmon, V.Fomin Présentation de la compétition Evaluation & Fichier de

    soumission Métrique Average Jaccard Index pour évaluer l’alignement de polygones Jaccard= TP TP+FP+FN = |A∩B| |A∪B| Fichier de soumission : Observations : ­ Pénalisation plus importante pour les petits objets de qqs pixels ImageId,ClassType,MultipolygonWKT 6020_0_1, 1, MULTIPOLYGON EMPTY 6120_2_4,1,"POLYGON ((0 0, 0.009188 0, 0.009188 -0.009039999999999999, 0 -0.009039999999999999, 0 0))" etc. Evaluation Score Kaggle compétition “Dstl Feature Detection” 20
  21. T.Soumarmon, V.Fomin Présentation de la compétition Exploration de données et

    statistiques Kaggle compétition “Dstl Feature Detection” 21
  22. T.Soumarmon, V.Fomin Présentation de la compétition Récapitulatif ? RGB P

    Kaggle compétition “Dstl Feature Detection” 22
  23. T.Soumarmon, V.Fomin Kaggle compétition “Dstl Feature Detection” 23

  24. T.Soumarmon, V.Fomin Notre solution Réseaux de neurones Réseau de neurones

    : ensemble hiérarchique d’opérations paramétrables et entraînables f {θ} (x)= y y = proba y = bbox + proba y = masques de proba Classification Détection + classification Segmentation sémantique / classification de pixels Kaggle compétition “Dstl Feature Detection” 24
  25. T.Soumarmon, V.Fomin Notre solution Réseaux de neurones Activations Pooling Upsampling

    Standard / FC / dense Kaggle compétition “Dstl Feature Detection” 25 ReLU : x <= 0 : f(x) = 0 x > 0 : f(x) = x perceptron
  26. T.Soumarmon, V.Fomin Notre solution Réseaux de neurones Convolutions 2D Kaggle

    compétition “Dstl Feature Detection” 26
  27. T.Soumarmon, V.Fomin Notre solution Rappel réseaux de neurones Architecture type

    pour classifier les images Kaggle compétition “Dstl Feature Detection” 27
  28. T.Soumarmon, V.Fomin Notre solution Choix du réseau Quel x ?

    Quel y ? Détection ? Classification ? Segmentation / Classification de pixel WKT RGB P MS SWIR Sortie : n masques de proba Kaggle compétition “Dstl Feature Detection” 28
  29. Notre solution Choix du réseau

  30. Notre solution Le réseau U­net

  31. Input 20 layers « pansharpened » 20 layers upscaled 20

    layers upscaled + indices radiométriques 4 + 8 + 8 layers (3 input) Notre solution Différentes versions 2 versions : « petites » classes 80x80 « grandes » classes 160x160
  32. T.Soumarmon, V.Fomin Notre solution Preprocess Stack layers RGB + P

    + MS + SWIR + Indices 3400 x 3400 Kaggle compétition “Dstl Feature Detection” 32
  33. T.Soumarmon, V.Fomin Notre solution Proba vers wkt Masque de proba

    0.0 ≤ p ≤ 1.0 Binarisation par seuil (threshold) p ≥ seuil => 1 sinon 0 Détection contours (openCV) MULTIPOLYGON(((0.0053412,0.167214;0.0053518,0.167342 ; ...))) Kaggle compétition “Dstl Feature Detection” 33 Transformation affine passage référentiel global (grid_sizes.csv)
  34. T.Soumarmon, V.Fomin Cross­entropy Notre solution La fonction objectif / fonction

    de perte / fonction de coût Importance majeure dans l’apprentissage Jaccard approx Log Jaccard J= TP TP+FN+FP Somme pondérée Jaccard par classe J= 1 N ∑ i=1 n ∑ y true ∗y pred ∑ y true +∑ y pred −∑ y pred ∗y true L=−log(J) Kaggle compétition “Dstl Feature Detection” 34
  35. T.Soumarmon, V.Fomin Notre solution Apprentissage original flip horizontal rotation flip

    vertical Choix des échantillons d’apprentissage par classe Augmentation de données : • recadrage (crop) variable • augmentation Kaggle compétition “Dstl Feature Detection” 35 Python / Keras / theano, TensorFlow Apprentissage local GPU : 2 x titan X RAM : 64 Go HDD : 3 To SSD Optimizer utilisé : Adadelta
  36. T.Soumarmon, V.Fomin Notre solution Génération résultat ­ zoom sur effet

    « carrelage » Kaggle compétition “Dstl Feature Detection” 36 Itération sur tuile Solution simple : overlap
  37. T.Soumarmon, V.Fomin Notre solution Post­traitement de données de prédiction Correction

    des polygones produits par NN Bâtiment & Arbres : • élargir la taille des polygones et boucher les trous Eau stagnante : • Supprimer les polygones de surface inférieure à un seuil • Élargir la taille des polygones et boucher les trous Routes : • ML pour nettoyer les fausses détections par des caractéristiques de contours Merge de polygones de mêmes zones géographiques Kaggle compétition “Dstl Feature Detection” 37
  38. T.Soumarmon, V.Fomin Quelques difficultés rencontrées Mise en place longue du

    pipeline initiale : • Prétraitement • Génération wkt Grosse taille des fichiers résultat pour soumission online (zip 1Go) La plateforme Kaggle a eu une modification importante pendant la compétition Exception sur évaluation Kaggle ! • csv attendu dans un certain ordre • Wkt demandé et non masque de proba Kaggle compétition “Dstl Feature Detection” 38
  39. T.Soumarmon, V.Fomin Notre solution Résultats Private LB (32 tuiles) Public

    LB (6 tuiles) Bâtiments 0,3229 0,6503 Constructions 0,071 0,067 Routes 0,4479 0,8404 Sentiers 0,1182 0,1288 Arbres 0,5884 0,4201 Champs 0,8103 0,8246 Eau rapide 0,8883 0,9582 Eau stagnante 0,2097 0,3395 Grands véhicules 0,0227 0,0917 Petits véhicules 0,0124 0,0316 Total 0,34918 0,43522 Kaggle compétition “Dstl Feature Detection” 39
  40. Autres solutions sur Kaggle 1 2 3

  41. T.Soumarmon, V.Fomin Solution 1ère place 40+ modèles U­Net http://blog.kaggle.com/2017/04/26/dstl­satellite­imagery­competition­1st­place­winners­interview­kyle­lee/ •

    Multi­scaled patch • U­Net training & ensembling • Oversampling on rare classes • Entraînement spécial classe véhicules Software setup • Keras avec Theano Hardware setup • GTX1080 (8GB) + 48GB desktop system RAM • GTX1070 (8GB) + 48GB desktop system RAM • GTX960 (4GB) + 16GB desktop system RAM Kaggle compétition “Dstl Feature Detection” 41
  42. T.Soumarmon, V.Fomin Solutions 2ème et 3ème places U­Net http://blog.kaggle.com/2017/05/09/dstl­satellite­imagery­competition­3rd­place­winners­interview­vladimir­sergey/ •

    3ème place • 2ème place https://www.kaggle.com/c/dstl­satellite­imagery­feature­detection/discussion/29747 Kaggle compétition “Dstl Feature Detection” 42
  43. T.Soumarmon, V.Fomin Conclusion Progression possible : • Multi­résolution => 21ème

    place en Private LB • NN pour la recherche d’indices radiométriques • Super expérience en pratique du deep learning • Développement d’application de l’imagerie satellite optique 31 / 419 Cogitae _ Thomas Soumarmon_vfdev Limitations de la solution : • Spécifique aux données satellite WorldView­3 : P, RGB, MS, SWIR • Spécifique à la zone géographique Kaggle compétition “Dstl Feature Detection” 43
  44. T.Soumarmon, V.Fomin Epilogue Kaggle compétition “Dstl Feature Detection” 44 Modèles

    SSD / Yolo / DSSD pyTorch https://www.datasciencechallenge.org/challenges/1/safe­passage/
  45. T.Soumarmon, V.Fomin Kaggle compétition “Dstl Feature Detection”

  46. T.Soumarmon, V.Fomin Kaggle compétition “Dstl Feature Detection” Pour le fun

    https://www.youtube.com/watch?v=OfGsiPyx94I