PointCloudLibrary / PointCloudLibrary/pcl

pcl::gpu::PFHRGBEstimation seems to be suitable only for organized clouds

Open
#3,319 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

status: stale
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.