《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > Sobel圖像邊沿檢測算法的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)
Sobel圖像邊沿檢測算法的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)
2016年電子技術(shù)應(yīng)用第3期
李錦明1,2,閆曉俊1,2,江旭東1,2,溫 杰1,2,郇 弢3
1.中北大學(xué) 儀器科學(xué)與動態(tài)測試教育部重點(diǎn)實(shí)驗(yàn)室,山西 太原030051; 2.中北大學(xué) 電子測試技術(shù)重點(diǎn)實(shí)驗(yàn)室,山西 太原030051;3.首都航天機(jī)械公司,北京100076
摘要: 針對Sobel算子用于圖像邊沿檢測時出現(xiàn)的噪聲大、邊沿較粗等問題,提出了一種Sobel圖像邊沿檢測的優(yōu)化設(shè)計(jì)方案。在傳統(tǒng)的Sobel邊沿檢測模塊前增加快速中值濾波模塊,提高了系統(tǒng)的抗噪能力。同時在Sobel邊沿檢測模塊后采用非極大值抑制的方式對圖像邊沿進(jìn)一步細(xì)化,既有效地保留了圖像邊沿,又提高了圖像邊沿的清晰度。與傳統(tǒng)Sobel檢測模塊相比,優(yōu)化后的方案不僅能夠有效抑制噪聲,而且得到的圖像邊沿更細(xì),增強(qiáng)了實(shí)時圖像處理的效果。該優(yōu)化設(shè)計(jì)已成功應(yīng)用于某圖像識別系統(tǒng)。
中圖分類號: TP391
文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.03.020
中文引用格式: 李錦明,閆曉俊,江旭東,等. Sobel圖像邊沿檢測算法的優(yōu)化設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2016,42(3):71-73,77.
英文引用格式: Li Jinming,Yan Xiaojun,Jiang Xudong,et al. The optimization design and implementation of Sobel image edge detection algorithm[J].Application of Electronic Technique,2016,42(3):71-73,77.
The optimization design and implementation of Sobel image edge detection algorithm
Li Jinming1,2,Yan Xiaojun1,2,Jiang Xudong1,2,Wen Jie1,2,Huan Tao3
1.Key Laboratory of instrumentation Science & Dynamic Measurement of Ministry of Education, North University of China,Taiyuan 030051,China; 2.National Key Laboratory for Electronic Measurement Technology,North University of China,Taiyuan 030051,China; 3.Capital Aerospace Machinery Company,Beijing 100076,China
Abstract: For the issues of large noise and rough edges in image edge detection based on Sobel operator, an optimized design scheme is proposed. A fast median filter module is added to improve the anti noise capability of the system in front of the traditional Sobel edge detection module. At the same time, the non maximum suppression module is added to further thinning the image edge behind the Sobel edge detection module, which effectively preserves the edge of the image, and improves the image edge sharpness. Compared with the traditional Sobel detection module, the optimized scheme not only can effectively suppress the noise, but also get more thin edge of the image and enhance the effect of real-time image processing, which has been successfully applied to an image recognition system.
Key words : Sobel operator;edge detection;fast median filtering;non maximum suppression

0 引言

    圖像邊沿是圖像的基本特征,是圖像分割、特征提取等圖像分析的重要依據(jù),目前已廣泛應(yīng)用于目標(biāo)識別、機(jī)器視覺和運(yùn)動目標(biāo)跟蹤等領(lǐng)域?,F(xiàn)今已有多種邊沿檢測算法以及一些改進(jìn)方式,但各種算法都有各自的優(yōu)缺點(diǎn)和適用領(lǐng)域。在實(shí)時圖像處理系統(tǒng)中,通常采用Sobel算子來實(shí)現(xiàn)圖像的邊沿檢測。然而傳統(tǒng)的Sobel邊沿檢測算法存在抗噪能力弱、邊沿信息較粗等問題,不能滿足實(shí)際工程應(yīng)用的要求。如何實(shí)時地獲取清晰的圖像邊沿對工程實(shí)踐和科學(xué)研究都具有重大意義。

    設(shè)計(jì)中,基于圖像處理的相關(guān)理論對Sobel邊沿檢測算法進(jìn)行了改進(jìn),在傳統(tǒng)的Sobel算法的基礎(chǔ)上增加了快速中值濾波模塊,提高了系統(tǒng)的抗噪能力,并采用非極大值抑制的方式對圖像邊沿進(jìn)行了細(xì)化,既有效地保留了圖像邊沿,又保證了圖像邊沿的清晰。

1 Sobel圖像邊沿檢測優(yōu)化設(shè)計(jì)

    Sobel算法雖然在圖像邊沿檢測方面具有諸多優(yōu)勢,然而對于圖像實(shí)時處理還是存在抗噪能力弱、邊沿信息較粗等問題,所以需進(jìn)一步改進(jìn)。優(yōu)化后的邊沿檢測模塊主要由快速中值濾波模塊、邊沿檢測模塊和非極大值抑制模塊構(gòu)成。檢測模塊總體設(shè)計(jì)如圖1所示。

ck1-t1.gif

    當(dāng)圖像數(shù)據(jù)輸入時,首先進(jìn)行快速中值濾波處理,平滑圖像噪聲,然后通過Sobel算子得到圖像的梯度值,最后應(yīng)用閾值比較和非極大值抑制的方式提取圖像邊沿,進(jìn)行二值化處理,從而得到清晰的圖像邊沿。

1.1 快速中值濾波

    在圖像采集傳輸過程中,不可避免地出現(xiàn)各種各樣的噪聲,這些噪聲不僅降低了圖像的質(zhì)量,而且會影響后續(xù)圖像的處理。中值濾波能夠有效濾除椒鹽噪聲和脈沖噪聲,有效地保持圖像邊沿的細(xì)節(jié),是一種比較理想的圖像濾波算法。它通過對相鄰區(qū)域內(nèi)的像素進(jìn)行排序,取中間值作為輸出像素,以達(dá)到濾波的效果?;镜闹兄禐V波算法運(yùn)算量大,不利于實(shí)時圖像處理。設(shè)計(jì)采用快速中值濾波算法,提高了圖像處理的效率,實(shí)現(xiàn)方法如圖2所示,其中MAXi、MIDi、MINi分別代表每行數(shù)據(jù)的最大值、中間值與最小值。依據(jù)圖2所示,通過多次比較(CMP)就可以得到最終的濾波結(jié)果。

ck1-t2.gif

1.2 Sobel邊沿檢測

    Sobel算子是一階導(dǎo)數(shù)的邊緣檢測算子,包含水平和垂直2組3×3的矩陣,將之與圖像中的每個像素點(diǎn)做卷積和運(yùn)算,即得到圖像的水平和垂直梯度值,再根據(jù)梯度計(jì)算公式算出圖像梯度值,將此梯度值與設(shè)定的閾值進(jìn)行比較,若大于閾值,則認(rèn)為該像素點(diǎn)為邊緣部分,把3×3二維圖像中央的灰度值設(shè)為255,若小于閾值,就不是邊緣部分,相應(yīng)的灰度值設(shè)為0。

    圖3(a)為一幀圖像的3×3窗口,Pi為各點(diǎn)的灰度值,圖3(b)和圖3(c)分別為Sobel算子水平和垂直方向梯度算子。針對圖像中3×3的像素空間,Sobel算子采用式(1)和式(2)計(jì)算中間像素點(diǎn)P5處的水平梯度Px與垂直梯度Py。

Px=(P6+2P7+P8)-(P0+2P1+P2)(1)

ck1-gs1-2.gif

ck1-t3.gif

1.3 非極大值抑制

    Soble邊沿檢測算法通過選取合適的閾值能夠細(xì)化圖像邊沿,然而閾值的選取往往比較困難。如果閾值過低,則無法達(dá)到細(xì)化的效果,反之則會丟失部分圖像邊沿。通常Soble算法檢測得到的圖像邊沿會出現(xiàn)邊沿較粗的問題,從而影響圖像處理的效果。故優(yōu)化設(shè)計(jì)采用非極大值抑制的方式對圖像梯度幅值的屋脊帶進(jìn)行了細(xì)化,只保留了幅值局部變化的最大的點(diǎn)。在非極大值抑制過程中,使用3×3的移動窗口對圖進(jìn)行處理,中心像素梯度值與鄰域內(nèi)的其他像素梯度值進(jìn)行比較,如果中心像素值不是鄰域像素的極大值,則把該像素點(diǎn)賦值為0,反之則把該像素點(diǎn)視為圖像的邊緣。其具體的數(shù)學(xué)表達(dá)式如式(3):

    ck1-gs3.gif

    非極大值抑制既有效保留了圖像邊緣的梯度,又達(dá)到了圖像細(xì)化的目的,有效地解決了Sobel算子出現(xiàn)的邊沿較粗的問題,有利于圖像分割和特征提取等圖像后期處理的實(shí)現(xiàn)。

2 圖像邊沿檢測硬件設(shè)計(jì)與實(shí)現(xiàn)

2.1 硬件系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

    基于FPGA的實(shí)時圖像邊沿檢測系統(tǒng)主要由圖像采集單元、數(shù)據(jù)存儲單元、邊沿檢測單元和圖像顯示單元四部分組成。具體的硬件系統(tǒng)結(jié)構(gòu)如圖4所示。

ck1-t4.gif

    系統(tǒng)基于FPGA(EP3C40F484)開發(fā)平臺,選用500萬像素CMOS攝像頭進(jìn)行圖像采集,圖像信息經(jīng)采集、灰度化等處理,再經(jīng)過優(yōu)化的基于Sobel圖像邊緣檢測處理,最后由液晶顯示器顯示。算法采用了可編程宏功能模塊與VHDL語言相結(jié)合的方法實(shí)現(xiàn)。

2.2 快速中值濾波算法硬件實(shí)現(xiàn)

    中值濾波算法的核心是排序,算法的優(yōu)劣直接決定求取中間值的效率,從而決定濾波器的性能??焖僦兄禐V波采用并行處理和流水線的設(shè)計(jì),避免了大量的比較操作,相比于傳統(tǒng)的中值濾波算法,不僅運(yùn)算量大大減少,在FPGA硬件實(shí)現(xiàn)上所占用的硬件資源也更少,因此它對圖像數(shù)據(jù)處理的速度比傳統(tǒng)的中值濾波更快。快速中值濾波硬件實(shí)現(xiàn)頂層原理圖如圖5所示,其中移位寄存器(linebuffer)模塊能夠依次輸出3行的圖像數(shù)據(jù)。Compare模塊帶有鎖存功能,能夠比較同一行像素的3個數(shù)據(jù)的大小,Compare3模塊比較不同行圖像像素的大小,并輸出相應(yīng)的結(jié)果。

ck1-t5.gif

2.3 Soble邊沿檢測算法硬件實(shí)現(xiàn)

    基于Soble算子的邊沿檢測算法不僅計(jì)算簡單,而且容易在硬件上實(shí)現(xiàn)。算法主要包括梯度計(jì)算和閾值比較兩個部分,用VHDL代碼實(shí)現(xiàn)閾值比較相對簡單,所以梯度計(jì)算算法的實(shí)現(xiàn)為本模塊的重點(diǎn)。

    設(shè)計(jì)中梯度計(jì)算采用3-Line Buffer結(jié)構(gòu),相鄰3行3列的9個圖像像素點(diǎn)(P1,P2…P9)利用3個行緩沖器進(jìn)行緩沖,然后再同步讀取3行數(shù)據(jù)進(jìn)行分級寄存,利用乘法器實(shí)現(xiàn)寄存結(jié)果與Sobel算子Xn的相乘,再利用3個加法器實(shí)現(xiàn)式(1)或式(2),即得到水平方向或垂直方向的梯度值,最后再利用一個加法器實(shí)現(xiàn)梯度計(jì)算公式得到梯度值|G|。

2.4 非極大值抑制算法硬件實(shí)現(xiàn)

    設(shè)計(jì)中在Soble邊沿檢測的基礎(chǔ)上增加了非極大值抑制功能,非極大值抑制算法RTL級結(jié)構(gòu)如圖6所示。

ck1-t6.gif

    為了實(shí)現(xiàn)非極大值抑制算法,需再次構(gòu)建3×3的移動窗口并確定中心像素梯度值是否為鄰域內(nèi)的最大值,設(shè)計(jì)中采用LineBuffer_3和sort3來構(gòu)建3×3移動窗口。LineBuffer_3能夠緩存3行480列的像素梯度值,一個時鐘周期可以并行輸出1列像素梯度值。前兩個周期sort3模塊接收并緩存LineBuffer_3模塊輸出的兩列像素梯度值,在第三個周期得到第三列像素梯度值時,也同時構(gòu)成了3×3的梯度窗口,輸出如圖中的data1~data9,最后在comper模塊內(nèi)對9個像素梯度值進(jìn)行比較,從而確定中心像素是否為鄰域內(nèi)的最大值。若為最大值就保留并進(jìn)入閾值模塊進(jìn)行比較,否則將中心梯度值置零。

3 實(shí)驗(yàn)結(jié)果與分析

    為了驗(yàn)證系統(tǒng)優(yōu)化設(shè)計(jì)后的性能,采用MT9M001相機(jī)對圖像進(jìn)行采集,將優(yōu)化后得到行的邊沿圖像與優(yōu)化前的邊沿圖像進(jìn)行比較,得到了不同的檢測結(jié)果,結(jié)果如圖7所示。圖7(a)為相機(jī)采集到的原始圖像,圖7(b)為傳統(tǒng)的Soble邊沿檢測算法得到的圖像,由于受室內(nèi)日光燈的影響,采集到的圖像噪聲大且邊沿較粗。圖7(c)為通過濾波后得到的圖像邊沿,濾波效果明顯。圖7(d)為優(yōu)化后的邊沿檢測算法得到的圖像,圖像受噪聲影響小,且邊沿較細(xì),能夠有效地識別圖像的邊沿。

ck1-t7.gif

4 結(jié)論

    該系統(tǒng)針對Sobel算法用于圖像邊沿檢測時出現(xiàn)的噪聲大、邊沿較粗等問題,在傳統(tǒng)的Sobel算法的基礎(chǔ)上增加了快速中值濾波模塊和非極大值抑制模塊,提高了系統(tǒng)的抗噪能力,保證了圖像邊沿的清晰度,并在EP3C40F484 FPGA平臺上對硬件電路進(jìn)行了驗(yàn)證。實(shí)驗(yàn)結(jié)果表明,優(yōu)化后的邊沿檢測方案不僅能夠有效地抑制噪聲,而且得到的圖像邊沿更細(xì),增強(qiáng)了實(shí)時圖像處理的效果。

參考文獻(xiàn)

[1] 謝鳳英.數(shù)字圖像處理及應(yīng)用[M].北京:電子工業(yè)出版社,2014.

[2] 朱秀昌,劉峰.數(shù)字圖像處理與圖像通信[M].北京:北京郵電大學(xué)出版社,2014.

[3] 孫敏.圖像處理并行算法研究與實(shí)現(xiàn)[D].綿陽:西南科技大學(xué),2011.

[4] 張利平,潘宏俠,黃晉英.智能車輛視覺系統(tǒng)的障礙物邊緣檢測[J].測試與校準(zhǔn),2006,26(4):30-31.

[5] 尹業(yè)宏,王濤,陳穎.基于FPGA的圖像與處理濾波算法[J].光學(xué)與光電技術(shù),2004,2(5):61-63.

[6] 楊新華,寇為剛.基于FPGA的Soble算子圖像邊緣檢測算法[J].儀表技術(shù)與傳感器,2013(1):102-104.

[7] 朱偉超,萬新軍,楊波,等.模糊圖像邊緣精確定位的濾波算法[J].光學(xué)儀器,2015,37(1):46-48.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。