PS-GNN: Graph Neural Networks for Persistent Scatterer Selection
Persistent-scatterer selection as node classification on a spatial graph. F1 0.82 vs 0.69 for StaMPS-style selection on hard test scenes, and 0.97 recall on borderline scatterers.

From crop types and illegal mining to building footprints and plant counts, I design deep-learning systems for satellite, aerial and drone imagery, and I judge them by how they perform in places they have never seen.
Crop-type maps, crop condition and plant counting for smallholder and commercial farms.
Detecting illegal mining, deforestation and land-cover change under persistent cloud.
Land-cover, building and change maps that stand up to scrutiny.
Diagnosing domain shift, label problems and leakage in existing models.
Which map, at what resolution, with what error is acceptable, and who will act on it. That defines the classes, the metric and the validation design.
Check sources, label noise and class balance; mining scars, for example, covered under 4% of the Atewa landscape. Where labels are scarce, bootstrap them from OpenStreetMap, building footprints, ESA WorldCover, Dynamic World, SAM or UAV imagery.
Train a ResNet-50 or U-Net baseline before reaching for foundation models. A complex model must beat a simple one on the same spatial split.
SAR–optical fusion for cloud-prone regions, multi-temporal stacks for crops, EO foundation models (Clay, Prithvi-EO-2.0, DINOv3) where they add value, and imbalance-aware losses such as focal, Tversky and OHEM with hard negative mining.
Spatial-block or agro-ecological-zone cross-validation, held-out tiles and field re-validation. Random pixel splits overstate accuracy because neighbouring pixels are nearly identical.
Export to ONNX, serve through FastAPI with batch and WebSocket inference, and monitor drift, with Grad-CAM, SHAP and uncertainty estimates to explain predictions.
The crop-disease model scored 95.8% in its training domain but close to zero on smallholder farms; geographically stratified data diversification and field re-validation resolved it.
Persistent-scatterer selection as node classification on a spatial graph. F1 0.82 vs 0.69 for StaMPS-style selection on hard test scenes, and 0.97 recall on borderline scatterers.
A network that predicts the integer 2π cycle count at every pixel, so it can never contradict the measured phase. 99.1% of pixels exact on easy test scenes, 96.6% on moderate.
Dual-stream U-Net + YOLOv8 fusing Sentinel-1 and Sentinel-2, trained on UAV-derived labels. Recall 82%, F1 0.79 on held-out tiles.
Clay fine-tuned on multi-temporal Sentinel-2 stacks for 10 m crop types, benchmarked against ResNet-50; F1 above 0.70 under spatial cross-validation.
Every reported score comes from areas the model did not train on.
Domain shift, leakage and label noise are tested for directly, because that is where field deployments break.
Ensemble and Bayesian uncertainty flag the predictions that need a human look.