Fanelli face detection - PCL code against author implementation

I am currently working with ASUS Xtion to extract a ROI face in a depth + color stream. Currently, I manually capture frames using OpenNI2 instead of using PCL wrappers.

After capturing the depth map, I generate a point cloud in the format cv :: Mat and pcl :: PointCloud, respectively, to run the Fanelli forest method twice, once with the implementation provided by Fanelli ( http: //www.vision.ee.ethz. ch / ~ gfanelli / head_pose / head_forest.html ) and once with the PCL version of this method.

Fanelli code executes "normal", that is, with respect to runtime and detection speed. However, when I feed my pcl :: PointClouds to the PCL forest, I hardly get any detected heads, and the execution time is pretty slow.

Has anyone else made a comparison between these two implementations (of the same method!)? I am trying to figure out the differences between them, in addition to presenting the data and the existing forest that comes with each method accordingly (however, the forests have been trained in the same database!).


Basically, I do it like this:

<grab frames with OpenNI2 library>
<call processNewFrame method of a frame processing class>

with this NewFrame method:

<convert float[] depthmap into cv::Mat and pcl::PointCloud<pcl::PointXYZRGB> pointcloud>
CRForestEstimator->estimate(..., cv::Mat pointcloud, ...)
pcl::RFFaceDetectorTrainer->setInputCloud(PointXYZ version of pointcloud)
pcl::RFFaceDetectorTrainer->detectFaces()

This frame-processing class initializes the CRForestEstimator (the class has a pointer as a member), as well as pcl :: RFFaceDetectorTrainer (the class has a "normal" member variable) in its constructor according to the provided code sample.

+4
source share

All Articles