Rebased Feature: Implement keypoint filtering with cv::Mat
This is a rebased version of #46
Description & Motivation
Fixes https://github.com/Soldann/MORB_SLAM/issues/9
We are adding orb-filtering from a cv::Mat mask to allow for future refinements such as filtering moving objects out of the SLAM algorithm.
What is the issue is addressed? Please also include relevant motivation and context.
Changes made
Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [X] New feature (non-breaking change which adds functionality)
- [X] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] This change requires a documentation update
Changes
This adds a mask argument to the Frame, Tracking, and System classes. It also creates an override in ORBExtractor for both masked and non-masked versions of a frame.
To specify no mask, pass nullptr as the mask argument instead of the address of a cv::Mat.
THIS IS BREAKING: old examples will not run without adding the mask argument (can use nullptr).
Test Plan
Ran a local test on the Jetson Orin and verified ORBS were not obtained outside of the mask.
Test Configuration:
Hardware: Jetson Orin
Will need to do a second test to verify integrity of the SLAM algorithm
Test Configuration:
Hardware:
Did some testing and this works fine in RGBD but causes segmentation faults in Stereo. Cannot find the cause as of now