基于CUDA的Adaboost算法并行实现
收稿日期: 2010-02-27
修回日期: 2010-05-31
网络出版日期: 2011-02-25
CUDABased Parallel Implementation of the Adaboost Algorithm
Received date: 2010-02-27
Revised date: 2010-05-31
Online published: 2011-02-25
Adaboost算法是一种用于目标检测的有效算法,自2001年应用于人脸检测以来,陆续有各种改进算法提出,旨在提高检测精度和适用范围。然而,训练一个Adaboost分类器仍然是一个很耗时间的过程。目前,CUDA与Adaboost结合的研究主要集中于在已有分类器的基础上加速目标检测的过程,构建实时目标检测系统。本文对Adaboost算法进行分析,针对其训练时间长的问题,结合GPU的硬件结构和CUDA的编程特点,从特征值计算和弱分类器训练两方面对其进行并行化,提出了基于CUDA的Adaboost算法的实现方法,优化了数据存储结构、访问方式和程序流程。在样本大小为19×19,样本数量为38 400的样本集上,获得了8.1倍的加速比。与传统方法相比,在提高训练速度的同时,保证了较好的分类效果。
程峰,李德华 . 基于CUDA的Adaboost算法并行实现[J]. 计算机工程与科学, 2011 , 33(2) : 118 -123 . DOI: 10.3969/j.issn.1007130X.2011.
The Adaboost algorithm is an efficient method for target detection. Since 2001, a lot of improvement has been proposed in order to improve the detection accuracy and the scope of application. However, the training of an Adaboost classifier is still a timeconsuming process. Currently, research on the combination of CUDA and Adaboost focuses on how to accelerate the process of object detection with existing classifiers. This paper analyzes the Adaboost algorithm,and the experimental results indicate that calculating the values of simple features and training weak classifiers consume most of the time. Then on the basis of the GPU hardware structure and CUDA, this paper presents a parallel implementation of the Adaboost algorithm aiming at accelerating the whole training process, and optimizes the data storage structure and data access efficiency. We test the implementation on a sample set which contains 38,400 samples of size 19×19 .The results show that 8.1 times speedup has been achieved with a good detection performance.
Key words: GPU;Adaboost;CUDA;face detection
[1]Viola P, Jones M. Rapid Object Detection Using a Boosted Cascade of Simple Features[C]∥Proc of the Conf on Computer Vision and Pattern Recognition, 2001:511518.
[2]Lienhart R, Maydt J. An Extended Set of Haarlike Features for Rapid Object Detection[C]∥Proc of ICIP’02, 2002:900903.
[3]Nvidia Corporation. NVIDIA CUDA Programming Guide Version 2.2[Z]. 2009.
[4]Fung J, Mann S. Using Graphics Devices in Reverse:GPUBased Image Processing and Computer Vision[C]∥Proc of the Int’l Conf on Multimedia and Expo’08,2008:912.
[5]Sharma B, Thota R, Vydyanathan N, et al. Towards a Robust, RealTime Face Processing System Using CUDAEnabled GPUs[C]∥Proc of the Conf on High Performance Computing,2009:368377.
[6]Bayazit M, CoutureBeil A, Mori G. RealTime MotionBased Gesture Recognition Using the GPU[C]∥Proc of the Conf on Machine Vision Applications,2009:912.
[7]Ghorayeb H, Steux B, Laurgeau C. Boosted Algorithms for Visual Object Detection on Graphics Processing Units[C]∥Proc of the 7th Asian Conf on Computer Vision,2006,3852:254263.
[8]Harvey J P. GPU Acceleration of Object Classification Algorithms Using NVIDIA CUDA [D].Rochester Institute of Technology,2009.
[9]Friedman J, Hastie T, Tibshirani R. Additive Logistic Regression:A Statistical View of Boosting[J]. The Annals of Statistics, 2008,28(2):337407.
[10]贾慧星,章毓晋.基于动态权重裁剪的快速Adaboost训练算法[J].计算机学报, 2009, 32(2):336341.
[11]王海川,张立明.一种新的Adaboost快速训练算法[J].复旦学报(自然科学版), 2004,43(1):2733.
[12]严云洋,郭志波,杨静宇.基于双阈值的增强型AdaBoost快速算法[J].计算机工程, 2007,33(21):172174.
/
| 〈 |
|
〉 |