Préparer le classificateur d'arbres aléatoires (Spatial Analyst)

Disponible avec une licence Spatial Analyst.

Disponible avec une licence Image Analyst.

Synthèse

Génère un fichier de définition de classificateur Esri (.ecd) à l’aide de la méthode de classification Arbres aléatoires.

Le classificateur d’arbres aléatoires est une technique de classification des images qui résiste au sur-ajustement et peut fonctionner avec des images segmentées et d’autres jeux de données raster auxiliaires. Pour les entrées d’image standard, l’outil accepte les images multicanaux d’une profondeur des couleurs quelconque et réalise la classification d’arbres aléatoires par pixel ou segment, en fonction du fichier d’entités d’entraînement en entrée.

Utilisation

  • La méthode de classification par arbres aléatoires est un ensemble d’arbres décisionnels individuels dans lequel chaque arbre est généré à partir de différents échantillons et sous-ensembles des données d’entraînement. Ils sont appelés arbres décisionnels, car pour chaque pixel classé, certaines décisions sont prises par ordre d'importance. Lorsque vous générez un diagramme pour un pixel, il ressemble à une branche. Lorsque vous classez le jeu de données entier, les branches forment un arbre. Cette méthode est appelée arbres aléatoires, car vous classez en fait plusieurs fois le jeu de données en fonction d’une sous-sélection aléatoire de pixels apprentissage, et générez plusieurs arbres décisionnels. Pour prendre une décision finale, chaque arbre dispose d'un vote. Ce processus permet de réduire le sur-ajustement. La méthode de classification Arbres aléatoires est un classificateur d’apprentissage automatique supervisé qui repose sur la construction d’une multitude d’arbres décisionnels, le choix de sous-ensembles aléatoires de variables pour chaque arbre et l’utilisation de l’arbre le plus fréquent en sortie comme classification globale. La méthode de classification Arbres aléatoires corrige la propension au sur-ajustement des arbres décisionnels sur leurs données d’échantillon d’apprentissage. Dans cette méthode, un certain nombre d’arbres apparaissent (et forment, par analogie, une forêt) et des variations parmi les arbres sont introduites en projetant les données d’entraînement sur un sous-espace choisi de manière aléatoire avant d’ajuster chaque arbre. La décision au niveau de chaque nœud est optimisée par une procédure aléatoire.

  • Pour les rasters segmentés, dont la propriété de clé est définie sur Segmenté, l'outil calcule l'image d'index et les attributs de segments associés à partir du raster segmenté RVB. Les attributs sont calculés pour générer le fichier de définition de classificateur à utiliser dans un outil de classification distinct. Les attributs de chaque segment peuvent être calculés à partir de toute image prise en charge par Esri.

  • Tout raster pris en charge par Esri est accepté en entrée, y compris les produits raster, les rasters segmentés, les mosaïques, les services d’imagerie et les jeux de données raster génériques. Les rasters segmentés doivent être des rasters 8 bits à 3 canaux.

  • Pour créer un fichier d’échantillon d’entraînement, accédez à la fenêtre Gestionnaire d’échantillons d’apprentissage à partir du menu déroulant Outils de classification.

  • Le paramètre Attributs de segment n’est actif que si l’une des entrées de la couche raster est une image segmentée.

  • Un processus en deux étapes est nécessaire pour classer les séries chronologiques de données raster à l’aide de l’algorithme CCDC (Continuous Change Detection and Classification). Dans un premier temps, exécutez l’outil Analyser les modifications avec l’algorithme CCDC, qui est disponible avec une licence d’extension Image Analyst. Utilisez ensuite ces résultats comme entrée pour cet outil d’entraînement.

    Les données fournies à titre d’échantillons d’apprentissage doivent être collectées à plusieurs reprises à l’aide du Gestionnaire d’échantillons d’apprentissage. La valeur de dimension de chaque exemple est répertoriée dans un champ figurant dans la classe d’entités des échantillons d’entraînement comme indiqué dans le paramètre Champ de valeur de dimension.

Paramètres

ÉtiquetteExplicationType de données
Raster en entrée

Jeu de données raster à classer.

Vous pouvez utiliser n'importe quel jeu de données raster pris en charge par Esri. Il est possible d’utiliser un jeu de données raster segmenté de 8 bits, à 3 canaux, dans lequel tous les pixels appartenant à un segment possèdent la même couleur. Vous pouvez également faire appel à un raster segmenté monocanal de 8 bits, en nuances de gris.

Raster Layer; Mosaic Layer; Image Service; String
Fichier d'échantillon d'apprentissage en entrée

Fichier d’échantillons d’apprentissage ou couche délimitant les sites d’entraînement.

Il peut s’agir de shapefiles ou de classes d’entités qui contiennent vos échantillons d’apprentissage. Les noms de champs suivants sont obligatoires dans le fichier d’échantillon d’entraînement :

  • classname- un champ textuel indiquant le nom de la catégorie de classe
  • classvalue- un champ d’entier long contenant la valeur entière de chaque catégorie de classe

Feature Layer
Fichier de définition de classifieur en sortie

Fichier JSON qui contient des informations sur des attributs et des statistiques, ou d’autres informations pour le classificateur. Un fichier .ecd est créé.

File
Raster en entrée supplémentaire
(Facultatif)

Des jeux de données raster auxiliaires, comme une image multispectrale ou un MNE, seront incorporés pour générer des attributs et d’autres informations requises par la classification. Ce paramètre est facultatif.

Raster Layer; Mosaic Layer; Image Service; String
Nombre maximum d'arbres
(Facultatif)

Nombre maximal d'arbres dans la forêt. L'augmentation du nombre d'arbres entraîne des taux de précision accrus, même si cette amélioration peut finalement se stabiliser. Le nombre d'arbres augmente de manière linéaire le temps de traitement.

Long
Profondeur d'arbre maximum
(Facultatif)

Profondeur maximale de chaque arbre dans la forêt. La profondeur permet également d'indiquer le nombre de règles que chaque arbre est autorisé à créer pour parvenir à une décision. Les arbres ne peuvent pas dépasser la profondeur définie par ce paramètre.

Long
Nombre max d'échantillons par classe
(Facultatif)

Le nombre maximal d’échantillons qui seront utilisés pour définir chaque classe.

La valeur par défaut 1 000 est recommandée si les entrées sont des rasters non segmentés. Une valeur inférieure ou égale à zéro signifie que le système utilisera tous les échantillons des sites d’apprentissage pour former le classificateur.

Long
Attributs de segments
(Facultatif)

Spécifie les attributs à inclure dans la table attributaire associée au raster en sortie.

Ce paramètre est activé uniquement si la propriété de clé Segmentée est vraie (définie sur True) dans le raster en entrée. Si la seule entrée de l’outil est une image segmentée, les attributs par défaut sont Couleur de convergence, Nombre de pixels, Compacité et Rectangularité. Si une valeur Raster en entrée supplémentaire est incluse comme entrée avec une image segmentée, les attributs Nombre numérique moyen et Écart type sont également disponibles.

  • Couleur de convergenceLes valeurs de couleurs RVB sont dérivées du raster en entrée, segment par segment. On parle également de couleur chromatique moyenne.
  • Nombre numérique moyenLe numéro numérique (DN) moyen sera dérivé de l’image de pixels facultative, segment par segment.
  • Écart typeL’écart type sera dérivé de l’image de pixels facultative, segment par segment.
  • Nombre de pixelsLe nombre de pixels qui composent le segment, segment par segment.
  • CompacitéDegré auquel un segment est compact ou circulaire, segment par segment. Les valeurs sont comprises entre 0 et 1, où 1 correspond à un cercle.
  • RectangularitéDegré auquel le segment est rectangulaire, segment par segment. Les valeurs sont comprises entre 0 et 1, où 1 correspond à un rectangle.
String
Champ de valeur de dimension
(Facultatif)

Contient les valeurs de dimension dans la classe d’entités des échantillons d’apprentissage en entrée.

Ce paramètre est nécessaire pour classer une série chronologique de données raster à l’aide de la sortie du raster d’analyse des changements produite par l’outil Analyser les modifications avec l’algorithme CCDC de la boîte d’outils Image Analyst.

Field

TrainRandomTreesClassifier(in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_num_trees}, {max_tree_depth}, {max_samples_per_class}, {used_attributes}, {dimension_value_field})
NomExplicationType de données
in_raster

Jeu de données raster à classer.

Vous pouvez utiliser n'importe quel jeu de données raster pris en charge par Esri. Il est possible d’utiliser un jeu de données raster segmenté de 8 bits, à 3 canaux, dans lequel tous les pixels appartenant à un segment possèdent la même couleur. Vous pouvez également faire appel à un raster segmenté monocanal de 8 bits, en nuances de gris.

Raster Layer; Mosaic Layer; Image Service; String
in_training_features

Fichier d’échantillons d’apprentissage ou couche délimitant les sites d’entraînement.

Il peut s’agir de shapefiles ou de classes d’entités qui contiennent vos échantillons d’apprentissage. Les noms de champs suivants sont obligatoires dans le fichier d’échantillon d’entraînement :

  • classname- un champ textuel indiquant le nom de la catégorie de classe
  • classvalue- un champ d’entier long contenant la valeur entière de chaque catégorie de classe

Feature Layer
out_classifier_definition

Fichier JSON qui contient des informations sur des attributs et des statistiques, ou d’autres informations pour le classificateur. Un fichier .ecd est créé.

File
in_additional_raster
(Facultatif)

Des jeux de données raster auxiliaires, comme une image multispectrale ou un MNE, seront incorporés pour générer des attributs et d’autres informations requises par la classification. Ce paramètre est facultatif.

Raster Layer; Mosaic Layer; Image Service; String
max_num_trees
(Facultatif)

Nombre maximal d'arbres dans la forêt. L'augmentation du nombre d'arbres entraîne des taux de précision accrus, même si cette amélioration peut finalement se stabiliser. Le nombre d'arbres augmente de manière linéaire le temps de traitement.

Long
max_tree_depth
(Facultatif)

Profondeur maximale de chaque arbre dans la forêt. La profondeur permet également d'indiquer le nombre de règles que chaque arbre est autorisé à créer pour parvenir à une décision. Les arbres ne peuvent pas dépasser la profondeur définie par ce paramètre.

Long
max_samples_per_class
(Facultatif)

Le nombre maximal d’échantillons qui seront utilisés pour définir chaque classe.

La valeur par défaut 1 000 est recommandée si les entrées sont des rasters non segmentés. Une valeur inférieure ou égale à zéro signifie que le système utilisera tous les échantillons des sites d’apprentissage pour former le classificateur.

Long
used_attributes
[used_attributes;used_attributes,...]
(Facultatif)

Spécifie les attributs à inclure dans la table attributaire associée au raster en sortie.

  • COLORLes valeurs de couleurs RVB sont dérivées du raster en entrée, segment par segment. On parle également de couleur chromatique moyenne.
  • MEANLe numéro numérique (DN) moyen sera dérivé de l’image de pixels facultative, segment par segment.
  • STDL’écart type sera dérivé de l’image de pixels facultative, segment par segment.
  • COUNTLe nombre de pixels qui composent le segment, segment par segment.
  • COMPACTNESSDegré auquel un segment est compact ou circulaire, segment par segment. Les valeurs sont comprises entre 0 et 1, où 1 correspond à un cercle.
  • RECTANGULARITYDegré auquel le segment est rectangulaire, segment par segment. Les valeurs sont comprises entre 0 et 1, où 1 correspond à un rectangle.

Ce paramètre est activé uniquement si la propriété de clé Segmentée est vraie (définie sur True) dans le raster en entrée. Si la seule entrée de l’outil est une image segmentée, les attributs par défaut sont COLOR, COUNT, COMPACTNESS et RECTANGULARITY. Si une valeur in_additional_raster est incluse comme entrée avec une image segmentée, les attributs MEAN et STD sont également disponibles.

String
dimension_value_field
(Facultatif)

Contient les valeurs de dimension dans la classe d’entités des échantillons d’apprentissage en entrée.

Ce paramètre est nécessaire pour classer une série chronologique de données raster à l’aide de la sortie du raster d’analyse des changements produite par l’outil Analyser les modifications avec l’algorithme CCDC de la boîte d’outils Image Analyst.

Field

Exemple de code

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

Il s’agit d'un exemple Python d'utilisation de l'outil TrainRandomTreesClassifier.

import arcpy
from arcpy.sa import *

TrainRandomTreesClassifier("c:/test/moncton_seg.tif",
                           "c:/test/train.gdb/train_features",
                           "c:/output/moncton_sig_SVM.ecd",
                           "c:/test/moncton.tif", "50", "30", "1000",
                           "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY")
Exemple 2 d'utilisation de l'outil TrainRandomTreesClassifier (script autonome)

Il s’agit d'un exemple de script Python d'utilisation de l'outil TrainRandomTreesClassifier.

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

# Set local variables
inSegRaster = "c:/test/cities_seg.tif"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/cities_sig.ecd"
in_additional_raster = "c:/cities.tif"
maxNumTrees = "50"
maxTreeDepth = "30"
maxSampleClass = "1000"
attributes = "COLOR;MEAN;STD;COUNT;COMPACTNESS;RECTANGULARITY"

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

# Execute
TrainRandomTreesClassifier(inSegRaster, train_features,
                           out_definition, in_additional_raster, maxNumTrees,
                           maxTreeDepth, maxSampleClass, attributes)
Exemple 3 d’utilisation de l’outil TrainRandomTreesClassifier (script autonome)

Cet exemple illustre comment préparer le classificateur de arbres aléatoires à l’aide d’un raster d’analyse des changements de l’outil Image Analyst Analyser les modifications avec l’algorithme CCDC.

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

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


# Set local variables
in_changeAnalysisRaster = "c:/test/LandsatCCDC.crf"
train_features = "c:/test/train.gdb/train_features"
out_definition = "c:/output/change_detection.ecd"
additional_raster = ''
maxNumTrees = 50
maxTreeDepth = 30
maxSampleClass = 1000
attributes = None
dimension_field = "DateTime"

# Execute
arcpy.sa.TrainRandomTreesClassifier(
	in_changeAnalysisRaster, train_features, 
	out_definition, additional_raster, maxNumTrees, 
	maxTreeDepth, maxSampleClass, attributes, dimension_field)

Informations de licence

  • Basic: Nécessite Spatial Analyst ou Image Analyst
  • Standard: Nécessite Spatial Analyst ou Image Analyst
  • Advanced: Nécessite Spatial Analyst ou Image Analyst

Rubriques connexes