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