Geospatial Image Registration and Alignment using Features (GIRAF)
Exploring Parallelization of Nearest Neighbor Search and Clustering in High-Dimensional Space on Emerging Parallel Architectures with Applications in Computer Vision
This project explores alternative parallelization techniques for
very large-scale data-intensive applications on emerging new parallel
architectures, including distributed memory compute clusters using
multicore and GPGPU processors. The experimental environment includes
an application and system for large-scale image classification and
orientation suitable for use in geographic information systems. The ultimate goal of this research is to leverage large scale
systems, especially storage, to provide services to end users in the
form of geospatial data. The research leverages
CUDA and MPI
programming and explores appropriate techniques for massively parallel processing of multiple terabytes of
aerial and satellite imagery.
Some information about combining MPI programming with CUDA kernels are available on the CUDA+MPI page.
More information on the GIRAF project (PDF).
Accelerating Image Feature Comparisons using CUDA on Commodity Hardware
Image registration establishes a correspondence between two or more images, allowing them to be aligned, overlapped, and transformed into a common coordinate system. The images may be photographs of the same scene taken at different times, with different cameras, and from different viewpoints. Georeferencing is one application of image registration. The location of an unknown photograph can be established by determining its relationship to photographs with known geographical coordinates. One of the figures shown is a group of overlapping aerial photos of the same scene, but the relative location of each photo was not recorded. Using image registration, the photos can be oriented to photos with known locations and to each other, producing a mosaic shown in another figure. Image registration techniques can be broadly categorized as direct or feature-based. While direct algorithms may attempt to correlate images based on pixel intensity, feature-based registration requires that images first be transformed into a set of features. These features are typically points in the image, but can be other entities such as edges or gradients. Once the features in an image are found, feature-based image registration will search for matching features from other images, rather than directly comparing the images. If matching features can be correlated, then the images can be transformed into a common coordinate system.


Autonomously registering and orienting a block of images is computationally intensive. The image are first analyzed, and features that will be used for matching are extracted. All extracted features are compared to each other to find images that share overlapping regions. The process of finding corresponding features between images has been accelerated on GPGPUs. The figures below show that the GPGPU version is approximately 75 times faster than the CPU version.


Matching two sizeable images (more than 40,000 features each) used to take 90 minutes. With GPGPU acceleration, matching those same images takes 5 minutes.
This work was supported in part by the National Science Foundation under grant #0947679.
