Résumé
Dans un déploiement d’analyse raster, cet outil exécute un modèle d’apprentissage profond entraîné sur un raster en entrée afin de générer une classe d’entités contenant les objets qu’il identifie. La classe d’entités peut être partagée en tant que couche d’entités hébergée dans votre portail. Les entités peuvent correspondre à des emprises ou des polygones autour des objets trouvés ou encore des points situés aux centres des objets.
Illustration
Utilisation
Votre environnement Python serveur d’analyse raster doit être configuré avec l’API Python d’infrastructure d’apprentissage profond appropriée, telle que Tensorflow, CNTK ou un élément similaire.
Lorsque l’outil est en cours d’exécution, votre serveur d’analyse raster appelle une API Python d’apprentissage profond tierce (telle que TensorFlow ou CNTK) et utilise la fonction raster Python spécifiée pour traiter chaque tuile raster.
Le paramètre Input Model (modèle en entrée) n’utilise qu’un élément de paquetage d’apprentissage profond (.dlpk) du portail.
Une fois le paramètre Input Model (Modèle en entrée) sélectionné ou spécifié, l’outil récupère les arguments du modèle auprès de votre serveur d’analyse raster. Il est possible que l’outil ne parvienne pas à récupérer ces informations si votre modèle en entrée n’est pas valide ou si votre serveur d’analyse raster n’est pas correctement configuré avec l’infrastructure d’apprentissage profond.
Utilisez le paramètre Non Maximum Suppression (Suppression non maximale) pour identifier et supprimer les entités dupliquées de la détection d'objets.
Pour obtenir plus d’informations sur l’apprentissage profond, reportez-vous à la rubrique Apprentissage profond dans ArcGIS Pro.
Syntaxe
DetectObjectsUsingDeepLearning(inputRaster, inputModel, outputName, {modelArguments}, {runNMS}, {confidenceScoreField}, {classValueField}, {maxOverlapRatio}, {processingMode})
Paramètre | Explication | Type de données |
inputRaster | Image en entrée utilisée pour détecter des objets. Il peut s’agir de l’URL d’un service d’imagerie, d’une couche raster, d’un service d'imagerie, d’une couche de serveur de carte ou d’une couche Internet tuilée. | Raster Layer; Image Service; Feature Service Layer; MapServer; Map Server Layer; Internet Tiled Layer; String |
inputModel | Le modèle en entrée peut être un fichier ou une URL d’un élément de paquetage d’apprentissage profond (.dlpk) du portail. | File; String |
outputName | Le nom du service d’entités en sortie des objets détectés. | String |
modelArguments [modelArguments,...] (Facultatif) | Les arguments du modèle de fonction sont définis dans la classe de fonction raster Python référencée par le modèle en entrée. C’est là que vous répertoriez les paramètres et arguments d’apprentissage profond supplémentaires à tester et affiner, par exemple un seuil de confiance pour optimiser la sensibilité. Les noms des arguments sont renseignés par l’outil après lecture du module Python dans le serveur d’analyse raster. | Value Table |
runNMS (Facultatif) | Indique si la suppression non maximale (où les objets dupliqués sont identifiés et où l’entité dupliquée dont la valeur de confiance est la plus faible est supprimée) sera réalisée.
| Boolean |
confidenceScoreField (Facultatif) | Champ dans le service d’entités qui contient les scores de confiance utilisés en sortie par la méthode de détection d’objets. Ce paramètre est obligatoire si le mot-clé NMS est utilisé pour le paramètre runNMS. | String |
classValueField (Facultatif) | Nom du champ de valeur de classe dans le service d’entités. 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. | String |
maxOverlapRatio (Facultatif) | Ratio de superposition maximale de deux entités se chevauchant, défini comme le rapport entre la zone d’intersection et la zone d’union. La valeur par défaut est 0. | Double |
processingMode (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.
| String |
Sortie dérivée
Nom | Explication | Type de données |
outObjects | Le service d’entités en sortie. | Classe d’entités |
Exemple de code
Cet exemple crée une couche d’entités hébergée dans votre portail en fonction de la détection d'objets à l’aide de l’outil DetectObjectsUsingDeepLearning.
import arcpy
arcpy.DetectObjectsUsingDeepLearning_ra(
"https://myserver/rest/services/Farm/ImageServer",
"https://myportal/sharing/rest/content/items/itemId", "detectedTrees",
"score_threshold 0.6;padding 0", "NO_NMS")
Cet exemple crée une couche d’entités hébergée dans votre portail en fonction de la détection d'objets à l’aide de l’outil DetectObjectsUsingDeepLearning.
#---------------------------------------------------------------------------
# Name: DetectObjectsUsingDeepLearning_example02.py
# Requirements: ArcGIS Image Server
# Import system modules
import arcpy
# Set local variables
inImage = "https://myserver/rest/services/coconutFarmImage/ImageServer"
inModel = "https://myportal/sharing/rest/content/items/itemId"
outName = "detectedTrees"
modelArgs = "score_threshold 0.6;padding 0"
runNMS = "NMS"
confScoreField = "Confidence"
classVField = "Class"
maxOverlapRatio = 0.15
# Execute Detect Objects Using raster analysis tool
arcpy.DetectObjectsUsingDeepLearning_ra(inImage, inModel, outName, modelArgs,
runNMS, confScoreField, ClassVField, maxOverlapRatio)
Environnements
Informations de licence
- Basic: Requiert ArcGIS Image Server
- Standard: Requiert ArcGIS Image Server
- Advanced: Requiert ArcGIS Image Server
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?