Геометрия вместо угадывания
Geo-sleuth — это open-source навык (skill) для AI-агентов, который решает задачу обратного геокодирования изображений. В отличие от стандартных моделей, опирающихся на распознавание текста или известных достопримечательностей, этот инструмент работает в условиях «нулевой информации»: нет табличек, нет уникальных зданий, нет GPS-метаданных. Единственные улики — это геометрия объектов, тени, рельеф и спутниковые снимки.
Система использует OpenStreetMap (OSM) для извлечения геометрии инфраструктуры (мосты, ЛЭП), данные о высотах (DEM) для анализа горизонта и спутниковые тайлы для верификации. Результатом работы является не просто точка на карте, а полный отчет с координатами, направлением камеры, радиусом ошибки и доказательным изображением.
Как это работает: от 27 000 кандидатов до 2 метров
Процесс можно разделить на несколько этапов фильтрации, где AI-модель выступает судьей, а скрипты — исследователями. Яркий пример — поиск локации снимка рисового поля и эстакады в Китае. Исходные данные: фото без EXIF, вид на эстакаду, гору и рисовые чеки. Никаких текстовых меток.
Агент выполняет следующие шаги:
- Региональный скан: Извлечение всех сегментов железнодорожных мостов из OSM в целевом регионе. Изначально отобрано 27 335 сегментов.
- Фильтрация по горизонту: Проверка рельефа вокруг каждого сегмента. Остается 171 потенциальная локация.
- Сопоставление силуэта: Рендеринг линии горизонта для тысяч позиций камеры. Отбор 14 372 позиций, затем сужение до 22 кандидатов на основе геометрии моста (ближняя/дальняя часть).
- Геометрическая привязка: Анализ расстояний между опорами моста (пирами). 17 видимых опор создают 17 азимутов. Только одна точка на карте обеспечивает равномерное распределение этих азимутов относительно линии пути.
Итог: локация определена в Цинъюане, провинция Гуандун, с точностью ±2 метра. На весь процесс ушло около 72 минут, половина из которых — ожидание вычислений.
Результаты тестирования
Разработчики протестировали навык на сложных сценариях, где традиционные методы (например, обратный поиск по картинкам) не работают. Ниже приведены результаты трех кейсов:
| Кейс | Описание сцены | Ключевые факторы | Точность | Локация |
|---|---|---|---|---|
| 1. Рисовое поле и эстакада | Ж/д мост, гора, поле. Нет текста. | Геометрия пролетов, рельеф, электрификация пути | ±2 м | Цинъюань, Гуандун, Китай |
| 2. Пустынный силуэт | Дюны, горы, ЛЭП. Камера наклонена на 1°. | ЛЭП, рельеф, коррекция наклона камеры | within 100 м | Да-Цяйдань, Цинхай, Китай |
| 3. Улица с вишнями | Деревья, тени, вид с улицы. | Открытые данные о деревьях, тени, Street View | 3 м | Ванкувер, Канада |
Технические детали и совместимость
Geo-sleuth реализован как стандартный SKILL.md для AI-агентов. Он не требует сложной настройки моделей, так как использует 20 специализированных Python-скриптов для поиска и оценки, а LLM-модель только выбирает лучшие результаты из отфильтрованного списка. Это снижает вероятность галлюцинаций.
Инструмент совместим с Claude Code, Codex, Cursor, Gemini CLI, OpenCode и GitHub Copilot. Установка осуществляется через команду:
npx skills add Oldcircle/geo-sleuth
Для первичной настройки рекомендуется запустить скрипт doctor.py для проверки окружения. Система возвращает координаты с радиусом ошибки, направление взгляда камеры и спутниковое изображение-подтверждение.
Источник: Github ↗
