L'intelligence artificielle a fait de rapides progrès ces dernières années, égalant voire dépassant parfois la précision humaine dans des tâches telles que la vision par ordinateur (vision artificielle), le traitement du langage naturel et la traduction automatique. Le croisement de l'intelligence artificielle (IA) et des SIG crée de nombreuses opportunités qui n'étaient pas envisageables auparavant.
L’intelligence artificielle (IA), l’apprentissage machine (Machine Learning) et l’apprentissage en profondeur (Deep Learning) nous aident, par exemple, à optimiser le rendement des cultures grâce à une agriculture de précision, à prédire la localisation de pannes sur ses équipements, à compter en temps réel un flux de piétons ou le taux d'occupation de parkings, à lutter contre la criminalité en déployant des modèles prédictifs de délinquances, ou encore en prévoyant de manière plus fiable le lieu et la date de la prochaine grande tempête et mieux s'y préparer.
De manière générale, l'IA est la capacité des ordinateurs à effectuer une tâche qui nécessite généralement d'imiter certaines formes de l'intelligence humaine. L'apprentissage machine est un type de moteur qui rend cela possible. Il utilise des algorithmes basés sur les données pour apprendre des données et vous fournir les réponses dont vous avez besoin. L’apprentissage en profondeur est l’un des types d’apprentissage automatique apparus au cours des dernières années. Il s’agit de réseaux de neurones profonds, inspirés du cerveau humain et vaguement ressemblants.
Machine Learning dans ArcGIS
L'apprentissage machine est une composante essentielle de l'analyse spatiale dans les SIG (GéoIA), et ceci depuis de nombreuses années. Dans ArcGIS, ces outils et ces algorithmes ont été intégrés (pour certains depuis de nombreuses années) aux outils standards de géotraitement. Ils répondent à différentes typologies de problématiques: la classification, le clustering et la prédiction.
La Classification consiste à utiliser des algorithmes qui déterminent à quelle catégorie un objet doit être associé. Par exemple, la classification peut être utilisée pour obtenir une occupation des sols, déterminer des formes de toits ou encore reconnaître des piscines ou des panneaux solaires à partir d'une imagerie haute-résolution. Dans ArcGIS, il s'agit d'outils tels que: Maximum Likelihood Classification, Train Random Trees Classifier, Train Support Vector Machine Classifier.
Le Clustering répond à d'autres besoins. Il permet de regrouper les objets par proximité statistique (et par extension par proximité géographique également) à partir de grandes quantités de données en entrée. L'objectif est d'identifier les regroupements significatifs et de les séparer du bruit au sein du jeu de données. Dans ArcGIS, il s'agit d'outils tels que: Spatially Constrained Multivariate Clustering, Multivariate Clustering, Density-based Clustering, Image Segmentation, Hot Spot Analysis, Cluster and Outlier Analysis, Space Time Pattern Mining.
Les algorithmes de Prédiction tels que les régressions permettent peuvent être pondérés géographiquement pour utiliser la localisation des données dans les facteurs qui vous aideront à prédire. Ces méthodes fonctionnent bien dans de nombreux domaines et la qualité de leurs résultats est mesurable assez facilement. Cependant, on notera qu'elles ont besoin d’experts pour identifier les facteurs qui affectent le résultat que nous essayons de prédire. Dans ArcGIS, il s'agit d'outils tels que: Empirical Bayesian Kriging, Areal Interpolation, EBK Regression Prediction, Ordinary Least Squares Regression and Exploratory Regression, Geographically Weighted Regression.
La montée en puissance du Deep Learning
Déterminer un modèle et ses paramètres à partir de données et d'algorithmes de statistiques, c'est une part très importante de l'apprentissage machine pour la compréhension et la prédiction. Mais ne serait-il pas formidable que la machine détermine ces paramètres simplement en regardant les données ? C'est là qu'intervient le Deep Learning (l'apprentissage en profondeur). Il s'inspire du cerveau humain auquel il ressemble très vaguement par l'utilisation du concept de réseaux de neurones. Dans un réseau neuronal profond, des neurones répondent à un stimulus et ils sont connectés les uns aux autres à travers différentes couches. Ces réseaux de neurones existent depuis plusieurs décennies en informatique, mais leur entrainement était quasiment impossible.
Les principaux usages de l'apprentissage profond se trouvent dans les domaines de l'analyse de signaux visuels ou sonores (notamment la reconnaissance faciale, la reconnaissance vocale), mais également dans la vision par ordinateur (Computer Vision) et le traitement automatisé du langage naturel (analyse sémantique, traduction automatique,...).
Trois principales évolutions les rendent aujourd'hui utilisables: plus de données disponibles, des puissances de calcul décuplées et de meilleurs algorithmes.
Les données: Grâce à la numérisation de l'information, aux images/vidéos terrestres et satellitaires, et grâce à l'émergence de l'IoT, nous disposons d'une quantité de plus en plus grande de données. Elles constituent la base de tout processus d'apprentissage machine.
Capacité de calcul: Nous disposons de moyens de calcul puissants, grâce au cloud computing et aux GPU qui sont devenus plus puissants que jamais et dont le prix a baissé grâce à l'industrie du jeu vidéo.
Les algorithmiques: Dans les années 2010, les chercheurs ont réussi à résoudre certains des aspects les plus difficiles de la formation des réseaux de neurones profonds grâce à des améliorations algorithmiques (algorithmes d'analyse discriminante et apprenants) à la mise en place d'architectures de réseau.
Application du Deep Learning et de la vision par ordinateur dans le géospatial
L'un des domaines de l'IA où l'apprentissage en profondeur se montrer extrêmement efficace est la vision par ordinateur ou la capacité de l'ordinateur à "voir" dans des vidéos ou des images. Ceci est particulièrement utile avec les SIG qui par définition, exploitent nombre d'images satellitaires, aériennes ou issues de drones produites de plus en plus vite et en quantité croissance. A tel point q'il devient désormais difficile d’analyser les informations que cette imagerie contient et d’en tirer des informations par les moyens traditionnels.
La figure ci-dessous illustre certaines tâches et cas d'utilisation de la vision par ordinateur trouvant une application aux SIG:
- Classification d'images
- Détection d'objets
- Segmentation sémantique
- Segmentation d'instance
|
Principales tâches de vision par ordinateur applicables aux SIG |
La plus simple est la
classification d'images, dans laquelle l'ordinateur attribue une étiquette, telle que "chat" ou "chien" à une image. Cela peut être utilisé dans les SIG pour classer les photos géotaguées. Dans l'exemple ci-dessus, nous avons une image qui a été classée comme ayant une "foule dense". Etre capable de classer les images par densité de piétons peut être utilisée pour la planification de la circulation lors d'événements publics. Il s'git d'un exemple qui avait été
présenté l'an dernier lors de la session plénière de la Conférence Utilisateurs Esri par le comté de Cobb aux Etats-Unis.
|
Planification de la circulation et des déplacements des piétons par le comté de Cobb |
Cette capacité de classification automatique peut par exemple être appliqué à des photos prises de manière automatique sur des équipements afin de les typer ou pour identifier si ils sont endommagés ou pas. En imaginant que ces collections de photos soient géolocalisées, une cartographie peut alors être réalisée à partir de la typologie résultante.
La détection d'objets est une tâche de vision par ordinateur dans laquelle l'ordinateur doit trouver dans l'image des objets ainsi que leur emplacement. Il s’agit d’une capacité très intéressante pour les SIG. Par exemple, pour retrouver certains objets spécifiques dans les images satellitaires, aériennes ou de drones, et les tracer sur une carte. Cela peut être utilisé pour la cartographie des infrastructures, la détection d'anomalies ou de changement ou encore pour l’extraction automatisée d'entités.
Lors de la conférence SIG2018,
nous avions démontré cela avec un exemple d'extraction automatique de piscines.
|
Détection de piscines dans des parcelles à partir d'une orthophoto |
Pour en savoir plus sur un exemple d'utilisation de l'apprentissage en profondeur pour la détection et la classification des piscines, vous pouvez consulter
cet article du blog ArcGIS.
Une autre tâche importante de la vision par ordinateur est ce que l'on appelle la segmentation sémantique. Elle permet de classer chaque pixel d’une image comme appartenant à une classe particulière. Par exemple, dans l'image de la figure ci-dessus, les pixels du chat sont classés en jaune, la terre est classée en vert et le ciel est en bleu. Dans les SIG, la segmentation sémantique peut être utilisée pour la classification de l'occupation des sols haute-résolution à partir d'orthophotos ou pour extraire certains objets spécifiques comme les réseaux routiers à partir d'images satellitaires.
|
Classification de la couverture terrestre en utilisant un modèle de Deep Learning |
Le cas d'usage du conservatoire naturel de Chesapeake (Etats-Unis) qui a combiné les technologies SIG d’Esri avec la boîte à outils
CNTK de Microsoft et des solutions Cloud pour produire la première carte haute définition de la couverture terrestre du bassin versant de Chesapeake est un excellent exemple de ce que peut apporter l'approche par segmentation sémantique. Ce travail est d'ailleurs disponible sous forme
de didacticiel pouvant par exemple être déployé sur une machine virtuelle
Azure Geo AI Data Science préparée par Esri et Microsoft.
Un autre type de segmentation est la segmentation d'instance, que l'on peut considérer comme une méthode de détection d'objet plus précise dans laquelle sont calculées les limites précises de chaque instance d'objet. Cette tâche de Deep Learning peut être utilisée pour des tâches telles que l'extraction automatique d'emprises de bâtiment ou la détermination de type de toits pour la reconstruction de bâtiments 3D à partir de données LiDAR.
|
Exemple d'un bâtiment reconstruit en 3D à partir de données LiDAR. Le même bâtiment reconstruit en 3D à partir des masques numérisés par un humain (à gauche) et des masques R-CNN de segmentation sémantique (à droite) |
Esri a récemment collaboré avec NVIDIA pour pouvoir utiliser les algorithmes de Deep Learning et automatiser le processus manuel intensif de création de modèles de construction 3D complexes à partir de données LiDAR aériennes pour le comté de Miami-Dade. Ces données LiDAR ont été utilisées pour créer des masques de segmentation pour typer les toits qui ont ensuite servis pour la reconstruction 3D des bâtiments (à l'aide de règle de construction 3D CityEngine). Vous pourrez consulter
cet article de blog sur Medium pour savoir comment cela a été réalisé (ou éventuellement
cet article sur le blog ArcGIS).
Deep Learning appliqué à la cartographie
Une application importante de l’apprentissage profond concerne l’imagerie. Qu'elle soit aérienne ou satellite, l'usage du Deep Learning permet de créer des cartes numériques en extrayant automatiquement les réseaux routiers et en identifiant les emprises d'un certain nombre d'objets topographiques (bâtiments, végétation, surfaces hydrologiques, mobilier urbain, ...).
Il est aujourd'hui tout à fait envisageable d'appliquer sur une grande zone géographique un modèle d'apprentissage profond préalablement entraîné pour obtenir une cartographie contenant toutes les routes de la région.
|
Routes détectées par apprentissage en profondeur et converties en entités géographiques |
Les outils SIG seront particulièrement efficace en amont du traitement de Deep Learning pour la phase de préparation et de qualification des données d'apprentissage du modèle mais aussi en aval du traitement pour le nettoyage, la vérification topologique et l'exploitation du réseau routier.
Comme évoqué précédemment, des modèles de segmentation d'instances tels que Mask-RCNN sont particulièrement efficaces pour la segmentation d'emprises de bâtiments et peuvent aider à créer des emprises de bâtiments sans avoir besoin de numérisation manuelle. Cependant, les formes des masques ressemblent souvent davantage à des chefs-d’œuvre d’
Antonio Gaudi qu'à des bâtiments aux bords droits et aux angles droits. Pour cela, ArcGIS propose des outils tels que "
Régulariser l'emprise de bâtiment".
|
Emprises de bâtiments extraites d'images satellites à partir de traitement de Deep Learning puis régularisées à l'aide de l'outil Régulariser l'emprise de bâtiment dans ArcGIS Pro. |
Intégration d'ArcGIS avec les outils de Deep Learning
ArcGIS propose des outils pour chaque étape des workflows de Deep Learning: de la collecte/préparation des données à l'analyse exploratoire des données, en passant par l'entraînement du modèle de ML, l'analyse spatiale et enfin la diffusion des résultats à l'aide de couches, de cartes et d'apps web.
|
Export de jeux de données (imagettes labélisées) pour l'entraînement d'un modèle de Deep Learning dans ArcGIS Pro |
ArcGIS Pro inclut des outils d'aide à la préparation des données pour les workflow d'entraînement de modèle de Depp Learning. ArcGIS Pro (depuis la version 2.3) a également été amélioré pour permettre le déploiement de modèles de Deep Learning pour l'extraction ou la classification d'entités. ArcGIS Image Server de la version ArcGIS Enterprise 10.7 possède des capacités similaires et permet de déployer des modèles d'apprentissage profond à grande échelle en tirant parti d'architectures informatiques distribuées. ArcGIS inclut
des fonctions raster Python intégrées pour les workflows de détection et de classification d'objets basés sur les frameworks CNTK, Keras, PyTorch, fast.ai et TensorFlow. De plus, vous pouvez écrire votre propre fonction raster python qui utilise la bibliothèque de Deep Learning de votre choix. Voir
ce guide pratique pour commencer dans cette voie.
L’apprentissage profond est un domaine en pleine évolution et l’utilisation d’une approche basée sur le code permet aux scientifiques spécialistes du traitement de données de bénéficier de frameworks de pointe tout en tirant parti d’un SIG de pointe. Python étant devenu la lingua franca du monde de l'IA et particulièrement en Deep Learning, avec des bibliothèques très populaires telles que Tensorflow, PyTorch et CNTK, qui l'ont choisi comme langage de programmation principal. Les API Python ArcGIS et ArcPy conviennent donc parfaitement à une intégration étroite entre votre SIG et ces bibliothèques d'apprentissage profond.
Et ce n'est qu'un début...
Bien que les quelques exemples cités ci-dessus se concentrent sur l'imagerie et la vision par ordinateur, comme les approches plus classiques de Machine Learning (évoqués au début de cet article), le Deep Learning peut également être utilisé pour traiter de gros volumes de données structurées. telles que des observations provenant de capteurs ou des attributs provenant d'une couche d'entités. L'application de telles techniques à des données structurées incluent par exemple la prédiction statistique d'accidents, la prévision de ventes, l'optimisation de trafic en temps-réel ou encore le calcul d'itinéraires ou le géocodage en langage naturel.
Le domaine du Machine Learning et en particulier du Deep Learning est pour le moins fascinant, par les usages potentiels qu'il reste encore à expérimenter mais aussi par l'évolution rapide de l'écosystème d'outils et d'algorithmes qui apparaissent chaque mois voir chaque semaine.
Comme je l'ai évoqué précédemment, ArcGIS offre déjà une large palette d'outils intégrés en standard pour adresser les différents cas d'usage nécessitant une approche par Machine Learning (voir le résumé ci-dessous). La stratégie d'Esri consiste à poursuive ses travaux de R&D pour appliquer les approches et les techniques d'Intelligence Artificielle à l'Intelligence Géospatiale.
Plus concrètement, ces efforts se focalisent sur différents axes:
- Poursuivre le développement d'outils de Machine Learning géographiques intégrés à ArcGIS pour la classification, le clustering et la prédiction de données et ceci à partir de données raster et vecteur. Ces nouvelles capacités concerneront aussi bien ArcGIS Pro pour un déploiement bureautique mais également ArcGIS Enterprise (ArcPy, GeoAnalytic Server et Image Server) pour des déploiements dans des environnements serveur scalables.
- Faciliter l'intégration des packages externes de Machine Learning (et en particulier de Deep Learning) au coeur des workflows SIG pour pouvoir travailler étroitement depuis ArcGIS avec les librairies fournies par IBM Watson, Microsoft CNTK, TensorFlow, Keras, scikit-learn, Theano, ou autres. Cette intégration passe notamment par l'ajout de nouveaux outils ArcGIS (ArcPy), par l'API Python ArcGIS et par l'IDE de Data Engineering et Data Science d'ArcGIS (ArcGIS Notebook).
- Développer des partenariats comme avec des fournisseurs d'infrastructures techniques comme avec NVIDIA ou des fournisseurs de solutions plus complètes comme avec Microsoft. C'est avec ce dernier qu'Esri a récemment mis au point la Geo AI Data Science Virtual Machine (DSVM) qui ajoute les capacités d'analyses spatiales d'ArcGIS Pro dans les outils d'IA, de Machine Learning et de Data Science disponibles dans la DSVM sur Microsoft Azure.
Enfin, on notera qu'Esri investit massivement dans ces technologies émergentes et a récemment ouvert un nouveau centre de recherche et développement à New Delhi, spécialisé dans l'Intelligence Artificielle, la Data Science et le Deep Learning spécialisé dans l'exploitation de données géolocalisées.
Pour en savoir plus, vous pouvez consulter le site
https://newdelhi.esri.com et en apprendre un peu plus sur le travail d'Esri dans ce domaine. Les plus spécialistes pourront même y découvrir les postes à pourvoir pour des scientifiques, des développeurs et des ingénieurs de la donnée et postuler en ligne.