Paper Title: Point Feature Extraction on 3D Range Scans Taking into Account Object Boundaries

  • Authors: Bastian Steder, Radu Bogdan Rusu, Kurt Konolige, and Wolfram Burgard


In this paper we address the topic of feature extraction in 3D point cloud data for object recognition and pose identification. We present a novel interest keypoint extraction method that operates on range images generated from arbitrary 3D point clouds, which explicitly considers the borders of the objects identified by transitions from foreground to background. We furthermore present a feature descriptor that takes the same information into account. We have implemented our approach and present rigorous experiments in which we analyze the individual components with respect to their repeatability and matching capabilities and evaluate the usefulness for point feature based object detection methods.


@inproceedings {steder11icra,
  title = {Point Feature Extraction on 3D Range Scans Taking into Account Object Boundaries},
  booktitle = {International Conference on Robotics and Automation},
  year = {2011},
  author = {Bastian Steder and Radu Bogdan Rusu and Kurt Konolige and Wolfram Burgard}

Photos and Video Results

This videos shows examples for the border extraction procedure, the interest point extraction and the descriptor for the NARFs (Normal Aligned Radial Features):

Note regarding the code

Please note, that the code presented below was tested on Ubuntu 9.10 and apparently does not work anymore under newer Ubuntu versions (because of some of the outdated ROS packages). If you are interested in using NARFs, they are implemented in the Point Cloud Library (PCL): and the tutorials on

Instructions for reproducing experiments

An Open Source implementation of the features presented in the paper written using the Robot Operating System (ROS) is available for download.

rosinstall File

If you know how to use rosinstall, you can use the following file to setup the code used for the experiment:


If you are not familiar with this system, just follow the instructions below.


First you have to install rosinstall. Please follow these instructions.

Install&Compile Commands

Create a new directory and enter it:

mkdir steder11icra && cd steder11icra

Install the code:

rosinstall steder11icra_ros ''

Source the shell setup file - this sets environmental variables:

source steder11icra_ros/

Compile the needed packages:

rosmake range_image_tests

Get the dataset for the experiments

Download the dataset to the steder11icra folder:

Unzip it:


Run the experiments

Run the the following commands to calculate the data for the graphs in the paper.

For the analysis of the interest point stability:

rosrun range_image_tests icra11_experiment1 steder11icra_dataset/models

This will take a few minutes and creates two files in the directory where it is run, "interest_point_test_all_models.dat" and "interest_point_test_per_model.dat".

For the analysis of the matching capabilities of the NARF features:

rosrun range_image_tests icra11_experiment2 steder11icra_dataset/scenes steder11icra_dataset/models
rosrun range_image_tests icra11_experiment2 steder11icra_dataset/scenes steder11icra_dataset/models -i -o

The first command does the analysis without interest points, with interest points and with RVPs. The second command does the analysis for the rotational invariant version. The program creates a folder "icra11_data_files" where all the results are saved.

The first command will take multiple hours, because of the cross comparison of all points. If you want it to only take a few minutes use

rosrun range_image_tests icra11_experiment2 steder11icra_dataset/scenes steder11icra_dataset/models -i

instead. This will omit the results without interest points.

Visualize the results with gnuplot

To visualize the result as it is done in the paper you need the following gnuplot files. Create a new folder "gnuplot" in the steder11icra folder:

mkdir gnuplot

Then download the following files and save them in steder11icra/gnuplot:






Now move the data files created by the programs in a folder data in the gnuplot folder:

mkdir gnuplot/data
mv *.dat gnuplot/data
mv icra11_data_files/*.dat gnuplot/data

Now you can run gnuplot to create the plots:

cd gnuplot
gnuplot interest_point_test_all_models.gnuplot
gnuplot interest_point_test_per_model.gnuplot
gnuplot object_poses_all_models.gnuplot
gnuplot roc_curves.gnuplot

If you chose to run the code above in the version only doing the interest points use

gnuplot roc_curves_only_ip.gnuplot

instead of the last command.

Now you should have the graphs from the paper as *.eps files in the gnuplot folder.

Wiki: Papers/ICRA2011_Steder (last edited 2017-10-22 07:34:29 by TullyFoote)