generated from tier4/ros2-project-template
-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: mask-based pruning filter (vendor independent) #250
Open
mojomex
wants to merge
11
commits into
tier4:main
Choose a base branch
from
mojomex:feat/universal-downsample
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…d FoVs Signed-off-by: Max SCHMELLER <[email protected]>
The filter takes a path to a PNG image (will be converted to grayscale) and expected resolution/channel count of the mask. The grayscale mask is then dithered into a black/white mask of the same dimensions, and an `excluded(NebulaPoint const&)` function is provided to test whether a point shall be excluded according to the mask. For debug purposes, the dithered mask is written to the same directory as the input mask, with the file ending changed to `_dithered.png`. If this fails, the filter will not throw but log a warning. Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
mojomex
force-pushed
the
feat/universal-downsample
branch
from
January 16, 2025 03:33
7ea8836
to
5b487be
Compare
mojomex
changed the title
Feat/universal downsample
feat: mask-based pruning filter (vendor independent)
Jan 16, 2025
5 tasks
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
Signed-off-by: Max SCHMELLER <[email protected]>
…g errors Signed-off-by: Max SCHMELLER <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #250 +/- ##
==========================================
+ Coverage 26.07% 26.15% +0.08%
==========================================
Files 101 107 +6
Lines 9232 9477 +245
Branches 2213 2276 +63
==========================================
+ Hits 2407 2479 +72
- Misses 6436 6598 +162
- Partials 389 400 +11
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Type
Related Links
Description
ℹ️ This PR provides only a library, and does not have an effect by itself. Vendor implementations are done in PRs following this one.
ℹ️ Performance measurements are provided on a per-vendor basis (e.g. #251) and are thus not included in this PR.
This PR introduces a mask-based pointcloud filter that allows precise pruning of the pointcloud with different pruning factors for different areas of the pointcloud.
This feature is aimed at reducing computational load later in the pipeline by
The filter takes a grayscale PNG image with the x direction representing azimuth, and the y direction representing the channel - a representation for elevation instead of channel will be added once such sensors are in Nebula.
Points falling into
255 = 100 %
) are all kept0 = 0 %
) are all discardedThe dithering algorithm first quantizes the grayscale image into multiples of
1/10
, yielding11
quantization levels.Dithering patterns are diagonal lines spaced as uniformally as possible in a 10-pixel period (both horizontally and vertically).
See the docs for images and behavior descriptions.
Review Procedure
Pre-Review Checklist for the PR Author
PR Author should check the checkboxes below when creating the PR.
Checklist for the PR Reviewer
Reviewers should check the checkboxes below before approval.
Post-Review Checklist for the PR Author
PR Author should check the checkboxes below before merging.
CI Checks