Python implementation of PFH (Point Feature Histogram) and FPFH (Fast Point Feature Histogram).
PFH is an improvement upon the ICP (Iterative Closest Point) algorithm. This method uses a pose invariant feature descriptor for matching, which incorporates the geometric properties of an individual point's local neighborhood. FPFH is an additional variation of PFH where computation time is improved at the cost of a less descriptive feature descriptor.
Requires Python3, Numpy, Scipy, Matplotlib. Install dependencies by:
pip install -r requirements.txt
The algorithm API works as follows:
icp = FPFH(et=0.1, div=2, nneighbors=8, rad=0.03)
result_cloud = icp.solve(source_pc, target_pc)
To run the demo code:
python demo.py
demo.py
runs the algorithm on an example dataset, producing a plot of the result.
Paper.pdf
is a project report describing in detail the algorithm, implementation, and evaluation results.
Start | End |
---|---|
![]() |
![]() |
- PCL documentation for estimating surface normals
- PCL documentation for PFH
- PCL documentation of FPFH
- Rusu PhD thesis and papers