Point Pair Feature Matching

Aim: Object detection and pose estimation enable a robot to recognize and grasp objects
Tools: Python C++ ROS PCL OpenCV git

The point pair feature matching method has first been proposed by Drost et al. in 2010. Since then, many scientists have proposed further improvements for the method. Even ten years later, it is still one of the most competitive and industry-relevant approaches.

How does it work?

The method generally works with point cloud data. It got its name because of the point pair features, which are quite simple and describe the distance between two points and the relative angles of the surfaces surrounding these points:


Given a 3d model of an object, it computes all point pair features and memorizes their position and orientation within the object. We can then compute the point pair features of a scene point cloud and perform the matching. If a point pair feature of the scene matches a feature of the model, this suggests the corresponding object pose. And since we do this with not only one but many features, the likelihood to recover the true object pose is quite high.

What are its advantages or drawbacks?

Point pair feature matching is a traditional, hand-crafted method. This is particularly contrasting modern Deep Learning approaches, which require large amounts of training data. With point pair feature matching, the training is extremely fast. We only need a 3d model of the object, and can start detecting right away. The matching process however is quite computationally demanding.

We can describe point pair feature matching as a kind of surface matching. It can outplay its strenghts when we have delicate, finely structured surfaces. These fine structures are uniquely shaped and the resulting point pair features are quite discriminative. In contrast, if we have simple shaped objects with planar or constant-curvature surfaces and regular angles, many features will be similar or even identical. Therefore they do not carry enough information to unambiguously identify the pose of the object.


In the examples, we try to detect a cuboid shape in a bin with other geometrically primitve objects. (a) depicts a typical error case, where the cuboid is erroneously detected at a place with high surface overlap.

What have I done?

Together with several students, we have particularly investigated how to improve the detection of geometrically simple objects. We created a new dataset (see examples above) to specifically test such situations. Algorithmically, we enhanced the method to auto-detect rotational symmetries and speed up the matching process for such objects. We also added some more features that allow for better discriminability of planar surfaces, and verification steps that can detect error cases as in (a) and instead retrieve the next-best pose hypothesis.



  • Markus Ziegler, Martin Rudorfer, Xaver Kroischke, Sebastian Krone, and Jörg Krüger. “Point Pair Feature Matching: Evaluating Methods to Detect Simple Shapes”. In: 12th International Conference on Computer Vision Systems (ICVS). Vol. 1. 2019. Also see the poster [pdf].
  • Martin Rudorfer and Xaver Kroischke. “Evaluation of Point Pair Feature Matching for Object Recognition and Pose Determination in 3D Scenes”. In: 19. Anwendungsbezogener Workshop zur Erfassung, Modellierung, Verarbeitung und Auswertung von 3D-Daten. Berlin: GFaI Gesellschaft zur Förderung angewandter Informatik e. V., 2016, pp. 27–36. isbn: 978-3-942709-16-3 .