社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

智慧医疗研学社 | 使用数据科学和机器学习改进颈部损伤评估

MATLAB • 1 年前 • 159 次点击  
近三分之二的普通人一生中至少会受到一次颈部疼痛的影响。颈部疼痛已经成为日益严重的健康问题。引起这种疾病的常见原因可能包括挥鞭伤、头部受到重击或在工作时颈部姿势不良。例如,长时间弯腰驼背工作的专业人士,比如外科医生和牙医,经常会出现颈部疼痛。佩戴厚重防护头盔的人员,包括运动员、喷气式飞机驾驶员和消防队员,也可能面临颈部损伤的风险。
临床医生当前用于评估颈部损伤的许多方法都有明显的缺点,因为这些方法基于有主观性的运动范围观测值,这让衡量损伤程度或在治疗过程中跟踪进度变得很难。有些方法还需要例如将激光指针连接到患者头部等繁琐耗时的手动治疗程序,生成的还是主观结果。
本文的作者来自冰岛雷克雅未克大学和 NeckCare 公司。这个团队开发的软硬件有助于简化和自动化使用客观指标的颈部损伤临床评估。这项技术最初是由雷克雅未克大学研发的。目前正由初创企业 NeckCare 进一步开发成为商业产品。在创业早期,他们加入了 MathWorks 加速器计划。该计划使这个团队能够以折扣价享用 MATLAB® 并获得 MathWorks 工程师的支持,以帮助验证他们的技术。
这项技术依赖具有嵌入式惯性测量单元 (IMU) 的头盔,以及使用 MATLAB 开发的数据分析和机器学习算法。这些算法可处理来自 IMU(图 1)的信号,并生成颈部运动可量化的客观三维指标。通过将健康受试者的 IMU 传感器数据与挥鞭伤或脑震荡等患者的数据进行比较,它们还可以准确地对无症状病例进行分类,并识别那些受到颈部损伤常见病因困扰的人群。
让我们一起来聆听关于这个团队的分享,本文作者:Magnús Gíslason,冰岛雷克雅未克大学和 NeckCare 公司;Thorsteinn Geirsson,NeckCare 公司;Eythor Kristjansson,NeckCare 公司。
图 1. 颈部运动评估装置(左)和 IMU 头盔(右)。
蝴蝶测试介绍
通过将 IMU 头盔与 MATLAB 结合使用,我们可以执行各种评估,涵盖人体运动学的所有三个主要维度:运动范围、本体感觉(感知身体各部位运动和方向的能力)以及神经肌肉控制。其中,神经肌肉评估通常在诊断中最有价值,也最难以使用现有方法来定量执行。
为了评估个人的神经肌肉控制,我们发明了蝴蝶测试这一专用程序,并为其申请了专利保护。在这项测试过程中,受试者会佩戴我们的 IMU 头盔坐在计算机监视器前。按照指示,受试者需要目视跟踪监视器上一个点从难到易的三种不同运动轨迹的原则(图 2)。
图 2. 在难度为简单、中等和困难的蝴蝶测试中动点遵循的路径。速度随曲率而变化,因此,目标点的移动速度在直线段会加快,而在弯曲处会减慢。
在该测试过程中,当受试者的视线跟随动点移动时,IMU 会不断测量头部方向的变化(图 3:视频)。具体来说,它每秒会记录 60 次滚动、俯仰和偏转角,以及头部在这些维度的角速度和加速度。我们在 MATLAB 中使用统计方法和机器学习方法处理的就是这些记录的数据。

图 3. 一名受试者正在蝴蝶测试中跟踪动点。
统计分析和可视化
我们在 MATLAB 中开发的软件旨在客观地衡量受试者在蝴蝶测试中跟随动点时控制头部和颈部的能力。首先,该软件将 IMU 捕获的旋转角度投影到与监视器屏幕表面相重合的二维平面上。使用这种投影,它随后可将该动点的路径与受试者的跟踪行为生成的路径进行比较。通过绘制这些路径的叠加图,很容易就能看出无症状受试者和颈部受伤受试者的表现差异(图 4)。
图 4. 无症状和挥鞭伤受试者在蝴蝶测试中表现的可视化。
除了生成可视化,该软件还可计算若干个统计指标,以更好地量化无症状和有症状受试者之间的差异。其中一个关键指标是幅度准确度,即整个测试期间目标点和受试者控制的光标之间的平均差值。此外,该软件还可计算目标追随时间,即光标位于目标点上或目标点附近的时间百分比。其中包括滞后和超前,分别是指滞后或领先于目标点的时间比例。最后,该软件可计算运动的平滑度参数。该参数基于受试者轨迹空间坐标的三阶导数平方和的积分来量化抖动程度。在计算中,受试者轨迹空间坐标根据目标点轨迹空间坐标进行了归一化。
使用该软件进行的分析一致显示,对于几乎所有的计算指标,无症状受试者与挥鞭伤受试者之间都存在显著的统计学差异。通常,p 值小于 0.001(图 5)。
图 5. 无症状 (AB)、脑震荡 (CC) 和挥鞭伤 (WAD) 受试者的幅度准确度图。
机器学习分类
最近,我们一直在探索如何使用机器学习根据测试结果将受试者分为无症状、挥鞭伤或脑震荡类别。使用 Statistics and Machine Learning Toolbox™ 中的分类学习器,我们根据特定的数据集训练了各种机器学习模型。该数据集包含 15 个来自蝴蝶测试的变量、30 个来自运动范围测试的变量,以及 28 个来自头部/颈部复位测试的变量。在使用有限数据集训练了模型后,我们发现,朴素贝叶斯模型表现最佳,它对受试者的分类准确度高达或接近 100%(图 6)。
图 6. 分类学习器显示朴素贝叶斯模型与使用所有可用特征进行测试的其他模型的比较。
我们还使用了分类学习器的特征排名功能确定对分类最重要的特征(图 7)。利用此功能,我们发现仅基于前七个特征(使用方差分析 (ANOVA) 进行排名)的分类与基于所有特征的分类具有相同的准确度(图 8)。目前,我们正在扩展训练数据以包括更多受试者,同时还在开发各种模型,以根据受试者受伤的严重程度对他们进一步分类。
图 7. 分类学习器中的特征排名。
图 8. 分类学习器显示朴素贝叶斯模型与其他模型使用排名前七的特征进行测试的比较。
临床应用
我们正在积极致力于将此技术投入临床应用,以便于医生能够更好地治疗有颈部损伤的患者。目前,我们的头盔在美国国家食品与药品监督管理局备案注册为一类医疗设备。此外,我们将继续开发 MATLAB 算法,以支持越来越多的软件应用程序。其中一个应用涉及远程医疗和其他家庭保健解决方案。患者可以通过此类解决方案在家里使用我们的技术进行治疗性锻炼。另一个应用将用于评估运动员在头部受伤后是否仍适合参加比赛。该技术可能还用于验证挥鞭伤患者提出的保险和残疾索赔是否恰当。最后,我们计划扩大技术的应用范围,使其不仅用于评估颈椎,而且还用于评估人体的其他部位。

    ◆  

你和拯救人类之间可能只差一个无所不能的 MATLAB 了。点击“阅读原文”,进一步了解 MATLAB 的广泛应用,并申请免费试用。
一键关注 “MATLAB 智慧医疗研学社”,了解 MATLAB 在生物技术/医疗设备领域的最新支持案例。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/160720
 
159 次点击