基于深度学习的脊柱退行性病变智能康复辅助训练系统

文档序号:29045165发布日期:2022-02-25 21:49阅读:333来源:国知局
基于深度学习的脊柱退行性病变智能康复辅助训练系统

1.本发明属于计算机视觉视频理解技术领域,具体为基于深度学习的视频序列识别与评估系统。


背景技术:

2.中医导引术是一种颇具中国特色的养身与治疗方法。它通过引导患者进行在调神和调息基础上的调形,即肢体的主要活动,促进肢体运动恢复。随着计算机硬件和人工智能技术的不断发展,研发智能辅助康复训练系统已成为国内外相关领域的热点。在计算机视觉任务中,视频行为识别是一个具有很大挑战性的领域,基于rgb帧输入方法往往无法达到实时处理的性能要求,基于骨架序列的方法具有更低的时间复杂度,但在推理过程会依赖骨架信息的提取。本发明采用基于骨架序列输入的循环神经网络作为视频行为识别的基本网络架构,并通过openpose
1.二维姿态估计结合稀疏光流追踪实时获取骨架序列,最后根据分类结果进行骨架序列分割、患者功法评分以及动作纠正提醒。本发明将计算机视觉领域和中医导引术康复训练相结合,研发了一种针对脊柱退行性病变的康复训练动作自动评估与辅助训练系统,实现自动化、精确化、智能化的康复训练。


技术实现要素:

3.为了提高脊柱退行性病变患者在通过中医导引术进行康复训练时中医康复医护人员的负担并提高患者练习效果,本发明提供了一种基于深度学习的针对脊柱退行性病变的智能康复辅助训练系统,结合人工智能技术,自动对患者的中医导引术练习进行评估和纠正。
4.本发明提供的基于深度学习的针对脊柱退行性病变的智能康复辅助训练系统,由基于深度学习的中医导引术视频实时分类模块和基于人体骨架表示的视频序列划分与评估模块组成。
5.所述基于深度学习的中医导引术视频实时分类模块,通过openpose
1.获取二维人体骨架数据,作为深度学习模型的训练数据,进行有监督深度学习训练,得到泛化的深度学习模型;然后通过openpose隔帧检测结合稀疏光流追踪,对输入视频进行实时预处理,结果作为输入馈入预训练的分类模型,得到实时帧分类结果。
6.所述基于人体骨架表示和视频序列划分与评估模块,根据所述实时分类模块的帧分类结果,对相同类别的骨架序列进行分割与实时纠错,并将分割好的序列段与相应类别专家组视频骨架序列段进行序列对比评分。
7.本发明提出的基于深度学习的针对脊柱退行性病变的智能康复辅助训练系统中:
8.对应于所述基于深度学习的中医导引术视频实时分类模块,其工作内容如下;
9.(1)获取深度学习的训练数据;
10.(2)训练深度学习模型;
11.(3)openpose隔帧检测结合稀疏光流追踪实时预处理视频并进行分类;
12.对应于所述基于人体骨架表示和视频序列划分与评估模块,其工作内容如下:
13.(4)基于分类结果对骨架序列进行分割与实时纠错;
14.(5)对分割结束的序列段进行对比评分;
15.内容(1)中所述获取深度学习训练数据,具体操作流程为:
16.(11)处理视频数据,根据康复训练功法动作的设计,将所有视频数据进行剪辑,得到长度不超过1000帧的短视频数据;
17.(12)将所有短视频数据进行左右镜像翻转,作为数据增强;
18.(13)以在body_25数据集上预训练的openpose模型对流程(11)中处理好的视频数据样本进行二维姿态提取,获取由25个关键点的二维空间坐标表示的骨架数据序列,其中 25个关键点按照0-24索引顺序分别为nose,neck,rshoulder,relbow,rwrist, lshoulder,lelbow,lwrist,midhip,rhip,rknee,rankle,lhip,lknee,lankle,reye, leye,rear,lear,lbigtoe,lsmalltoe,lheel,rbigtoe,rsmalltoe,rheel,background ;
19.(14)对所有骨架数据序列进行数据预处理,首先进行平移操作,将骨架序列的所有帧坐标减去第一个有效帧的臀中坐标;然后进行归一化操作,计算骨架序列的平均双肩距离ds,然后将骨架序列所有帧坐标进行缩放,缩放系数为最后进行零填充操作,在骨架序列后方填充全零,将骨架序列长度固定为1000帧。
20.内容(2)中所述训练深度学习模型,具体流程为:
21.(21)所述深度学习模型采用分类网络模型,具体采用层次肢体注意力lstm网络,该网络包括视角转换模块、肢体注意力模块、肢体级别分类模块和身体级别分类模块;层次肢体注意力lstm以骨架数据为输入,首先经过视角转换模块对输入序列坐标进行二维平移变换,然后骨架序列的每一帧坐标被划分为8个肢体部分,并分别经过肢体级别分类模块的lstm层和dropout层;然后将8个肢体部分的特征向量级联并通过肢体注意力模块,计算每一个肢体的时空注意力权重;最后按照时空注意力权重对应8个肢体的特征向量级联并加权,经过身体级别分类模块的lstm层、dropout层和softmax层,最终得到骨架序列在每一帧上的分类分数。
22.(22)设置模型超参数;
23.模型中主要超参数有:训练条件、批次大小、学习率、丢弃率、lstm正交初始化乘法因子、最高迭代次数;
24.(23)开始训练,以训练时模型的验证损失值为基准,当模型的验证损失值不再下降并持续30次迭代后,说明网络已经收纳,结束训练;
25.(24)多次调整超参数,得到泛化性能最好的模型;
26.其中,步骤(21)中层次肢体注意力lstm网络中的视角转换模块的操作流程为:
27.为了减少由于拍摄角度变化对模型分类性能的影响,通过视角转换模块对输入骨架序列进行自适应的二维平移和旋转操作,将输入骨架序列每一帧的坐标进行调整,其中,具体的计算过程定义为:
28.s

t,j
=[x

t,j
,y

t,j
]

=r
t
(s
t,j-d
t
),
ꢀꢀꢀꢀ
(1)
[0029]
其中,s
t,j
=[x
t,j
,y
t,j
]

代表输入骨架序列第t帧第j个关键点的二维坐标;代表第t帧对应的平移向量,r
t
代表第t帧对应的二维旋转矩阵,具体表示为:
[0030][0031]
其中,分别表示对骨架序列第t帧所有坐标沿着横轴和纵轴的平移量,α
t
表示对骨架序列第t帧所有坐标逆时针旋转的弧度。
[0032]
流程(21)中,经过视角转换模块的骨架信息,被按照人体分布被划分为8个具有一定重叠的肢体,分别是头部、左臂、右臂、躯干、左腿、右腿、左脚、右脚,随后不同肢体的信息经过单独的lstm层和dropout层计算后再次级联为整体的骨架信息。
[0033]
流程(21)中,肢体注意力模块的操作流程为:
[0034]ht
=lstm(concat(h
t,1
,...,h
t,l
)),
ꢀꢀꢀꢀ
(3)
[0035]at
=w1tanh(w2h
t
+b2)+b1[0036][0037]
其中,h
t,i
表示第t帧骨架序列的第i个肢体信息,1≤i≤l,(l=8),h
t
表示8个肢体特征信息经过级联后经过lstm层和dropout层后得到的特征信息,w1,w2是可学习的参数矩阵,b1,b2是偏差向量,然后通过soffmax激活计算每一个肢体的权重向量α
t,l
,最终得到加权的每一个肢体的特征向量,并将所有加权的肢体特征向量级联作为后续模块的输入:
[0038]h′
t,l
=α
t,l
·ht,l

ꢀꢀꢀꢀ
(5)
[0039]h′
t
=concat(h

t,1
,...,h

t,l
),
ꢀꢀꢀꢀꢀ
(6)
[0040]
级联的加权肢体特征向量经过两层lstm和dropout和一层全连接层后,通过 softmax激活得到分类分数。
[0041]
内容(3)用训练好的模型对带分类视频进行行为分类,具体操作流程为:
[0042]
(31)从输入视频信号源中获取并处理骨架序列、分类,采用openpose隔帧检测结合稀疏光流追踪的方式实时获取骨架序列信息,每5帧进行一次openpose姿态估计,得到 25个人体关键点坐标,其中25个关键点按照0-24索引顺序分别为nose,neck,rshoulder, relbow,rwrist,lshoulder,lelbow,lwrist,midhip,rhip,rknee,rankle,lhip,lknee, lankle,reye,leye,rear,lear,lbigtoe,lsmalltoe,lheel,rbigtoe,rsmalltoe,rheel, background。采用lucas-kanade方法追踪后续4帧中每帧的25个人体关键点二维坐标信息,其中具体过程为:
[0043]st+1
=calopticalflowpyrlk(i
t
,i
t+1
,s
t
),
ꢀꢀꢀ
(7)
[0044]
其中,s
t
,i
t
分别表示第t帧的灰度图像和骨架信息,calopticalflowpyrlk为opencv开源库对lucas-kanade方法的一种实现。
[0045]
(32)骨架序列帧的分类在推理过程中和训练过程中略有不同,在推理过程中,每获取到10帧骨架信息后进行一次骨架信息预处理和分类,预处理的过程包括平移、归一化、零填充,其中平移过程不再依据首帧的臀中点(midhip)的坐标,而是在系统运行过程中维护一个臀中点坐标作为原点,该坐标每10秒进行一次更新;归一化和零填充过程与步骤(14)相同。
[0046]
(33)在推理过程中,由于每10帧进行一次分类而不是整段视频进行一次分类,所以在系统运行的过程中,需要使模型中所有lstm在每次分类之后保持自己的参数信息,即
开启lstm stateful模式,在该模式下,层次肢体注意力lstm网络会在每次进行推理后保留所有lstm层的状态,并作为下一次推理时的初始状态。
[0047]
内容(4)中基于分类结果对骨架序列进行分割与实时纠错,其流程为:
[0048]
(41)基于分类结果的骨架序列分割:
[0049]
系统运行过程中,患者进行的功法一般包含多个不同的动作,为了使后续的评分过程能够准确地比对相应类别的专家组骨架序列信息,需要在序列帧分类后进行实时序列分割,具体为:在序列的第一帧或者确定了上一个序列段的末尾帧时,根据当前帧分类结果判断当前序列段的类别,而确定一个序列段结束的依据要么是帧类别和当前序列段类别连续不一致且达到最大错误容忍长度(100帧)或输入序列结束。
[0050]
(42)基于分类结果的实时纠错,其流程为:
[0051]
系统运行过程中,根据每一个帧的骨架信息和分类结果,计算不同的参数,并生成纠错文本信息,其中动作类别与计算参数的关系如表1所述。
[0052]
表格1,不同动作类别生成纠错文本的参考参数名称
[0053]
动作类别参数名称0双手相对上举幅度、上臂与下臂夹角1双手左右展开的相对幅度、头部左右旋转幅度2双肘相对纵向高度、双轴相对横向宽度3双肘相对纵向高度、双轴相对横向宽度4双手相对下伸幅度5双手相对下伸幅度与小腿平均长度之比6臀部与脖颈纵向距离7双脚纵向距离差与臀部到脖颈纵向距离之比
[0054]
内容(5)中对分割结束的序列段进行对比评分
[0055]
系统运行过程中,每当确定一段新序列段后,根据序列段的类别进行序列比对评分。首先,系统为每个动作类比维护一段专家组骨架序列信息qn,对于一个序列段cm,通过动态时间规则(dtw)算法计算两端序列的相似度,dtw算法通过动态规划的思想,找到两段序列的最佳对齐路径,并计算路径上的序列帧欧氏距离总和:
[0056][0057]
cost(i,j)=d(i,j)+min[cost(i-1,j),cost(i,j-1),cost(i-1,j-1)],
ꢀꢀ
(9)
[0058]
其中,x,y表示序列段中的二维坐标,d(i,j)表示序列qn的第i帧和序列cm的第j帧的欧式距离,cost(i,j)在两个序列的最佳对齐路径的(i,j)位置的累计欧式距离和,cost(n,m)两段序列的相似度。根据序列的相似度,计算当前序列段和专家组骨架序列的比对分数( 百分制),为了使得分数分布更加均匀,按照序列的相似度大小将分数划分为4档,分别是90-100(对应相似度0-2)、75-90(对应相似度2-4)、60-75(对应相似度4-6 )、40-60(对应相似度6-∞),对于每档的相似度,分数计算过程为:
[0059]
score=low+(len-10*2
cost-highcost
),
ꢀꢀꢀꢀ
(10)
[0060]
其中,low和highcost表示当前档的最低分数和最高相似度,len表示当前档的分数范围长度,cost表示序列的相似度。
[0061]
综上,本发明通过创新性地将人工智能技术与中医康复医学相结合,实现针对脊柱退行性病变患者的智能康复辅助训练系统。包括:(1)基于深度学习的中医导引术视频实时分类模型:通过openpose获取的二维人体骨架数据作为深度学习模型的训练数据,进行有监督深度学习训练,得到泛化的深度学习模型,然后通过openpose隔帧检测结合稀疏光流追踪对视频进行实时预处理,结果作为输入馈入预训练的深度学习模型中,得到实时分类结果;( 2)基于人体骨架表示的视频序列划分与评估:基于上述的实时分类结果,对相同类别的骨架序列进行分割与纠错,并对分割好的子序列进行评分。其中,评分过程通过动态时间规整算法,将子序列与专家组视频序列进行比对,计算视频相似度并转换为百分制评分;纠正过程通过二维骨架数据和分类结果,在每一个动作根据二维骨架数据的特征预先定义提醒信息,并在符合预定义特征条件时通过语音播报的形式对患者进行提醒。实验表明,本发明中提出的实时分类模型在准确率和速度性能上实现了很好的平衡,并且基于此分类模型的针对脊柱退行性病变的智能康复辅助训练系统具有很高的应用价值。
[0062]
本发明将人工智能技术应用到中医导引术康复训练领域,通过自动地引导患者在调神和调息基础上的肢体活动,促进肢体运动功能恢复。本发明通过计算机视觉、深度学习等技术,能够在患者进行中医导引术训练的过程中,实时地识别、评估患者动作姿势的准确性,通过语音提醒的形式及时给予纠正,并且在患者训练结束后根据训练过程和专家组动作对比的结果对患者的训练进行评分。本发明针对脊柱退行性疾病缓解期的患者设计的智能康复辅助训练系统,无需医护人员的指导和干预,能够使患者随时自行进行中医导引术训练,适用于家庭及基层医疗卫生机构,能够大大减轻医护人员的压力,提高患者康复训练的灵活性和准确性。
附图说明
[0063]
图1为本发明的总流程框图。
[0064]
图2左为openpose中body_25数据集的关节点示意图,右为本发明中分类方法中将25 个关键点划分为8部分肢体的示意图。
[0065]
图3为本发明中层次肢体注意力lstm网络的架构图,从左到右分为四个模块:视角转换模块、身体级别模块、肢体注意力模块、肢体级别模块。
具体实施方式
[0066]
本发明中,中医导引术动作实时分类模型结构(层次肢体注意力lstm网络)如图3所示,其中输入骨架经过预处理后,仅包含25个关键点的二维坐标信息,如图2所示,其中每段骨架序列可以表示为其中t=1000,j=25,分别代表骨架序列的时间长度和骨架的关键点数据。
[0067]
原始骨架序列数据经过包括平移、归一化和零填充的预处理过程后,被输入到层次肢体注意力lstm中进行分类,最终输出骨架序列每一帧的分类分数。
[0068]
本发明的实施包括两个部分:分类模型(层次肢体注意力lstm网络)的训练和智能康复辅助训练系统的实现,其中具体实施流程如下:
[0069]
(1)数据集的准备
[0070]
由于本发明独特的应用性,我们使用自己收集的脊柱康复功法数据集(rdsd:针对
脊柱退行性病变的康复动作)进行实验。rdsd由9个动作类别(8个功法动作和站立动作)共1012段视频组成,其中每段视频的平均长度为18.4秒(每秒30帧)。所有视频经过左右镜像翻转作为数据增强,最终按照75:25的比例被划分为训练集和测试集。
[0071]
(2)数据预处理
[0072]
对于本发明提出的rdsd数据集,通过开源多人姿态骨架代码工具库openpose
1.进行二维姿态估计提取出骨架序列,其中骨架序列的每一帧由25个关键点的二维空间坐标组成。
[0073]
本发明以每一段骨架序列为基准,对数据集进行预处理,其中包括平移、归一化和零填充三步:首先进行平移操作,将骨架序列的所有帧的所有坐标减去第一有效帧的臀中坐标;然后进行归一化操作,计算骨架序列所有帧的平均双肩距离ds,然后对骨架序列所有帧的坐标进行缩放,缩放系数为最后进行零填充操作,在不足1000帧的骨架序列后填充全零,对超过1000帧的骨架序列进行截取,保证所有骨架序列的时间长度为1000 帧。
[0074]
(3)模型训练
[0075]
模型中的主要超参数有:训练条件、批次大小、学习率、丢弃率、lstm正交初始化乘法因子、最高迭代次数;
[0076]
本发明中,模型的超参数的设置如下:训练条件:单块gtx1070 gpu;批次大小:设置为64;学习率:初始学习率设置为0.005,使用reducelronplateau作为学习率调整策略,即若每10次迭代模型的验证损失值不下降,将学习率降低10倍;丢弃率:设置为0.1;lstm正交初始化乘法因子:设置为0.001;最高迭代次数:300,当模型的验证损失值不再下降并持续30次迭代后,提前终止训练,训练总次数一般在100次以上;
[0077]
(4)实验结果
[0078]
为了研究分类网络(层次肢体注意力lstm网络)中各模块的有效性,本发明对比添加/未添加各个模型与基线网络之间的对比实验。其中基线网络为rnns,由三层 lstm+dropout组成;hrnns表示网络由一层肢体级别(limb-level)lstm+dropout和两层身体级别(body-level)lstm+dropout组成;vt-rnns对比rnns添加了如图3所示的视角转换模块(view-transformation module);vt-hrnns对比hrnns添加了如图3所示的视角转换模块(view-transformation module);vt-hrnns-att对比vt-hrnns添加了如图3所示的肢体注意力模块(limb-attention),即为本发明的层次肢体注意力 lstm网络。从表2可以看出,采用层次结构(添加limb-level)相比全部采用身体级别 (body-level)lstm在测试准确率上提升了1.22%,视角转换模块的添加在测试准确率上提升了1.04%,肢体注意力模块的添加在测试准确率上提升了2.41%,这说明了本发明中层次肢体注意力lstm网络中各个模块的有效性。
[0079]
表格2,本发明层次肢体注意力lstm网络在rdsd数据集上各模块消融实验
[0080]
网络结构训练准确率测试准确率rnns(baseline)95.30%92.01%hrnns96.30%93.23%vt-rnns95.43%93.05%vt-hrnns96.06%92.93%
vt-hrnns-att96.64%95.34%
[0081]
(5)智能康复辅助训练系统的实现
[0082]
本发明中的智能康复辅助训练系统包括以下四部分的功能:基于0penpose[1]隔帧检测结合稀疏光流追踪的骨架序列实时获取和分类、骨架序列的分割与实时纠错和骨架序列段的评分,如图1所示。
[0083]
系统从普通二维rgb摄像机接收图像帧信号源,并实时获取骨架序列。具体地,通过每5帧运行一次openpose
1.二维姿态估计,并根据得到的25个人体关键点二维坐标,通过lucas-kanade稀疏光流追踪法得到接下来4帧的人体关键点二维坐标。
[0084]
每获取到最新的10帧人体骨架序列,运行一次本发明中的分类网络(层次肢体注意力lstm网络),得到这10帧序列的动作类别标签。具体地,对10帧人体骨架序列进行包括平移、归一化和零填充的预处理后,馈入到预训练好的层次肢体注意力lstm网络中,得到实时分类结果。注意,层次肢体注意力lstm网络从系统运行开始保持所有lstm单元的记忆状态,并每间隔30s清空一次记忆状态。
[0085]
对每一帧的骨架序列,根据其关键点二维坐标信息和该帧的动作类别,生成响应的文本纠错信息,提示患者当前进行功法的动作要点。具体地,本发明中为8种功法动作分别定义了不同的参考参数,如表格1所示,用来动态的计算生成文本信息,并通过语音播报的方式提醒用户。
[0086]
系统对所有分类好且尚未划分动作段的帧进行动态地管理,即动作段分割。具体地,根据当前最新的若干帧未分类的帧的动作类别确定动作段的类别,并且容忍最长100帧的动作类别不一致。
[0087]
对于分割好的动作段,系统根据其动作类别选择相应地提前加载的专家组视频骨架序列信息,并通过动态时间规整算法,计算当前动作段和专家组动作段之间的相似度距离,然后根据预定义的距离-分数转换规则,计算当前动作段的百分制评分。
[0088]
系统基于python3语言实现,其中主要使用tensorflow,opencv以及多进程处理等公开代码库,并以bs的方式在便携式min-pc上实时运行,对脊柱退行性病变患者康复训练具有很高的智能辅助应用价值。
[0089]
参考文献
[0090]
[1]caoz,hidalgog,simont,etal.openpose:realtimemulti-person2dposeestimationusingpartaffinityfields[j].ieeetransactionsonpatternanalysisandmachineintelligence,2018.
[0091]
[2]donaldjberndtandjamesclifford.1994.usingdynamictimewrapingtofindpatternsintimeseries.proceedingsoftheaaaiconferenceonartificialintelligence(aaai).359-370pages。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1