saedrna / FPCF_MSVC

BSD 3-Clause "New" or "Revised" License
1 stars 1 forks source link

Depth map cloud data, example will not complete #1

Open antithing opened 5 years ago

antithing commented 5 years ago

Hi, and thank you very much for making this code available. i am trying to run it on my own data (from a depth camera) and am having trouble. Using the settings:

const float FILTER_DISTANCE = 70.0;
const float VOXEL_LEAF_SIZE = 10.0f;
const int MAX_PLANE_SIZE = 1000;
const float NOISE_OUTLINER_RADIUS = 0.5f;
const float DESCRIPTOR_RADIUS = 1.0f;

    // create point cloud preparator
    fpcf::fpcfPointCloudPreparation<PointType, DescriptorType>::Ptr fpcfPointCloudPreparator(new fpcf::fpcfPointCloudPreparation<PointType, DescriptorType>());

    // uncomment to use the persistent features computation:
    fpcfPointCloudPreparator->calculatePersistentFeature(true);

    // add filters
    fpcf::fpcfVoxelDownsampling<PointType, DescriptorType>::Ptr fpcfDownsampler(new fpcf::fpcfVoxelDownsampling<PointType, DescriptorType>(VOXEL_LEAF_SIZE));
  //  fpcf::fpcfDistanceFilter<PointType, DescriptorType>::Ptr fpcfDistanceFilter(new fpcf::fpcfDistanceFilter<PointType, DescriptorType>(fpcf::Direction::Z, FILTER_DISTANCE));
    fpcf::fpcfPlaneFilter<PointType, DescriptorType>::Ptr fpcfPlaneFilter(new fpcf::fpcfPlaneFilter<PointType, DescriptorType>(MAX_PLANE_SIZE));
    fpcf::fpcfNoiseFilter<PointType, DescriptorType>::Ptr fpcfNoiseFilter(new fpcf::fpcfNoiseFilter<PointType, DescriptorType>(NOISE_OUTLINER_RADIUS));

    fpcfPointCloudPreparator->addFilter(fpcfDownsampler);
    // fpcfPointCloudPreparator->addFilter(fpcfDistanceFilter);
    fpcfPointCloudPreparator->addFilter(fpcfPlaneFilter);
    fpcfPointCloudPreparator->addFilter(fpcfNoiseFilter);

    // uncomment to use the SIFT keypoint detector:
    fpcf::fpcfSiftKeypoint<PointType, DescriptorType>::Ptr fpcfSiftKeypointDetector(new fpcf::fpcfSiftKeypoint<PointType, DescriptorType>());
    fpcfPointCloudPreparator->setDetector(fpcfSiftKeypointDetector);

    // set point descriptor
    fpcf::fpcfFPFHDescriptor<PointType>::Ptr fpcfFPFHDescriptor(new fpcf::fpcfFPFHDescriptor<PointType>(DESCRIPTOR_RADIUS));
    fpcfPointCloudPreparator->setDescriptor(fpcfFPFHDescriptor);

I see the following:

.\fpcf_multiple_cloud_fusion.exe .\data\cloud_0.pcd .
\data\cloud_10.pcd .\data\cloud_30.pcd
Loaded 921600 data points from .\data\cloud_0.pcd
Loaded 921600 data points from .\data\cloud_10.pcd
Loaded 921600 data points from .\data\cloud_30.pcd
PointCloud after downsampling: 4119
PointCloud after downsampling: 4964
PointCloud after downsampling: 4687
#NoisePoints removed: 0#NoisePoints removed: 0#NoisePoints removed: 0

[pcl::NormalEstimationOMP::compute] input_ is empty!
[pcl::NormalEstimationOMP::compute] input_ is empty!
[pcl::NormalEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::initCompute] Init failed.
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::initCompute] Init failed.
[pcl::FPFHEstimationOMP::initCompute] Init failed.
[pcl::FPFHEstimationOMP::initCompute] Init failed.
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::initCompute] Init failed.
[pcl::FPFHEstimationOMP::initCompute] Init failed.
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::initCompute] Init failed.
[pcl::FPFHEstimatio#points after persistent features: 0
nOMP::initCompute] Init failed.
[pcl::#points after persistent features: FPFHEstimationOMP::initCompute] Init failed.
0Found #points after persistent features: 0
 sift key points0Found
0 sift key pointsFound 0[ sift key pointspcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::compute] input_ is empty!
[pcl::FPFHEstimationOMP::initCompute] Init failed.
[pcl::FPFHEstimationOMP::initCompute] Init failed.
[pcl::FPFHEstimationOMP::initCompute] Init failed.

    preparation computation time: 0.138 s
[pcl::registration::CorrespondenceEstimation::setInputTarget] Invalid or empty point cloud dataset given!
[pcl::registration::CorrespondenceEstimation::setInputTarget] Invalid or empty point cloud dataset given!
[pcl::registration::CorrespondenceEstimation::compute] No input target dataset was given!
[pcl::registration::CorrespondenceRejectorPoly::getRemainingCorrespondences] Number of correspondences smaller than polygon cardinality! Returning all input correspondences.
[pcl::registration::CorrespondenceEstimation::setInputTarget] Invalid or empty point cloud dataset given!
[pcl::registration::CorrespondenceEstimation::compute] No input target dataset was given!
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::registration::CorrespondenceEstimation::compute] No input target dataset was given!
[pcl::registration::CorrespondenceRejectorPoly::getRemainingCorrespondences] Number of correspondences smaller than polygon cardinality! Returning all input correspondences.
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::registration::CorrespondenceRejectorPoly::getRemainingCorrespondences] Number of correspondences smaller than polygon cardinality! Returning all input correspondences.
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModel::getSamples] Can not select 0 unique points out of 0!
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::RandomSampleConsensus::computeModel] No samples could be selected!
[pcl::SampleConsensusModelRegistration::computeSampleDistanceThreshold] Covariance matrix has NaN values! Is the input cloud finite?
[pcl::SampleConsensusModel::getSamples] Can not select 0 unique points out of 0!
[pcl::SampleConsensusModel::getSamples] Can not select 0 unique points out of 0!
[pcl::RandomSampleConsensus::computeModel] No samples could be selected!
[pcl::RandomSampleConsensus::computeModel] No samples could be selected!
graph G {
0;
1;
2;
1--0 ;
2--0 ;
}

    MST computation time: 0.164 s
[pcl::IterativeClosestPointWithNormals::setInputTarget] Invalid or empty point cloud dataset given!
[begin icp with #iters: p2c5l::
IterativeClosestPointWithNormals::setInputTarget] Invalid or empty point cloud dataset given!
[begin icp with #iters: pc2l5:
:registration::IterativeClosestPointWithNormals::compute] No input target dataset was given!
[icp score: p1cl::.79769e+308registration::IterativeClosestPointWithNormals::compute] N
o input target dataset was given!
icp score: 1.79769e+308

    pairwise registration computation time: 0.017 s
begin LuM with #iters: 3
[pcl::registration::CorrespondenceEstimation::setInputTarget] Invalid or empty point cloud dataset given!
[pcl::registration::CorrespondenceEstimation::compute] No input target dataset was given!
[pcl::registration::CorrespondenceEstimation::setInputTarget] Invalid or empty point cloud dataset given!
[pcl::registration::CorrespondenceEstimation::compute] No input target dataset was given!
begin lum iter: 0
[pcl::registration::CorrespondenceEstimation::setInputTarget] Invalid or empty point cloud dataset given!
[pcl::registration::CorrespondenceEstimation::compute] No input target dataset was given!
[pcl::registration::CorrespondenceEstimation::setInputTarget] Invalid or empty point cloud dataset given!
[pcl::registration::CorrespondenceEstimation::compute] No input target dataset was given!
begin lum iter: 1
[pcl::registration::CorrespondenceEstimation::setInputTarget] Invalid or empty point cloud dataset given!
[pcl::registration::CorrespondenceEstimation::compute] No input target dataset was given!
[pcl::registration::CorrespondenceEstimation::setInputTarget] Invalid or empty point cloud dataset given!
[pcl::registration::CorrespondenceEstimation::compute] No input target dataset was given!
begin lum iter: 2

What can i look at to get this working? Thanks again!

saedrna commented 5 years ago

In fact, we also have trouble in running this code. but not much has been changed from the original port, you may look into the changes in this commint.

Is this size const float VOXEL_LEAF_SIZE = 10.0f; too large for your rgbd data? We have successfully get normal estimation to work, we only fails to find correspondence with fpfh descriptor for our TLS data in urban environment.

Han