融合多颜色分量的舌图像阈值分割算法研究
2019-05-16余兆钗张祖昌李佐勇刘维娜
余兆钗 张祖昌 李佐勇* 刘维娜
1(闽江学院计算机与控制工程学院 福建 福州 350121)2(福建省信息处理与智能控制重点实验室(闽江学院) 福建 福州 350121)3(福建省高校人文社科研究基地互联网创新研究中心(闽江学院) 福建 福州 350121)4(福建信息职业技术学院计算机工程系 福建 福州 350003)
0 引 言
在传统中医(TCM)中,舌诊[1-2]具有无痛、简单和直接等特点,被广泛用于评估人体健康状态。中医舌诊在我国已经有3 000多年的历史,积累了丰富的临床经验。中医从业者可以从舌体的颜色、形状、纹理、舌苔厚薄等特征出发提取人体的生理和病理信息。舌苔的颜色和纹理特征,被称为中医证候,能够反映人体的一些疾病以及健康状态[3]。
现代西医逐渐将人的舌体作为上消化道的一个扩展,它为人体健康状况提供了重要的线索。越来越多的西医从业者将舌诊视为临床决策的一种有效方法[4]。舌体表面黏膜新陈代谢旺盛,身体疾病的征兆会很快在舌体上表现出来。以舌苔为例,由于其与唾液细菌的存活存在密切联系,成了无牙患者吸入性肺炎的一个风险指标[5]。甚至有医学文献记载,舌淀粉样本可能是浆细胞瘤的临床表现[6]。越来越多的研究证实了人类舌体在临床诊断中推断系统性疾病的潜力。
传统中医舌诊依赖于医生的经验,缺乏定量和稳定的诊断。现在,随着计算机硬件和软件的发展,利用图像处理和模式识别技术开发计算机辅助的舌象自动诊断系统变得可能[6]。自动舌诊系统通常首先利用图像分割技术从舌图像中提取出目标(即舌体),然后利用特征提取方法提取舌体特征,最后使用分类器得到最终的舌诊结果。在这个过程中,用于提取舌体的舌图像分割是至关重要的一步。近年来,人们提出了一些舌图像分割方法[7-10]。然而,由于不同个体的舌体在形状、大小、颜色、舌苔厚薄等方面存在巨大差异,以及舌体与其近邻组织之间颜色相似性引起的弱边缘,舌图像分割仍然是一个具有挑战性的课题。
1 舌图像分割相关算法
国际主流的舌图像分割方法是基于主动轮廓模型ACM(Active Contour Model)的方法。ACM又称为Snake模型,是一种流行的可变形状模型,广泛应用于轮廓提取中。给定一个初始轮廓曲线,主动轮廓模型在内外力的共同作用下将初始轮廓曲线朝真实目标轮廓处演化。基于ACM的分割方法主要研究点在初始轮廓的获取和曲线演化上。比如,Pang等提出一种双椭圆形变轮廓模型方法BEDC[7],其结合了双椭圆形变模板(BEDT)和主动轮廓模型。BEDC首先定义了一种称为BEDT的形变模板作为舌体的一种粗略描述,然后通过最小化BEDT能量函数来获得初始的舌体轮廓,最后利用模板能量代替传统内能量的主动轮廓模型来演化初始轮廓,进而获得最终的分割结果。Zhang等[8]提出了一种融合极坐标边缘检测和主动轮廓模型的方法。此方法先对原始图像进行极坐标转化,利用边缘检测算子获得极坐标边缘图像,同时从舌图像中提取边缘模板;然后,利用边缘模板过滤掉舌体内部纹理造成的虚假舌体边缘;接着,利用图像二值化技术结合形态学滤波进一步剔除舌体以外的虚假舌体边缘(比如,脸部褶皱引起的边缘);最后,将边缘检测结果作为初始的舌体轮廓,运用主动轮廓模型方法对初始轮廓进行演化,进而获得最终的分割结果。此方法对舌体与近邻部分(嘴唇和脸部)颜色近似造成的弱轮廓提取效果欠佳,而且在舌体与嘴唇的间隙处以及舌尖部分容易发生误分割。Ning等[9]提出了一种融合梯度向量流GVF(Gradient Vector Flow)、区域合并技术RM(Region Merging)和主动轮廓模型的方法,简称为GVFRM。此方法先将传统的梯度向量流改造为标量扩散方程,对舌图像进行扩散以期达到平滑图像、保留舌体轮廓结构的预处理目的;然后,利用分水岭算法将预处理过的舌图像分割成许多小区域;接着,运用基于最大相似性准则的区域合并算法结合目标、背景标记将小区域合并成大区域,从而形成初始的舌体轮廓;最后,利用主动轮廓模型对初始轮廓进行演化,得到最终的分割结果。当舌体靠近图像的边界时,错误的目标、背景标记容易造成错误的区域合并结果,从而导致误分割。此方法在舌体与嘴唇的间隙处以及颜色近似性造成的弱边缘处分割效果欠佳。Shi等主要提出了两种基于主动轮廓模型的舌图像分割方法,分别简称为C2G2F[10]和DGF[11]。C2G2F方法首先检测舌尖点、舌根点和左右舌体三角点共4个特征点,利用4个特征点结合舌体形状先验构成初始的舌体轮廓;然后,将初始舌体轮廓分成上半部分轮廓和下半部分轮廓;接着,用参数化GVF主动轮廓模型和测地线主动轮廓模型分别演化上半部分和下半部分初始轮廓;最后,把演化后的上半部分和下半部分初始轮廓合并成最终的舌体轮廓。不幸的是,这种方法容易检测到不理想的特征点,甚至未能检测到部分特征点。在C2G2F方法基础之上,Shi等提出了一种改进的方法即DGF。DGF方法首先利用显著目标检测算子来粗略地定位舌体所在的图像窗口;然后,利用C2G2F方法思路在图像窗口内检测四个特征点,获取包含上半部分轮廓和下半部分轮廓的初始舌体轮廓;接着,利用测地线主动轮廓模型和测地线-梯度向量流主动轮廓模型来分别演化上半部分初始轮廓和下半部分初始轮廓;最后合并上半部分初始轮廓和下半部分初始轮廓作为最终的舌体轮廓。DGF方法未能完全克服C2G2F方法的局限性,分割准确性和稳定性都有待提升。综上所述,现有的舌图像分割方法存在一定的局限性,分割效果有待进一步提升。为了提高分割精度,在探索RGB和HSI颜色空间中舌图像特征的基础上,本文提出一种简单而有效的舌图像阈值分割算法,改善了舌图像分割的效果。
2 算法设计
本文算法通过对多个颜色分量执行阈值分割来实现舌图像的分割,算法流程如图1所示。下面将详细阐述算法的每个步骤。
图1 本文算法的流程图
2.1 人脸区域的提取
通过图像采集设备采集到的舌图像往往含有下巴托架、人脸挡板等非人脸区域。下巴托架和人脸挡板等非人脸区域会对舌图像的分割造成不良影响,因此需要先提取出人脸区域。为此,本文算法设计了以下过程来提取人脸区域:
(1) 下巴托架区域的分割:对舌图像的蓝色通道执行经典的Otsu阈值分割算法[12],得到如图2(b)所示的阈值分割结果,图中黑色区域即为下巴托架区域。
(a) 原始舌图像(b) 用于确定下巴托架区域的蓝色通道阈值分割结果
(c) 图像托架之外区域红色通道阈值分割结果(d) 对(c)进行形态学开运算、孔洞填充后的最大目标区域图2 人脸区域分割过程本文算法产生的中间结果
(2) 人脸区域的提取:首先,将舌图像红色通道中下巴托架区域的像素点信息排除,利用剩余像素点信息执行Otsu阈值分割算法,得到如图2(c)所示的阈值分割结果;接着,对图2(c)的分割结果执行形态学开运算和孔洞填充操作,搜索最大目标区域,即可得到如图2(d)所示的人脸区域。其中,开运算采用了半径为1的圆盘状结构元。采用圆盘状结构元的原因在于脸部形状与圆盘相似。图3展示了半径为“1”的圆盘状结构元。
010111010
图3 半径为1的圆盘状结构元
2.2 初始舌体区域的提取
(1) 颜色空间转换:将一幅图像从RGB颜色空间转换到HSI颜色空间,即:
(1)
(2)
(3)
式中:
其中,CC1101模块为数据包处理、载波监听、数据传输等提供了广泛的硬件支持[9],采用该芯片作为传感器节点的射频模块,可以保证节点的长期可靠工作。CC1101模块外接26 MHz的晶振作为外部时钟源,无线模块工作时,综合节点实时性和通信距离,设定其数据传输率为38.4 kbps,数据包格式为19个字节。此时,模块的室外传输距离170 m左右,穿一层墙(25 cm)情况下,传输距离为70 m。
(4)
在式(1)-式(4)中,R、G和B分别代表图像的红色、绿色和蓝色分量,H、S、I代表图像的色调、饱和度和亮度分量。以图2(a)中的舌图像为例,由式(1)计算所得的色调分量如图4(a)所示。从图4(a)可以看到,舌体和上嘴唇像素点通常比其周围的脸部像素点更暗或更亮,更亮的像素点拥有更大的色调值。由此,可以通过对高低色调像素点各设置一个色调阈值(参数)来提取包含真实舌体和上嘴唇区域的初始舌体区域。为了减少算法参数的个数,下一步将执行色调分量的变换。
(a) 图2(a)对应的色调分量 (b) 变换后的色调分量
(c) 变换后色调分量的阈值分割结果(d) 初始舌体区域图4 初始舌体区域提取过程中本文算法产生的中间结果
(2) 色调分量的变换:对HSI颜色空间中图像的色调分量执行如下变换:
H′(i,j)=max{H(i,j),Hmax-H(i,j)}
(5)
式中:Hmax表示图像所有像素点色调的最大值,(i,j)表示像素点坐标。图4(a)的色调变换结果如图4(b)所示。从图4(b)可以看到,色调变换步骤使大部分舌体和上嘴唇像素点比它们周围的脸部像素点更亮,即大部分舌体和上嘴唇像素点拥有更高的色调值。因此,下一步只需要设置一个参数(如式(6)中的阈值T) 来获得用于提取初始舌体区域的图像二值化结果。相比于通过对像素点原始色调值设置两个阈值(参数)来提取初始舌体区域的做法,这样就减少了一个参数。
(3) 图像阈值分割:在变换后的色调分量上执行如下的图像阈值分割,可得到一幅图像的二值化结果:
(6)
式中:
T=VH′(αN)
(7)
在式(7)中,VH′表示降序排列后的向量H′,N表示H′中元素的总个数,α则是一个控制图像中目标像素点比例的参数。图4(c)展示了在图4(b)所示的色调变换结果上执行阈值分割后所得的图像二值化结果。
2.3 舌体区域修正
如图4(d)所示,本文算法提取初始舌体区域时,容易将上嘴唇、上嘴唇与舌根之间的间隙区域误分割为舌体区域。
通过观察舌图像可以发现,舌根和上嘴唇之间通常存在一个偏暗的间隙区。在RGB颜色空间下,对初始目标区域的红色通道进行Otsu[12]阈值分割,很容易得到此间隙区,如图5(a)所示。然后,通过形态学腐蚀操作扩大间隙区,以分离舌体和上嘴唇,如图5(b)所示。最后,搜索最大目标区域,执行形态学膨胀操作,得到图5(c)的结果。这里的腐蚀与膨胀操作均使用了半径为“6”的圆盘状结构元。图5(d)展示了本文算法提取的最终舌体轮廓。
(a) 对舌图像初始舌体区域的R通道执行Otsu阈值分割所得结果(b) 对阈值分割结果执行腐蚀操作后的结果,用于分离上嘴唇和舌体区域
(c) 修正后的舌体区域(d) 舌体轮廓图5 舌体区域修正过程中本文算法产生的中间结果
3 实验结果
为了验证本文算法的分割性能,我们从福建省第三人民医院提供的100幅舌图像作为实验对象,将本文算法与GVFRM[9]、G2G2F[10]以及DGF[11]算法进行了分割效果的定性和定量比较、分割速度的定量比较。其中,定量比较采用四个常见的分类测度[13],即错分类误差ME(Misclassification Error)、假正率/虚警率FPR(False Positive Rate)、假负率FNR(False Negative Rate)以及kappa指数KI(Kappa Index)。四种定量测度定义如下:
(8)
(9)
(10)
(11)
式中:Bm与Fm分别是手动分割结果的背景与目标,Ba与Fa为自动分割算法分割出来的背景与目标,·表示集合中元素的个数。ME、FPR、FNR的取值范围都在0到1之间,值越小,表明分割效果越好;而KI值则是越大表明分割效果越好。
首先,我们对4种分割算法的分割效果进行了定性的评价。图6给出了6幅典型舌图像的分割结果,这些图像的典型特征包括有裂纹、病态舌苔、舌体偏小或偏大、是否包含牙齿、健康舌像。图中从左到右分别展示了原图像、手动理想分割结果、GVFRM分割结果、C2G2F分割结果、DGF分割结果、本文算法分割结果。GVFRM的分割结果如图6(c)所示,其在第二幅图上产生了严重的欠分割;在第六幅图上产生了比较严重的过分割现象;在其他四幅图上分割效果稍好,但每幅舌图像的上边界都在上嘴唇下沿或者牙齿下沿附近,把舌根与上嘴唇之间的间隙区域错误地分割为舌体。C2G2F的分割结果如图6(d)所示,其在第二幅和第四幅图上分割效果尚可,分别产生了轻微的过分割和欠分割,但在第五幅和第六幅图上产生了严重的过分割,在第一幅和第三幅图上同时产生了严重的欠分割和过分割。DGF分割结果如图6(e)所示,其在第二幅和第四幅图上的分割效果较好,但仍然存在一定程度的过分割现象;在第五幅和第六幅图上产生了明显的过分割;在第一幅和第三幅图上分割效果最差,同时存在比较严重的欠分割和过分割。本文算法分割结果如图6(f)所示,与上述三种方法相比,本文算法在六幅代表性舌图像上均获得了更加准确的分割结果,但本文算法仍然在第二幅和第四幅图上存在一定程度的过分割,这是由于舌体和嘴唇颜色太过近似造成的,将在以后的工作中加以解决。
(a)原图像(b)手动理想分割结果(c)GVFRM分割结果(d)C2G2F分割结果(e)DGF分割结果(f)本文算法分割结果图6 四种算法分割结果的对比
接着,我们对使用这四种算法分割舌像库里的100幅舌图像所得到的分割精度与时间消耗进行了定量评价。表1列出了四种算法分割结果对应测度(ME、FPR、FNR、KI)的平均值和标准偏差,以及时间消耗的平均值和标准偏差。这些定量测试结果表明,相比于其他三种算法,本文算法具有更高的KI值,更低的ME值,表明本文算法拥有更高的分割精度、更低的误分割率;本文算法拥有更低的FPR值,表明本文算法过分割程度更轻;本文算法的FNR值低于C2G2F和DGF,略高于GVFRM,主要原因在于相比于本文算法,GVFRM算法存在比较严重的过分割,把舌体及周围非舌体区域都分割成了舌体,所以其对应的欠分割程度比本文算法还低。从时间消耗来看,本文算法运行速度要比其他三种算法快,主要原因是其他三种算法都要先得到舌体的初始轮廓模型,然后再演化出最终轮廓,而本文算法只使用了阈值分割以及其他形态学运算,没有做时间复杂度高的操作。
表1 100幅舌像平均分割性能的定量比较(均值±标准差)
4 结 语
本文提出了一种融合多颜色分量的舌图像阈值分割算法。本文算法首先对RGB颜色空间中的蓝色和红色分量执行Otsu阈值分割,检测出舌图像中的人脸区域;然后,对HSI颜色空中的色调分量执行变换,在变换后的色调分量对应人脸区域上执行阈值分割,以获得包含真实舌体和上嘴唇区域的初始舌体区域;接着,对初始舌体区域对应的红色通道执行Otsu阈值分割,得到舌根和上嘴唇之间的间隙区域;最后,利用间隙区域分离舌体和上嘴唇,进而剔除掉初始舌体区域中的上嘴唇区域,获得最终的舌体分割结果。实验结果表明,本文算法不仅明显改善了舌图像分割的效果,而且运行速度也更快。