Accelerating ASIFT Based on CPU/GPU Synergetic Parallel Computing

Abstract

ASIFT(Affine-SIFT)是一种具有仿射不变性、尺度不变性的特征提取算法,其被用于图像匹配中,具有较好的匹配效果,但因计算复杂度高而难以运用到实时处理中.在分析ASIFT算法运行耗时分布的基础上,先对SIFT算法进行了GPU优化,通过使用共享内存、合并访存,提高了数据访问效率.之后对ASIFT计算中的其它部分进行GPU优化,形成GASIFT.整个GASⅡT计算过程中使用显存池来减少对显存的申请和释放.最后分别在CPU/GPU协同工作的两种方式上进行了尝试.实验表明,CPU负责逻辑计算、GPU负责并行计算的模式最适合于GAS-IFT计算,在该模式下GASIFT有很好的加速效果,尤其针对大、中图片.对于2048* 1536的大图片,GASIFT与标准ASIFT相比加速比可达16倍,与OpenMP优化过的ASIFT相比加速比可达7倍,极大地提高了ASIFT在实时计算中应用的可能性.ASIFT(affine-SIFT)is a fully affine invariant,and scale invariant image local feature extraction algorithm.It has a good result in image matching.But because of its high computational complexity,it cannot be applied to real-time processing.Thus GPU is used to accelerate ASIFT.Based on the analysis of running time of ASIFT,firstly SIFT was adapted to GPU,and then the other parts of ASIFT.Memory pool was used in GASIFT to avoid frequently allocating and deleting memory during the runtime.Different ways of CPU/GPU synergetic parallel computing were studied to make GASIFT more efficient.Experiments show that the model in which CPU takes the logical calculation work and GPU makes parallel computing is the most suitable way.Based on this model,GASIFT has a good speed-up ratio over other methods.That's 16times compared with traditional ASIFT,and 7times compared with OpenMP optimized ASIFT

    Similar works