Skip to main content
QUICK REVIEW

[论文解读] GPGPU Acceleration of the KAZE Image Feature Extraction Algorithm

B. Ramkumar, Ravi S. Hegde|arXiv (Cornell University)|Jun 21, 2017
Advanced Image and Video Retrieval Techniques参考文献 10被引用 3
一句话总结

本文提出了一种使用CUDA实现的GPGPU加速原始KAZE特征提取算法的版本,在不使用二值描述符的情况下,相较于16线程CPU版本实现了高达8倍的加速。该方法通过在非线性尺度空间构建、关键点检测和描述符计算阶段实现细粒度并行化,在保持完整算法保真度的同时,显著减少了高分辨率图像的运行时间。

ABSTRACT

The recently proposed open-source KAZE image feature detection and description algorithm offers unprecedented performance in comparison to conventional ones like SIFT and SURF as it relies on nonlinear scale spaces instead of Gaussian linear scale spaces. The improved performance, however, comes with a significant computational cost limiting its use for many applications. We report a GPGPU implementation of the KAZE algorithm without resorting to binary descriptors for gaining speedup. For a 1920 by 1200 sized image our Compute Unified Device Architecture (CUDA) C based GPU version took around 300 milliseconds on a NVIDIA GeForce GTX Titan X (Maxwell Architecture-GM200) card in comparison to nearly 2400 milliseconds for a multithreaded CPU version (16 threaded Intel(R) Xeon(R) CPU E5-2650 processsor). The CUDA based parallel implementation is described in detail with fine-grained comparison between the GPU and CPU implementations. By achieving nearly 8 fold speedup without performance degradation our work expands the applicability of the KAZE algorithm. Additionally, the strategies described here can prove useful for the GPU implementation of other nonlinear scale space based methods.

研究动机与目标

  • 为解决原始KAZE算法计算成本过高的问题,该问题限制了其在实时应用中的使用。
  • 通过GPGPU加速完整KAZE流水线(非线性尺度空间、关键点检测和描述符计算),在不损失算法准确性的前提下提升处理速度。
  • 证明全精度KAZE可在CUDA上高效并行化,避免因使用二值描述符近似导致的性能下降。
  • 提供一种适用于其他基于非线性尺度空间的计算机视觉方法的GPU优化实现策略。

提出的方法

  • 将KAZE算法移植至CUDA C,通过GPU内核并行化每个阶段——非线性尺度空间构建、基于Hessian的关键点检测和描述符计算。
  • 通过显式有限差分格式对Perona-Malik各向异性扩散PDE进行迭代求解,构建非线性尺度空间,并在图像像素上实现并行化。
  • 通过在所有空间位置和尺度上并行计算3×3×σ尺度Hessian行列式,加速关键点检测。
  • 通过将每个关键点分配给一个GPU线程块,并利用纹理内存优化导数访问的局部性,实现描述符计算的并行化。
  • 通过合并内存事务和在共享内存中重用中间尺度空间层,优化内存访问。
  • CPU仅负责内核启动和数据传输,实现异步执行并卸载通用计算。

实验结果

研究问题

  • RQ1原始的、非二值化的KAZE算法能否在GPU上实现高效加速而不造成性能下降?
  • RQ2与多线程CPU版本相比,全精度KAZE实现的GPU版本可达到多高的加速比?
  • RQ3在GPU和CPU上,KAZE的三个主要阶段(尺度空间、检测、描述符)的计算负载如何分布?
  • RQ4GPU内存优化在图像尺寸增大时,能在多大程度上减少内存占用的增长?

主要发现

  • 对于1920×1200的图像,GPU-KAZE实现相较于16线程CPU版本实现了7.8倍的加速,运行时间从约2400 ms减少至约300 ms。
  • 非线性尺度空间构建阶段对加速贡献最大,在使用单个CPU线程处理大图像(1200×1920)时,最高可达18倍加速。
  • 当图像尺寸从480×640增加到1200×1920时,GPU-KAZE的内存利用率仅增长3倍,而CPU-KAZE则增长20倍,表明GPU内存优化更具优势。
  • 在使用完全相同流程时,GPU实现与CPU版本检测到的关键点数量基本一致(约2200个),证实特征检测的准确性得以保持。
  • 加速效果在尺度空间构建阶段最为显著(最高达18倍),关键点方向计算最高达200倍加速,而描述符计算在单个CPU线程下最高可达130倍加速。
  • 该实现保持全精度并避免使用二值描述符,确保算法鲁棒性不降低,同时实现实时性能。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。