原文:https://ieeexplore.ieee.org/document/5703117
DOI:10.1109/TBME.2011.2109001
简介
这篇论文提供的方法主要解决细胞自动追踪中,准确率偏低的问题。造成准确率偏低的原因有很多,比如:图像质量偏低;由于担心荧光带来的毒性(cytotoxicity)限制使用荧光亮度而造成的较低的信噪比(Signal to noise ratio);细胞的拓扑结构上的问题(topological),如重叠、细胞分裂;细胞不规则的运动以及由于担心拍照时光对细胞产生的毒素(phototoxicity)而拍摄周期过长等问题。这些都对现有的用于细胞追踪的技术造成了不小的挑战。
目前人为地对细胞进行追踪、分析,都很费时费力,并且长时间的观察会造成准确率下降。本篇论文的方法如果可以在细胞追踪准确率上得到突破,不仅在细胞分析上将有所建树,也将提升病理诊断的准确率,对医学、生物学均有较大贡献。
具体方法
本论文中的方法分为了三部分:识别模块、追踪模块、复原模块。下图是作者在文中给出的结构图:
本方法是一种基于图片分割的方法(segmentation-based)。首先这第一篇博文先来阐述识别模块。识别模块的输入,是原图像的取反图(inverted image),即若原像素灰度值为i,则取反图中该位置的灰度值取255-i。注:本文之后所说的“输入图像”均为原图的取反。
第一部分叫做照明纠正(Illumination correction),目的是把一些图像中的阴影、噪音进行消除,得到较好的细胞轮廓二值图。此部分的主要操作是,对输入图片进行top-hat卷积处理,之后再将这一步的输出转为二值图。
所谓的top-hat处理,就是先将输入图像A'进行opening操作得到A'',再用A'减去A'',得到最终的输出图像。为什么上面说到这个步骤是卷积呢?因为opening操作本身是一个卷积过程,卷积核为提供的structuring element S。opening操作可以分为两步,一是缩减(erosion),二是扩张(dilation)。缩减的目的是将图像中的白色噪点去除,并且降低细胞区域的灰度值,方便后面相减之后更易于区分细胞和背景。但是缩减之后细胞区域的面积一定会变小,所以需要再进行扩张,扩张并不会恢复局部最大灰度值,但是会将细胞区域恢复到接近原来大小。注:如果这段不太明白,建议了解一下opening操作,或者以后有时间专门讲一下基于集合论的图像处理方法。得到的输出图像A''与输入图像A'进行对应像素相减,由于图像背景是黑色,且色彩变化不大,所以经过opening之后并不会变化很大。但是由于从背景到细胞区域的色彩变化剧烈,所以opening之后,细胞区域的灰度值有明显的降低。这就好像如果有三个数,是0,1,2,此时令输出为三个值中的最小值,即0,无论是对于这三个中的哪一个数而言,都不会有太大变化。相反地,如果有三个数,分别为0,100,200, 此时令输出为三个值中最小值0,那么对于100和200而言,变化是肉眼可见的。
经过top-hat处理之后,从图2的d中可以看出来,的像素灰度值分布是非常适合进行二值化的,因为有非常明显的分界线。比如如果认为灰度值160到180之间的像素为细胞区域,应该也有较好的效果。但是这里作者依然谨慎地使用了Otsu方法去计算阈值并且生成二值图。可以从图2的(e)中看出来,区分效果还是颇为明显的。
下一部分就是对细胞进行划分,目的是将不同的细胞区分开来。我们不能保证每个细胞在图像上都是无重叠的,而细胞的重叠会对不同细胞的追踪带来很大影响。所以这部分主要解决这个问题。从图3的(c)中可以发现,细胞核位置的亮度要高于细胞质,因此作者利用这个发现,决定用对细胞核进行划分,而不再是对细胞整体进行划分。从图3中的(d)可以发现,每个灰度值的局部最大值都关联着一个细胞核位置。因此,细胞检测问题就化简成了一个寻找局部最大值的问题,而一般我们寻找局部最大值,是采用高斯卷积再加上h-maxima变换。
高斯卷积在这里的作用,主要是突出局部最大值,防止一些例如局部最大值为一个区域而非一个值、细胞内有多个局部最大值等情况的干扰。高斯分布的标准差的取值是基于细胞本身的性质而人为决定的。
接下来我们讲一下h-maxima变换。这个变换的主要意义在于,舍弃掉低于h值的局部最大值。作者给出的计算公式为:
其中表示重构后的图像,即此部分的输出图像,表示n次的扩张运算,即上面提到的dilation。先用上部分的输出减去h,这样小于h的波峰就被舍弃掉。接下来我们需要更快捷准确的找到剩下的波峰值。这里采用的办法,是不断地进行dilation操作。由于上面提到,dilation不会使得灰度值回到原来的高度,所以局部最大值不会变,而局部最大值边上的像素则会逐渐向局部最大值趋近,当中每个像素的灰度值均等于中的某个灰度值时(如图3(g)中所示,黑线要么与红线重合,要么等于局部最大值),停止dilation。此时得到的输出图像就是,然后再用它与相减,得到的大于0的部分,就是原图像灰度中大于h的部分。 关于h值的选取问题,作者给了一个算法:
其中,和分别代表细胞区域和背景的灰度平均值,是一个超参数,需要人工去设置。文中采用的是0.6。
本模块的最后一部分,是细胞定位问题。目的是为了解决由于细胞质变形、噪点出现导致的细胞轮廓线并不规律,从而无法通过细胞轮廓去进行追踪的问题。虽然通过上面两部分处理,已经得到了较好的细胞轮廓,但是细胞及图像的一些噪音变化,依然会导致不同帧中,同一细胞轮廓发生不规律地变化。这里作者采用的方法是给每个细胞区域拟合一个椭圆形边框。
细胞的形状大多可以近似看作是一个椭圆形,不同的细胞拥有不同的离心率(eccentricity)。所以作者通过近似边框的想法,将不同的细胞“套”上不同离心率的椭圆形。此处作者使用了准确率高、运算速度快的最小二乘法,通过寻找细胞区域边界与拟合椭圆之间的最小距离,得到最佳拟合椭圆。图3的(i)(j)给出了结果,这里作者没有过多的叙述具体操作方法,有兴趣的可以阅读[1]。
截至于此,关于细胞识别的部分就已经完成。通过图像处理,找到细胞位置,再经过对亮度的分析,提取细胞核,解决重叠问题,最后通过最小二乘法拟合一个椭圆边框,得到了比较好的识别模型,为后续追踪做准备。
[1] A. Fitzgibbon, M. Pilu, and R. B. Fisher, “Direct least square fifitting of ellipses,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 21, no. 5, pp. 476–480, May 1999.