发明名称 一种基于深度数据的癫痫发作监控方法及系统
摘要 本发明公开一种基于深度数据的癫痫发作监控方法及系统,其方法是:用深度传感器获取癫痫患者数据源,通过各关节点合加速度阈值分析,判断患者是否可能癫痫发作。利用光流法进行关节点轨迹跟踪,然后计算采样点速度实现特征提取,获得可以有效描述患者癫痫发作时四肢剧烈颤动的特征,采用支持向量机分类方法识别当前患者是否癫痫发作。如果识别出患者癫痫发作,由扬声器发出报警声音,LED闪烁报警灯光,并通过GSM和4G移动通信自动发送短信或邮件通知家属。系统包括:深度数据采集模块、预分析模块、识别模块、数据存储模块、报警模块。本发明能准确及时地监测出癫痫发作时患者四肢颤动,且不易受光照等环境变化影响,检测速度快,具有较好的鲁棒性。
申请公布号 CN105760861A 申请公布日期 2016.07.13
申请号 CN201610190168.2 申请日期 2016.03.29
申请人 华东师范大学 发明人 邱崧;刘莹莹;孙力;蔡茗名;李庆利;周梅;凌佩佩;贝璟
分类号 G06K9/00(2006.01)I;G06K9/62(2006.01)I;A61B5/00(2006.01)I 主分类号 G06K9/00(2006.01)I
代理机构 上海蓝迪专利商标事务所(普通合伙) 31215 代理人 徐筱梅;张翔
主权项 一种基于深度数据的癫痫发作监控方法,其特征在于该方法包括以下具体步骤:第一步,获取癫痫发作数据集用深度传感器分别采集数名患者测试员在站立、躺下两种初始状态下发病抽搐过程的动作片段,每个片段包含连续60帧深度图像,分别得到患者测试员站立、躺下两种初始状态发病抽搐的数据集;第二步,提取特征向量(1)空间关节点提取分别从患者测试员站立、躺下两种初始状态发病抽搐的数据集的深度图像中提取患者测试员空间骨架的20个空间关节点,选取其中的12个空间关节点作为四肢运动的表征,并提取12个空间关节点的深度坐标;所述12个空间关节点包括左手肘、左手腕、左手、右手肘、右手腕、右手、左膝、左脚踝、左脚、右膝、右脚踝、右脚;(2)获取初始特征向量将12个空间关节点的深度坐标实时变换到以深度传感器作为坐标原点的三维空间坐标;采用光流法对当前时刻12个空间关节点进行跟踪,得到与空间关节点对应的12条固定时间间隔的轨迹,用高斯平滑滤波器进行轨迹平滑处理;对每条轨迹以相同的时间间隔进行采样;设i关节点在一定时序下形成的轨迹是T<sub>i</sub>,每条轨迹上采集n个点,经过坐标实时变换后该轨迹表示为T<sub>i</sub>={(x<sub>1</sub>,y<sub>1</sub>,z<sub>1</sub>),(x<sub>2</sub>,y<sub>2</sub>,z<sub>2</sub>),...,(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>),...,(x<sub>n</sub>,y<sub>n</sub>,z<sub>n</sub>)};在t时刻i关节点沿x,y,z方向的速度为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>V</mi><mi>x</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>t</mi></msub></mrow><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt></mfrac></mrow>]]></math><img file="FDA0000953254550000011.GIF" wi="864" he="127" /></maths><maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><msub><mi>V</mi><mi>y</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>y</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>t</mi></msub></mrow><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt></mfrac></mrow>]]></math><img file="FDA0000953254550000012.GIF" wi="867" he="132" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>V</mi><mi>z</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>z</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>t</mi></msub></mrow><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt></mfrac></mrow>]]></math><img file="FDA0000953254550000013.GIF" wi="869" he="135" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>V</mi><mo>=</mo><msqrt><mrow><msup><msub><mi>V</mi><mi>x</mi></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>V</mi><mi>y</mi></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>V</mi><mi>z</mi></msub><mn>2</mn></msup></mrow></msqrt></mrow>]]></math><img file="FDA0000953254550000014.GIF" wi="404" he="94" /></maths>将12条轨迹上的n个采样点的瞬时速度组成的集合作为初始特征向量;对每个患者测试员重复该步骤,分别得到与患者测试员站立、躺下两种初始状态发病抽搐的数据集对应的全部初始特征向量;第三步,字典学习按照稀疏编码的训练过程将第二步的两种初始特征向量进行分别聚类,生成基底向量,构成两类稀疏字典;第四步,支持向量机SVM分类器训练(1)生成稀疏向量对两类稀疏字典分别进行稀疏编码,生成稀疏向量;(2)稀疏向量的最大值合并对稀疏向量使用最大值合并算法,保留稀疏向量集合中每一维的最大绝对值,即保留最能反映局部运动剧烈程度的全局视频特征;(3)SVM分类器训练用上述经过第四步(2)最大值合并算法的全局视频特征训练SVM分类器,得到站立和躺下两种初始状态下的分类器1和分类器2;第五步,确定癫痫发作预判断的阈值范围用深度传感器分别采集若干癫痫发作和其他日常活动动作的深度图像片段;提取每一帧深度图像中12个空间关节点的三维坐标,由当前帧和相邻帧各关节点的三维空间坐标,计算各关节点的合加速度;合加速度的计算如下,以X方向为例V<sub>t</sub>=(x<sub>t+1</sub>‑x<sub>t</sub>)×f<sub>T</sub>V<sub>t‑1</sub>=(x<sub>t</sub>‑x<sub>t‑1</sub>)×f<sub>T</sub>a<sub>x</sub>=(V<sub>t</sub>‑V<sub>t‑1</sub>)×f<sub>T</sub>其中,f<sub>T</sub>为深度传感器的采集频率;合加速度<img file="FDA0000953254550000021.GIF" wi="425" he="111" />按照上述方法取每一个深度图像片段12个空间关节合加速度最大值和最小值,并将其作为癫痫发作和其他日常活动的二分类训练样本,其他日常活动不包括跑、跳。不同关节点各自通过SVM分类的方法得到区分癫痫发作和其他日常活动动作的加速度最大值和最小值的阈值,将阈值范围设成SVM计算出的最大值的1.5倍和最小值的1/2;第六步,获取被监测癫痫患者数据集将深度传感器正对患者进行实时监测,获取癫痫患者的动作片段,每个片段包含连续60帧深度图像;第七步,癫痫发作预判断(1)空间关节点提取从上述被监测癫痫患者数据集的深度图像中提取患者空间骨架的20个空间关节点,选取其中的12个空间关节点作为四肢运动的表征,并提取12个空间关节点的深度坐标;所述12个空间关节点包括左手肘、左手腕、左手、右手肘、右手腕、右手、左膝、左脚踝、左脚、右膝、右脚踝、右脚;(2)癫痫发作预判断将12个空间关节点的深度坐标实时变换到以深度传感器作为坐标原点的三维空间坐标;由当前帧和相邻帧各关节点的三维空间坐标,计算各关节点的合加速度;如果当前时刻各关节点合加速度超过第五步设定的阈值范围,则判定患者有可能癫痫发作;第八步,判断患者的初始状态建立以人为中心的三维坐标系,选取关节点中的中臀、左臀、右臀、腰4个关节点,以左臀、右臀2个关节点确定x轴,以腰、中臀2个关节点确定y轴,即可确定坐标原点和xoy平面;再通过原点以xoy平面的法线方向建立z轴;对比以深度数据采集装置为原点的三维坐标系与人体坐标系的z轴,判断此时患者是站立还是躺下的状态,从而选择第四步与初始状态对应的分类器1或分类器2;第九步,提取被监测癫痫患者特征向量(1)获取初始局部特征向量采用光流法对当前时刻12个空间关节点进行跟踪,得到与12个空间关节点对应的12条固定时间间隔的轨迹,用高斯平滑滤波器进行轨迹平滑处理;对每条轨迹以相同的时间间隔进行采样;设i关节点在一定时序下形成的轨迹是T<sub>i</sub>,每条轨迹上采集n个点,经过坐标实时变换后该轨迹可以表示为T<sub>i</sub>={(x<sub>1</sub>,y<sub>1</sub>,z<sub>1</sub>),(x<sub>2</sub>,y<sub>2</sub>,z<sub>2</sub>),...,(x<sub>i</sub>,y<sub>i</sub>,z<sub>i</sub>),...,(x<sub>n</sub>,y<sub>n</sub>,z<sub>n</sub>)};在t时刻i关节点沿x,y,z方向的速度为<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>V</mi><mi>x</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>t</mi></msub></mrow><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt></mfrac></mrow>]]></math><img file="FDA0000953254550000031.GIF" wi="870" he="127" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>V</mi><mi>y</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>y</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>t</mi></msub></mrow><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt></mfrac></mrow>]]></math><img file="FDA0000953254550000032.GIF" wi="870" he="127" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>V</mi><mi>z</mi></msub><mo>=</mo><mfrac><mrow><msub><mi>z</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>t</mi></msub></mrow><msqrt><mrow><msup><mrow><mo>(</mo><msub><mi>x</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>x</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>y</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>y</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msup><mrow><mo>(</mo><msub><mi>z</mi><mrow><mi>t</mi><mo>+</mo><mn>1</mn></mrow></msub><mo>-</mo><msub><mi>z</mi><mi>t</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow></msqrt></mfrac></mrow>]]></math><img file="FDA0000953254550000033.GIF" wi="870" he="127" /></maths><maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><mi>V</mi><mo>=</mo><msqrt><mrow><msup><msub><mi>V</mi><mi>x</mi></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>V</mi><mi>y</mi></msub><mn>2</mn></msup><mo>+</mo><msup><msub><mi>V</mi><mi>z</mi></msub><mn>2</mn></msup></mrow></msqrt></mrow>]]></math><img file="FDA0000953254550000034.GIF" wi="405" he="94" /></maths>将12个空间关节点轨迹上的n个采样点的瞬时速度组成的集合作为初始特征向量;采用滑动时间窗口的形式储存表示当前时刻的初始特征向量,随时间窗口移动,更新存储的数据;(2)生成稀疏向量采用与初始状态相对应的稀疏字典对第九步(1)得到的初始特征向量进行稀疏编码,生成稀疏向量;(3)稀疏特征的最大值合并对稀疏向量使用最大值合并算法,保留稀疏向量集合中每一维的最大绝对值,得到最终的特征向量;第十步,癫痫发作识别将第九步(3)获取的最终特征向量放入第四步所得的SVM分类器,识别患者是否癫痫发作;第十一步,癫痫发作时做出响应当识别出患者此时癫痫发作时扬声器发出报警声音,发光模块产生报警灯光;并通过GSM和4G移动通信自动发送短信或邮件通知家属。
地址 200241 上海市闵行区东川路500号