arcgis.learn
de l'API. De nombreux modèles de Deep Learning sont disponibles,
permettant notamment d'extraire différents types d'objets à partir
d'images satellites. Quand vous utilisez un modèle de Deep Learning, il
est mieux de l'entraîner préalablement afin de l'adapter à vos données.
Dans ce tutoriel, nous allons voir comment utiliser l'API pour entraîner
un modèle classification de pixels spécialisé dans la reconnaissance de
routes qui permettra d'extraire des routes à partir d'imagerie
satellite. Les modèles entraînés peuvent ensuite être utilisés
directement dans ArcGIS Pro ou ArcGIS Enterprise, et supportent les
traitement distribués pour obtenir des résultats plus rapides.
0/ Présentation et pre-processing des données
La zone d'étude est Paris, avec 425 km de longueur d'axes routiers. Deux entrées sont utilisées pour créer les données nécessaires à l'apprentissage du modèle :une couche d'imagerie et la couche vectorielle (permettant de créer les labels et les fragments d'image). Les données téléchargées comportent 4 types d'imagerie : Multispectral, Pan, Pan-sharpened Multispectral, Pan-sharpened RGB. Dans ce tutoriel, nous utiliserons les données Pan-sharpened RGB converties en imagerie 8 bit.
- Les labels vecteurs au format .geojson ont été converties en feature class (outil JSON vers entités) ;
- La donnée vecteur convertie est vérifiée et réparée si des géométries invalides sont trouvées (outil Réparer les géométries) ;
- L'imagerie est convertie de donnée 16-bit vers 8-bit (fonction Etirer) ;
- Un système de coordonées projeté est appliqués aux données d'imagerie et aux données vecteurs afin de faciliter l'interprétation des résultats et les valeurs utilisées pour les paramètres des outils.
Si les axes routiers sont directement utilisés comme données d'entrée, la taille de la zone tampon peut être définie en fonction de la zone d'intérêt et des types de routes dans cette région. Il est également possible d'utiliser l'outil Créer des zones tampons pour convertir les lignes représantant les axes routiers en polygones routiers et la valeur de la zone tampon peut être déterminée de manière itérative en vérifiant les résultats de l'outil. Les données publiées sont partagées dans cet item ArcGIS, auquel nous allons accéder pour la suite du tutoriel.
1/ Préparation des données
prepare_data()
et du modèle de Deep Learning
MultiTaskRoadExtractor
issus d'arcgis.learn
.
Nous accédons ensuite aux données qui nous permettront d'entraîner
notre modèle, issues des étapes décrites précédemment :
Nous allons télécharger ces données, les extraires et en récupérer
le chemin d'accès :
Nous allons maintenant pouvoir exécuter la fonction
prepare_data()
. Voici les arguments fréquemment utilisés :
-
path
: chemin vers le fichier contenant les données d'entraînement ; -
chip_size
: les images seront recadrées selon le chip_size spécifié ; -
batch_size
: nombre d'image que le modèle va entraîner à chaque étape d'un epoch, cela dépend directement de la mémoire de votre carte graphique ; -
val_split_pct
: pourcentage de données à garder pour la validation du modèle ; -
resize_to
: redimensionne les images recadrées à la taille indiquée.
2/ Visualisation des données préparées
Nous pouvons maintenant jeter un œil aux données
préparées, en regardant l'imagerie ainsi que les
labels qui y sont superposés avec la
show_batch()
. Le paramètre
alpha
permet de contrôler la transparence
des labels.
3/ Entrainement du modèle
Nous allons maintenant pouvoir passer à
l'entrainement du modèle.
Nous commençons par
créer un objet contenant le modèle Multi-Task Road
Extractor , en utilisant les données préparées.
Des paramètres avancés spécifiques au modèle
peuvent être définis à ce moment, mais notez
qu'ils sont optionnels, et que les valeurs
définies par défaut fonctionnent de manière
satisfaisante dans la plupart des cas. Voici la
liste des paramètres avancés pour le modèle
Multi-Task Road Extractor :
-
gaussian_thresh
: définit le seuil gaussien qui permet de fixer la largeur de route requise. -
orient_bin_size
: définit la taille de la boîte pour les angles d'orientation. -
orient_theta
: définit la largeur du masque d'orientation. -
mtl_model
: définit l'architecture neuronale du modèle. Les valeurs possibles sont « linknet » et « hourglass ».
lr_find()
pour trouver le taux d'apprentissage (learning
rate) optimal. Ce taux d'apprentissage
contrôle la vitesse à laquelle les
informations existantes seront écrasées par
les nouvelles informations acquises tout au
long du processus de formation. Si aucune
valeur n'est spécifiée, le taux
d'apprentissage optimal sera extrait de la
courbe d'apprentissage pendant le processus de
formation.
C'est la méthode
fit()
qui va nous permettre d'entraîner le modèle.
Nous passons en argument le taux
d'apprentissage calculé juste avant. Si le
paramètre early_stopping
est
défini à True
, l'entraînement du
modèle va s'arrêter dès que le modèle arrête
de s'améliorer, quel que soit la valeur
spécifiée pour le paramètre
epoch
(ici 50). Un epoch signifie
signifie que l'ensemble de données est fait un
aller-retour dans le réseau neuronal.
miou
et dice
sont
des métriques de performance, qui
s'afficheront après la complétion de chaque
epoch. Notez que cette étape peut être
relativement longue, en fonction de la machine
sur laquelle vous travaillez.4/ Visualisation des résultats
Nous allons maintenant visualiser les
résultats avec la méthode
show_results()
en utilisant les données de validation. La
première colonne montre les "ground truth
image" auxquelles se superpose les "ground
truth labels", tandis que la seconde
montre les "ground truth image" auxquelles
se superposent les "predicted labels",
c'est-à-dire les routes que le modèle aura
détectées.
5/ Enregistrement du modèle
save()
. Vous pouvez spécifier un chemin d'accès
ainsi que le nom du modèle. Cela va créer
un Esri Model Definition ainsi qu'un zip
contenant un Deep Learning Package vous
permettant de le déployer sur Image Server
ou sur ArcGIS Pro.
6/ Utilisation du modèle
arcgis.learn
possède de nombreux autres modèles que je
vous invite à découvrir.
Aucun commentaire:
Enregistrer un commentaire