??? 摘?? 要: 運(yùn)用CNN設(shè)計了一套生物芯片樣點識別算法。算法實現(xiàn)的目標(biāo):改善已有方法的缺陷,達(dá)到良好的圖像質(zhì)量增強(qiáng)效果;將CNN輸出的模擬信號圖像轉(zhuǎn)化為樣點數(shù)據(jù)信息,使得后續(xù)的信息分析成為可能。最后利用實際CNN芯片參數(shù)估算了整套算法的運(yùn)算時間,結(jié)果顯示其速度達(dá)到實時處理" title="實時處理">實時處理的標(biāo)準(zhǔn)。?
??? 關(guān)鍵詞: 生物芯片; 微陣列芯片; 樣點識別; 細(xì)胞神經(jīng)網(wǎng)絡(luò)
?
??? 生物芯片又稱為微陣列芯片,是近年來生命科學(xué)領(lǐng)域迅速發(fā)展起來的一項高新技術(shù)。生物芯片是在面積不大的基片上點陣排列一系列可尋址的生物識別分子,這些陣列點稱為探針。探針在相同的條件下與各種待測定的靶分子同時進(jìn)行結(jié)合或反應(yīng),各個探針的反應(yīng)程度各不相同,反應(yīng)結(jié)果用同位素法、化學(xué)熒光法、化學(xué)發(fā)光法或酶標(biāo)法顯示,用精密掃描儀記錄為灰度圖像形式。然后,對這些灰度圖像進(jìn)行分析處理,提取出各個樣點的強(qiáng)度值,并結(jié)合數(shù)據(jù)庫關(guān)于芯片探針排列形式以及各個探針代表的生物識別分子的描述,確定試驗結(jié)果。?
??? 圖2(e)是一幅典型的生物芯片樣點圖像(局部),各個樣點的灰度值代表了對應(yīng)探針的反應(yīng)程度,對其進(jìn)行圖像處理" title="圖像處理">圖像處理的目標(biāo)是提取各個樣點的強(qiáng)度值。一般做法就是將樣點與背景分離,并依據(jù)樣點中所有像素的灰度值計算樣點強(qiáng)度。?
??? 近年來出現(xiàn)了多種樣點自動識別算法,這些算法的速度都受限于微處理器本身的計算能力,對于數(shù)據(jù)量極大的生物芯片樣點圖像,運(yùn)算速度" title="運(yùn)算速度">運(yùn)算速度始終沒有質(zhì)的突破。?
??? 新型探測技術(shù)的出現(xiàn)大大提高了樣點圖像的獲取速度,這使得生物芯片信息實時分析成為可能。為了適應(yīng)這一趨勢,P.arena等學(xué)者提出了運(yùn)用細(xì)胞神經(jīng)網(wǎng)絡(luò)" title="細(xì)胞神經(jīng)網(wǎng)絡(luò)">細(xì)胞神經(jīng)網(wǎng)絡(luò)的生物芯片圖像處理方法[1],實現(xiàn)了實時生物芯片圖像處理,但其算法不完善,不便于實時信息分析。Shadrokh Samavi等學(xué)者提出了一系列硬件結(jié)構(gòu)用于生物芯片實時處理[2],也達(dá)到了很高的速度。但是其每一步驟的電路結(jié)構(gòu)都不同,完成任何運(yùn)算都需要設(shè)計相應(yīng)的電路,導(dǎo)致其通用性比較差。Md.Maruf Monward等學(xué)者通過MPI(Message Passing Interfacing) 技術(shù)[3],運(yùn)用多個微處理器并行運(yùn)算以提高運(yùn)算速度,但其實質(zhì)上沒有改變傳統(tǒng)的算法,而且若要達(dá)到實時處理速度則需要采用很多微處理器,設(shè)備的體積將變得龐大且成本很高。?
??? 經(jīng)過比較與分析,認(rèn)為基于細(xì)胞神經(jīng)網(wǎng)絡(luò)的方法是最有前景的。細(xì)胞神經(jīng)網(wǎng)絡(luò)CNN(Cellular Neural Networks)是1988年由蔡少堂和楊林提出的一種神經(jīng)網(wǎng)絡(luò)模型[4-5],其結(jié)構(gòu)相比其他神經(jīng)網(wǎng)絡(luò)模型更容易制作成為大規(guī)模集成電路,現(xiàn)在已經(jīng)有了成熟的商用硬件,如CNNUM(CNN Universal Machine),并且隨著集成電路技術(shù)的進(jìn)步,CNN芯片的運(yùn)算速度也在不斷提高。CNN用于圖像處理時,由于其并行處理的方式,速度遠(yuǎn)高于基于微處理器的算法。因此,CNN自誕生以來便得到了廣泛的研究,各種改進(jìn)模型以及新算法層出不窮。參考文獻(xiàn)[1]將各種CNN基本運(yùn)算巧妙組合用于生物芯片信息提取,但其算法只能應(yīng)對噪聲、污染等少數(shù)幾種圖像缺陷,識別錯誤率較大,對不同規(guī)格的樣點圖像適應(yīng)性也較差,并且最終的強(qiáng)度分析算法輸出的是CNN格式的模擬信號圖像,沒有將樣點強(qiáng)度信息作為數(shù)據(jù)輸出,無法再進(jìn)一步進(jìn)行數(shù)據(jù)分析。?
??? 本文首先對參考文獻(xiàn)[1]的算法進(jìn)行改進(jìn),以提高識別的正確率,然后設(shè)計算法將CNN輸出的模擬圖像結(jié)果轉(zhuǎn)化為樣點強(qiáng)度數(shù)據(jù)。?
1 CNN模型簡介?
??? 圖1(a)是典型的CNN結(jié)構(gòu),圖中只顯示了4×4大小的區(qū)域,圖中的每個方框表示CNN的一個基本單元,稱為細(xì)胞(cell),每個細(xì)胞都有其輸入u、狀態(tài)x以及輸出y,y與x具有某種函數(shù)關(guān)系y=g(x),每個細(xì)胞與鄰近的細(xì)胞連接。CNN自從提出以來,已經(jīng)出現(xiàn)了多種改進(jìn)形式,其動力學(xué)機(jī)制也有多種表述方式,根據(jù)最初提出CNN的參考文獻(xiàn)[4]、[5]以及本文算法采用的結(jié)構(gòu)形式,可以把CNN的動力學(xué)方程總結(jié)如下:?
?????
式中,x、u、y分別表示細(xì)胞的狀態(tài)、輸入和輸出,下標(biāo)α、β表示細(xì)胞在CNN網(wǎng)絡(luò)中的坐標(biāo),C、I為常值,坐標(biāo)β涵蓋以α為中心、r為半徑的鄰域Nα(r)內(nèi)的所有細(xì)胞,它們的輸入uβ與輸出yβ通過連接權(quán)值A(chǔ)αβ、Bαβ作用于坐標(biāo)α的細(xì)胞,影響細(xì)胞α的狀態(tài)變化率
?
?
??? 如圖1(b)所示,將待處理圖像轉(zhuǎn)化為一組初始輸入u和狀態(tài)x的數(shù)據(jù),輸入CNN網(wǎng)絡(luò),每個細(xì)胞都通過式(1)不斷迭代運(yùn)算,最終網(wǎng)絡(luò)將收斂到某一狀態(tài),得到輸出圖像y。一組A、B、I便決定了這一收斂過程,稱為模板。模板運(yùn)算便是CNN基本運(yùn)算,將各種模板作為序列使用,便構(gòu)建為功能復(fù)雜的CNN算法。?
2 基于CNN的樣點識別算法?
2.1圖像預(yù)處理" title="圖像預(yù)處理">圖像預(yù)處理算法設(shè)計?
??? 本文根據(jù)常見的生物芯片樣點圖像特點以及CNN的特性,集中考慮了如何解決以下問題:(1)未知的噪聲。(2)樣點內(nèi)部灰度不均勻。(3)不規(guī)則樣點形狀。(4)不可靠的樣點(包括過大的樣點和過小的樣點)。據(jù)此設(shè)計了如圖2所示的流程進(jìn)行圖像預(yù)處理。首先對原圖像進(jìn)行優(yōu)化,去除噪聲以及平滑樣點內(nèi)部灰度;然后制作一幅蒙板圖。蒙板圖是一幅二值圖像,將其作用于某圖像時,蒙板圖中黑色區(qū)域?qū)?yīng)的圖像的像素將不發(fā)生改變。運(yùn)用蒙板圖像可以將已優(yōu)化圖像中需要的樣點提取出來,并將其余部分填充為黑色。這套算法較好地解決了以上提及的四個問題。算法使用CSL CNN Software Library中提供的模板[6]。圖2所示的流程圖中,(a)為算法的整體步驟,(b)、(c)、(d)分別表示算法的模板運(yùn)算系列,矩形框表示模板,平行四邊形表示各個步驟獲得的圖像,并且按其出現(xiàn)順序編號(如1,2……18,編號包括圖3中的);(e)為算法步驟中生成及使用的關(guān)鍵圖像,每幅圖的編號為對應(yīng)算法框圖中平等四邊形框。?
?
?
??? 如圖2中(h)8是由生物芯片規(guī)格信息預(yù)先定義的一幅陣列網(wǎng)格圖像。蒙板圖像(i)12中黑色區(qū)域指定了需要去除的部分,將去除噪聲后的圖像(f)4中對應(yīng)于這些區(qū)域的部分通過filblack模板運(yùn)算填充為黑色,便完成了如圖2中(j)13所表示的圖像的預(yù)處理。?
2.2 樣點強(qiáng)度信息提取算法設(shè)計?
??? 對生物芯片樣點圖像進(jìn)行分析,最終必須將樣點的強(qiáng)度作為數(shù)據(jù)輸出。采用CNN進(jìn)行圖像預(yù)處理,可以達(dá)到極高的速度,但是其輸出結(jié)果卻是模擬信號。參考文獻(xiàn)[1]的方法雖然能夠進(jìn)行樣點強(qiáng)度分析,但是最終輸出的是幾幅圖像,沒有轉(zhuǎn)化為樣點強(qiáng)度信息數(shù)據(jù),無法進(jìn)行信息分析。若要將樣點強(qiáng)度信息提取出來,還需要對CNN輸出的圖像進(jìn)行模數(shù)轉(zhuǎn)換后輸入微處理器,然后運(yùn)用微處理器計算出各個樣點的強(qiáng)度值。但是基于微處理器的圖像處理算法速度相比CNN要慢許多,這將嚴(yán)重影響整個系統(tǒng)的處理速度。?
??? 為此,設(shè)計了CNN算法,該算法只需要對其輸出圖像的指定像素點作模數(shù)轉(zhuǎn)換即可得到對應(yīng)樣點的強(qiáng)度信息,避免了用微處理器來計算。其算法流程如圖3(a)所示。?
?
?
??? 算法采用前面步驟生成的13號圖和8號圖作為樣點識別的原始圖像,最終將樣點分為三類:陽性樣點、無效樣點以及陰性樣點,如圖3(b)所示。輸出圖像的特征非常明顯,即各個樣點都轉(zhuǎn)化為一個方格,方格內(nèi)的像素值完全一樣,非黑即白,像素值表示了樣點的強(qiáng)度。因此,只需要對各個方格中心點作模數(shù)轉(zhuǎn)換便可得到整個方格的值。這樣就不需要設(shè)計微處理器算法來提取樣點強(qiáng)度值。在實際的試驗中,若最終需要準(zhǔn)確的樣點強(qiáng)度值,也可以按類似的思路來擴(kuò)充算法。例如,需要將樣點按照強(qiáng)弱劃分為8個灰度層次,則可以設(shè)定8個閾值分別計算出8幅圖像,每幅圖像表示大于相應(yīng)閾值的樣點,再輔以邏輯減運(yùn)算,就能識別出各個強(qiáng)度級對應(yīng)的樣點。?
3 算法的試驗測試與分析?
3.1與已有算法的對比?
??? 采用同一張圖像分別運(yùn)用本文提出的圖像預(yù)處理算法與參考文獻(xiàn)[1]的算法(算法只取灰度圖像處理部分,并且略去樣點強(qiáng)度分析步驟)來處理,兩種算法中的一些可調(diào)節(jié)的模板參數(shù)都根據(jù)試驗條件以及試驗圖像特點進(jìn)行最優(yōu)化,試驗結(jié)果如圖4所示。?
?
?
??? 由圖4可見,參考文獻(xiàn)[1]的算法將許多有效樣點誤判為噪聲去除,并且算法對樣點形狀的損害較大。通過分析可知,本文的算法主要在以下兩個方面優(yōu)于參考文獻(xiàn)[1]的算法:(1)去除噪聲時,由于采用Median模板預(yù)先去除大量隨機(jī)噪聲并且最后用D_aniso模板,有效地減少了diffus模板對于樣點形狀的損害;(2)去除過大以及過小樣點時,本文算法采用了可調(diào)節(jié)參數(shù)的模板patchmak,能夠有效避免將有效樣點誤判為噪聲,并且對于不同規(guī)格尺寸的樣點圖像將有更好的適應(yīng)性。?
??? 參考文獻(xiàn)[1]中的樣點強(qiáng)度分析輸出的是幾幅CNN模擬信號圖像而非數(shù)據(jù)結(jié)果,而本文的算法能將預(yù)處理的結(jié)果轉(zhuǎn)化為數(shù)據(jù),這無疑是實現(xiàn)生物芯片信息實時處理的必要步驟。?
3.2 算法速度估算?
??? 雖然本文算法是在計算機(jī)上通過模擬仿真平臺 CNN visual mouse platform進(jìn)行,沒有用實際芯片實現(xiàn),但是可以通過芯片的參數(shù)來估算運(yùn)行速度。?
??? ACE4K芯片的胞元陣列數(shù)為64×64,單位運(yùn)算速度為98M(XPS/cell),灰度圖像的運(yùn)算分辨率為8bit,二值圖像的運(yùn)算分辨率為1bit。對于3×3的標(biāo)準(zhǔn)CNN模板,在ACE4K.芯片上所能使用的最大胞元陣列數(shù)為63×63,對圖像每一個像素完成一次處理需進(jìn)行9次模板運(yùn)算。本文選用斯坦福公共基因數(shù)據(jù)庫(http://genome-www5.stanford.edu/)中的一幅典型樣點圖像來進(jìn)行算法速度估算,圖像樣點數(shù)為120×360點,圖像大小為1 916×5 564像素, 由于圖像大于ACE4K的胞元陣列,則需要把圖像分塊處理(需要分解成2 759塊子圖像)。由此,根據(jù)“單次運(yùn)算時間=[單位運(yùn)算速度/(運(yùn)算分辨率×一次處理的模板運(yùn)算次數(shù)×圖像分解數(shù))]-1”計算,對于整個圖像進(jìn)行一次灰度圖像運(yùn)算,需要時間為:?
?????
進(jìn)行一次二值圖像運(yùn)算,需要時間為:?
?????
??? 再根據(jù)CNN算法中各個模板運(yùn)算需要次數(shù),將流程各個步驟的運(yùn)算時間累加,可以計算出總運(yùn)算時間為32.5ms(毫秒量級),也即達(dá)到了每秒三十幀以上的處理速度。?
??? 運(yùn)用細(xì)胞神經(jīng)網(wǎng)絡(luò)進(jìn)行圖像處理遠(yuǎn)遠(yuǎn)快于傳統(tǒng)的基于微處理器的圖像處理算法,這為實現(xiàn)生物芯片信息實時處理提供了硬件基礎(chǔ)。本文運(yùn)用細(xì)胞神經(jīng)網(wǎng)絡(luò)設(shè)計了生物芯片圖像預(yù)處理算法,仿真結(jié)果顯示本文的算法比已有算法具有更高的識別正確率。本文還首次提出了基于細(xì)胞神經(jīng)網(wǎng)絡(luò)的樣點強(qiáng)度識別算法,將CNN模擬運(yùn)算結(jié)果轉(zhuǎn)化為數(shù)字信息,使得后續(xù)的信息分析成為可能。通過實際的CNN芯片參數(shù),估算了算法速度,結(jié)果顯示整套算法的一次運(yùn)算時間為毫秒級,達(dá)到了實時處理的要求。?
參考文獻(xiàn)?
[1] ARENA P, BUCOLO M, FORTUNA L, et al. Cellular?neural networks for real-time DNA Microarray Analysis[J].IEEE Engineering in Medicine and Biology,?? Mar.2002:?17-25.?
[2] SAMAVI S, KARIMI N. Real-time processing and compression of DNA microarray image[J].IEEE Transactions on??Image Processing, Mar. 2006,15(3):754-766.?
[3] MONWAR M M, REZAEI S. A parallel processing?approach for information extraction from microarray images[J]. IEEE CCECE/CCGEI, 2006:123-126.?
[4] CHUA L O, YANG L. Cellular neural networks:theory[J].IEEE Trans. Circuits Syst. I, 1988,35(10):1257-1272.?
[5] CHUA L O, YANG L. Cellular neural networks: Applications[J]. IEEE Trans. Circuits Syst. I, 1988,35(10):1273-1290.?
[6] ROSKA T, KEK L, NEMES L, et al. CSL CNN software?library(templates and algorithms) Vers. 7.3[M]. Budapest,Hungary, August 1999:1-175.