OSINT Geolocation Engine
Multi-signal pipeline that estimates the geographic origin of a photograph from EXIF metadata and visual content. When EXIF GPS is present and consistent with terrain, the engine returns coordinates directly. When metadata has been stripped or spoofed, independent visual signals (signage, scene type, shadow geometry, road topology, satellite tile correlation) get fused into a ranked candidate list.
- Python 3.10+, pytest
- exifread, Pillow, requests
- FastAPI (orchestrator scaffolding)
- Open-Elevation (terrain validation)
- HuggingFace transformers (CLIP)
- EasyOCR
- OSMnx + NetworkX
- OpenCV (tile correlation)
- Folium (output visualization)
Heuristic confidence. Confidence values are rule-based, not calibrated against a labeled benchmark. Treat them as ordinal rankings.
EXIF is editable. The altitude check catches one specific spoofing pattern. A spoofer who picks plausible coordinates AND a plausible altitude will still get 1.00 from intake.
External API dependency. Altitude validation depends on Open-Elevation. When unreachable, the check passes through silently — a spoofed altitude could slip through during an outage.
No ground-truth eval yet. Visual modules will need benchmarking against a labeled image dataset. Accuracy claims are speculative until then.