
Motor de geolocalização local-first que identifica coordenadas GPS precisas de fotos de nível de rua usando os modelos de visão computacional CosPlace, ALIKED e LightGlue. Precisão sub-50m, sem necessidade de pontos de referência.
Motor de Geolocalização de Nível de Rua Open-Source
Carregue qualquer foto de rua. Obtenha coordenadas GPS precisas.
Precisão abaixo de 50m. Sem necessidade de pontos de referência. Funciona inteiramente no seu hardware.
Demonstrações · Como Funciona · Primeiros Passos · Uso · FAQ
O Netryx é uma ferramenta de geolocalização local-first que identifica as coordenadas GPS exatas de qualquer fotografia de nível de rua. Ao contrário da pesquisa reversa de imagens (que corresponde a imagens da web carregadas), o Netryx corresponde a panoramas de street view sistematicamente rastreados — ou seja, funciona em qualquer esquina aleatória sem presença na internet.
O pipeline central combina três modelos de visão computacional de última geração:
O Google Lens pesquisa a internet. O Netryx pesquisa o mundo físico.
O Netryx usa um pipeline de três estágios que progressivamente reduz de milhões de candidatos a uma única correspondência precisa. O Netryx é simplesmente uma ferramenta, é agnóstico quanto à fonte e pode processar imagens de qualquer provedor, como Mapillary ou KartaView ou qualquer outro.
Cada panorama de street view no índice foi pré-processado em uma "impressão digital" de 512 dimensões usando CosPlace, um modelo de reconhecimento de lugares visuais treinado em milhões de imagens geo-referenciadas.
Quando você carrega uma foto de consulta:
Este estágio é executado em menos de 1 segundo independentemente do tamanho do índice — é uma única multiplicação de matrizes.
O CosPlace encontra lugares que parecem semelhantes. O Estágio 2 prova que são o mesmo lugar usando verificação geométrica.
Para cada candidato:
Este estágio processa 300–500 candidatos em 2–5 minutos dependendo do seu hardware.
A correspondência inicial é boa, mas nem sempre ideal. O refinamento a melhora:
Para imagens difíceis (noturnas, borradas, baixa textura), o Modo Ultra adiciona:
Imagem de Consulta
│
├── Extração de descritor CosPlace (impressão digital de 512 dimensões)
├── Extração de descritor espelhado
│
▼
Pesquisa no Índice (similaridade de cosseno, filtrado por raio)
│
├── Top 500 candidatos classificados por similaridade visual
│
▼
Baixar Panoramas → Recortar em 3 FOVs → Extrair pontos-chave ALIKED/DISK
│
├── Correspondência LightGlue contra pontos-chave da consulta
├── Verificação geométrica RANSAC
│
▼
Refinamento de Orientação (±45°, 3 FOVs, top 15 candidatos)
│
├── Agrupamento de consenso espacial
├── Pontuação de confiança
│
▼
📍 Coordenadas GPS + Pontuação de Confiança
Suporte a GPU:
# Clone o repositório
git clone https://github.com/sparkyniner/Netryx-OpenSource-Next-Gen-Street-Level-Geolocation.git
cd .\Netryx-OpenSource-Next-Gen-Street-Level-Geolocation\
# Crie o ambiente virtual
python3 -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate
# Instale as dependências
pip install -r requirements.txt
# Instale o LightGlue explicitamente (necessário para correspondência)
pip install git+https://github.com/cvg/LightGlue.git
# Opcional: Instale o kornia para o Modo Ultra (LoFTR)
pip install kornia
Nota:
lightglueé importado pelo aplicativo como um módulo Python, mas é instalado a partir do repositório GitHub acima.
Se quiser usar o recurso de geolocalização cega assistida por IA:
export GEMINI_API_KEY="sua_chave_aqui"
python test_super.py
Usuários de macOS: Se a GUI aparecer em branco, atualize o tkinter: brew install [email protected] (ou sua versão do Python). O tkinter empacotado do Python do sistema tem problemas de renderização conhecidos em versões recentes do macOS.
Antes de pesquisar, você precisa indexar uma área. Isso rastreia panoramas do Street View e extrai impressões digitais CosPlace.
Estimativas de tempo de indexação:
O índice é salvo incrementalmente — se o processo for interrompido, ele retoma de onde parou na próxima execução.
Ative a caixa de seleção Ultra Mode para imagens difíceis. Isso adiciona correspondência densa LoFTR, salto de descritor e expansão de vizinhança. Significativamente mais lento, mas captura correspondências que o pipeline padrão perde.
Todas as incorporações são armazenadas em um único índice unificado. Quando você pesquisa, o filtro de raio restringe automaticamente os resultados à área que você especificar. Isso significa:
Fluxo de dados:
Modo Create:
Pontos da grade → API do Google Street View → Panoramas → Recortes → CosPlace → cosplace_parts/*.npz
Auto-build:
cosplace_parts/*.npz → cosplace_descriptors.npy + metadata.npz (índice pesquisável)
Modo Search:
Imagem de consulta → CosPlace → Pesquisa no índice (filtrado por raio) → Baixar candidatos → ALIKED/DISK + LightGlue → Resultado
netryx/
├── test_super.py # Aplicação principal (GUI + indexação + pesquisa)
├── cosplace_utils.py # Carregamento do modelo CosPlace e extração de descritores
├── build_index.py # Construtor de índice independente de alto desempenho (para grandes conjuntos de dados)
├── requirements.txt # Dependências Python
├── cosplace_parts/ # Pedaços de incorporação brutos (criados durante a indexação)
├── index/ # Índice pesquisável compilado
│ ├── cosplace_descriptors.npy # Todos os descritores de 512 dimensões
│ └── metadata.npz # Coordenadas, orientações, IDs de panoid
└── README.md
A precisão diminui com um raio de pesquisa maior?
Não. O CosPlace classifica por similaridade visual em todo o índice. Se o seu índice cobre 1km ou 50km, os principais candidatos são sempre os mais visualmente semelhantes. O filtro de raio simplesmente exclui entradas geograficamente irrelevantes antes da classificação.
Quanto tempo leva uma pesquisa?
Normalmente 2–5 minutos no Apple Silicon, 1–3 minutos na GPU NVIDIA. O gargalo é o download dos tiles do panorama do Google (limitado pela rede), não a correspondência em si.
Posso indexar um país inteiro?
Não é prático. Um raio de 10km produz ~100K panoramas e um índice de ~7GB. Um país inteiro exigiria petabytes. Indexe cidades ou regiões específicas de interesse (5–20km).
Minha pesquisa não encontrou nenhum candidato.
Suas coordenadas de pesquisa não se sobrepõem a nenhuma área indexada. Indexe a área primeiro ou ajuste o centro/raio da pesquisa para sobrepor os dados indexados existentes. Use "Show Coverage Map" (Mostrar Mapa de Cobertura) para visualizar o que foi indexado.
A correspondência está ligeiramente errada (a um quarteirão de distância).
Ative o Modo Ultra. A expansão de vizinhança pesquisa todos os panoramas num raio de 100m da correspondência inicial, muitas vezes encontrando o nó de rua exato e correto.
Isso funciona com fotos internas?
Não. O Netryx corresponde apenas a panoramas de street view externos. Fotos internas, imagens aéreas/satélite e fotos de objetos em close não produzirão resultados significativos.
Isso custa dinheiro?
O Netryx é gratuito e de código aberto. O recurso opcional AI Coarse requer uma chave de API Gemini (nível gratuito disponível no Google). Os custos de computação são do seu próprio hardware — nenhum serviço em nuvem necessário.
Existe uma versão hospedada?
Sim. netryx.live executa o pipeline completo na nuvem, para que você não precise configurar nada localmente. Útil se você quiser resultados rápidos sem construir seu próprio índice. Mas é cerca de 30% menos preciso que a versão de código aberto devido a restrições de computação.
netryx.live executa o mesmo motor na nuvem — carregue uma foto, obtenha coordenadas. Sem instalação, sem indexação, sem GPU necessária. Mas é cerca de 30% menos preciso que a versão de código aberto devido a restrições de computação.
Sairaj Balaji — Pesquisador de IA e criador do PrismX. Bolsas da Microsoft for Startups e ElevenLabs. Destacado na Fast Company e Deutsche Welle.
Licença MIT. Veja LICENSE para detalhes.
O Netryx foi projetado para pesquisa OSINT legítima, jornalismo investigativo, monitoramento de direitos humanos, resposta a desastres e pesquisa acadêmica.
Responsabilidade do usuário: Você é o único responsável por garantir a conformidade com as leis aplicáveis, incluindo os Termos de Serviço do Google Maps/Street View e regulamentações locais de privacidade.
Não use para: Perseguição, assédio, vigilância não autorizada ou qualquer atividade que viole a privacidade ou segurança de indivíduos.
Os desenvolvedores do Netryx se isentam de toda responsabilidade por uso indevido.
| Caso de Uso | Link |
|---|
| Geolocalização de ataque com míssil — Catar (Fev 2026) | Assista no YouTube |
| Monitoramento de conflitos — Protestos em Paris | Assista no YouTube |
| Geolocalização cega a partir de uma foto aleatória — Paris | Assista no YouTube |
| Análise técnica aprofundada: como o pipeline funciona | Assista no YouTube |
| Componente | Mínimo | Recomendado |
|---|
| SO | macOS / Linux / Windows | macOS (M1+) ou Linux com GPU NVIDIA |
| VRAM da GPU | 4GB | 8GB+ |
| RAM | 8GB | 16GB+ |
| Armazenamento | 10GB | 50GB+ (depende do tamanho da área indexada) |
| Internet | Necessário para indexação e pesquisa | Banda larga recomendada |
| Python | 3.9+ | 3.10+ |
| Raio | Aprox. Panoramas | Tempo (M2 Max) | Tamanho do Índice |
|---|
| 0.5 km | ~500 | 30 min | ~60 MB |
| 1 km | ~2.000 | 1–2 horas | ~250 MB |
| 5 km | ~30.000 | 8–12 horas | ~3 GB |
| 10 km | ~100.000 | 24–48 horas | ~7 GB |
| Modelo | Propósito | Artigo |
|---|
| CosPlace | Reconhecimento de lugares visuais (descritor global) | CVPR 2022 |
| ALIKED | Extração de características locais (usado no CUDA) | IEEE TIP 2023 |
| DISK | Extração de características locais (usado no MPS/CPU) | NeurIPS 2020 |
| LightGlue | Correspondência profunda de características | ICCV 2023 |
| LoFTR | Correspondência densa sem detector (Modo Ultra) | CVPR 2021 |
| Funcionalidade | CUDA (NVIDIA) | MPS (Mac) | CPU |
|---|
| Extrator de características | ALIKED (1024 kp) | DISK (768 kp) | DISK (768 kp) |
| Atenção flash do LightGlue | Habilitado | Desabilitado | Desabilitado |
| LoFTR (Modo Ultra) | Velocidade total | Fallback para CPU em algumas operações | CPU completa |
| Velocidade de indexação | Mais rápido | Bom | Lento |