
Самое совершенное в мире программное обеспечение для геолокации изображений на уровне улиц
Современная AI-геолокация по одному изображению.
Идея • Как это работает • Начало работы • Сообщество • Установка
У вас есть фотография. Может быть, это скриншот из видео. Может быть, это обрезанное, размытое фото с телефона, которое кто-то выложил в интернет. Возможно, на ней изображён только витрина магазина, участок дороги или угол здания. Вы хотите узнать точно, где это было снято.
Netryx Astra V2 отвечает на этот вопрос.
Это система геолокации с открытым исходным кодом, которая берет одно изображение и находит точные GPS-координаты, сопоставляя его с базой данных панорам уличного обзора. Загрузите своё фото, и в течение нескольких минут она сообщит вам улицу, город, координаты — с точностью до нескольких метров.
Что отличает V2 от оригинального Netryx (и от других существующих инструментов) — это конвейер сопоставления. Мы перестроили всё с нуля, используя две модели, которых не существовало, когда мы начинали этот проект:
MegaLoc (CVPR 2025) — самая точная модель поиска изображений для распознавания мест, обученная на шести наборах данных, охватывающих внутренние и внешние сцены, день, ночь и сезонные изменения. Она находит нужный район.
MASt3R (ECCV 2024) — 3D-осознанный плотный матчер, который понимает геометрию сцен, а не только шаблоны пикселей. Он подтверждает точное местоположение даже на частичных или сильно обрезанных фотографиях, которые сломали бы традиционные матчеры.
В результате получился трёхэтапный конвейер, который проще и точнее девятиэтапной системы, которую он заменил.
Оригинальный Netryx использовал CosPlace для поиска и стек из DISK + LightGlue + LoFTR + RANSAC + дескрипторный хоппинг + расширение окрестности для проверки. Это работало, но было хрупким — множество эвристик, наложенных друг на друга, каждая из которых была обходным путём для ограничений предыдущего этапа.
V2 выбросил всё это. Вот что заменило что:
| V1 (Оригинал) | V2 (Astra) | |
|---|---|---|
| Поиск кандидатов | CosPlace (ResNet-50, 512-dim) | MegaLoc (DINOv2 ViT-B/14, 8448-dim → PCA 1024) |
| Подтверждение совпадений | DISK + LightGlue + RANSAC | Плотное 3D-сопоставление MASt3R |
| Обработка крайних случаев | LoFTR fallback, дескрипторный хоппинг, расширение окрестности, Ultra Mode | Пространственный консенсус — и всё |
| Всего этапов пайплайна | 9+ | 3 |
| Сопоставление частичных изображений | Слабое — разреженные ключевые точки не работают при малых перекрытиях | Мощное — MASt3R находит плотные соответствия в крошечных областях |
| Обмен индексами | Невозможно | Сообщество через Hugging Face + офлайн-пакеты .netryx |
Упрощение — не только эстетическое. Меньше этапов означает меньше мест, где что-то может пойти не так, более быстрый поиск и код, который действительно можно поддерживать.
Конвейер состоит из трёх этапов. Это не упрощение — он действительно состоит из трёх этапов.
Query Image
│
▼
┌─────────────┐
│ MegaLoc │ "Где в городе это может быть?"
│ Retrieval │
└─────┬───────┘
│ Топ-500 кандидатов
▼
┌─────────────┐
│ MASt3R │ "Действительно ли это то же самое место?"
│ Matching │
└─────┬───────┘
│ Оценённые кандидаты
▼
┌─────────────┐
│ Spatial │ "Какой кластер совпадений наиболее заслуживает доверия?"
│ Consensus │
└─────┬───────┘
│
▼
📍 GPS Координаты
Ваше запрашиваемое изображение преобразуется в компактный дескриптор — 8448-мерный вектор, который фиксирует визуальную суть сцены. Он уменьшается по PCA до 1024 измерений, затем сравнивается с каждым проиндексированным местоположением через скалярное произведение.
Мы также извлекаем дескриптор для слегка увеличенного центрального кадра и для горизонтально отражённой версии запроса, затем объединяем результаты. Это обрабатывает случаи, когда запрос имеет другой уровень увеличения или направлен в противоположную сторону от индексированного обзора.
Результат — топ-500 местоположений-кандидатов из индекса, отсортированных по визуальному сходству.
MegaLoc создан в лаборатории Габриэле Бертона (той же группе, которая создала CosPlace и EigenPlaces). Это последняя работа в их линейке, обученная на наборах данных SF-XL, GSV-Cities, MSLS и landmark retrieval одновременно. Ни одна другая модель поиска не превосходит её стабильно во всех бенчмарках — внутренние, внешние, городские, сельские, день, ночь.
Для каждого из этих 500 кандидатов мы загружаем соответствующую панораму улицы, обрезаем её под угол направления индексации и запускаем MASt3R для поиска плотных соответствий пикселей между запросом и обрезком.
Здесь и происходит волшебство для сложных запросов. Традиционные матчеры, такие как SuperPoint + LightGlue, извлекают, возможно, 500-2000 разреженных ключевых точек и пытаются сопоставить их. Если ваше запрашиваемое изображение перекрывается с изображением из базы данных только на 20%, может быть всего 50 совместно видимых ключевых точек — недостаточно для надёжного совпадения.
MASt3R работает совершенно иначе. Он рассматривает сопоставление как задачу 3D-реконструкции, предсказывая плотные карты точек и локальные дескрипторы признаков для каждого пикселя. Даже небольшая область перекрытия даёт сотни надежных соответствий, потому что он понимает 3D-структуру сцены, а не только 2D-шаблоны пикселей.
На бенчмарке Map-free localization (одно эталонное изображение, изменение точки обзора до 180°) MASt3R превосходит предыдущие методы на 30%. Это не инкрементное улучшение — это скачок поколений.
Вот проблема с выбором только кандидата с наибольшей оценкой совпадения: существуют ложные срабатывания. Два одинаковых ресторанных сети в 5 км друг от друга будут давать высокие оценки MASt3R. Ряд советских многоквартирных домов выглядят одинаково.
Пространственный консенсус решает это. Мы делим область поиска на ячейки сетки размером ~50 метров и группируем все хорошие совпадения географически. Каждая ячейка получает оценку на основе совокупных доказательств от всех совпадений в этой ячейке и её соседях.
Один выброс с 200 внутренними точками в неправильном месте проигрывает кластеру из 5 совпадений с 80-150 внутренними точками каждое в правильном месте. Лучшее совпадение выигрывающего кластера становится окончательным ответом.
Вот почему точность сохраняется даже при больших радиусах поиска, где больше похожих мест.