SuperAPI AI 工具集

netryx-street-level-geolocation

数据与分析

查看项目

更新于 10-16 23:16

技能介绍

Netryx 是一个本地托管、开源的街景级地理定位引擎,能够从任意街景照片中识别出精确的 GPS 坐标。它的工作方式是:先爬取 Street View 全景图并将其索引为 CosPlace 嵌入向量,然后通过三阶段计算机视觉流水线(全局检索 → 局部特征匹配 → 精化)将查询图像匹配到某个具体位置。据资料介绍,其精度可达 50 米以内,搜索时无需联网,且完全在本地硬件上运行。

用途

该技能面向需要从街景照片进行精确定位的任务,例如根据一张街道照片推断拍摄地点的经纬度。它通过本地部署方式运行,搜索阶段不依赖互联网连接。

主要能力

  • 全局检索(第一阶段):将查询图像(含翻转副本)转换为 512 维 CosPlace 描述符,与索引做余弦相似度比对,并通过 Haversine 半径过滤,返回前 500–1000 个候选。
  • 几何验证(第二阶段):对每个候选下载街景全景图(8 个瓦片拼接),按索引朝向做直线裁剪并进行多视场角(70°、90°、110°)裁剪,使用 ALIKED(CUDA)或 DISK(MPS/CPU)提取关键点,再用 LightGlue 与查询关键点做深度特征匹配,并通过 RANSAC 几何验证统计内点数量。资料称处理 300–500 个候选约需 2–5 分钟。
  • 精化(第三阶段):对前 15 个候选进行朝向精化(±45°,步长 15°,3 个视场角),按 50 米单元做空间共识聚类,并给出置信度评分(聚类强度 + 唯一性比率),输出最终 GPS 坐标。
  • Ultra 模式:针对模糊、夜间、低纹理等困难图像,增加 LoFTR 稠密匹配、描述符跳跃(用匹配到的全景图描述符重新检索索引)以及 100 米邻域扩展。更慢但更稳健。
  • 独立索引构建器:build_index.py 用于大规模数据集的索引构建。
  • 图形界面:提供 Create(索引区域)与 Search(定位查询图像)两种模式。

使用方式

安装步骤(保留原始命令):

git clone https://github.com/sparkyniner/Netryx-OpenSource-Next-Gen-Street-Level-Geolocation.git cd Netryx-OpenSource-Next-Gen-Street-Level-Geolocation python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt pip install git+https://github.com/cvg/LightGlue.git # required pip install kornia # optional: Ultra Mode (LoFTR)

可选的 Gemini AI Coarse 模式需要设置 API key: export GEMINI_API_KEY="your_key_here"

macOS 图形界面空白时可执行: brew install python-tk@3.11

启动图形界面: python test_super.py

典型工作流:先在 Create 模式输入中心经纬度与半径(测试可从 0.5–1 公里开始,网格分辨率默认 300 且不建议更改)创建索引,索引可中断续跑;然后在 Search 模式上传街景照片,选择 Manual(手动提供大致中心与半径)或 AI Coarse(Gemini 分析视觉线索估计区域,需 API key),点击 Run Search → Start Full Search,最终在地图上显示 GPS 坐标与置信度分数。大型数据集可使用 python build_index.py。

硬件要求:GPU 显存最低 4 GB(推荐 8 GB+),内存最低 8 GB(推荐 16 GB+),存储最低 10 GB(推荐 50 GB+),Python 3.9+(推荐 3.10+)。GPU 后端方面:CUDA(NVIDIA)使用 ALIKED;MPS(Apple Silicon)使用 DISK;CPU 使用 DISK(较慢)。

资料还提供了在代码中直接调用各组件的方式:通过 cosplace_utils 加载模型并提取描述符;以 NumPy 加载 index/cosplace_descriptors.npy 与 index/metadata.npz 进行半径过滤的余弦检索;使用 LightGlue 做特征匹配并用 OpenCV 做 RANSAC 几何验证;使用 kornia 的 LoFTR 做稠密匹配;以及通过 Google Street View Static API 下载并拼接全景图裁剪。

适用场景

  • 根据街景照片定位拍摄地点的经纬度;
  • 在本地硬件上离线执行地理定位检索;
  • 对特定区域预先建立索引后进行查询;
  • 针对夜间、模糊、低纹理等困难图像使用 Ultra 模式提升稳健性。

限制与注意事项

  • 需要先对目标区域建立索引才能搜索;索引耗时随半径显著增长(资料给出 0.5 公里约 30 分钟、1 公里 1–2 小时、5 公里 8–12 小时、10 公里 24–48 小时,基于 M2 Max)。
  • AI Coarse 模式依赖 Gemini API key;资料建议优先使用手动模式(显式经纬度 + 半径)。
  • LightGlue 不在 PyPI 上,必须从 GitHub 安装;Ultra 模式需要 kornia。
  • CUDA 显存不足时可降低 ALIKED 的 max_num_keypoints、分批处理候选或回退到 CPU/MPS。
  • 查询图像需具备足够纹理(避免纯天空/空白墙面裁剪)。
  • 索引搜索返回 0 结果时需确认中心点位于已索引区域内、增大半径并确认索引文件存在。

关于收费、价格与订阅信息,以及除上述内容外的其他细节,资料暂未提供。