王 直, 湯寧寧
(江蘇科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 鎮(zhèn)江 212003)
基于GPU的Harris圖像特征提取
王 直, 湯寧寧
(江蘇科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,江蘇 鎮(zhèn)江 212003)
船用鋼板的加工制造主要采用水火彎板的加工過(guò)程,隨著三維測(cè)量技術(shù)的發(fā)展,現(xiàn)代工業(yè)系統(tǒng)主要采用視覺(jué)測(cè)量技術(shù),它針對(duì)目標(biāo)鋼板的紋理特征不明顯的特點(diǎn),提出了一種點(diǎn)陣結(jié)構(gòu)光的方法來(lái)測(cè)量鋼板的三維形狀.通過(guò)對(duì)鋼板投影一些點(diǎn)陣,采用基于GPU的Harris加速角點(diǎn)檢測(cè)算法提取投影特征點(diǎn).實(shí)驗(yàn)結(jié)果表明,對(duì)于分辨率為995×646大小的圖像加速比提高了26.36倍.
點(diǎn)陣結(jié)構(gòu)光; GPU; Harris; 特征點(diǎn)提取
目前國(guó)內(nèi)的船舶企業(yè)在船體大型曲面分段加工環(huán)節(jié)仍使用人工水火彎板的加工方式,嚴(yán)重影響了船舶建造效率.而且,單純依靠人工的手段往往會(huì)有誤差,在誤差允許的范圍內(nèi)可以認(rèn)為達(dá)到了加工要求的標(biāo)準(zhǔn),一旦超出允許范圍就需要返工,這樣耗時(shí)、耗財(cái)、耗力.隨著科技的發(fā)展,利用計(jì)算機(jī)技術(shù)和數(shù)控技術(shù)來(lái)實(shí)現(xiàn)船用鋼板加工的自動(dòng)化,這對(duì)提高勞動(dòng)生產(chǎn)率、減輕工人勞動(dòng)強(qiáng)度、提高加工精度、縮短造船周期有著重大的意義.
物體三維幾何形狀的測(cè)量方法一般可分為接觸式和非接觸式兩大類.考慮加工環(huán)境等實(shí)際條件,一般采用非接觸式測(cè)量方法.目前主動(dòng)式的非接觸式視覺(jué)測(cè)量技術(shù)以結(jié)構(gòu)光法和相位移法優(yōu)勢(shì)最為顯著,測(cè)量原理都是基于光學(xué)三角法.由于結(jié)構(gòu)光法快速、精確、簡(jiǎn)便,因而廣泛應(yīng)用在三維物體面型測(cè)量中.文中采用光學(xué)投影儀投影點(diǎn)陣結(jié)構(gòu)光[1],投影點(diǎn)陣包含足夠的信息量以用來(lái)測(cè)量.圖形處理器(graphics processing unit,GPU)的快速發(fā)展,已被廣泛應(yīng)用到視覺(jué)模擬、圖像處理、數(shù)值計(jì)算等領(lǐng)域.Harris檢測(cè)算法,不受攝像機(jī)姿態(tài)以及光照的影響,是效果比較好的一種算法.為提高Harris角點(diǎn)檢測(cè)算法提取特征點(diǎn)的速度,利用現(xiàn)代圖形處理硬件來(lái)實(shí)現(xiàn)算法,對(duì)特征點(diǎn)檢測(cè)設(shè)計(jì)并行算法,實(shí)現(xiàn)基于GPU的Harris特征點(diǎn)提取并行算法.
1.1 Harris角點(diǎn)檢測(cè)算法原理
圖像特征是指一幅圖像中“有趣”的部分,是進(jìn)文獻(xiàn)[2-3]在Moravec算子的基礎(chǔ)上提出了Harris角點(diǎn)檢測(cè)算法,Harris采用了新的角點(diǎn)判定方法,算子用Taylor展開去近似任意方向.以點(diǎn)(x,y)為中心的鄰域內(nèi),計(jì)算矩陣M,矩陣形式即
(1)
式中:Ix為x方向的差分,Iy為y方向的差分,w(x,y)為高斯函數(shù).
矩陣M的兩個(gè)特征向量I1和I2與矩陣M的主曲率成正比,如果兩個(gè)曲率值都高,那么就認(rèn)為該點(diǎn)是特征點(diǎn).Harris利用λ1,λ2來(lái)表征變化最快和最慢的兩個(gè)方向.若兩個(gè)都很大則就是角點(diǎn);一個(gè)大一個(gè)小就是邊緣;兩個(gè)都小就是在變化緩慢的圖像區(qū)域.
矩陣特征值的求解過(guò)程運(yùn)算量大,為提高Harris角點(diǎn)檢測(cè)的效率,實(shí)際計(jì)算時(shí)并不直接計(jì)算特征值,而是根據(jù)矩陣對(duì)角線元素和行列式之間的關(guān)系來(lái)進(jìn)行判斷.兩個(gè)特征值的和等于矩陣M的跡(trace),兩個(gè)特征值的積等于矩陣M的行列式.所以用下式來(lái)判定角點(diǎn)質(zhì)量:
R=det(M)-k·trace2(M)
(2)
式中:k常取0.04~0.06.det(M)在邊緣處較小而在角點(diǎn)處較大,trace(M)在邊緣和角點(diǎn)處保持一致.因此,當(dāng)像素點(diǎn)(x,y)的R值為局部最大時(shí),即為角點(diǎn).
1.2 Harris算法的GPU實(shí)現(xiàn)
1.2.1 CUDA技術(shù)概述
多年來(lái)計(jì)算機(jī)圖形處理器(GPU)以大大超過(guò)摩爾定律的速度高速發(fā)展,從而極大地提高了計(jì)算機(jī)圖形處理的速度,并促進(jìn)了與計(jì)算機(jī)圖形相關(guān)應(yīng)用領(lǐng)域的快速發(fā)展.與此同時(shí),圖形處理器繪制流水線的高速度和并行性以及近年來(lái)發(fā)展起來(lái)的可編程功能為圖形處理以外的通用計(jì)算提供了良好的運(yùn)行平臺(tái).這些都加速了NVIDIA公司推出的CUDA技術(shù).
CUDA編程[4-5]模型將CPU作為主機(jī)(Host),GPU作為CPU的協(xié)處理器(co-processor)或者設(shè)備(device).CPU通過(guò)調(diào)用GPU的內(nèi)核函數(shù)(kernel)來(lái)給GPU分配計(jì)算任務(wù).CUDA采用SIMT(single instruction multiple thread,單指令多線程)執(zhí)行模型實(shí)現(xiàn)GPU計(jì)算.CUDA編程模型最重要的創(chuàng)新是在同一個(gè)block中的線程,可以進(jìn)行數(shù)據(jù)通信.這一特性可以顯著提高執(zhí)行效率,并大大拓展了GPU可以適用的范圍.
1.2.2 Harris GPU實(shí)現(xiàn)過(guò)程
利用GPU技術(shù)實(shí)現(xiàn)Harris算法,算法中有多個(gè)步驟是由GPU以并行的方式進(jìn)行的:
1)用OpenCV載入彩色圖像并初始化圖像.
2)將CPU中圖像以紋理形式傳送到GPU中,GPU上的基本數(shù)組數(shù)據(jù)結(jié)構(gòu)是紋理和頂點(diǎn)數(shù)組,CPU上任何數(shù)據(jù)數(shù)組都能在GPU上使用紋理代替.
3)將Harris特征點(diǎn)提取算法以片段程序的形式融入到GPU的渲染管線中[6],GPU圖形處理管線如圖1.
4)啟動(dòng)渲染過(guò)程,渲染過(guò)程實(shí)現(xiàn)將片段程序的結(jié)果寫入存儲(chǔ)器中.
5)將紋理數(shù)據(jù)回傳CPU并顯示.
該實(shí)現(xiàn)過(guò)程中GPU和CPU的任務(wù)分配如圖2.
圖1 GPU圖形處理管線
圖2 GPU和CPU的任務(wù)分配
其中,步驟3)中Harris特征點(diǎn)提取算法處理過(guò)程又可以分為兩步:① 根據(jù)1.1節(jié)中提到的Harris角點(diǎn)檢測(cè)算法原理,確定衡量角值的函數(shù),并根據(jù)函數(shù)計(jì)算圖像中每個(gè)像素的角值.角值大于預(yù)先指定閾值的像素就會(huì)被保留下來(lái)作為候選點(diǎn).角值函數(shù)反映的是圖像變化的劇烈程度或是圖像邊緣曲線上的曲率.② 非極值抑制從候選點(diǎn)中挑選出具有局部極值的點(diǎn)作為角點(diǎn),這保證每個(gè)位置的角點(diǎn)具有唯一性.
上述兩步算法的實(shí)現(xiàn)分析:
首先是角值計(jì)算的過(guò)程.將CPU中圖像以紋理形式載入GPU的顯存中,根據(jù)函數(shù)計(jì)算圖像中像素的角值,小于閾值的角值被置零,即表明該點(diǎn)不是角點(diǎn),其余點(diǎn)被保留下來(lái)作為角點(diǎn)的候選點(diǎn).這個(gè)過(guò)程作為片段程序被GPU中的多個(gè)片段處理器并行調(diào)用,也即是步驟3)的過(guò)程.這正是GPU具有高效并行計(jì)算能力的主要原因.
其次是非極值抑制[7]過(guò)程.利用收斂算法進(jìn)行非極值抑制.該算法需要運(yùn)行若干次直到所有點(diǎn)被判定為止.在每次執(zhí)行中并行判斷圖像中每個(gè)點(diǎn),當(dāng)確定某點(diǎn)是角點(diǎn),把角值置為1,即表明該點(diǎn)是角點(diǎn).判斷的標(biāo)準(zhǔn)分為兩種情況:
1)當(dāng)前點(diǎn)角值為0或1,說(shuō)明當(dāng)前該點(diǎn)已經(jīng)確定是否為角點(diǎn).
2)如果當(dāng)前點(diǎn)角值為其它值,說(shuō)明該點(diǎn)未被確定是否為角點(diǎn),則需要進(jìn)一步判斷:①假如當(dāng)前點(diǎn)存在任何鄰點(diǎn)角值為1,就把該點(diǎn)角點(diǎn)置0,說(shuō)明當(dāng)前點(diǎn)存在鄰點(diǎn)是角點(diǎn),當(dāng)前點(diǎn)即不是角點(diǎn);②假如當(dāng)前點(diǎn)的所有鄰點(diǎn)的角值都不為1,并且當(dāng)前點(diǎn)角值比所有鄰點(diǎn)角值都大,就把當(dāng)前點(diǎn)的角值置1,即當(dāng)前點(diǎn)是角點(diǎn).
算法執(zhí)行后,仍會(huì)有一些點(diǎn)沒(méi)有確定是否為角點(diǎn),算法下一次的執(zhí)行又要開始,整個(gè)過(guò)程重復(fù)上面的步驟,直到所有點(diǎn)有確定的結(jié)果.
2.1 實(shí)驗(yàn)運(yùn)算平臺(tái)
硬件平臺(tái):CPU為Pentium(R) Dual-Core E5500,主頻2.80GHz,系統(tǒng)內(nèi)存2.00GB;GPU為NVIDIA GeForce 9600M GT,顯存1GB,顯卡的核心頻率為640MHz.
軟件平臺(tái):操作系統(tǒng)為Microsoft Windows XP,Microsoft Visual Studio 2008,CUDA Toolkit 3.2.16,NVIDIA GPU Computing SDK 3.2.16,OpenCV_2.4.2.
2.2 實(shí)驗(yàn)結(jié)果分析
圖3為單反相機(jī)拍攝的投影點(diǎn)陣結(jié)構(gòu)光的船用鋼板原圖像,圖4為基于GPU的Harris特征點(diǎn)提取后的圖像.
本實(shí)驗(yàn)統(tǒng)計(jì)了同一幅大小相等的圖像處理的運(yùn)行時(shí)間,最后取平均值,得到實(shí)驗(yàn)結(jié)果(表1).
表1 GPU與CPU計(jì)算效率比較
由表1可以看出:基于GPU的Harris特征點(diǎn)提取效率明顯高于傳統(tǒng)算法下CPU的特征點(diǎn)提取運(yùn)行效率.其次,由于GPU強(qiáng)大的并行計(jì)算處理能力,推測(cè)圖像越大越復(fù)雜,計(jì)算效率比CPU越高,直接提高了算法在實(shí)際應(yīng)用中的實(shí)時(shí)性、快速性、有效性.由于文中僅檢驗(yàn)GPU的加速情況,故采用的是壓縮后的圖像,實(shí)際中圖像比本文采集到圖像大幾十甚至百倍.最后,由于顯卡性能的影響,不同性能的顯卡加速比是不同的,越是高端的顯卡處理速度越快,加速比越大.
圖3 投影點(diǎn)陣結(jié)構(gòu)光船用鋼板
圖4 基于GPU的Harris特征點(diǎn)提取
通過(guò)利用當(dāng)前顯卡中的圖形處理單元,Harris算法的GPU實(shí)現(xiàn)與普通的CPU實(shí)現(xiàn)相比大大提高了實(shí)時(shí)性.但是,在實(shí)現(xiàn)的過(guò)程中,并不是所有的步驟都在GPU上快速實(shí)現(xiàn)的,而是整個(gè)實(shí)現(xiàn)過(guò)程采用CPU和GPU混合實(shí)現(xiàn)的方式進(jìn)行的.由文中實(shí)驗(yàn)結(jié)果可知,Harris算法特征點(diǎn)提取的效率還有進(jìn)一步提高的空間,使運(yùn)算速度和效率在現(xiàn)有的基礎(chǔ)上都能得到新的提升.
References)[1] 王直,趙越超.基于計(jì)算機(jī)視覺(jué)的鋼板測(cè)量系統(tǒng)研究[J].江蘇科技大學(xué)學(xué)報(bào):自然科學(xué)版,2013,27(1):70-73. Wang Zhi, Zhao Yuechao. Study of a measurement system for steel plates based on computer vision[J].JournalofJiangsuUniversityofScienceandTechnology:NaturalScienceEdition, 2013,27(1): 70-73.(in Chinese)
[2] 王崴,唐一平,任娟莉,等. 一種改進(jìn)的Harris角點(diǎn)提取算法[J].光學(xué)精密工程,2008,16(10):1995-2001. Wang Wei, Tang Yiping, Ren Juanli,et al. An improved algorithm for Harris corner detection[J].OpticsandPrecisionEngineering, 2008,16(10):1995-2001.(in Chinese)
[3] 肖漢,周清雷, 張祖勛. 基于多GPU的Harris角點(diǎn)檢測(cè)并行算法[J].武漢大學(xué)學(xué)報(bào):信息科學(xué)版,2012,37(7):876-881. Xiao Han, Zhou Qinglei, Zhang Zuxun. Parallel algorithm of Harris corner detection based on Multi-GPU[J].GeomaticsandInformationScienceofWuhanUniversity, 2012,37(7):876-881.(in Chinese)
[4] 張樹,褚艷利.GPU高性能運(yùn)算之CUDA[M].北京:清華大學(xué)出版社,1997.
[5] 董犖,葛萬(wàn)成,陳康力.CUDA并行計(jì)算的應(yīng)用研究[J].信息技術(shù),2010(4):11-15. Dong Luo, Ge Wancheng, Chen Kangli. Study on application of parallel computation on CUDA[J].InformationTechnology,2010(4):11-15.(in Chinese)
[6] 朱遵尚,劉肖琳.基于GPU的實(shí)時(shí)亞像素Harris角點(diǎn)檢測(cè)[J].計(jì)算機(jī)工程,2010,36(12):213-215. Zhu Zunshang, Liu Xiaolin. Real-time sub-pixel Harris corner detection based on graphics processing unit[J].ComputerEngineering, 2010,36(12):213-215.(in Chinese)
[7] 吳頎峰. 基于GPU的數(shù)字圖像處理算法研究[D].江西贛州:江西理工大學(xué),2011.
(責(zé)任編輯: 曹 莉)
Harris image feature extraction based on GPU
Wang Zhi, Tang Ningning
(School of Computer Science and Engineering, Jiangsu University of Science and Technology, Zhenjiang Jiangsu 212003, China)
The manufacturing of hull steel is mainly adopted for line heating. With the technology innovation and the development of 3D measurement techniques, modern industrial system is mainly used for visual measurement technology. Because of unclear texture of the target steel, a point-array structured light method is used for the measurement of 3D shape. This paper uses the algorithm of Harris corner detection based on GPU to extract these projected feature points on the steel plate. Experimental results show that GPU can implement nearly 26.36 times speedup rate for the resolution of 995×646.
point-array structured light; GPU; Harris; feature points extraction
10.3969/j.issn.1673-4807.2014.03.015
2013-06-29
王 直(1963—),男,教授,研究方向?yàn)橐曈X(jué)檢測(cè)、導(dǎo)航控制等.E-mail:cw@just.edu.cn
TP391
A
1673-4807(2014)03-0277-03
行許多其他高級(jí)計(jì)算機(jī)圖像分析的起點(diǎn),因此算法成功與否與特征的定義和特征提取的結(jié)果有很大關(guān)系.