PointCloudLibrary / PointCloudLibrary/pcl

FPFH implementation does not match documentation

Open
#1,757 5 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

kind: bug module: features needs: feedback
Dominant language
C++
Stars
11.1k
Forks
4.7k
Avg merge
4d 10h
Merged PRs (30d)
6

Description

⚠️ This is a issue tracker, please use our mailing list for questions: www.pcl-users.org. ⚠️

The FPFH equation:
FPFH(p) = SPFH(p) + weighted average of SPFH over neighbourhood
does not hold for the current implementation.
PCL FPFH consists only of the weighted average, the query point SPFH is omitted.

This can be seen from the code logic, in features/impl/fpfh.hpp:

  1. computeFeature calls computeSPFHSignatures and then iterates over points with weightPointSPFHSignature
  2. computeSPFHSignatures fills three eigen matrices with SPFH split by feature
  3. weightPointSPFHSignature clears the FPFH, then iterates over neighbours, skipping the query point and adding weighted neighbour SPFH to the FPFH, and finally normalizes FPFH.

If this is intentional, I guess the documentation, tutorial and the wiki page should mention it.

Your Environment

  • Operating System and version:
  • Compiler:
  • PCL Version:

Expected Behavior

Current Behavior

Possible Solution

Code to Reproduce

Context

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in features/impl/fpfh.hpp and trace computeFeature, computeSPFHSignatures, and weightPointSPFHSignature. Compare the implementation with the documented FPFH equation, then determine whether omitting the query-point SPFH is intentional. Done means resolving the discrepancy in the implementation or updating the documentation, tutorial, and wiki consistently.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
computer-vision
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.