透過您的圖書館登入
IP:3.237.186.170
  • 學位論文

以GPU加速Adaboost為基底之多物件辨識系統

A GPU-Accelerated Object Recognition System Using Adaboost Algorithm

指導教授 : 許雅三
若您是本文的作者,可授權文章由華藝線上圖書館中協助推廣。

摘要


由於Nvidia推出CUDA(Compute Unified Device Architecture),GPU(Graphic Processing Unit)在非電腦圖學外的領域,也有了快速的發展,CUDA使原本不是進行電腦圖學研究的程式開發者,也可以透過CUDA包裝好的函式,利用GPU進行運算,與CPU相較之下,單一GPU的執行指令速度雖然較慢,但當資料量夠大且經由適當安排時,GPU在單位時間內的產出可明顯優於CPU,惟目前CUDA支援於Nvidia開發的GPU。 除了CUDA外,由Khronos發表的OpenCL (Open Computing Language)也支援開發者在不需進行過多額外電腦圖學研究的情形下,使用GPU進行運算。 OpenCL不受開發商限制,可在各家廠商提供的GPU上進行開發,通用性較廣;但由於CUDA與Nvidia提供的硬體本身有較優良的整合對應關係,當使用的是Nvidia的GPU時,CUDA往往會有較顯著的效能增加。 近年來先進駕駛輔助系統(Advanced Driver Assistance Systems;ADAS)技術逐漸成熟,為了偵測周遭環境,提醒或提示駕駛因應下,系統判讀行人、交通號誌、車輛的準確率便越趨重要。傳統物件辨識的領域中常利用Adaboost演算法進行資料訓練,但訓練階段常需進行大量且繁複的計算,更新資料庫的速度因此受阻,對實際上路時的安全帶來隱憂,我們導入GPU進行萃取資料特徵及訓練資料庫的加速,在萃取資料特徵的部分,加快了6.12倍;而訓練資料庫的部分則較原始使用C++及單一CPU的時間加速了34.53倍。

並列摘要


Recently, programming on GPU has become the general solution of high performance computing. Various applications and frameworks are developed to utilize the power of GPU. CUDA, proposed by Nvidia, enables programmers who are not major in computer vision also benefit from GPU easily. CUDA is only available on Nvidia’s GPU; for other GPUs, OpenCL can be applied to deal with the similar work. OpenCL supports cross-platform programming and also can cooperate with CPU. However, the powerful advantage is obvious only when the data is massive. If the data is not enough to cover the communication and overhead of kernel launching, the performance of GPU may be worse than the version with single CPU thread due to GPU’s lower clock-rate and necessary data transportation. ADAS (Advanced Driver Assistance Systems) is used to remind or help drivers to act while the emergency occurs in the surroundings. For the safety, the ADAS is equipped with a front-view camera to detect other cars, pedestrian and traffic signs around. Traditionally, Adaboost algorithm is often applied to object recognition because of its wider usage and well trained results. However, because the computation of AdaBoost is extremely time-consuming, it is difficult to guarantee that the computations reflect the latest information in real time. To make sure the safety when the car is moving and the environment keeps changing, we would like to accelerate the original object recognition system with GPU. In our system, we applied CUDA to accelerate Feature Extraction and Adaboost Training. We do not focus on Adaboost Testing since it is as complex as Adaboost Training is. For these two parts, we adopted different strategies such as how the data is put in the memory, the amount of CUDA streams, trunk size, the size of block, etc. Finally, our system can gain 6.12x in Feature Extraction and 34.53x in Adaboost Training on Nvidia K20c. The accuracy and safety of ADAS become higher because the surroundings can be sensed more distinctly with Adaboost algorithm in GPU computing.

並列關鍵字

object recognition GPU adaboost

參考文獻


[28] Tao Li , Hua Li , Xuechen Liu , Shuai Zhang , Kai Wang and Yulu Yang ," GPU Acceleration of Interior Point Methods in Large Scale SVM Training ," 12th IEEE International Conference on Trust, Security and Privacy in Computing and Communications , pp. 863-870 , July 2013
[40] Seung In Park , Ponce. S.P. , Jing Huang , Yong Cao and Quek. F. ,” Low-Cost, High-Speed Computer Vision Using NVIDIA’s CUDA Architecture ,” 37th IEEE Applied Imagery Pattern Recognition Workshop (AIPR), pp. 1- 7 , Oct. 2008
[1] Freescale,”Advanced Driver Assistance Systems (ADAS),”
[3] Heidari. H. Chalechale. A. and Mohammadabadi. A.A. ," Accelerating of color moments and texture features extraction using GPU based parallel computing ," 8th Iranian Conference on Machine Vision and Image Processing (MVIP) , pp. 430 - 435 , Sept. 2013
[5] Malakar, R. and Vydyanathan. N. ," A CUDA-enabled Hadoop Cluster for Fast Distributed Image Processing ," National Conference on Parallel Computing Technologies (PARCOMPTECH), pp. 1-5 , Feb. 2013

延伸閱讀