Résumé
Outil qui génère un fichier de définition de classificateur Esri (.ecd) à l'aide de la méthode de classification d'arbres aléatoires.
Le classificateur d'arbres aléatoires est une technique puissante 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'apprentissage en entrée.
Utilisation
Arbres aléatoires est un ensemble d'arbres décisionnels individuels, où chaque arbre est généré à partir de différents échantillons et sous-ensembles des données d'apprentissage. 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 des pixels, 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 d'apprentissage, et générez ainsi 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. Arbres aléatoires est un classificateur d'apprentissage par machine 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. Arbres aléatoires corrige la propension au sur-ajustement des arbres décisionnels sur leurs données d'échantillon d'apprentissage. Avec cette méthode, un certain nombre d'arbres sont formés (par analogie, une forêt) et des variations parmi les arbres sont introduites en projetant les données d'apprentissage 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 ou 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'apprentissage, utilisez Gestionnaire d'échantillons d'apprentissage de la barre d'outils Classification d'image. Pour en savoir plus sur l'utilisation de la barre d'outils Classification d'image, reportez-vous à la rubrique Présentation de la classification des images
Le paramètre Attributs de segment est activé uniquement si l'une des entrées de la couche raster est une image segmentée.
Syntaxe
TrainRandomTreesClassifier (in_raster, in_training_features, out_classifier_definition, {in_additional_raster}, {max_num_trees}, {max_tree_depth}, {max_samples_per_class}, {used_attributes})
Paramètre | Explication | Type de données |
in_raster | Sélectionnez le 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 | Sélectionnez le fichier d'échantillon d'apprentissage ou la couche qui délimite vos sites d'apprentissage. Il peut s'agir de fichiers de formes ou de classes d'entités contenant vos échantillons d'apprentissage. | Feature Layer; Raster Catalog Layer |
out_classifier_definition | Fichier JSON qui contient des informations sur des attributs et des statistiques, ou d'autres informations nécessaires pour le classificateur. Un fichier portant l'extension .ecd est créé. | File |
in_additional_raster (Facultatif) | Ce paramètre permet notamment d'incorporer des jeux de données raster auxiliaires, à savoir une image multispectrale ou un MNT, par exemple, pour générer des attributs et d'autres informations requises pour la classification. | 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) | Nombre maximal d'échantillons à utiliser pour définir chaque classe. Il est conseillé d'utiliser la valeur par défaut 1000 lorsque les entrées sont des rasters non segmentés. Lorsque la valeur est inférieure ou égale à 0, le système utilise tous les échantillons des sites d'apprentissage pour préparer le classificateur. | Long |
used_attributes [used_attributes;used_attributes,...] (Facultatif) | Permet de spécifier 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 dans l'outil est une image segmentée, les attributs par défaut sont COLOR, COUNT, COMPACTNESS et RECTANGULARITY. Si un in_additional_raster est également inclus en entrée avec une image segmentée, les attributs MEAN et STD sont alors disponibles. | String |
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)
Environnements
Informations de licence
- ArcGIS Desktop Basic: Requiert Spatial Analyst
- ArcGIS Desktop Standard: Requiert Spatial Analyst
- ArcGIS Desktop Advanced: Requiert Spatial Analyst