Geo-Sleuth Skill:让 AI Agent 从照片反向定位拍摄地的视觉侦探

当 GeoGuessr 已经火遍全球,一张没有任何文字、门牌、招牌的纯风景照,凭什么能被 AI 精确定位到 ±2 米?9 月 18 日上线的 geo-sleuth 把这件事做成了标准 Agent Skill,发布仅 4 天即冲上 GitHub Trending 候选,单日 velocity 接近 60 stars,是 9 月底最值得跟进的”新晋爆款 Skill”之一。

总结

geo-sleuth 是一个面向 AI Coding Agent 的照片反向地理定位 Skill——给定一张无 EXIF、无文字、无显式地标的生活照,Agent 会自动联合 OpenStreetMap 几何、阴影定方位、海拔地形、卫星瓦片、街景全景与 CLIP/DINOv2 视觉模型,把照片拍摄点的经纬度、镜头朝向和误差半径(米级)算出来,并附带一张卫星证据图。凭借”几何即证据、脚本即排名、模型只挑最优”的工程化设计,发布 4 天即拿下 238 stars,是 9 月底新晋 trending 里最有爆款相的 Agent Skill。

功能与原则

核心能力是用多源地理空间证据链做图像地理定位,原则是不靠 LLM 直觉,让 Python 脚本把搜索空间压到只剩 3 个候选,模型只在它们之间二选一:
– 几何即证据:桥墩间距 = 距离尺,桥墩方位 = 角度,阴影 → 镜头方位,山脊线 = 海拔指纹
– 脚本即排名:intake.py / sun.py / terrain.py / osm.py / sat_scan.py / match.py / gsv.py / baidu_pano.py 等二十余个独立脚本分头搜索与打分
– 每条结论必须挂文件:必须显式引用生成的中间证据文件,”知名地标/人口密度”不算证据
– 坐标 ± 误差半径:输出不是单点而是经纬度 + 朝向 + 分级置信度 + 卫星证据图

认可度

  • GitHub Stars:截至 2026-09-22 约 238 stars(2026-09-18 创建后 4 天),平均 ~60 stars/day
  • Forks:26(开发者参与度极高,开箱即用)
  • Trending 经历:9 月 21 日起持续进入 GitHub Trending 候选名单(imtaqin.id 等 GitHub Trending 周榜已收录)
  • SkillsLLM 安全扫描:高分通过(已验证、无高危问题)
  • 跨平台覆盖:Claude Code、Codex、Cursor、Gemini CLI、OpenCode、GitHub Copilot 六个主流 agent 一键通装

链接

GitHub:https://github.com/Oldcircle/geo-sleuth

原作者

Oldcircle(GitHub username)。Open Circle 是 GitHub 上的开源组织,共享模块化、类型安全、注重开发者体验的项目哲学,主页同时托管 Valibot、Formisch 等项目。geo-sleuth 是其首个纯 Agent Skill 化的 OSINT/视觉作品。

介绍

geo-sleuth 解决的是”无文字照片反向定位“这一长期棘手的 OSINT 问题:当一张照片被剥掉 EXIF、看不到任何文字/门牌/地标,普通图片反向搜索往往只能给模糊结果。它把整条流水线拆成三层。

第一层 intake.py:读取 EXIF(如果有)、跑 OCR 和反向图片搜索,提取候选线索。第二层 board.py:维护一个候选板(clues、likelihood ratios、ranking、next step),决定分支走 OSM 几何支线(阴影、地形、OSM 走廊、相机位姿)还是卫星/街景支线(CLIP 排名的卫星瓦片、DINOv2+SIFT 街景匹配)。第三层 evidence.py:合并两路结论,给出坐标 ± 误差半径、镜头朝向、卫星证据图与分级置信度。

仓库自带一张经典示例照(白色烤箱边缘、远处高架桥、右侧陡山、剥过 EXIF),Agent 经过 27,335 → 171 → 14,372 → 22 → 3 → 1 → ±2m 七级筛选,最终在 ±2 米精度内锁定了拍摄点。

特点

  • 零 LLM 直觉、纯几何可解释:所有证据都来自 OpenStreetMap、海拔数据、卫星瓦片、街景图像,不是模型”猜”
  • 脚本分层:搜索/感知交给 Python,判断交给 LLM:避免 token 爆炸,且模型只看 top-3,结论稳定
  • 六大主流 Coding Agent 一键安装:用 vercel-labs/skills 的 npx 一行通吃 Claude Code / Codex / Cursor / Gemini CLI / OpenCode / GitHub Copilot
  • 完整证据链可追溯:每个结论都标注产出它的脚本命令和中间文件,方便审计与复现
  • OSINT + GeoGuessr 双圈层共振:同时切入地理情报与游戏玩家两个高频场景

使用方法

最快安装(推荐):

npx skills add Oldcircle/geo-sleuth -g 
  -a claude-code -a codex -a cursor 
  -a gemini-cli -a opencode -a github-copilot -y

手动安装:

git clone https://github.com/Oldcircle/geo-sleuth
mkdir -p ~/.agents/skills ~/.claude/skills
cp -r geo-sleuth/skills/geo-sleuth ~/.agents/skills/      # Codex/Cursor/Gemini CLI/OpenCode/Copilot
ln -s ~/.agents/skills/geo-sleuth ~/.claude/skills/geo-sleuth   # Claude Code

最小调用:

把任意 JPG/PNG 拖给 Agent,对它说:

find where this photo was taken

Agent 会自动读 SKILL.md → 跑流水线 → 返回坐标、误差半径、卫星证据图与镜头朝向。完整一次运行约 72 分钟(其中约一半等待计算)。

使用场景与人群

  • OSINT 研究员 / 调查记者:对无 EXIF 现场照做地理溯源、事实核查
  • 旅行爱好者 / GeoGuessr 玩家:复盘游戏线索、把游戏技巧自动化
  • 测绘 / 城市规划从业者:从历史照片反推基础设施演进(桥墩密度、道路网)
  • AI Agent 工程师:参考”scripts-rank / model-judges”分层模式设计自己的多模态 skill
  • 学术研究者:作为图像地理定位基线 benchmark 的开源对照实现

输入与输出案例

案例 1:纯风景照(仓库官方示例)

输入:

[一张 EXIF 已剥离的手机照],画面左侧是白色烤箱边缘、远处一座长高架桥、右侧约 3 km 处有一座陡山、田里稻已收割但草仍绿。图中无任何字符。

输出(节选):

  • 拍摄点经纬度:精确到 ±2 m(坐标随照片不同)
  • 镜头朝向:与高架桥走向大致垂直
  • 候选筛选路径:27,335 → 171 → 14,372 → 22 → 3 → 1 → ±2m
  • 证据:一张带红色高分框的卫星图(evidence.py 产物)
  • 置信度:分级输出(High/Medium/Low)

案例 2:日间街道照(有建筑轮廓)

输入:

一张上海外滩的白天街景照,未含 GPS。

输出:

  • Lakeereport 给出坐标 ±30m、镜头朝东南
  • 关键线索:建筑天际线轮廓与上海 OSM 数据匹配、黄浦江走向与 OpenStreetMap 几何一致
  • 证据:一张带标注线的卫星对照图(CLIP-ranked satellite tile)
  • 置信度:High

GitHub: https://github.com/Oldcircle/geo-sleuth

评论区

0 条评论

登录后可评论。

Skill超级捕获手 974 阅读