当前位置:首页 期刊杂志

斑马鱼胚胎彩色图像生理结构分割

时间:2024-09-03

杨玮婕,徐建瑜

(宁波大学信息科学与工程学院,浙江 宁波 315211)

斑马鱼如今已成为一种关键的模式生物并广泛应用于药物实验[1],毒性检查以及遗传筛查等领域[2,3]。由于其遗传学与人类相似,具有外部受精和快速发育过程以及半透明身体等优势,使斑马鱼成为了医药生物等方面科学研究的理想选择,因此斑马鱼成为高通量筛选中最受欢迎的物种之一[4]。然而,由于胚胎数量之多产生的大量数据对数据分析和建模造成了阻碍。基于斑马鱼的实验产生图像数据如此之多,以至于很难通过手动的方式进行分析[5]。因此自动分析斑马鱼图像,以及对斑马鱼图像中信息量化的需求日益增长。

经过药物培养的斑马鱼胚胎在发育过程中会对其生理结构的某一部分或者某几个部分产生不定性的影响,因此正确的对斑马鱼胚胎图像按照生理结构进行分割,也可以称为语义分割,对医学药物对脊椎动物的影响进行定性定量分析有着重要的意义。斑马鱼胚胎按其生理结构而言主要可以分为三部分,分别是斑马鱼头部,鱼体躯干血管以及斑马鱼卵黄部分。基于以上研究背景,选择与背景对比度较高的斑马鱼胚胎图像,并能对图像按照其生理结构使用不同颜色进行标注分割,是本文的主要研究目标。

如今有很多不同的图像分割技术,如基于阈值的,边缘化的基于聚类的,基于神经网络等。本文针对图像语义分割技术进行了研究,语义分割[6]方法可以认为是基于图像内容的图像分割,即不是简单地将图像分割归为边界检测或区域查找,而是利用图像中的内容信息,例如特征相似性、图像语义等来确定图像中区域的划分。目前发展较成熟的语义分割的运用有:1)Moorer[7]等人于2008年基于最小分割的概念提出Superpixel Lattice算法。该算法以一维图像边界代价图(boundary cost map)作为输入,该图保存了两个像索之间存在边界的概率。以迭代的方式在图像水平和垂直方向寻找最有可能通过分割边界的路径。使图像被划分成断开的小块。该方法生成的图像块形状比较规则,接近网格结构,分割准确度也较高。2)杨雪[8]等人提出了一种在区域层面上基于纹理基元块的识别与集成后图像的语义分割算法,该算法采用纹理等原始特征,考虑到像素之间的关系,以及保持对象之间的纹理边缘信息,从而分割出轮廓清晰的对象。3)Long等人[9]建立了一种端到端,像素到像素的“完全”卷积神经网络,该网络是一种输入任意尺寸像素即可输入同样大小像素的高效学习网络。将该网络扩展到语义分割领域,用以改进多分辨率层组合架构,获得了很好的分割效果。

但是以上方式都有一个限制条件,那就是需要大量的学习样本,但是每一批特定的药物某一阶段实验所使用的斑马鱼实验组非常有限,并且斑马鱼不同生长时期某种药物对其产生的生理结构影响都会有所差别,所以必须单独研究,且不同的药物实验组之间图像基本没有相互参考的价值,因此可以提供学习的样本非常少。在这种情况下,本文使用图像处理进行斑马鱼图像的语义分割,通过设置并优化参数,最终达到理想的效果。目前研究中较为成熟有效的图像分割方法主要有分水岭算法、聚类算法中的K-means聚类算法以及区域生长法中的漫水填充算。根据目前已有的语义分割研究现状,针对本文课题研究方向即对样本数量固定的生物图像进行生理结构化分割,没有成熟固定的算法研究。因此本文使用上述三种方法分别进行分割,根据最终分割效果对比得到最佳分割方案。

1 斑马鱼胚胎语义分割

针对本文所研究问题,本文采用三种不同算法并进行改进,最终选择效果最佳的分割效果,流程如图1。

图1 斑马鱼图像语义分割流程图Fig.1 Semantic segmentation of zebrafish image

根据图1得出本文的目标实现路线为:分别通过改进型分水岭算法,减法聚类寻找图像质心结合K-means聚类算法,减法聚类寻找图像质心结合漫水填充算法对实验源图像进行分割,根据分割效果得出更有效的分割模型。

2 减法聚类

减法聚类是一种找到最佳数据点的方法,它根据数据密度来定义周围的数据点的聚类质心[10]。该方法源自Chiu[11]提出的一种基于密度指标的模糊聚类算法。减法聚类法非常简单而有效,它先预估聚类中心的数量和初始位置,然后根据数据映射成一个空间的网格点,并根据密度计算公式计算每个数据点的密度值,所以附近有很多数据点的网格点会有很高的密度值。所有网格点中具有最高密度值的将被选为第一个聚类中心。在选择第一个聚类中心后,再通过修正密度计算指标试找到其余网格点中第二个最可能称为聚类质心的点。

减法聚类算法的执行步骤如下:

1)假定有n个数据点的集合:X= {x1,x2,x3…xn},每个点被认为是一个潜在的集群中的聚类质心。 数据点xn的成为质心点的密度计算公式如下:

(1)

其中‖·‖代表欧几里何距离,ra是数据空间中的超球半径,它是一个正常数,用于定义与周围数据的距离,因此衡量数据点成为数据质心可能性的关键是a点与所有其他数据点的距离函数。

2)计算出每个数据点的密度后,选择密度值最大的数据点作为第一个集群中心。此时将x1和p1分别视为第一个聚类中心及其相应的密度。然后通过使用如下公式计算其余每个数据点的密度值:

(2)

rb是数据空间中的超球体惩罚半径,它是一个正常数。式(2)中减去一定数量的点位从每个数据点作为距离第一个聚类中心的距离的函数,因此在第一个集群中心附近的数据点将大大降低概率,也就意味着被选择成为下一个聚类中心的机会较少。计算完成每个数据点的修正概率后,找到可能性最高点作为下一个聚类中心。

3)在执行完第二步之后,使用公式(3)判别式进行判别。若判别式成立则停止密度值进一步计算,即意味着聚类质心点寻找完毕,否则,继续执行第二步的计算。

Pi/P1<δ

(3)

其中,参数δ(δ<1)是事先给定的参数,它直接决定了聚类质心点的个数。

3 彩色图像分割算法原理

目前研究中较为成熟有效的图像分割方法主要有分水岭算法、聚类算法中的K-means聚类算法以及区域生长法中的漫水填充算,下面主要介绍一下三种分割方案的原理。

3.1 分水岭分割法原理

分水岭算法,其思想来自地理学的方法,变换的思想来源于地形学,它将图像看作是地形学上被水覆盖的自然地貌,图像中的每一点的灰度值可以理解为拓扑图上的地形高度,拓扑地貌上局部区域的极小值及其所能影响到的所有区域被称作集水盆,找到该集水盆边界线也就是分水岭是水岭分割算法的主要目标[12]。分水岭算法分为两个步骤:一个是排序过程,一个是洪泛过程。首先对每个像素灰度级进行从低到高排序,然后在从低到高实现淹没的过程中,对每一个局部极小值在h阶高度的影响域采用先进先出(FIFO)结构进行判断及标注。分水岭变化得到的是输入图像的集水盆图像,集水盆之间的边界点,即为分水岭。显然,分水岭表示的是输入图像的极大值点。因此,为得到图像的边缘信息,通常把梯度图像作为输入图像,即

g(x,y)=grad(f(x,y))=

(4)

式中,f(x,y)表示原始图像,grad(f(x,y))表示对图像求梯度运算。

3.2 自适应K-means聚类分割原理

K-means聚类算法发展至今已经较为成熟,在彩色图像分割领域也是常用方法之一[13]。聚类的方法很多,其中K-means聚类分割,因其理论可靠、算法简单、收敛速度快、能有效处理大数据量而得到广泛的应用。聚类是将一组数据分成特定数量的组的一种方法,在K-means聚类中,它将一组数据分割成k个数据组[14,15]。

它将给定的一组数据分为k个不相交的群集。 K-means算法由两个独立的阶段组成:第一阶段计算k质心,第二阶段计算每个点到最近的簇来自相应数据点的质心。一旦完成分组,重新计算每个聚类的新质心,并基于该质心计算每个中心与每个数据点之间的新距离,并且指定具有最小距离的集群中的点。分区中的每个成员对象和其质心总和定义为一个集群。每个簇的质心与该群集中的所有对象距离的总和都是最小的。所以K-means是一种迭代算法,它可以为每个对象在所有集群中找到与它所在集群距离最小集群的质心。

K-means算法原理是:设有由n个m维数据构成的数据X={xi|xi∈Rm,i=1,2,...,n},将X划分为由K个聚类集构成的集合,每个聚类集之间的数据具有较高相似性,不同聚类集之间的数据彼此相差较大。本文使用K值确定的聚类方法,这种方法适合处理数据量较大的数据集。

首先为数据集选定K个数据作为初始中心;剩余的每个数据,通过技术数据到每个初始中心的距离,选定距离最近的类作为它的归属类;接着在每个归属类中重新计算K个类的聚类中心,并再一次确定每个数据的归属类;通过不断重复这个过程,直到聚类中心不再变更。常用的计算距离主要有Minkowski distance,Euclidean distance以及CityBlock distance三种方法。这三种方法距离计算公式分别如下:

1) Minkowski distance方法的计算公式为

(5)

式(2.23)中λ可取任意值。

2) Euclidean distance方法的计算公式为

(6)

3) CityBlock distance方法的计算公式为

(7)

在使用以上三种公式进行聚类是,数据集分别以星形、圆形和菱形的方式逼近中心。由于本文研究对象主要以圆形或椭圆形为主,因此选择式(6)进行计算距离。

3.3 漫水填充分割算法原理

漫水填充方法的基本思想就是,根据选中种子点区域以及相连区域,接着将该区域替换成指定的颜色,以此用来标记或者分离图像的一部分进行处理或分析[16]。漫水填充算法是一种区域填充算法,其本质是种子填充算法,此方法适用于填充内部定义的区域。内部定义的区域是指该区域中所有像素具有相同颜色或亮度值的区域,而外部区域具有不同的颜色或亮度值。该方法的思想是先确定区域内某一点为种子点,然后搜索种子点邻域上的点,如果该点未被访问过同时又满足填充的条件,就填充该点,并且将这点当作新种子点继续搜索。种子填充法可以用函数F(x,y)来描述,种子点是F(x,y)的输入,输出则是填充后的图像信息矩阵,其中[1]x, y代表填充像素点(x,y)后的图像信息矩阵,[0]x, y代表没有填充(x,y)像素点。这样便有种子填充算法的递归函数表示,如下面式(8)所示:

(8)

其中C是填充条件,C(x,y)=true代表像素点(x,y)符合填充的条件,C(x,y)=false代表像素点(x,y)不符合填充的条件。C可能是灰度条件C1,代表填充在规定灰度范围内的连通区域;可能边界条件C2,代表填充一个封闭的轮廓内部区域;也可能是C1和C2的交集C1∩C2代表填充一个封闭轮廓里符合规定的灰度范围的连通区域。

基于漫水填充算法为了争取连通区域,需要调整四方向或八方向搜索选项中连接区域阈值大小和方向。这两种方向填充后的结果是不同的,如图2所示:

图2 四方向和八方向填充结果Fig.2 Four-way and eight-direction padding results

有多种算法可以实现漫水填充算法,比如递归算法、扫描线算法等。递归式效果稳定,速度较快,较为常用。在本文选择的递归式-4连接填充算法表示如下所示:

(1)输入:待分割图像image,种子点seed,目标颜色target-color,填充颜色fill-color(随机);

(2)如果当前像素点seed颜色与目标颜色target-color不同,返回;

(3)填充过程:执行Flood-fill(image,当前像素点的左边节点,target-color,边节点,target-color,fill-color);

执行Flood-fill(image,当前像素点的右边节点,target-color,fill-color);

执行Flood-fill(image,当前像素点的上

边节点,target-color, fill-color);

执行Flood-fill(image,当前像素点的下边节点,target-color,fill-color);

(4)填充完成。

在漫水填充算法实现过程中,如果访问图像中的某个像素,则将vis [x] [y]标记为1,并直接返回函数;如果没有访问,则将[x] [y]设置为1,然后依次访问左、右、上、下四个方向的邻接关系。漫水填充算法代码表示如下所示:

1voidFlood_Fill(intx,inty)

2 {

3if(vis[x][y]==1)return;

4vis[x][y]=1;

5if(x+1

6if(x-1>=0)Flood_Fill(x-1,y);

7if(y+1

8if(y-1>=0)Flood_Fill(x,y-1);

9 }

漫水填充法需要用到的二个参数:起始种子点,目标颜色判定规则和替换颜色。漫水填充法是一个非常有用的算法,经常被用来标记或分割图像的某些部分以便对其进行进一步处理和分析。

4 实验过程及结果

本文中所使用的实验图像源为荧光斑马鱼图像由环特生物科技有限公司提供。由于图像的前景与背景得到的对比度高,并且生理结构之间图像的区别很明显,肉眼即可观察出来,所以对于计算机分割结果可以有一个良好的评判。

4.1 改进型分水岭算法分割

分水岭分割属于区域阈值分割,因此不需要生长点或是聚类中心点,可自动根据图像灰度级分割出图像的集水盆图像。但是本文属于语义分割,仅仅根据图像灰度图难以达到想要的效果,同时,传统分水岭分割算法具有一个较大弊端,即往往产生过分割。本文对传统分水岭算法进行改进,将距离变换与分水岭算法配合使用[17],计算距离变化可以使用函数bwdist进行计算,该函数可以使用D=bwdist(f)。分割过程如图3所示:

图3 分水岭分割流程Fig.3 Watershed segmentation process

图4 分水岭算法分割结果Fig.4 Watered segmentation processa.原图;b.分割效果图a.Original image;b.Segmentation result

根据上述流程,本文的分割效果如图4所示。

从图4分割结果可以看出,虽然本文分水岭算法结合距离变换分割结果对于过分割问题有所改善,但是分割效果十分不理想,主要表现为未精确区分出前景背景部分,分割效果粗糙,将图像细节未凸显出来,因此没有后续进一步对斑马鱼各部分量化等研究的价值。

4.2 K-means聚类算法分割

通过使用减法聚类算法找到图像中聚类的个数和聚类质心位置,之后通过K-means聚类算法来对图像进行聚类分割,并使用不同颜色将图像中不同集群进行填充,分割流程如图5所示。

图5 K-means聚类算法分割流程Fig.5 K-means clustering algorithm segmentation process

但是在分割过程中,减法聚类虽然可以确定出聚类个数,但是并不是本文确定的聚类个数,本文需要将斑马鱼分割为头部,躯干以及卵黄三个部分,所以k=3,因此通过调节公式(6)直至聚类个数为三个。

根据上述流程,本文的分割效果如图6示。

图6 K-means聚类算法分割结果Fig. 6 K-means clustering algorithm segmentation resultsa.原图;b.分割效果图a.Original image;b.Segmentation result

从图6分割结果可以看出,使用K-means聚类算法单从分割效果来说,分割地非常良好,边缘细节清楚锐利,前后背景区分非常明显,比起分水岭算法效果有了很好地提升。但是,图像并没有按照斑马鱼胚胎生理结构分割,卵黄与躯干分为一个整体,因此没有达到本文研究所要的语义分割目的。

4.3 漫水填充算法分割

通过使用减法聚类算法找到图像中聚类的个数和聚类质心位置,之后通过K-means聚类算法来对图像进行聚类分割,并使用不同颜色将图像中不同集群进行填充,分割流程如图7所示。

图7 漫水填充算法分割流程Fig.7 Flood-filled algorithm segmentation process

同样的,减法聚类也应通过调节公式(6)直至生长点个数成为三个。

图8 漫水填充算法分割结果Fig. 8 Flood-filled algorithm segmentation resulta.原图;b.分割效果图a.Original image;b.Segmentation result

从图8分割结果可以看出,使用漫水填充算法不仅达到了K-means聚类算法中边缘细节清楚锐利,前后背景区分非常明显的分割效果,与此同时,图像分割结果可以明显区分出了斑马鱼胚胎的头部,躯干以及卵黄三部分,为之后的药物自动定量研究提供了很好的基础,可以通过统计不同颜色的像素值或者计算面积等多种方法实现每一部分的计算。

5 结论

本文通过分别使用距离变换结合分水岭算法、减法聚类结合K-means聚类算法以及减法聚类结合漫水填充算法对荧光斑马鱼胚胎图像进行生理结构的分割,最终通过对三种算法的分割效果对比,可以发现只有漫水填充算法实现了本文研究所要达成的语义分割效果,不仅正确分割出了斑马鱼主要的三部分生理结果,并且图像前后背景区分精准,同时分割细节清楚,成为文研究最为理想的分割算法。同时,本文填补了在目标图像数量有限的情况下,对图像生物进行生理结构语义分割研究领域的空白,具有一定的参考价值。但是分割结果仍然不尽完美,仍然存在一定程度过分割的情况,并且通过调节参数也不能很好地避免这个问题,可见算法还有进一步改进的空间。通过本文的研究,对于后续生物分割研究领域有很大的参考价值,例如可以分别计算分割出的生物图像各个部分的像素值从而统计各部分的生理占比平均值或者研究药物对生物的生理影响等。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!