Computing OpenSURF on OpenCL and General Purpose GPU

Computing OpenSURF on OpenCL and General Purpose GPU
复制标题

DOI:
10.5772/57057
复制
发表时间:
2013-10
影响因子:
2.3
通讯作者:
Wanglong Yan;Xiaohua Shi;Xin Yan;Lina Wang
Wanglong Yan;Xiaohua Shi;Xin Yan;Lina Wang
中科院分区:
计算机科学4区
文献类型:
--
作者:
Wanglong Yan;Xiaohua Shi;Xin Yan;Lina Wang

文献摘要

相似文献

加速鲁棒特征(SURF)算法在计算机视觉领域广泛应用于图像特征检测与匹配。开放计算语言(Open Computing Language, OpenCL)是一个框架,用于编写跨cpu、gpu和其他处理器组成的异构平台执行的程序。本文介绍了如何利用OpenCL在通用GPU上实现开源的SURF程序OpenSURF,并详细讨论了线程体系结构和内存模型方面的优化。我们最终的OpenSURF的OpenCL实现比NVidia的GTX660和GTX460SE gpu上的OpenCV SURF v2.4.5 CUDA实现分别快37%和64%。我们的OpenCL程序在NVidia的GTX660 GPU, NVidia的GTX460SE GPU和AMD的Radeon HD 6850 GPU上实现了几乎所有不同尺寸的输入图像的实时性能(bbb25帧/秒),从320*240到1024*768。我们在NVidia的GTX660 GPU上采用的OpenCL方法比英特尔双核E5400 2.7G的原始CPU版本平均快22.8倍以上。
Speeded-Up Robust Feature (SURF) algorithm is widely used for image feature detecting and matching in computer vision area. Open Computing Language (OpenCL) is a framework for writing programs that execute across heterogeneous platforms consisting of CPUs, GPUs, and other processors. This paper introduces how to implement an open-sourced SURF program, namely OpenSURF, on general purpose GPU by OpenCL, and discusses the optimizations in terms of the thread architectures and memory models in detail. Our final OpenCL implementation of OpenSURF is on average 37% and 64% faster than the OpenCV SURF v2.4.5 CUDA implementation on NVidia's GTX660 and GTX460SE GPUs, repectively. Our OpenCL program achieved real-time performance (>25 Frames Per Second) for almost all the input images with different sizes from 320*240 to 1024*768 on NVidia's GTX660 GPU, NVidia's GTX460SE GPU and AMD's Radeon HD 6850 GPU. Our OpenCL approach on NVidia's GTX660 GPU is more than 22.8 times faster than its original CPU version on Intel's Dual-Core E5400 2.7G on average.