Generalized Dual Bootstrap-ICP Software Guide
Introduction
Generalized Dual Bootstrap-ICP is a fully-automated 2D image registration algorithm. It is designed to register two images taken of the same scene, although perhaps at different times and from different viewpoints. By "fully-automated" we mean that it includes an initialization technique, an estimation algorithm, and a decision step. If two images have even a moderate amount of overlap and common structure, Generalized Dual-Bootstrap usually succeeds. It can handle substantial illumination differences between images and substantial physical changes in the scene as well. Our limited experimentation with multimodal images suggests that it can align these when similar geometric structures appear in the images. On the other hand, when given two images that do not overlap or do not contain sufficient common structure, Generalized Dual-Bootstrap usually does not produce an alignment between images. Instead it indicates that the images can not be registered. The algorithm can handle image-wide parametric transformations between images including affine, plane projective (homographies), and quadratic transformations. It also accommodates radial-lens distortion in the planar homography. On the other hand, it can not yet handle significant inter-image parallax, 3D images, more than 2 images, or local deformations. Moreover, the implementation is not particularly fast. All of these are part of ongoing work. Thus, the goal of providing this executable is for an experimental evaluation of the power of the Generalized Dual-Bootstrap on a wi"de-variety of challenging image pairs.
Details of some of the algorithms can be found in our latest tech report. This work was supported by the NSF Center for Subsurface Sensing and Imaging Systems, the NSF Experimental Partnerships Program, and the US Army Intelligence and Security Command. The software contains copyrighted implementations of patented and patent-pending algorithms and is therefore provided for experimental purposes only.
As a final preliminary note, the algorithm most often fails when it is unable to generate a reasonable initial transformation estimate. We know of several such image pairs but would appreciate learning about others. Therefore, if you have any overlapping image pairs for which the algorithm fails, we would very much appreciate your sharing them with us. Please contact Prof. Chuck Stewart () or Gehua Yang ().
- Windows (12/06/2009)
- FreeBSD (07/03/2006 static build on FreeBSD 5.4)
- Mac (05/20/2006)
- Linux (07/03/2006 static build on kernel 2.6)
- Linux (07/03/2006 static build on kernel 2.2)
How to run the executable
The implementation of the algorithm is provided as an executable, named gdbicp, which runs from a command shell. The usage of the executable is explained as follows:
gdbicp [image file name 1] [image file name 2] [-mask_from string] [-mask_to string] [-model integer] [-debug integer] [-invert] [-complete] [-xform_as_to]
- There are two mandatory arguments: the two image file names ([image file name 1] and [image file name 2]) to be registered. These images may be in one of several different formats, including such as JPEG, PNG, BMP and TIFF.
- -mask_from and -mask_to are to provide the region of interest for image 1 and image 2, respectively. The mask should be an image having the same dimension as the corresponding image to be registered. For any pixel in the mask, zero intensity means this pixel is excluded, while non-zero means it is to be included. The default is to use the whole image in registration when these two switches are not provided.
- -model is to select the final transformation model between the two images. Depending on the imaging modality and context, the transformation model can be one of the following: 0) Affine, 1) Homography, 2) Quadratic, 3) Homography with Radial Lens Distortion, and 4) Similarity. The quadratic model is applicable to retina images. The homography is applicable to images of a planar surface, images taken from long distances (so that the image surfaces appear roughly planar), or by camera rotation without translation. When radial lens distortion is not negligible---especially when using an inexpensive point-and-shoot camera---the Homography with Radial Lens Distortion model should be used. This model also works when there is no radial lens distortion, The default is Homography model.
- -complete is used to register difficult image pairs --- those having substantial illumination difference or physical changes. It should only be used when the normal mode (without this switch) has failed. Specifying this switch significantly slow the execution.
- -xform_as_to is used to resample the image 1 into image 2's coordinate, resolution and image size. The resulting images will have the prefix xto_, with image dimension same as the image 2.
- -debug turns on outputs for debug purpose. It is not recommended to be used unless for reporting issues.
- -invert is to invert the intensity of the first image before registration. This is used to register images whose intensities are roughly inverted relative to each other. Two examples include registering red-free retinal images and fluorescein angiograms (of the same patient), and registering normal images with IR images. It is important to note that inverting the intensities is only significant for initializing the transformation estimate.
- -init_prior is to supply a prior initialization file. This file replaces the initialization method (Lowe's SIFT keypoint matching) used in the executable. Look here for the illustration of the initialization file.
- -max_trials is to specify how many intialization to try before quitting. Please note if one initialization leads to a "definitely-accept" result, the rest initialization will not be tested.
Result files
If gdbicp fails to align the two images, it will print out "Registration failed" and quit. When it succeeds the following files will be generated in the current directory:
- mosaic_*.png is the mosaic of the two images. Only linear blending is applied in the mosaicing process, with the purpose to show the quality of the image alignment.
- xformed_*.png are the transformed images. More specifically, image 1 is transformed into image 2’s coordinate system. These transformed images can be combined into a gif file (e.g. using GIMP or PhotoShop) or into a video file to show the quality of the alignment.
- xto_*.png are generated when using "-xform_as_to" switch. These images are cropped to have same dimension as the To image.
- mosaic_*.xform is a text file and contains the final estimate of the transformation parameters. The details of this file can be found here.
Notice
- Due to intensive memory usage, try to make the image resolution in the range of 400 to 2000 per dimension.
- The two images to be registered shall be either grayscale (1 channel) or color (3 channels). Mixing both is not encouraged.
- 16-bit image types are now supported! (either PNG or TIFF file formats are recommended)
Contact
Please send comments or questions to Prof. Chuck Stewart () or Gehua Yang ().
Back to project page
click here for the download counts
Last modified Date: May 29 2014