Laplacian圖像邊緣檢測器的FPGA實現(xiàn)研究
邊緣可定義為圖像中灰度發(fā)生急劇變化的區(qū)域邊界,它是圖像最基本的特征,是圖像分析識別前必不可少的環(huán)節(jié),是一種重要的圖像預(yù)處理技術(shù)。邊緣檢測主要就是(圖像的)灰度變化的度量、檢測和定位,它是圖像分析和模式識別的主要特征提取手段,在計算機視覺、圖像分析等應(yīng)用中起著重要的作用,是圖像分析與處理中研究的熱點問題。
數(shù)字信號和圖像處理算法的實現(xiàn)有多種途徑,傳統(tǒng)上多采用高級語言編程實現(xiàn),便于使用的還有基于專用單片機來實現(xiàn)(一般稱為可編程DSP單片機)以及在VLSI上實現(xiàn)某種算法的專用集成電路芯片(ASIC)等。近年來,隨著EDA技術(shù)的迅速發(fā)展,國內(nèi)外逐漸比較流行的是在FPGA中實現(xiàn)復(fù)雜算法的運算處理。
在圖形處理領(lǐng)域,圖像處理的速度一直是一個很難突破的設(shè)計瓶頸。這里通過研究圖像邊緣檢測器的FPGA實現(xiàn),來探討提高圖像處理速度的有關(guān)途徑。
2 Laplacian邊緣檢測的數(shù)學(xué)模型
常見的邊緣檢測算子有:Roberts,Laplacian,Kirseh,So―bel,Prewitt等。各種檢測算子各有其優(yōu)缺點,其中Laplacian算子是一種典型的邊緣檢測方法,它是一個3×3模板,對實現(xiàn)硬件的要求不高,用于檢測屋頂型邊緣的效果也不錯。研究其硬件實現(xiàn)具有一定的典型性,可推廣到對其他算子的硬件實現(xiàn)。
拉普拉斯算子是根據(jù)圖像f(x,y)在x,y方向上的二階偏導(dǎo)數(shù)定義的一種邊緣檢測算子,其定義:
因為圖像邊緣的灰度變化較大,所以圖像的一階偏導(dǎo)數(shù)在邊緣處有局部最大值或最小值,這樣二階偏導(dǎo)數(shù)在邊緣處會通過零點。用拉普拉斯算子檢測邊緣就是估算拉普拉斯算子的輸出,找出其零點位置。拉普拉斯算子定義為:
如果把它用加權(quán)矩陣來表示則可表示成圖1左側(cè)所示的卷積模板。由于數(shù)字圖像中離散信號的特點,在連續(xù)情況下能獲得的精確零點這時可能無法全部檢測出來,故拉普拉斯算子輸出為零的點并不能表示出完整的目標邊緣。為此,在設(shè)計中定義邊緣為滿足以下兩個條件的像素點的集合:①拉普拉斯算子的輸出為正;②在其8鄰點存在拉普拉斯算子的輸出為負的點。
3 圖像邊緣檢測的實現(xiàn)流程
圖像邊緣檢測有一個共同點:可轉(zhuǎn)化為用一個模板(2×2.3×3,4×4,5×5等)對圖像進行卷積。因此圖像邊緣檢測的核心就是如何處理模板的卷積運算。Laplacian算子就是一個3×3的卷積模板。
3x3卷積運算閣定義如(3)式所示,其中Cm,n為被卷積后的像素值,Pm,n為圖像的實際像素值,其中Cm,n為被卷積后的像素值,Pm,n為圖像的實際像素值。由(3)式可知,完成一次3x3卷積操作需要9次乘法和8次加法操作。
由圖1可知,圖像邊緣檢測的主要實現(xiàn)流程為:①模板在圖像中以光柵掃描方式移動;②將模板系數(shù)與模板下對應(yīng)像素相乘;③將所有乘積相加;④將和(模板輸出響應(yīng))賦給圖像中對應(yīng)模板中心位置的像素完成一次卷積。不斷重復(fù)上述步驟直至整幅圖像被處理完。
4 分布式算法的運算原理
分布式算法早在1973年就被Croisier提出,直到FPGA出現(xiàn),才被廣泛地應(yīng)用在FPGA中計算乘積和。除了用于卷積運算,還用于相關(guān)DFT和RNS反演映射的運算。介紹DA算法的運算原理。一個線性時不變網(wǎng)絡(luò)的輸出用下式表示:
假設(shè)系數(shù)c[n]是已知常數(shù),x[n]是變量,在有符號DA系統(tǒng)中假設(shè)變量x[n]的表達式如下:
式中xb[n]表示x[n]的第b位,而x[n]也就是x的第n次采樣。于是,內(nèi)積y可以表示為:
重新分別求和(即分布式算法的由來),其結(jié)果為:
從(7)式發(fā)現(xiàn),分布式算法是一種以實現(xiàn)乘加運算為目的運算方法。與傳統(tǒng)算法的不同在于執(zhí)行部分積運算的先后順序不同。分布式算法在實現(xiàn)乘加功能時,是將各輸入數(shù)據(jù)的每一對應(yīng)位產(chǎn)生的部分積預(yù)先相加形成相應(yīng)的部分積.然后再對各個部分積累加形成最終結(jié)果,而傳統(tǒng)算法是等到所有乘積已經(jīng)產(chǎn)生后再相加完成乘加運算。與傳統(tǒng)串行算法相比,分布式算法可極大地減少硬件電路的規(guī)模,提高電路的執(zhí)行速度。該算法實際上是一個“速度最優(yōu)的高階分布式算法”
5 Laplacian邊緣檢測器的FPGA設(shè)計
5.1 系統(tǒng)的總體設(shè)計
Laplacian邊緣檢測器DETECTOR總體設(shè)計如圖2所示。系統(tǒng)工作原理為:幀存儲器按照一定的規(guī)則(是按行)輸出數(shù)據(jù),經(jīng)過FIFO輸入緩沖,進入兩個32位的移位寄存器。由SIPO(串進并出)模塊得到所需的9個并行數(shù)據(jù),送卷積處理器(Convolver)得到處理后的數(shù)據(jù),最后卷積器輸出一個像素值。根據(jù)邊緣判斷規(guī)則,即可判斷出該點是否為邊緣點。
5.2 卷積運算模塊的設(shè)計
Laplacian模板是一個3x3階的數(shù),每個像素值為8位,因此,它和另外的3x3模板進行卷積,其輸出表達式為:
評論