J0ELAMENACE/osint-geolocate

GitHub: J0ELAMENACE/osint-geolocate

一款基于多模型流水线的OSINT图像地理定位CLI工具,通过EXIF、AI视觉分析、网络搜索和太阳计算等手段综合推断照片拍摄地点。

Stars: 0 | Forks: 0

# osint-geolocate OSINT CLI 工具,通过多模型流水线识别图像的地理位置:EXIF、Picarta AI、视觉 LLM(3 次扫描)、Nominatim、网络搜索和太阳计算。 它是 `osint-*` 套件的一部分。 ## 输出示例 ``` ╔══════════════════════════════════════════════════════════════════╗ ║ OSINT-GEOLOCATE v3 photo.jpg ║ ║ OCR:gemma4:31b-cloud GEO:gemma4:31b-cloud RAIS:gpt-oss:20b ║ ╚══════════════════════════════════════════════════════════════════╝ [EXIF ] Aucune donnee GPS [PICARTA ] Top 1 : Boulogne-Billancourt, France (93%) [PICARTA ] Coords : 48.83179, 2.25316 [OCR ] Texte : 005300560052 // 14.1X [OCR ] Langue : French [GEO ] Trottoir : Reddish-brown asphalt [GEO ] Estimation: Boulogne-Billancourt, France [FINAL ] Confiance : HIGH [FINAL ] Preuves : red pavement, French text, Picarta top 1 -> Boulogne-Billancourt, France 48.83179 N, 2.25316 E [MAPS ] https://maps.google.com/?q=48.831790,2.253160 [OSM ] https://www.openstreetmap.org/?mlat=48.831790&mlon=2.253160 [STREET VIEW] https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=48.831790,2.253160 [YANDEX ] https://yandex.com/images/search?rpt=imageview ``` ## 安装说明 ``` git clone https://github.com/J0ELAMENACE/osint-geolocate cd osint-geolocate sudo bash install.sh ``` ### 手动安装(不使用 install.sh) ``` pip install -r requirements.txt chmod +x osint-geolocate ./osint-geolocate photo.jpg ``` ## 前置条件 - Linux(已在 Kali 2024 上测试) - Python 3.10+ - 已登录账户的 [Ollama](https://ollama.com) - 免费 Picarta API 密钥(可选):[picarta.ai](https://picarta.ai) ### Ollama 模型 ``` ollama pull gemma4:31b-cloud # vision + OCR + geo (gratuit) ollama pull gpt-oss:20b-cloud # raisonnement (gratuit) ``` ### 环境变量 ``` export PICARTA_API_KEY="votre_cle" # gratuit sur picarta.ai ``` ## 用法 Picarta 密钥**仅**通过环境变量 `PICARTA_API_KEY` 提供(见上文)。CLI 中没有提供该密钥的选项,以防止其出现在 shell 历史记录或进程列表中。 ``` # 标准模式(如果定义了 PICARTA_API_KEY 则使用该 key) osint-geolocate photo.jpg # 通过 inline 环境变量 PICARTA_API_KEY=xxx osint-geolocate photo.jpg # 国家提示(影响 Picarta + 网络搜索,默认无影响) osint-geolocate photo.jpg --country France # Options osint-geolocate photo.jpg --no-solar # sans calcul solaire osint-geolocate photo.jpg --no-search # sans recherche DDG osint-geolocate photo.jpg --verbose # logs détaillés (debug) # 强制 models osint-geolocate photo.jpg \ --ocr-model gemma4:31b-cloud \ --geo-model gemma4:31b-cloud \ --reas-model gpt-oss:20b-cloud ``` ## 流水线 ``` photo.jpg │ ├─[EXIF] GPS present ? → résultat immédiat │ ├─[PICARTA] API spécialisée géolocalisation image │ top 5 candidats + coords + confiance │ relance avec hint pays si --country fourni et scores faibles │ ├─[PASSE OCR] gemma4:31b-cloud │ lecture texte, codes, panneaux, langue │ ├─[PASSE GEO] gemma4:31b-cloud │ landmarks, architecture, infrastructure, │ trottoir, mobilier urbain, drapeaux │ ├─[DDG] Recherche web sur texte visible │ ├─[NOMINATIM] Geocodage OSM │ ├─[PASSE RAIS] gpt-oss:20b-cloud │ cross-check OCR + GEO + Picarta + Web │ positions candidates avec confiance │ ├─[SOLAR] Validation ombre/soleil (si timestamp EXIF) │ └─[OUTPUT] Position + Google Maps + OSM + Street View + Yandex ``` ## 技术栈 | 组件 | 工具 | |-----------|-------| | CLI | `click` | | 输出 | `rich` | | EXIF | `Pillow` | | 太阳 | `ephem` | | AI 地理定位 | [Picarta API](https://picarta.ai) | | 视觉 / OCR / GEO | 通过 Ollama 使用 `gemma4:31b-cloud` | | 推理 | 通过 Ollama 使用 `gpt-oss:20b-cloud` | | 地理编码 | Nominatim (OSM) | | 网络搜索 | `ddgs` | ## 许可证 CC BY-NC 4.0 — 版权所有 (c) 2026 J0ELAMENACE
标签:AI风险缓解, ESC4, OSINT, Python, 图像地理定位, 无后门, 视觉大模型, 逆向工具