黄恩铭,谭敏敏,袁晓琳
(1. 南京中医药大学教务处,南京 210023;2. 南京农业大学信息中心,南京 210095;3. 南京中医药大学中医学院·中西医结合学院,南京 210023)
中医舌诊是几千年来中国医生治疗实践和经验积累中形成的相对完整的诊治方法和理论,一般是通过辨识舌象的相关特征来了解人体的生理、病理变化,进行健康状态和疾病诊断的一种方法[1]。传统的舌诊方法有一定的局限性,容易受到主观因素影响,如医生的个人能力、知识水平、临床经验、主观意识以及诊断环境等都可能对诊断结果造成一定的偏差。随着时代的发展和科技的进步,特别是大数据与人工智能的广泛应用,中医舌诊客观化研究正在逐步开展。中医舌象特征提取与自动识别的研究早在2002年左右就开始出现,但由于技术限制,都是在传统的图像处理与识别的基础上做舌象信息提取,准确率比较低。直到2018 年才开始出现试图采用卷积神经网络识别舌象信息的相关研究,到目前为止,智能舌诊方面的研究还比较缺乏。目前有梁玉梅[2]做了基于面象特征的中医体质自动辨别系统,涂帅[3]利用改进的FCN 分割模型与拉东变换提取舌象裂纹特征构建基于舌像特征的中医体质检测系统,张莹莹[4]利用知识图谱构建舌像自动诊疗系统,等等。中医舌诊与人工智能深度融合,实现自动辨别,进一步提高舌诊的客观性、有效性,是中医舌诊现代化研究的主流方向。
体质是由先天遗传或后天获得所形成的一种机体状态存在形式,是人类在形体状态与动态表现中固有的一种稳定性特征。国医大师王琦[5]在《中医体质学》中继承了古代及现代体质分型方法的临床应用性原则,分析古代文献共109 个体质特征描述和现代文献共408 个体质特征描述,结合临床实践,总结出了人体一般共有9 种体质,分别为平和质、气虚质、阴虚质、阳虚质、痰湿质、湿热质、淤血质、气郁质、特禀质。这9种体质最大程度地揭示了人类疾病的未来发展方向以及阴阳虚实的规律,并对中医“治未病”和临床诊治方案提供重要指导作用。
匡调元[6]认为舌象具有一定的生物全息性,舌属于一种全息元,它与全身其他全息元当具有对应的相似性,如舌中线由舌尖到舌根依次主心、肺、脾、胃、肾,两侧主肝胆。构成舌象的生命物质与构成该个体体质的生命物质是一致的,所以根据舌象可以辨明体质类型。通常可根据人体舌象的外在表征判断体质的类型,即人体舌象特征与人体体质有着一定的对应关系,这是在数千年的临床实践和经验积累中形成的相对完整的中医诊疗理论。中医学认为,舌通过经络循环,直接或间接地与五脏六腑相通,又与人的四肢百骸相连。脏腑的病变也必然影响精气的变化而反映在舌象上。中医舌诊是判断人体体质的一个重要途径,是中医学独特的最有价值的诊断方法之一,清代医家刘恒瑞在《察舌辨证新法》中系统总结了看舌八法:“一看苔色,二看舌质,三看舌尖,四看舌心,五看润燥,六看舌边,七看舌根,八看变换。”
舌诊是传统中医诊断的必察内容,主要是观察舌体的大小、厚薄、有无齿痕、颜色如何、有无裂纹等,概况起来舌象的特征主要有几何特征、纹理特征和颜色特征三种。在传统的舌诊过程中,主要采取肉眼观察舌体形状、纹理和色泽的方法获取舌象特征,但由于医生个人的知识储备、临床经验、技术水平、诊断环境等不同,往往形成差异的主观舌象特征描述,比如颜色深浅的偏差、厚薄与大小标准的不统一等。目前,在中医舌象自动化辨别研究中,也是通过计算机图像处理技术,对采集的清晰的舌体图片进行裁剪去噪处理、分割,提取舌象的形状、纹理和颜色三个特征,经过一系列的处理、量化、对比,根据中医名家舌诊知识库和中医体质诊断规则,最终得出相应的体质类型,过程如图1所示。这个过程中,舌象分割和舌象特征的提取与分析最为关键。在早期的图像分割研究中,研究者多采用的是基于数字图像处理的阈值分割、边缘检测等方法,精准度不高。目前,基于深度学习技术已成为舌象分割的主要手段,通过各种神经网络模型来提取舌象的几何视觉特征和纹理视觉特征可以极大提高分割的精准度。
图1 舌象处理与特征提取过程
机器自动舌诊与医生或专家的人工舌诊不同,对采集的舌象照片要求高,通常人们采集舌象照片时无可避免会将非舌体部分拍摄到照片中,如牙齿、嘴唇、脸部、头发、衣服或其他杂乱的背景等,这些与舌象无关的信息都会严重影响舌诊的准确性。因此,实现舌诊机器自动辨别的重要的前提是对舌象照片进行预处理,检测出舌体并精准将其从照片中分割出来,排除其他无关因素干扰,使舌象特征提取与分析结果更加精确。图像分割方法有多种,传统的图像处理技术难以实现舌体的精确分割,目前被广泛运用的是基于深度学习的神经网络分割方法,如VGG、FCN、U‑Net、Mask‑RCNN 网络等,在图像提取特征的应用中VGG 模型是首选算法,应用最广。VGG 可以分为6 种子模型,分别是A、A‑LRN、B、C、D、E,我们常看到的基本是D、E 这两种模型,D、E 模型网络共有16 层,所以也叫VGG‑16 模型。舌象图片输入VGG‑16模型过程如图2所示。
图2 舌象照片在VGG⁃16网络中的处理过程
本研究采用李渊彤等[7]提出的一种基于区域关联损失的舌体分割方法,依据区域像素之间的关联性来设计单像素损失函数,既考虑到了局部区域像素之间的关联关系,又能将其应用于已有的单像素边缘概率分布的输出模型,该方法有效提高了舌象分割的准确度。其损失函数有效利用了像素标签语义的监督信息,可以更好地指导分割模型进行有效的训练。
在中医舌诊中,舌象信息主要包括舌色、舌形、苔质、苔色、舌头脉络颜色和纹路等视觉特征,从计算机角度看,可以概括为舌体的颜色特征、形态(几何)特征和纹理特征,舌象特征提取与分析主要是从这三个方面进行。舌象特征提取的过程如图3所示,先将采集的图像裁剪到符合要求的一定大小,初步去除多余部分,然后对舌体进行分割,只保留舌体部分,最后通过舌象识别得到舌象的三类特征。需识别的颜色特征包括舌色和苔色,舌色主要有淡白、淡红、红、绛、青紫、暗红、绛紫、淡紫、瘀斑,苔色主要有白、灰、黄、淡黄、深黄、焦黄、黑。需识别的形状特征有老、嫩、胖大、瘦薄、裂纹、点刺、齿痕、肿胀。需识别的纹理特征包括苔质的厚、薄、腻、少苔、垢腻、黏腻、剥落和津液的润、燥、滑。根据王琦[5]及中医舌诊相关文献归纳整理出9种中医体质对应的舌体颜色、形状和纹理特征,如表1所示。
表2 9种中医体质对应的H、R、G通道的数值范围
图3 舌象处理与特征提取过程
在传统的舌诊中,对舌体颜色的观察是最重要、最关键的一步,大量的临床诊断实践证明,舌苔、舌质的颜色与一些疾病有着一定的对应病理关系,正常健康人体的舌体颜色与舌苔颜色是一致的,一般紧贴在舌体表面,表现为淡红色,而患有某些疾病的人的舌体颜色可能表现为淡黄色、灰褐色、白色和黑色等。通常用数码相机采集得到的舌象图片是RGB 彩色空间的,数码相机对采集的环境很敏感,因此我们对RGB 颜色空间R、G、B 三通道的范围进行优化处理,根据通道平均值和通道间方差得出新的上下限,并借助麦克斯韦三角坐标对三个通道进行归一化处理[8],得到R、G、B 颜色特征范围,最后映射到HSI 空间,得到每种体质对应的HSI空间H通道数值范围。
传统的医生舌诊除了观察舌体的颜色,还会观察舌体的形状,如大小、长度、宽窄、厚薄和边缘情况等,概括来说舌体几何特征提取主要是判断舌体的齿痕、胖瘦、肿胀、老嫩等。舌象的纹理特征有裂纹、有无点刺、瘀斑、腐腻以及舌苔的厚薄情况,齿痕一般发生在舌体中下部,处于两侧边缘和下端部位,有明显的凹痕,因此检测齿痕可以结合图像边缘检测和凸包特征检测快速识别。
基于舌象特征的中医体质辨别平台的物理结构主要有客户端和服务器端,客户端采用便于用户使用的微信小程序,无需用户安装额外的APP,只需有手机微信便可以通过微信小程序随时随地采集舌象照片,上传服务器,生成中医体质报告。服务器端采用Ubuntu16.4 操作系统、Apache 服务器、MySQL 数据库。开发工具包括微信开发者工具、Anaconda3、Spyder、TensorFlow‑GPU、Cuda、CUDNN、TensorBoard、LabelImg等。系统整体架构如图4所示。
图4 系统整体架构
用户通过微信小程序拍摄并上传舌体照片,系统做初步处理,如果照片存在大面积无关画面,系统会做相应裁剪,如果照片质量差、不清晰、抖动模糊、径切向变形、拍摄环境过暗或者曝光过度等,系统会提示用户重新拍摄上传照片。当图片能正常上传,则根据模型算法进行舌象分割并给出识别的中医体质类型,根据体质类型提示用户完成对应的问卷,生成相应的体质报告,并提供一些适宜的中医养生建议和方法。
基于神经网络的图像识别技术在医学领域应用越来越广泛和深入,相关的面诊、舌诊自动化研究也越来越多。本研究通过提取舌象的关键特征信息,自动判别其所属的中医体质类型,生成体质报告,并结合中医体质知识库给出比较恰当的中医养生知识。是一种方便、快速了解自身体质特点,并获取相应中医养生手段的好方式。
传统中医诊断有望闻问切四种基本手段,舌诊只是望诊中的一种,中医望诊除了观察患者的舌部特征外,还会综合考察患者的精神状态、面色、体温、体味等多种外在特征,再结合询问、讲述、交谈、切脉等多种手段,结合既往病史、当下感受、生活环境等多个方面来综合加以判断,形成诊断意见,所以舌诊虽然是很有效的诊断手段,但这只是对于有经验的中医师而言的,而且一定要结合其他病征综合研判。因此,只靠患者自己和一些信息数据就做出诊断结论,并把这个权力直接交给患者,不得不说有一定风险。因此通过舌诊特征的自动辨别中医体质类型,只给了用户初步了解自身体质的便捷途径,并不能代替传统的病理诊断。