# Acceptance Test: Image Registration Rate >95% - Baseline ## Summary Validate AC-9 requirement that ≥95% of images successfully register (find enough matching features for pose estimation) under normal flight conditions. ## Linked Acceptance Criteria **AC-9**: Image Registration Rate > 95%. The system can find enough matching features to confidently calculate the camera's 6-DoF pose (position and orientation) and "stitch" that image into the final trajectory. ## Preconditions - ASTRAL-Next system operational - Normal flight conditions (no extreme weather, lighting, or terrain) - Multi-layer architecture (L1, L2, L3) active - Registration success criteria defined ## Registration Success Definition An image is **successfully registered** if: 1. L1 sequential tracking succeeds (≥50 inlier matches), OR 2. L2 global retrieval succeeds (correct satellite tile, confidence >0.6), OR 3. L3 metric refinement succeeds (cross-view match confidence >0.5) An image **fails registration** only if ALL three layers fail. ## Test Data - **Primary Dataset**: AD000001-AD000030 (baseline segment, normal conditions) - **Secondary Dataset**: AD000001-AD000060 (full flight, includes challenges) - **Expected**: ≥95% registration rate for both datasets ## Test Steps ### Step 1: Process Baseline Segment (Normal Conditions) **Action**: Process AD000001-AD000030, track registration outcomes **Expected Result**: ``` Total images: 30 L1 successful: 28 (93.3%) L2 successful (L1 failed): 2 (6.7%) L3 successful (L1+L2 failed): 0 (0%) Total registered: 30 (100%) Registration rate: 100% > 95% (AC-9 PASS) Status: BASELINE_EXCELLENT ``` ### Step 2: Analyze L1 Registration Performance **Action**: Examine L1 sequential tracking success rate **Expected Result**: ``` L1 attempts: 29 (frame-to-frame pairs) L1 successes: 28 L1 failures: 1 L1 success rate: 96.6% Failure case: AD000003→004 (202.2m jump, expected) L1 failure handling: L2 activated successfully Status: L1_BASELINE_PASS ``` ### Step 3: Analyze L2 Fallback Performance **Action**: Examine L2 global retrieval when L1 fails **Expected Result**: ``` L2 activations: 2 (L1 failure triggers) L2 successes: 2 L2 failures: 0 L2 success rate: 100% Cases: AD000004 (after 202m jump), AD000033 (after 220m jump) L2 contribution: Prevented 2 registration failures Status: L2_FALLBACK_WORKING ``` ### Step 4: Process Full Flight with Challenges **Action**: Process AD000001-AD000060, including sharp turns and outliers **Expected Result**: ``` Total images: 60 L1 successful: 53 (88.3%) L2 successful (L1 failed): 6 (10%) L3 successful (L1+L2 failed): 0 (0%) Registration failures: 1 (1.7%) Registration rate: 98.3% > 95% (AC-9 PASS) Status: FULL_FLIGHT_PASS ``` ### Step 5: Identify and Analyze Registration Failures **Action**: Investigate any frames that failed all three registration layers **Expected Result**: ``` Failed frame: AD000048 (hypothetical example) L1 failure: 268.6m jump from AD000047, overlap ~0% L2 failure: Satellite data outdated, wrong tile retrieved L3 failure: Cross-view match confidence 0.3 (below 0.5 threshold) Outcome: User intervention requested (AC-6 human-in-the-loop) Acceptable: <5% failure rate allows for extremely difficult cases Status: FAILURE_WITHIN_TOLERANCE ``` ### Step 6: Calculate Final Registration Statistics **Action**: Compute comprehensive registration metrics **Expected Result**: ``` Dataset: AD000001-060 (60 images) Successfully registered: 59 images Registration failures: 1 image Registration rate: 98.3% AC-9 Requirement: >95% Actual Performance: 98.3% Margin: +3.3 percentage points Status: AC-9 PASS with margin ``` ## Pass/Fail Criteria **PASS if**: - Registration rate ≥95% on baseline dataset (AD000001-030) - Registration rate ≥95% on full flight dataset (AD000001-060) - Multi-layer fallback working (L2 activates when L1 fails) - Registration failures <5% (allowing for extremely difficult frames) **FAIL if**: - Registration rate <95% on either dataset - L2 fallback not activating when L1 fails - Registration failures >5% - System crashes on unregistered frames (should handle gracefully) ## Layer Contribution Analysis ### Layer 1 (Sequential Tracking) - **Role**: Primary registration method (fastest) - **Success Rate**: 85-95% (normal overlap conditions) - **Failure Cases**: Sharp turns, low overlap ### Layer 2 (Global Retrieval) - **Role**: Fallback for L1 failures (slower but robust) - **Success Rate**: 85-95% when activated - **Failure Cases**: Stale satellite data, ambiguous locations ### Layer 3 (Metric Refinement) - **Role**: Precision improvement, not primary registration - **Success Rate**: 80-90% when attempted - **Failure Cases**: Large view angle difference, seasonal mismatch ### Multi-Layer Defense ``` Registration Success = L1 OR L2 OR L3 P(success) = 1 - P(all fail) P(success) = 1 - (0.10 × 0.10 × 0.15) P(success) = 1 - 0.0015 P(success) = 99.85% > 95% (AC-9) ``` ## Registration Failure Handling When registration fails for a frame: 1. System flags frame as UNREGISTERED 2. Continues processing subsequent frames 3. Attempts to re-register after later frames provide context 4. If still fails after 3 attempts, requests user input (AC-6) 5. Does not crash or halt processing ## Quality Metrics Beyond Registration Rate - **Mean inlier count**: >100 matches (L1 successful cases) - **Mean confidence**: >0.8 (registered frames) - **Pose covariance**: <50m uncertainty (registered frames) - **Trajectory continuity**: No gaps >3 frames ## Notes - AC-9 threshold of 95% balances operational utility with real-world challenges - 5% failure allowance (~3 frames per 60) accommodates extreme cases - Multi-layer architecture critical for achieving high registration rate - "Atlas" multi-map approach counts disconnected fragments as registered - Registration rate > positioning accuracy (AC-1/AC-2) requirements