
Le logiciel de géolocalisation d'images de rue le plus sophistiqué au monde
Géolocalisation IA de pointe à partir d'une seule image.
L'idée • Comment ça marche • Pour commencer • Hub communautaire • Installation
Vous avez une photographie. Peut-être une capture d'écran d'une vidéo. Peut-être une photo floue et recadrée prise par téléphone, postée en ligne. Peut-être qu'elle montre juste une devanture de magasin, un tronçon de route ou le coin d'un bâtiment. Vous voulez savoir exactement où elle a été prise.
Netryx Astra V2 répond à cette question.
C'est un système de géolocalisation open-source qui prend une seule image et trouve les coordonnées GPS précises en la comparant à une base de données de panoramas Street View. Téléchargez votre photo, et en quelques minutes, il vous indique la rue, la ville, les coordonnées – à quelques mètres près.
Ce qui distingue V2 du Netryx original (et des autres outils disponibles), c'est le pipeline de correspondance. Nous avons tout reconstruit de zéro en utilisant deux modèles qui n'existaient pas lorsque nous avons commencé ce projet :
MegaLoc (CVPR 2025) – le modèle de récupération d'images le plus précis pour la reconnaissance de lieux, entraîné sur six ensembles de données couvrant les variations intérieures, extérieures, diurnes, nocturnes et saisonnières. Il trouve le bon quartier.
MASt3R (ECCV 2024) – un matcher dense sensible à la 3D qui comprend la géométrie des scènes, pas seulement les motifs de pixels. Il confirme l'emplacement exact, même à partir de photos partielles ou fortement recadrées qui briseraient les matchers traditionnels.
Le résultat est un pipeline en trois étapes à la fois plus simple et plus précis que le système en neuf étapes qu'il remplace.
L'original Netryx utilisait CosPlace pour la récupération et une pile de DISK + LightGlue + LoFTR + RANSAC + saut de descripteurs + expansion de voisinage pour la vérification. Cela fonctionnait, mais c'était fragile – beaucoup d'heuristiques superposées, chacune étant une solution de contournement pour une limitation de l'étape précédente.
V2 a jeté tout cela. Voici ce qui a remplacé quoi :
| V1 (Original) | V2 (Astra) | |
|---|---|---|
| Trouver des candidats | CosPlace (ResNet-50, 512-dim) | MegaLoc (DINOv2 ViT-B/14, 8448-dim → PCA 1024) |
| Confirmer les correspondances | DISK + LightGlue + RANSAC | Correspondance dense 3D MASt3R |
| Gérer les cas limites | Repli LoFTR, saut de descripteurs, expansion de voisinage, Ultra Mode | Consensus spatial – c'est tout |
| Nombre total d'étapes du pipeline | 9+ | 3 |
| Correspondance d'image partielle | Faible – les points clés épars échouent sur de petits chevauchements | Forte – MASt3R trouve des correspondances denses dans de minuscules régions |
| Partage des index | Impossible | Hub communautaire via Hugging Face + bundles .netryx hors ligne |
La simplification n'est pas seulement esthétique. Moins d'étapes signifie moins d'endroits où les choses peuvent mal tourner, des recherches plus rapides et un code réellement maintenable.
Le pipeline comporte trois étapes. Ce n'est pas une simplification excessive – c'est vraiment juste trois étapes.
Query Image
|
v
+-------------+
| MegaLoc | "Où dans la ville cela pourrait-il être ?"
| Retrieval |
+------+------+
| Top 500 candidats
v
+-------------+
| MASt3R | "Est-ce vraiment le même endroit ?"
| Matching |
+------+------+
| Candidats notés
v
+-------------+
| Spatial | "Quel groupe de correspondances est le plus fiable ?"
| Consensus |
+------+------+
|
v
Coordonnées GPS
Votre image de requête est convertie en un descripteur compact – un vecteur de 8448 dimensions qui capture l'essence visuelle de la scène. Il est réduit par PCA à 1024 dimensions, puis comparé à chaque emplacement indexé via une similarité par produit scalaire.
Nous extrayons également un descripteur pour un recadrage central légèrement zoomé et pour une version retournée horizontalement de la requête, puis fusionnons les résultats. Cela gère les cas où la requête est à un niveau de zoom différent ou orientée dans la direction opposée par rapport à la vue indexée.
Le résultat est la liste des 500 emplacements candidats les plus proches de l'index, classés par similarité visuelle.
MegaLoc provient du laboratoire de Gabriele Berton (le même groupe qui a créé CosPlace et EigenPlaces). C'est le plus récent de leurs travaux, entraîné simultanément sur SF-XL, GSV-Cities, MSLS et des données de repères. Aucun autre modèle de récupération ne le bat systématiquement sur tous les benchmarks – intérieur, extérieur, urbain, rural, jour, nuit.
Pour chacun de ces 500 candidats, nous téléchargeons le panorama Street View correspondant, le recadrons à l'angle de cap indexé, et exécutons MASt3R pour trouver des correspondances denses de pixels entre la requête et le recadrage.
C'est là que la magie opère pour les requêtes difficiles. Les matchers traditionnels comme SuperPoint + LightGlue extraient peut-être 500 à 2000 points clés épars et tentent de les faire correspondre. Si votre image de requête ne chevauche qu'à 20 % l'image de la base de données, il peut n'y avoir que 50 points clés co-visibles – pas assez pour une correspondance fiable.
MASt3R fonctionne complètement différemment. Il traite la correspondance comme un problème de reconstruction 3D, en prédisant des cartes de points denses et des descripteurs de caractéristiques locales pour chaque pixel. Même une petite région de chevauchement produit des centaines de correspondances fiables, car il comprend la structure 3D de la scène, et non seulement les motifs de pixels 2D.
Sur le benchmark Map-free localization (image de référence unique, changements de point de vue jusqu'à 180°), MASt3R bat les méthodes précédentes de 30 %. Ce n'est pas une amélioration incrémentale – c'est un bond générationnel.
Voici le problème si l'on se contente de choisir le candidat avec le score de correspondance le plus élevé : les faux positifs existent. Deux chaînes de restaurants identiques à 5 km de distance produiront toutes deux des scores MASt3R élevés. Une rangée d'immeubles soviétiques se ressemblent tous.
Le consensus spatial résout cela. Nous divisons la zone de recherche en cellules de grille d'environ 50 mètres et regroupons géographiquement toutes les bonnes correspondances. Chaque cellule reçoit un score basé sur les preuves combinées de toutes les correspondances dans cette cellule et ses voisines.