开源街道级地理定位引擎
上传任意街道照片,获取精确GPS坐标。
精度低于50米,无需地标,完全运行在你的硬件上。
Netryx是一款本地优先的地理定位工具,能够识别任意街道照片的精确GPS坐标。与反向图像搜索(比对已上传的网络图像)不同,Netryx针对系统性爬取的街景全景图进行比对——这意味着它能够处理任何随机街道角落、且零网络存在的照片。
核心管道结合了三种最先进的计算机视觉模型:
Google Lens搜索互联网。Netryx搜索物理世界。
| 用例 | 链接 |
|---|---|
| 导弹袭击地理定位——卡塔尔(2026年2月) | 在YouTube上观看 |
| 冲突监测——巴黎抗议活动 | 在YouTube上观看 |
| 从随机照片进行盲地理定位——巴黎 | 在YouTube上观看 |
| 技术深度解析:管道工作原理 | 在YouTube上观看 |
Netryx使用三阶段管道,从数百万个候选位置逐步缩小到单个精确匹配。Netryx仅仅是一个工具,它来源无关,可以处理来自任何提供商(如Mapillary、KartaView或任何其他提供商)的图像。
索引中的每个街景全景图都经过预处理,使用CosPlace提取为512维“指纹”,该模型在数百万张地理标记图像上训练。
当你上传查询照片时:
此阶段运行时间不到1秒,无论索引大小——它只是一个矩阵乘法运算。
CosPlace找到看起来相似的地点。阶段2通过几何验证证明它们是同一地点。
对于每个候选:
此阶段处理300-500个候选,耗时2-5分钟,取决于你的硬件。
初始匹配不错,但并非总是最优。优化对其进行改进:
对于困难图像(夜晚、模糊、低纹理),极致模式增加:
查询图像
│
├── CosPlace描述符提取(512维指纹)
├── 翻转描述符提取
│
▼
索引搜索(余弦相似度,半径过滤)
│
├── 按视觉相似度排名前500的候选
│
▼
下载全景图 → 在3种视场角下裁剪 → 提取ALIKED/DISK关键点
│
├── LightGlue与查询关键点匹配
├── RANSAC几何验证
│
▼
方位角优化(±45°,3种视场角,前15个候选)
│
├── 空间共识聚类
├── 置信度评分
│
▼
📍 GPS坐标 + 置信度评分
GPU支持:
# 克隆仓库
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
# 显式安装LightGlue(匹配必需)
pip install git+https://github.com/cvg/LightGlue.git
# 可选:安装kornia以支持极致模式(LoFTR)
pip install kornia
注意:
lightglue作为Python模块被应用程序导入,但它是从上述GitHub仓库安装的。
如果你想使用AI辅助盲地理定位功能:
export GEMINI_API_KEY="your_key_here"
python test_super.py
macOS用户:如果GUI显示空白,请升级tkinter:brew install [email protected](或你的Python版本)。系统Python捆绑的tkinter在较新macOS版本上存在已知渲染问题。
在搜索之前,你需要对某个区域进行索引。这会爬取街景全景图并提取CosPlace指纹。
索引时间估计:
索引是增量保存的——如果进程中断,下次运行时会从中断处继续。
对于困难图像,勾选极致模式复选框。这会增加LoFTR密集匹配、描述符跳跃和邻域扩展。显著变慢,但能捕获标准管道遗漏的匹配。
所有嵌入向量存储在单一统一索引中。当你搜索时,半径过滤器自动将结果限制在你指定的区域。这意味着:
数据流:
创建模式:
网格点 → Google街景API → 全景图 → 裁剪 → CosPlace → cosplace_parts/*.npz
自动构建:
cosplace_parts/*.npz → cosplace_descriptors.npy + metadata.npz(可搜索索引)
搜索模式:
查询图像 → CosPlace → 索引搜索(半径过滤) → 下载候选 → ALIKED/DISK + LightGlue → 结果
netryx/
├── test_super.py # 主应用程序(GUI + 索引 + 搜索)
├── cosplace_utils.py # CosPlace模型加载和描述符提取
├── build_index.py # 独立高性能索引构建器(用于大数据集)
├── requirements.txt # Python依赖
├── cosplace_parts/ # 原始嵌入块(索引过程中创建)
├── index/ # 编译后的可搜索索引
│ ├── cosplace_descriptors.npy # 所有512维描述符
│ └── metadata.npz # 坐标、方位角、全景图ID
└── README.md
搜索半径越大,精度会下降吗?
不会。CosPlace在整个索引中按视觉相似度排名。无论你的索引覆盖1km还是50km,顶部候选始终是最视觉相似的。半径过滤器仅在排名前排除地理无关的条目。
一次搜索需要多长时间?
通常在Apple Silicon上2-5分钟,在NVIDIA GPU上1-3分钟。瓶颈在于从Google下载全景图瓦片(网络限制),而非匹配本身。
我能索引整个国家吗?
不现实。一个10km半径产生约10万张全景图,索引大小约7GB。整个国家需要PB级空间。索引特定城市或感兴趣区域(5-20km)。
我的搜索找到了0个候选。
你的搜索坐标与任何索引区域都不重叠。要么先索引该区域,要么调整搜索中心/半径使其与现有索引数据重叠。使用“显示覆盖地图”可视化已索引的内容。
匹配略微错误(偏差一个街区)。
启用极致模式。邻域扩展会搜索初始匹配周围100米内的所有全景图,通常能找到精确正确的街道节点。
这适用于室内照片吗?
不适用。Netryx仅针对室外街景全景图进行匹配。室内照片、航拍/卫星图像以及近距离物体照片不会产生有意义的结果。
这需要付费吗?
Netryx是免费且开源的。可选的AI粗定位功能需要Gemini API密钥(Google提供免费层)。计算成本由你自己的硬件承担——无需云服务。
有托管的版本吗?
有的。netryx.live在云端运行完整的管道,这样你不需要在本地进行任何设置。如果你希望快速获得结果而不构建自己的索引,这很方便。但由于计算限制,其精度比开源版本低约30%。
netryx.live 在云端运行相同的引擎——上传照片,获取坐标。无需安装、无需索引、无需GPU。但由于计算限制,其精度比开源版本低约30%。
Sairaj Balaji —— AI研究员,PrismX创建者。获得Microsoft for Startups和ElevenLabs资助。曾受Fast Company和德国之声报道。
MIT许可证。详情见LICENSE文件。
Netryx设计用于合法的OSINT研究、调查性新闻、人权监测、灾害响应及学术研究。
用户责任:你全权负责确保遵守适用法律,包括Google地图/街景服务条款及当地隐私法规。
禁止用于:跟踪、骚扰、未经授权的监视,或任何侵犯个人隐私与安全的活动。
Netryx开发者不承担任何滥用责任。
| 组件 | 最低 | 推荐 |
|---|
| 操作系统 | macOS / Linux / Windows | macOS (M1+) 或配备NVIDIA GPU的Linux |
| GPU显存 | 4GB | 8GB+ |
| 内存 | 8GB | 16GB+ |
| 存储 | 10GB | 50GB+(取决于索引区域大小) |
| 互联网 | 索引和搜索需要 | 建议宽带 |
| Python | 3.9+ | 3.10+ |
| 半径 | 大约全景图数量 | 时间(M2 Max) | 索引大小 |
|---|
| 0.5 km | ~500 | 30分钟 | ~60 MB |
| 1 km | ~2,000 | 1-2小时 | ~250 MB |
| 5 km | ~30,000 | 8-12小时 | ~3 GB |
| 10 km | ~100,000 | 24-48小时 | ~7 GB |
| 模型 | 用途 | 论文 |
|---|
| CosPlace | 视觉地点识别(全局描述符) | CVPR 2022 |
| ALIKED | 局部特征提取(在CUDA上使用) | IEEE TIP 2023 |
| DISK | 局部特征提取(在MPS/CPU上使用) | NeurIPS 2020 |
| LightGlue | 深度特征匹配 | ICCV 2023 |
| LoFTR | 无检测器密集匹配(极致模式) | CVPR 2021 |
| 特性 | CUDA (NVIDIA) | MPS (Mac) | CPU |
|---|
| 特征提取器 | ALIKED (1024 关键点) | DISK (768 关键点) | DISK (768 关键点) |
| LightGlue闪存注意力 | 启用 | 禁用 | 禁用 |
| LoFTR(极致模式) | 全速 | 部分操作回退CPU | 全CPU |
| 索引速度 | 最快 | 良好 | 慢 |