
Moteur de géolocalisation local en priorité qui identifie les coordonnées GPS précises de photos au niveau de la rue en utilisant les modèles de vision par ordinateur CosPlace, ALIKED et LightGlue. Précision inférieure à 50 mètres, aucun point de repère nécessaire.
Moteur de géolocalisation open-source au niveau de la rue
Téléchargez n'importe quelle photo de rue. Obtenez des coordonnées GPS précises.
Précision inférieure à 50 m. Aucun point de repère nécessaire. Fonctionne entièrement sur votre matériel.
Démonstrations · Fonctionnement · Pour commencer · Utilisation · FAQ
Netryx est un outil de géolocalisation local-first qui identifie les coordonnées GPS exactes de toute photographie au niveau de la rue. Contrairement à la recherche d'image inversée (qui compare avec des images web téléchargées), Netryx compare avec des panoramas de rue systématiquement crawlés — ce qui signifie qu'il fonctionne sur n'importe quel coin de rue aléatoire sans aucune présence sur Internet.
Le pipeline central combine trois modèles de vision par ordinateur de pointe :
Google Lens cherche sur Internet. Netryx cherche dans le monde physique.
Netryx utilise un pipeline en trois étapes qui réduit progressivement des millions de candidats à une seule correspondance précise. Netryx est simplement un outil, il est indépendant de la source et peut traiter des images provenant de n'importe quel fournisseur comme Mapillary ou KartaView ou tout autre fournisseur.
Chaque panorama de rue dans l'index a été prétraité en une « empreinte digitale » à 512 dimensions à l'aide de CosPlace, un modèle de reconnaissance de lieu visuel entraîné sur des millions d'images géolocalisées.
Lorsque vous téléchargez une photo de requête :
Cette étape s'exécute en moins d'une seconde quelle que soit la taille de l'index — c'est une simple multiplication matricielle.
CosPlace trouve des endroits qui se ressemblent. L'étape 2 prouve qu'ils sont le même endroit en utilisant la vérification géométrique.
Pour chaque candidat :
Cette étape traite 300 à 500 candidats en 2 à 5 minutes selon votre matériel.
La correspondance initiale est bonne mais pas toujours optimale. Le raffinement l'améliore :
Pour les images difficiles (nuit, flou, faible texture), le mode Ultra ajoute :
Image de requête
│
├── Extraction du descripteur CosPlace (empreinte 512 dimensions)
├── Extraction du descripteur retourné
│
▼
Recherche dans l'index (similarité cosinus, filtrée par rayon)
│
├── Top 500 candidats classés par similarité visuelle
│
▼
Télécharger les panoramas → Recadrer à 3 FOV → Extraire les points clés ALIKED/DISK
│
├── Appariement LightGlue avec les points clés de la requête
├── Vérification géométrique RANSAC
│
▼
Raffinement de l'angle de direction (±45°, 3 FOV, top 15 candidats)
│
├── Regroupement par consensus spatial
├── Score de confiance
│
▼
📍 Coordonnées GPS + Score de confiance
Support GPU :
# Cloner le dépôt
git clone https://github.com/sparkyniner/Netryx-OpenSource-Next-Gen-Street-Level-Geolocation.git
cd .\Netryx-OpenSource-Next-Gen-Street-Level-Geolocation\
# Créer un environnement virtuel
python3 -m venv venv
source venv/bin/activate # Sur Windows : venv\Scripts\activate
# Installer les dépendances
pip install -r requirements.txt
# Installer LightGlue explicitement (requis pour l'appariement)
pip install git+https://github.com/cvg/LightGlue.git
# Optionnel : Installer kornia pour le mode Ultra (LoFTR)
pip install kornia
Remarque :
lightglueest importé par l'application en tant que module Python, mais il est installé depuis le dépôt GitHub ci-dessus.
Si vous souhaitez utiliser la fonction de géolocalisation aveugle assistée par IA :
export GEMINI_API_KEY="votre_clé_ici"
python test_super.py
Utilisateurs macOS : Si l'interface graphique apparaît vide, mettez à jour tkinter : brew install [email protected] (ou votre version Python). Le tkinter intégré au Python système a des problèmes de rendu connus sur les versions récentes de macOS.
Avant de rechercher, vous devez indexer une zone. Cela parcourt les panoramas Street View et extrait les empreintes CosPlace.
Estimations du temps d'indexation :
L'index est sauvegardé de manière incrémentielle — si le processus est interrompu, il reprend là où il s'était arrêté lors de l'exécution suivante.
Activez la case Mode Ultra pour les images difficiles. Cela ajoute l'appariement dense LoFTR, le saut de descripteur et l'expansion de voisinage. Nettement plus lent mais trouve des correspondances que le pipeline standard manque.
Tous les embeddings sont stockés dans un seul index unifié. Lorsque vous recherchez, le filtre de rayon restreint automatiquement les résultats à la zone que vous spécifiez. Cela signifie :
Flux de données :
Mode Créer :
Points de grille → API Google Street View → Panoramas → Recadrages → CosPlace → cosplace_parts/*.npz
Construction automatique :
cosplace_parts/*.npz → cosplace_descriptors.npy + metadata.npz (index interrogeable)
Mode Rechercher :
Image de requête → CosPlace → Recherche dans l'index (filtrée par rayon) → Télécharger les candidats → ALIKED/DISK + LightGlue → Résultat
netryx/
├── test_super.py # Application principale (interface graphique + indexation + recherche)
├── cosplace_utils.py # Chargement du modèle CosPlace et extraction de descripteurs
├── build_index.py # Constructeur d'index autonome haute performance (pour grands ensembles de données)
├── requirements.txt # Dépendances Python
├── cosplace_parts/ # Morceaux d'embeddings bruts (créés lors de l'indexation)
├── index/ # Index interrogeable compilé
│ ├── cosplace_descriptors.npy # Tous les descripteurs 512 dimensions
│ └── metadata.npz # Coordonnées, angles de direction, ID de panoid
└── README.md
La précision diminue-t-elle avec un rayon de recherche plus grand ?
Non. CosPlace classe par similarité visuelle sur l'ensemble de l'index. Que votre index couvre 1 km ou 50 km, les meilleurs candidats sont toujours les plus similaires visuellement. Le filtre de rayon exclut simplement les entrées géographiquement non pertinentes avant le classement.
Combien de temps prend une recherche ?
Généralement 2 à 5 minutes sur Apple Silicon, 1 à 3 minutes sur GPU NVIDIA. Le goulot d'étranglement est le téléchargement des tuiles de panorama depuis Google (lié au réseau), pas l'appariement lui-même.
Puis-je indexer un pays entier ?
Pas pratique. Un rayon de 10 km produit environ 100 000 panoramas et un index d'environ 7 Go. Un pays entier nécessiterait des pétaoctets. Indexez des villes ou régions spécifiques d'intérêt (5–20 km).
Ma recherche n'a trouvé aucun candidat.
Vos coordonnées de recherche ne chevauchent aucune zone indexée. Soit indexez la zone d'abord, soit ajustez votre centre/rayon de recherche pour chevaucher les données indexées existantes. Utilisez « Afficher la carte de couverture » pour visualiser ce qui a été indexé.
La correspondance est légèrement erronée (décalée d'un bloc).
Activez le mode Ultra. L'expansion de voisinage recherche tous les panoramas dans un rayon de 100 m autour de la correspondance initiale, trouvant souvent le nœud de rue exact correct.
Cela fonctionne-t-il avec des photos d'intérieur ?
Non. Netryx compare uniquement avec des panoramas de rue extérieurs. Les photos d'intérieur, les images aériennes/satellites et les photos en gros plan d'objets ne produiront pas de résultats significatifs.
Cela coûte-t-il de l'argent ?
Netryx est gratuit et open source. La fonction optionnelle IA Grossier nécessite une clé API Gemini (niveau gratuit disponible chez Google). Les coûts de calcul proviennent de votre propre matériel — aucun service cloud requis.
Existe-t-il une version hébergée ?
Oui. netryx.live exécute le pipeline complet dans le cloud, vous n'avez donc pas besoin de configurer quoi que ce soit localement. Utile si vous voulez des résultats rapides sans construire votre propre index. Mais sa précision est environ 30 % inférieure à celle de la version open source en raison de contraintes de calcul.
netryx.live exécute le même moteur dans le cloud — téléchargez une photo, obtenez des coordonnées. Aucune installation, aucune indexation, aucun GPU requis. Mais sa précision est environ 30 % inférieure à celle de la version open source en raison de contraintes de calcul.
Sairaj Balaji — Chercheur en IA et créateur de PrismX. Bourses de Microsoft for Startups et ElevenLabs. Présenté dans Fast Company et Deutsche Welle.
Licence MIT. Voir LICENSE pour plus de détails.
Netryx est conçu pour la recherche OSINT légitime, le journalisme d'investigation, la surveillance des droits de l'homme, la réponse aux catastrophes et la recherche académique.
Responsabilité de l'utilisateur : Vous êtes seul responsable du respect des lois applicables, y compris les conditions d'utilisation de Google Maps/Street View et les réglementations locales sur la vie privée.
Ne pas utiliser pour : Le harcèlement, la traque, la surveillance non autorisée, ou toute activité qui viole la vie privée ou la sécurité des individus.
Les développeurs de Netryx déclinent toute responsabilité en cas d'utilisation abusive.
| Cas d'utilisation | Lien |
|---|
| Géolocalisation de frappe de missile — Qatar (fév. 2026) | Regarder sur YouTube |
| Surveillance de conflit — manifestations à Paris | Regarder sur YouTube |
| Géolocalisation aveugle à partir d'une photo aléatoire — Paris | Regarder sur YouTube |
| Analyse technique approfondie : fonctionnement du pipeline | Regarder sur YouTube |
| Composant | Minimum | Recommandé |
|---|
| OS | macOS / Linux / Windows | macOS (M1+) ou Linux avec GPU NVIDIA |
| VRAM GPU | 4 Go | 8 Go+ |
| RAM | 8 Go | 16 Go+ |
| Stockage | 10 Go | 50 Go+ (dépend de la taille de la zone indexée) |
| Internet | Requis pour l'indexation et la recherche | Bande passante large recommandée |
| Python | 3.9+ | 3.10+ |
| Rayon | Environ Panoramas | Temps (M2 Max) | Taille de l'index |
|---|
| 0,5 km | ~500 | 30 min | ~60 Mo |
| 1 km | ~2 000 | 1–2 heures | ~250 Mo |
| 5 km | ~30 000 | 8–12 heures | ~3 Go |
| 10 km | ~100 000 | 24–48 heures | ~7 Go |
| Modèle | Objectif | Article |
|---|
| CosPlace | Reconnaissance de lieu visuel (descripteur global) | CVPR 2022 |
| ALIKED | Extraction de caractéristiques locales (utilisé sur CUDA) | IEEE TIP 2023 |
| DISK | Extraction de caractéristiques locales (utilisé sur MPS/CPU) | NeurIPS 2020 |
| LightGlue | Appariement profond de caractéristiques | ICCV 2023 |
| LoFTR | Appariement dense sans détecteur (mode Ultra) | CVPR 2021 |
| Fonctionnalité | CUDA (NVIDIA) | MPS (Mac) | CPU |
|---|
| Extracteur de caractéristiques | ALIKED (1024 kp) | DISK (768 kp) | DISK (768 kp) |
| Attention flash LightGlue | Activée | Désactivée | Désactivée |
| LoFTR (mode Ultra) | Pleine vitesse | Repli CPU pour certaines opérations | Plein CPU |
| Vitesse d'indexation | La plus rapide | Bonne | Lente |