欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

CV竞赛项目研究:脊柱疾病诊断(天池,GPU赛道,2020年9月)

发布时间:2023/11/27 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 CV竞赛项目研究:脊柱疾病诊断(天池,GPU赛道,2020年9月) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

目录

0 总的感受

当前阶段,竞赛还是2个关键:

get点:

1 简介

1.1 需求

1.2 数据集

1.2.1 MRI数据

第6名:“我是一个搬砖工”,南加州、上交大,2人。

1. 赛题背景分析及理解

2. 核心思路

- 目标检测

- 目标分类

3. 比赛总结

第5名(初赛第1名):小团子队,华南理工大学,1人

问题建模

数据处理

模型方法(两个模型都没改造)

目标检测:

目标分类:

模型融合

第4名:(视频)浙大睿医队,浙大,4人

数据分析

整体方案

实验结果

总结

第3名:shiontao团队,深圳大学,1人(有指导教授)

1.问题分析

2.数据处理

3.核心思路

3.1方案介绍

3.2实验结果

3.3算法效率

3.4方案总结与展望

4.比赛经验总结和感想

第2名:triple-Z团队,北大,3人

1 赛题分析

1.1 赛题回顾

2 模型方法

2.1 模型整体框架

2.2 neck模块细节

2.3 关键点粗定位

2.4 关键点细回归

2.5 关键点分类

2.6 损失函数

2.7 推理过程

2.8 其他一些小技巧

2.9 模型融合

3 实验结果

3.1 复赛成绩及模型性能测试

3.2 定位模型与主流模型的性能对比

4 总结及展望

4.1 可行性讨论

4.2 总结

4.3 展望

5 核心代码

6 比赛经验总结及感想

7 参考资料

第1名:deep thinker团队,东北、华南理工、北京妙医佳,3人

赛题理解

赛题难点

核心思路

算法模型

实验数据

总结:


0 总的感受

当前阶段,竞赛还是2个关键:

  1. 不管是什么比赛,对于数据的理解是最重要的(预处理)
  2. 2020年目标检测竞赛主流baseline基本是:Faster RCNN / cascade R-CNN(X-101) + FPN +  DCN(当然YOLO5也顶尖)

get点:

  1. 训练时,验证集Loss可以作为训练集Loss一部分。
  2. 数据集少时,想到有交叉验证方法(使得模型更稳定)。
  3. 深度学习什么叫玩的出神入化?自己设计输入数据结构、自己设计网络结构、自己设计输出数据结构、自己设计损失函数。(见第2名方案)

1 简介

官网:https://tianchi.aliyun.com/competition/entrance/531796/information

总决赛视频:https://tianchi.aliyun.com/course/video?spm=5176.12282027.0.0.7436379cBPqjCb&liveId=41212

1.1 需求

通过给定的少量数据集,利用算法来定位椎体和椎间盘的位置,并做7分类。

1.2 数据集

初赛阶段将提供150份可下载的标注训练数据,以及50份可供下载的测试数据。复赛阶段将提供250份标注的训练数据,和100份测试数据,复赛阶段的数据不可下载,模型的训练的评测将在阿里云EMR平台内进行,数据不可离开平台。

1.2.1 MRI数据

MRI数据比赛中将提供脊柱的核磁影像包括T1和T2 矢状面影像,以及T2 轴状位影像(FSE/TSE)

椎体和椎间盘的代表点会在T2矢状位的中间帧中标注出来,标注将从胸12(T12)腰1(L1)间的椎间盘开始到腰5(L5)骶1(S1)间的椎间盘结束,其中椎体的段位和椎间盘的段位将分别给出,如L1,L2,等。椎体将分成2类:正常和退行性病变,椎间盘分成5类:正常,膨出,突出,脱出,椎体内疝出。标注样例如图2. 病变编码对应表如下所示:

椎体
编码中文英文
V1正常Normal
v2退行性改变Degeneration
椎间盘
编码中文英文
V1正常Normal
V2膨出Bulge
V3突出Protruded
V4脱出Extruded
V5椎体内疝出Schmor

位置标注可视化后示意图如下:

第6名:“我是一个搬砖工”,南加州、上交大,2人。

1. 赛题背景分析及理解

本次挑战的目标是通过人工智能算法自动分析核磁共振影像来检测和分类脊柱的退行性改变,包括正常椎体、退变椎体、正常椎间盘、椎间盘突出、膨出等特征。比赛的数据量有限,线下的训练集150例,验证集51例,测试集50,所以不足以训练fast-rcnn为基础的检测网络。

2. 核心思路

此次脊柱疾病智能诊断可以分为两个部分:目标检测和目标分类,对应的可以分两步来解决:

  • 第一步,定位椎体和椎间盘的位置,即检测任务;
  • 第二步,根据位置预测其对应的分类,即分类任务。 

拆分成两步的好处是,可以分别针对每一步进行优化。并且检测相对简单,可以在保证检测准确率的基础上,更有针对性地努力提升分类的准确率。实验结果也证明此策略的有效性,我们提出的方法检测率可以达到0.97。所以比赛的难度主要集中在第二步分类任务上。

- 目标检测

由于样本量有限,很难直接训练网络回归目标坐标点,而且容易过拟合。我们采用的解决方法是基于分割来做检测,如图1所示。根据椎体和椎间盘的坐标点生成右图所示的分割mask。用生成的分割mask来训练分割网络。此方法的好处有:

  • 1)由于mask不是完全准确,因此避免了过拟合;
  • 2)生成的mask可以当做attention map作用于第二步的分类任务。

目标检测流程图:

为了提升检测的准确度,我们提出了三点创新:

  • 1)将x,y坐标位置编码作为网络输入,提供目标区域的先验;
  • 2)融合分割网络和回归网络,回归网络用于限制椎体和椎间盘相对位置;
  • 3)采用cascade策略,提出双回归网络进一步提升目标检测结果。最后利用形态学方法提取区域中心点作为目标位置。

- 目标分类

在第一步目标检测的基础上,根据目标坐标提取图像块,然后对图像块进行分类。我们采取双网络来实现多标签的分类。编码1和编码2分别如表1和表2所示。(ym:V5可能是V1~V4中的一种情况,所以单独用编码2来分类以此提升精度)

            

目标分类的流程图如图3所示。针对目标分类,我们提出了三点创新:

  • 1)利用分割mask作为attention map和图像块一起输入分类网络;
  • 2)利用矢状位和轴状位图像共同预测;
  • 3)采用多尺度的方法为椎体和椎间盘分别提取有效特征。

3. 比赛总结

- 方法总结

  1. 数据样本量有限,难以直接回归目标坐标,采用基于分割的模型来预测坐标;
  2. 利用分割模型+双回归模型约束,可以提升预测坐标的准确性;
  3. 第一步中的分割结果作为attention map,输入到分类网络的输入;
  4. 采用矢状位和冠状位同时作为分类网络的输入;
  5. 根据前景目标的不同,采用不同的尺度提取图像块;
  6. 只采用了单一的模型,没有进行模型堆砌(多模型融合策略)

- 细节总结

  1. 数据增强很重要,防止过拟合;
  2. 实验参数选择需谨慎,如裁剪图像块的大小, 训练迭代次数(过多容易过拟合,过少则无法达到最优);
  3. 融合医生诊断时的经验,针对性地设置ROI的提取。

第5名(初赛第1名):小团子队,华南理工大学,1人

问题建模

分为两部分建模,一部分是椎体和椎间盘的定位问题,即对5个椎体L1、L2、L3、L4、L5和6个椎间盘T12-L1、L1-L2、L2-L3、L3-L4、L4-L5、L5-S1,共11个位置的定位。另一部分是椎体、椎间盘相应的分类问题。其中,椎间盘的v5类–许莫氏结节是指椎体的软骨板破裂,髓核可经裂隙突入椎体内,造成椎体内出现半圆形缺损阴影。在T2矢状面影像上是位于每个椎体的上下表面,而椎间盘的v1-v4类位于椎体与椎体间的侧面,两者图像上的感兴趣区域不同,因此分别对v1-v4类和是否v5类进行图像分类。

数据处理

模型方法(两个模型都没改造)

目标检测:

采用 HigherHRNet作为椎体、椎间盘关键点提取的模型框架。

目标分类:

采用 se-resnext50 作为病变图片分类训练的模型框架。

模型融合

由于数据集存在数据量少,有些病变较难区分,如v2和v3,导致标签存在一些不准确的情况;而且各类别数据不平衡,如v4、v5数据较少,这也给训练增加了一定的难度,模型很可能被不准确的标签误导。因此,增加第一赛季的v4、v5数据进行训练,对所有标签做平滑化处理,赋予每个病变种类一定的概率,并且使用3折交叉验证进行训练,损失函数使用focal loss,降低模型训练的难度。

第4名:(视频)浙大睿医队,浙大,4人

数据分析

  • 初赛训练集共201份MRI,每份MRI有11个关键点,任务为关键点检测+分类。
  • 存在类别不平衡:椎间盘有5个类别,比例大概在20: 10: 8: 1.4: 1左右;椎体有2个类别,比例在4:1。

整体方案

分为两个stage来处理整个流程,stage1为关键点检测,获得关键点坐标;stage2为分类模型,对疾病诊断。

stage1:

  • 使用Mask RCNN作为关键点检测的模型,处理GT关键点为11个通道的mask。
  • 使用DCN和多尺度训练
  • 初赛验证集上关键点识别准确率0.949,平均L1距离为3.051mm

stage2:

stage1中获得的关键点后,对以其中心crop,根据这是椎间盘还是椎体,以及是否有轴状位图片,分类下面三个模型

MODEL_V和MODEL_S均使用EfficientNet-b5作为baseline

ADNet为同时接收轴状位矢状位图片输入的椎间盘分类模型,以两个Res34-FPN为基础搭建而成,见下图

针对样本不平衡的问题,使用了BBN-Style Mixup,启发于旷视的CVPR2020。相比较于原文的BBN,使用BBN-Style Mixup就不需要同时训练两个网络分支,而能够快速迭代,更加适用于比赛场景。下图的两支输入中,上面一支是从uniform sampler中采样,下面一支是从reversed sampler中采样,两个sampler中采样出的batch进行mixup后交给网络的训练。这样网络能够在一定程度上见到足够多的类别不平衡类,并且mixup本身也可以起到增强网络泛化性的效果。

rotate plane:根据目标关键点的上下关键点的坐标获得角度来旋转图片,使得disc/vertebra被crop出来之后呈水平状态。

point jitter:因为stage1的预测关键点其实还是和GT有平均大约3mm的距离,所以对于stage2的训练,增加了point的扰动来增加模型的泛化能力。

另外,使用了一些数据增强来增加样本的多样性。以上rotate plane、point jitter、数据增强统称为数据预处理。

为了增加网络对不同尺度语义特征的学习能力,使用了FPN。

后处理

  • 对于诊断椎间盘的两个模型,如果有轴状位的图片就使用ADNet的结果,没有就使用MODEL_S的结果。
  • 椎间盘预测结果+椎体预测结果 -> 最终分类结果。

实验结果

首先是三个分类模型加上各自实验的结果。因为样本少的类别,训练不稳定,其F1值波动很大,所以将验证集的CE Loss值放上去一同作为参考

纯矢状位椎间盘分类模型Macro F1
EfficientNet-B50.3886
EfficientNet-B5 + BBN_mixup0.4416
EfficientNet-B5 + BBN_mixup + 数据预处理0.5337
EfficientNet-B5 + BBN_mixup + 数据预处理 + FPN0.5502
椎体分类模型Macro F1
EfficientNet-B50.6208
EfficientNet-B5 + BBN_mixup0.6434
EfficientNet-B5 + BBN_mixup + 数据预处理0.6530
EfficientNet-B5 + BBN_mixup + 数据预处理 + FPN0.6690
轴状位矢状位双分支输入模型Macro F1
Baseline0.4596
Baseline + BBN_mixup0.4748
Baseline + BBN_mixup + 数据预处理0.5547

上面的都是在本地的初赛验证集上面的结果,下面的结果是复赛A榜的一些尝试,因为时间安排上的一些原因,我们队伍并没有提交多次成绩,这不得不说是一个遗憾。

复赛A榜成绩Macro F1
三个最优模型融合0.6542
三个最优模型融合 + 五折0.6640

最后,我们还做了对于只有矢状位输入的椎间盘分类模型和双分支模型的对比(数据集保持一致),见下表:

椎间盘Macro F1
矢状位0.4974
轴状位 + 矢状位0.5547

总结

  • 不管是什么比赛,对于数据的理解是最重要的。
  • 面对类别不平衡,BBN-Style Mixup是一个不错的选择。
  • 做合适的数据预处理来减轻模型的学习难度,增加模型的泛化能力。
  • 使用了ADNet来同时处理轴状位和矢状位的图片。
  • 最后感谢阿里天池提供给我们这样一个参赛的机会!能让我们和各位大佬交流想法,学到了很多!

第3名:shiontao团队,深圳大学,1人(有指导教授)

1.问题分析

此次比赛的任务是对脊柱的十一个关键点进行定位和分类。

图1 比赛任务示意图

2.数据处理

图2 抑制高亮示意图

根据比赛给的标签以及医生的建议,团队在比赛中采用的T2的图像。为了抑制图像中的高亮区域,团队采用了对亮度最高的1%的像素进行了截断处理(如图2)。比赛提供了T2图像中间帧的标注,而MRI扫描时三维的。经过分析,中间帧相邻图像的关键点的位置和特性是非常相似的。由此,团队在比赛中选取中间帧相邻的图像,通过通道叠加的方式来进行增广(如图3)。

图3 数据增广示意图

3.核心思路

3.1方案介绍

关键点定位以及分类两种任务是医疗影像处理中比较常见的,常见的方法是先定位后分类这样的二阶方法。但是普通的基于Heatmap的关键点定位网络的预测在此任务上是会产生歧义的(如图4,对于最下方的锥体,网络输出了两个位置),二来分类模型不能充分地利用相关信息(如图5,所示的两种方法都不很好的利用到整体和局部的信息)。

图4 关键点定位方法示意图(右1为最下方锥体的标签,右2为网络输出)

图5 锥体和椎间盘分类的两种方法

因此,团队在比赛中提出了端到端的网络。具体来说,采用了检测网络来进行关键点的定位和分类。相比与普通的检测网络,提出的方法最大的不同在于,网络带有两类分类分支,一个用于预测位置,一个用于类别的分类。与此对应,医生在临床中是根据关键点所在区域辅以上下关键点的信息来进行诊断的。

图6 网络结构

最终,团队采用了Yolo作为我的基础模型,并在yolo的Neck中加入了FPN以及PAN的结构来提高网络检测小目标的能力,网络的示意图如图6所示。此外,团队在yolo的基础上修改了分类分支以适应当前任务。

图7 D-IOU Loss

在模型优化上,首先在边框定位上我采用了DIOUloss+L1loss来使得预测框与标签中心更加接近(图7)。表1展示了数据中各类别的占比,为了应对这种类别极度不平衡的情况在类别分类上团队采用了加权交叉熵,具体的参数如表2所示。

表1 各类别统计图

表2 损失权重

在数据融合上,当前常用的目标检测融合方法为加权边框融合(Weighted Boxes Fusion, WBF),其原理在于对多个结果的边框和置信度进行加权平均。在这里,团队遵循该方法的思路,提出了对检测结果的中心位置进行加权的数据融合方法——加权中心框融合(Weighted Centers Fusion, WCF)。两种方法的公式如图8。

图8 模型融合方法

3.2实验结果

在定位精度上,采用了检测网络后的模型定位精度提升了2.7各百分点,在是使用了改进的Diouloss后定位精度有进一步的提高。详细结果见表3。

表3 定位实验结果

在分类上,这里采用的检测的F1-Score来进行评判。各方法的结果见表4和表5,加权交叉熵和数据增广带来的提升最为明显。

表4 分类实验结果

表5 分类实验结果折线图

3.3算法效率

我们在线上训练了4个模型耗时不到6个小时,其中yolov5-s模型训练耗时在1小时以内。在推理上,在单个1080Ti上输入图像尺寸为768*768的情况下我们的模型可以达到53FPS,在CPUi7 6700上,模型推理耗时不到0.3秒。

表6 效率分析

3.4方案总结与展望

本方案的具有以下优势:

  • 一.采用端到端检测网络,充分利用了图像全局与局部的信息。
  • 二.使用定位框损失DIOU-Loss,提高边框定位精度。
  • 三.通过加权分类损失应对类别极度不平衡的情况。
  • 四.高亮抑制方法使得图像更易识别,伪3D数据增广有效地增加了样本多样性。
  • 五.根据任务提出了基于中心加权检测模型融合方法。
  • 六.极快的训练和推理速度,极大地方便方案的落地。

此次比赛具有非常大的临床和科研意义,尽管锥体的分类准确率还有很大的提升空间,但是在病变有无的分类上,我们的模型已经能达到0.85以上的F1-Score。这意味着模型可以在一定程度上去帮助医生进行诊断。此外,利用此次比赛数据开发辅助诊断的工具,来减少医生的工作量也是一件非常有意义的事。

4.比赛经验总结和感想

这次比赛是对我之前的学习的一次测验,在这个比赛中我学习到了更多医学影响相关的知识和经验,其中最重要的是锻炼了分析问题和数据的能力。非常感谢举办方提供了如此宝贵的数据,相信通过大家的努力,一定能够做出优秀的AI去辅助医生进行诊断。

第2名:triple-Z团队,北大,3人

1 赛题分析

1.1 赛题回顾

本次比赛的任务是采用模型对核磁共振的脊柱图像进行智能检测。首先需要对5个椎体和6个椎间盘进行定位,这部分实际上就是11个关键点的检测任务;之后需要对每一个关键点对应的椎体/椎间盘进行疾病分类。因此,整个比赛的任务可以分解为关键点检测和关键点分类两类大问题。

1.2 赛题分析

在开始建模之前,我们需要对数据有清晰的认识。通过对初赛训练集的分析,我们认为本次比赛存在如下三点挑战:

  • 相比自然图像的大数据集,数据量比较少(毕竟医学影像获取和标注成本都比较高)

  • 类别间的样本不均衡(如下图左图)

  • 标注噪声(如下图右图)

针对上述三个挑战,我们的解决方案如下:

  • 设计了一个简洁高效的定位+分类的单阶段检测模型

  • 调整损失函数以适应类别不均衡

  • 数据增强、关键点标注抖动、基于先验统计的二分类阈值调整

2 模型方法

2.1 模型整体框架

我们首先将关键点定位分解为:粗定位和精回归两个子任务,并且在关键点检测的时候同时预测对应位置的关键点类别。模型整体框架如下图,主要由三部分组成:

  • backbone:采用resnet18[1]的前4个特征层(16倍下采样)提取图像的特征(注:这里去掉最后一个特征层不仅减少参数量且更容易训练,效果更好)

  • neck:通过几个特征融合块融合多尺度特征并且扩大模型的感受野

  • output:最后通过四个1X1卷积分别输出:关键点粗定位、关键点y轴上的细回归、关键点x轴上的细回归、关键点分类

我们这种设计方案,相比于主流的heatmap-based关键点检测方法,不需要上采样层,不需要resnet最后一个特征提取层,使得学习任务更加简单,因此参数量和计算量都会更少(实验部分会有详细的对比分析)。

2.2 neck模块细节

neck部分的DetNet block[2]、ASPP Block[3]和SPP Block[4]都是用来融合多尺度特征且扩大模型感受野的,具体设计如下,DetNet block与原论文保持一致,ASPP/SPP Block都做了适应性的修改。

2.3 关键点粗定位

对于5个椎体+6个椎间盘共11个关键点进行检测,可以通过输出11个通道的张量分别代表11个关键点的预测。对于第k个关键点的粗定位,我们用一个网格图来表示,该图分辨率为原图下采样​之后的分辨率,粗定位图上的每一个网格的值为其中心点与关键点的关系度量,如下图:

2.4 关键点细回归

有了关键点的粗定位图,我们可以找到离目标关键点最近的网格中心点,但每一个网格对应原图是一个​的区域,显然直接取中心点离目标关键点有一定的误差,因此我们需要额外的两个与粗定位分辨率一样的定位细回归图(x轴和y轴两个方向),其每一个网格的值为其中心点到关键点在x/y轴上面的偏移,如下图。这里直接用偏移量的话由于范围太大了模型不太好学,因此我们把偏移量除以​,使得关键点附近的网格的值都分布在1附近。

2.5 关键点分类

模型在进行粗定位和细回归的时候实际上已经学到了椎体/椎间盘的特征和位置信息,因此我们直接通过一个并行分支对相应网格位置进行分类预测。如下图,对于一个网格,如果其为椎体,那么需要一个5维度的向量表示对5个椎体的二分类;如果是椎间盘,那么需要一个4*6维度的向量表示对6个椎间盘的四分类,此外椎体内疝出(v5)可以与其他四类共存,因此我们额外采用6维度的向量进行表示。综上,一个网格应该对应35维度的向量。

2.6 损失函数

损失函数是一个多任务学习损失函数,由三部分构成:

  • 对于关键点粗定位图的损失函数,直接采用MSELoss进行学习;

  • 对于关键点细回归图的损失函数,首先过滤出粗定位图中激活值高的网格,而后只对细回归图上的这部分网格计算损失函数,如下图左边图中红框框所示。实际上这种做法能够使得模型更加关注目标区域,减少对无关区域的关注;

  • 对于关键点分类图的损失函数,同样过滤出需要关注的网格,而后对于每一个网格,若该关键点是椎体,则计算前5维度向量的损失;若是椎间盘,则计算后4*6+6维度的损失。为了适应类别不平衡的问题,对于BCELoss和CrossEntropyLoss都采用了类别样本数倒数作为相应类别的权重。

总的损失函数是上面各部分的加权求和,权重我们根据经验值直接设置的。

2.7 推理过程

推理的时候取关键点粗定位图值最高的网格(关系最密切的网格),再在细回归图和分类图取相同位置的网格,即可以解析出关键点坐标和关键点类别,如下图:

2.8 其他一些小技巧

我们统计了初赛训练集上不同位置椎体的类别分布,如下图,我们发现不同位置其v1/v2的比例有所不同,靠近胸椎的椎体病变概率相对低一些,而在靠近尾椎的椎体更容易产生病变,这个发现和我们的直觉是一致的。因此我们模型会根据这个先验统计结果进行二分类的阈值调整,调整后的阈值如下图。同样地,对于椎体内疝出,我们也做了同样的策略。

此外,为了使得模型鲁棒性更强,减少标注噪声的影像,我们还采用了多种数据增强,如下图。其中对于关键点随机抖动,具体做法是对于标签关键点,我们会加上一个随机的小偏移量,以模拟医生标注可能抖动的问题。

2.9 模型融合

医学影像处理在数据不多的情况下,一般采用多折交叉验证使得模型验证更加稳定,因此我们采用了5折交叉验证训练了5个模型,而后将他们在测试集上的结果进行平均,得到最终成绩。

3 实验结果

3.1 复赛成绩及模型性能测试

3.2 定位模型与主流模型的性能对比

由于复赛数据不可见,且每天一次提交,机会宝贵,因此我们额外在关键点检测的公开数据集[6]上进行我们模型与主流模型[5]的对比实验,如下图。证明了我们模型的有效性和高效性,且更容易收敛(小模型就可以达到不错的效果)。

4 总结及展望

4.1 可行性讨论

希望我们的模型能够实际运用到现实生活中,因此在设计模型的时候就考虑了模型的高效性,并且我们实验表明该模型能够达到实时性的要求。我们设想以后患者的影像图片可以和我们模型的预测结果一并传输到医生的电脑上,医生可以根据模型的预测进行一些修正和调整,但就可以节省了大量的手动查询和定位等时间。相当于把“是什么”的问题转化成了“是不是”,感觉一定程度可以提高医生的工作效率。

4.2 总结

我们本次比赛主要做了如下几个工作:

  • 设计了一个简洁高效的定位+分类模型

  • 设计了合适的损失函数有效地训练模型

  • 充足实验证明模型的有效性和高效性

  • 结合实际考虑模型的落地方式

4.3 展望

我们认为我们的工作还有如下几点提升空间:

  • 横断面的数据没有利用到,而医生诊断的时候往往是依据矢状位+横断面,应该进一步模拟专家诊断的过程

  • 我们团队没有相应的专业知识,应该加入更多的一些临床专家先验知识提高模型性能

  • 我们模型实际上是一个多任务预测模型,因此模型结构存在优化的空间

  • 多任务的学习也是一个热门研究方向,不同任务间的权重分配我们是采用经验值设置的,可以通过一些前沿工作进一步优化

5 核心代码

核心代码主要是4个输出张量的构建,如下

6 比赛经验总结及感想

在参加比赛的时候,不要急着搭建和训练模型,需要先对比赛数据进行分析和总结。比赛的数据一般更贴近实际运用,和平时科研所用的公开数据集还是有所区别,因此在分析数据的过程中可以总结数据的难点和挑战,对应的再选用或者自己设计合适的模型。

本次比赛赛题新颖、充满挑战,并且一有问题主办方都能够及时解决,同时让我们学习到了很多知识、提高了实践能力!

7 参考资料

[1] Deep Residual Learning for Image Recognition

[2] Detnet: A backbone network for object detection

[3] Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

[4] Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

[5] Simple Baselines for Human Pose Estimation and Tracking

[6] 2d human pose estimation: New benchmark and state of the art analysis

第1名:deep thinker团队,东北、华南理工、北京妙医佳,3人

赛题理解

本次比赛在图像上提供了矢状位、轴状位等多种脊柱影像,而在标注上,则提供了T2矢状位中间帧的关键点坐标。从以点为形式的标注上看,此次赛题更类似于关键点检测。然而赛题任务除了定位以外,还要求对目标进行精准的分类,因此我们认为关键点检测可能并不是那么适合。最终我们采用的是更加契合赛题任务、效果更加优异的目标检测方案

赛题难点

本次赛题,我们认为共有以下4个难点:

  1. 如何合理利用矢状位和轴状位的影像,进一步又如何充分利用这些影像中的多帧信息,不造成数据上的浪费。
  2. 由于我们采用了目标检测的方案,如何将关键点坐标转换为矩形框的形式。
  3. 本次赛题要求在给出关键点坐标的同时,还必须要明确哪一个点对应哪个目标。而我们检测结果往往存在重复检测或者检测出胸椎等问题,因此我们需要筛选掉多余的预测框,并将剩余结果匹配到对应的位置
  4. 椎体和椎间盘中不同类别的目标特征差异较小,如何进一步提高网络的分类精度

核心思路

思路一:利用关键点生成边界框形式的标注,将赛题任务巧妙地转化为目标检测任务。

思路二:采用矢状位多帧影像进行三层拼接,充分利用相邻帧信息

思路三:通过对特征更为明显的腰椎整体和骶骨第一块椎体进行检测,从而实现对检测框的筛选以及位置匹配。

思路四:增加额外针对轴状位与矢状位拼接图像的分类网络,从而提升目标分类精度。

算法模型

检测网络:Cascade R-CNN(X-101)+ FPN + DCN
分类网络:ResNeSt269

实验数据

我们的比赛方案帮助我们取得了线上第一的优异成绩,同时我们也是众多参赛选手中唯一一支分数突破70大关的队伍。这足以有力地证明我们的方案的有效性。此外我们也对我们方案做了消融性实验,以下是实验结果:

总结:

总结

以上是生活随笔为你收集整理的CV竞赛项目研究:脊柱疾病诊断(天池,GPU赛道,2020年9月)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。