Détecter des objets à l’aide d’un modèle de Deep Learning pré-entraîné
Configurer le projet et explorer les données
Pour commencer, vous allez télécharger un projet qui contient toutes les données de ce didacticiel et l’ouvrir dans ArcGIS Pro.
- Téléchargez le paquetage Palm_Tree_Detection.
Un fichier nommé Palm_Tree_Detection.ppkx est téléchargé sur votre ordinateur.
Remarque :
Un fichier .ppkx est un paquetage de projet ArcGIS Pro qui peut contenir des cartes, des données et d’autres fichiers pouvant être ouverts dans ArcGIS Pro. Pour en savoir plus sur la gestion des fichiers .ppkx, consultez l’article de blog A guide to ArcGIS Pro project packages (.ppkx files).
- Recherchez le fichier téléchargé sur votre ordinateur. Double-cliquez sur Palm_Tree_Detection.ppkx pour l’ouvrir dans ArcGIS Pro. À l’invite, connectez-vous avec votre compte ArcGIS.
Remarque :
Si vous n’avez pas accès à ArcGIS Pro ou ne disposez pas d’un compte d’organisation ArcGIS, consultez les options disponibles pour accéder aux logiciels.
Une carte apparaît, centrée sur le village de Kolovai, sur l’île Tongatapu des Tonga. Une couche d’images apparaît au-dessus du fond de carte topographique.
- Effectuez un zoom avant et déplacez-vous pour examiner l’imagerie.
Observez les nombreux palmiers dans le paysage.
L’imagerie a été capturée par un drone et orthorectifiée, ce qui a permis de supprimer les distorsions. Elle possède une haute résolution (chaque pixel représente environ un carré de 9 centimètres de côté au sol) et montre très clairement les palmiers ainsi que d’autres entités. Elle est au format TIFF avec trois bandes : rouge, vert et bleu, qui constituent ensemble une image de couleur naturelle.
L’identification manuelle de tous les palmiers de cette image prendrait beaucoup de temps. Au lieu de cela, vous allez faire appel au Deep Learning pour les détecter de manière automatique.
Détecter les palmiers à l’aide d’un modèle de Deep Learning pré-entraîné
Vous voulez utiliser le Deep Learning pour détecter les palmiers dans l’imagerie. Si vous ne disposez pas déjà d’un modèle de Deep Learning, cette opération exige d’abord d’entraîner un modèle à partir de zéro, en l’alimentant à l’aide d’un grand nombre d’exemples pour qu’il puisse reconnaître un palmier. Les modèles hautes performances peuvent nécessiter une exposition à des dizaines de milliers d’exemples. Vous pouvez également utiliser un modèle déjà entraîné. Vous allez extraire un tel modèle et l’appliquer à l’imagerie.
Remarque :
L’utilisation des outils de Deep Learning de ArcGIS Pro implique que vous ayez installé les bibliothèques de Deep Learning appropriées sur votre ordinateur. Si ces fichiers ne sont pas installés, enregistrez votre projet, fermez ArcGIS Pro et suivez les étapes décrites dans les instructions Se préparer au Deep Learning dans ArcGIS Pro. Dans ces instructions, vous allez également découvrir comment vérifier si votre matériel informatique et vos logiciels peuvent exécuter des processus de Deep Learning et apprendre d’autres conseils utiles. Une fois que vous avez terminé, vous pouvez rouvrir votre projet et poursuivre le didacticiel.
Vous allez commencer par ouvrir l’outil Détecter des objets à l’aide d’algorithmes de Deep Learning.
- Sur le ruban, dans l’onglet View (Vue), dans le groupe Windows (Fenêtres), cliquez sur Geoprocessing (Géotraitement).
- Dans la fenêtre Geoprocessing (Géotraitement), dans la zone de recherche, saisissez Détecter des objets à l’aide d’algorithmes de Deep Learning. Dans la liste des résultats, cliquez sur l’outil Détecter des objets à l’aide d’algorithmes de Deep Learning pour l’ouvrir.
- Définissez les valeurs suivantes pour le paramètre Detect Objects Using Deep Learning (Détecter des objets à l’aide du Deep Learning) :
- Pour Input Raster (Raster en entrée), sélectionnez Kolovai_imagery.tif.
- Dans Output Detected Objects (Objets détectés en sortie), saisissez Palmiers_Détectés.
- Pour Model Definition (Définition du modèle), cliquez sur le bouton Browse (Parcourir).
Vous allez maintenant récupérer le modèle pré-entraîné Palm Tree Extraction à partir de ArcGIS Living Atlas of the World.
Remarque :
ArcGIS Living Atlas of the World est une collection de données SIG officielle de Esri. Elle comprend une bibliothèque toujours plus riche de plus de 50 modèles de Deep Learning pré-entraînés qui permettent de détecter différents objets, des bâtiments aux bateaux, en passant par les limites de terrains agricoles.
- Dans la fenêtre Model Definition (Définition du modèle), sous Portal (Portail), cliquez sur Living Atlas (Living Atlas). Dans la zone de recherche, saisissez Palm Tree Detection. Sélectionnez Palm Tree Detection et cliquez sur OK.
Remarque :
Pour en savoir plus sur le modèle Palm Tree Detection, récupérez-le à partir du site ArcGIS Living Atlas. Vous apprendrez que le modèle est conçu pour détecter les palmiers dans une imagerie haute résolution (5 à 15 centimètres), par exemple, une imagerie capturée par un drone. L’imagerie doit comporter trois bandes : rouge, vert et bleu (RVB). Ce modèle convient à l’imagerie du cas présent.
Une fois que vous avez sélectionné le modèle de Deep Learning, ses arguments sont chargés automatiquement.
- Sous Arguments, conservez toutes les valeurs par défaut.
Deux arguments vous intéressent particulièrement :
- threshold : un seuil de 0,5 signifie qu’un objet détecté est ajouté au jeu de données en sortie si le modèle sait avec une certitude de 50 % que l’objet est effectivement un palmier. Vous trouverez la valeur optimale du seuil en procédant par tâtonnements.
- batch_size : la détection d’objets à l’aide d’algorithmes de Deep Learning ne peut pas être effectuée sur la totalité de l’image en une seule fois. L’outil doit découper l’image en petites parties, appelées fragments. Une taille de lot égale à 4 signifie que l’outil traite quatre fragments d’image à la fois. Lors de l’exécution de l’outil, vous risquez de rencontrer une erreur de mémoire insuffisante si votre ordinateur ne dispose pas de suffisamment de mémoire pour ce niveau de traitement. Dans ce cas, essayez de diminuer la valeur de batch_size de 4 à 2, voire 1. La réduction de cette valeur n’affectera pas la qualité du modèle, mais uniquement l’efficacité du traitement de détection du modèle.
Pour l’instant, vous allez conserver les valeurs par défaut de ces deux arguments.
Le modèle détecte parfois un objet plusieurs fois. Le traitement facultatif Non Maximum Suppression (NMS) (Suppression non maximale (NMS)) supprime certains objets détectés en cas de duplication. L’objet détecté avec le niveau de confiance le plus élevé est conservé, tandis que les autres objets sont supprimés. Dans l’exemple de l’image suivante, le palmier a été détecté deux fois. Avec la NMS, seul un objet détecté est conservé.
- Cochez la case en regard de Non Maximum Suppression (Suppression non maximale).
- Dans Max Overlap Ratio (Ratio de superposition maximale), saisissez 0.5.
- Le paramètre Max Overlap Ratio (Ratio de superposition maximale) détermine le degré de chevauchement nécessaire entre deux objets détectés pour qu’ils soient considérés comme des doublons et que la suppression non maximale soit applicable. Une valeur de 0,5 signifie que le chevauchement doit être supérieur ou égal à 50 %. Dans l’exemple de l’image suivante, le chevauchement entre les deux objets détectés est inférieur à 50 %, donc ils ne représentent pas le même objet et la suppression non maximale n’est pas appliquée.
- Le paramètre Max Overlap Ratio (Ratio de superposition maximale) détermine le degré de chevauchement nécessaire entre deux objets détectés pour qu’ils soient considérés comme des doublons et que la suppression non maximale soit applicable. Une valeur de 0,5 signifie que le chevauchement doit être supérieur ou égal à 50 %. Dans l’exemple de l’image suivante, le chevauchement entre les deux objets détectés est inférieur à 50 %, donc ils ne représentent pas le même objet et la suppression non maximale n’est pas appliquée.
- Cliquez sur l'onglet Environnements.
- Dans Processor Type (Type de processeur), sélectionnez GPU.
Remarque :
Ce didacticiel suppose que votre ordinateur dispose des fonctionnalités GPU recommandées. Si vous n’avez pas de GPU, vous pouvez encore exécuter le processus avec votre UC, mais le traitement des données prendra plus longtemps. Dans ce cas, sélectionnez l’option CPU (UC).
À ce stade, vous pouvez exécuter l’outil tel quel : il continuera à détecter les palmiers dans la totalité de l’image Kolovai_imagery.tif, ce qui peut prendre de 20 minutes à une heure, en fonction des spécifications de votre ordinateur. À des fins de concision dans ce didacticiel, vous allez uniquement détecter les palmiers dans un petit sous-ensemble de l’image en entrée.
- Sur le ruban, dans le groupe Navigate (Naviguer) de l’onglet Map (Carte), cliquez sur Bookmarks (Géosignets) et sélectionnez Detection area.
La carte effectue un zoom avant sur une zone plus réduite de Kolovai.
- Dans la fenêtre Geoprocessing (Géotraitement), sur l’onglet Environments (Environnements), sous Processing Extent (Étendue de traitement), cliquez sur le bouton Current Display Extent (Étendue d’affichage actuelle).
Les coordonnées Top (Haut), Left (Gauche), Right (Droite) et Bottom (Bas) sont mises à jour pour correspondre à l’étendue actuelle affichée sur la carte.
- Acceptez toutes les autres valeurs par défaut, puis cliquez sur Run (Exécuter).
Vous pouvez surveiller la progression du traitement sous le bouton Run (Exécuter) et cliquer sur View Details (Afficher les détails) pour afficher davantage d’informations.
Au bout de quelques minutes, la couche de résultat Palmiers_Détectés apparaît dans la fenêtre Contents (Contenu) et sur la carte. Il s’agit d’une couche d’entités dans laquelle chaque polygone représente un palmier.
Conseil :
Si vous rencontrez une erreur de mémoire insuffisante, essayez de diminuer la valeur de batch_size de 4 à 2, voire 1, et exécutez à nouveau le traitement.
Vous avez détecté des palmiers dans une zone de Kolovai en utilisant un modèle de Deep Learning pré-entraîné.
Remarque :
La couleur est attribuée aléatoirement et peut varier.
Styliser et examiner la couche de résultat
Vous allez modifier le style de la couche Palmiers_Détectés et allez la vérifier.
- Dans la fenêtre Contents (Contenu), cliquez sur le symbole Palmiers_Détectés pour afficher la fenêtre Symbology (Symbologie).
- Dans la fenêtre Symbology (Symbologie), si nécessaire, cliquez sur l’onglet Properties (Propriétés).
- Sous Appearance (Apparence), définissez les paramètres suivants :
- Dans Color (Couleur), sélectionnez No color (Aucune couleur).
- Pour Outline color (Couleur du contour), sélectionnez un jaune vif, comme Solar yellow (Jaune solaire).
- Pour Outline width (Largeur du contour), sélectionnez 2 pt (2 pts).
- Cliquez sur Apply (Appliquer).
La couche est mise à jour avec la nouvelle symbologie.
- Sur la carte, effectuez un zoom avant et inspectez la couche Palmiers_Détectés.
Vous pouvez constater que le modèle a réussi à détecter la plupart des palmiers et qu’il existe très peu de cas de faux positifs, c’est-à-dire de cas où le modèle a trouvé par erreur un palmier alors qu’il n’y en avait pas.
- Si vous le souhaitez, vous pouvez exécuter à nouveau l’outil Détecter des objets à l’aide d’algorithmes de Deep Learning sur une étendue différente de votre choix ou sur la totalité de l’image. Pour ce faire, effectuez un zoom et déplacez-vous vers la nouvelle étendue sur la carte, puis cliquez sur Current Display Extent (Étendue d’affichage actuelle) sur l’onglet Environments (Environnements). Cliquez ensuite sur Run (Exécuter).
Remarque :
L’exécution de l’outil sur l’image entière prendra au minimum 40 minutes, selon les spécifications de votre ordinateur.
Sinon, le projet comporte une carte qui affiche la couche de résultat de la totalité de l’étendue. Pour l’afficher, accédez à la fenêtre Catalog (Catalogue), développez Maps (Cartes), cliquez avec le bouton droit sur Map_results et sélecctionnez Open (Ouvrir).
Plus de 12 500 palmiers ont été détectés dans l’image entière.
- Si vous le souhaitez, vous pouvez essayer de modifier certains arguments et paramètres, tels que threshold et Max Overlap Ratio (Ratio de superposition maximale).
- Dans la barre d’outils Quick Access (Accès rapide), cliquez sur le bouton Save (Enregistrer) pour enregistrer votre projet.
Appliquer un modèle pré-entraîné à l’imagerie
Pour appliquer un modèle de Deep Learning pré-entraîné à vos propres données, essayez d’abord de suivre le processus appris dans ce didacticiel. Il s’agit de l’approche la plus simple et vous pouvez obtenir des résultats de qualité élevée immédiatement.
Toutefois, vous risquez de ne pas vous satisfaire des premiers résultats. Dans ce cas, il est possible d’appliquer plusieurs techniques par la suite. Mais surtout, vous pouvez effectuer les opérations suivantes :
- Modifiez les images pour qu’elles correspondent mieux aux attentes du modèle pré-entraîné (par exemple, si le modèle a été entraîné sur une imagerie rouge-vert-bleu, les images ne devraient comporter que les bandes rouge, verte et bleue, par opposition aux bandes infrarouges ou autres bandes spectrales).
- Entraînez davantage le modèle de Deep Learning en lui donnant des exemples de vos propres données.
Pour apprendre à vous servir de ces approches puissantes, suivez le didacticiel Améliorer un modèle de Deep Learning avec l’apprentissage par transfert.
Dans ce didacticiel, vous avez utilisé le Deep Learning avec un modèle pré-entraîné issu de ArcGIS Living Atlas pour détecter des palmiers dans une image. La couche d’entités obtenue peut être utilisée pour estimer le nombre de palmiers dans la région, contrôler les pratiques agricoles ou évaluer la production à venir.
Vous trouverez d’autres didacticiels dans la bibliothèque des didacticiels.