先说结果:复赛27/3107,只能说一般般,没有打入前top20,并没有实现自己的目标。但是也是收获了不少经验,做一些总结和分享。
失败的经验:
- 尽早开始,尽快搭建自己的整套pipeline,后面再去增加的自己的idea,不断检验自己的idea.
- 可以准备一些自己的pipeline模板,这样可以加速开发。
- 想办法和大佬合作吧,和大佬一起合作。
贴一张最后决赛的结果:

其中GPU第一队,基本是大佬合集,看个人简介就知道,经常获得冠军的队。也是唯一一个实现map超过0.7的队伍。
自己的实现思路:
Unet关键点检测+resNet分类
要实现的目标:

输入一些dicom医学图像,实现输出关键点的位置和疾病类别分类。

自己实现过的一些思路:
-
不区分类别,直接将椎体和椎间盘11个关键点输入Unet,输出的预测热图。
-
将椎体5个点输入一个Unet,将椎间盘6个点输入另一个Unet。在将两个输出合并到一起,组合形成结果。


-
输入的图像有很多突出的点(噪点),使用各向异性滤波来处理(平滑),但是这样处理的话,测试集也需要输入处理。
-
把整11个点做成高斯热图来输入,当做整个脊椎的热图,但是没有什么改进。
其中面对的一个问题,可以定位到目标大概位置,但是脊椎有很多相似的结构,导致预测的开头容易出现跳格的现象,所以设想一种改进的Loss,主要利用点之间的距离相同,对距离做一个约束,故把这种距离加入到Loss中,我把他命名为posiLoss,后来在一篇论文中看到了相似的改进。
class posiLoss(nn.Module):
def __init__(self,alph=50, beta=100):
super(posiLoss, self).__init__()
self.alph = alph
self.beta = beta
self.criterion_part1 = nn.MSELoss()
self.sz =</

本文总结了一次脊柱疾病智能诊断竞赛的经历,虽然未能进入前20名,但获得了宝贵经验。介绍了使用的Unet和ResNet模型,以及创新性的posiLoss损失函数,该函数考虑了关键点间的相对位置关系,提高了定位准确性。
最低0.47元/天 解锁文章
1178





