基于痧象的脏腑功能失调预警方法

2021-06-16 01:59韩立博胡广芹张新峰张艳阳
北京生物医学工程 2021年3期
关键词:出痧大椎穴坐标值

韩立博 胡广芹 张新峰 张艳阳

0 引言

痧疗在临床应用中有着很好的效果,医生通过刮痧工具刮拭皮肤,刺激穴位区域,治疗各种疾病。刮痧过后,皮肤的表面往往会出现一些鲜红或者暗红或者紫红等颜色的斑块或红点,其被称为痧象。背部五脏六腑穴位区域的痧象对脏腑功能失调具有预警作用,刮拭的背部脏腑穴位区域若出现痧块、痧斑等现象,需要重点观察该区域对应的脏腑,其功能可能出现了变化[1-2]。

传统的痧象识别方法存在一些缺陷:目前主要基于医生对背部脏腑穴位各个区域模糊定位来实现,面对较多的区域,无论是定位还是识别都需要花费很多时间,影响工作效率。

利用相机采集的图像有一些杂乱的背景,影响痧象图像在电子病历中的规范化存储。信息技术的快速发展,对解决上述问题提供了一条道路。武文强等[3]基于痧象利用支持向量机(support vector machine,SVM)实现了痤疮证型自动分类,出痧区域与不出痧区域相比,其表面更加粗糙,纹理具有一定的差异性,Tamura纹理特征中的粗糙度以及对比度在表达痧象的纹理特征上具有很好的效果。但其研究也存在一些不足之处,运用颜色直方图法提取痧象的颜色特征,颜色直方图法量化处理容易影响最后的识别结果[4]。本文在前人的基础上,进行基于痧象的脏腑功能失调预警方法研究。

1 研究方法

1.1 基于两点的Grabcut背部提取及脏腑穴位区域定位

在采集图像时,患者体位若倾斜,背部脏腑穴位区域的定位以及识别都会有很大的影响。由于大椎穴以及长强穴都在背部的中间位置,所以二者的横坐标是相同的,故通过该特性对采集的图像作校正处理。首先根据手动得到的大椎穴以及长强穴具体坐标值计算倾斜的具体角度:

(1)

式中,(m1,n1)为大椎穴位置坐标;(m2,n2)为长强穴位置坐标。根据(m1,n1)、(m2,n2)得到图像的旋转中心(m5,n5),见式(2)、式(3),将原始图像绕旋转中心顺时针旋转α,计算旋转后的大椎穴坐标值(m3,n3)以及长强穴坐标值(m4,n4),见式(4)、式(5),式(6)、式(7),详情见图1。

图1 校正示例

(2)

(3)

(4)

(5)

(6)

(7)

Grabcut[5]是一种分割算法,其仅通过少量的人工辅助就可以获得理想的结果,故图像校正后,利用Grabcut算法对校正后的图像进行分割,去除杂乱的背景。对分割结果做二值化处理,依据二值图像连通域最大面积区域的左上角坐标值和右下角坐标值、校正后的大椎穴坐标值、校正后的长强穴坐标值截取图像,见图2,红框区域内的图像为截取的图像,将其称为图像A。

图 2 待处理区域

五脏六腑对应的穴位在背部的分布存在一定的规律[6]。对标准的人体背部穴位图进行分析,若大椎穴的纵坐标为0,长强穴的纵坐标为1526,则脏腑穴位从上到下肺俞、心俞、肝俞、胆俞、脾俞、胃俞、三焦俞、肾俞、大肠俞、小肠俞、膀胱俞纵坐标分别为168、316、612、691、746、802、854、919、1 051、1 160、1 210,横坐标为大椎穴的横坐标加减87,根据已知的标准人体背部穴位图脏腑穴位坐标获取图像A脏腑穴位的坐标。在现实情况中,人体背部长宽是存在一定差异的,故首先用图像A的大椎穴和长强穴纵坐标差值除以标准人体背部穴位图的大椎穴和长强穴纵坐标差值,得到二者比值,然后用标准人体背部穴位图的脏腑穴位纵坐标乘以二者比值作为图像A脏腑穴位的纵坐标,用图像A大椎穴的横坐标加减二者比值与87的乘积作为图像A脏腑穴位横坐标。将以脏腑穴位为中心大小为60×60的区域作为脏腑穴位区域,用红色方框在图像A上标定,截取膀胱俞纵坐标+100以上的区域作为最终的结果。

1.2 基于SVM的痧象自动识别

本研究的样本比较少,由于SVM[7-8]在处理小样本时性能比较好,故首先采用SVM结合提取的特征进行脏腑穴位区域痧象自动识别。

出痧区域一般为鲜红、暗红等颜色,不出痧区域一般为正常皮肤颜色或者潮红色,二者具有很大差异,故本文提取颜色特征用于后续的痧象识别。颜色矩法[9-10]不仅能很好地用来提取颜色特征,而且可避免颜色特征量化对识别结果造成的影响,故采用颜色矩法来提取图像的颜色特征。颜色矩法表达式如下:

(9)

(10)

(11)

式中,gi、pi、qi、Fij、N分别表示第i颜色空间的一阶矩、二阶矩、三阶矩、第j个像素值、像素总个数。

出痧区域与不出痧区域相比,其表面更加粗糙,纹理具有一定的差异性。Tamura纹理[11]特征中的粗糙度以及对比度在表达痧象的纹理特征上具有很好的效果[3],故本文采用该方法进行纹理特征提取。

径向基核函数作为SVM的核函数泛化能力比较强,故本文选用径向基核函数对痧象的有无进行自动识别,并采用网格法[12]进行参数寻优。由于数据相差很大容易影响最终的识别结果,故采用最大最小归一化方法对颜色特征、纹理特征进行归一化。

1.3 基于Alexnet算法基础上修改后的CNN痧象自动识别

相比SVM,卷积神经网络(convolutional neural networks,CNN)不需要手动提取特征就可很好地对图像进行识别,由于研究的是一个数据集比较小的二分类问题,故本文选用较浅层的CNN对痧象进行识别。由于Alexnet[13-15]是CNN的突破算法且未发现识别痧象的CNN,本文根据需求对Alexnet进行修改,用来识别脏腑穴位区域的痧象。

由于ReLu激活函数的负区间神经元不学习,本文将ReLu激活函数改为Leaky ReLu激活函数[16]。Alexnet输入图像一般为224×224,图像越大,识别速度越慢,对出痧区域和不出痧区域进行分析,出痧区域一般为鲜红、暗红、紫红等颜色且表面比较粗糙,与不出痧区域全局信息存在很大的差别,针对该特性,本文选择尽可能的缩小输入图像,在兼顾图像细节信息的基础上,更加考虑图像的全局信息,提高识别速度以及准确率,最终把输入图像缩小为15×15,修改后的CNN搭建详情见表1。

表1 CNN搭建

1.4 实验步骤

首先用基于两点的Grabcut算法实现背部提取及背部脏腑穴位区域自动定位;然后用SVM和CNN实现痧象自动识别,对比实验结果,得到最佳分类模型;最后用最佳分类模型对脏腑穴位区域痧象识别,从而实现脏腑功能失调预警。

2 结果分析

2.1 图像来源及实验设备

本研究的数据集来自北京工业大学生命学院中医药健康工程研究室痧象数据库。传统痧疗医生用牛角、玉石、砭石等形状不规则的器具,因为器具不统一易造成痧象形状各异,本文选取的图像都是在统一痧疗器具和操作手法进行规范后保存的图像。痧疗手法:鍉圆针系统痧疗;痧疗器具:胡广芹发明的鍉圆针定量痧疗器(山东明医明药生物医药有限公司,鲁淄械备20180038号)。在痧象数据库中截取大小为60×60的小块图像作为训练集和测试集,将表面存在痧斑/血疱/痧块,或者交叉存在的图像命名为类型A,将表面不出痧或者具有少量痧点的图像命名为类型B,见图3。类型A、类型B的训练集以及测试集数量分别为640幅、300幅。SVM算法基于Matlab、LibSVM实现,深度学习算法基于Tensorflow实现,实验环境为GPU 1080Ti、Ubuntu 14.04.1、CPU i7-7700HQ、Win10、64位,为了后续统计的时间具有统一性,统计算法在CPU下花费的时间。

图3 不同类型的图像

2.2 基于两点的Grabcut背部提取及脏腑穴位区域定位结果

手动获取大椎穴和长强穴位置信息对原始图像[图4(a)]进行校正,校正结果见图4(b)。用基于两点的Grabcut算法实现背部提取及脏腑穴位区域自动定位,并用红框标定脏腑穴位区域。该区域分左右两部分,从上到下的脏腑穴位区域依次为肺俞区域、心俞区域、肝俞区域、胆俞区域、脾俞区域、胃俞区域、三焦俞区域、肾俞区域、大肠俞区域、小肠俞区域、膀胱俞区域,最终结果见图4(c)。该方法在图像校正、背部图像提取、背部脏腑穴位区域自动定位上取得很好的效果。

图4 基于两点的Grabcut处理结果

2.3 基于SVM和CNN的痧象识别结果分析

首先用SVM对小块数据集进行训练和测试,然后用搭建好的CNN进行训练和测试。由于背部脏腑穴位区域共有11个,各区域分左右两部分,故每幅背部图像需要对22幅小图像进行自动识别,所以本文统计每次识别22幅图像花费的时间,识别结果和花费时间见表2。Alexnet算法基础上修改的CNN相比于Alexnet、SVM识别速度更快,识别速度为每22幅0.42 s,识别准确率更高,识别准确率为99.83%。其中,类型A图像1幅识别错误,类型B图像全部识别正确。后续采用Alexnet算法基础上修改的CNN模型进行识别。

表2 花费时间和识别准确率

2.4 脏腑功能失调预警结果分析

为了验证该算法是否可行,对10幅图像,即对110个脏腑穴位区域自动识别,判断每个区域的左右两部分中的一处或者两处是否是类型A,如果是则判定该区域对应的脏腑可能出现异常。对其判定结果进行统计分析,识别准确率为98.18%(识别正确108个,识别错误2个),可用来进行脏腑功能失调预警。

3 讨论与结论

痧疗过程中,常通过背部脏腑穴位区域痧象及时发现脏腑功能失调的问题所在,对后续的保健与治疗具有重要的作用。传统的脏腑功能失调预警主要基于医生对背部脏腑穴位各个区域模糊定位来实现,面对较多的区域,无论是定位还是识别都需要花费很多时间,影响工作效率。使用相机采集的图像有一些杂乱的背景,影响痧象图像在电子病历中的规范化存储。

本文提出一种基于图像处理与模式识别技术的痧象分析方法,用基于两点的Grabcut算法实现背部提取及脏腑穴位区域定位,并用SVM、Alexnet、Alexnet基础上修改的CNN对脏腑穴位区域进行识别,对比实验结果确定最优模型,实现各个脏腑穴位区域痧象的自动识别,从而实现脏腑功能失调预警。本算法的研发,为中医痧诊提供一种辅助手段,对提高医生工作效率、规范化存储痧象图像具有重要的作用。但由于数据集有限,在制作数据集的时候各种典型样本数量还不是很多,造成现在训练好的模型虽然在测试集上识别率很高,但当用10幅图像总共110个脏腑穴位区域验证算法可行性时,准确率下降,以后会继续采集样本,增加数据集,提高模型泛化能力。

猜你喜欢
出痧大椎穴坐标值
大椎穴贴敷配合盐酸西替利嗪片治疗过敏性鼻炎60例临床疗效观察
刮出来的“痧”到底是什么
刮大椎穴可辅助退烧
刮痧多了,身体就虚了吗
感冒露苗头 速按迎香、风池和大椎穴
基于二分法迭代的凸模数控铣削加工编程*
刮痧之“痧”
刮痧时,出痧越多越好吗
春天咳白痰搓搓大椎穴
基于宏程序的数控车削加工应用