Oldcircle/geo-sleuth

An agent skill that finds where a photo was taken — OpenStreetMap geometry, elevation skylines, satellite imagery and street view — and shows its work. Works with Claude Code, Codex, Cursor, Gemini CLI, OpenCode and GitHub Copilot.

它解决的问题

当照片中没有文字、标志或地标时,通常很难确定照片的拍摄地点。geo-sleuth 通过让 AI 代理利用几何和开放地理数据而非视觉识别来解决这个问题。它接受一张照片和一句类似“找出这张照片在哪里拍摄”的句子,并返回相机位置、朝向、卫星证据图像以及置信半径。

工作原理

geo-sleuth 打包为标准代理技能:一个 SKILL.md 文件加上纯 Python 脚本。代理读取 SKILL.md,运行脚本,并解释结果。工作流围绕 20 个单一用途的脚本构建,用于搜索和排序候选。例如:

  • 它读取照片中的几何线索:桥墩间距成为距离标尺,阴影成为方位角,山脊线成为指纹。
  • 它从 OpenStreetMap(例如铁路桥、电线、街道树木)和高程模型获取数据。
  • 它扫描区域,从候选点的高程数据计算 360° 地平线,并过滤它们。
  • 它将照片中的天际线与计算出的地平线进行拟合,求解相机横滚角,并将最佳候选叠加回照片上。
  • 脚本对候选进行排序;模型(代理)在排名靠前的候选中进行判断。
  • 它生成带有相机位置、视野和相关特征的证据图像,以及分级置信度。

它适用于任何能读取 SKILL.md 并运行 shell 命令的代理:Claude Code、Codex、Cursor、Gemini CLI、OpenCode、GitHub Copilot 等。README 展示了三个案例研究(稻田和高架桥、沙漠天际线、樱花树街道),精度分别达到 2 米、100 米和 3 米以内。

适用人群

面向希望赋予 AI 代理从环境几何中定位照片能力的开发者和研究人员。它适用于数字取证、历史照片分析、旅行记录,或任何照片缺少 GPS 元数据但包含足够物理线索的应用。它也适用于构建需要在多个代理平台上运行的代理工具的人。

亮点

  • 一张照片,一句话:界面简单到只需说“找出这张照片在哪里拍摄”——无需进一步工程。
  • 无需可读文本:不需要车牌、标志或地标;几何(桥墩间距、阴影、山脊线)承载搜索。
  • 几何而非猜测:每个线索都转化为可测量的约束(通过桥墩间距的距离标尺、通过阴影的方位角、通过山脊线的指纹)。
  • 脚本排序,模型判断:20 个单一用途脚本搜索、评分和排序;AI 代理在排名靠前的候选中选择,提高可靠性。
  • 每个结论都指向文件:每个结论都指明命令和输出文件,使过程透明且可验证。
  • 跨代理兼容:标准代理技能适用于 Claude Code、Codex、Cursor、Gemini CLI、OpenCode、GitHub Copilot 等。
  • 答案带有误差半径:返回坐标加减半径、相机朝向、证据图像和分级置信度。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目