Vision and Mobile Robotics Laboratory | Software
Home | Members | Projects | Publications | Software | Videos Internal

SpinRecognize

Description

SpinRecognize is a program for aligning surface meshes when the transformation that aligns the views is completely unknown. SpinRecognize takes as input two surface meshes and ouputs the rigid transformation that aligns them. The registration procedure is based on matching spin-images. The theory behind this program is presented in the Ph.D. dissertation Spin-Images: A Representation for 3-D Surface Matching and the papers Surface Registration by Matching Oriented Points appearing in 3DIM '97 and Object Recognition by Matching Oriented Points appearing in CVPR '97.

SpinRecognize is input a scene and model surface meshes. By matching points with uncompressed spin-images, SpinRecognize aligns the model with the scene. The transformation(s) that transforms the model to the scene is printed to standard output and a 3-D viewer will pop up displaying the alignment of the surfaces; the model will be displayed in red wireframe and the scene will be displayed as white shaded. If no alignment is found, then the viewer will be empty. The best transformation is chosen as the one that produces the greatest number of correspondences between the model and scene. Through command line options, alignment parameters and display options can be set.

SpinRecognize uses surface normals to align surfaces; normals for surfaces being aligned must be oriented in the same direction. Having normals oriented in the opposite directions is a common mistake when using SpinRecognize. By default the normals on a surface mesh are oriented to point away from the centroid of the mesh. Sometimes this is not the desired behavior, especially when a data set comes from a single range view of a scene. Command line options (detailed below) can be used to orient normals so that they always point toward the sensor origin. The program ShowNormals can be used to display the surface normals generated for a surface mesh.

Files

Usage

By typing 'SpinRecognize -' the following options (format description default) are printed:

Usage: SpinRecognize (see SpinRecognize.html for more details)

Detailed Usage

%S set scene mesh filename [required]

%S set model mesh filename [required]

-genStack %F %d %d %F set spin-image generation parameters

[bin size=1,width=15,height=15,angle threshold=180]

-readStack %S name of file for writing model stack [off]

-writeStack %S name of file for reading model stack [off]

-sOrig %F %F %F sensor origin [off]

-mOrig %F %F %F sensor origin [off]

-selectF %F percentage of scene points to search for [0.50]

-seed %d set random number seed [1]

-flatT %F filter possible scene points on flatness error [off]

-simT %F filter correspondences on similarity measure [0.5]

-gcT %F geometric consistency threshold [0.25]

-icpT %F verification threshold[2*model resolution]

-noDisplay do not open graphics display [off]

-showNormals display normals [off]

-showMatches display matched points [off]

-nm %d number of matches to display [1]

-saveResult %S name of file to save display in [off]

-witeTrans %S file to store transformation in [off]

-spinMethod %d

-abBounds %F %F %F %F bounds on alpha,beta

-restrict %F %F %F %F %F %F %F %F %F %F %F %F rough limits on the transformation between views

-hashed hashed

-gridSize %F grid size

Examples

To align two surface meshes using the default parameters

To align a partial scene with sensor origin (-100 -100 100) and to save the model stack to model.stack

To align a model whose stack has already been created, to a scene and then display normals and matched points

To align a model with a scene in batch mode, using as many scene points as possible, where the results are stored to files use

To align a partial scene to a complete model when alignment is not working with the default parameters use

To align a partial model (sensor origin (0 0 100)) to a partial scene (sensor origin (100 0 100)) and display the best 2 matches with a small amount of spreading during verification use

To align a model to a scene using a new (different seed) random set of scene points selected from flat areas in the scene use

up


The VMR Lab is part of the Vision and Autonomous Systems Center within the Robotics Institute in the School of Computer Science, Carnegie Mellon University.