竞赛回顾:脊柱疾病智能诊断大赛

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

先说结果:复赛27/3107,只能说一般般,没有打入前top20,并没有实现自己的目标。但是也是收获了不少经验,做一些总结和分享。

失败的经验:

  1. 尽早开始,尽快搭建自己的整套pipeline,后面再去增加的自己的idea,不断检验自己的idea.
  2. 可以准备一些自己的pipeline模板,这样可以加速开发。
  3. 想办法和大佬合作吧,和大佬一起合作。

贴一张最后决赛的结果:
在这里插入图片描述
其中GPU第一队,基本是大佬合集,看个人简介就知道,经常获得冠军的队。也是唯一一个实现map超过0.7的队伍。

自己的实现思路:
Unet关键点检测+resNet分类
要实现的目标:
在这里插入图片描述
输入一些dicom医学图像,实现输出关键点的位置和疾病类别分类。
**加粗样式**

自己实现过的一些思路:

  1. 不区分类别,直接将椎体和椎间盘11个关键点输入Unet,输出的预测热图。

  2. 将椎体5个点输入一个Unet,将椎间盘6个点输入另一个Unet。在将两个输出合并到一起,组合形成结果。
    在这里插入图片描述
    在这里插入图片描述

  3. 输入的图像有很多突出的点(噪点),使用各向异性滤波来处理(平滑),但是这样处理的话,测试集也需要输入处理。

  4. 把整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 =</
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值