Version française ci-dessous.
Hi all,
I am a member of the Geoinformation for Humanitarian Aid team at HeiGIT, and I think it’s about time to share some of our experiences with Panoramax here. First of all, thanks a lot for the amazing work! As an applied research institution that provides its partners with open geoinformation and open software, we have been observing the development of Panoramax for quite some time with great interest.
Last year, we have set up a non-federated, restricted access instance of Panoramax for our AILAS project that aims at creating a weather-adaptive, AI-supported routing system for regions with unpaved roads by extracting relevant features from street-level imagery to assess the passability of roads under different meteorological conditions. In this context, it was wonderful to see how swiftly the Panoramax developers took up our partners’ (and others’) requirement for the possibility to restrict sequence/image visibility to logged-in users.
We also started to develop a proof of concept of a service that can run AI inference on entire regions of interests or entire sequences in Panoramax. The goal is to be able to automatically trigger detection, segmentation, or classification (e.g. of road surfaces, building materials, POI like pharmacies) with any Panoramax upload, in order to generate actionable data for (among others) disaster preparedness and anticipatory humanitarian action. Most importantly, the service would push the results of the inference back to Panoramax as annotations, in compliance with the annotations scheme.
For some first experimentation, we implemented the service so that it could run inference with different (configurable) detection, instance segmentation, and classification models from HuggingFace. The match between the generated labels with the appropriate Panoramax annotation is made through a YAML config file, so that e.g. the road surface classification output label “asphalt” is written to Panoramax as “osm|surface=asphalt” plus the metadata.
We continued to add other experimental features such as geolocalisation of instance segmentation via depth estimation, configurable inference with zero-shot models and grounded SAM, as well as vision-language model (VLM) based attribute extraction for road surfaces. Here’s an example of a street scene from Antananarivo after performing power pole and road segmentation, road surface classification, and VLM road smoothness estimation:
All of this is still very much at the early stage and still far from being a productive service. We would be very interested in hearing about current Panoramax developers’ and users’ thoughts on this, and how to potentially take it further.
Some of our ideas for next steps in the development:
- Flexible, configurable definition of pipelines of chained inference and processing steps, e.g.:
Zero-shot detection
↓
Instance segmentation
↓
├─→ Depth estimation → Geolocalisation → OSM element matching
└─→ Classification / VLM-based attribute extraction - Integration with Panoramax web GUI: Possibility to trigger inference pipelines on images/sequences/uploads on demand (by button click), if a Panoramax instance has a Hug-A-Panorama API defined.
Version française: Hug-A-Panorama : Vers un service d’inférence IA pour Panoramax
Salut,
Je fais partie de l’équipe Geoinformation for Humanitarian Aid chez HeiGIT, et je pense qu’il est temps de partager ici quelques-unes de nos expériences avec Panoramax. Tout d’abord, un grand merci pour l’excellent travail réalisé ! En tant qu’institut de recherche appliquée qui met à disposition de ses partenaires des géodonnées ouvertes et des logiciels libres, nous suivons avec beaucoup d’intérêt le développement de Panoramax depuis un certain temps.
L’année dernière, nous avons mis en place une instance Panoramax non fédérée, à accès restreint, dans le cadre de notre projet AILAS. Celui-ci vise à créer un système de calcul d’itinéraires adaptatif aux conditions météorologiques et assisté par l’IA pour des régions comportant des routes non revêtues, en extrayant des caractéristiques pertinentes à partir d’images au niveau de la rue afin d’évaluer la praticabilité des routes selon différentes conditions météorologiques. Dans ce contexte, nous avons été ravis de voir avec quelle rapidité les développeurs de Panoramax ont pris en compte la demande de nos partenaires (ainsi que d’autres utilisateurs) concernant la possibilité de limiter la visibilité des séquences et des images aux seuls utilisateurs connectés.
Nous avons également commencé à développer une preuve de concept d’un service capable d’exécuter des inférences IA sur des régions d’intérêt entières ou sur des séquences complètes dans Panoramax. L’objectif est de déclencher automatiquement des tâches de détection, de segmentation ou de classification (par exemple des revêtements routiers, des matériaux de construction ou de points d’intérêt tels que les pharmacies) pour chaque nouvel téléchargement dans Panoramax, afin de produire des données exploitables pour, entre autres, la préparation aux catastrophes et l’action humanitaire anticipative. Plus important encore, le service réinjecterait les résultats de l’inférence dans Panoramax sous forme d’annotations, conformément au schéma d’annotations.
Pour nos premières expérimentations, nous avons implémenté ce service de manière à pouvoir exécuter des inférences avec différents modèles (configurables) de détection, de segmentation d’instances et de classification issus de Hugging Face. La correspondance entre les étiquettes produites par les modèles et les annotations Panoramax appropriées est définie dans un fichier de configuration YAML. Ainsi, par exemple, le résultat de classification du revêtement routier “asphalt” est enregistré dans Panoramax sous la forme “osm|surface=asphalt”, accompagné des métadonnées correspondantes.
Nous avons ensuite ajouté d’autres fonctionnalités expérimentales, telles que la géolocalisation des segments d’instances à l’aide de l’estimation de profondeur, l’utilisation configurable de modèles zero-shot et de Grounded SAM, ainsi que l’extraction d’attributs des revêtements routiers à l’aide de modèles vision-langage (VLM).
La figure (
) montre un exemple de scène de rue à Antananarivo après segmentation des poteaux électriques et de la chaussée, classification du revêtement routier et estimation de la régularité de la chaussée par un VLM.
Tout cela en est encore à un stade très précoce et reste loin d’être un service prêt pour la production. Nous serions très intéressés de connaître l’avis des développeurs et des utilisateurs actuels de Panoramax sur cette approche, ainsi que les pistes permettant de la faire évoluer.
Voici quelques idées pour les prochaines étapes du développement :
- Définition flexible et configurable de pipelines composés de plusieurs étapes d’inférence et de traitement, par exemple :
Détection zero-shot
↓
Segmentation d’instances
↓
├─→ Estimation de profondeur → Géolocalisation → Appariement avec les éléments OSM
└─→ Classification / Extraction d’attributs basée sur un VLM - Intégration avec l’interface web de Panoramax : possibilité de lancer des pipelines d’inférence à la demande sur des images, des séquences ou des imports (par simple clic sur un bouton), lorsqu’une instance Panoramax dispose d’une API Hug-A-Panorama configurée.
