潘聰,黃魯
?。ㄖ袊茖W(xué)技術(shù)大學(xué) 信息科學(xué)技術(shù)學(xué)院,安徽 合肥 230026)
摘要:基于FPGA實(shí)現(xiàn)了一種自適應(yīng)閾值Harris角點(diǎn)檢測,用于解決低成本ARM處理器無法實(shí)時(shí)檢測到目標(biāo)角點(diǎn)的問題。該算法首先對整幀像素點(diǎn)進(jìn)行預(yù)篩選,將篩選通過的點(diǎn)進(jìn)行Harris角點(diǎn)檢測,通過設(shè)置容忍距離剔除偽角點(diǎn),得到最終角點(diǎn)并通過LCD屏實(shí)時(shí)顯示。采用自適應(yīng)閾值方法來解決單一閾值不適應(yīng)于多樣化環(huán)境的問題,使每幀(分辨率為480×272)都能檢測到大約120個(gè)角點(diǎn),在低成本FPGA芯片Spartan6 XC6SLX45上驗(yàn)證實(shí)現(xiàn)。實(shí)驗(yàn)結(jié)果表明,該實(shí)現(xiàn)方法處理速度為115 f/s,能高效準(zhǔn)確地檢測到目標(biāo)角點(diǎn),滿足精度、穩(wěn)定性和實(shí)時(shí)性要求。
關(guān)鍵詞:角點(diǎn)檢測;預(yù)篩選;自適應(yīng)閾值;FPGA
0引言
圖像處理中角點(diǎn)有多種定義,如圖像邊界上曲率足夠大的點(diǎn)[1]、圖像邊界上曲率變化明顯的點(diǎn)[2]、圖像邊界方向變化不連續(xù)的點(diǎn)[3]、圖像中梯度值和梯度變化率都很高的點(diǎn)[4]等。
Harris角點(diǎn)檢測算法在計(jì)算機(jī)視覺領(lǐng)域中應(yīng)用廣泛,是很關(guān)鍵的前期步驟,如果角點(diǎn)檢測的精度或者速度達(dá)不到要求,將直接導(dǎo)致后期處理無法正常進(jìn)行。低成本的ARM處理器很難達(dá)到實(shí)時(shí)角點(diǎn)檢測的效果,綜合考慮,低成本FPGA芯片實(shí)現(xiàn)Harris角點(diǎn)檢測是最佳方案。本文設(shè)計(jì)的基于FPGA的Harris角點(diǎn)檢測實(shí)現(xiàn)方案相比于傳統(tǒng)方法,增加了角點(diǎn)預(yù)篩選步驟和自適應(yīng)閾值的步驟,在XC6SLX45芯片為主的硬件平臺上得到了驗(yàn)證。實(shí)驗(yàn)結(jié)果證明,檢測到角點(diǎn)的精度和實(shí)時(shí)效果都能達(dá)到工程要求。
1Harris角點(diǎn)檢測原理
Harris算子步驟[5]如下:
?。?)利用水平、豎直相鄰像素值之差求得Ix、Iy,進(jìn)而求得M矩陣中4個(gè)元素的值。
(2)對M的4個(gè)元素進(jìn)行高斯濾波,得到新的矩陣N。
(3)計(jì)算每個(gè)像素的角點(diǎn)響應(yīng)值R,公式如下:
選取k為0.04。
?。?)R大于閾值且滿足容忍距離的點(diǎn)認(rèn)為是角點(diǎn)。
2系統(tǒng)設(shè)計(jì)方案
2.1硬件環(huán)境
FPGA芯片通過I2C接口對攝像頭的寄存器進(jìn)行配置,采集30 f/s幀頻、分辨率為480×272的灰度圖像。由于光照對角點(diǎn)檢測影響很大,需要先對采集進(jìn)來的圖像做直方圖均衡,將均衡后的圖像通過DPRAM進(jìn)行4行緩存后進(jìn)行Harris角點(diǎn)檢測邏輯運(yùn)算,將檢測到的角點(diǎn)在原圖上以黑色點(diǎn)的形式實(shí)時(shí)顯示在LCD上,如圖1所示。
2.2硬件實(shí)現(xiàn)
本文的實(shí)現(xiàn)思路如下:(1)對直方圖均衡后的圖像進(jìn)行預(yù)篩選;(2)對篩選通過的像素點(diǎn)進(jìn)行角點(diǎn)檢測運(yùn)算,將R大于閾值的像素點(diǎn)記為角點(diǎn);(3)采用容忍距離剔除偽角點(diǎn),得到最終角點(diǎn)。自適應(yīng)閾值的思路是:第一幀圖像的閾值人為設(shè)定,從第二幀開始閾值由其前一幀的最大R值和角點(diǎn)數(shù)目得到。
硬件實(shí)現(xiàn)方法分為4個(gè)模塊:角點(diǎn)預(yù)篩選模塊、高斯濾波模塊、角點(diǎn)剔除模塊、自適應(yīng)閾值模塊。具體實(shí)現(xiàn)電路如圖2所示。
2.2.1角點(diǎn)預(yù)篩選模塊
角點(diǎn)預(yù)篩選模塊包括窗口生成邏輯,x/y方向?qū)?shù)計(jì)算邏輯,角點(diǎn)預(yù)篩選邏輯。窗口生成邏輯利用16個(gè)8 bit寄存器和3個(gè)深度為476、寬度為8的DPRAM構(gòu)成,如圖3所示。
x/y方向?qū)?shù)邏輯分別計(jì)算x、y方向上的導(dǎo)數(shù),計(jì)算方法是分別將4×4方形窗口的相鄰兩個(gè)像素相減(如圖4所示)。
對圖像進(jìn)行預(yù)篩選能有效提高算法的處理速度。預(yù)篩選邏輯的思想為:如果中心點(diǎn)像素的灰度值之差的絕對值小于閾值t,則判定中心點(diǎn)與周邊像素點(diǎn)相似,否則認(rèn)為與周邊像素點(diǎn)差異較大。一般情況下當(dāng)兩個(gè)黑白圖像中的點(diǎn)的像素灰度差值小于像素灰度最大值的10%~15%時(shí),人眼難以分辨[6]。本文選取閾值為35,預(yù)篩選實(shí)現(xiàn)電路如圖5所示。
2.2.2高斯濾波模塊
乘2、乘4利用簡單的移位操作,除16則直接去掉低4位作為計(jì)算結(jié)果。避免使用乘法器和除法器,節(jié)省了大量的硬件資源。對這3個(gè)系數(shù)同時(shí)進(jìn)行高斯濾波(如圖6)能最大程度地發(fā)揮并行優(yōu)勢,提高運(yùn)算速度。
2.2.3角點(diǎn)剔除模塊
角點(diǎn)剔除模塊包括角點(diǎn)響應(yīng)值計(jì)算邏輯,R值比較邏輯,偽角點(diǎn)篩選邏輯。
為了方便實(shí)現(xiàn),現(xiàn)將k值取5/128,乘以5的計(jì)算邏輯可以轉(zhuǎn)化為左移兩位的移位寄存器和一個(gè)加法器,除以128可以直接去掉低7位作為計(jì)算結(jié)果。
R值比較邏輯是為了得到每幀圖像計(jì)算得到的最大R值,實(shí)現(xiàn)電路如圖7所示。
如果大于閾值則認(rèn)為該像素點(diǎn)是角點(diǎn)(其中包含很多偽角點(diǎn))。在一定區(qū)域范圍內(nèi)只允許有一個(gè)角點(diǎn),本文利用寄存器和linebuffer設(shè)置25個(gè)像素點(diǎn)的容忍距離,當(dāng)feature信號的25 bit按位或非取值為1時(shí)表示該像素點(diǎn)為最終角點(diǎn)。圖8為角點(diǎn)剔除邏輯實(shí)現(xiàn)電路。
2.2.4自適應(yīng)閾值模塊
傳統(tǒng)方法設(shè)置單一的常量閾值,無法滿足多樣化環(huán)境,本文采用自適應(yīng)閾值的方法來解決這個(gè)問題。只有第一幀圖像的閾值是人為設(shè)置,其余幀的閾值則是由前一幀的最大角點(diǎn)響應(yīng)值Rmax和檢測到的角點(diǎn)數(shù)目來得到(如表1)。
選取一系列多種環(huán)境下的圖像進(jìn)行實(shí)驗(yàn),不斷調(diào)整設(shè)定的p值[7]來適應(yīng)絕大多數(shù)圖像,經(jīng)數(shù)據(jù)統(tǒng)計(jì)發(fā)現(xiàn)p取1.5×10-7~2.5×10-7時(shí),基本上能檢測到所有角點(diǎn),且錯(cuò)誤角點(diǎn)和漏檢角點(diǎn)都較少。本文最終選取的p值為2.3×10-7,約為2-22。
3實(shí)驗(yàn)結(jié)果
硬件平臺角點(diǎn)檢測實(shí)時(shí)效果見圖9,局部放大效果見圖10。
3.1資源占用分析
FPGA資源消耗如表2。
3.2實(shí)時(shí)性分析
本文提出了采用50 MHz時(shí)鐘頻率作為系統(tǒng)時(shí)鐘,Harris角點(diǎn)檢測算法處理每幀圖像(檢測大約120個(gè)角點(diǎn))消耗時(shí)間為8.7 ms左右。經(jīng)過測試,在檢測相同角點(diǎn)數(shù)目的情況下,PC耗時(shí)大約是15 ms,ARM系統(tǒng)上耗時(shí)大約是120 ms。相比較可以知道,本文提出的實(shí)現(xiàn)方案能夠很好地滿足后續(xù)處理的實(shí)時(shí)性要求。
4結(jié)論
本文提出了一種基于FPGA的自適應(yīng)Harris角點(diǎn)檢測實(shí)現(xiàn)方法,試驗(yàn)結(jié)果表明此方法能檢測到足夠數(shù)目的有效角點(diǎn),充分發(fā)揮FPGA硬件平臺的并行優(yōu)勢,相比于傳統(tǒng)的算法運(yùn)算速度有大幅度提高,能很好地滿足實(shí)時(shí)性要求。因此,此硬件實(shí)現(xiàn)方案,在精度和速度上都可滿足實(shí)際工程應(yīng)用需要。
參考文獻(xiàn)
?。?] SMITH S M, BRADY J M. SU SAN—a new approach to low level image processing [ J]. International Journal of Computer Vision, 1997, 23(1): 45-78.
?。?] ZUNIGA O A,HARALICK R M. Corner detection using the facet model[C].Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Piscataway , USA: IEEE, 1983: 30-37.
[3] SHEU H T, HU W C. A rotationally invariant two phase scheme for corner detection [J]. Pattern Recognition, 1996, 29(5): 819-828.
?。?] WU Z Q, ROSENFELD A. Filtered projections as an aid in corner detection[J]. Pattern Recognition, 1983,16(1):31-38.
?。?] 李博. 圖像的不變特征檢測與描述研究[D]. 重慶:重慶大學(xué),2007.
[6] 周大偉,耿金玲,鄭繼明,等.一種基于人眼視覺特性的ROI漸進(jìn)圖像傳輸算法[J].計(jì)算機(jī)應(yīng)用,2007,27(7):1654 1656,1673.
[7] 沈士喆,張小龍,衡偉,等.一種自適應(yīng)閾值的預(yù)篩選Harris角點(diǎn)檢測方法[J].數(shù)據(jù)采集與處理,2011,26(2):207-213.