改进U-Net 网络的中医舌图像分割方法研究
2021-11-28江智泉周作建鲍剑洋战丽彬郎许峰商洪涛
江智泉,周作建,鲍剑洋,战丽彬,郎许峰,商洪涛
(1.南京中医药大学人工智能与信息技术学院;2.南京中医药大学中医学院·中西医结合学院,江苏南京 210046;3.南京中医药大学附属医院,江苏 南京 210029)
0 引言
中医舌诊是中医辨证论治的主要依据之一,在中医诊断学中具有重要地位[1]。其通过观察舌质舌苔的颜色和形态变化感知患者疾病,具有诊断过程方便、诊断价值高的独特优势[2]。但由于医师主观经验和诊疗客观条件的影响,诊察结果可能出现误差。因此,中医舌诊的临床诊断需要依靠更高的信息化和智能化提供定量的数据支撑,以实现舌图像的自动化分析[3]。近年来,随着中医自动诊断和舌诊客观化进程的不断推进,图像处理技术和机器学习方法被广泛运用于中医舌象的提取、分析和研究中,有效实现了舌象特征的精准辨识和结果量化,建立了舌象量化特征和中医病症的映射标准,初步实现了自动化的舌象分析和智能诊断[4-6]。
舌图像分割是舌诊客观化的重要环节,舌像分割的目的是从舌图像中去除脸部、嘴唇等无关干扰环境,分割出可用于分析的颜色细节和真实的有效舌部位,充分保留患者的舌体信息,排除无关背景对舌体进一步分类识别的干扰,是后续分类研究的前提和基础[7]。
目前,对舌体的有效分割方法主要有基于阈值的分割方法、基于能量泛函的分割方法和基于深度学习的方法等[8]。姜朔等[9]利用Otsu 阈值的方法,二值化处理舌图像并结合先验知识进行聚类,结合形态学自适应修正方法,实现舌体当量直径自适应选取结构元素的大小,实现分割范围的自适应修正,可以较好地实现舌图像分割,但存在效率不高的问题;刘晨星等[10]提出一种改进的Snake 算法模型,该模型引入Perona-Malik 方法强化轮廓界限,通过梯度矢量流模型(Gradient Vector Flow,GVF)优化图像外力场,进而提取舌体轮廓,该方法有效解决了传统Snake 算法对不规则舌体轮廓的逼近效果欠缺问题,优化了分割效果,但存在计算量大和需要手工选取阈值的缺点。
随着深度学习在图像识别领域地位的不断提高,基于像素点分类的图像语义分割方式在多应用场景都取得了不错的应用效果[11-13]。通过对舌体图像进行语义分类处理,差异化图像中的不同区域,再通过神经网络(CNN)进行端到端的训练,在卷积和池化过程中汇聚和增强语义信息,实现语义分割,成为新的解决方案。张新峰等[14]提出一种基于深度卷积神经网络和条件随机场的舌图像分割算法,使用孔卷积的DCNN 和空间金字塔池化模型,实现多尺度特征的自动提取,有效细化了舌体边缘,提高了分割准确性。
传统方法仍依赖一定的人为干预及迭代运算,由此带来了自动化程度低、时间复杂度高以及分割效果不理想等问题。深度学习方法可以有效地改进传统方法的弊端,提高自动化程度和分割效率,但诸多方法存在边缘细节丢失、分割精度不高等问题。针对上述问题,本文提出了一种基于VGGNet-Unet 的中医舌图像分割方法。
本文的创新点在于:①使用结构简单、特征提取效果好且经过预训练的VGGNet16 神经网络建立主干特征提取网络,通过多次卷积实现特征提取,并通过U-Net 网络模型构建加强特征提取网络实现对特征图的上采样和特征融合,有效保留高底层细节信息,提高分割精度;②使用迁移学习方法,设置预训练权重并冻结特定层的参数,提高网络学习效率。实验证明,该模型具有较好的分割效果。
1 网络模型
医学图像通常具有图片隐私性高、保密性强、图像语义信息简单且固定等特点。针对这类图像的处理分析任务,网络模型需要兼顾图像的高级语义信息和低级特征,在保证物体识别准确率的同时,提供精准分割定位依据,有效补充语义信息并细化分割轮廓[15]。本文方法采用了U-Net 网络模型并对其进行改进,使用VGGNet16 替换UNet 初始主干特征提取网络,简化了模型结构,并通过引入迁移学习提高学习效率。
1.1 U-Net
U 型语义分割网络(U-Net)发表于跨医学影像计算(MIC)领域顶级会议MICCAI[16]。其基本特征是完全对称的U 型结构和跳越连接层(Skip-connection),由于其U 型编解码结构和层次堆叠操作(跳跃连接层)可以高度保留高低层细节,在小样本图像处理任务上具有较好的分类效果,满足医学图像样本少、特征固定等特点,因此被广泛应用于医学图像分割和任务分类。
在U-Net 网络中,编码层(Encoder)需要进行4 次下采样,共下采样16 倍,在其对称解码层(Decoder)中,进行了4次上采样,将Encoder 中获得的高级语义特征图恢复到原始尺寸。同时,为了确保分辨率的有效还原,减少压缩过程中的特征细节损失,U-Net 采用Skip-connection,将同一层级的特征图进行融合堆叠,恢复上采样中的区域分割信息,以保留底层语义信息,细化分割边缘,从而得到更高的分割准确率。
1.2 VGGNet16
该模型采用VGGNet16 作为特征提取网络并使用其预训练权重实现迁移学习,VGGNet16 的网络结构如图1 所示。该神经网络主要由卷积层、ReLU 激活函数、2*2 最大池化和全卷积层组成,它通过反复堆叠3*3 的小型卷积核和2*2 的最大池化层,成功构建了16~19 层深的卷积神经网络,具有结构简单和性能高效的特点[17]。
VGGNet16 的预训练权重源自大型数据库ImageNet。ImageNet 是一个具有5 247 个类别共计320 万张清晰标注图像的庞大干净图像数据集[18],具有规模大、层级密度深、准确度高和多样性复杂等特点。因此,该预训练权重具有较好的泛化性和鲁棒性,可以在少样本数据的图像处理任务中实现迁移学习效果,提高特征提取效率和精度。
Fig.1 Network structure of VGGNet16图1 VGGNet16 网络结构
1.3 本文网络结构
为了满足小样本分割任务需要,本文整体网络结构如图2 所示,由主干特征提取网络、加强特征提取网络及预测部分组成。其中,主干特征提取网络是卷积和池化的堆叠,加强特征提取部分包含连续上采样(UpSampling2D)、堆叠(Concatenate)和卷积(Conv2D)操作,预测部分使用了1*1 卷积,实现对每一个像素点的分类。
Fig.2 Overall network structure图2 整体网络结构
主干特征提取网络由卷积和最大池化组成,使用VGG⁃Net16 的3*3 卷积核和2*2 池化核替换原始网络,包含5 个卷积模块和4 次池化操作。通过13 次卷积操作提取图像特征和4 次最大池化降低特征维度,不断压缩特征图的尺寸并增大通道数,获得5 个初步有效的特征层。
加强特征提取部分对原始U-net 网络解码部分进行改进,主要改进特征融合方法,在上采样过程中去除剪切(Crop)操作,直接进行2 倍上采样和堆叠操作(Concate⁃nate),保证输入图像和输出图像的尺寸一致性。通过对主干网获得的5 个有效特征层进行上采样和特征融合,获得一个融合所有特征的可用于最终像素点分类的最终特征层。
最后利用1*1 的卷积操作对最终特征层的每一个特征点进行分类操作,区分背景和舌体,完成精准的语义分割。
2 实验及结果分析
2.1 实验准备
2.1.1 实验数据
本文数据由江苏省中医院体检科提供,数据采集设备是DS01-A 型舌面脉信息采集系统。由于原始数据集包含人脸等信息,前期对数据进行脱敏处理,去除患者面部等有效身份信息,实验数据来源有效且符合伦理审查规范,保证了实验的合理性。数据集包含320 张分辨率为365 像素×365 像素的标准舌图像,其中300 张按照8∶2 的比例划分为训练集和验证集,剩余20 张作为测试集进行模型验证,各数据集之间无重复数据。
在深度学习图像分割领域,仍采用监督学习方法,准确有效的标准舌体掩膜图像是模型训练的关键,因此需要对数据集进行人工标注,在标注结果中,图像颜色深度为8位bit(像素值范围0~255),仅保留0 和1 这两个像素点,舌体部分表示为1 像素点,无关背景表示为0 像素点。使用LabelMe图像标注工具对舌像中的舌体轮廓进行舌体标注,得到图像有效分割标签(GroundTruth)。数据集标注过程如图3 所示。
Fig.3 Dataset annotation图3 数据集标注
2.1.2 实验环境
本文实验硬件环境:CPUInter Core i7-9750H@2.60GHZ、GPU NVIDIAGeForceGTX1660Ti、显存6GB、内存16GBDDR4;软件环境:Window10、Keras2.2.4 深度学习框架、TensorFlow 1.14.0、tensorflow-gpu1.13.2 及CUDAV10.0。
2.2 实验设置
2.2.1 迁移学习与冻结训练
为了提高模型在少样本数据集上的学习效率,使用VGGNet16 的预训练权重进行迁移学习。使用微调(finetune)的训练方法,在载入模型权重并冻结特征提取层的网络参数后,使用合适的学习率对未冻结层进行参数训练,完成解码层的参数训练后,解冻所有参数进行训练,该方法可以很好地提高模型训练效率和任务分割精度[19]。
在该模型中,设置100 个学习时期(Epoch),在前50 个Epoch 中,对模型的前18 层特征提取网络(Block1~Block5)进行参数冻结,主要训练Block5 后Unet 模型中未训练过的网络参数,从而提取出与当前数据集更加相关的高级特征。在后50 个Epoch 中,对全部网络结构进行一个解冻操作并在当前数据集进行参数微调,从而获取更高精度的分割模型,有效地均衡网络训练时间,提高特征提取准确性。
2.2.2 训练参数设置
在该模型的网络中,首先对输入图像进行一个resize操作,输入图像的维度统一转换成(512,512,3),使得网络可以兼容不同尺寸的输入图像。在模型训练中,Epoch 设为100,批尺寸(BatchSize)根据显卡性能选择为2,初始学习率为0.000 1,优化算法选择内存占用更小、计算更高效的Adam 算法,Adam 参数配置中除学习率外均采用默认参数,损失函数采用Dice 相似系数(LossDice)和交叉熵函数平均值(LossCE)作为组合损失函数Loss,计算公式如式(1)—式(3)所示。
使用早停机制寻找合适的迭代次数,实验训练过程中训练集loss、验证集loss 与Epoch 的关系如图4 所示。可以看出,随着训练次数的增加,网络损失逐渐收敛并趋于稳定。
Fig.4 Change of loss function图4 损失函数变化
2.2.3 实验评价指标
实验中,采用平均像素精度(MPA)和平均交并比(MIOU)两个指标获取模型分割效果的量化结果[20]。该指标是语义分割任务中的标准评判指标,MPA 表示每个语义类别被准确预测的像素点比例,MIOU 表示计算真实值和预测值两个集合的交集和并集之比,计算公式如式(4)、式(5)所示。
其中,N 表示分割过程中需要分割出的类别,实验中为1 类(舌体部分)、nii表示第i类语义类别的真实像素数量、nij表示第i类语义被模型误判为j类像素点数量。
2.3 结果分析
为了验证本文模型在中医舌图像上方法的有效性和实际分割性能,采用对比实验方法,选取传统U-Net 网络、Mobile-Unet 方法以及本文网络在相同实验数据集下进行模型分割效果评估。采用平均像素精度和平均交并比以及训练时间作为评价指标,结果如表1 所示。由于传统UNet 网络的特征提取层无法精确获取舌像边缘,特征融合后带来了精度损失问题,使得分割结果较为粗糙。Mobile-Unet 方法在一定程度上减少了模型的参数量,但在准确率上低于本文方法。本文方法在模型参数量、训练时间、准确率及可视化分割效果等方面均优于对比网络,证明了实验的有效性。
Table 1 Evaluation index of the model表1 模型评价指标
为了直观展示不同模型方法的分割效果,选取测试集中的部分图片进行分割,可视化结果如图5 所示。由图可见,传统U-Net 对舌体边缘细节识别度低,仍保留了大量无关细节,分割效果较差。Mobile-Unet 方法通过深层次的卷积虽然可以有效切割舌体边缘,但仍损失了部分舌体信息。本文方法可精确识别舌体边缘和舌像细节,还原出完整的最接近真实标签的舌体,具有良好的分割效果。
3 结语
舌图像精准分割是后期舌像分类识别的重要前提,对舌图像自动化识别研究具有重要意义。本文针对传统舌图像分割方法自动化程度低、舌图像轮廓细节模糊等问题,结合深度卷积神经网络和U-Net 网络模型等方法,提出了一种针对中医舌图像的改进U-Net 分割方法。本文使用VGGNet16 网络的卷积模块替代原始特征提取模块,使用迁移学习方法提高了学习效率,通过U-Net 的堆叠和特征融合有效保留了低层次的细节信息。通过对比实验证明,本文网络方法在中医舌图像数据集上具有良好的分割效果,分割精度达97.91%,在分割准确率和效率上优于传统方法。但该算法在特殊舌图像上存在一些问题,在对齿痕舌、蜷曲舌等不规则舌体的处理中,存在细节和边缘误判情况。因此,对多形态非标准舌体分割进行研究,提高算法识别率仍是未来研究方向。