
O software de geolocalização de imagens ao nível da rua mais sofisticado do mundo
Geolocalização AI de última geração a partir de uma única imagem.
The Idea • How It Works • Getting Started • Community Hub • Installation
Você tem uma fotografia. Talvez seja uma captura de tela de um vídeo. Talvez seja uma foto de celular cortada e desfocada que alguém postou online. Talvez mostre apenas uma fachada de loja, um trecho de estrada ou a esquina de um prédio. Você quer saber exatamente onde foi tirada.
Netryx Astra V2 responde a essa pergunta.
É um sistema de geolocalização de código aberto que pega uma única imagem e encontra as coordenadas GPS precisas ao compará-la com um banco de dados de panoramas de street-view. Faça upload da sua foto e, em minutos, ela informa a rua, a cidade e as coordenadas — com precisão de alguns metros.
O que torna o V2 diferente do Netryx original (e de outras ferramentas disponíveis) é o pipeline de correspondência. Nós reconstruímos tudo do zero usando dois modelos que não existiam quando começamos este projeto:
MegaLoc (CVPR 2025) — o modelo de recuperação de imagens mais preciso para reconhecimento de locais, treinado em seis conjuntos de dados cobrindo ambientes internos, externos, diurnos, noturnos e variações sazonais. Ele encontra o bairro certo.
MASt3R (ECCV 2024) — um matcher denso com consciência 3D que entende a geometria das cenas, não apenas padrões de pixels. Ele confirma a localização exata, mesmo a partir de fotos parciais ou fortemente cortadas que quebrariam os matchers tradicionais.
O resultado é um pipeline de três etapas que é mais simples e mais preciso do que o sistema de nove estágios que substituiu.
O Netryx original usava CosPlace para recuperação e uma pilha de DISK + LightGlue + LoFTR + RANSAC + salto de descritor + expansão de vizinhança para verificação. Funcionava, mas era frágil — muitas heurísticas empilhadas umas sobre as outras, cada uma sendo uma solução alternativa para uma limitação do estágio anterior.
O V2 jogou tudo isso fora. Aqui está o que substituiu o quê:
| V1 (Original) | V2 (Astra) | |
|---|---|---|
| Encontrar candidatos | CosPlace (ResNet-50, 512-dim) | MegaLoc (DINOv2 ViT-B/14, 8448-dim → PCA 1024) |
| Confirmar correspondências | DISK + LightGlue + RANSAC | Correspondência densa 3D MASt3R |
| Lidar com casos extremos | Fallback LoFTR, salto de descritor, expansão de vizinhança, Modo Ultra | Consenso espacial — só isso |
| Total de estágios do pipeline | 9+ | 3 |
| Correspondência de imagem parcial | Fraca — keypoints esparsos falham em pequenas sobreposições | Forte — MASt3R encontra correspondências densas em regiões minúsculas |
| Compartilhar índices | Não possível | Community Hub via Hugging Face + pacotes .netryx offline |
A simplificação não é apenas estética. Menos estágios significa menos lugares para as coisas darem errado, pesquisas mais rápidas e um código que é realmente mantível.
O pipeline tem três estágios. Isso não é uma simplificação exagerada — é genuinamente apenas três estágios.
Query Image
│
▼
┌─────────────┐
│ MegaLoc │ "Onde na cidade isso poderia estar?"
│ Retrieval │
└─────┬───────┘
│ Top 500 candidates
▼
┌─────────────┐
│ MASt3R │ "Isso é realmente o mesmo lugar?"
│ Matching │
└─────┬───────┘
│ Scored candidates
▼
┌─────────────┐
│ Spatial │ "Qual cluster de correspondências é mais confiável?"
│ Consensus │
└─────┬───────┘
│
▼
📍 GPS Coordinates
Sua imagem de consulta é convertida em um descritor compacto — um vetor de 8448 dimensões que captura a essência visual da cena. Ele é reduzido por PCA para 1024 dimensões e então comparado com cada localização indexada por similaridade de produto escalar.
Também extraímos um descritor para um corte central ligeiramente ampliado e para uma versão espelhada horizontalmente da consulta, depois mesclamos os resultados. Isso lida com casos em que a consulta está em um nível de zoom diferente ou voltada para a direção oposta à vista indexada.
A saída são as 500 principais localizações candidatas do índice, classificadas por similaridade visual.
MegaLoc é do laboratório de Gabriele Berton (o mesmo grupo que fez CosPlace e EigenPlaces). É o mais recente de sua linha de trabalho, treinado simultaneamente em SF-XL, GSV-Cities, MSLS e dados de recuperação de marcos. Nenhum outro modelo de recuperação o supera consistentemente em todos os benchmarks — interno, externo, urbano, rural, diurno, noturno.
Para cada um desses 500 candidatos, baixamos o panorama street-view correspondente, recortamos no ângulo de direção indexado e executamos o MASt3R para encontrar correspondências densas de pixels entre a consulta e o recorte.
É aqui que a mágica acontece para consultas difíceis. Matchers tradicionais como SuperPoint + LightGlue extraem talvez 500-2000 keypoints esparsos e tentam correspondê-los. Se sua imagem de consulta sobrepõe apenas 20% com a imagem do banco de dados, pode haver apenas 50 keypoints co-visíveis — não o suficiente para uma correspondência confiável.
MASt3R funciona de maneira completamente diferente. Ele trata a correspondência como um problema de reconstrução 3D, prevendo mapas de pontos densos e descritores de características locais para cada pixel. Mesmo uma pequena região sobreposta produz centenas de correspondências confiáveis, porque ele entende a estrutura 3D da cena, não apenas padrões de pixels 2D.
No benchmark de localização sem mapa (imagem de referência única, mudanças de ponto de vista de até 180°), o MASt3R supera métodos anteriores em 30%. Isso não é uma melhoria incremental — é um salto geracional.
Aqui está o problema de simplesmente escolher o candidato com a maior pontuação de correspondência: existem falsos positivos. Dois restaurantes de rede idênticos a 5 km de distância produzirão altas pontuações de MASt3R. Uma fileira de blocos de apartamentos da era soviética todos parecem iguais.
O consenso espacial resolve isso. Dividimos a área de busca em células de grid de aproximadamente 50 metros e agrupamos geograficamente todas as boas correspondências. Cada célula recebe uma pontuação baseada na evidência combinada de todas as correspondências nessa célula e nas células vizinhas.
Um único outlier com 200 inliers no local errado é superado por um cluster de 5 correspondências com 80-150 inliers cada no local correto. A melhor correspondência do cluster vencedor se torna a resposta final.
É por isso que a precisão se mantém mesmo em raios de busca maiores, onde há mais locais de aparência semelhante.