Rechercher dans le blog

Utiliser le module d'IA de l'API Python d'ArcGIS pour analyser des photos

Comme vous vous en doutez, j'ai eu quelques contretemps dans la publication des tutoriels sur l'API Python... La bonne nouvelle, c'est qu'entre temps la version 2.4.3 est sortie, et avec elle les capacités très cools du module arcgis.ai.
Dans ce tutoriel, nous allons voir comment utiliser la classe d'analyse d'image pour analyser les pièces jointes d'une couche d'entités. Ce workflow peut par exemple vous être utile dans le cas d'une couche d'entité issue d'une enquête de terrain Survey123, où l'opérateur de terrain peut prendre des photos, puis votre script se déclencherait tous les soirs pour remplir un champ de description de l'image, qui accélèrerait le travail de terrain.
Pour utiliser cette capacité, vous devez utiliser la version 2.4.3 de l'API. Si vous utilisez ArcGIS Notebooks, elle est incluse à partir de la v3.7 d'ArcGIS Pro, et dans la mise à jour de juin 2026 dans ArcGIS Online. Si vos versions des logiciels ne sont pas à jour (ou pas encore disponible), vous pouvez suivre le premier tutoriel de cette série pour installer un environnement Python avec l'API, ce qui vous permettra d'installer celle-ci (ou de la mettre à jour) dans la dernière version. Notez que vous devez également posséder une organisation où les assistants IA sont activés.
Cet article vous présente les étapes pas à pas avec les captures d'écran, et vous pouvez également récupérer le Notebook complet sur mon Github

Imports et connexion au portail

Je commence comme d'habitude par importer les différents modules qui me seront utiles. Vous pouvez également vérifier que votre version de l'API est correcte (si ça n'est pas le cas, l'import d'arcgis.ai échouera de toute façon). 
Vous pouvez ensuite vous connecter au portail. Ici, vu que je ne travaille pas dans ArcGIS Notebooks, je passe mes identifiants de la manière suivante :  

Appel et préparation de la couche d'entités

J'ai repéré dans mon org une couche d'entités parfaite pour les besoins de ma démonstration : elle comporte des pièces jointes  hébergées sur un domaine arcgis.com (obligatoire pour que l'analyse fonctionne) ; c'est le cas par défaut pour les couches d'entités issues d'enquêtes Survey123. Mon but va être de rajouter un champ de description de la photo, et d'utiliser l'IA pour le compléter. Dans votre script, remplacez l'id de la couche par celui d'une couche hébergée sur votre portail.
Vous pouvez travailler directement sur la couche d'entités d'origine, mais vu qu'elle appartient à l'un de mes collègues et que je n'ai pas envie de bousiller son travail, je l'ai d'abord clonée, puis j'accède au layer que je veux cibler (ici il n'y en a qu'un seul, il est donc à l'index 0) :
Je viens maintenant ajouter un champ description_photo dans ma couche clonée : 
Enfin, je requête toutes les entités de la couche :

Analyse de la photo par l'IA

Voici à quoi ressemblent les données de ma couche à l'heure actuelle si je vais l'observer sur mon portail :
Le champ de description est vide, et je vais demander au service d'IA d'analyser la photo et de la décrire. Ici, nous nous contenterons d'une description globale, mais vous pouvez vous servir de la même classe pour faire de la détection d'objets, de l'extraction de texte ou de la segmentation, en fonction de ce que vous indiquez dans votre prompt. 
Je vais parcourir chacune des entités, et accéder à leur pièce jointe (le script ignore les entités ne possédant pas de pj). J'appelle ensuite la fonction d'analyse d'image, et lui passe en argument la pièce jointe de l'entité. J'indique dans le prompt ce que j'attends pour l'analyse de cette image, ici une simple description. Notez que vous pouvez passer plusieurs prompts dans la même fonction via une liste, ce qui vous permet de demander plusieurs choses différentes.
Il ne me reste plus qu'à appliquer les mises à jour à la couche. 
En rafraîchissant votre couche, vous verrez que le champ description_photo de la table attributaire de votre couche a été complété : 

C'est fini pour cet épisode ! Notez qu'en plus de pouvoir analyser les images, le module arcgis.ai possède des capacités d'analyse de texte et de traduction que vous pouvez également inclure à vos workflows d'automatisation.

Aucun commentaire:

Enregistrer un commentaire