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