文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.2016.02.027
中文引用格式: 李余錢,,蘇光大. 基于鄰域處理器自適應(yīng)圖像分割高速實現(xiàn)[J].電子技術(shù)應(yīng)用,2016,,42(2):99-101.
英文引用格式: Li Yuqian,,Su Guangda. Fast implementation of adaptive image segmentation based on neighborhood processor[J].Application of Electronic Technique,2016,,42(2):99-101.
0 引言
隨著數(shù)字圖像處理及計算機(jī)技術(shù)的不斷發(fā)展,,使得計算機(jī)視覺的應(yīng)用領(lǐng)域更加廣泛,。計算機(jī)視覺中常用特征提取、目標(biāo)跟蹤,、目標(biāo)識別等關(guān)鍵技術(shù),,這些技術(shù)對圖像分割的質(zhì)量依賴性較強[1]。圖像分割是圖像處理中的重要研究方向,,分割質(zhì)量的好壞直接關(guān)系到后續(xù)高級算法的應(yīng)用效果,。
典型的圖像分割算法可分為基于閾值、基于邊緣和基于區(qū)域等3類,,其中,,常用的是基于閾值的圖像分割,。由于圖像特征和圖像信息不同,可以對基于閾值的圖像分割算法進(jìn)行分類,,可分為基于全局的閾值分割和局部的閾值分割法[2],。
全局閾值算法中比較典型的代表是最大類間方差法(Otsu法,也稱大津算法),,該方法使用聚類思想,,按灰度級把圖像分成兩類,讓這兩類滿足灰度值差異最大,,同時每個部分之間的灰度差異最小,,利用方差來尋找出一個合適的灰度級別。但在實際應(yīng)用中,,由于存在一些干擾因素,,如噪聲、低對比度等使得灰度直方圖不一定具有明顯的波峰和波谷,,此時只用圖像的統(tǒng)計直方圖來判定閾值,,可能會造成錯誤的分割。
局部閾值法的典型代表有均值閾值分割法以及Bernsen算法等,。均值閾值法的主要思想是在選取閾值時,,將局部區(qū)域內(nèi)像素的平均值作為圖像分割的閾值。均值閾值法具有算法計算簡單,、速度快的特點,。但是該方法僅對于目標(biāo)與背景相差比較大的圖像,才能達(dá)到理想的結(jié)果,。
由于Bernsen算法具有抑制非均勻光照的優(yōu)點,,而且Sobel算子計算操作較為簡單,但是其閾值需要預(yù)先設(shè)定,,不能滿足任意場景的需要,,不具備自適應(yīng)性。
本研究采用自適應(yīng)閾值分割算法,,也就是將Bernsen算法和Sobel結(jié)合在一起,,即Bernsen算法計算出窗口中的最大灰度值和最小灰度值的平均值作為分割閾值,可以達(dá)到閾值自適應(yīng)的目的,,對于非均勻光照圖像的分割效果較好,。同時,在鄰域處理器上實現(xiàn)了該算法的全過程,。經(jīng)過實際測試,,可以實現(xiàn)圖像分割的功能,而且算法的時間開銷較少,。
1 自適應(yīng)圖像分割算法
1.1 Sobel算子
Sobel算子[3]包括水平方向與垂直方向,,大小為3×3模板,,如圖1所示。該算子是進(jìn)行圖像邊緣檢測算法的核心,。在邊緣檢測時,,Sobel 算子的兩個模板分別與3×3的鄰域窗口的像素進(jìn)行卷積運算,求出窗口中心的像素點梯度(包括水平梯度dx和垂直梯度dy),,再計算出該像素點梯度的模,,并與閾值相比較,,進(jìn)行二值化,,從而得到圖像的邊緣圖像。
1.2 Bernsen算法
Bernsen算法[3]將圖像分塊后,,每個圖像塊選取該塊中圖像的最大和最小灰度值的平均值作為閾值,,設(shè)像素點處的灰度值是以像素點為中心構(gòu)造一個的窗口,其中w表示窗口寬度的參數(shù),。則Bernsen算法可以描述為:
首先,,計算每個窗口的閾值T(x,y),,方法如式(1)所示,。
其次,將圖像塊的中心點像素的灰度值與上一步計算的閾值進(jìn)行比較,,從而確定該點的灰度值,。具體計算如式(2)所示。
本文取的窗口進(jìn)行圖像分割,。
1.3 自適應(yīng)圖像分割算法
自適應(yīng)閾值分割算法是將Bernsen算法和Sobel算法相結(jié)合,,將3×3窗口中像素的最大灰度值和最小灰度值的平均值作為Sobel的分割閾值。通過這種方式可以達(dá)到閾值自適應(yīng)的目的,,對于非均勻光照圖像的分割效果較好,。自適應(yīng)圖像分割的算法框圖如圖2所示。
2 自適應(yīng)閾值分割算法硬件實現(xiàn)
2.1 鄰域圖像處理器
本研究的實驗平臺是鄰域圖像并行處理器系統(tǒng)[4-6],,該鄰域處理器系統(tǒng)包括視頻采集部分,、鄰域存儲器、鄰域處理器,、共享存儲器,、DSP處理器以及PCI接口等部分。鄰域處理器系統(tǒng)框圖如圖3所示,。其中,,鄰域存儲器一次可以讀取32個像素數(shù)據(jù)。Altera公司的EP2C70F896C8型FPGA是鄰域處理器的處理核心,,負(fù)責(zé)控制數(shù)據(jù)的讀取以及運算等操作,。共享存儲器是由兩個2 MB容量的同步SRAM構(gòu)成,,負(fù)責(zé)存儲FPGA運算結(jié)果。PCI接口負(fù)責(zé)數(shù)據(jù)傳遞到PC或者將數(shù)據(jù)從PC傳遞到共享存儲器,,然后由FPGA進(jìn)行數(shù)據(jù)組合,,構(gòu)成鄰域數(shù)據(jù),進(jìn)行下一步處理,。
同時,,圖像鄰域處理器可以處理攝像機(jī)的視頻圖像或者處理計算機(jī)中的靜態(tài)圖像。
2.1 鄰域圖像處理器
自適應(yīng)圖像分割處理系統(tǒng)處理大小512×512灰度圖像,。在處理過程中,,需要將該圖像劃分成16個圖像塊,每塊為512行32列,。圖像進(jìn)行分割的運算操作是按照塊的順序進(jìn)行,,依次對每塊圖像從上到下進(jìn)行處理。每一次訪問存儲體讀出一行圖像數(shù)據(jù),,通過流水操作,,可以形成n×32的圖像鄰域。在本圖像分割算法中,,n取3,。
為了構(gòu)成32個3×3的鄰域,需要額外增加兩列數(shù)據(jù),。這額外增加的兩列數(shù)據(jù)正是前一圖像塊最右端的兩列,,即RAMa與RAMb。這兩個RAM起到了乒乓內(nèi)存操作的作用,,該運算結(jié)構(gòu)如圖4所示,。
自適應(yīng)圖像分割處理系統(tǒng)的整體實現(xiàn)結(jié)構(gòu)框圖如圖5所示。
在設(shè)計實現(xiàn)自適應(yīng)圖像分割處理系統(tǒng)時,,運算操作單元是一系列3×3的窗口,,即每個運算單元總共是9個像素點灰度值,運算單元計算流程如圖6所示,。
在第1個時鐘周期,,所有數(shù)據(jù)進(jìn)行兩兩比較并求解水平梯度和垂直梯度。
在第2個時鐘周期,,將比較結(jié)果進(jìn)行累加并求解梯度的模,。
在第3個時鐘周期,把輸入像素的灰度值存儲到相應(yīng)的順序單元,,并緩存模的值,。
在第4個時鐘周期,選取最大值和最小值,,求解其平均值,,同時緩存模的值,。
在第5個時鐘周期,將平均值作為閾值,,并與3×3窗口中心像素的梯度模值進(jìn)行比較,,從而得到最終的結(jié)果。
其中,,運用Bernsen算法求解序列中的最大值和最小值的平均值時,,采用了全并行比較排序算法[8]。
計算其他窗口的流程也如上所述,,最終可得到圖像分割結(jié)果,。
3 實驗結(jié)果
根據(jù)前述算法思想,首先在PC(2.83 GHz,,core2 Quad CPU,,2.98 G內(nèi)存)上使用Matlab2014a軟件計算進(jìn)行算法驗證,,結(jié)果如圖7所示,。其次,為了對比自適應(yīng)閾值分割的效果,,在Matlab2014a上實現(xiàn)Sobel的邊緣檢測,,如圖8所示。從圖7和圖8的比較來看,,自適應(yīng)閾值分割算法較好,。
同時,在NIPC-3鄰域圖像處理器上實現(xiàn)了非均勻光照下圖像的分割,,處理結(jié)果如圖9所示,。其中,F(xiàn)PGA工作頻率為60 MHz,。
從圖7,、圖8和圖9的結(jié)果中,可計算出二者結(jié)果的一致性,。從實驗結(jié)果上也可以看出自適應(yīng)閾值圖像分割的優(yōu)越性,,能有效抑制非均勻光照帶來的影響。
同時,,為了測試速度性能,,還進(jìn)行了時間上的分析,利用Quartus II的SignalTap工具,,在程序中添加計數(shù)器,,計算程序執(zhí)行時鐘數(shù),對于一幅大小為512×512的圖像,,處理時間約為0.137 ms,。
4 結(jié)論
本文提出一種將Sobel算子與Bernsen算法相結(jié)合的自適應(yīng)閾值圖像分割算法,,利用該算法可以較好地實現(xiàn)圖像分割。經(jīng)過實際測驗分析,,該方法不僅能夠?qū)崿F(xiàn)圖像分割,,而且能夠有效抑制非均勻光照對圖像分割帶來的影響。同時,,通過利用全并行排序算法,,使得求解最大值和最小值的平均值的時間大幅度下降。通過計時器來計算處理時間,,僅為0.137 ms,,能夠滿足實時應(yīng)用的需求。
參考文獻(xiàn)
[1] 劉東菊.基于閾值的圖像分割算法的研究[D].北京:北京交通大學(xué),,2009.
[2] 李了了,,鄧善熙,丁興號.基于大津法的圖像分塊二值化算法[J].微計算機(jī)信息,,2005,,21(3):76-77.
[3] 楊勇,范勝利,,張蕓蕾,,等.一種基于FPGA非均勻光照圖像分割方法[J].太原科技大學(xué)學(xué)報,2014,,35(6):419-422.
[4] 陳博亞.大鄰域圖像處理系統(tǒng)的研制[D].北京:清華大學(xué),,2006.
[5] 劉炯鑫.NIPC-3鄰域圖像并行處理機(jī)的軟件設(shè)計[D].北京:清華大學(xué),2007.
[6] 蘇光大.鄰域圖像處理中的新型鄰域功能流水線結(jié)構(gòu)[J].電子學(xué)報,,2000,,27(2):1-4.
[7] 王莉,蘇光大.基于FPGA的實時中值濾波器硬件實現(xiàn)[J].電子技術(shù)應(yīng)用,,2011,,37(04):58-60.
[8] 師廷偉,金長江.基于FPGA的并行全比較排序算法[J].數(shù)字技術(shù)與應(yīng)用,,2013(10):126-127.