PointCloudLibrary / PointCloudLibrary/pcl
pcl::gpu::PFHRGBEstimation seems to be suitable only for organized clouds
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 4.7k
- Avg merge
- 4d 10h
- Merged PRs (30d)
- 6
Description
pcl::gpu::PFHRGBEstimation has member function
compute (DeviceArray2D< PFHRGBSignature250 > &features)
which seems to be suitable only for organized clouds(as it uses devicearray2D).
The descriptor however takes pcl::devicearray as input in the following function calls
setInputCloud (const PointCloud &cloud)
setSearchSurface (const PointCloud &surface)
This seems to be conflicting as it takes an unorganized cloud(pcl::devicearray) as cloud input while the decriptor is of type(pcl::devicearray2d)
Is this an intended behavior?
Your Environment
- Operating System and version: ubuntu 16.04
- Compiler: 5.4.0
- PCL Version: 1.8
Context
I need to compute the PFHRGB descriptors for two unorganized point clouds(source, target) using the gpu. Then I need to search for nearest neighbors(k=1 as in knearest neighbors).
Expected Behavior
pcl::gpu::PFHRGBEstimation has member function
compute (DeviceArray2D< PFHRGBSignature250 > &features) should take DeviceArray instead of DeviceArray2D
Current Behavior
Code to Reproduce
pcl::gpu::DeviceArray<pcl::PointXYZ> cloud_DA(cloud_XYZRGBA->size());
// omitting details about how to create cloud_DA
// create the class to compute PFHRGB on GPU
pcl::gpu::PFHRGBEstimation pfhrgb_gpu;
pfhrgb_gpu.setSearchSurface(cloud_DA);
pfhrgb_gpu.setInputCloud (cloud_DA);
pfhrgb_gpu.setInputNormals (normals_DA);
pfhrgb_gpu.setRadiusSearch (search_radius_pfhrgb, count_max_neighbors_for_pfhrgb);
pcl::gpu::DeviceArray2D<pcl::PFHRGBSignature250> pfhrgb_desc;
// compute the PFHRGB descriptors
pfhrgb_gpu.compute(pfhrgb_desc);
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 with the pcl::gpu::PFHRGBEstimation entry points setInputCloud, setSearchSurface, setInputNormals, and compute, using the supplied unorganized DeviceArray example. Check how DeviceArray and DeviceArray2D are handled for PFHRGB descriptors and determine whether the documented behavior supports the requested source and target clouds. Done means the intended input and output shapes are clarified or consistently supported, with the reproduction case addressed.
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
- 35/100