头颅CT扫描分析在脑出血诊断中的应用
参赛队:丹·奥伦、罗伊·法斯勒、布莱恩·特罗布和我Dan Oren Roy Fassler Brian Troib myself
医疗问题
我们的解决方案
数据
我们根据有或没有颅内出血患者的CT扫描组成的临床数据来训练我们的模型。
- 共82例,其中颅内出血36例/正常46例。平均每个患者30个CT切片。
- 人口统计:样本年龄范围为0-72岁。46名男性/36名女性。
数据来源:下载(103MB)Download (103 MB)
数据科学面临的主要挑战
- 数据集不平衡的事实首先给我们提供了非常高的准确率(90%)的结果,但是数据集有82%的基线(这意味着82%的图像是没有任何出血的患者的图像)。因此,我们决定应用数据增强技术来人为地平衡我们的数据集。
- 结果在使用深度学习算法时,可解释性可能会有问题。我们使用Shap来可视化哪些像素(即特征)被模型加权为重要。我们没有想到在训练过程中,算法会考虑到图像中不存在头部的某些部分(因此,在像素不应该相关的地方)。
- 过度拟合模型,这是使用神经网络时常见的诅咒。
方法论
- 我们通过使用图像并对其应用90°旋转来执行数据增强以平衡我们的数据集。
- 我们将图像和蒙版的大小调整为224×224,以降低要素的高维。
- 我们将数据集分成训练集和测试集,然后将剩余的训练数据分成80%的训练集和20%的验证集。
- 我们使用不同的模型对图像进行分类:线性支持向量机(SGD)和多卷积神经网络(CNN)。
- 我们使用Shap对我们的结果进行分析和解释。
数据增强和预处理
Train 0 after aug: 4239
Train 1 after aug: 4668
Test 0 after aug: 1251
Test 1 after aug: 1267
→在增加出血病例的数据集后,我们获得了新的基线,48.1%的图像被归类为出血病例。
使用的型号
当我们处理已经标记的数据时,我们将使用有监督的学习算法。
在拆分新的平衡数据集后,我们开始使用第一基本模型:使用随机梯度下降(SGD)批量拟合的线性支持向量机。
在对CT扫描分析进行了深入的论文研究后,我们已经看到许多研究人员使用已知的CNN架构,无论是预先训练的模型还是非预先训练的模型,都取得了最好的结果。
因此,我们首先训练了一个9层的CNN模型。我们还在结构中增加了退出层,以减少过度匹配。
最后,我们决定在一个更复杂的预先训练的模型上使用迁移学习:Resnet50。Resnet50是在ImageNet数据集上预先训练的50层CNN模型。ImageNet
结果
使用的损失函数:二进制交叉熵测试集上达到的精度/损失水平:
- 模型基线:51.9%(我们的数据增强后数据集中的出血量表示法)
- 线性支持向量机:51%
- CNN:62%
- 美国有线电视新闻网辍学率:65%
- 重置50:61%
此外,为了检测患者是否患有脑出血,我们训练的模型提供了有趣的信息,即图像的哪个区域(即图像像素)是最重要的检测区域。这些区域被专科医生认为是应该首先观察的区域,因为脑出血通常发生在壳核(50%)或丘脑(15%)、大脑(10-20%)、小脑(10-13%)、桥脑(7-15%)或脑干的其他部位(1-6%)。putamen
通过使用Shap,我们理解的另一个有趣的信息是,图像外边缘中的一些像素是预测中具有较强权重的特征。然而,大脑本身并不在这个区域,这意味着它应该与我们的出血分类问题无关。我们可以假设这很可能是因为那个地区的CT设备出了故障。
结论
我们的在线预测工具是一个概念证明(POC),即计算机视觉可以用来构建工具,使医生能够在诊断脑出血时提供更快、更准确的诊断。
下一步是什么?
本文仅对使用计算机视觉辅助医生进行医疗诊断的全部潜力进行了预览。随着更多的数据和训练时间的增加,我们展示的结果可能会有很大的改善。
其他值得探索的领域:
- 颅内出血的自动分类(脑室内、实质内、蛛网膜下腔、硬膜外和硬膜下)
- 研究如何使用过滤器对CT扫描进行预处理,以避免像我们在可解释性部分中看到的那样,对大脑通常不在的位置进行过高的像素加权。
- 调整用户界面以显示预计出血的大脑区域(最重要的模型功能)
感谢您的阅读。如果您需要更多细节,请随时与我们联系!
代码:如果您想仔细看看我们的工作,请访问我们的Github资源库Github
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/07/17/%e8%ae%a1%e7%ae%97%e6%9c%ba%e8%a7%86%e8%a7%89%e5%a6%82%e4%bd%95%e6%8f%90%e9%ab%98%e5%8c%bb%e7%94%9f%e5%af%b9%e9%a2%85%e5%86%85%e5%87%ba%e8%a1%80%e7%9a%84%e8%af%8a%e6%96%ad%ef%bc%9f-2/