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アルゴリズムの高い計算コストが、リアルタイム応用における利用を制限するという問題に対処すること。
  • 非線形スケール空間、キーポイント検出、記述子計算を含むKAZEパイプライン全体を、アルゴリズム的正確性を損なわずGPGPUで高速化すること。
  • 全精度KAZEがCUDAを用いてGPUで効率的に並列化可能であることを示し、バイナリ記述子の近似による性能低下を回避すること。
  • 他の非線形スケール空間に基づくコンピュータビジョン手法に適用可能なGPU最適化実装戦略を提供すること。

提案手法

  • KAZEアルゴリズムをCUDA Cに移植し、非線形スケール空間構築、ヘッセ行列に基づくキーポイント検出、記述子計算の各段階をGPUカーネルを用いて並列化している。
  • 非線形スケール空間は、明示的有限差分スキームを用いてPerona-Malikの異方的拡散PDEを繰り返し解くことで構築され、画像画素ごとに並列化されている。
  • キーポイント検出は、空間的およびスケール位置すべてにおける3×3×σ-スケールヘッセ行列行列式の計算を並列化することで高速化されている。
  • 記述子計算は、各キーポイントをGPUスレッドブロックに割り当てることで並列化され、導関数へのアクセスにテクスチャメモリを用いて空間的局所性を活用している。
  • メモリアクセスは、メモリトランザクションのコalescingと、共有メモリ内での中間スケール空間レイヤーの再利用によって最適化されている。
  • CPUはカーネル起動とデータ転送のみを管理しており、非同期実行が可能で、一般計算のオフロードが実現されている。

実験結果

リサーチクエスチョン

  • RQ1元来のバイナリでないKAZEアルゴリズムを、性能劣化を伴わずGPUで効率的に高速化できるか?
  • RQ2全精度KAZE実装が、マルチスレッドCPUバージョンと比較して、GPU上でどの程度の高速化を達成できるか?
  • RQ3GPUとCPUの両方で、KAZEの3大段階(スケール空間、検出、記述子)における計算負荷の分配はどのように変化するか?
  • RQ4GPUメモリ最適化は、画像サイズの増加に伴うメモリフットプリントの増大をどの程度抑えるのか?

主な発見

  • 1920×1200の画像に対して、GPU-KAZE実装は16スレッドCPUバージョンと比較して7.8倍の高速化を達成し、実行時間を約2400 msから約300 msに短縮した。
  • 非線形スケール空間構築段階が最も大きな高速化寄与を示し、1200×1920の大きな画像に対しては、1つのCPUスレッドと比較して最大18倍の高速化を達成した。
  • 画像サイズが480×640から1200×1920に増加した際、GPU-KAZEのメモリ使用量は3倍に増加したが、CPU-KAZEは20倍に増加したため、GPUのメモリ最適化が優れていることが示された。
  • 正確な手順を用いた場合、GPU実装とCPU実装の両方で約2200個のキーポイントが検出され、キーポイント検出の正確性が保持されていることが確認された。
  • スケール空間構築(最大18倍)とキーポイント方向計算(最大200倍)で最も顕著な高速化が達成されたが、記述子計算は1つのCPUスレッドと比較して最大130倍の高速化を達成した。
  • 実装は全精度を維持しておりバイナリ記述子を避けており、アルゴリズムの頑健性に損なわれることなく、リアルタイム性能を実現している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。