基于一种局部图像增强和改进分水岭的舌体分割算法

2021-08-16 07:28梁淑芬林卓胜李周姿
现代电子技术 2021年16期
关键词:舌体分水岭图像增强

梁淑芬,陈 琛,冯 跃,林卓胜,李周姿

(五邑大学 智能制造学部,广东 江门 529000)

0 引 言

传统的中医舌诊主要通过目测观察、病人自述等方式论证病症,这些方式主观性强,个体差异性较大,难以满足临床症状辨析的精确性和重复性需求[1-5];而舌诊客观化则能较好地解决这些问题,它通过深度学习[6]或者机器学习[7-8]进行舌像分类,标准相对客观统一,且重复性高;而舌体分割是舌诊客观化非常重要的第一步,舌体是否能准确地分割将直接影响到后续分类的准确性,所以,如何准确无误地分割出舌体是中医舌诊客观化的一个重要难点。

舌体形状、大小因人而异,有肥瘦、长短、宽窄等区别,所以难以用统一的模型划分,而且不同人的舌体表面细节信息大相径庭,这些问题都给舌体的精确划分带来很大的困扰。针对以上问题,舌体分割大致可以分为三类方法:阈值法[9]、边缘检测的方法、特定的理论工具方法。

阈值法,分割速度迅速,但是算法过于简单,往往适应不了太复杂的环境。有鉴于此,文献[10]进一步利用灰度投影法,先确定舌体的大致位置,然后再利用Otsu算法自动选取最优分割阈值的性能,实现舌体分割,但是Otsu算法往往容易造成过分割或者欠分割。文献[11]先运用Otsu法对舌像进行二值化分割,然后再利用形态学对过分割或者欠分割的舌体进行自适应的修正。文献[12]先对HSI颜色空间中的色调分量执行阈值分割,以获得初始目标区域,再对初始目标区域对应的红色通道执行阈值分割,获得最终舌体分割结果。

对于边缘检测方法,文献[13]先利用直方图投影法提取舌体初始轮廓,再用LBDM算法计算舌体的边缘信息,最后实现分割。文献[14]先利用区域合并的思想获取舌体的初始轮廓,然后再快速匹配舌体的边缘特征,最终寻找出舌体的精确轮廓曲线。文献[15]则利用基于k均值聚类的方法先获取舌体粗定位,然后再利用自适应主动轮廓模型计算出舌体的边缘位置;边缘检测的方法虽然比较敏捷快速,但是往往过于依赖舌体与背景的差异,容易造成过分割或者欠分割。

Snake算法[16]可以通过弹性模板求取最小的能量函数,相对应的闭合曲线是目标轮廓,该算法常被应用于舌体分割上。文献[17]先用梯度矢量流对图像进行扩散,然后再用分水岭算法将舌像分割成多个区域,最后基于区域合并的原则利用Snake算法提取舌体轮廓曲线。文献[18]将细菌觅食优化算法(BFOA)和Snake结合,先用改进的BFOA算法二值化舌图像,然后提取舌像部分的关键点,最后通过Snake模型准确提取舌体的轮廓曲线;但Snake算法往往过于依赖初始轮廓线,当初始轮廓线与舌体边缘相差较大时,容易得到错误的分割结果。文献[19]先通过目标检测结构识别出舌体初始区域,然后再搭建高分辨率网络结构,提取初始区域中的精确舌体位置,该方法虽最终合并率较高,但是模型参数冗余,而且只针对特定的一些舌图像。

综上所述,这些方法虽然在一定程度上改进了舌体分割的结果,但是由于舌体和唇色相近,而且舌体表面包含大量细节信息,往往难以将两者精确划分。针对此问题,本文提出一个舌体分割方法,该方法先用改进分水岭和Otsu法获取舌体的初始区域,并且剔除部分冗余信息,然后针对舌体与嘴唇难区分的问题,提出一种局部图像增强(LIE)法,该图像增强法可以利用舌体与嘴唇细微的色差,获取相差较大的图像增强系数,使增强后的局部图像中舌体和嘴唇的颜色具有明显的区别,从而将嘴唇和舌体准确分割。

1 本文的算法模型

包含舌体、嘴唇、口腔内部阴影等干扰信息的初始区域和脸色区域往往相差较明显,可以用相对简单的方式分割出来。但是舌体进一步的细分割,容易把颜色和舌体相近的嘴唇等干扰信息分离出来,就需要更复杂的算法才实现。所以,舌体分割算法大致可以分为两个步骤,如图1所示。

图1 舌体算法分割步骤

1)粗分割。先获取舌体的初始区域,并且尽可能地去除该区域中部分牙齿、口腔内部阴影等冗余信息,为下一步的精分割做准备。

2)精分割。通过粗分割后的初始区域,往往还包含嘴唇等干扰性较强的噪声,需要进一步用算法将这些冗余信息当成背景分离开来,最终实现舌体单独、完整的分割。

与其他舌体分割算法不同的是,本文提出专门针对嘴唇和舌体分割的LIE算法。图2为本文的算法模型整体框图。本文算法在舌体粗分割步骤中先使用改进的分水岭算法,获取舌体初始的准确位置;紧接着利用Otsu算法寻找分离背景区域最优阈值的能力,将口腔内部阴影以及部分舌体边缘的暗色区域当作背景信息剔除掉;最后在精分割步骤上,将目标区域放在舌体上,利用LIE算法对不同部位像素点增强效果不一样的性能,进一步分离出嘴唇等干扰性较大的噪声,最终实现舌体的精确分割。

图2 本文算法模型的整体框图

1.1 改进分水岭算法

传统的分水岭[20]在淹没的过程中,主要是通过某个阈值作为判断是否为同一个盆地,从而形成分水岭,这种判断方式过于简单,不能适应背景区域较为复杂的图像。为了使分水岭算法能更准确地获取舌体的初始区域,本文将区域生长的思想结合到传统的分水岭算法当中去,在传统分水岭算法淹没过程中引入区域生长的判别准则思想,并且在结合实际舌体图像分割研究后,自定义了一个专门针对舌体分割的能量函数作为一个判别准则,如下:

式中:E自定义的能量函数;Hseed为选中区域生长种子点的色调;Hcurrent为已被标记的当前像素点的色调;H为未被标记的周边领域像素点的色调。结合区域生长的改进分水岭算法,对像素点判断是否具备生长为同一区域的可能性,性能更佳,能够适应更为复杂的背景区域的图像,可以将分水岭的边缘位置精确地收敛于嘴唇与脸色的交界处,为后续的舌像冗余信息分离做好准备工作。改进后的分水岭算法步骤如下:

Step1:输入原始舌图像,将其转化到HSV颜色空间上,获取H通道上的图像I,将I上的像素点都设为未标识状态。

Step2:从I中随机获取一个像素点P,并且把该像素点当作一个种子点(Hseed)。

Step3:判断P是否已经被标识,如果已被标识,返回执行Step2。

Step4:如果P邻域已经被标识属于某一个区域,则将这个像素加入一个先进先出的队列Q。

Step5:从Q弹出一个像素点T,利用八连通邻域法从T的Hseed位置开始向四周逐一扫描,把扫描到的点作为当前像素点(Hcurrent)。

Step6:计 算T的 能 量 函 数E,若E≤36且,则对Hcurrent进行标识,将Hcurrent融合到种子点的同一个区域,并且把T从队列Q里面移除。

Step7:判断Q是否为空,如果不是,重新执行Step5。

Step8:判断I所有的像素点是否都为标识状态,如果不是,重新执行Step2。

结合区域生长思想的改进分水岭和传统分水岭的效果对比图如图3所示。

图3 改进分水岭算法分割效果对比图

从图3改进分水岭算法分割效果对比图中,明显能发现改进后的分水岭算法分割效果更精确,收敛边缘更加接近真实的嘴唇边缘。

1.2 Otsu算法

Otsu算法[21]是一种自动的非参数非监督的阈值选取法,计算简单、稳定有效,它主要通过计算图像目标区域与背景区域的最大类间方差值作为依据选择阈值进行图像二值化。通过观察发现,初始区域(图3c)和f)中的非黑像素点集)中的口腔内部阴影、舌体部分边缘阴影明显比其他的区域颜色更暗。为了进一步分离出非舌体的信息,利用Otsu算法寻找最优分离背景区域阈值的能力,将口腔内部阴影区域以及部分舌体边缘的暗色区域当作背景信息,从初始区域的图像剔除出来,具体的流程图如图4所示。

图4 Otsu算法流程

图中,varValue表示类间方差中间值,分离阈值T的范围在1~255之间。计算相对应的类间方差中间值,获取最大的类间方差中间值,并把相对应的像素值赋给T,即寻找到最佳的背景分离阈值。利用阈值T进行二值化,就可以将口腔内部阴影区域以及部分舌体边缘的暗色区域当作背景信息分离出来。Otsu算法效果图如图5所示。

图5 Otsu算法效果图

1.3 局部图像增强算法

经过以上两个阶段处理后,舌图像已经剔除了大部分的冗余信息,利用口腔内部黑色缝隙就能将上唇和舌体准确地分割,只剩下舌体和下唇的分离就可以达到最终的分割效果。但是大部分的嘴唇和舌体表面的颜色往往比较接近,这已经成为舌体精确分割的一大难点,本文提出一种局部图像增强(LIE)算法。该算法将目标区域主要集中在局部的舌体和下唇上,通过利用下唇和舌体细微的色差,计算出相差较大的图像增强系数,使增强后的局部图像舌体和嘴唇呈现出明显不同的色彩区别,最终实现舌体和下唇的精准切割。

1.3.1 局部图像切割

舌体的表面细节比较复杂,同一舌体有时也会出现颜色明显有区别的多块区域。为了简化舌体表面的细节信息,方便接下来的图像增强处理,需要先进行局部图像切割,然后才能对切割出来的局部图像进行增强。局部图像的切割步骤如下:

1)通过改进的分水岭算法,可以获取一个包含嘴唇、舌体、牙齿等冗余信息的不规则区域,计算包含该区域的最大矩形,并且在原舌体图像画出该矩形,具体效果如图6a)所示。

2)将图6a)中矩形内部的图像剪切下来,通过Otsu算法分离出口腔内部阴影区域以及部分舌体边缘的暗色区域,具体效果如图6b)所示。利用一个3×9的搜索框在舌体中间的位置向左右两边检测,当搜索框里面的黑点大于25时,记录该点的位置,即认定找到一个舌体边缘。通过该方法可以找到像素点H(如图6b)所示)的位置,设像素点H的位置为(i,j),通过计算图6b)列数和行数,分别获得对应的数值cols,rows,即像素点I(如图6b)所示)位置记录为,设矩形Rect的起始像素点为(0,j),长为(rows-j),宽为,利用矩形Rect从图6b)中剪切出包含舌体、下唇的图6c)。

3)通过步骤2)可以获得2个点H(i,j)和rows),利用这两个点,计算出直线L(如图6c)所示)的一次二元解析方程式,具体直线显示效果如图6c)所示。

4)为了简化舌体表面的细节信息,通过直线L,将L上方的像素点全部强制设为黑点,并且把脸部肤色的像素点全部设置为黑点,最终的显示效果如图6d)所示。

1.3.2 图像增强

经上述的分割步骤后,可以获取包含下唇和舌体的图像,见图6d)。通过观察,发现图6d)中嘴唇和舌体的颜色往往有细微地区别,舌体表面的颜色往往较红一些。为了使嘴唇和舌体在色彩上表现出更大的区别,方便后续的分离,下面提出一种图像增强算法,可以使增强后的舌体和嘴唇在色彩上最终呈现出较强烈的对比效果。

图6 局部图像切割过程

该算法首先需要将图6d)中非黑色像素点的目标区域分离到R,G,B三个通道上,并且把它们的数值分别储存在对应的整数类型队列Red、Green、Blue上面,计算获取图6d)中非黑色的总像素点数N。然后再对队列进行从大到小的排序,分别获取它们前50%像素点的平均值Raverage,Gaverage,Baverage如下:

式中sort(Red[i]),sort(Greed[i]),sort(Blue[i])分别代表排序后的队列。利用计算式得到的平均值Raverage,Gaverage,Baverage,对原图像的R,G,B三通道分别进行图像增强:

LIE算法过程如图7所示。从局部舌体图(如图7a)和图7d))可以明显观察到,嘴唇的颜色在R通道上的数值明显要比舌体在R通道数值上要小,因为舌体的颜色比嘴唇较红一些;而且在G通道上嘴唇和舌体的数值比较接近,在B通道上的数值,嘴唇反而明显要比舌体大一些。LIE算法将目标区域集中在舌体上,通过获取R,G,B各通道上前50%像素点的平均值,分别用来计算各通道增强的系数。因为舌体在R通道上的数值和嘴唇相比明显比较大,所以经过计算后,舌体在R通道上图像增强系数变小的幅度比较大;而在B通道上舌体的数值明显不如嘴唇大,所以经过计算后,舌体在B通道上图像增强变小的幅度反而比较小;在G通道上,舌体和嘴唇的数值相差不大,所以经过计算后,改变的幅度并不是很大。综上所述,经过LIE算法的局部图像增强后,舌体主要表现出来的颜色是蓝色,而嘴唇其主要表现出来的颜色是红色(如图7b)和图7e)所示,红色区域代表下唇,蓝色区域代表舌体);将增强后的图像转化到Lab的颜色空间上,通道B能比较明显地区分出舌体和嘴唇的不同,再用一次Otsu算法,就可以明显的将背景区域分离开来,最后利用3×9的搜索框就可以寻找到舌体真实的边缘像素点,最终显示结果如图7c)和图7f)所示,下唇已经被当成背景过滤掉了。

图7 LIE算法过程

2 实验结果和分析

2.1 舌体数据集

本文在Windows 10操作系统下,利用C++17语言、OpenCV和Dlib工具实现算法,其中,C++17语言的编写是在Visual Studio 2017集成环境实现的。

本文的舌体数据集由天中依脉公司提供,天中依脉是我国最早专注于中医四诊客观化技术研究和中医诊疗设备的研发与制造的科技企业,数据集中的图像有效像素达到1 600万以上。通过筛选和整理,共选取了220幅舌体图像,在这些数据中包含了不同年龄阶段、健康和患病、不同的舌体形状,确保数据具有多样性。

2.2 舌体数据集

舌体图像分割算法的质量评估一般是将自动分割结果与实际分割结果作对比。该算法的分割指标有:假负像素点比例(False Negative Volume Fraction,FN)、假正像素点比例(False Positive Volume Fraction,FP)、真正像素点比例(True Positive Volume Fraction,TP)。假设A={a1,a2,…}是自动舌体分割的边缘点集,B={b1,b2,…}是手工舌体分割的边缘点集。

式中:AAuto表示自动舌体分割的边缘点集内包含的像素点集;BhandMake表示手动舌体分割的边缘点集包含的像素点集;FN和FP用来表述自动舌体分割结果与实际舌体分割结果的差别;而真正像素点比例TP则用来表示自动舌体分割结果占实际舌体分割结果的比例。FN,FP数值越小,TP数值越大,则表示舌体自动分割的效果越好。

2.3 分割结果及分析

本文选取传统Otsu算法、文献[11]算法、文献[17]算法和本文分割算法作比较。为了使实验数据分析更科学、理性,随机抽取舌体数据集数据,实验分5次进行,交叉验证各图像分割评估参数,如图8所示,表1为5次交叉实验评估结果的均值。

图8 各算法评估指标的五折交叉实验图

从表1中可以看出,传统Otsu和文献[11]算法的FN,FP平均值都要比本文算法的平均值高,说明本文算法的真实舌体的误分割比例较低;而本文TP平均值比传统Otsu和文献[11]算法都要高,说明本文的舌体自动分割的正确比例较高;文献[17]算法虽然FP平均值比本文算法较低,但是本文的TP平均值明显优于文献[17]算法,所以综合考虑,本文算法依然具有较优的分割效果;并且通过观察五折交叉实验各指标的数值,发现本文算法的数值相对比较稳定,说明该算法的鲁棒性较高,有较强的适应性,能够分割多种类型的舌图像。

表1 各算法评估指标平均值 %

2.4 分割结果

从数据集中选取部分不同形状、大小以及不同伸展方向的舌体图像进行手动分割和本文算法自动分割的对比,如图9所示。

图9 手动和自动分割的对比图

从图9a)、图9c)中可明显观察到,由于舌体与嘴唇的颜色相近,导致两者分离的界线较难辨认,但是经过本文提出的自动分割算法处理后,舌体与嘴唇基本可以精确地分离开来;对比图9b)与图9c)可观察到,本文算法分割的舌体边缘光滑清晰,与实际的手动分割结果非常接近。

3 结 语

舌诊是中国传统医学四诊中望诊的主要项目之一,其中舌体分割是舌诊客观化非常重要的第一步,对后续的舌体分类影响非常大。本文提出一种舌体分割算法,先用改进分水岭算法和Otsu算法获取舌体初始区域;然后针对初始区域中舌体和下唇分离的难题,提出一种LIE算法,先对初始区域进行局部图像切割,再利用舌体与嘴唇细微的色差,计算出幅度相差较大的增强系数,使图像增强后的舌体与嘴唇的色彩相差明显,从而能使二者精确地分离。本文对220幅包含不同舌色、形状、年龄、伸展方向的原始舌像进行实验,并以FN,FP,TP作为评价指标,将本文算法得到的分割结果与传统Otsu算法、文献[11]算法和文献[17]算法进行比较,结果表明本文算法正确率高、鲁棒性强,是一种有效的舌体分割算法,应用该算法分割出的舌像可以为后续的舌像分类打下夯实的基础。

猜你喜欢
舌体分水岭图像增强
图像增强技术在超跨声叶栅纹影试验中的应用
水下视觉SLAM图像增强研究
虚拟内窥镜图像增强膝关节镜手术导航系统
2019,一定是个分水岭!
舌体大小与阻塞性睡眠呼吸暂停低通气综合征发病的相关性
望舌可预测中风
基于图像增强的无人机侦察图像去雾方法
新疆地区不同民族老年舌体鳞状细胞癌患者临床特征及生存分析
“华北第一隧”——张涿高速分水岭隧道贯通
安氏Ⅲ类骨性Ⅲ类与安氏Ⅰ类错畸形舌体形态位置及舌骨位置的比较研究