$30 off During Our Annual Pro Sale. View Details »

#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.

Toulouse Data Science

June 01, 2017
Tweet

More Decks by Toulouse Data Science

Other Decks in Technology

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

    View Slide

  2. Merci aux organisateurs !
    Toulouse Data Science
    www.meetup.com/fr­FR/Tlse­Data­Science
    Harry Cow
    http://www.harrycow.com/

    View Slide

  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

    View Slide

  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

    View Slide

  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.

    View Slide

  6. Contenu

    Présentation de la compétition

    Notre solution

    Autres solutions sur Kaggle

    Conclusion et perspectives

    View Slide

  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

    View Slide

  8. T.Soumarmon, V.Fomin

    Compétition Kaggle ?
    ­ Sponsors
    ­ Récompense : argent / job / reconnaissance
    Kaggle compétition “Dstl Feature Detection” 8

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  14. Présentation de la compétition
    Exemple d’une tuile de données d’apprentissage

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  21. T.Soumarmon, V.Fomin
    Présentation de la compétition
    Exploration de données et statistiques
    Kaggle compétition “Dstl Feature Detection” 21

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  26. T.Soumarmon, V.Fomin
    Notre solution
    Réseaux de neurones
    Convolutions 2D
    Kaggle compétition “Dstl Feature Detection” 26

    View Slide

  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

    View Slide

  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

    View Slide

  29. Notre solution
    Choix du réseau

    View Slide

  30. Notre solution
    Le réseau U­net

    View Slide

  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

    View Slide

  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

    View Slide

  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)

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  40. Autres solutions sur Kaggle
    1
    2
    3

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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/

    View Slide

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

    View Slide

  46. T.Soumarmon, V.Fomin
    Kaggle compétition “Dstl Feature Detection”
    Pour le fun
    https://www.youtube.com/watch?v=OfGsiPyx94I

    View Slide