Compute Accuracy For Object Detection (Calculer la précision de la détection des objets) (Image Analyst)

Disponible avec une licence Image Analyst.

Synthèse

Calcule la précision d’un modèle d’apprentissage profond en comparant les objets détectés par l’outil Détecter des objets à l’aide de l’apprentissage profond aux données de réalité de terrain.

En savoir plus sur le fonctionnement de l’outil Calculer la précision pour la détection d’objets.

Utilisation

  • Cet outil génère une table contenant des informations sur la précision de la sortie de l’outil Détecter des objets à l’aide d’algorithmes de Deep Learning.

    La table contient des mesures de précision pour chaque classe dans les données détectées, ainsi qu’une ligne pour toutes les classes (précision globale). La table contient les champs suivants :

    • Precision—Ratio du nombre de vrais positifs par rapport au nombre total de prévisions.
    • Recall—Ratio du nombre de vrais positifs par rapport au nombre total de prévisions positives.
    • F1_Score—Moyenne pondérée de l’exactitude et du rappel. Les valeurs sont comprises entre 0 et 1, 1 indiquant la précision la plus élevée.
    • AP—Mesure de l’exactitude moyenne, qui est l’exactitude moyenne calculée sur toutes les valeurs de rappel entre 0 et 1 à une valeur d’intersection sur union (IoU) donnée.
    • True_Positive—Nombre de vrais positifs générés par le modèle.
    • False_Positive—Nombre de faux positifs générés par le modèle.
    • False_Negative—Nombre de faux négatifs générés par le modèle.

    Pour plus d’informations sur les mesures fournies dans la table en sortie et dans le rapport de précision, consultez Fonctionnement de l’outil Calculer la précision pour la détection d’objets.

  • Les données de référence de terrain en entrée doivent contenir des polygones. Si des données ponctuelles ou linéaires indiquent la localisation d’objets, utilisez l’outil Zone tampon pour générer une classe d’entités surfaciques avant d’exécuter cet outil.

  • Le ratio d’intersection sur union (IoU) est utilisé comme seuil pour déterminer si un résultat prédit est un vrai positif ou un faux positif. Le ratio est l’envergure de la superposition entre la zone de délimitation autour d’un objet prédit et la zone de délimitation autour des données de référence de terrain.

    Le ratio IoU est égal à la superposition des emprises (1) par rapport à l’union des zones de délimitations (2).

    1

    Zone d’intersection de la zone de délimitation prédite et de la zone de délimitation de référence de terrain

    2

    Zone totale de la zone de délimitation prédite et de la zone de délimitation de référence de terrain combinées

Paramètres

ÉtiquetteExplicationType de données
Entités détectées

Classe d’entités surfaciques contenant les objets détectés par l’outil Détecter des objets à l’aide d’algorithmes de Deep Learning.

Feature Class; Feature Layer
Entités de réalité de terrain

Classe d’entités surfaciques contenant des données de réalité de terrain.

Feature Class; Feature Layer
Table de précision en sortie

Table de précision en sortie.

Table
Rapport de précision en sortie
(Facultatif)

Nom du rapport de précision en sortie. Le rapport est un document PDF contenant des mesures et diagrammes de précision.

File
Champ de valeur de classe détecté
(Facultatif)

Champ dans la classe d’entités des objets détectés qui contient les valeurs de classe ou noms de classe.

Si un nom de champ n’est pas spécifié, un champ Classvalue ou Value est utilisé. Si ces champs n’existent pas, tous les enregistrements sont identifiés comme appartenant à une classe.

Les valeurs ou noms de classe doivent correspondre exactement à ceux de la classe d’entités de référence de terrain.

Field
Champ de valeur de classe de réalité de terrain
(Facultatif)

Champ dans la classe d’entités de réalité de terrain qui contient les valeurs de classe.

Si un nom de champ n’est pas spécifié, un champ Classvalue ou Value est utilisé. Si ces champs n’existent pas, tous les enregistrements sont identifiés comme appartenant à une classe.

Les valeurs ou noms de classe doivent correspondre exactement à ceux de la classe d’entités des objets détectés.

Field
Intersection sur union (IoU) minimale
(Facultatif)

Ratio IoU à utiliser comme seuil pour évaluer la précision du modèle de détection des objets. Le numérateur est la zone de superposition entre la zone de délimitation prédite et la zone de délimitation de référence de terrain. Le dénominateur est la zone d’union ou la zone englobée par les deux zones de délimitation. Les plages IoU sont comprises entre 0 et 1.

Double
Entités masques
(Facultatif)

Classe d’entités surfaciques qui délimite la ou les zones de calcul de la précision. La précision sera évaluée uniquement pour les entités qui intersectent le masque.

Feature Class; Feature Layer

ComputeAccuracyForObjectDetection(detected_features, ground_truth_features, out_accuracy_table, {out_accuracy_report}, {detected_class_value_field}, {ground_truth_class_value_field}, {min_iou}, {mask_features})
NomExplicationType de données
detected_features

Classe d’entités surfaciques contenant les objets détectés par l’outil Détecter des objets à l’aide d’algorithmes de Deep Learning.

Feature Class; Feature Layer
ground_truth_features

Classe d’entités surfaciques contenant des données de réalité de terrain.

Feature Class; Feature Layer
out_accuracy_table

Table de précision en sortie.

Table
out_accuracy_report
(Facultatif)

Nom du rapport de précision en sortie. Le rapport est un document PDF contenant des mesures et diagrammes de précision.

File
detected_class_value_field
(Facultatif)

Champ dans la classe d’entités des objets détectés qui contient les valeurs de classe ou noms de classe.

Si un nom de champ n’est pas spécifié, un champ Classvalue ou Value est utilisé. Si ces champs n’existent pas, tous les enregistrements sont identifiés comme appartenant à une classe.

Les valeurs ou noms de classe doivent correspondre exactement à ceux de la classe d’entités de référence de terrain.

Field
ground_truth_class_value_field
(Facultatif)

Champ dans la classe d’entités de réalité de terrain qui contient les valeurs de classe.

Si un nom de champ n’est pas spécifié, un champ Classvalue ou Value est utilisé. Si ces champs n’existent pas, tous les enregistrements sont identifiés comme appartenant à une classe.

Les valeurs ou noms de classe doivent correspondre exactement à ceux de la classe d’entités des objets détectés.

Field
min_iou
(Facultatif)

Ratio IoU à utiliser comme seuil pour évaluer la précision du modèle de détection des objets. Le numérateur est la zone de superposition entre la zone de délimitation prédite et la zone de délimitation de référence de terrain. Le dénominateur est la zone d’union ou la zone englobée par les deux zones de délimitation. Les plages IoU sont comprises entre 0 et 1.

Double
mask_features
(Facultatif)

Classe d’entités surfaciques qui délimite la ou les zones de calcul de la précision. La précision sera évaluée uniquement pour les entités qui intersectent le masque.

Feature Class; Feature Layer

Exemple de code

Exemple 1 d’utilisation de la fonction ComputeAccuracyForObjectDetection (fenêtre Python)

Cet exemple génère une table de précision pour une valeur IoU minimale.

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

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

# Execute 
ComputeAccuracyForObjectDetection(
	"C:/DeepLearning/Data.gdb/detectedFeatures", 
	"C:/DeepLearning/Data.gdb/groundTruth", 
	"C:/DeepLearning/Data.gdb/accuracyTable", 
	"E:/DeepLearning/accuracyReport.pdf", "Class", 
	"Class", 0.5, " C:/DeepLearning/Data.gdb/AOI")
Exemple 2 d’utilisation de la fonction ComputeAccuracyForObjectDetection (script autonome)

Cet exemple génère une table de précision pour une valeur IoU minimale.

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

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

# Set local variables 
detected_features = "C:/DeepLearning/Data.gdb/detectedFeatures" 
ground_truth_features = "C:/DeepLearning/Data.gdb/groundTruth" 
out_accuracy_table = "C:/DeepLearning/Data.gdb/accuracyTable" 
out_accuracy_report = "C:/DeepLearning/accuracyReport.pdf" 
detected_class_value_field = "Class" 
ground_truth_class_value_field = "Class" 
min_iou = 0.5 
mask_features = "C:/DeepLearning/Data.gdb/AOI" 

# Execute 
ComputeAccuracyForObjectDetection(detected_features, 
	ground_truth_features, out_accuracy_table, 
	out_accuracy_report, detected_class_value_field, 
	ground_truth_class_value_field, min_iou, mask_features)