GASD global point cloud descriptor

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

GASD global point cloud descriptor

Sérgio Agostinho

Hey everyone,

We just merged https://github.com/PointCloudLibrary/pcl/pull/1652 . In summary 

The Globally Aligned Spatial Distribution (GASD) descriptor for point clouds with XYZ data (and optionally RGB data) is presented in the paper:
"An Efficient Global Point Cloud Descriptor for Object Recognition and Pose Estimation", J. Lima and V. Teichrieb, SIBGRAPI 2016 - Conference on Graphics, Patterns and Images, São José dos Campos, Brazil.

The paper is available at: http://www.cin.ufpe.br/~jpsml/uploads/8/2/6/7/82675770/pid4349755.pdf

The tutorial should appear on the website anytime now http://pointclouds.org/documentation/tutorials/#features-tutorial.

Cheers


_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: GASD global point cloud descriptor

Sérgio Agostinho

Tutorial is now online at http://pointclouds.org/documentation/tutorials/gasd_estimation.php#gasd-estimation

Cheers


On 01-12-2017 17:32, Sérgio Agostinho wrote:

Hey everyone,

We just merged https://github.com/PointCloudLibrary/pcl/pull/1652 . In summary 

The Globally Aligned Spatial Distribution (GASD) descriptor for point clouds with XYZ data (and optionally RGB data) is presented in the paper:
"An Efficient Global Point Cloud Descriptor for Object Recognition and Pose Estimation", J. Lima and V. Teichrieb, SIBGRAPI 2016 - Conference on Graphics, Patterns and Images, São José dos Campos, Brazil.

The paper is available at: http://www.cin.ufpe.br/~jpsml/uploads/8/2/6/7/82675770/pid4349755.pdf

The tutorial should appear on the website anytime now http://pointclouds.org/documentation/tutorials/#features-tutorial.

Cheers



_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: GASD global point cloud descriptor

swademc
Hi,

I am trying to use this GASD descriptor, and it seems to be working, but I
am unsure how to unpack the pcl::GASDSignature512 point type to retrieve the
array of 512 float values. Maybe this step could be added to the tutorial to
help others? Any help here would be very highly appreciated :)

Cheers



--
Sent from: http://www.pcl-users.org/
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: GASD global point cloud descriptor

Sérgio Agostinho
http://docs.pointclouds.org/trunk/structpcl_1_1_g_a_s_d_signature512.html

GASDSignature512 and the other members of the family have a public
member called histogram (size 512 in this case) which is a plain float
array.

So

GASDSignature512 desc;
desc.histogram[0]; // first bin of the histogram

Feel free to open a PR adding that clarification to the tutorial.

Thanks

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: GASD global point cloud descriptor

swademc
When following the tutorial and attempting what you mentioned:

#include <pcl/point_types.h>
#include <pcl/features/gasd.h>

{
  pcl::PointCloud<pcl::PointXYZ>::Ptr cloud (new pcl::PointCloud<pcl::PointXYZ>);

  ... read, pass in or create a point cloud ...

  // Create the GASD estimation class, and pass the input dataset to it
  pcl::GASDEstimation<pcl::PointXYZ, pcl::GASDSignature512> gasd;
  gasd.setInputCloud (cloud);

  // Output datasets
  pcl::PointCloud<pcl::GASDSignature512> descriptor;

  // Compute the descriptor
  gasd.compute (descriptor);

  // Get the alignment transform
  Eigen::Matrix4f trans = gasd.getTransform (trans);

 // Unpack and print first bin of histogram
 std::cout << descriptor.histogram[0];
}

I get the following error:
error: ‘class pcl::PointCloud<pcl::GASDSignature512>’ has no member named ‘histogram’

So I am still unsure what I should be doing, even in the tutorial example.

On 11 December 2017 at 23:28, Sérgio Agostinho <[hidden email]> wrote:
http://docs.pointclouds.org/trunk/structpcl_1_1_g_a_s_d_signature512.html

GASDSignature512 and the other members of the family have a public member called histogram (size 512 in this case) which is a plain float array.

So

GASDSignature512 desc;
desc.histogram[0]; // first bin of the histogram

Feel free to open a PR adding that clarification to the tutorial.

Thanks


_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: GASD global point cloud descriptor

Sérgio Agostinho
std::cout << descriptor[0].histogram[0];

Notice the 0 index I added to descriptor.

Cheers

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users