Bonjour à toutes et à tous !
Voici une petite mise à jour sur les avancées de l’implémentation du score de qualité des photos, qui peut encore évoluer (c’est une base de travail pour faire avancer ce vaste chantier). Il reprend des éléments qui sont discuté sur le ticket Gitlab ici.
- Pour l’API, le code est disponible ici : resolution & GPS accuracy for pictures & sequences, cleanup proprietary EXIF fields (!340) · Merge requests · Panoramax / Server / API · GitLab
- Pour le visualiseur web, le code est ici : https://gitlab.com/panoramax/clients/web-viewer/-/compare/develop...feature%2Fphotoscore
Comme initialement proposé, seules les données qui peuvent être calculées à partir des balises EXIF disponibles sont utilisées (pas d’analyse des pixels des photos, car cela serait trop coûteux pour relire tout le stock actuel).
Traitements côté API
L’API va calculer des valeurs brutes en utilisant les métadonnées des photos (largeur, infos GPS) et les transmettre via des réponses JSON et des tuiles vectorielles. Les valeurs brutes incluent la précision GPS en mètres et la densité de pixels horizontale (nombre de pixels par degré de champ de vision).
Cela permet à tout utilisateur/développeur de créer des filtres et des statistiques selon ses besoins. C’est aussi vrai pour le visualiseur web Panoramax, qui calculera la note finale de qualité.
Pour que cela fonctionne, les photos doivent inclure les balises EXIF/XMP suivantes :
- Dilution de la précision GPS : Exif.GPSInfo.GPSDOP ou Xmp.exif.GPSDOP
- Mode différentiel GPS : Exif.GPSInfo.GPSDifferential ou Xmp.exif.GPSDifferential
- Erreur de positionnement horizontale GPS : Exif.GPSInfo.GPSHPositioningError ou Xmp.exif.GPSHPositioningError
- Champ de vision de la caméra ou longueur focale + marque + modèle
Si tout est bien configuré, les valeurs seront précises. Si aucune balise n’est présente, les valeurs resteront inconnues. Plusieurs solutions de repli existent en fonction de la marque et du modèle (voir ici pour le GPS ou via la table des caméras pour la largeur du capteur).
Visualiseur Web
Le visualiseur web recevra les données de l’API via des tuiles vectorielles. Il utilisera les deux indicateurs pour calculer un Score de Qualité, qui apparaîtra dans la fenêtre de métadonnées des photos et pourra être utilisé pour le style ou le filtrage des cartes.
Calcul du score
Le visualiseur web utilise actuellement ces valeurs pour établir son score de qualité.
Précision GPS
Précision GPS | Note |
---|---|
<= 1m | A |
<= 2m | B |
<= 5m | C |
<= 10m | D |
> 10m ou inconnu | E |
Densité de pixels horizontale
C’est l’indicateur du nombre de pixels sur l’horizon de la photo par degrés d’angle de vue. La notation est différente selon que les photos soient en 360° ou non, afin d’encourager la prise de photos 360°, qui sont plus appréciées par les utilisateurs finaux. Encore une fois, cette échelle de notation est adaptée pour les besoins du visualiseur web, mais chacun peut adapter selon ses besoins
Note | Densité pour 360° | Densité pour non-360° |
---|---|---|
A | >= 38 px/deg | Impossible |
B | >= 20 px/deg | >= 60 px/deg |
C | >= 15px/deg | >= 38px/deg |
D | < 15px/deg | >= 15 px/deg |
E | valeur inconnue | < 15 px/deg ou valeur inconnue |
Score de qualité
Le score final de qualité est calculé en fonction des notes pour le GPS (1/5 de la note finale) et pour la densité de pixels horizontale (4/5 de la note finale). À ce jour, environ 60 % des photos ont un score de qualité calculé à partir de valeurs précises ou de bonnes estimations. Le reste des photos n’a pas suffisamment de métadonnées pour obtenir une valeur précise et reçoit donc une note de E.
Et après ?
La discussion est ouverte ! Vous pouvez proposer des modifications dans le classement, la méthode d’évaluation (tant que ça reste basé uniquement sur les balises EXIF), que ce soit ici ou sur le ticket gitlab.
Je dois encore créer une documentation expliquant cette méthodologie dans le visualiseur web, ainsi qu’une autre pour expliquer les balises EXIF nécessaires, afin d’encourager les contributeurs à bien les renseigner.
À moyen terme, nous proposerons un outil d’édition en ligne pour améliorer les métadonnées des photos (ajouter la valeur du champ de vision, améliorer la position GPS, etc.), afin que chacun puisse contribuer à améliorer la qualité du stock de photos.