Panoramax

2023-10-14

Cartographe OpenStreetMap[1] depuis quelques années et désormais équipé, je contribue maintenant et dans la mesure du possible au projet Panoramax[2] sur les trajets que j'effectue. Porté par l'antenne française du projet, Panoramax est un outil ouvert d'hébergement de photos (à la manière de StreetView ou Mapillary) disponible depuis juin 2023 (Et déjà plus de 10 millions d'images recueillies en l'espace de quelques mois).

Informations photographiques

Comme sûrement d'autres, j'ai (malgré pas mal de temps) rarement l'envie de me déplacer sur le terrain, et préfère travailler sur les données depuis mon logement. Cela a un désavantage majeur, être déconnecté du terrain, et n'avoir comme information que ce qui m'est accessible.

Au cours de la phase de lancement, il a été estimé qu'un tel outil permettrait d'économiser jusqu'à 25000 déplacements sur une année pour Orléans Métropole.

L'imagerie aérienne m'est quasiment indispensable pour ce qui est de l'emprise et la position des éléments. Pour du reste, des détails sur la géométrie, une vue directe de l'élément est souvent nécessaire — Impossible pour moi d'estimer les dimensions d'un élément à partir d'une image sans échelle. Cependant, si l'image comporte assez d'éléments alors il devient plus facile d'estimer les dimensions en relations avec les autres, voire de trianguler des positions.

Services

L'idée n'est pas de constituer ma propre base d'images en local. Ça prendrait beaucoup de place sur mon disque pour une utilité plus que limitée. Chaque personne possède ses propres éléments d'intérêt. Ces informations ont besoin d'être partagées et nécessitent une plateforme d'hébergement facilement accessible.

Outre StreetView (dont les droits sont détenus par Google), la solution principale jusqu'en 2020 était Mapillary. Alors rachetée par Facebook, devenue Meta. Les trois années qui suivirent fûrent particulièrement délicates puisque devant choisir entre utiliser une plateforme aux libertés instables, et le manque d'informations. C'est aujourd'hui chose corrigée puisque l'antenne française d'OpenStreetMap a porté et développe le service Panoramax avec le soutien de l'IGN !

Panoramax est un projet commun. Non limité à une partie logicielle permettant d'héberger et consulter des photos, Panoramax définit une plateforme commune pour l'échange de données au sein de la communauté, le tout sous licence ouverte. Et, bien qu'encore non déployé, il est prévu d'en faire un outil fédéré pour connecter les instances aujourd'hui auto-hébergées[3][4]. Le projet tourne autour de plusieurs briques :





Tout comme OpenStreetMap, le projet se veut indépendant à la réutilisation. Les possibilités sont infinies, de la localisation des panneaux (algorithme en développement), sentiers, caissons de rue, fossés, végétation, tourisme…

Matériel physique

Pour contribuer pas besoin de beaucoup de matériel, il suffit d'avoir des photos géolocalisées d'une manière ou d'une autre. Faute de matériel vidéo type action-cam, un simple téléphone et ses applications suffisent. Si nécessaire, l'association OpenStreetMap-France propose des kits GoProMax à la location[5].

L'usage est rudimentaire au possible, et j'ai testé différentes méthodes « sans matériel » :



Les images ont transité par Panoramax pour tester le téléversement, mais je les ai rapidement supprimées pour ne pas encombrer les serveurs.

Je me suis dans un premier temps résolu à acheter un support dédié. Celui-ci se présentait sous la forme d'une pince où insérer l'appareil, sur un point de pivot, le tout attaché sur une sorte de brassard. Je l'utilisais avec mes sacs contenant mes affaires au quotidien[6]. Le pivot étant à friction via une vis, je laissais délibérément celle-ci suffisamment desserrée pour que le poids du téléphone suffise à le garder relativement à l'horizontale (relativement, la position du pivot implique un léger décalage). Attention à faire des tests avant l'utilisation réelle, et éviter de se retrouver avec plus d'un millier de photos inutilisables parce que montrant exclusivement le caniveau… C'est notamment le cas sur un vélo route en position vers l'avant, l'angle de pivot peut ne plus suffire. Je positionnais l'appareil au niveau de l'épaule en roulant, et à l'aisselle en marchant.

Pris au jeu, j'ai fait l'acquisition d'une actioncam courant 2024. L'idée étant de fournir un travail que je ferais de toute manière, j'ai pour idée d'être ouvert à compensations libres. Une fois le coût d'achat du matériel couvert, alors je léguerai celui-ci à l'association OSM-France ou OSM-Bourgogne-Franche-Comté pour contribuer à l'alimentation du réseau (Et peut-être refaire un investissement de mon côté).

Matériel numérique

Les deux logiciels que j'utilisais sur portable sont OpenCamera et OsmAnd.

Pour rappel, l'objectif — est au dos du téléphone — est d'obtenir des photos géolocalisées, ce que propose nativement OpenCamera… plus ou moins bien. Un problème rapporté en 2019[7] et encore présent aujourd'hui, semble tronquer (ou arrondir, qui sait ?) les coordonnées enregistrées de telle manière qu'une série d'images se retrouve distribuée selon une sorte de grille avec un pas d'une dizaine de mètres. Reste que l'application permet sans soucis de prendre des photos en rafale avec une fréquence maximale de 2 photos par seconde. Là encore tout n'est pas rose, cette fois parce que Google empêche depuis Android 8 l'activité des appareils l'écran éteint, ce qui a été rapporté dans les tickets de l'application[8]. Durant l'activité, mon téléphone, écran allumé, prend une photo — horodatée, c'est important pour la suite — toutes les 2 secondes.

OsmAnd est l'application de carte que j'utilise par défaut en déplacement. Faute de séquences photos géolocalisées, elle me sert ici à produire une trace GPX sur laquelle positionner les images à l'aide de l'horodatage. Rien de spécial ici, j'utilise une fréquence d'un enregistrement toutes les 3 secondes, compromis entre précision et batterie.

Traitement

Une fois l'acquisition faite, tout est transféré sur PC où j'effectue le traitement avant téléversement. Pour un lot limité d'images (moins de 1 Go) le plus pratique que j'ai trouvé est d'utiliser la fonction FTP de Material Files[9] plutôt que de brancher via un câble, ou de manipuler la carte SD. Attention, le protocole FTP repose sur du TCP. Il est peu adapté au transfert d'un nombre important de fichiers ; Pour accélérer le processus je compresse les images dans une archive unique avant transfert. Pour des quantités plus importantes alors l'utilisation d'un câble reste encore le plus rapide et efficace.

La première étape de traitement consiste pour moi à trier manuellement les images de sorte à supprimer celles floues ou sans intérêt (L'arrière d'un véhicule au feu rouge c'est pas des plus passionnant) — Et celles trop proches de chez moi à mon goût, vie privée oblige. Pas besoin de beaucoup plus de détails ici, j'utilise ma visionneuse d'images usuelles qu'est `imv`, où j'ai défini un raccourci pour déplacer l'image dans la corbeille (pas de `rm`, je me connais avec mes deux mains gauches). J'ai par la suite monté un script bash basé sur `libvips` pour automatiquement isoler les images en deça d'un certain seuil de netteté[10]. Non exempt d'erreurs, cela permet néanmoins de gagner beaucoup de temps sur le traitement.

Avec la méthode par appariement, la seconde étape est de simplement tout lancer sur JOSM et laisser la magie opérer. Tout est automatisé à l'aide de l'extension Photo Geotagging qui propose d'apparier des photos sur une trace GPX via horodatage, avec si nécessaire un décalage temporel, et également d'ajouter une donnée EXIF sur l'orientation des photos au cas où l'appareil n'aurait pas cette fonction. Une fois l'appariement réalisé, ne pas oublier d'écrire ces données sur les fichiers (via le menu contextuel de la couche). Peut-être anecdotique, j'ai complètement désactivé la géolocalisation via OpenCamera qui semblait générer des difficultés d'appariemment. J'en profitais également à cette étape pour utiliser l'extension EditGPX et tronquer la trace GPX en cas de publication pour ne pas divulguer trop d'informations[11].

Ne reste plus qu'à téléverser l'ensemble (Le GPX peut être envoyé sur OpenStreetMap, quitte à exister autant partager). Panoramax propose une interface navigateur pour cela, mais je préfère ne pas avoir à me rendre sur le site, et directement le faire via l'outil en ligne de commande[12] — En Python, beurk. C'est aussi simple que de taper `geovisio upload --api-url https://panoramax.openstreetmap.fr/ NomDeDossier`. À noter que le nom de dossier sera le nom donné à la série d'images, pour s'y retrouver ne pas se limiter à « Panoramax » comme j'ai pu le faire, mais utiliser un nom plus explicite comme la date, et un peu de contexte comme les points de départ et arrivée.

Références

[1] OpenStreetMap, LeJun 2023

[2] Panoramax, Salou 2023

[3] Du besoin d'auto hébergement, LeJun 2022

[4] Panoramax, Panoramax 2023

[5] Doter OSM-FR d’appareils de prise de vues de photo au niveau des rues, pour les prêter, Frodrigo 2022

[6] EveryDayCarry, LeJun 2023

[7] #641 GPS tag precision, mark-h 2019

[8] Record With Screen Off, mark-h 2019

[9] Android : Liste d'applications, LeJun 2023

[10] Détection de flou, LeJun 2023

[11] Pseudonymat, LeJun 2024

[12] Geovisio Command-line client, Geovisio 2022


Source