脑PET图像分析和疾病预测挑战赛笔记

本项目为Datawhale Ai夏令营第三期cv赛题的个人理解与部分解析。

首先感谢DataWhale提供的学习机会,为其开源精神点赞,希望大家共同进步!

赛题链接如下:脑PET图像分析和疾病预测挑战赛

1.赛题介绍

赛题背景

脑PET全称为脑部正电子发射计算机断层显像(brain positron emission tomography PET),是反映脑部病变的基因、分子、代谢及功能状态的显像。它是利用正电子核素标记葡萄糖等人体代谢物作为显像剂,通过病灶对显像剂的摄取来反映其代谢变化,从而为临床提供疾病的生物代谢信息,为脑癫痫病、脑肿瘤、帕金森病、阿尔茨海默综合征等提供了有效的检测手段。可利用脑PET图像检测出轻度认知障碍病灶,并提前介入治疗,从而延缓发病,对后续患者康复治疗有着积极的意义。因此本赛题以轻度认知障碍为例对脑PET图像进行分析与疾病预测。

赛题任务

为研究基于脑PET图像的疾病预测,本次大赛提供了海量脑PET数据集作为脑PET图像检测数据库的训练样本,参赛者需根据提供的样本构建模型,对轻度认知障碍进行分析和预测。

脑PET图像检测数据库,记录了老年人受试志愿者的脑PET影像资料,其中包括确诊为轻度认知障碍(MCI)患者的脑部影像数据和健康人(NC)的脑部影像数据。

被试者按医学诊断分为两类:

NC:健康

MCI:轻度认知障碍

数据说明
本次大赛所用脑PET图像检测数据库,图像格式为nii。

评估指标
本次竞赛的评价标准采用F1_score,分数越高,效果越好。

2.解析比赛数据集

笔者有话说:对于接触一个比赛,大家往往将时间花在调参上面,调参固然重要,甚至我们所有人都是从“调参侠”走来的,但往往一个比赛,光会调参是远远不够的,还需要学会更多的打榜技巧,现分享一篇笔者常常拜读的文章,虽然是目标检测,却殊途同归,来自前人的经验之谈,这或许能带给大家更多的启发。

链接:【目标检测】从数据的角度深入解析比赛数据集的处理方法

好了,言归正传,回到我们的赛题上来。

nii文件

nii 文件是医学图像处理中经常使用的一种 NIFTI 格式图像,在此就不做太多解释,想要了解的小伙伴们详见:

医学图像处理——读取和解读NII文件

2.1分析图像尺寸

 可以看到数据集和测试集多达12种尺寸和对应的尺寸数据。

注:数据集中的 nii 文件包含四维数据:其中前三维确定某一个像素点的空间位置(大家可以把这个想象成一个长方体),第四维记录了该点的状态值(灰度)。

2.2脏数据

对于下列项目的数据集,它对上文的nii图像做了切片操作,举个例子(168,168,82,1)被切成了82个168*168的灰度图像(jpg格式),以此类推。

项目:​​​​​基于PaddleClas套件的脑PET图像分析和疾病预测挑战赛-baseline

但存在大量的脏数据(包括部分项目对nii图像进行随机50个切片),如下对比

正常数据(左1)与脏数据(左二、左三)对比:

 需要人为进行筛选,或者写个脚本进行像素点筛查也是可以的,这会对结果提升有一定帮助

3.一些尝试、猜测

 笔者针对该比赛进行了一些尝试,虽然没有较好的提高比赛成绩,但仍有一些想法想分享给大家

3.1 Resnet3D

可参见项目:基于ResNet3D的尝试-脑pet图像分析 - 飞桨AI Studio

介绍一下,

通常做图像分类使用的ResNet网络的卷积核一般只是在2D图像上做滑动窗口,计算特征图,卷积核的形状一般为[out_channel, in_channel, W, H]。而在视频分类任务中一般对网络输入的是视频中的一段序列,比如16帧或32帧,这样在原有WH维度上又增加了一个时间T的维度,卷积核的形状为 [out_channel, in_channel, T, W, H]。这时,卷积核不止在2D平面上滑动,还需要在第三个维度T上移动,提取帧之间的关联特征。这样就需要对2D的ResNet进行改造,将其改造为3D的ResNet网络。ResNet3D保持原有的ResNet的整体架构不变,替换每个block中的basicblock或bottleneckblock中的卷积核为Conv3D,同时池化层也需要替换为3D池化。

 由于Resnet3D已有在医学图像影像组学分析的先例,笔者故采取了尝试,采用了MedicalNet训练好的权重与3D类的一些数据增强手段等。

整体项目示意如下:

 下面是笔者的训练与评估情况,发现训练效果并不是太好,最后对测试集的测试也全为NC

 需要注意的是,由于本比赛训练和验证共50个(25个NC与25个MCI),为小样本数据集,仅需在预训练权重基础上进行微调,故笔者采取了较低的学习率;

此外,小样本数据集不需要过于复杂的网络,故本次测试采取了resnet18。

对于上述结果,笔者认为是由于数据集过小而导致的(训练集40个,验证集10个)。

思路

影像组学,常见的套路对影像图像的病灶进行勾画,制作mask文件。通过特征软件或者pyradiomics库对原始数据文件结合mask的范围,提取几百到几千不等的特征。然后通过统计学对特征进行筛选,然后通过机器学习对筛选后的进行建模,进行分类或者生存预测等任务。

每个原始数据都带有一个对应的mask数据。在输入3D分类模型前,为了让模型更好对病灶区域进行特征提取。根据mask文件对病灶区域进行裁剪,首先根据mask的范围对3D数据三个维度上进行裁剪。然后对裁剪后的数据非前景的区域用0进行填充(这是对磁共振数据的处理,假如是CT数据应该设置窗宽窗位,然后缩放到0~255,再对背景填充0),这样得到的数据只有前景的信息。

 这项措施个人认为能较好的提升最后的结果,当然你首先需要是一位专业人员,才能对此进行标注,详见此链接1.4部分,这是来自夏令营其他小伙伴的分享链接Docs

当然,笔者也是站在了巨人的肩膀上,如果有兴趣尝试resnet3D的小伙伴可以参考以下两项目:

1.ResNet3D论文解读与复现 - 飞桨AI Studio

2.使用ResNet3D加载医学图像预训练权重进行影像组学分析 - 飞桨AI Studio

3.2  CNN 2D

 可参见项目:基于PaddleX的尝试-脑pet图像分析 - 飞桨AI Studio

由于笔者在Datawhale夏令营二期cv赛题采用的resnet50_vd_ssld取得了相对不错的结果,故一开始对采用了此模型,训练结果如下

这个训练结果看起来是相当不错的,(训练acc1与评估acc1都接近于1)但测试效果却不佳,约为0.6,笔者一开始认为是过拟合了,于是降低了轮数为10轮,测试效果仍不佳。但至少测试集的NC和MCI的分布相对比较均匀(对标全NC的0.74)

笔者对测试集的数据进行了查看,发现15个已知label的图像对了14个(后续嘉诺大佬会进行分享),可见模型训练效果还是可以的,测试效果不好的话,个人猜测一部分原因是训练集与测试集图像存在一定差距,还有一部分原因来自于比赛的F1-score上面。

测试集的结果是由测试集的nii图像切片产生的图像进行预测而投票产生的,笔者先后尝试了对高置信度的预测结果进行保留而后进行投票对不同置信度的预测结果进行加权计算而后投票,测试与原结果差距较小,100个中约有1-2个不同,大家可以进行尝试。

4.一些想法

这些都是笔者认为可能有用但未尝试的思路,现分享给大家。

4.1F1-score的思考与测试集分布

4.1.1

在分类模型中,我们经常会遇到两类问题:

  第一种是误分类的代价很高。比如对合法用户和非法用户进行分类,将非法用户分类为合法用户的代价很高,我们宁愿将合法用户分类为非法用户,这时可以人工再甄别,但是却不愿将非法用户分类为合法用户。这时,我们可以适当提高非法用户的权重。

  第二种是样本是高度失衡的,比如我们有合法用户和非法用户的二元样本数据10000条,里面合法用户有9995条,非法用户只有5条,如果我们不考虑权重,则我们可以将所有的测试集都预测为合法用户,这样预测准确率理论上有99.95%,但是却没有任何意义。这时,我们可以选择balanced,让类库自动提高非法用户样本的权重。

在这项分类比赛中,F1-score的计算恰恰满足了上述第一种分类模型,不同的是,我们将合法用户(NC)预测为非法用户(MCI)代价很高,我们宁愿将非法用户全分类为合法用户(全NC 0.74的情况),可见训练权重需要偏向NC。

4.1.2

相信很多人都发现了,0.74214的全NC数据,根据F1-score公式推断,可以得出测试集有59个NC,有41个MCI,大家可以在训练时偏向NC给予权重

4.1.3

类型权重参数: class_weight
  class_weight
参数用于标示分类模型中各种类型的权重,可以不输入,即不考虑权重,或者说所有类型的权重一样。如果选择输入的话,可以选择balanced让类库自己计算类型权重,或者我们自己输入各个类型的权重,比如对于0,1的二元模型,我们可以定义class_weight={0:0.1, 1:0.9},这样类型0的权重为10%,而类型1的权重为90%。大家可自行查阅资料.

4.2 站在前人的肩膀上

如下链接:科大讯飞2020脑PET图像分析和疾病预测---单模型进决赛前五_脑pet图像分析和疾病预测挑战赛_Li.JJ的博客-CSDN博客

我们ai学习可以站在他人的肩膀上,前辈们给出了一些策略供大家尝试

其中的(1)自适应裁剪填充
           (2)迭代微调交叉验证

等一系列策略是非常优秀的思路,大家可以加以尝试。

最后的话

笔者水平有限,若存在不足之处,还请多多见谅。

ai学习需要多看多学多试,前人的思路值得大家学习尝试,须知不可闭门造车。

最后仍感谢DataWhale提供的学习机会,望大家共同进步!

    

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2020年科大讯飞pet图像分析疾病预测比赛吸引了众多来自全国各地的优秀选手参与,其中脱颖而出的三支队伍值得一提。 第一名队伍:团队名称“智拍医生”。他们凭借精湛的图像分析疾病预测技术,以及出色的团队协作能力,在比赛中获得了第一名的成绩。他们利用深度学习框架和大量的训练数据,成功设计出一套高效准确的pet图像分析算法,能够快速识别和定位疾病相关区域。同时,他们还应用多种机器学习算法,通过对大量数据的模式分析和特征提取,开发出了一套可靠的疾病预测模型。 第二名队伍:团队名称“尖叫壁纸”。他们队伍由一群年轻的学生组成,展现了惊人的创造力和实验精神。他们基于深度学习网络构建了一个高效的pet图像分析模型,并成功实现了脑部异常区域的自动分割和分类。此外,他们还结合了医学图像处理和人工智能算法,设计出一套智能辅助诊断系统,能够帮助医生快速准确地预测和诊断疾病。 第三名队伍:团队名称“智能AI”。他们队伍由一群经验丰富的研究人员组成,他们的团队在前沿的图像分析和医学影像处理领域具有深厚的技术积累。他们通过大量的pet图像数据和医学知识,结合机器学习和深度学习技术,开发了一套快速准确的pet图像分析疾病预测算法。他们的团队成员分工明确,高效协作,充分发挥了各自的专业优势,取得了令人瞩目的成绩。 可见,这三支队伍在科大讯飞pet图像分析疾病预测比赛中表现出色。他们的创新思维、技术实力和团队合作精神为医学影像处理和疾病诊断领域带来了新的突破和进步。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值