封士永,康 彬
(1.國(guó)電南瑞科技股份有限公司 江蘇 南京 211000;2.南京郵電大學(xué) 江蘇 南京 210003)
脈沖耦合神經(jīng)網(wǎng)絡(luò)(Pulse Coupled Neural Network,PCNN)是由Eckhorn等人根據(jù)對(duì)猴、貓等哺乳動(dòng)物視覺(jué)皮層神經(jīng)系統(tǒng)中神經(jīng)細(xì)胞之間信號(hào)傳導(dǎo)特性的研究,創(chuàng)建的一種神經(jīng)網(wǎng)絡(luò)模型。在PCNN中,具有相似輸入的神經(jīng)元同時(shí)發(fā)放脈沖,能彌補(bǔ)輸入數(shù)據(jù)的空間不連貫和幅度上的微小變化,從而較完整保留圖像區(qū)域信息,這非常有益于將其應(yīng)用于圖像分割領(lǐng)域[1-2]?;赑CNN模型的圖像分割算法通常是在PC平臺(tái)上用MATLAB軟件編程實(shí)現(xiàn),這種方式具有易于實(shí)現(xiàn)的特點(diǎn),但是它的實(shí)時(shí)性和處理速度卻不盡如人意。隨著硬件芯片性能越來(lái)越強(qiáng)大,研究熱點(diǎn)逐步轉(zhuǎn)向了在硬件上實(shí)現(xiàn)PNCC模型的圖像分割。以往,PCNN的硬件實(shí)現(xiàn)多數(shù)通過(guò)使用CMOS來(lái)實(shí)現(xiàn),如Kinser提出采用復(fù)雜CMOS電路實(shí)現(xiàn)的完整PCNN模型[3-6]。這些硬件實(shí)現(xiàn)的諸多優(yōu)勢(shì)也逐漸顯現(xiàn)出來(lái),如實(shí)時(shí)性強(qiáng),速度快等。但是由于在處理圖像過(guò)程中神經(jīng)元與像素點(diǎn)是一一對(duì)應(yīng)的,構(gòu)建PNCC模型就需占用較大硬件資源。為此文獻(xiàn)[7-8]設(shè)計(jì)出一種超大規(guī)模集成電路芯片,并將其應(yīng)用于PNCC模型,實(shí)現(xiàn)圖像分割。之后不斷有更高性能的芯片問(wèn)世,F(xiàn)PGA就是其中之一,它具有速度快、編程容易、易存儲(chǔ)等特點(diǎn)。但這種僅通過(guò)采用超大規(guī)模硬件電路來(lái)搭建神經(jīng)元,再組成PCNN模型的做法帶來(lái)的效果卻是有限的。于是,將分割算法與硬件實(shí)現(xiàn)相結(jié)合成了之后新的研究熱點(diǎn),文獻(xiàn)[9]就采用最大信息熵值算法[10]在FPGA硬件平臺(tái)上實(shí)現(xiàn)了圖像分割,該方法在保證一定的圖像分割效果的前提下大大節(jié)省了硬件資源。但是采用最大信息熵規(guī)則判斷圖像是否為最佳分割的精準(zhǔn)度不高,導(dǎo)致分割圖像分辨率不高,影響分割效果。針對(duì)以上問(wèn)題,本文選擇采用最小交叉熵算法[11]與FPGA硬件相結(jié)合的方案,最小交叉熵原則通過(guò)聯(lián)系前后兩幅分割圖像,分析兩者信息量之差,取信息量差異最小時(shí)的二值分割圖像,有效解決最佳分割精準(zhǔn)度不高的問(wèn)題,實(shí)現(xiàn)較上述方案更為理想的圖像分割。
圖1表示PCNN神經(jīng)元模型框圖,它由脈沖產(chǎn)生、非線性連接調(diào)制、樹(shù)突3部分組成。如果把二維圖像矩陣M×N看成M×N個(gè)PCNN神經(jīng)元模型,則每個(gè)神經(jīng)元對(duì)應(yīng)一個(gè)像素。當(dāng)內(nèi)部連接矩陣M、W所在鄰域有灰度值相近的像素時(shí),則其中某個(gè)象素對(duì)應(yīng)的神經(jīng)元激發(fā)出的脈沖將會(huì)引起其周?chē)渌哂邢嗨苹叶鹊南袼厮鶎?duì)應(yīng)的神經(jīng)元的激發(fā),產(chǎn)生脈沖序列輸出Y[n]。
圖1 PCNN神經(jīng)元模型Fig.1 Model of PNCCneurons
PCNN滿足如下的數(shù)學(xué)關(guān)系式(迭代形式):
公式(1)中Eij[n]表示單個(gè)神經(jīng)元?jiǎng)討B(tài)門(mén)限(其值與神經(jīng)元內(nèi)部活動(dòng)項(xiàng)Uij[n]比較,看能否激發(fā)產(chǎn)生脈沖);Sij表示輸入刺激信號(hào);Lij[n]表示動(dòng)態(tài)聯(lián)接輸入;Fij[n]表示外部輸入信號(hào);β為突觸間的連接強(qiáng)度常數(shù);Yij[n]代表 PNCC輸出。VL、VF、VE分別為 Lij[n]、Fij[n]、Eij[n]中的固有電勢(shì);Mijkl表示 Fij[n]中 Yij[n]的加權(quán)系數(shù),Wijkl是 Lij[n]中 Yij[n]的加權(quán)系數(shù);αL、αF、αE分別是Lij[n]、Fij[n]、Eij[n]的衰減時(shí)間常數(shù)。
公式(1)中有很多未知參數(shù),要在硬件上實(shí)現(xiàn)很困難,所以需要進(jìn)行必要的簡(jiǎn)化[9],本文把閾值的衰減設(shè)為每次迭代后數(shù)值的0.9倍,迭代次數(shù)設(shè)為十次。其它主要參數(shù)的設(shè)定見(jiàn)表1。
表1 PCNN參數(shù)選擇Tab.1 Settings of PCNN parameters
交叉熵是用來(lái)度量?jī)蓚€(gè)概率分布之間信息量的差異[13],將其應(yīng)用到閾值分割中則一般是搜索使分割前后圖像信息量差異最小的閾值。假設(shè)兩個(gè)概率分布集合P={p1,p3,…pN}和Q={q1,q3,…qN}用交叉熵度量 P和 Q的信息量差異,表示如下:
為了便于硬件實(shí)現(xiàn),需要對(duì)上式進(jìn)行化簡(jiǎn)。對(duì)(2)式進(jìn)行泰勒級(jí)數(shù)展開(kāi)得:
式(3)就是以下進(jìn)行最小交叉熵模塊硬件設(shè)計(jì)的理論依據(jù)。
這里設(shè)計(jì)的硬件系統(tǒng)可處理64*64的8位灰度圖像。該系統(tǒng)充分利用了DE2-70(臺(tái)灣友晶公司基于Altera公司FPGA CycloneII芯片設(shè)計(jì)的性能良好的開(kāi)發(fā)系統(tǒng))豐富的RAM資源。系統(tǒng)占用了8×4096 bit的16個(gè)雙端口RAM。每一次循環(huán)迭代,PCNN系統(tǒng)處理的都是二值圖像數(shù)據(jù),而輸出值隨著迭代次數(shù)的變化而變化。設(shè)計(jì)采用最小交叉熵原則決定最佳分割次數(shù),以達(dá)最佳分割效果。本設(shè)計(jì)的硬件原理框圖如圖2所示。
圖2 PCNN算法在FPGA上實(shí)現(xiàn)的原理框圖Fig.2 Diagram block of PCNN algorithm implementation based on FPGA
如圖2所示,輸入圖像數(shù)據(jù)與初始閥值經(jīng)過(guò)PCNN1模塊進(jìn)行處理,生成閾值矩陣Threshold、標(biāo)記矩陣B(記錄像素的激發(fā)情況)和二值圖像矩陣Y存入RAM組1模塊中,完成第一次迭代。然后,PCNN1模塊產(chǎn)生的閾值Threshold和標(biāo)記矩陣B與圖像數(shù)據(jù)又被送到PNCC2模塊中,由第一次迭代后的Threshold和B決定當(dāng)前像素是否激發(fā),并生成新的Threshold、B和Y,其結(jié)合圖像數(shù)據(jù)繼續(xù)輸入到PCNN2模塊,完成循環(huán)迭代。在迭代過(guò)程中,最小交叉熵模塊將PNCC1模塊第一次迭代循環(huán)后的二值圖像數(shù)據(jù)與PCNN2模塊每次迭代循環(huán)后生成的二值圖像數(shù)據(jù)進(jìn)行最小交叉熵值判決,直到得到最小交叉熵值后即結(jié)束。這樣通過(guò)每次循環(huán)迭代進(jìn)行交叉熵值計(jì)算,最終判斷出是否達(dá)到最佳分割次數(shù),以達(dá)到最佳圖像分割效果。
PCNN圖像分割模塊主要有PCNN1和PCNN2。
如圖 3(a)中 PCNN 模塊 1 中 U[7..0]和 Threshold1[7..0]分別是輸入圖像數(shù)據(jù)和自適應(yīng)初始閾值;out1[7..0]和out2[7..0]則分別為PNCC1處理后的閾值和標(biāo)記矩陣B。
圖 3(b) PCNN 模塊 2 中 dataU[7..0]和 Yuzhi[7..0]分 別是輸入圖像數(shù)據(jù)和PCNN1模塊處理后的閾值;Bin[7..0]、dataB[7..0]分別是標(biāo)記矩陣B和3×3鄰域連接矩陣;out[3..0]輸出循環(huán)迭代的次數(shù),out1[7..0]、out2[7..0]分別是PCNN2模塊處理后的閾值和標(biāo)記矩陣B。圖3(c)是PCNN模塊2內(nèi)部結(jié)構(gòu)。
圖3 PCNN圖像分割模塊Fig.3 Modules of PCNN image segmentation
最小交叉熵模塊用于判斷PCNN模塊處理后二值圖像矩陣Y是否為最佳的分割圖像數(shù)據(jù)。如圖4所示在最小交叉熵模塊中,N[3..0]是分割循環(huán)次數(shù),data1[7..0]輸入的是PNCC1模塊第一次分割后的二值圖像數(shù)據(jù),data2[7..0]輸入的是經(jīng)過(guò)PNCC2模塊進(jìn)行后續(xù)循環(huán)迭代每次分割后的二值圖像數(shù)據(jù)。
圖4 最小交叉熵模塊Fig.4 Module of minimum cross-entropy
為體現(xiàn)本硬件實(shí)驗(yàn)結(jié)果的優(yōu)越性,本文將所提的硬件實(shí)現(xiàn)算法產(chǎn)生的實(shí)驗(yàn)結(jié)果與在MATLAB上的仿真結(jié)果進(jìn)行對(duì)比。其中硬件是在Altera DE2-70開(kāi)發(fā)板上實(shí)現(xiàn),MATLAB軟件運(yùn)行的主機(jī)參數(shù)是:CPU主頻為3.19GHz,內(nèi)存為504MB。試驗(yàn)選取了四幅具代表性的圖像,它們分別是:Lena、Blood、Man和Tire,大小一律為64×64,8位灰度圖像。為了提高分割速度,本文一律將初始閾值定為160。與MATLAB對(duì)比產(chǎn)生的實(shí)驗(yàn)結(jié)果分別如圖5,圖6,圖7和圖8所示。其中,第一行為FPGA實(shí)現(xiàn)的效果圖,第二行為MATLAB仿真實(shí)現(xiàn)的效果圖。
通過(guò)以上4組實(shí)驗(yàn)結(jié)果對(duì)比,可以看出利用硬件實(shí)現(xiàn)的圖像分割結(jié)果與MATLAB軟件仿真結(jié)果基本相似,并且通過(guò)對(duì)分割時(shí)間的計(jì)算得出:利用本硬件系統(tǒng)對(duì)四類(lèi)圖像的分割時(shí)間與MATAB仿真時(shí)間的對(duì)比如表2所示。通過(guò)分割時(shí)間的對(duì)比,說(shuō)明本文設(shè)計(jì)的FPGA系統(tǒng)對(duì)圖像的分割時(shí)間比MATLAB仿真時(shí)間快了3個(gè)數(shù)量級(jí),因此在FPGA上實(shí)現(xiàn)PCNN圖像分割算法既可保證對(duì)圖像分割的快捷性又可保證其準(zhǔn)確性。四幅實(shí)驗(yàn)樣圖在分割過(guò)程中交叉熵的變化數(shù)值如表3所示,變化曲線如圖9所示。
在圖9中結(jié)合表2,可以看出Lena,Blood和Man圖都是在第3次循環(huán)時(shí)得到最小的交叉熵值。通過(guò)與圖5,6以及7聯(lián)系可以看出第3次循環(huán)正好也是達(dá)到了最佳分割效果。Tire圖是在第8次循環(huán)時(shí)達(dá)到最小交叉熵值,如圖8所示,正好也是在第8次循環(huán)時(shí)得到最佳分割效果。由此可以證明交叉熵值取得最小時(shí)即為最佳分割結(jié)果。
圖5 Lena圖實(shí)驗(yàn)結(jié)果Fig.5 Experiment results of Lena image
圖6 Blood圖實(shí)驗(yàn)結(jié)果Fig.6 Experiment results of Blood image
圖7 Man圖實(shí)驗(yàn)結(jié)果Fig.7 Experiment results of Man image
與文獻(xiàn)[9]提出的硬件實(shí)現(xiàn)方法比較實(shí)驗(yàn)結(jié)果如圖10所示,兩者所選用的硬件平臺(tái)都是Altera DE2-70開(kāi)發(fā)板。圖中第一行為原始圖像,第二行為本文提出的硬件實(shí)現(xiàn)方法所產(chǎn)生的結(jié)果,第三行是利用最大信息熵為最佳分割次數(shù)判斷依據(jù)所產(chǎn)生的圖像分割算法在FPGA上的實(shí)驗(yàn)結(jié)果。本文硬件實(shí)現(xiàn)方法初始閾值定為160。文獻(xiàn)[9]中硬件實(shí)現(xiàn)方法初始閾值選取為:Lena圖的初始閾值為150,Blood圖的初始閾值為140,Man圖的初始閾值為170,Tire圖的初始閾值為60。
表2 四類(lèi)圖像軟硬件分割時(shí)間對(duì)比Tab.2 Comparison of image segmentation time by software and hardware
由圖10中的圖像最佳分割效果對(duì)比可以看出,本文提出的算法達(dá)到最佳分割次數(shù)時(shí)產(chǎn)生的分割效果優(yōu)于文獻(xiàn)[9]提出的圖像分割方法所產(chǎn)生的結(jié)果,由此說(shuō)明本文所提出的硬件實(shí)現(xiàn)方法能更好地實(shí)現(xiàn)圖像分割,可以取得更好的分割效果。
表3 四組實(shí)驗(yàn)圖像不同循環(huán)次數(shù)下的交叉熵值Tab.3 Cross-entropy values of this four images under different cycles
圖9 四組圖像最小交叉熵變化曲線Fig.9 Minimum cross-entropy curve of this four images
針對(duì)傳統(tǒng)的MATLAB軟件仿真實(shí)現(xiàn)圖像分割以及采用最大信息熵分割算法硬件實(shí)現(xiàn)圖像分割方法的不足,本文提出的基于最小交叉熵的PCNN圖像分割在FPGA上實(shí)現(xiàn)的方案具有明顯的優(yōu)勢(shì)。實(shí)驗(yàn)結(jié)果表明:基于最小交叉熵的PCNN圖像分割在FPGA上實(shí)現(xiàn)的方案可以在保證與MATLAB軟件仿真相似的分割結(jié)果前提下大大提高了圖像分割速度,保證了較強(qiáng)的實(shí)時(shí)性;并且在最佳分割時(shí)的分割效果優(yōu)于基于最大信息熵最佳分割次數(shù)判斷準(zhǔn)則硬件實(shí)現(xiàn)的分割效果。這是由于在最小交叉熵的計(jì)算中每次分割后的二值數(shù)據(jù)可以與原始數(shù)據(jù)進(jìn)行對(duì)比,這樣計(jì)算出來(lái)的最小交叉熵可以更為準(zhǔn)確體現(xiàn)出分割后的圖像與原始圖像信息量差異最小,在這種情況下取得的最佳循環(huán)結(jié)果可以很好地將待分割圖像的背景與目標(biāo)分割出來(lái)。因此本文設(shè)計(jì)的圖像分割方案最佳分割精準(zhǔn)度高,圖像分割效果好,處理速度快,實(shí)時(shí)性強(qiáng),更具實(shí)際應(yīng)用價(jià)值。
圖10 基于最小交叉熵與最大信息熵的PNCC圖像分割算法硬件實(shí)現(xiàn)結(jié)果對(duì)比Fig.10 Contrast of hardware implementation of PNCCimage segmentation based on minimum cross entropy and maximum entropy algorithm
[1]陳立雪,顧曉東.利用直方圖及邊緣乘積互信息的PCNN圖像分割[J].計(jì)算機(jī)工程與應(yīng)用,2012,48(7):181-183.CHEN Li-xue,GU Xiao-dong.Image segmentation with PCNN using histogram and contoured product mutual information[J].Computer Engineering and Applications,2012,48(7):181-183.
[2]周彤彤,楊恢先,李淼,等.馬爾可夫隨機(jī)場(chǎng)約束下的PCM圖像分割算法[J].計(jì)算機(jī)工程與應(yīng)用,2013,49(24):157-160.ZHOU Tong-tong,YANG Hui-xian,LI Miao,et al.Image segmentation on Possibilistic C-Means clustering algorithmbased on Markov spatial constraint[J].Computer Engineering and Applications,2013,49(24):157-160.
[3]Yutaka Maeda,Toshiki Tada.FPGA implementation of a pulse density neural network with learning ability using simultaneous perturbation[J].Neural Networks,IEEE Transactions on,2003,14(3):688-695.
[4]賈小軍,張之江,曾丹,等.基于簡(jiǎn)化PCNN模型的結(jié)構(gòu)光圖像自動(dòng)分割方法[J].光電子激光,2011,22(3):455-460.JIA Xiao-jun,ZHANGZhi-jiang,ZENGDan,et al.Simplified PCNN-based automatic segmentation method for structured light images[J].Journal of Optoelectronics Laser,2011,22(3):455-460.
[5]Ma Yide.FPGA Implementation of PCNN Algorithm[M].Applications of Pulse-Coupled Neural Networks.Springer Berlin Heidelberg,2011:167-196.
[6]劉光輝,任慶昌,孟月波,等.自適應(yīng)先驗(yàn)馬爾可夫隨機(jī)場(chǎng)模型的圖像分割算法[J].西安交通大學(xué)學(xué)報(bào),2013,47(10):62-67.LIU Guang-hui,REN Qing-chang,MENG Yue-bo,et al.An imagesegmentation algorithmof adaptiveprior MRFmodels[J].Journal of XI’AN Jiaotong University,2013,47(10):62-67.
[7]Y.Ota.VLSIstructure for static image processing with pulsecoupled neural network[C].Industrial Electronics Society,IEEE 2002 28th Annual Conference on,2002(4):3221-3226.
[8]Matolin D,Schireiter J,Schuffny R.Simulation and implementation of an analog VLSI pulse-coupled neural network for image segmentation[C].The 47th IEEE International Midwest Symposium on Circuits and Systems,2004(2):397-400.
[9]王新.PCNN混沌特性與硬件實(shí)現(xiàn)研究[D].蘭州:蘭州大學(xué),2010.
[10]馬義德,戴若蘭,李廉.一種基于脈沖耦合神經(jīng)網(wǎng)絡(luò)和圖像熵的自動(dòng)圖像分割方法[J].通信學(xué)報(bào),2002,1(23):46-51.MA Yi-de,DAI Ruo-lan,LI Lian.Automated image segmentation using pulse coupled neural networks and image’s entropy[J].Journal of China Institute of Communications,2002,1(23):46-51.
[11]劉勍,馬義德,錢(qián)志伯.一種基于交叉熵的改進(jìn)型PCNN圖像自動(dòng)分割新方法[J].中國(guó)圖形圖像學(xué)報(bào),2005,10(5):579-584.LIU Qing,MA Yi-de,QIAN Zhi-bo.Improved method for PCNNimageautomatic segmentation based on cross-entropy[J].Chinese Journal of graphic images,2005,10(5):579-584.
[12]WANG Xin-cun,CHENG Man,LIU Yu-min,et al.Edge Detection of Color Image Using Unit-Linking PCNN[J].Applied Mechanics and Materials,2011(55):1211-1217.