Keep Your Friends Close, and the Right Neighbours Closer: Disaster-Conditioned Kernel-Regularized Graph Attention for Building Damage Classification
Organizations: Computer Vision for Smart Structure (CViSS) Lab, University of Waterloo, Waterloo, Ontario, Canada
Abstract
Disaster damage is spatial: buildings rarely fail in isolation. Yet using spatial context for damage classification remains surprisingly underexplored, and many pipelines still rely primarily on per-building appearance cues even when the dominant uncertainty is spatially structured. Complicating matters, the right neighbourhood is not the same across events. Floods, hurricanes, and wildfires can exhibit very different clustering behaviour, making spatial reasoning valuable but easy to misuse - naive context aggregation can improve visual coherence while oversmoothing boundaries or propagating structured errors. We study this tension on xBD (the dataset used in the xView2 challenge) in a controlled post-localization, classification-only setup: each building is represented by a pre/post combined (PPC) patch cropped from the provided polygons, and spatial context is modelled with GPS-derived building graphs. Our approach keeps local evidence "close" by preserving strong spatial relationships in disaster damage patterns, while bringing only the right neighbours "closer" through a disaster-type-conditioned graph model that injects a learnable multi-scale spatial kernel prior into attention, allowing the effective neighbourhood scale to adapt across disaster types rather than being learned as a single global smoothing rule. To discourage coherence-by-smoothing, we add a residual de-correlation loss that penalizes positive Moran's~I in prediction residuals. We evaluate the method under event and dataset shift with a leave-one-event-out (LOEO) protocol on xBD and cross-dataset transfer from xBD to Ida-BD. The model improves macro-F1 and substantially reduces residual spatial autocorrelation under zero-shot event shift, indicating better use of spatial context rather than naive smoothing and enabling more reliable transfer to unseen events within known disaster types.
Figures & tables
| Rollup | Tiles (Train/Test) | Moran’s I mean std (Train/Test) | Median Moran’s I (Train/Test) | Frac. (Train/Test) | Buildings/tile (Train/Test) |
| earthquake | 121 / 38 | 0.168 0.222 / 0.356 0.439 | 0.013 / 0.291 | 0.423 / 0.750 | 324.4 / 366.6 |
| flood | 898 / 80 | 0.364 0.482 / 0.195 0.522 | 0.339 / 0.071 | 0.453 / 0.090 | 75.6 / 46.7 |
| hurricane | 1219 / 387 | 0.306 0.601 / 0.302 0.589 | 0.226 / 0.203 | 0.233 / 0.260 | 72.5 / 75.0 |
| tornado | 719 / 93 | 0.437 0.317 / 0.320 0.533 | 0.313 / 0.249 | 0.376 / 0.433 | 93.2 / 89.5 |
| tsunami | 261 / 42 | 0.490 0.407 / 0.484 0.507 | 0.511 / 0.568 | 0.585 / 0.625 | 210.9 / 256.0 |
| volcano | 309 / 75 | 0.593 0.369 / 0.398 0.481 | 0.339 / 0.340 | 0.273 / 0.129 | 23.2 / 15.0 |
| Method | Macro-F1 | Per-class F1 (U, Mi, Ma, D) |
| xView2 official solution #1 † | 0.80446 | (0.92344, 0.64445, 0.78591, 0.86403) |
| Patch-only encoder | 0.82205 | (0.92880, 0.67320, 0.81520, 0.87100) |
| Vanilla GAT on patch encoder | 0.84102 | (0.93160, 0.70050, 0.84030, 0.89168) |
| Ours (kernel + disaster + residual) | 0.87288 | (0.93400, 0.76200, 0.89200, 0.90352) |
| Variant | Kernel | Disaster | Residual | LOEO | Per-class F1 | Residual | Severity |
| prior | cond. | loss | Macro-F1 | (No, Mi, Ma, D) | Moran’s I | MAE | |
| Patch-only (xView2 1st-place-style Res50 backend) | 0.433 | (0.61, 0.37, 0.41, 0.34) | 0.248 | 0.562 | |||
| Vanilla GAT (kNN graph baseline) | 0.453 | (0.57, 0.40, 0.44, 0.40) | 0.256 | 0.541 | |||
| + Kernel prior only | 0.473 | (0.60, 0.42, 0.46, 0.41) | 0.182 | 0.507 | |||
| + Disaster conditioning only | 0.460 | (0.59, 0.41, 0.45, 0.39) | 0.205 | 0.521 | |||
| + Residual de-correlation only | 0.450 | (0.58, 0.39, 0.44, 0.39) | 0.139 | 0.529 |
| Graph sensitivity | Input sensitivity | ||||
| Macro-F1 | Moran’s I | Setting | Macro-F1 | Mi/Ma F1 | |
| 8 | 0.498 | 0.081 | Post-only | 0.828 | 0.762 |
| 16 | 0.503 | 0.079 | Pre+Post (PPC) | 0.873 | 0.827 |
| 32 | 0.500 | 0.084 | |||
| Method | Pipeline / notes | Token | Macro-F1 | Per-class F1 (No, Mi, Ma, D) |
| Siam-UNet [ 13 ] | D merged into Ma † | – | 0.458 | (0.916, 0.208, 0.251, –) |
| xView2 winner [ 21 ] | per-class weighted F1 | – | 0.268 | (0.667, 0.211, 0.154, 0.041) |
| Patch-only (ours) | patch cls (polygons) | ✓ | 0.275 | (0.670, 0.190, 0.160, 0.080) |
| Vanilla GAT (ours) | patch cls + graph | ✓ | 0.295 | (0.690, 0.220, 0.180, 0.090) |
| Ours (Kernel + Disaster + Residual) | patch cls + graph | ✓ | 0.335 | (0.710, 0.270, 0.230, 0.130) |
| Method | earthquake | flood | hurricane | tornado | tsunami | volcano | wildfire |
| Patch-only | .470/.160 | .397/.313 | .438/.263 | .424/.368 | .415/.427 | .382/.359 | .505/.260 |
| Vanilla GAT | .482/.174 | .416/.335 | .459/.283 | .442/.384 | .429/.437 | .401/.364 | .542/.283 |
| Ours | .548/.134 | .474/.212 | .517/.198 | .502/.294 | .488/.301 | .445/.320 | .547/.204 |
Disaster Damage Assessment
Disaster damage assessment uses imagery and geospatial data to locate, classify, and quantify damage for emergency response and recovery.
See all 49 papers