Introduction Our GPU-ASIFT implementation follows [2]. It aims to keep traffic between CPU and GPU to a minimum. Hence, our GPU-ASIFT directly inputs images to the GPU which computes SIFT key-points and descriptors without returning to the CPU. The algorithm has two main components. (1) Affine simulation We perform affine simulations with three separate CUDA kernels: Rotation, 1D Gaussian convolution, and directional sub-sampling. Results are stored in GPU memory and passed directly to Changchang Wu's SiftGPU without any GPU to CPU transfer overhead. (2) Sift detection Instead of David Lowe's sift implementation, we pass our simulation results to the CUDA version of Changchang Wu's SiftGPU which outputs the keypoints and descriptors. GPU-ASIFT's performance depends on the GPU used. Generally, better graphics cards have faster computation and more sift features. The current program is tuned for Nvidia cards with compute capability of 2.1 and 5.2. The program runs smoothly on other cards but may not exploit their full power. We do not support cards with compute capability lower than 1.3. Note that for large image sets, it helps if image size does not vary too much. If they do, it is better to re-start GPU-ASIFT for each image pair. The outputs of our GPU-ASIFT are binary files called .sift and .aux. The .sift files are fully compatible with VisualSFM and can be loaded directly. The .aux files store auxiliary information useful for our own matcher. On start, the program will query your graphics devices and chooses the best one to perform computations on. Currently, only Nvidia cards are supported. Results
Table 1: GPU-ASIFT running on GTX 980 with default settings, ASIFT running on Intel Core i7-4790 and 8.0 GB RAM
References [1] J. Morel and G. Yu, “Asift: A new framework for fully affine invariant image comparison,” SIAM Journal on Imaging Sciences, vol. 2, no. 2, pp. 438–469, 2009. [2] V. Codreanu, F. Dong, B. Liu, J. Roerdink, D. Williams, P. Yang, and B. Yasar, “Gpu-asift: A fast fully affine-invariant feature extraction algorithm,” International Conference on High Performance Computing and Simulation (HPCS), 2013. |
Home >