ORB-SLAM (纯Python实现) - TUM fr1_xyz 数据集测试

D
david March 25, 2026
📝

Description

ORB-SLAM Baseline Experiment

This experiment tests a traditional ORB-based SLAM approach using pure Python + OpenCV as a baseline comparison to the deep learning-based CNN-SLAM approach with DINOv2 + LoFTR.

Implementation Overview

Component Method
Feature Extraction OpenCV ORB (Oriented FAST and Rotated BRIEF)
Feature Matching Brute-force matching + Lowe's ratio test
Pose Estimation Essential matrix + RANSAC
Reconstruction Keyframe-based triangulation
Interface Follows the same BaseSLAM interface as CNN-SLAM for fair comparison

Dataset Information

TUM RGB-D Dataset: fr1/xyz

Property Value
Original Frames 798
FPS 30
Processing FPS 15
Processed Frames 399
Resolution 640 × 480
Calibration Official TUM intrinsics used

Results Summary

Metric Value
Tracking Success Rate 77.7% (311/399 frames)
Number of Keyframes 264
Reconstructed Map Points 97,259
Total Trajectory Distance 35.87 meters

Visualizations

1. ORB Feature Extraction Result (First Frame)

ORB Features on First Frame

OpenCV's ORB detector extracts 1000 features from the first frame. Each green circle shows a detected keypoint with size proportional to the FAST response strength.

2. Reconstructed Trajectory and Point Cloud (3D View)

3D Trajectory and Point Cloud

  • Blue line = Estimated camera trajectory
  • Green dot = Start position
  • Red dot = End position
  • Gray points = Reconstructed 3D map points (subsampled for visualization)

3. Top-Down View (X-Z Plane)

Top-Down Trajectory View

This view shows the bounding box of the trajectory matches the expected fr1/xyz dataset motion pattern.

📊

Results Summary

Success Rate
77.7
percent
Percentage of frames successfully tracked
Keyframes
264
keyframes
Map Points
97,259
3D points
Total Distance
35.9
meters

Hyperparameters

Parameter Value Description
n_features 1000 Number of ORB features extracted per frame
min_inliers 20 Minimum inliers for RANSAC to accept
keyframe_thresh 0.3 Translation threshold (meters) for new keyframe
match_ratio_thresh 0.7 Lowe's ratio test threshold
🖼️

Visualizations

ORB Feature Extraction
ORB Feature Extraction
OpenCV's ORB detector extracts 1000 features from the first frame. Each green circle shows a detected keypoint with size proportional to the FAST response strength.
3D Trajectory & Point Cloud
3D Trajectory & Point Cloud
Reconstructed camera trajectory (blue line) and sparse 3D point cloud (gray points) from ORB-SLAM.
Top-Down Trajectory View
Top-Down Trajectory View
XZ plane projection of the reconstructed trajectory shows the circular path shape.

0 Comments