# Question Decomposition

## Original Question
Assess solution_draft05.md for weak points, security vulnerabilities, and performance bottlenecks. Produce an improved solution_draft06.md.

## Active Mode
Mode B: Solution Assessment. Draft05 is the 5th iteration. Previous iterations addressed: GTSAM factor types, VRAM budget, rotation handling, homography disambiguation, DINOv2 coarse retrieval, concurrency model, session tokens, SSE stability, satellite matching (LiteSAM introduction), LiteSAM maturity risks, EfficientLoFTR fallback, PyTorch CVE mitigation, model weight verification, iSAM2 error handling, imagery staleness awareness, graceful degradation.

## Summary of Problem Context
GPS-denied UAV visual navigation system. Determine GPS coordinates of consecutive aerial photos using visual odometry + satellite geo-referencing + factor graph optimization. Eastern Ukraine region, airplane-type UAVs, camera pointing down (not autostabilized), no IMU, up to 3000 photos per flight, RTX 2060 GPU constraint (6GB VRAM, 16GB RAM).

## Question Type Classification
- **Primary**: Problem Diagnosis (identify weak points in existing solution)
- **Secondary**: Decision Support (evaluate alternatives for each weak point)

## Research Subject Boundary Definition
- **Population**: GPS-denied UAV navigation systems for fixed-wing aircraft
- **Geography**: Eastern/Southern Ukraine (left of Dnipro River)
- **Timeframe**: Current state-of-the-art (2024-2026)
- **Level**: Production-ready desktop system with RTX 2060 GPU

## Decomposed Sub-Questions

### SQ-1: Camera Tilt Impact on GSD Estimation
Draft05 computes GSD assuming nadir (straight-down) camera. Restrictions state camera is "not autostabilized" — plane banking/pitch tilts the camera. What is the GSD error from uncorrected tilt at typical UAV flight parameters? How to compensate without IMU?

### SQ-2: Lens Distortion Correction Gap
Draft05 mentions "rectify" in preprocessing but doesn't explicitly apply undistortion using camera intrinsics. Camera parameters are known. How much does lens distortion affect feature matching accuracy, especially at image edges? Should undistortion be an explicit step?

### SQ-3: DINOv2 Retrieval Aggregation Strategy
Draft05 uses spatial average pooling of DINOv2 patch tokens. SALAD (cited in references but unused) and GeM pooling are proven better aggregation methods. What is the retrieval recall improvement from better aggregation? Is it worth the complexity?

### SQ-4: Single-GPU Concurrency Model
Draft05 says satellite matching "overlaps" with VO processing. But both use the same GPU. PyTorch GPU ops aren't truly concurrent on a single GPU. How does the pipeline actually schedule GPU work? What is the real throughput when VO and satellite matching compete for GPU?

### SQ-5: Memory Management for 3000-Image Flights
No explicit memory management mentioned. SuperPoint features, factor graph variables, satellite tile cache, DINOv2 embeddings all grow. What is the projected RAM usage for a 3000-image flight? Where are the memory bottlenecks?

### SQ-6: DEM Usage vs Restriction "Terrain Can Be Neglected"
Restrictions say "The height of the terrain can be neglected." But draft05 uses Copernicus DEM for terrain-corrected GSD. Is this contradictory? Under what conditions does DEM correction matter for GSD accuracy?

### SQ-7: Multi-Scale Satellite Matching
UAV altitude varies up to 1km. Satellite tiles at zoom 18 (~0.4m/px) may not match well when UAV GSD is significantly different. Should multi-scale matching be added?

### SQ-8: Image Sequence Validation
System assumes consecutive file naming matches temporal order. What happens if file ordering is wrong? Should the system validate temporal ordering?

### SQ-9: ENU Approximation Error for Long Flights
ENU coordinates centered on starting GPS. For flights >10km, linear approximation introduces error. What is the magnitude? Should UTM be used instead?

### SQ-10: Security — New CVEs and Dependency Vulnerabilities (2026)
Check for new CVEs in FastAPI, uvicorn, GTSAM, ONNX Runtime, aiohttp since draft05. Any new attack vectors?

## Timeliness Sensitivity Assessment

- **Research Topic**: GPS-denied UAV visual navigation — assessment of existing solution draft
- **Sensitivity Level**: 🟠 High
- **Rationale**: LiteSAM (Oct 2025), DINOv2 ecosystem evolving, PyTorch security patches ongoing, satellite imagery APIs changing. Core algorithms (homography, GTSAM) are stable.
- **Source Time Window**: 12 months (prioritize 2025-2026 sources)
- **Priority official sources to consult**:
  1. OpenCV camera calibration documentation
  2. DINOv2 official docs and aggregation methods
  3. PyTorch CUDA concurrency documentation
  4. GTSAM memory management docs
  5. Copernicus DEM specification
- **Key version information to verify**:
  - PyTorch: ≥2.10.0 status
  - FastAPI: latest CVEs
  - ONNX Runtime: latest version
  - GTSAM: v4.2 stability
