基于细胞神经网络的生物芯片图像实时处理
2008-12-10
作者:律睿慜1,2,杨 勇1,2,王淑
摘 要: 运用CNN设计了一套生物芯片样点识别算法。算法实现的目标:改善已有方法的缺陷,达到良好的图像质量增强效果;将CNN输出的模拟信号图像转化为样点数据信息,使得后续的信息分析成为可能。最后利用实际CNN芯片参数估算了整套算法的运算时间,结果显示其速度达到实时处理" title="实时处理">实时处理的标准。
关键词: 生物芯片; 微阵列芯片; 样点识别; 细胞神经网络
生物芯片又称为微阵列芯片,是近年来生命科学领域迅速发展起来的一项高新技术。生物芯片是在面积不大的基片上点阵排列一系列可寻址的生物识别分子,这些阵列点称为探针。探针在相同的条件下与各种待测定的靶分子同时进行结合或反应,各个探针的反应程度各不相同,反应结果用同位素法、化学荧光法、化学发光法或酶标法显示,用精密扫描仪记录为灰度图像形式。然后,对这些灰度图像进行分析处理,提取出各个样点的强度值,并结合数据库关于芯片探针排列形式以及各个探针代表的生物识别分子的描述,确定试验结果。
图2(e)是一幅典型的生物芯片样点图像(局部),各个样点的灰度值代表了对应探针的反应程度,对其进行图像处理" title="图像处理">图像处理的目标是提取各个样点的强度值。一般做法就是将样点与背景分离,并依据样点中所有像素的灰度值计算样点强度。
近年来出现了多种样点自动识别算法,这些算法的速度都受限于微处理器本身的计算能力,对于数据量极大的生物芯片样点图像,运算速度" title="运算速度">运算速度始终没有质的突破。
新型探测技术的出现大大提高了样点图像的获取速度,这使得生物芯片信息实时分析成为可能。为了适应这一趋势,P.arena等学者提出了运用细胞神经网络" title="细胞神经网络">细胞神经网络的生物芯片图像处理方法[1],实现了实时生物芯片图像处理,但其算法不完善,不便于实时信息分析。Shadrokh Samavi等学者提出了一系列硬件结构用于生物芯片实时处理[2],也达到了很高的速度。但是其每一步骤的电路结构都不同,完成任何运算都需要设计相应的电路,导致其通用性比较差。Md.Maruf Monward等学者通过MPI(Message Passing Interfacing) 技术[3],运用多个微处理器并行运算以提高运算速度,但其实质上没有改变传统的算法,而且若要达到实时处理速度则需要采用很多微处理器,设备的体积将变得庞大且成本很高。
经过比较与分析,认为基于细胞神经网络的方法是最有前景的。细胞神经网络CNN(Cellular Neural Networks)是1988年由蔡少堂和杨林提出的一种神经网络模型[4-5],其结构相比其他神经网络模型更容易制作成为大规模集成电路,现在已经有了成熟的商用硬件,如CNNUM(CNN Universal Machine),并且随着集成电路技术的进步,CNN芯片的运算速度也在不断提高。CNN用于图像处理时,由于其并行处理的方式,速度远高于基于微处理器的算法。因此,CNN自诞生以来便得到了广泛的研究,各种改进模型以及新算法层出不穷。参考文献[1]将各种CNN基本运算巧妙组合用于生物芯片信息提取,但其算法只能应对噪声、污染等少数几种图像缺陷,识别错误率较大,对不同规格的样点图像适应性也较差,并且最终的强度分析算法输出的是CNN格式的模拟信号图像,没有将样点强度信息作为数据输出,无法再进一步进行数据分析。
本文首先对参考文献[1]的算法进行改进,以提高识别的正确率,然后设计算法将CNN输出的模拟图像结果转化为样点强度数据。
1 CNN模型简介
图1(a)是典型的CNN结构,图中只显示了4×4大小的区域,图中的每个方框表示CNN的一个基本单元,称为细胞(cell),每个细胞都有其输入u、状态x以及输出y,y与x具有某种函数关系y=g(x),每个细胞与邻近的细胞连接。CNN自从提出以来,已经出现了多种改进形式,其动力学机制也有多种表述方式,根据最初提出CNN的参考文献[4]、[5]以及本文算法采用的结构形式,可以把CNN的动力学方程总结如下:
式中,x、u、y分别表示细胞的状态、输入和输出,下标α、β表示细胞在CNN网络中的坐标,C、I为常值,坐标β涵盖以α为中心、r为半径的邻域Nα(r)内的所有细胞,它们的输入uβ与输出yβ通过连接权值Aαβ、Bαβ作用于坐标α的细胞,影响细胞α的状态变化率
如图1(b)所示,将待处理图像转化为一组初始输入u和状态x的数据,输入CNN网络,每个细胞都通过式(1)不断迭代运算,最终网络将收敛到某一状态,得到输出图像y。一组A、B、I便决定了这一收敛过程,称为模板。模板运算便是CNN基本运算,将各种模板作为序列使用,便构建为功能复杂的CNN算法。
2 基于CNN的样点识别算法
2.1图像预处理" title="图像预处理">图像预处理算法设计
本文根据常见的生物芯片样点图像特点以及CNN的特性,集中考虑了如何解决以下问题:(1)未知的噪声。(2)样点内部灰度不均匀。(3)不规则样点形状。(4)不可靠的样点(包括过大的样点和过小的样点)。据此设计了如图2所示的流程进行图像预处理。首先对原图像进行优化,去除噪声以及平滑样点内部灰度;然后制作一幅蒙板图。蒙板图是一幅二值图像,将其作用于某图像时,蒙板图中黑色区域对应的图像的像素将不发生改变。运用蒙板图像可以将已优化图像中需要的样点提取出来,并将其余部分填充为黑色。这套算法较好地解决了以上提及的四个问题。算法使用CSL CNN Software Library中提供的模板[6]。图2所示的流程图中,(a)为算法的整体步骤,(b)、(c)、(d)分别表示算法的模板运算系列,矩形框表示模板,平行四边形表示各个步骤获得的图像,并且按其出现顺序编号(如1,2……18,编号包括图3中的);(e)为算法步骤中生成及使用的关键图像,每幅图的编号为对应算法框图中平等四边形框。
如图2中(h)8是由生物芯片规格信息预先定义的一幅阵列网格图像。蒙板图像(i)12中黑色区域指定了需要去除的部分,将去除噪声后的图像(f)4中对应于这些区域的部分通过filblack模板运算填充为黑色,便完成了如图2中(j)13所表示的图像的预处理。
2.2 样点强度信息提取算法设计
对生物芯片样点图像进行分析,最终必须将样点的强度作为数据输出。采用CNN进行图像预处理,可以达到极高的速度,但是其输出结果却是模拟信号。参考文献[1]的方法虽然能够进行样点强度分析,但是最终输出的是几幅图像,没有转化为样点强度信息数据,无法进行信息分析。若要将样点强度信息提取出来,还需要对CNN输出的图像进行模数转换后输入微处理器,然后运用微处理器计算出各个样点的强度值。但是基于微处理器的图像处理算法速度相比CNN要慢许多,这将严重影响整个系统的处理速度。
为此,设计了CNN算法,该算法只需要对其输出图像的指定像素点作模数转换即可得到对应样点的强度信息,避免了用微处理器来计算。其算法流程如图3(a)所示。
算法采用前面步骤生成的13号图和8号图作为样点识别的原始图像,最终将样点分为三类:阳性样点、无效样点以及阴性样点,如图3(b)所示。输出图像的特征非常明显,即各个样点都转化为一个方格,方格内的像素值完全一样,非黑即白,像素值表示了样点的强度。因此,只需要对各个方格中心点作模数转换便可得到整个方格的值。这样就不需要设计微处理器算法来提取样点强度值。在实际的试验中,若最终需要准确的样点强度值,也可以按类似的思路来扩充算法。例如,需要将样点按照强弱划分为8个灰度层次,则可以设定8个阈值分别计算出8幅图像,每幅图像表示大于相应阈值的样点,再辅以逻辑减运算,就能识别出各个强度级对应的样点。
3 算法的试验测试与分析
3.1与已有算法的对比
采用同一张图像分别运用本文提出的图像预处理算法与参考文献[1]的算法(算法只取灰度图像处理部分,并且略去样点强度分析步骤)来处理,两种算法中的一些可调节的模板参数都根据试验条件以及试验图像特点进行最优化,试验结果如图4所示。
由图4可见,参考文献[1]的算法将许多有效样点误判为噪声去除,并且算法对样点形状的损害较大。通过分析可知,本文的算法主要在以下两个方面优于参考文献[1]的算法:(1)去除噪声时,由于采用Median模板预先去除大量随机噪声并且最后用D_aniso模板,有效地减少了diffus模板对于样点形状的损害;(2)去除过大以及过小样点时,本文算法采用了可调节参数的模板patchmak,能够有效避免将有效样点误判为噪声,并且对于不同规格尺寸的样点图像将有更好的适应性。
参考文献[1]中的样点强度分析输出的是几幅CNN模拟信号图像而非数据结果,而本文的算法能将预处理的结果转化为数据,这无疑是实现生物芯片信息实时处理的必要步骤。
3.2 算法速度估算
虽然本文算法是在计算机上通过模拟仿真平台 CNN visual mouse platform进行,没有用实际芯片实现,但是可以通过芯片的参数来估算运行速度。
ACE4K芯片的胞元阵列数为64×64,单位运算速度为98M(XPS/cell),灰度图像的运算分辨率为8bit,二值图像的运算分辨率为1bit。对于3×3的标准CNN模板,在ACE4K.芯片上所能使用的最大胞元阵列数为63×63,对图像每一个像素完成一次处理需进行9次模板运算。本文选用斯坦福公共基因数据库(http://genome-www5.stanford.edu/)中的一幅典型样点图像来进行算法速度估算,图像样点数为120×360点,图像大小为1 916×5 564像素, 由于图像大于ACE4K的胞元阵列,则需要把图像分块处理(需要分解成2 759块子图像)。由此,根据“单次运算时间=[单位运算速度/(运算分辨率×一次处理的模板运算次数×图像分解数)]-1”计算,对于整个图像进行一次灰度图像运算,需要时间为:
进行一次二值图像运算,需要时间为:
再根据CNN算法中各个模板运算需要次数,将流程各个步骤的运算时间累加,可以计算出总运算时间为32.5ms(毫秒量级),也即达到了每秒三十帧以上的处理速度。
运用细胞神经网络进行图像处理远远快于传统的基于微处理器的图像处理算法,这为实现生物芯片信息实时处理提供了硬件基础。本文运用细胞神经网络设计了生物芯片图像预处理算法,仿真结果显示本文的算法比已有算法具有更高的识别正确率。本文还首次提出了基于细胞神经网络的样点强度识别算法,将CNN模拟运算结果转化为数字信息,使得后续的信息分析成为可能。通过实际的CNN芯片参数,估算了算法速度,结果显示整套算法的一次运算时间为毫秒级,达到了实时处理的要求。
参考文献
[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.