Skip to content

BraydenCurrier/environment-adaptive-orbslam3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Environment-Adaptive ORB-SLAM3 Feature Extraction

License

Adaptive ORB-SLAM3 Demo

Adaptive ORB feature extraction running on the EuRoC V1_01_easy sequence.

Brightness-adaptive ORB feature extraction for improved robustness in visual SLAM systems operating under varying illumination conditions.

This project extends the ORB-SLAM3 feature extraction pipeline by dynamically adjusting FAST detection thresholds and the target number of ORB features based on real-time scene brightness. The adaptive approach increases feature density in darker environments while reducing redundant computation in well-lit scenes, maintaining minimal runtime overhead.


System Architecture

Architecture

The adaptive module is integrated directly inside the ORB extractor and operates before feature distribution. Downstream SLAM components — tracking, local mapping, and loop closing — remain unchanged.


Overview

Standard ORB-SLAM3 uses fixed feature extraction parameters across all frames. However, lighting conditions strongly influence keypoint detection quality and tracking stability.

This project introduces a lightweight adaptive strategy that:

  • Computes mean frame brightness in real time
  • Normalizes brightness to a 0–1 range
  • Dynamically adjusts nFeature counts
  • Scales the ORB feature budget between 85%–115% of baseline

All modifications were designed to preserve the original ORB-SLAM3 architecture and threading model.


Implementation Details

Key modifications were implemented inside the ORB extractor:

  • Brightness estimation using cv::mean(image)
  • Dynamic adjustment of target feature count:

nfeatures = nOriginalFeatures * featureMultiplier

Where:

featureMultiplier ∈ [0.85 , 1.15]

Behavior:

  • Dark scenes → increased feature density
  • Bright scenes → reduced feature count for efficiency

Key Results

ATE RMSE

Observations

  • Comparable performance on easier sequences
  • Improved robustness on challenging lighting conditions (e.g., MH04 difficult)
  • Negligible runtime overhead (<1% variation)

Engineering Impact

  • Modified a production-scale visual SLAM pipeline (ORB-SLAM3)
  • Implemented real-time adaptive parameter tuning with minimal runtime overhead
  • Preserved compatibility with existing tracking, mapping, and loop-closing modules
  • Designed changes to integrate cleanly into an existing C++ codebase

Setup / Applying Changes

This repository does not include the full ORB-SLAM3 source code.

Clone ORB-SLAM3 separately:

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git

Apply the adaptive modifications:

./scripts/apply_changes.sh /path/to/ORB_SLAM3

Then rebuild ORB-SLAM3 following the upstream instructions.


Evaluation

Datasets:

  • EuRoC Machine Hall (MH01, MH04, MH05)
  • EuRoC Vicon Room (V101, V103)

Metrics:

  • Absolute Trajectory Error (ATE)
  • Runtime
  • CPU utilization
  • Memory usage

Full analysis available in:

report/Report.pdf


Credits / Upstream

This work builds upon:

ORB-SLAM3
https://github.com/UZ-SLAMLab/ORB_SLAM3

Original authors:
Campos, Elvira, Gómez Rodríguez, Montiel, Tardós


Author

Brayden Currier
Computer Engineering

About

Brightness-adaptive feature scaling for ORB-SLAM3 that dynamically adjusts ORB feature extraction based on scene illumination, improving robustness across varying visual conditions with minimal computational overhead.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors