SatForensics: DINOv2 + Linear Probe for Satellite Image Manipulation Detection

This repository contains the trained linear probe, feature scaler, and cached features for the SatForensics project β€” an MSc dissertation project at Newcastle University exploring foundation models as forensic priors for detecting AI-generated manipulations in satellite imagery.

What's in this repo

models/

  • dinov2_linear_probe.pkl β€” Trained scikit-learn LogisticRegression
  • dinov2_feature_scaler.pkl β€” Fitted StandardScaler (apply BEFORE the probe)

features/

  • dinov2_features.npz β€” Cached DINOv2 features for the training/test set
    • features: shape (468480, 768), float32 (1,830 images Γ— 256 patches)
    • labels: shape (468480,), int64 (0 = authentic, 1 = manipulated)
    • image_ids: shape (468480,), int64 (maps each patch to its source image)

results/

  • rsfake_fake_per_image_scores.csv β€” Per-image scores on RSFAKE-1M rsinpaint (n=2000)
  • rsfake_fake_diffusion_sat_per_image_scores.csv β€” Same for DiffusionSat (n=2000)
  • rsfake_scores_and_stats*.csv β€” Scores joined with brightness/std/edge_density stats
  • rsfake_heatmaps_*_qualitative.png β€” 6-sample heatmap visualisations
  • rsfake_confound_scatter_*.png β€” Score vs image-statistics scatter plots

Training setup

  • Backbone: DINOv2-Base ViT (facebookresearch/dinov2_vitb14), frozen
  • Input preprocessing: Resize to 224Γ—224 (bicubic), ImageNet normalisation
  • Patch grid: 16Γ—16 = 256 patches per image (14px patches)
  • Training data: Airbus satellite imagery + CLIP-guided Stable Diffusion 2 + ControlNet inpainting (Chapman et al. 2025 pipeline)
  • Split: by-image, seed=42, 70/15/15 β†’ 1,281 train / 274 val / 275 test
  • Probe: scikit-learn LogisticRegression
    • class_weight='balanced', solver='lbfgs', max_iter=1000, random_state=42

Headline results

Metric Value
Pooled test patch AUROC (Airbus, n=70,400 test patches) 0.9593
RSFAKE rsinpaint top-10 mean (n=2,000) 0.84
RSFAKE rsinpaint % above 0.7 (max) 95.7%
RSFAKE DiffusionSat top-10 mean (n=2,000) 0.86
RSFAKE DiffusionSat % above 0.7 (max) 97.2%
Confound checks (brightness/std/edge_density) All |r| ≀ 0.21

Related work

  • Chapman et al. (2025) β€” Geospatially-Aware Multi-Modal Fusion for Satellite Image Manipulation Detection. VCIP 2025.
  • Oquab et al. (2023) β€” DINOv2: Learning Robust Visual Features without Supervision. arXiv:2304.07193.

Project

This work is part of an MSc dissertation at Newcastle University (Project 22: SatForensics), supervised by Dr. Deepayan Bhowmik.

The cross-dataset evaluation notebook is at: https://github.com/Om-Ravindra-Patil/satforensics-crossdataset

License

The trained probe and cached features are released for research use only. The underlying training imagery is licensed separately by Airbus.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Paper for satforensics-newcastle/satforensics-dinov2-probe