返回列表

3rd place 0.156 public lb, 0.148 private lb

404. RSNA STR Pulmonary Embolism Detection | rsna-str-pulmonary-embolism-detection

开始: 2020-09-10 结束: 2020-10-26 医学影像分析 数据算法赛
第3名方案:Public LB 0.156, Private LB 0.148

第3名方案:Public LB 0.156, Private LB 0.148

作者: DatNB (Team VinBDI) | 排名: 第3名

编辑:已添加 Github 链接。

首先,恭喜所有的获奖者。

我们的解决方案非常直接。我们主要使用了去年 RSNA-IHD 比赛中的相同技巧,并更新了一些模块以提高性能、标签一致性和检查级别预测的准确性。

该解决方案主要分为三个部分:

第一部分:单图像训练

我们使用 CNN 预测每个切片的 pe_present_on_image 概率,并通过在最终的二分类预测层之前添加一个包含 7 个单元的全连接(FC)层来修改 CNN 模型。该层充当嵌入生成层,最终的二分类结果只是这 7 个输入的线性函数。我们选择 7 是因为它们实际上是 pe_present_on_image 的细粒度标签,是切片级标签和检查级标签的组合(例如 pe_present_on_imagerv_lv_ratio_gte_1,或者 pe_present_on_imagecentral pe)。我们也尝试过更细粒度的标签,但没有成功。

第二部分:序列切片级模型

从第一部分的每个切片中,我们获得一个 7 维嵌入向量。连接 31 个连续切片的嵌入向量,我们得到一个 31x7 的图像作为中心切片的嵌入特征图(换句话说,对于每个切片,我们也查看它前面的 15 个切片和后面的 15 个切片)。对于边缘情况,使用填充。第二部分的模型是一个结合了简单的无池化浅层 CNN 和包含两个双向 LSTM 层的序列模型的模块。我们将该模型的输出作为每个切片的最终预测,通过反向增强和两个模型(CNN 和 LSTM),我们得到 4 个输出。将它们全部连接起来,我们就得到了每个切片最终的 32 维嵌入向量。

第三部分:检查级 CNN 模型

我们只是将一次检查中所有切片的 32 维嵌入向量堆叠起来,并选择 1024x32 作为通用图像大小。对于少于 1024 个切片的检查,我们进行零填充;对于超过 1024 个切片的检查,我们进行截断。该模型将预测 9 个检查级标签。

同比赛其他方案