Exporter les données d’apprentissage pour l'apprentissage en profondeur (Spatial Analyst)

Disponible avec une licence Spatial Analyst.

Disponible avec une licence Image Analyst.

Résumé

Convertit des données vectorielles ou raster étiquetées en jeux de données d’entraînement pour l’apprentissage profond via une image télédétectée. La sortie est un dossier de fragments d’images et un dossier de fichiers de métadonnées au format spécifié.

Utilisation

  • Cet outil crée des jeux de données d’apprentissage en vue de prendre en charge les applications d’apprentissage profond tierces, telles que Google TensorFlow, Keras, PyTorch et Microsoft CNTK.

  • Les échantillons d’entraînement de cours d’apprentissage profond reposent sur de petites images secondaires contenant l’entité ou la classe présentant un intérêt, nommée fragments d’image.

  • Utilisez vos données d’échantillon d’apprentissage de classification existantes, ou vos données de classes d’entités SIG telles qu’une couche d’emprise de bâtiment, pour gérer les fragments d’image contenant l’échantillon de classe de l’image source. Les fragments d’image sont souvent composés de lignes de 256 pixels et de colonnes de 256 pixels, sauf si la taille de l’échantillon d’entraînement est plus importante. Chaque fragment d’image peut contenir un ou plusieurs objets. Si le format de métadonnées Labeled Tiles (Tuiles étiquetées) est employé, il ne peut exister qu’un seul objet par fragment d’image.

  • Vous pouvez indiquer le paramètre Reference System (Système de référence) pour exporter les données d’entraînement dans l’espace cartographique ou l’espace pixel (espace image brut) à utiliser pour l’entraînement du modèle d’apprentissage profond.

  • Cet outil prend en charge l’exportation des données d’entraînement à partir d’une collection d’images. Vous pouvez ajouter un dossier d’images dans Input Raster (Raster en entrée). Si l’option Input Raster (Raster en entrée) est un jeu de données mosaïque ou un service d’imagerie, vous pouvez également préciser que le paramètre Processing Mode (Mode de traitement) traite la mosaïque en tant qu’entrée ou chaque élément du raster séparément.

  • La taille de cellule et l’étendue peuvent être ajustées à l’aide des paramètres d’environnement de géotraitement.

  • Pour en savoir plus sur les exigences relatives à l’exécution de cet outil ainsi que sur les problèmes que vous pouvez rencontrer, consultez les rubriques FAQ Apprentissage profondPDF FAQ Apprentissage profond.

Syntaxe

ExportTrainingDataForDeepLearning(in_raster, out_folder, in_class_data, image_chip_format, {tile_size_x}, {tile_size_y}, {stride_x}, {stride_y}, {output_nofeature_tiles}, {metadata_format}, {start_index}, {class_value_field}, {buffer_radius}, {in_mask_polygons}, {rotation_angle}, {reference_system}, {processing_mode}, {blacken_around_feature}, {crop_mode})
ParamètreExplicationType de données
in_raster

Imagerie source en entrée, généralement une imagerie multispectrale.

Parmi les exemples de type d’imagerie source en entrée figurent l’imagerie satellite multispectrale, l’imagerie issue de drones, les images aériennes ou l’imagerie NAIP (National Agriculture Imagery Program). L’entrée peut être un dossier d’images.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder
out_folder

Le dossier dans lequel stocker les fragments d’image et les métadonnées en sortie.

Le dossier peut aussi être une URL de dossier qui utilise un fichier de connexion au stockage cloud (*.acs).

Folder
in_class_data

Données d’échantillon d’entraînement sous forme vectorielle ou raster.

Les entrées vectorielles doivent respecter un format d’échantillon d’entraînement, tel que celui généré par le Gestionnaire d’échantillons d’entraînement. Les entrées raster doivent suivre un format raster classé, tel que celui généré par l’outil Classer le raster. Le respect du format de l’échantillon d’entraînement permet de générer des résultats optimisés avec les informations statistiques ; l’entrée peut cependant également être une classe d’entités ponctuelles sans champ de valeur de classe ; ou un raster de type entier sans informations de classe.

Feature Class; Feature Layer; Raster Dataset; Raster Layer; Mosaic Layer; Image Service
image_chip_format

Spécifie le format raster qui sera utilisé pour les fragments d’images en sortie.

PNG et JPEG prennent en charge jusqu’à trois canaux.

  • TIFFLe format TIFF sera utilisé.
  • PNGLe format PNG sera utilisé.
  • JPEGLe format JPEG sera utilisé.
  • MRFLe format MRF (Meta Raster Format) sera utilisé.
String
tile_size_x
(Facultatif)

Taille des fragments d’images pour la dimension x.

Long
tile_size_y
(Facultatif)

Taille des fragments d’images pour la dimension y.

Long
stride_x
(Facultatif)

Distance de déplacement sur la direction x lors de la création des fragments d’image suivants.

Si le pas est égal à la taille de tuile, il n’y a pas de superposition. Si le pas est égal à la moitié de la taille de tuile, il y a une superposition de 50 %.

Long
stride_y
(Facultatif)

Distance de déplacement sur la direction y lors de la création des fragments d’image suivants.

Si le pas est égal à la taille de tuile, il n’y a pas de superposition. Si le pas est égal à la moitié de la taille de tuile, il y a une superposition de 50 %.

Long
output_nofeature_tiles
(Facultatif)

Indique si les fragments d’image qui ne capturent pas d’échantillons d’entraînement sont exportés.

  • ALL_TILESTous les fragments d’image, y compris ceux qui ne capturent d’échantillons d’entraînement, sont exportés.
  • ONLY_TILES_WITH_FEATURESSeuls les fragments d’image qui capturent des échantillons d’entraînement sont exportés. Il s’agit de l’option par défaut.
Boolean
metadata_format
(Facultatif)

Spécifié le format des étiquettes de métadonnées en sortie.

Les options des étiquettes de métadonnées en sortie pour les données d’entraînement sont les suivantes : KITTI rectangles (Rectangles KITTI), PASCAL VOC rectangles (Rectangles PASCAL VOC), Classified Tiles (a class map) (Tuiles classées (carte de classe)), RCNN Masks (Masques RCNN), Labeled Tiles (Tuiles étiquetées), Multi-labeled Tiles (Tuiles à plusieurs étiquettes) et Export Tiles (Exporter des tuiles). Si les données d’échantillons d’entraînement en entrée sont une couche de classe d’entités, telle qu’une couche d’emprise de bâtiment ou un fichier d’échantillon d’entraînement de classification standard, utilisez l’option de rectangles KITTI ou PASCAL VOC. Les métadonnées en sortie sont un fichier .txt ou un fichier .xml comportant les données d’échantillon d’apprentissage contenues dans le rectangle d’emprise minimale. Le nom du fichier de métadonnées correspond à celui de l’image source en entrée. Si les données d’échantillon d’entraînement en entrée sont une carte de classe, utilisez l’option Classified Tiles (Tuiles classées) comme format de métadonnées en sortie.

  • KITTI_rectanglesLes métdonnées suivent le même format que celui du jeu de données Object Detection Evaluation (Vérification de la détection d’objets) du KITTI (Karlsruhe Institute of Technology and Toyota Technological Institute) . Le jeu de données KITTI est une suite de référence en matière de conception. Les fichiers d’étiquettes sont des fichiers de texte brut. Toutes les valeurs, numériques ou de chaînes, sont séparées par des espaces et chaque ligne correspond à un objet.Ce format est utilisé pour détecter les objets.
  • PASCAL_VOC_rectanglesLes métadonnées suivent le même format que le jeu de données PASCAL_VOC (Pattern Analysis, Statistical Modeling and Computational Learning, Visual Object Classes). Le jeu de données PASCAL VOC est un jeu de données d’image standardisé pour la reconnaissance des classes d’objets. Les fichiers d’étiquettes sont au format XML et contiennent des informations sur le nom des images, la valeur de classe et les emprises.Ce format est utilisé pour détecter les objets. Il s’agit de l’option par défaut.
  • Classified_TilesLa sortie correspond à un fragment d’image classé par fragment d’image en entrée. Aucun autre type de métadonnées pour chaque fragment d’image n’est utilisé. Seule la sortie statistique comporte plus d’informations sur les classes, telles que les noms des classes, les valeurs des classes et les statistiques en sortie.Ce format est utilisé pour la classification des pixels.
  • RCNN_MasksLa sortie correspond à des fragments d’image comportant un masque sur les zones dans lesquelles se trouve l’échantillon. Le modèle génère des emprises et des masques de segmentation pour chaque instance d’un objet dans l’image. Il repose sur le réseau pyramidal d’entités (Feature Pyramid Network ou FPN) et une architecture ResNet101 dans le modèle de structure d’apprentissage profond.Ce format est utilisé pour détecter les objets.
  • Labeled_TilesChaque tuile en sortie est étiquetée selon une classe spécifique.Ce format est utilisé pour la classification des objets.
  • MultiLabeled_TilesChaque tuile en sortie est étiquetée selon une ou plusieurs classes. Par exemple, une tuile peut porter les étiquettes agriculture et nuageux.Ce format est utilisé pour la classification des objets.
  • Export_TilesLa sortie consiste en des fragments d’image sans étiquette.Ce format est utilisé pour les techniques d’amélioration d’image, telles que Super Resolution (Super Résolution).

Pour le format de métadonnées KITTI, 15 colonnes sont créées, mais seules 5 d’entre elles sont utilisées dans l’outil. La première colonne est la valeur de la classe. Les 3 colonnes suivantes sont ignorées. Les colonnes 5 à 8 définissent le rectangle d’emprise minimale comportant quatre emplacements de coordonnées d’image : pixels de gauche, en haut, de droite et en bas. Le rectangle d’emprise minimale englobe le fragment d’apprentissage utilisé dans le classificateur d’apprentissage en profondeur. Les autres colonnes ne sont pas utilisées.

Vous trouverez ci-dessous un exemple avec l’option PASCAL VOC :

<?xml version=”1.0”?>
- <layout>
      <image>000000000</image>
      <object>1</object>
    - <part>
         <class>1</class>
       - <bndbox>
            <xmin>31.85</xmin>
            <ymin>101.52</ymin>
            <xmax>256.00</xmax>
            <ymax>256.00</ymax>
         </bndbox>
      </part>
  </layout>

Pour plus d’informations, consultez PASCAL Visual Object ClassesPASCAL Visual Object Classes.

String
start_index
(Facultatif)

Héritage :

Ce paramètre est désormais obsolète. Utilisez une valeur 0 ou # dans Python.

Long
class_value_field
(Facultatif)

Champ contenant les valeurs de la classe. Si aucun champ n’est spécifié, le système recherche un champ value ou classvalue. Si l’entité ne contient pas de champ de classe, le système considère que tous les enregistrements appartiennent à une même classe.

Field
buffer_radius
(Facultatif)

Le rayon d’une zone tampon autour d’un échantillon d’entraînement permettant de délimiter une zone d’échantillon d’entraînement. Cette option permet de créer des échantillons d’entraînement sous forme de polygones circulaires à partir de points.

L’unité linéaire de la référence spatiale pour in_class_data est utilisée.

Double
in_mask_polygons
(Facultatif)

Classe d’entités surfaciques qui délimite la zone dans laquelle les fragments d’image sont créés.

Seuls les fragments d’image qui se trouvent entièrement à l’intérieur des polygones sont créés.

Feature Layer
rotation_angle
(Facultatif)

L’angle de rotation est utilisé pour générer des fragments d’image supplémentaires.

Un fragment d’image est généré avec un angle de rotation égal à 0, c’est-à-dire qu’aucune rotation n’est appliquée. Il subit ensuite une rotation selon l’angle spécifié pour créer un fragment d’image supplémentaire. Les mêmes échantillons d’entraînement sont capturés selon différents angles dans différents fragments d’image à des fins d’augmentation des données.

L’angle de rotation par défaut est égal à 0.

Double
reference_system
(Facultatif)

Indique le type de système de référence à utiliser pour interpréter l’image en entrée. Le système de référence spécifié doit correspondre au système de référence utilisé pour entraîner le modèle d’apprentissage profond.

  • MAP_SPACEUn système de coordonnées basé sur la carte est utilisé. Il s’agit de l’option par défaut.
  • PIXEL_SPACEL’espace image est utilisé, sans rotation ni distorsion.
String
processing_mode
(Facultatif)

Spécifie comment tous les éléments raster figurant dans un jeu de données mosaïque ou un service d’imagerie seront traités. Ce paramètre est appliqué lorsqu’un raster en entrée est un jeu de données mosaïque ou service d’imagerie.

  • PROCESS_AS_MOSAICKED_IMAGETous les éléments raster figurant dans le jeu de données mosaïque ou le service d’imagerie seront mosaïqués ensemble, puis traités. Il s’agit de l’option par défaut.
  • PROCESS_ITEMS_SEPARATELYTous les éléments raster figurant dans le jeu de données mosaïque ou le service d’imagerie seront traités en tant qu’images séparées.
String
blacken_around_feature
(Facultatif)

Indique si les pixels autour de chaque objet ou entité de chaque tuile d’images sont masqués.

Ce paramètre s’applique uniquement lorsque le format de métadonnées est défini sur Labeled_Tiles et qu’une classe d’entités ou un raster classé en entrée a été spécifié.

  • NO_BLACKENLes pixels entourant les objets ou les entités ne sont pas masqués. Il s’agit de l’option par défaut.
  • BLACKEN_AROUND_FEATURELes pixels entourant les objets ou les entités sont masqués.
Boolean
crop_mode
(Facultatif)

Spécifie si les tuiles exportées sont rognées de telle sorte qu’elles fassent toutes la même taille.

Ce paramètre s’applique uniquement lorsque le format de métadonnées est défini sur Labeled_Tiles et qu’une classe d’entités ou un raster classé en entrée a été spécifié.

  • FIXED_SIZELes tuiles exportées sont rognées de telle sorte qu’elles fassent la même taille et sont centrées sur l’entité. Il s’agit de l’option par défaut.
  • BOUNDING_BOXLes tuiles exportées sont rognées de telle sorte que l’emprise géométrique entoure uniquement l’entité dans la tuile.
String

Exemple de code

Exemple 1 d'utilisation de l'outil ExportTrainingDataForDeepLearning (fenêtre Python)

Cet exemple permet de créer des échantillons d’apprentissage pour la formation en profondeur.

# Import system modules
import arcpy
from arcpy.sa import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("spatialAnalyst")

ExportTrainingDataForDeepLearning("c:/test/image.tif", "c:/test/outfolder",
             "c:/test/training.shp", "TIFF", "256", "256", "128", "128", 
             "ONLY_TILES_WITH_FEATURES", "Labeled_Tiles", 0, "Classvalue", 0, 
			 None, 0,  "MAP_SPACE", "PROCESS_AS_MOSAICKED_IMAGE", "NO_BLACKEN", 
			 "FIXED_SIZE")
Exemple 2 d'utilisation de l'outil ExportTrainingDataForDeepLearning (script autonome)

Cet exemple permet de créer des échantillons d’apprentissage pour la formation en profondeur.

# Import system modules and check out ArcGIS Image Analyst extension license
import arcpy
arcpy.CheckOutExtension("SpatialAnalyst")
from arcpy.sa import *

# Set local variables
inRaster = "C:/test/InputRaster.tif"
out_folder = "c:/test/OutputFolder"
in_training = "c:/test/TrainingData.shp"
image_chip_format = "TIFF"
tile_size_x = "256"
tile_size_y = "256"
stride_x="128"
stride_y="128"
output_nofeature_tiles="ONLY_TILES_WITH_FEATURES"
metadata_format="Labeled_Tiles"
start_index = 0
classvalue_field = "Classvalue"
buffer_radius = 0
in_mask_polygons = "MaskPolygon"
rotation_angle = 0
reference_system = "MAP_SPACE"
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"
blacken_around_feature = "NO_BLACKEN"
crop_mode = "FIXED_SIZE"

# Execute 
ExportTrainingDataForDeepLearning(inRaster, out_folder, in_training, 
             image_chip_format,tile_size_x, tile_size_y, stride_x, 
             stride_y,output_nofeature_tiles, metadata_format, start_index, 
			 classvalue_field, buffer_radius, in_mask_polygons, rotation_angle, 
			 reference_system, processing_mode, blacken_around_feature, crop_mode)

Informations de licence

  • Basic: Requiert Spatial Analyst ou Image Analyst
  • Standard: Requiert Spatial Analyst ou Image Analyst
  • Advanced: Requiert Spatial Analyst ou Image Analyst

Rubriques connexes