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
Contents
Abstract
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.
Citation
@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} note = {CURRENTLY UNDER REVIEW} }
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): http://www.pointclouds.org and the tutorials on ros.org: http://wiki/pcl/Tutorials
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.
Rosinstall
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 'http://wiki/Papers/ICRA2011_Steder?action=AttachFile&do=get&target=steder11icra.rosconfig'
Source the shell setup file - this sets environmental variables:
source steder11icra_ros/setup.sh
Compile the needed packages:
rosmake range_image_tests
Get the dataset for the experiments
Download the dataset to the steder11icra folder:
Unzip it:
unzip steder11icra_dataset.zip
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:
interest_point_test_all_models.gnuplot
interest_point_test_per_model.gnuplot
object_poses_all_models.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.