基于改进分水岭分割算法的致密荧光微滴识别
2019-09-02董文飞蒋克明周武平黎海文
刘 聪,董文飞,蒋克明,周武平,张 涛,黎海文*
(1.中国科学院 苏州生物医学工程技术研究所,江苏 苏州 215163;2.中国科学院大学,北京 100039)
1 引 言
微滴数字PCR是近年来发展十分迅速的新一代定量PCR技术[1]。目前微滴数字PCR中常见的信号检测方法为流式检测法。流式检测法利用流式细胞仪的原理,将一个个液滴依次经过光学或电子探测器,通过检测标记的荧光信号逐个分析液滴,具有背景荧光强度低,识别算法简单等优点。但是,该方法光路复杂、成本高昂,而且难以与仪器前端的微滴生成模块、PCR扩增模块集成,在数字PCR集成化和低成本化的趋势下显得后继乏力[2]。近年来,数字影像技术的发展让人们能获取高质量的荧光图像,这使得基于数字荧光图像进行微滴识别的平面探测法越来越受到人们的欢迎。
目前,基于平面探测法的微滴识别存在以下难点。首先,由于激发荧光的强度较弱,通常需要较长的曝光时间才能获得可用于识别的图像,即便如此,微滴荧光图像的亮度和对比度与明场图像相比明显偏低。其次,图像中微滴可以分为含有目标核酸分子的阳性微滴和不含目标核酸分子的阴性微滴两类。阳性微滴的荧光强度较强,可以轻易地与背景分开,但阳性微滴会对周围背景区域和阴性微滴产生干扰,例如多个阳性微滴包围一个阴性微滴,则有可能造成该阴性微滴荧光强度的被动提高;阴性微滴的荧光强度较弱,微滴内部的荧光强度仅略高于背景,具有低亮度、低信噪比的特点。这些特点对识别微滴提出了挑战,因此,有必要对荧光图像中的微滴识别方法进行研究。
现有的针对圆形物体的图像识别方法通常分为以下3步:(1)通过预处理尽可能地去除图像中存在的伪迹或噪声;(2)将图像分割为背景和前景;(3)将重叠或黏连的颗粒区分开。文献[3-6]报道了一些基于显微图像的颗粒计数方法,但均为对可见光源下的圆形颗粒图像进行识别,无法直接应用到含有大量阴性微滴、图像信噪比低的荧光图像中,因此有必要对荧光图像中的微滴识别方法进行研究。本文提出一种基于自适应阈值分割和改进分水岭分割的荧光微滴自动识别方法,针对图像中含有的大量阳性和阴性荧光微滴进行准确、快速、高通量的识别,从而提高检测精度。
2 基于距离变换的改进分水岭分割方法
2.1 图像增强
为了改善图像的视觉效果,通常需要对图像进行一系列调整以增强图像的整体或局部特性,增大图像中不同信息之间的差别,满足后续分析的需要。图1为微滴荧光图像示例,分辨率为320×240。从图中可见,整张图像的亮度明显偏暗。虽然阳性微滴可以比较清楚地看到,但阴性微滴仅比背景值略高,整体灰度值较低,这使得常见的阈值分割方法难以奏效。因此,图像增强的目的主要在于提高暗部的对比度。
图1 微滴荧光图像示例 Fig.1 A droplets fluorescence image
本文利用直方图均衡化对图像进行非线性拉伸,扩大暗部的灰度差别,增强阴性微滴与背景的对比度,达到对比度增强的效果。直方图均衡化无需确定变换函数系数,计算量小,结果简单可靠,缺点是可能会出现因灰度级合并造成图像部分细节信息丢失的情况,导致背景噪声强度增加,有用信号的对比度降低,此时,需要使用平滑滤波器对图像进行平滑[7]。
目前使用较多的空间域平滑滤波器可以分为线性滤波器和非线性滤波器两类,前者包括高斯滤波、均值滤波等滤波器,后者以中值滤波器为代表。微滴荧光图像具有两个特点:(1)图像中的背景噪声主要为高斯噪声;(2)微滴间的填充部分受到微滴荧光强度的直接影响。中值滤波是应用广泛的非线性滤波器,但其效果依赖于滤波窗口的大小,其本质上牺牲了图像分辨率。近年来出现了一些基于中值滤波的改进算法,如但唐仁等人[8]的极值中值滤波器。这些滤波器较传统中值滤波器有所改进,但在实际应用中仍有各自的局限性。受荧光的影响,中值滤波还可能扩大阳性微滴周围背景噪声的范围,导致微滴黏连,这就决定了中值滤波并不适合处理微滴荧光图像。高斯滤波是一种根据高斯函数的形状来选择权值的线性平滑滤波器,掩模中心的权重比其他任何像素的权重都大,而距离掩模中心较远的像素就显得不太重要。相比较于均值滤波,高斯滤波在较好地处理高斯噪声的同时,减小了平滑对边缘的模糊效应,更适用于对荧光微滴图像平滑处理。图2是图像经高斯滤波后的结果。
图2 预处理后的示例图像(a)及其灰度分布(b) Fig.2 Preprocessed sample image(a) and its gray distribution(b)
2.2 图像分割
基于微滴荧光图像进行微滴识别时,图像分割是需要解决的重要问题,其目的是将微滴从图像背景中分离出来。目前,常用的图像分割方法主要有基于阈值的分割方法、基于区域的分割方法、聚类分割法和基于模型的分割方法[9]等。其中基于阈值的图像分割法具有简单、易实现、性能稳定的特点,是目前应用最广泛的分割方法[10]。
从预处理后的示例图像的灰度直方图中可以看到,预处理后图像的灰度分布为三峰分布,分别对应于阳性微滴、阴性微滴和背景。如果直接使用传统的二分法分割阈值,由于阳性微滴和阴性微滴的比例无法确定,将有较大几率导致算法将阴性微滴和背景噪声一起忽略。为此,通过二次分割法将微滴从背景中识别出来。首先,尽可能地去除背景噪声。统计经过预处理后的图像Iprep的灰度分布曲线,平滑处理后查找其波谷中灰度值最低的TH1。使用TH1作为荧光背景与阴性微滴的分界,将所有低于TH1的像素置零,得到一次分割后的图像Ith1。经过一次分割后,绝大部分背景噪声被去除。然后,使用局部自适应阈值法将Ith1再次分割,得到二值化的图像Ith2。局部自适应阈值法仅对指定像素周围邻域内的灰度值进行比较,减少了邻域外光照不均匀等图像退化的干扰,对密集液滴的区分效果较基于全局灰度分布分割的Otsu法更好。
图3是经过二次阈值分割后得到的微滴二值化图像,其中(a)为本文方法结果,(b)为Otsu法,可见Otsu法虽然能够较好地去除背景噪声,但是微滴之间存在大量黏连,这给下一步的识别造成了困难;本文方法能够排除绝大部分噪声,但微滴之间仍存在一些黏连,在下面的识别过程中将进一步将黏连的微滴区分开。
图3 本文方法分割后的示例图像(a)和Otsu法分割的示例图像(b) Fig.3 Segmented sample images obtained by proposed method(a) and Otsu method(b)
2.3 改进的分水岭分割算法
经过阈值分割后微滴基本上与背景噪声分离开,但由于荧光间的相互影响,二值化图像中仍大量存在微滴黏连现象,对黏连微滴的分割也是荧光微滴图像分割中最棘手的问题。目前,已有多种有效的黏连颗粒分割方法,包括边缘检测分割法、分水岭分割法、主动轮廓模型法及形态学分割法等[11]。边缘检测法分割图像时,通常利用梯度信息显示目标边缘的线条,但在图像质量退化严重的情况下这些线条往往不能准确地描绘目标的轮廓。基于形态学的黏连分割,通常釆用腐烛、膨胀等操作,这对于黏连比较严重的目标分割效果并不是特别理想。基于数学形态学的分水岭分割算法[12]具有单像素宽、轮廓位置准确、连通封闭、计算量小的优点,是目前使用最为广泛的一类分割方法。
传统分水岭分割算法直接使用梯度图像或者距离变换后的二值图像中的区域极小值作为标记点,实现目标分割。由于二值化后的形状不规则或细胞黏连等原因,标记点可能无法与每个微滴一一对应,导致过分割或欠分割现象。为了降低错误分割的几率,本文对传统的基于距离变换的分水岭分割方法做了如下改进:首先,基于荧光微滴形状类圆、尺寸较均匀这一先验假设,定义一个表征图像黏连程度的函数如下:
(1)
其中,连通域的区域面积为Ai,周长为Pi连通域所占的长度和宽度分别为hi、wi,α,β为系数,r0为预设的有效微滴半径。黏连度函数fi根据hi、wi的不同将黏连的可能性表示为[0,1]间的实数值,fi越接近1,表示连通域越可能为黏连微滴;越接近0表示越不可能为黏连微滴。若hi、wi均小于βr0,则连通域小于单个有效微滴尺寸,因此可以肯定并非黏连微滴;如果fi、wi均大于αr0,则连通域显著超出了单个有效微滴尺寸,可能为黏连微滴或尺寸过大的无效微滴,根据连通域面积与外接圆面积之比确定fi;如果hi、wi的取值在二者之间,那么说明连通域所占据的空间小于两微滴直接相连,可能为黏连严重的多个微滴或有效微滴。由于黏连严重的多个微滴矩形度更高,使用连通域面积与外周长的平方之比作为fi的参数值。根据隶属度函数值区分连通域是否为黏连的微滴,若为黏连微滴,则对连通域采用距离变换。利用先验知识事先区分连通域,可以减少由于噪声导致二值化后非黏连微滴在分水岭算法作用下的误分割。
其次,对距离变换后的地形图Idist进行H-minima变换。H-minima变换是一种利用先验知识抑制噪声的有效方法,通过抑制地形图中小于参数h的局部极小值点去除局部极小值中较低点引入的伪标记[13]。H-minima方法中h值的选择非常关键,如果h过小,虚假标记点无法得到有效抑制,将产生过分割现象;h过大,某些真实标记点也被抑制掉,从而产生欠分割现象。本文中根据Idist中局部极小值的统计特性,选取Idist中最大值的20%作为H-minima变换中的h值。
通过上述两种方式的改进,可以增加对伪标记的抑制。基于上述讨论,改进的分水岭分割算法流程如下:
①统计待分割图像中的连通域集合S={Si|i=1,2,…,n},n为连通域总数;
②取第i个连通域,将同时满足下述条件的连通域Si认为是包含多个黏连微滴的区域:
(2)
fi>0.5 ,
(3)
③重复步骤(2)直到不含任何多微滴连通域;
④计算所有黏连微滴的欧式距离地形图Idist;
⑤对Idist进行H-minima变换,利用距离地形图的局部极小值作为前景标记;
⑥使用分水岭算法分割Si;
⑦将满足以下条件的区域识别为有效微滴,其他所有区域被认为是无效的微滴碎片而去除:
hi∈[Rmin,Rmax] ,
(4)
wi∈[Rmin,Rmax] ,
(5)
fi<0.4 .
(6)
2.4 荧光微滴自动识别算法
综上所述,如图4所示,荧光微滴自动识别算法的整体流程可分为如下几步:
图4 荧光微滴自动识别算法流程图 Fig.4 Workflow of fluorescent droplet automatic recognition algorithm
①预处理,对图像进行增强和平滑,以提高图像对比度,降低图像噪声。
②阈值分割,将微滴从图像背景中分离。
③黏连微滴分割,将图像中重叠的微滴区分开来。
④微滴识别,基于文献[14]中的方法将微滴分类为阳性和阴性两类。
图5为示例图像的最终识别结果。
图5 最终识别结果 Fig.5 Final recognition result
3 实验和讨论
为了验证算法对荧光微滴的识别效果,本文在Python3.5中基于python-opencv3.4.0实现上述算法,硬件配置为Intel i5-6500 3.2GHz CPU,4GB RAM;操作系统为Windows 7 Professional。作为比较,本文将使用人工分割的荧光微滴图像结果作为基准,与经典的基于距离变换的分水岭分割算法[15]进行对照。
为减少PCR扩增反应引入的退化误差,在自制的微滴生成芯片上分别生成阳性微滴和阴性微滴。其中阳性微滴使用浓度为30μg/mL的EvaGreen荧光染料与PCR预混液混合后经十字聚焦结构的微滴生成芯片生成,阴性微滴为直接使用PCR预混液经十字聚焦结构的微滴生成芯片生成。二者按照3:2的比例混合后使用荧光显微镜(Leica Axio Observer A1,物镜5X)观察并获取荧光微滴图像,平均微滴直径为100.4 μm。图6为分别对阴性液滴和阳性液滴集中区域进行识别的结果。图6(a)为原始图像,图6(b)为直方图均衡化后的结果,图6(c)为本文算法识别出的液滴,图6(d)为对照算法识别出的液滴。
图6 荧光微滴的图像识别结果 Fig.6 Image recognition results of fluorescent droplets
从图6中可见,两种方法对阳性微滴的识别效果都较好,但当阴性微滴周围存在阳性微滴时会受其发射荧光的影响,对照方法更容易忽略受影响的阴性微滴。此外,经过距离变换后使用H-minima变换可较好地抑制伪标记点,因此本文方法和对照方法对于图像中的过分割现象处理得都比较好。
对10幅微滴荧光图像进行同样的图像增强和两步阈值分割,分别考察两种分割算法对10幅图像的阳性微滴和阴性微滴的平均欠分割率、过分割率及识别正确率,结果如表1所示。
表1 微滴分割算法性能对照Tab.1 Performance comparison of different droplet segmentation methods
从表1中可以看到,两种方法对阳性微滴的识别效果都较好,欠分割率和过分割率小于1%。阴性微滴在第一步的图像分割中部分形变较严重,距离变换后对应连通域的极小值小于h值,导致对应标记点被去除,降低了对照方法的欠分割率,而本文方法在分水岭分割前将无需分割的大量独立微滴分离,大大降低了欠分割的可能性。本文算法识别阴性微滴的欠分割率为5.32%,远低于对照方法的21.59%。
总体而言,本文方法的平均正确率为97.34%,高于传统的基于距离变换的分水岭分割法的85.9%,显示出本文算法对荧光微滴具有良好的识别效果。
4 结 论
微滴荧光图像具有低亮度、低对比度等特点,而传统的图像分割方法的识别正确率较低。因此,本文提出一种改进的荧光微滴分水岭识别算法。该方法利用局部自适应阈值分割提取目标,以降低对图像灰度信息的依赖,并结合微滴形状类圆、尺寸较均匀的特点,定义了黏连度函数从而降低分水岭分割中的错误分割,最后通过一系列实验验证了本文算法的有效性,并与传统的距离变换分水岭分割法进行了性能比较。结果表明,本文算法在保证阳性微滴分割准确性的基础上,大大降低了阴性微滴的欠分割率,本文方法的平均正确率为97.34%,高于传统的基于距离变换的分水岭分割的85.9%,显示出本文算法对荧光微滴良好的识别效果。
本文算法中各参数较多,在保证识别准确度的前提下尽可能设计参数自适应的识别方法,降低阴性微滴的欠分割率,提高算法对多种异常微滴图像的适应性,同时利用其他先验信息进一步提高识别准确度将是今后工作的研究重点。