I implemented 3D object recognition based on correspondance grouping but I am unable to deal with proper algorithm parameters to find an object on the scene.
Following example works good with provided milk and scene pcds.
http://www.pointclouds.org/documentation/tutorials/correspondence_grouping.php
but not with my example object and scene. Then, current tried parameters are,
//Algorithm params
bool show_keypoints_(true);
bool show_correspondences_(false);
bool use_cloud_resolution_(false);
bool use_hough_(true);
float model_ss_(0.01f);
float scene_ss_(0.0125f);
float rf_rad_(0.008f);
float descr_rad_(0.008f);
float cg_size_(0.05f);
float cg_thresh_(5.0f);
and model and scene files,
https://www.dropbox.com/s/0o8igpbfnqu5vk3/model.pcd?dl=0 https://www.dropbox.com/s/pv5re3iqzsme29j/scene.pcd?dl=0
How to deal with proper parameters without doing test/error?
In general, it is very difficult, if not outright impossible, to choose the “correct”, or in any way “best”, parameters for a detection problem, without at least running some informal experiments on your available training data.
Ideally, you should have a set of labeled test images and a way of automatically testing your object recognition approach on your dataset, outputting helpful measures such as the detection precision and recall, or the mean squared error of the estimated object pose versus your known ground truth. Then, you could script your program to explore the parameter space, starting from some reasonable-looking initial parameter values.
As for your concrete example, the best I can offer are the following observations: