# XFeat vs SuperPoint+LightGlue for Visual Odometry in UAV Navigation

**Research Date**: March 2025  
**Context**: GPS-denied UAV navigation, frame-to-frame VO from consecutive aerial photos (60–80% overlap, mostly translational motion, ~100m inter-frame spacing, downward-facing camera)

---

## Executive Summary

**Finding**: The switch from XFeat to SuperPoint+LightGlue for VO in solution draft 04 appears to be an **unintentional regression**. For frame-to-frame VO with high overlap and mostly translational motion, XFeat is likely sufficient in quality while being ~10× faster. SuperPoint+LightGlue’s quality advantage is most relevant for wide-baseline and satellite-aerial matching, not for high-overlap consecutive aerial frames.

**Recommendation**: Revert VO to XFeat with built-in matcher. Keep SuperPoint+LightGlue (or LiteSAM) for satellite fine matching only.

---

## 1. XFeat Performance and Quality

### 1.1 Speed

| Setting | Time | Source | Confidence |
|--------|------|--------|------------|
| **CPU (Intel i5-1135G7)** | 27.1 FPS (sparse) / 19.2 FPS (semi-dense) at VGA | XFeat paper (CVPR 2024) | High |
| **CPU** | ~37ms per frame (sparse), ~52ms (semi-dense) | Derived from FPS | High |
| **GPU** | Not explicitly reported in paper | — | — |
| **SatLoc-Fusion (RKNN)** | 30 FPS at 640×480 (~33ms) | SatLoc-Fusion (MDPI 2025) | High |
| **Draft 03 claim** | ~15ms total (extract+match) on GPU | solution_draft03.md | Medium — no direct citation |

**Notes**:
- The paper reports CPU timings; GPU is expected to be faster.
- SatLoc-Fusion achieves 30 FPS with XFeat on a 6 TFLOPS edge device after RKNN acceleration.
- The ~15ms GPU claim in draft 03 is plausible but not directly verified in the XFeat paper.

### 1.2 Quality (Megadepth-1500)

| Method | AUC@5° | AUC@10° | AUC@20° | Acc@10° | MIR | #inliers | FPS (CPU) |
|--------|--------|---------|---------|---------|-----|----------|-----------|
| SuperPoint | 37.3 | 50.1 | 61.5 | 67.4 | 0.35 | 495 | 3.0 |
| XFeat (sparse) | 42.6 | 56.4 | 67.7 | 74.9 | 0.55 | 892 | 27.1 |
| XFeat* (semi-dense) | 50.2 | 65.4 | 77.1 | 85.1 | 0.74 | 1885 | 19.2 |
| DISK* | 55.2 | 66.8 | 75.3 | 81.3 | 0.71 | 1997 | 1.2 |

**Source**: [XFeat paper, Table 1](https://arxiv.org/html/2404.19174v1)

**Conclusion**: XFeat outperforms SuperPoint on Megadepth (sparse and semi-dense) while being ~9× faster (sparse) or ~6× faster (semi-dense). Megadepth includes wide-baseline pairs; high-overlap consecutive frames are typically easier.

### 1.3 Downward-Facing Camera / Nadir Aerial

- No direct benchmark for nadir aerial imagery.
- SatLoc-Fusion uses XFeat for VO on downward-facing UAV imagery (100–300 m altitude, DJI Mavic, 1920×1080).
- SatLoc-Fusion achieves <15 m absolute localization error and >90% trajectory coverage at >2 Hz on 6 TFLOPS edge hardware.
- XFeat is trained on Megadepth + COCO; homography estimation on HPatches is strong (illumination and viewpoint splits).

**Confidence**: Medium — SatLoc-Fusion validates XFeat for UAV VO, but not on the exact 100 m inter-frame spacing scenario.

---

## 2. SuperPoint+LightGlue Performance and Quality

### 2.1 Speed

| Component | Time | Source |
|-----------|------|--------|
| SuperPoint extraction | ~80ms GPU | solution_draft04.md, LiteSAM assessment |
| LightGlue ONNX FP16 | ~50–100ms | solution_draft04.md |
| **Total VO** | **~130–180ms** | solution_draft04.md |

### 2.2 Quality for VO

- LightGlue-based VO on KITTI: ~1% odometry error vs ~3.5–4.1% with FLANN.
- SuperVINS uses SuperPoint+LightGlue for front-end matching in visual-inertial SLAM.
- LightGlue is not rotation-invariant (GitHub issue #64).

### 2.3 High-Overlap Consecutive Frames

- High overlap (60–80%) and mostly translational motion are easier than Megadepth’s wide-baseline pairs.
- SuperPoint+LightGlue’s main strength is contextual matching and robustness to viewpoint/illumination changes.
- For near-planar, high-overlap aerial pairs, simpler matchers (e.g. MNN) often suffice.

**Conclusion**: SuperPoint+LightGlue is strong for difficult matching, but its advantage is less critical for high-overlap consecutive aerial frames.

---

## 3. SatLoc-Fusion: XFeat in Production UAV VO

**Paper**: [Towards UAV Localization in GNSS-Denied Environments: The SatLoc Dataset and a Hierarchical Adaptive Fusion Framework](https://www.mdpi.com/2072-4292/17/17/3048) (MDPI Remote Sensing, Sept 2025)

### 3.1 Architecture

- **Layer 1**: DINOv2 for aerial–satellite matching (absolute localization).
- **Layer 2**: XFeat for VO (relative pose between consecutive frames).
- **Layer 3**: Lucas–Kanade optical flow for velocity.

### 3.2 XFeat Usage

- XFeat for keypoint detection, descriptor extraction, and matching.
- Homography via DLT + RANSAC.
- Scale from relative altitude.
- Fine-tuned on UAV-VisLoc starting from public XFeat weights.

### 3.3 Results

| Metric | Value |
|--------|-------|
| Absolute localization error | <15 m |
| Trajectory coverage | >90% |
| Throughput | >2 Hz on 6 TFLOPS edge |
| XFeat inference | 30 FPS at 640×480 (RKNN) |

### 3.4 Ablation

- Without Layer 1 (satellite): MLE 27.84 m vs 14.05 m with full system.
- Layer 2 (XFeat VO) + Layer 3 (optical flow) provide fallback when satellite matching fails.

**Conclusion**: XFeat is validated for UAV VO in a published 2025 system with similar constraints (downward-facing, low altitude, edge hardware).

---

## 4. Direct Comparison: XFeat vs SuperPoint+LightGlue for VO

| Dimension | XFeat | SuperPoint+LightGlue |
|-----------|-------|----------------------|
| **VO time per frame** | ~15–36 ms (GPU/CPU) | ~150–200 ms |
| **Speed ratio** | ~10× faster | Baseline |
| **Megadepth AUC@10°** | 65.4 (semi-dense) | 50.1 |
| **Megadepth #inliers** | 892–1885 | 495 |
| **Built-in matcher** | Yes (MNN + optional refinement) | No (needs LightGlue) |
| **VRAM (VO only)** | ~200 MB | ~900 MB |
| **UAV VO validation** | SatLoc-Fusion (2025) | No direct UAV VO paper |
| **Rotation invariance** | No | No |

### 4.1 When SuperPoint+LightGlue Helps

- Wide-baseline matching.
- Satellite–aerial matching (different viewpoints, scale, illumination).
- Low-texture or repetitive scenes where contextual matching matters.

### 4.2 When XFeat Is Enough

- High-overlap consecutive frames (60–80%).
- Mostly translational motion.
- Downward-facing nadir imagery.
- Real-time or resource-limited systems.

---

## 5. Answer to the Key Question

**For frame-to-frame VO with 60–80% overlap and mostly translational motion, is XFeat sufficient, or does SuperPoint+LightGlue provide materially better results?**

**Answer**: XFeat is likely sufficient. Evidence:

1. **Megadepth**: XFeat outperforms SuperPoint on pose estimation (AUC, inliers).
2. **Task difficulty**: High-overlap consecutive frames are easier than Megadepth’s wide-baseline pairs.
3. **SatLoc-Fusion**: XFeat delivers <15 m error and >2 Hz on edge hardware for UAV VO.
4. **Cost**: SuperPoint+LightGlue is ~10× slower with no clear VO-specific benefit in this scenario.
5. **Assessment gap**: Draft 04’s assessment targeted satellite matching (SuperPoint+LightGlue → LiteSAM), not VO. The VO change from XFeat to SuperPoint+LightGlue was not justified in the findings.

---

## 6. Sources

| # | Source | Tier | Date | Key Content |
|---|--------|------|------|-------------|
| 1 | [XFeat: Accelerated Features (arXiv)](https://arxiv.org/html/2404.19174v1) | L1 | Apr 2024 | Benchmarks, Megadepth, CPU FPS |
| 2 | [SatLoc-Fusion (MDPI Remote Sensing)](https://www.mdpi.com/2072-4292/17/17/3048) | L1 | Sept 2025 | XFeat for UAV VO, <15 m, >2 Hz |
| 3 | [accelerated_features GitHub](https://github.com/verlab/accelerated_features) | L1 | 2024 | XFeat implementation |
| 4 | solution_draft03.md | L2 | Project | XFeat ~15ms VO, SuperPoint for satellite |
| 5 | solution_draft04.md | L2 | Project | SuperPoint+LightGlue for VO ~150–200ms |
| 6 | [vo_lightglue](https://github.com/himadrir/vo_lightglue) | L3 | — | LightGlue VO, ~1% error on KITTI |
| 7 | [Luxonis XFeat](https://models.luxonis.com/luxonis/xfeat/) | L2 | — | XFeat comparable to SuperPoint, faster |

---

## 7. Confidence Summary

| Statement | Confidence |
|-----------|------------|
| XFeat is 5–9× faster than SuperPoint on CPU | High |
| XFeat outperforms SuperPoint on Megadepth | High |
| SatLoc-Fusion uses XFeat successfully for UAV VO | High |
| ~15ms GPU claim for XFeat is plausible | Medium |
| XFeat is sufficient for 60–80% overlap VO | Medium–High |
| SuperPoint+LightGlue does not materially improve VO for this use case | Medium |
| VO change in draft 04 was unintentional | High (no assessment finding) |

---

## 8. Recommendation

**Revert VO to XFeat** as in solution draft 03:

- Use XFeat with built-in matcher for frame-to-frame VO.
- Keep LiteSAM (or SuperPoint+LightGlue) for satellite fine matching only.
- Expected VO time: ~15–36 ms vs ~150–200 ms with SuperPoint+LightGlue.
- Total per-frame time should drop from ~350–470 ms to ~230–300 ms.

If VO quality issues appear in testing, consider:

- XFeat semi-dense mode (XFeat*) for more matches.
- XFeat+LightGlue as a middle ground (faster than SuperPoint+LightGlue, potentially better than XFeat alone).
