深度学习在舌象分类中的研究综述

2023-02-18 07:16林卓胜李胜可刘慧琳
计算机与生活 2023年2期
关键词:舌象舌苔分类

吴 欣,徐 红,2,林卓胜,李胜可,刘慧琳,冯 跃+

1.五邑大学 智能制造学部,广东 江门529020

2.维多利亚大学,澳大利亚 墨尔本8001

3.上海中医药大学 教学实验中心,上海201203

中医历经几千年的发展,已形成了一个集诊断、治疗、预防于一体的医疗体系。作为中医诊断方法之一的舌诊的理论基础在于舌的异常变化,如纹理、颜色和形状的变化,可揭示人体对应器官的疾病,诊断易行,无疼无损[1-3]。中医临床研究表明,在疾病的发展过程中,舌的变化是迅速而显著的,然而传统的舌诊有赖于医者的主观分析,有不可避免的局限性[1],诊断结果可能是模糊和不确定的,阻碍了其发展应用。因此,有必要对舌诊进行客观化定量检测,并探讨舌象与疾病的量化关系。

如今,计算机科学和技术的发展使得基于图像处理和模式识别的自动舌诊系统设计成为可能[4]。机器学习算法已被应用于舌象的颜色、纹理和形状研究,包括支持向量机(support vector machines,SVM)[5]、随机森林(random forest,RF)[6]、K-均值聚类(K-means clustering algorithm)[7]、主成分分析法(principal component analysis,PCA)[8]、梯度提升决策树(gradient boosting decision tree,GBDT)[9]、自适应提升(adaptive boosting,AdaBoost)[10]和朴素贝叶斯(naive Bayes model)[4]等。然而,被采集者的舌象特征复杂且相互关联,如舌色与苔色间的相关性较为明显,要达到预期的分类精度具有一定的难度。

传统的图像分类算法通常在简单的图像分类任务上效果较好,但在较为复杂的任务上效果差强人意[11-13]。随着人工智能的快速发展,深度学习技术也越来越成熟,智能方法应用于中医研究[14-17]使该领域发生了范式转变。刘飞等人[18]基于深度学习的方法将预处理的图像特征映射作为网络的输入,完成了对糖尿病患者和正常对照组的分类识别。在临床应用上,不少研究者开展舌诊以及相关领域客观化和定量化的探索,如Sun 等人[19]基于7 层卷积神经网络(convolutional neural networks,CNN)提出了一种无需边界框准确分类齿痕舌并定位舌诊图像中重要区域的方法,平均分类准确率达到78.6%。

分析统计目前已有的舌诊研究文献发现(见图1[20]),文献发表数量整体呈波浪式上升趋势,但增加速度缓慢,研究主题主要包括舌诊客观化研究、中医舌诊、中医舌象、中医诊断、图像分割、图像处理、特征提取和冠心病等内容[20]。研究方法主要是通过传统的机器学习和深度学习对舌诊图像进行定量分析。传统方法适合解决小样本场景中过度拟合的问题。基于深度学习在图像分类方面取得较好的成果,因此一些深度学习的方法被广泛应用于舌诊客观化研究。深度学习与传统方法相比具有以下优点:(1)在大规模数据和识别精度上,深度学习模型具有更好的能力;(2)可以最大程度地进行信息交换。

图1 舌诊客观化研究发表文献的变化趋势Fig.1 Growth of objective study papers on tongue diagnosis

目前,舌诊自动化主要的处理流程分析(见图2[21])如下:首先采集舌诊图像,进行颜色校正或数据增强(平移、旋转和镜像等)预处理;然后基于深度学习进行舌体分割和舌象分类,舌象分类包括提取舌象的颜色、纹理和形状等特征与舌象分析;接着根据中医舌诊知识库的相关知识实现中医证候的推断;最后给出中医诊断建议。

图2 舌诊自动化流程Fig.2 Tongue diagnosis automated process

1 基于深度学习的舌象分类方法

1.1 早期神经网络

人工神经网络由大量相互连接的神经元组成,它近似模拟了神经信号的处理。Rosenblatt等人提出了多层感知器模型(multilayer perceptron,MLP),首次将神经网络的理论付诸实践[22-24]。Obafemi-Ajayi等人[13]设计了自动识别和舌形分类的方法,同时用SVM 和MLP 来训练舌形分类,并提出了基于对称轴检测的新方法来校正舌头的方向。在自建的包含303 张舌象的数据集上的实验结果表明,MLP 比SVM 识别准确率高约3%。

1998年,LeCun等人[25]提出基于梯度学习的CNN模型LeNet-5,网络由卷积区和全连接(fully connected,FC)区两部分组成。邢甜甜[26]对舌色、舌苔色、舌苔薄厚、舌苔腐腻和舌苔润燥5 个类别分别建立了CNN模型,参照LeNet-5 网络进行调整。同时,建立了多任务CNN 模型,将颜色和纹理分类任务分别对应一个网络模型。与单任务分类相比,在节约时间、减少计算量的同时不牺牲分类性能。

1.2 卷积神经网络

LeNet-5 网络逐渐被其他机器学习方法所超越[27-29]。2012 年,Krizhevsky 等人[30]构建了AlexNet 网络。Zeiler 和Fergus[31]构建ZFNet 网络,使用可视化技术揭示神经网络各层的作用并优化网络,调整后的网络性能超越了原始网络。随后,原理、算法和模型经历了井喷式发展,相关的研究工作如汗牛充栋。

Xue 等人[32]用裂纹舌和非裂纹舌数据对AlexNet网络进行训练,提取裂纹区域的高层次特征。Huo 等人[33]在AlexNet 网络基础上,通过批量归一化(batch normolization,BN)[34]对网络进行优化,结果表明预处理方法提高了舌形分类的精度,减少了训练时间,证明了对不同舌形识别的有效性。肖庆新等人[35]对AlexNet 结构进行修改,将卷积核大小为11×11 或7×7 改为5×5 或3×3,并且减少了全连接层的输出数量,卷积操作后增加了池化操作,减少了参数数目和特征图尺寸,搭建了舌苔颜色分类模型。

针对2012 年的ImageNet 数据集,深度学习框架Caffe定义的结构与AlexNet大致相同,被称为CaffeNet[36]。Hou 等人[37]针对舌色分类问题,在CaffeNet 的基础上对网络结构进行修改,修改方案与文献[33]相同。因为舌象数量有限,在学习过程中,舌象的某些特征会逐渐减弱甚至消失,所以减少FC 层的神经元数量,结果比传统方法更实用、准确。

2014 年,Simonyan 等人[38]提出了VGG 模型,运用更小的卷积核,并且加深网络,一定程度减少了参数量,达到更好的效果。AlexNet、VGG 等模型都是通过增大网络的深度来获得更好的训练效果,但层数的增加会带来很多负作用,比如过拟合、梯度消失/爆炸等。2015 年,Szegedy 等人[39]结合文献[40-41]提出GoogLeNet网络,Inception 模块的提出可以从另一种角度优化训练效果,在相同计算量下提取到更多的特征,更高效地利用计算资源。

为了解舌苔的性质,Fu 等人[42]采用Otsu 阈值分割[43]舌体,并将图片色彩转化到HSV[44]颜色空间,由于大部分舌苔位于舌的中央或根部,且在水平方向上近似对称,采用了水平翻转的数据增强方式,最后用GoogLeNet 网络进行了四分类和三分类。CNN 具有局部性和平移不变性等优点。但如果需要对图像中的对象或错误进行定位、标定、代码读取或后期处理,则传统算法更具有优势。该方法结合了基础图像处理和深度学习的特点,使得模型性能有所提升。

CNN 在图像分类任务中表现良好。然而,随着CNN 深度的增加,训练更加困难,训练误差更高。随着网络深度的增加,准确率达到饱和后迅速下降。2015年,He等人[45]提出了ResNet 解决这种退化问题。为减少中医师之间的诊断差异,Li等人[46]提出一种基于CNN 的舌特征分类框架(见图3),使用一种改进的人脸标志点检测方法和U-Net[47]完成舌分割任务,最后以ResNet-34 作为骨干网络,从舌象中提取特征并分类。邵尤伟[48]先将舌质与舌苔分离,然后将分离后的图像作为输入,使用ResNet-50 分别对舌质和舌苔分类,并参考Zhang 教授的方法[49]预测病症和诊断结果。Chang 等人[50]针对裂纹舌建立ResNet-50和Grad-CAM[51]可视化裂隙区域,该模型既可检测舌裂纹,又可定位裂纹区域。当提取固定位置的手工特征时,舌苔区域的大小或位置变化可能会导致模型性能不一致。为了解决这一问题,Tang 等人[52]利用ResNet对舌苔特征进行提取和采用多实例支持向量机(multiple-instance support vector machines,MI-SVM)[53]进行分类。

图3 舌象分类整体框架Fig.3 Overview of tongue classification framework

孙萌等人[54]将ResNet 网络与Inception 模块[39]采用NIN(network in network)[41]方式结合,设计了Triplet Loss的度量分类方法(见图4),最大化非同类样本的特征距离,同时缩小类间样本特征的间距,增加了网络的深度与宽度,同时能更好地提取特征,减少参数量。

图4 算法整体框架Fig.4 Overall framework of algorithm

残差连接使CNN更深、更强、更高效。DenseNet[55]进一步扩展网络连接确保各层间的信息流最大化。陈慧贞[56]以AlexNet 网络结构为基础,引入DenseNet中的密集连接方式,提出一种舌苔分类模型TonNet。又因为舌诊需舌苔、舌质等多方位综合诊断,研究人员以TonNet 为基础设计了包含舌苔和舌质两个输出的舌象辨识模型Multi-TonNet。

目前舌象分类中注意力机制使用最多的是SENet(squeeze-and-excitation network)[57]。牛富泉[16]对包含人脸的舌图像进行分割,得到的舌区域图像采用带有SE block 的ResNet-101 网络分类,提高了裂纹舌的识别准确率。为提高智能舌诊的诊断效果和增加舌诊的可解释性,骆明楠[58]提出基于Competitive-SE 通道注意力机制的CNN 和随机区域池化的训练方式,提升了表征能力,突出了某些重要特征,并根据舌象信息提供诊断思路(见图5),从而促进舌诊的可解释性和智能化。

图5 基于舌属性学习的舌诊预测Fig.5 Prediction of tongue diagnostic based on tongue attribute learning

1.3 基于区域卷积网络的模型

自2014 年R-CNN(regions with CNN features)[59]问世以来,目标检测领域涌现大量改进的模型[60],例如Fast R-CNN[61]、Faster R-CNN[62]。齿痕区域仅出现在舌边缘区域。现有的方法[63-64]大多是利用凹区域信息对齿痕舌进行分类,当齿痕区域不凹时,分类结果往往不一致。为了解决这些问题,Li等人[65]提出三阶段的方法:第一阶段,用R-CNN 选择搜索生成舌象可疑区域;第二阶段,将可疑区域输入CNN 提取每个区域的特征向量;第三阶段,CNN 的输出被视为一个二维矩阵,并使用多实例分类器进行最终决策。Gholami 等人[66]利用R-CNN 网络将舌体区域与其他区域分离,经过必要的预处理后,将图像提供给DenseNet网络分类。

杜春慧[67]针对舌图像的裂纹、颜色和齿痕做了定量研究,并搭建了中医舌诊推荐系统,一定程度上为医生和患者提供了便利。研究者采用Faster R-CNN网络识别裂纹,通过ZFNet、VGG-16 和ResNet-101 提取裂纹特征。同时采用模糊C 均值聚类分离舌质和舌苔,通过KNN、SVM、CNN 和Bayes 识别舌色。Chen 等人[68]提出基于ResNet-50 模型和注意力机制改进的Faster R-CNN 方法。首先,考虑到随着网络深度的增加,缺失的信息会增加,提出在区域候选网络(region proposal network,RPN)中使用ResNet-50模型,以保留更多的原始信息。其次,在网络中引入空间注意力和通道注意力机制,强调局部病变信息,抑制背景舌象信息。结果与原始的Faster R-CNN 相比,准确率显著提高。

Mask R-CNN[69]在Faster R-CNN 基础上增加分支目标掩码预测网络,并行当前的边界框识别,能同时进行目标检测和分割,且易于扩展到其他任务上。Li等人[70]将数据分为数据集1 和数据集2,并利用Mask R-CNN 模型对数据集2 的舌诊图像进行检测,去除原始图像的背景。然后在数据集1 和数据集2 上采用叠加技术进行模型融合,以最大限度地发挥临床数据的优势,获得更好的分类效果。Peng 等人[71]设计了舌象点刺识别与提取模型,包括多尺度特征图生成、候选区选择和目标区域识别。利用深度卷积网络构造多尺度特征图,然后利用目标候选框生成算法和选择策略选择高抽象的特征图,最后利用分类网络对目标区域分类。在非标准光照条件下,实验使用手机拍摄各种舌象,以增加模型的鲁棒性。

根据舌象纹理的特点,刘佳丽等人[72]设计基于YOLOv3 目标检测改进的Double-D 优化架构。首先在特征提取架构DarkNet-53 网络中进行细粒度特征融合,然后利用K-means 维度聚类和多尺度识别定位,得到训练权重后,对舌裂纹进行预测。Yen等人[73]使用YOLOv4[74]对舌所属的类别进行分类并获取坐标信息,可用于识别其他舌象。针对齿痕舌识别效率低和准确率不高的问题,颜建军等人[75]提出基于YOLOv5 的齿痕检测模型,利用分割算法对舌体进行分割,采用YOLOv5 检测齿痕区域,提取相关齿痕舌特征向量,用RF 分类。

Weng 等人[76]提出了基于DarkNet-53 的弱监督YOLO(weakly supervised YOLO,WSYOLO)方法(见图6),利用完全边界框注释和粗图像注释的舌图像来训练齿痕和裂纹检测模型。该模型基于YOLO 扩展而来,并增加了几个分类分支,用于识别齿痕舌和裂纹舌。分类分支从不同层次提取特征,检测分支用于定位齿痕和裂纹的位置。

图6 WSYOLO 的网络架构Fig.6 Framework of WSYOLO

1.4 迁移学习

中医舌诊需要观察舌体的颜色、纹理和形状,以获得必要的信息。由于医学图像样本少,采用迁移学习方法缓解了医学图像样本不足的问题。目前基于迁移学习的舌象分类方法大多是利用大型ImageNet数据集或其他医学数据集对网络预训练,然后迁移到目标任务对网络微调。最后使用少量医学数据重新训练全连接层进行分类,进而提高网络的性能。医学图像的主流迁移框架如图7 所示,其中微调的模型、次数、顺序以及预训练数据集的选用都会影响最终迁移的效果[77]。

图7 医学图像的主流迁移框架Fig.7 Mainstream migration framework in medical image field

针对开放环境中拍摄引起的舌体位置不统一问题,李渊彤等[21]用预训练的VGG-16 模型初始化,用空间变换层纠正图像目标的空间位置,再用多个卷积层和池化层的组合获取多个任务之间共享的语义特征图,最后由一个卷积块和多个全连接层组合用于共同的语义特征提取,针对各自任务相关的语义特征向量进行分类预测。

Chen 等人[78]提出了相似稀疏域自适应方法对舌诊进行建模(见图8),其中A 表示ResNet-34 网络,B表示Faster R-CNN。在ResNet-34 预训练的基础上构建RPN 的训练,只需增加少量计算成本。通过对输入的舌图像进行分类,将具有代表性的病变和其他异常标记出来作为最终多分类的辅助依据,有效地模拟中医师诊断。

图8 中医舌诊模型架构Fig.8 Architecture of TCM tongue diagnosis model

刘婧玮[79]基于ResNet-34 网络和VGG-16 网络对齿痕和腻苔分类,通过迁移学习和数据增强优化防止过拟合,但因为样本不平衡且腻苔诊断受医生主观影响较大,腻苔识别在验证集上的准确率不高。Wang 等人[80]用预训练权重初始化网络并微调,使用ResNet-34 网络结构提取特征并分类。该模型可推广到其他设备捕获的图像,具有较强的泛化能力,可从信息学的角度提供客观、方便的计算机辅助舌诊方法,用于跟踪疾病进展和评估药理作用。

邱童[81]用ResNet-50 预训练并微调,采用Faster R-CNN 框架对舌诊图像进行预处理,使用多特征融合的方法对高低语义信息特征融合,对是否是舌象进行分类。为了适应各种摄影环境下的舌诊图像,构建中药处方,Hu 等人[82]用ResNet-50 和VGG 模型预训练,并设计了用于处方构建的神经网络框架。此外,研究人员还提出辅助治疗主题丢失机制,以模拟中医师治疗,并减少输出标签对结果多样性的干扰。实验使用真实的舌诊图像和相应的处方,结果可以生成与真实样本接近的处方,验证了方法的可行性。同时,从更多的物理信息出发,为自动构建中药处方提供参考。Song 等人[83]通过预训练好的ResNet和Inception-v3 网络提取舌体特征,用全局平均池化和全连接层重写原始网络的输出层,得到分类结果。

Sadasivan等人[84]采用经典的AlexNet、VGG、Goog-LeNet 和ResNet 模型进行迁移学习,并采用两种方法进行对比:第一种方法,在大规模的ImageNet 数据集上,使用微调的预训练模型,最佳准确率为98.61%;第二种方法,使用未微调的预训练模型,准确率为96.94%。尽管与第二种方法相比,第一种方法的训练时间较长,但研究结果强调迁移学习在识别任务中的优越性,并且ResNet模型效果都优于其他模型。

杨晶东等人[85]利用迁移学习获取公共特征,再使用全连接神经网络对舌象特征进行训练分类,架构采用“Inception-v3 和两层全连接层”和“Inception-v3和三层全连接层”。为解决舌象分类易受到舌部其他信息干扰的问题,翟鹏博等人[86]提出融合注意力机制的多阶段舌象分类算法,并设计了舌象采集系统采集舌诊图片。首先通过融合不同的感受野特征,获得舌部区域,然后借助注意力机制排除舌部其他的信息干扰,提取更为精准的信息进行分类。因为有的被采集者齿痕不明显且与周围舌体较为接近,所以齿痕舌比其他类别的分类准确率低。

齿痕舌的识别具有一定的挑战。现有的方法大多只关注齿痕舌的分类,没有涉及齿痕的确切位置和数量,对后续诊断缺乏指导性作用。Kong 等人[87]试图解决这些问题,提出了一种基于Mask scoring RCNN 框架和在COCO 数据集上训练ResNet-101 网络的迁移学习方法,可以提取、可视化齿痕并识别齿痕的数量。该方法可以稳定地检测和分割齿痕,为齿痕舌的严重程度分析提供依据。刘梦等人[88]以带预训练权重的VGG-16 和ZFNet 为特征提取器的Faster R-CNN 模型对齿痕舌和裂纹舌进行局部特征提取。

由于舌体分割的复杂性和细粒度特性,舌诊图像分类具有一定的挑战,而两项任务是高度相关的,与多任务联合学习(multi-task joint learning,MTL)的思想相同。Xu 等人[89]提出了用于舌诊图像分割和分类的MTL 方法。其中,网络在ImageNet 数据集上进行预训练,以ResNet-50 为网络的骨干,并且考虑到舌苔分类的类间方差小、类内方差大的特点,同时将U-Net和判别滤波器学习融合到MTL 中,使这两项任务能达到预期的效果。

舌象标签之间有较强的相关性,需综合考虑舌象多标签。汤一平等人[90]提出了MTL 模型。首先,在ImageNet 数据集上参数初始化,在共享网络层对所有标签进行联合学习,自动挖掘和利用标签间的相关性;然后,在不同子网络层分别完成特定类别的学习任务,从而消除多标签分类中的歧义性;最后,训练多个Softmax 分类器以实现对所有标签的并行预测。该方法以端到端的方式同时提取舌象多个特征并直接进行分类识别。

1.5 其他方法

舌象标签之间有较强的相关性,需综合考虑舌象多标签。王爱民等人[91]提出了基于学习矢量量化(learning vector quantization,LVQ)神经网络的舌色、苔色自动分类方法,分类器采用“2σ”准则进行样本筛 选,并采用Fisher[92]作为色度 空间(RGB,HIS,Ohta,YUV)选择的依据,有效地提高了图像的识别率。然而,一个图像块可能有多种类别的彩色,但在标注时仅将其定为一种类别,容易造成量化误差。

文献[93]在图像模糊相关求和过程中提出了加权因子的算法,然而这是以人工方式完成的。针对这个问题,Qin 等人[94]提出模糊小脑模型关节控制器(fuzzy cerebellar model articulation controller,FCMAC)取代加权模糊关联算法,以克服参数调整过程中的不确定性和不适应性。首先,根据专家的判断选择图像作为输入,训练FCMAC 神经网络进行模糊适应,并作为检验对象。其次,提高期望输出值以增加主要特征颜色向量的比例,同时降低次要特征向量的比例,以提高对检索焦点的关注度。人眼对颜色具有相对恒常性,而机器不敏感颜色的变化,通过加入噪声,如阴影或日光图,降低表示阴影和日光图的颜色向量的比例,以便检索对噪声不太敏感。

深度学习网络通常使用大量的舌诊图像进行训练。然而,某些类别的舌图像很少,这使得深度学习无法使用。此外,收集大量的舌诊图像成本太高且难以应用。Qiu[95]采用元学习方法,通过几个样本提高识别的准确性,提出了改进的原型网络(prototypical network),并根据舌诊图像的特点设计了基于领域知识(domain knowledge)和混合损失函数的特征嵌入算法。该方法比改进前的原型网络、ResNet 和AlexNet的精度都有提升,具有良好的泛化能力。

鉴于多模型决策可以克服单模型判别的不足,获得更高的分类精度。Xiao 等人[96]提出了多模型决策的中医舌苔纹理分析方法。首先,对舌苔纹理进行预分类。然后,通过比较Inception-v3、ResNet-50和MobileNet 等不同深度网络模型的分类精度,进行多模型决策,进一步优化舌苔纹理分析结果。

通用CNN 对区域舌象细节特征的获取能力较弱,同时忽略卷积通道之间的关系,导致模型有较高冗余。为增强CNN 效果,Hu 等人[97]提出了随机区域合并方法获取详细的区域特征。同时,还提出了内成像通道关系建模方法,并与空间注意力机制相结合,对所有通道上的多区域关系建模。新的全通道区域注意力网络对局部细节特征建模,提高了建模效率。该模型为舌象细节特征的建模提供了范例,对其他辅助诊断应用具有指导意义。关于如何动态地调整任务的交互时间,Xu 等人[98]提出了任务耦合弹性学习框架建立任务相关性,用特征图像对疾病位置和疾病性质分类,用动态序列模块建立序列关系并实现多阶段训练和损失正则化。

采集到的原始数据通常是有噪声的高维数据,Dai等人[99]提出了概念对齐深度自动编码器的方法分析舌图像。深层自动编码器分解为两个主要部分:编码器逐层执行对输入图像的降维,解码器重建原始图像。Meng 等人[100]提出了特征提取框架,以提取无偏差的特征并减少舌诊断的工作量。为解决冗余问题,引入高分散性和局部响应正常化操作。针对中医舌色分类中存在噪声的问题,卓力等人[101]提出有噪声标注下的舌色分类方法(见图9):首先,用二阶段的数据清洗;然后,用基于通道注意力的轻量卷积神经网络增强特征的表达能力;最后,用知识蒸馏策略提高分类性能,教师网络用ResNet-50 和SENet网络,学生网络用轻量CNN网络。此外,Rajakumaran等人[102]提出了深度可分离卷积模型用于舌色特征提取与分析,在预处理阶段包括数据增强和双边滤波去除噪声。利用舌图像数据集对该模型的性能进行评估,结果表明具有良好的分类性能。

图9 有噪声标注的中医舌色分类方法整体框架Fig.9 Overall framework of Chinese medicine tongue color classification method with noisy labeling

早期神经网络结构简单且深度较浅,适用于单一且无复杂背景的舌体图像;卷积神经网络增加了网络深度或宽度等,提升了特征提取能力,更关注舌体图像局部区域,适用于开放和封闭环境下的大部分舌象;区域卷积神经网络可以实现疾病位置、齿痕和裂纹定位,适用于背景复杂且明显的舌体图像;迁移学习能够缓解样本不足的问题,降低计算资源损耗,缩短训练时间,适用于小样本舌象分类;其他方法是针对某一特定问题提出的解决方案。

综上所述,深度学习算法在中医学中的应用发展迅速,表1和表2总结了深度学习的舌象分类方法。

表1 基于深度学习的舌象分类方法比较Table 1 Comparison of deep learning based methods for tongue classification

表2 基于迁移学习的舌象分类方法比较Table 2 Comparison of transfer learning based methods for tongue classification

2 常用数据集和评价指标

2.1 常用数据集

对于中医舌象分类来说,由于中医临床数据的特殊性和隐私保护问题,可研究的数据有限,目前的公开数据集较少。公开数据集Tooth-Marked-Tongue为HANHUI 在Kaggle 网站上发布的尺寸不一的有齿痕和无齿痕数据,共1 250 例[103],如图10 所示,其舌象的标签是由多名中医师标注。公开数据集BioHit 图像数据集[104]包含300 例舌图像,图像尺寸为567×768像素,如图11 所示。目前大多数研究者自建数据集,从互联网收集,与各个学术研究机构和医院合作,并由专业且经验丰富的中医专家标注,如图12 所示。

图10 Tooth-Marked-Tongue数据集部分舌象图像Fig.10 Some samples of Tooth-Marked-Tongue dataset

图11 BioHit数据集部分舌象图像Fig.11 Some samples of BioHit tongue dataset

图12 自建数据集部分舌象图像Fig.12 Some samples of self-built tongue dataset

由于医学图像样本数量不足,在图像分类之前,需对样本进行数据增强,以保证不同特征的舌象数据具有相同规模的训练集和验证集。采用的类别平衡策略为保持最大的样本数目不变,再根据少数类与最大类的数量间的差异,对少数类进行样本类别扩充。常用的数据增强方式有平移、旋转、水平翻转、加高斯噪声等不同变换方法的组合来对图像进行增强,也有利用生成模型生成新的样本或新的特征。SMOTE(synthetic minority oversampling technique)[105]是一种综合采样人工合成数据的算法,用于解决数据类别不平衡问题,以过采样少数类和下采样多数类结合的方式来合成数据。Qi等人[6]利用SMOTE 算法解决舌色学习样本数的不平衡性来提高分类精度。

2.2 评价指标

无论是二分类问题,还是多分类问题,最常用的是性能度量指标是错误率和准确度。然而,只有错误率和准确度不能满足所有任务的要求,往往还有查准率(precision,P)与查全率(recall,R)。

对于二分类问题,可依据真实类别与预测类别划分为真正例(true positive,TP)、假正例(false positive,FP)、真反例(true negative,TN)、假反例(false negative,FN),如表3 所示。

表3 混淆矩阵Table 3 Confusion matrix

准确度(accuracy,Acc)是指分类正确的样本数除以样本总数,由式(1)计算:

查准率P和查全率R分别如式(2)和式(3)所示:

一般来说,查全率R低时,查全率P往往高,反之亦然。

F1 度量是基于查准率与查全率的调和平均,由式(4)计算:

特异性(specificity,Spc)是指负样本被预测为负样本的比例,计算方式如式(5):

虚警率(false alarm rate,FAR)是指负样本中被分为正样本的比例,其值越小说明模型的性能越好,计算公式如式(6):

舌象分类大多都为单标签分类,一般只是针对一个类别,如颜色、纹理或者形状,并没有考虑到多标签分类。而病人的情况是复杂多样的,故诊断任务也有图像多分类任务。舌诊预测任务是数据不平衡下的多标签分类任务,因此评价指标不能采用单标签图像分类的标准,要综合考察查准率和查全率。

AP 值为根据精准率和召回率绘制而成的PR 曲线下的面积,能够很好地在医疗任务上对模型进行评判。而mAP 值是多类别的AP 值,是衡量模型在多个类别上的预测性能情况,计算公式如式(7)所示。

一种比较直接的方法是在各混淆矩阵上分别计算查准率和查全率,然后计算平均值,即可得到宏查准率(macro-P)、宏查全率(macro-R)和对应的宏平均(macro-F1),计算公式如式(8)~(10)所示:

也可以把各个混淆矩阵对应的元素进行平均,再基于平均值计算微查准率(micro-P)、微查全率(micro-R)和微平均(micro-F1),计算公式如式(11)~(13)所示。

3 舌诊图像的应用

近年来,图像分类、舌象提取、舌体或舌苔分割等重要的人工智能技术被广泛应用于舌诊,以提高诊断的鲁棒性和准确性。在中医临床实践中,中医师通过观察舌色、形状、舌苔、唾液量等特征,推断出被采集者的主要疾病。不同综合症或疾病的舌象被电子化后,得到标有不同综合症或疾病的舌象数据集,应用人工智能方法构建预测人体不同综合症或疾病状态的舌象,为临床综合症和疾病的诊断及临床用药提供了依据[106],舌诊图像与中医证候和疾病的映射关系如图13 所示。刘国正[107]将舌象与中医证候联系起来,采用ResNet-18 模型进行了4 组分类(正常-证候、正常-热证、正常-寒证和热证-寒证),并扩展到3 分类(正常-热证-寒证)。

图13 图像与中医证候和疾病的映射方案Fig.13 Mapping scheme of images to TCM symptoms and diseases

人工智能是通过将表示学习与复杂的推理相结合的系统实现的[108]。Gui 等人[109]利用标签分布特征进行舌色的多标签学习,通过颜色标签来描述舌象。这种方法可以看作是不同医生对同一样本的诊断结果的总结,符合中医诊断的实际情况。人工智能辅助舌诊可以将2 型糖尿病、早期乳腺癌、冠心病等患者与健康人区分开来[4,79,110-112]。

研究表明糖尿病患者的舌苔常呈黄色且苔厚[113]。Zhang 等人[114]使用舌色、纹理和几何特征检测糖尿病和非增殖性糖尿病视网膜病变。Li 等人[115]从舌诊图像中提取颜色特征、纹理特征和舌苔,采用最新的深度学习技术ViT(vision transformer)[116]进行舌象分类,通过Grad-CAM 方法提供定位诊断信息,并验证聚类结果的可靠性。ViT 的训练速度远优于卷积神经网络和循环神经网络[117-118]。此方法为中医药预防和治疗糖尿病提供诊断依据,开展个体化治疗;促进中医诊断的规范化发展;保证中医诊断的准确性和一致性。

随着对冠心病预测系统的最新研究,分类变得非常重要[119],深度学习提高了冠心病预测系统的准确性。叶桦等人[120]建立基于反向传播神经网络的糖尿病合并冠心病舌象和脉象的证型预测模型。

2019 年冠状病毒病(corona virus disease 2019,COVID-19)引起了全世界的关注。Liang 等人[121]首次将舌诊应用于COVID-19 疾病进展的时间序列分析。通过定期分析获得各种舌诊图像,然后根据舌头的特征来调整中药配方。研究人员发现舌色、舌苔厚度和舌苔颜色与COVID-19 的病变密切相关。Wang 等人[122]在ImageNet 数据集上用ResNet 构建了腻舌苔识别网络(GreasyCoatNet)来完成COVID-19疾病舌诊图像分类任务。研究者们用普通摄像机拍摄了50 名处于恢复期的COVID-19 患者和43 名无COVID-19 病史的对照组舌象,用GreasyCoatNet34模型量化与COVID-19 疾病相关的舌苔。此研究有助于治疗选择和预测,可以为区分舌象、诊断中医证候和跟踪疾病进展(如COVID-19)提供重要的研究范式,在临床应用中显示出独特的潜力。

由于综合症的诊断受限于临床医生的经验,Hsu等[113]提出了综合诊断系统框架,已实现定量和客观诊断,同时辅助年轻医生准确诊断。研究人员使用多箱检测器(multi-box detector)检测舌体图像的裂缝区域,同时用自己开发的G-TongueNet 和L-TongueNet从整个舌体图像和裂缝区域提取全局和局部特征,再使用GBDT 对发热证、血虚和脾虚进行分类,确定最终的综合症。

中医体质(traditional Chinese medicine constitution,TCMC)作为中医理论的重要组成部分之一,引起了越来越多的研究人员的关注。国医大师王琦院士团队提出的九种体质学说[122-123]是通过中医的视角来区分人体生理特征个体差异的概念。

Zhou 等人[124]采用AlexNet网络和灰度共生矩阵,以及最小封闭矩形和边缘曲线来提取舌图像的特征。然后使用不同的分类器对九种体质中的气虚质、痰湿质和湿热质分类,神经网络的分类精度比传统机器学习算法的准确率提高了9%。Zhou 等人[125]继续在AlexNet 网络的基础上,搭建了特征融合的深度网络,通过多个特征层的融合,实现对舌诊图像的三种体质分类,得到较好的分类结果,准确率达到了73%,比未使用融合的方法[124]提高了10%。谢佳澄[126]对舌象进行TCMC 分类,通过机器学习和深度学习判别一张图片中是否存在舌,用户通过手机上传舌象图片便可进行TCMC 分类的判别,并根据体质结果提供饮食、生活方式等相关信息的推荐。Li等人[127]提出在开放环境下基于混合深度学习的识别方法,采用GoogLeNet 网络识别体质。现有的体质识别算法对舌诊图像只给出一个体质结果。然而,在实际的体质认定过程中,个人往往会存在两个或两个以上的体质。Li 等人[128]采用多标签分类方法来识别舌诊图像的复合构成,并比较了四种不同网络(Inceptionv3、ResNet-50、VGG-16 和DenseNet-121)的特征提取性能。

舌诊图像的质量是构建舌诊领域标准数据集的基础。Jiang 等人[129]首先对舌诊图像质量进行评估(image quality assessment,IQA),然后进行颜色校正和舌体分割,对舌色、舌质和舌形提取特征并分析,综合舌诊图像特征得到九种TCMC 之一,最后根据具体的体质制定中医药治疗方案。IQA 的质量筛选模型,用于识别质量好和质量差的舌诊图像,通过准确度、精密度、召回率和F1-score 等指标进行比较。此外,尽管深度学习方法已经应用于医学领域[130-131],大多数研究者还没有使用深度学习方法自动从大量训练样本中学习特征。Ma 等人[132]提出了自动体质识别的系统框架,该框架由舌诊图像采集、舌苔检测、舌苔校准、舌特征提取和体质分类组成。此方法在个体层面上考虑了实例复杂性,以减少不同环境条件(如光照和分辨率)对图像分布不均的影响。复杂性感知分类方法是通用的,可以很容易地扩展到其他应用场景。

4 分类方法性能比较

本文主要以HANHUI 在Kaggle 网站上发布的有齿痕和无齿痕数据[103]作为二分类的例子对比经典网络方法。Kaggle 是2010 年成立的预测模型和分析竞赛平台,目前被用作数据分析和机器学习的学习平台[133]。数据包括1 250 张舌图像,其中546 张有齿痕的异常图像和704 张无齿痕的正常图像。本实验使用了5 折交叉验证的方式,实验结果有以下6 个指标评估:准确率(Acc)、查准率(P)、查全率(R)、F1 度量(F1)、特异性(Spc)和虚警率(FAR)。表4 列出了不同分类方法的各个评价指标的均值和方差。表5列出了经迁移学习后各个分类模型的评价指标的均值和方差。

表4 对于齿痕舌不同分类方法的评价指标Table 4 Evaluation metrics for different tooth-marked tongue classification methods 单位:%

表5 基于迁移学习的齿痕舌分类不同方法结果对比Table 5 Evaluation metrics for different tooth-marked tongue classification methods based on transfer learning 单位:%

AlexNet和DenseNet系列准确率较低。DenseNet系列的Spc接近于1,即被预测为负样本概率接近1。如果训练数据集有限,参数过多很容易产生过拟合,导致模型对有齿痕和无齿痕数据分布存在偏差,即DenseNet 系列将样本直接分类为负样本。在AlexNet 的基础上,VGG 系列运用了更小的卷积核,并且加深了网络,达到了更好的效果。其中VGG-13对于齿痕舌的诊断采用5 折交叉验证,其准确率均值为92.37%,方差为0.46%,F1、Spc和FAR分别为90.99%、95.71%和4.29%。无论是否使用迁移学习的方法训练模型,VGG-13 性能最好。GoogLeNet 增加网络深度和宽度,但网络加深时,有时无法收敛,其准确率仅次于VGG-13 和VGG-16。

SE_ResNet 系列相比ResNet 系列加入了通道注意力机制,即可自适应地校正通道特征。SE_ResNet系列增加少量参数,提升精度约2%。CNN 的参数过多,实验往往达不到理想的效果。MobileNet 系列是专注于移动端或嵌入式设备中的轻量级CNN 网络,减少模型参数与运算量,结果表明在齿痕分类的精确度仍有提升的空间。而使用迁移学习的方法进行齿痕分类时,大多数模型性能都有所提高,在一定程度上克服了样本不足的局限性,提升了分类的效果。

表6 对以上网络模型的优缺点进行了总结。数据集齿痕舌体的边缘信息目标较小,凹凸程度不同,并且特征相对不明显。如果数据量不够,在训练模型时容易出现难收敛或者过拟合的问题,导致模型分类性能变差。因此,需要收集更多的高质量数据以获得有临床意义的诊断结果。

表6 神经网络模型的优缺点Table 6 Advantages and disadvantages of neural network models

5 存在的问题和发展趋势

虽然深度学习在自动提取高维特征方面比传统方法更具优势,但是仍然存在一些挑战和局限性。本文将从以下四方面对深度学习在舌象分类中存在的问题和发展趋势进行讨论。

(1)构建数据集。大多研究人员自建非公开的舌诊图像数据集,因而无法在相同的数据集上对分类模型进行性能比较。而深度学习网络需要海量和高质量数据,训练成本高,使用较小数据规模的网络分类是未来发展的趋势。舌诊图像数据集一般通过普通的摄像机、照相机或中医舌诊仪采集,由于使用的设备或舌诊图像采集系统不同,并且没有任何的通用标准,导致所获得的舌诊图像质量有显著差异。随着互联网与云计算不断发展,移动设备成为采集舌诊图像数据的一种工具,但数据质量有限,它需要更大的数据集和更好的模型才能达到较好的效果。此外,被采集者无法将舌体完整伸展导致脏腑体表区域不完善,饮食或药物可能引起舌苔颜色异常或舌体异常,颤抖造成图像模糊。因此舌诊图像的质量评判尤为重要,舌诊图像质量的好坏影响最终的分类结果。

(2)开放环境。基于早期神经网络、卷积神经网络、区域卷积神经网络、迁移学习以及其他方法在封闭环境下取得了较好的鲁棒性。然而,提高中医辅助诊断在真实诊疗环境下的准确率以及受试者的体验舒适度是一发展趋势。虽然这种开放环境不易控制环境复杂性和动态性,如光线、温度等,但可使被采集者有较为自然的生理心理状态,更易于还原真实情况和真实的中医诊断环境,从而克服现有大多数研究采用暗箱式数码相机拍照的封闭形式,存在的易引发被采集者产生心理压力而不能保持血气平和与舌尖自然下垂的问题。因此,从自然的中医诊断环境出发,搭建开放舌诊视频图像采集环境,降低对被采集者的约束程度,为一次性获得较多有效图像,采取视频采集,并从中筛选有效图像以及动态特征,得到视频图像数据集。

(3)提取局部和全局特征。近年来,研究者将局部及全局特征提取[101]用于舌象诊断,从临床数据中学习有用的特征,并利用获得的特征采用有监督的技术将病人的健康状况进行划分。常见的舌象全局特征包含舌体的神、色、形、态。全局特征具有不变性且计算简单,但其有特征维数高、计算量大等缺点。常见的舌象局部特征包含舌形、舌苔、舌质、纹理、动态及舌下络脉等。局部特征是从图像区域中抽取的特征,其特征间的相关性小,特征描述维度低,易于实现快速匹配。注意力机制能够提高CNN的可解释性和发现新的舌特征(例如与疾病相关的区域中的特定颜色)以及提取局部和全局特征的能力,可以对小样本的舌象分类提供重要的帮助。未来CNN 框架的设计可以在不同层次引入注意力机制,使计算机视觉更接近人类视觉能力。

(4)单标签与多标签分类。目前,大多数CNN 模型仅支持单标签数据[89],将任务简化为单标签分类问题。但是同一样本的舌象特征复杂且相互有关联,临床患者较少有单一证型,往往出现多个证型兼夹的复杂情况,属于典型的多标签学习问题。此外,舌诊病例样本具有不均衡特点,导致难以直接训练基于深度学习的多标签分类模型。针对这些问题,训练多个单标签网络,从而将多分类问题转换为二分类问题,以此来消除多标签的歧义性;舌象特征相互有关联,分别进行特征提取和分类,忽略了它们之间存在关联的有效信息。此外,Transformer 与CNN 不一样,它没有卷积、Pooling 等操作,也没有循环,然而在中医图像单标签与多标签分类任务中应用较少,后续可以广泛地应用。

6 结束语

深度学习在医学领域的发展依赖于医学大数据的积累。在疾病治疗方面,深度学习不仅可以检测到病灶区域,还可以对特定病灶进行判别和分类。如何将深度学习更好地应用于医疗的各个阶段,成为一项更具挑战性的任务。本文首先对深度学习的舌象分类现状进行调查、研究和总结,以便为该领域的研究人员提供参考,最后对未来的研究方向进行探讨和分析。随着深度学习技术的快速发展和计算能力的提高,深度学习在舌象分类领域将得到了更广泛的应用。

猜你喜欢
舌象舌苔分类
574例新型冠状病毒肺炎康复者舌象特征分析
基于Citespace的国内肿瘤舌象研究可视化分析(2001-2020年)
基于Citespace糖尿病舌象研究的文献计量与可视化分析
分类算一算
舌象仪临床应用研究的方法学及报告质量评价
宝宝需要清洁舌苔吗
分类讨论求坐标
数据分析中的分类讨论
刷牙别忘清理舌苔
教你一招:数的分类