PointCloudLibrary / PointCloudLibrary/pcl
LCCP/CPC Segmentation and Supervoxel indexing
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
Hi there,
while testing segmentation with LCCP and the recent CPC, I always observe some out-of-order small blobs in the middle of larger segments, which are not tackled by mergeSmallSegment.
I've done some debugging and found that those points are in the octree leaf with voxel_data.owner_ == 0 (see getLabeledCloud in supervoxel_clustering.cpp), have label 0 and are not in the adjacency graph, because the list of SupervoxelHelper is initialised with the label beginning with 1 (see createSupervoxelHelpers):
supervoxel_helpers_.push_back (new SupervoxelHelper(i+1,this));
So, I assume this is not a desired behaviour, though I don't quite get why the indexing skips 0.
Kind regards,
Nikita
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in supervoxel_clustering.cpp, tracing getLabeledCloud and createSupervoxelHelpers, especially the SupervoxelHelper indexing and owner_ == 0 points. Reproduce the reported LCCP/CPC segmentation case and follow how label-0 leaves bypass the adjacency graph and mergeSmallSegment. Done means the out-of-order small blobs are handled consistently with larger segments and the intended indexing behavior is established.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- computer-vision
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100