一种基于改进VGG16网络的中医复杂体质辨识方法

文档序号:29701471发布日期:2022-04-16 14:35阅读:163来源:国知局
一种基于改进VGG16网络的中医复杂体质辨识方法
一种基于改进vgg16网络的中医复杂体质辨识方法
技术领域
1.本发明涉及传统中医体质临床诊断领域与图像识别领域,特别是一种基于改进vgg16网络的中医复杂体质辨识方法。


背景技术:

2.中医体质理论将人体体质分为9大类,分别为平和质、气虚质、阳虚质、阴虚质、痰湿质、湿热质、血瘀质、气郁质、特禀质;中医主要通过舌诊来进行中医体质辨识。舌诊的具体实现方式为中医医师通过观察舌象,基于中医的舌象理论判定患者体质。然而,舌诊方法存在着严重依赖于中医医师专业理论知识和中医诊断经验的问题,并且诊断结果不具备客观性,难以使用统一的评判标准来对结果进行评估。因此,需要实现舌诊流程的自动化和客观化,更加准确客观地辨识人体中医体质。为了实现上述目标,相关研究人员基于中医理论知识和临床实践经验,总结了舌诊的流程步骤,构建了完善的舌诊系统。
3.一个完善的舌诊系统主要由三个部分组成,分别为舌象图像采集、舌象图像处理、构建中医体质分类器。首先,目前舌象图像采集技术已经相当成熟,市场上也存在各种专业的中医舌象采集设备,可以在消除环境因素影响的基础上,采集到自然、真实的舌象图像;其次,舌象图像处理主要是为了提取图像的关键像素、去除图像的噪声像素,避免噪声像素对最终结果产生干扰;图像处理主要包括图像提取算法和图像去噪算法,目前这些算法已经相当成熟,并且运用在对舌象图像的处理上有着相当不错的效果。因此,本发明提出的一种基于改进vgg16网络的中医体质方法,可以很好地构建一个高效准确的中医体质分类器,从而构建一个完整的舌诊系统,准确客观地辨识患者的中医体质。
4.将目前常见cnn模型运用于的舌象识别中,大致存在三个问题:第一:深层的网络结构在提升拟合能力的同时,也带来了参数规模的爆炸式增长,导致网络模型难以训练,需要耗费大量的时间和计算资源。第二:深层的网络结构可能出现网络弥散的现象,导致网络难以训练,并且随着网络层次的加深,网络性能不升反降。第三:对于256*256大小的舌象图像,无法保证充分地提取图像特征,可能会丢弃特征图的矢量信息,导致仅仅提取到舌象纹理、肥厚程度、轮廓等信息,而米有提取到舌象的位置信息。


技术实现要素:

5.本发明要解决的问题在于提供一种舌象识别的算法模型,完成中医体质辨识任务。
6.实现本发明的技术解决方案为:一种基于改进vgg16网络的中医复杂体质辨识方法,包括以下步骤:
7.步骤1、采集人体舌象图像,基于9种中医体质对人体舌象图像进行分类,建立舌象数据集;
8.步骤2、扩展舌象数据集样本规模;
9.步骤3、对舌象数据集进行图像预处理与样本划分,得到训练数据集和测试数据
集;
10.步骤4、构建舌象识别网络模型,采用截断的vgg16网络作为低维特征提取器,采用多层优化的inception网络结构作为高维特征提取器;
11.步骤5、设置舌象识别网络模型的相关函数;
12.步骤6、采用多种优化方法优化舌象识别网络模型;
13.步骤7、对图像特征进行定位与提取;
14.步骤8、对图像特征进行分类,设置损失函数与梯度下降方法。
15.相较于vgg16、vgg19、rensenet50等传统的算法模型,本发明提出的方法在提高卷积神经网络复杂度、提升网络性能的同时,降低了网络模型整体的参数规模,因此带来了两方面的优势。第一,本发明提出的方法相较于传统算法模型效率更高,训练神经网络耗费的时间与计算资源更少;第二:本发明提出的方法相较于传统算法模型准确率更高,对于中医体质的辨识更加精准客观。
16.下面结合附图对本发明做进一步详细描述。
附图说明
17.图1为本发明提出的基于改进vgg16网络的中医复杂体质辨识方法的流程图。
18.图2为本发明提出的舌象识别网络模型的结构图。
19.图3为舌象样本图像,a为舌象原图,b为前景分割后的舌象图,c为垂直翻转后的舌象图,d为旋转后的舌象图,e为亮度调节后的舌象图,f为平移后的舌象图。
20.图4为舌象识别网络模型训练过程中正确率、损失函数变化曲线图。
21.图5为舌象识别网络模型的性能评估柱状图。
具体实施方式
22.结合图1,本发明提出的一种基于改进vgg16网络的中医复杂体质辨识方法,包括以下步骤:
23.步骤1、采集人体舌象图像,基于9种中医体质对人体舌象图像进行分类,建立舌象数据集;
24.步骤2、扩展舌象数据集样本规模;
25.步骤3、对舌象数据集进行图像预处理与样本划分,得到训练数据集和测试数据集;
26.步骤4、构建舌象识别网络模型,采用截断的vgg16网络作为低维特征提取器,采用多层优化的inception网络结构作为高维特征提取器;
27.步骤5、设置舌象识别网络模型的相关函数;
28.步骤6、采用多种优化方法优化舌象识别网络模型;
29.步骤7、对图像特征进行定位与提取;
30.步骤8、对图像特征进行分类,设置损失函数与梯度下降方法。
31.进一步地,步骤1所述的采集人体舌象图像,基于9种中医体质对人体舌象图像进行分类,建立舌象数据集,具体为:
32.步骤1-1:在自然光照环境下,利用舌象采集仪采集人体舌象,得到三通道的彩色
高清舌象图像。
33.步骤1-2:根据中医医师的临床诊断,对人体舌象图像对应的中医体质进行分类,一共有9种不同类别的中医体质,舌象图像对应地标注成0-8,得到舌象数据集。
34.进一步地,步骤2所述的扩展舌象数据集样本规模,具体为:
35.针对舌象数据集中的每张图像,分别使用垂直翻转、旋转、亮度调节、平移四种方法进行数据增强,将数据集样本规模扩展为原始数据集的5倍。
36.进一步地,步骤3所述的对舌象数据集进行图像预处理与样本划分,得到训练数据集和测试数据集,具体为:
37.步骤3-1:图像前背景分割,使用grabcut算法对彩色舌象图像进行前背景分割,将舌体像素从复杂的背景像素中分割出来,防止非舌体像素对最终结果产生影响。
38.步骤3-2:图像尺寸归一化,使用双线性插值算法将舌象图像统一缩放成s*s大小,具体实现方式为:
39.首先,在横向方向上进行第一次线性插值处理,具体如式(1)所示:
[0040][0041]
式中f(
·
)表示某个像素点的像素值,x表示目标像素的横坐标位置,x1、x2表示源图像像素的横坐标位置,y表示目标像素的纵坐标位置,y1、y2表示源图像像素的纵坐标位置。
[0042]
其次,在纵向方向上进行第二次线性插值处理,具体如式(2)所示:
[0043][0044]
式中f(
·
)表示某个像素点的像素值,f(x,y)表示双线性插值处理之后目标像素的像素值,y表示目标像素的纵坐标位置,y1、y2表示源图像像素的纵坐标位置。
[0045]
步骤3-3:使用k折交叉验证方法划分数据集,具体实现方法为:
[0046]
1)随机打乱舌象数据集,保证划分后的训练集和验证集分布一致。
[0047]
将舌象数据集划分成样本数目相等的k组数据。
[0048]
2)每次取其中一组作为验证集,剩余的k-1组作为训练集。
[0049]
3)使用训练集训练网络模型,使用验证集评估网络模型,总共进行k次训练与验证,将k次验证结果进行平均计算,得到最终中医体质辨识模型的评估结果。
[0050]
进一步地,步骤4所述的构建舌象识别网络模型,采用截断的vgg16网络作为低维特征提取器,采用多层优化的inception网络结构作为高维特征提取器,具体为:
[0051]
采用改进后的vgg16网络作为舌象识别网络模型,该网络模型结构由四部分组成:低维特征提取器、高维特征提取器、转换层、分类器。舌象图像作为输入,经过低维特征提取器得到低维特征图,经过高维特征提取器得到高维特征图,经过转换层将特征图通道进行降维,经过分类器实现舌象特征分类。
[0052]
舌象识别网络模型的具体构建与相关参数如下所示:
[0053]
1)输入层:分辨率为256*256像素大小的rgb舌象图像。
[0054]
2)低维特征提取器:截断的vgg16网络,截取vgg16网络的第1-10层卷积层作为低
维特征提取器,具体为vgg16网络的前四组卷积层,包括第一组:conv1_1、conv1_2;第二组:conv2_1、conv2_2;第三组:conv3_1、conv3_2、conv3_3;第四组:conv4_1、conv4_2、conv4_3。
[0055]
设置低维特征提取器中卷积层的卷积核大小、滑动步长、通道数目等参数。所有的卷积核大小均为3*3,滑动步长均为1,第一组卷积核的通道数目为64;第二组卷积核的通道数目为128;第三组卷积核的通道数目为256;第四组卷积核的通道数目为512。
[0056]
设置低维特征提取器中池化层的池化方法、池化大小、滑动步长等参数,所有的池化层均采用最大池化算法,池化大小均设置为2*2,滑动步长均设置为1。
[0057]
3)高维特征提取器:高维特征提取器中使用了优化的inception结构,相较于传统的inception结构,优化的inception结构使用平均池化,并舍弃了1*1卷积核作为一个单独尺寸的过滤器。高维特征提取器由三组优化的inception结构组成,第一组:conv5_1、conv5_2、conv5_3、conv5_4、avgpool5_1、conv5_5;第二组:conv6_1、conv6_2、conv6_3、conv6_4、avgpool6_1、conv6_5;第三组:conv7_1、conv7_2、conv7_3、conv7_4、avgpool7_1、conv7_5。
[0058]
设置高维特征提取器中卷积层的卷积核大小、滑动步长、通道数目等参数。其中conv5_1、conv5_3、conv5_5、conv6_1、conv6_3、conv6_5、conv7_1、conv7_3、conv7_5的卷积核大小为1*1,滑动步长为1,通道数目为128;conv5_2、conv6_2、conv7_2的卷积核大小为3*3,滑动步长为2,通道数目为448;conv5_4、conv6_4、conv7_4的卷积核大小为5*5,滑动步长为1,通道数目为448。
[0059]
设置高维特征提取器中池化层的池化方法、池化大小、滑动步长等参数,avgpool5_1、avgpool6_1、avgpool7_1采用平均池化算法,池化大小设置为3*3,滑动步长设置为2。
[0060]
4)转换层:转换层主要起到通道降维的作用,由一个1*1卷积核组成,记为conv8_1,该卷积核的滑动步长为1,通道数目为128。
[0061]
5)分类器:分类器由两层全连接层组成,分别记为fc01、fc02,fc01的神经元数目设置为1024,fc02的神经元数目设置为512。fc01、fc02激活函数均采用relu函数。
[0062]
6)输出层:输出层由一层全连接层组成,神经元数目设置为9,与中医体质类别数目一致,激活函数采用softmax函数。
[0063]
进一步地,步骤5所述的设置舌象识别网络模型的相关函数,具体为:
[0064]
步骤5-1:采用relu函数作为舌象识别网络模型的中间层激活函数,其计算公式如式(3)所示:
[0065]
relu(x)=max(0,x)#(3)
[0066]
从上式可以看出,当relu函数输入非常大的时候,其梯度仍然不变为1,因此relu函数很好地解决了梯度消失的问题;另外,relu函数在大于0时是一个线性函数,因此在反向传播计算梯度时十分简便,网络训练计算量小。
[0067]
步骤5-2:采用softmax函数作为舌象识别网络模型的输出层激活函数,具体实现如式(4)所示:
[0068]
[0069]
式中x表示一个c维的输入向量,xi表示输入向量的第i个元素,y表示c维的输出向量,yi表示输出向量的第i个元素。
[0070]
给定输入x,对于得到的输出y,其c个维度的元素值对应c个分类类别的预测概率,其概率分布可以表示为:
[0071][0072]
步骤5-3:在优化的inception结构中,采用平均池化函数,其计算公式如式(7)所示:
[0073][0074]
式中a、b表示池化区域的起始位置,s表示池化步长,x
i,j
表示池化前的像素值,表示池化后的像素值。
[0075]
在舌象识别网络模型的其余卷积层之后,都使用最大池化函数,其计算公式如式(8)所示:
[0076][0077]
式中a、b表示池化区域的起始位置,s表示池化步长,x
i,j
表示池化前的像素值,表示池化后的像素值。
[0078]
进一步地,步骤6所述的采用多种优化方法优化舌象识别网络模型,具体为:
[0079]
步骤6-1:采用kaiming初始化方法对舌象识别网络模型的卷积层、全连接层的权重值进行初始化,从而保证正向传播时的输出值方差和反向传播时的梯度方差保持不变,其实现方式如式(9)所示:
[0080][0081]
式中w表示网络层的权重参数,n表示正态分布,nj表示第j层网络层的输入维数。
[0082]
步骤6-2:采用l2正则化系数对卷积层、全连接层的权重参数调整进行约束,防止网络模型在训练过程中发生过拟合,其实现方式如式(10)所示:
[0083][0084]
式中j(
·
)表示损失函数,h(
·
)表示网络模型的预测结果,xi表示输入的第i个样本输入,n表示批量样本数目,w表示网络层的m维权重参数,wj表示权重参数的第j个元素。
[0085]
步骤6-3:采用批量归一化方法对卷积层的输出进行统一标准化处理,防止出现梯度弥散现象,加快网络收敛速度,其具体实现方式如下所示。
[0086]
首先计算小批量输出的均值和方差:
[0087][0088]
式中m为小批量样本数目,μ
β
为均值,为方差。得到均值和方差之后,进行标准化:
[0089][0090]
式中∈为可调整变量。标准化之后,再对结果进行移动和缩放:
[0091][0092]
进一步地,步骤7所述的对图像特征进行定位与提取,具体为:
[0093]
使用多尺寸的滤波器同时对k*k大小特征图的信息进行提取,具体包括位置信息和舌象信息,位置信息主要反映该区域是位于背景还是前景,舌象信息主要反应舌体区域部分的纹理、肥厚程度、轮廓等特征。
[0094]
首先,将k*k大小的特征图t划分成s0*s0大小的区域,使用s0*s0尺寸的滤波器进行提取,当提取完成一个区域的信息后,移动p个网格的偏移量,继续提取下一个区域的信息,直到特征图的所有区域都被提取完,得到高维特征图t0,其大小为k/p。
[0095]
然后,将k*k大小的特征图t划分成s1*s1大小的区域,使用s1*s1尺寸的滤波器进行提取,当提取完成一个区域的信息后,移动p个网格的偏移量,继续提取下一个区域的信息,直到特征图的所有区域都被提取完,得到高维特征图t1,其大小为k/p。
[0096]
最后,将特征图t0与特征图t1进行通道融合,得到图像特征提取的结果t

,t

可以表示为:
[0097]
t

=[t0,t1]#(14)
[0098]
进一步地,步骤8所述的对图像特征进行分类,设置损失函数与梯度下降方法,具体为:
[0099]
步骤8-1:针对中医体质的多特征分类问题,采用交叉熵函数作为损失函数,计算公式如式(15)所示:
[0100][0101]
式中表示softmax函数,表示对第j个类别的预测概率,c表示类别数目,pj表示第j个类别的真实概率。
[0102]
步骤8-2:采用基于动量的小批量梯度下降方法对网络权重参数进行训练。
[0103]
首先,在每一次迭代中计算小批量样本的平均损失来进行梯度更新,具体如式(16)所示:
[0104][0105]
式中n表示小批量样本的数目,c表示类别数目,表示softmax函数,表示对第i个样本的第j个类别的预测概率,p
i,j
表示第i个样本的第j个类别的真实概率。
[0106]
其次,在梯度更新过程中引入动量因子,加快网络的收敛速度,具体如式(17)所示:
[0107][0108]
式中w表示权重参数,b表示偏移量参数,α表示学习速率,β表示动量因子,v
dw
表示上一轮迭代的权重更新速率,v

dw
表示本轮迭代的权重更新速率,v
db
表示上一轮迭代的偏移量更新速率,v

db
表示本轮迭代的偏移量更新速率,dw表示本轮迭代权重的更新梯度,db表示本轮迭代偏移量的更新梯度。
[0109]
下面结合实施例对本发明作进一步详细的描述。
[0110]
实施例
[0111]
1、在自然光照下,使用舌象采集仪采集人体舌象,生成的rgb三通道的高清彩色舌象图像,然后再将舌象图像标注上所属的中医体质,标注值为0-8,从而构建得到原始舌象数据集。
[0112]
2、对原图舌象进行前背景分割,然后采用垂直翻转、旋转、亮度调节、平移四种方式进行数据增强,得到扩展后的舌象数据集,数据集的舌象样本图像如图3所示。然后使用k折交叉验证法划分样本数据,生成训练集和测试集,设置k=10,具体实现如下所示:
[0113]
g=[v1,...,vi,...,v
10
]#(18)
[0114][0115][0116]
式(18)中的g表示划分前的舌象数据集,vi表示等分划分的第i份数据;式(19)中的testi表示第i份测试集;式(20)中的traini表示第i份训练集。
[0117]
3、构建基于改进vgg16网络的舌象识别网络模型,网络模型主要由输入层、低维特征提取器、高维特征提取器、转换层、分类器、输出层组成,输入层为256*256的rgb三通道舌象图像,低维特征提取器为一个截断的vgg16网络,高维特征提取器为三组优化的inception结构,转换层为一个1*1卷积核,分类器为两层全连接层,输出层为一层激活函数为softmax的全连接层。具体网络结构如图2所示。
[0118]
4、在舌象识别网络模型中,采用relu函数作为网络中间层的激活函数,采用softmax函数作为网络输出层的激活函数,在优化的inception结构中采用平均池化方法,在其余卷积层后使用最大池化方法。采取三种措施对网络的训练过程进行优化,使用kaiming初始化方法对网络层权重参数进行初始化,使用l2正则化对网络层权重参数的调整进行约束,使用批量归一化对卷积层的输出进行统一标准处理。
[0119]
5、采取基于动量的小批量梯度下降方法对网络权重参数进行训练,将动量因子设置为0.5,学习速率设置为0.01,学习速率衰减因子设置为0.005,l2正则化系数设置为3e-4,小批量样本数目设置为32,200次迭代次数设置为200,在网络训练过程中,损失函数、正确率变化曲线如图4所示。
[0120]
6、使用测试集对该算法进行验证评估,评估参数包括了训练正确率、测试正确率、测试精确率、测试召回率、模型训练时间,算法的评估结果如图5所示。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1