论文部分内容阅读
图像特征提取与匹配是计算机视觉领域的基础研究问题,也是该领域的研究难题。在过去的数十年内,该问题持续是热点研究问题,国内外很多专家学者相继提出了很多特征提取与匹配的方法和理论,主要包括以SIFT、SURF为代表的局部特征提取算法。算法的各种变体在速度上都优于SIFT和SURF算法,然而,实验表明变体的准确率却远不如它们本身,所以研究SIFT和SURF算法的并行化优化成为当下一个重要的研究课题。图像处理的GPU优化成为解决该问题的一把利刃,GPU架构是专门为存在大量数据运算的应用而设计的,NVIDIA公司于2006年提出的基于GPU的CUDA编程架构更是把应用GPU编程实现图像处理优化问题的难度降到最低。本文主要工作是SIFT和SURF算法的GPU优化研究。文中所使用的GPU平台是NVIDIA公司的GTX550Ti。本文的重点研究问题是如何充分挖掘算法的内在并行性和如何充分利用CUDA架构的各种利于并行计算的软硬件优势。根据文献[9]提出的6个优化量度:程序的可并行度、每像素的浮点计算量与访存量比、每像素的浮点计算量、每像素的访存量、分支差异性、任务依赖性,对SIFT和SURF算法进行优化加速。对CUDA架构的分析将从硬件和软件两方面进行,根据硬件参数设计合适的线程格和线程块有利于合理充分的调度和利用GPU的硬件资源。从内存模型和线程模型两个方面来分析软件架构,CUDA提供了多达6、7种类型的内存,每种内存都有专门的用途,充分理解它们的作用和合理的利用有限的各种内存资源常常会达到意想不到的加速效果;合理的分配主机端和设备端的软硬件资源将明显的提高程序的性能,简化算法的并行逻辑,使得算法可以很好的应用于实时性要求较高的应用领域。实验表明,本文提出的SIFT和SURF算法的CUDA优化实现在各个阶段都有数倍到数十倍的提速效果。