GIST特征提取的异构并发流计算实现

  • 格式:pdf
  • 大小:818.06 KB
  • 文档页数:7

ComputerEngineeringandApplications计算机工程与应用 2015,51(6) 139 

GIST特征提取的异构并发流计算实现 

仲济源,梅魁志,温哲西 

ZHONG Jiyuan,MEI Kuizhi,WEN Zhexi 

西安交通大学电子与信息工程学院,西安7 1 0049 

School of Electronic and Information Engineering,Xi’an Jiaotong University,Xi’an 7 1 0049,China 

ZHONG Jiyuan,MEI Kuizhi,WEN Zhexi.Parallel stream computing implementation of GIST algorithm on hetero- geneous platform.Computer Engineering and Applications,2015,51(6):139-144. 

Abstract:To extract the global feature of GIST,a heterogeneous CPU+GPU collaborative computing and optimization is 

firstly implemented:CPU is used to complete the tasks of small amount of calculations and irregular data operations,such 

as image quantization and linear extension,while using GPU to complete the tasks with compute—intensive and highly par- allel data operations,such as filtering,Gabor feature extracting and dimension reducing.For processing image sequences, 

the thread pool technology is introduced on the CPU side.Through the use of each thread binding a CUDA stream for one image,the parallel stream computing for multiple images between CPU and GPU and the streaming data transmission 

delay hidden are achieved.Moreover thread pool technology also offers the methods of thread pre—creating,pre-allocating of resources and running thread number changing on resource,which can improve the computing efficiency of GPU 

scheduled by the CPU.Under the same computing accuracy,experiments show that GIST implementation on heteroge- 

neous computing platforms for images reaches 8.35~9.3 1 times speedup of the running on traditional CPU platform.and has an upgrading rate of 10.0%-37.2%for image sequences data while using the thread poo1. 

Key words:GIST;Compute Unified Device Architecture(CUDA);thread pool;heterogeneous computing 

摘要:针对图像GIST全局特征提取算法的计算任务,实现了CPU+GPU异构协同计算与优化:使用CPU完成图像 量化、线性延拓等小计算量、不规则的数据运算,使用GPU完成滤波、Gabor特征提取、降维等计算密集、高度并行的 

数据运算。面向图像序列的计算扩展,在CPU端引入线程池技术,通过每个线程都绑定一个CUDA流处理一幅图像 

的方法,实现了多幅图像并发流处理和流内数据传输延时的隐藏;利用线程池技术提供线程预创建、资源预分配及 

根据资源消耗情况的线程数量动态增减等方法,提高了CPU对GPU计算资源的调度使用效率。实验结果表明,在 保证同等精度的前提下,基于异构计算平台的图像GIST特征提取方法相比传统CPU平台达到8.35~9.31倍的加速 

比,在使用线程池之后算法处理图像序列数据时速度进一步提升10.0%~37.2%。 

关键词:GIST特征;统一计算设备架构(CUDA);线程池;异构计算 

文献标志码:A 中图分类号:TP391.4 doi:10.3778/j.issn.1002.8331.1407.0490 

1 引言 图像特征提取是目标识别、场景分类等计算机视觉 

应用的重要任务,其算法复杂且计算量较大,因此对计 

算能力提出了更高的要求。由于受到传统CPU架构的 限制,单纯通过增加内核数量已经不能显著提升CPU 

计算性能 】,而GPU强大的并行计算能力为包括图像特 

征提取算法在内的高计算并行度任务提供了良好的实 现平台,其计算优势体现为:GPU采用的SIMT(Single 

Instruction Multiple Threads,单指令多线程)指令架构 

能够显著提升浮点计算能力。GPU存储器层次更丰富、 

缓存体系更高效 ,具有更强的数据吞吐能力等。 

异构协同计算系统由于结合了CPU的逻辑处理能 

力和GPU的并行计算能力等优点,在计算密集型任务 

中得到广泛应用。Sinha SNt 等实现了基于异构计算平 

基金项目:国家高技术研究发展计 ̄(863)(No.2012AA010904);国家自然科学基金(No.61375023)。 作者简介:仲济源(1989一),男,硕士;梅魁志,通讯作者,男,副教授,研究领域为图像/视觉信息处理,嵌入式系统软件及应用; 温哲西(1990一),男,硕士生。E—mail:meikuizhi@mail.xjtu.edu.cn 收稿日期:2014.08.01 修回日期:2014—09—16 文章编号:1002—8331(2015)06.0139.

06 ComputerEngineeringandApplications计算机工程与应用 

台的SIFT[s-6]算法,对分辨率为640 ̄480的图像相比CPU 

平台获得了10倍加速比,采用OpenGL编程语言,其优 

点是可以跨平台,但代码执行效率不如CUDA架构。此 

外,异构计算也常用于加速计算机图形学算法,如凸包 

的并行化计算 等。 

Oliva和Torralba提出的GIST全局特征提取算法 , 

在场景分类应用中获得了较高的识别正确率。图像GIST 

特征是一种基于全局信息的语义描述符,其核心是通过 

Gabor变换提取全局特征。Jain等实现了基于异构计算 

平台的GIST算法 ,对分辨率为512×512的图像获得 

5.8倍加速比,但其使用的CPU与GPU具体性能参数未 

列出。Johnson等利用CUDA平台,实现了基于GIST特 

征的照片收集系统n”,但未给出所测试图像集的图像数 

量和分辨率,无法得出其具体的加速指标。本文通过有 

效划分计算任务实现了单幅图像GIST特征提取算法, 

在处理图像序列GIST特征提取时,提出并引入网络服 

务器领域的线程池技术,在异构计算平台的两端同时实 

现并发处理,提高了CPU对GPU计算资源的调度效率。 

2 GIST算法原理与异构计算平台实现 

2.1 GIST全局特征提取算法原理 

GIST算法对输入图像做滤波预处理后,利用多尺 度多方向(默认4个尺度8个方向)的Gabor滤波器组u 。 

提取图像的全局特征,最后对特征降维得到1×512的向 量即为GIST特征向量,其中Gabor滤波器特征提取(即 

Gabor变换)是整个算法的核心。 

本文使用的二维Gabor变换核函数(即二维高斯包 

络下的复变函数波),其定义式为: 

g (x, )=a-rag . . ( ,Y ) (1) 

= 唧 善+舌 

=a-m x・COS0+ ・sin0) (3) 

Y =a-m(一 ・sinO+y・COS01 (4) 

其中,0=nn/k,n e[o,k];a>1,m e[o,S];k为总方向个 

数,S为总尺度个数;a 为尺度变换系数。通过改变m, 

n的取值,即可获得一组尺度和方向均不同的滤波器。 

在Gabor变换具体实现时,本文采用将Gabor滤波 

器和图像数据经过快速傅里叶变换(FFT)分别映射到 

频域,使用频域相乘代替时域卷积,可以降低计算量提 

高实时性。有: 

w = g =ifft(fft(I)・fft( )) (5) 

其中, 为Gabor变换结果; 为预处理后图像数据; 

g 为Gabor变换核函数。 

该算法中包含的图像傅里叶变换与反变换、滤波处 

理、Gabor滤波器组频域矩阵创建、32次频域矩阵点乘、 降维等操作计算密集且高度并行,将其分配到GPU完 成。算法中包含的图像量化、线性延拓等操作计算量小 

且不规则,将其分配到CPU完成。 

2.2 GIST算法的异构计算平台实现 

基于异构计算平台的单幅图像GIST特征提取算法 

总体架构如图1所示。包括图像预处理、Gabor滤波器 

组创建、全局特征提取、降维四个模块,采用基于PCI.e 总线的数据传输通道串联异构计算系统的CPU指令执 

行通道和GPU指令执行通道。 

CPU 

CPU读图像 图像预处理 (CPU处理部分) 

参数准备 核函数启动 

计算结果 存入文件 PCI.e总线 数据传输 核函数启动 [== 

数据传输 垫 一一一一一一1/> 

数据传输 L————] \r———————一 GPU 

图像预处理 (GPU处理部分) 

构造Gabor滤 波器组频域矩阵 

全局特征提取 

降维得到 GIST特征向量 

CPU指令执行通道数据传输通道GPU指令执行通道 图1 基于异构计算平台的GIST算法总体设计 

2.2.1图像预处理 

图像预处理包括灰度化、像素点量化、线性延拓、滤 

波处理四个部分。其中线性延拓是指以图像边界为对 称轴做像素点的镜像映射,延拓图像以便后续滤波处 

理。灰度化、量化以及线性延拓虽然很容易提取并行性, 

但计算量不大,如若使用GPU会带来额外开销(核函数 

启动延时,数据传输延时等),选择用CPU来完成较合 

理,这可使CPU与GPU负载更加均衡。滤波处理包含 

两个步骤:第一步是低通滤波,去除高频成分,保留图像 

轮廓。第二步是局部对比度的归一化。算法根据线性 延拓之后的图像大小自适应确定滤波器的构造参数,这