Files
gps-denied-desktop/_docs/00_research/draft05_assessment/05_validation_log.md
T

4.4 KiB
Raw Blame History

Validation Log

Validation Scenario

Process a 1500-image flight over eastern Ukraine covering ~150km, with 3 sharp turns (segments), using the updated draft06 architecture.

Expected Based on Conclusions

WP-1 (Undistortion)

With cv2.undistort() applied: feature positions at image edges corrected by up to 10-20px (depending on lens). Homography estimation uses geometrically correct point positions. Expected: improved MRE (Mean Reprojection Error) by 0.1-0.3px, especially for wide-angle cameras.

WP-2 (Tilt-corrected GSD)

During 3 sharp turns with ~20° bank angle: GSD error was 6.4%. With correction (GSD/cos(20°)): error eliminated. Estimated position improvement: up to 6.4% of displacement distance. For 100m inter-frame distance: up to 6.4m correction per turn frame.

WP-3 (GeM pooling)

With GeM instead of average pooling: expect improved satellite tile retrieval. If current retrieval success rate is ~60%, GeM may push to ~70-75%. Fewer frames fall through to SIFT fallback.

WP-4 (Sequential GPU)

Honest throughput: VO ~200ms + satellite ~250ms = ~450ms sequential GPU per frame. Still well under 5s budget. Position estimate (VO only) delivered in ~200ms. Satellite correction arrives ~250ms later. User sees position immediately, refined shortly after.

WP-5-9 (Security)

PyJWT replaces python-jose — no behavioral change in JWT handling. Pillow 12.1.1+, aiohttp 3.13.3+, h11 0.16.0+, ONNX Runtime 1.24.1+ — all known CVEs mitigated.

WP-10 (UTM coordinates)

150km flight: UTM stays accurate throughout. No re-centering needed. Factor graph math unchanged (still metric Pose2). WGS84 output unchanged.

WP-11 (Rolling window)

1500 images: SuperPoint feature memory constant at ~2MB (only current frame). RAM usage: ~2GB estimated total (satellite tiles + DINOv2 embeddings + factor graph + working memory). Well under 16GB budget.

Actual Validation Results

Processing time check

  • Per frame: VO 200ms + satellite 250ms = 450ms → Under 5s
  • Total flight: 1500 × 450ms = 675s = ~11 minutes → reasonable

Memory check

  • SuperPoint features: ~2MB (rolling window)
  • Factor graph (1500 nodes): ~36KB
  • Satellite tiles (2000 × 256×256×3): ~393MB
  • DINOv2 embeddings (2000 × 384 × 4): ~3MB
  • GTSAM internal structures: ~10MB (estimated)
  • Total RAM: ~500MB working + tile cache → well under 16GB
  • VRAM: ~1.6GB peak → well under 6GB

Accuracy check

  • Tilt correction: applies during turns only, where it matters most
  • Undistortion: corrects edge features, improves homography
  • UTM: eliminates coordinate error for long flights
  • GeM retrieval: more correct tiles → more satellite anchors → less drift

Counterexamples

Tilt correction at segment start

At segment start, no homography is available — cannot estimate tilt. First frame uses nadir GSD assumption. If the UAV is still in a turn when a segment starts (sharp turn triggered segment break), the first frame's GSD estimate may be wrong. Mitigation: this is a single frame; satellite matching will provide absolute position regardless of GSD.

UTM zone boundary

If flight crosses a UTM zone boundary (~every 6° longitude), coordinates have a discontinuity. At Ukraine's longitude (~30-40°E), zones are 30-36°E (Zone 36) and 36-42°E (Zone 37). A flight crossing 36°E would need zone handling. Mitigation: use Extended UTM (pyproj supports this) or pick the zone containing the majority of the flight. For our geographic restriction (east/south Ukraine), most flights stay within a single zone.

GeM vs SALAD on UAV-satellite

GeM was benchmarked on same-view VPR, not cross-view UAV-satellite retrieval. Cross-view performance may differ. Mitigation: GeM is still better than average pooling in all cases. If insufficient, add SALAD training.

Review Checklist

  • Draft conclusions consistent with fact cards
  • No important dimensions missed
  • No over-extrapolation
  • Conclusions actionable/verifiable
  • Security updates traceable to CVE IDs
  • Memory budget calculated and within limits
  • Processing time within 5s budget
  • Cross-view retrieval improvement from GeM needs empirical validation

Conclusions Requiring Revision

None — all conclusions are self-consistent and within AC boundaries. GeM retrieval improvement on UAV-satellite is the lowest-confidence conclusion but is a no-risk change (zero overhead, always ≥ average pooling performance).