Kaggle 2023HuBMAP 肾血管分割 (19/1064 最优提交)---目标检测、实例分割、语义分割系列大总结

前言:

最终提交结果因为加了膨胀操作导致巨大的shake,整个私人排行榜都发生颠倒。本文模型的最佳私人得分能到前20名,但最终的提交只有366名。虽然经过三个月的学习和努力,最后结果不如人意,但当中领会到的经验与方法使成绩体现不出的。本文是我对整个比赛过程中的所有经历和领悟的总结归纳。

数据集:

比赛数据包括从五个全幻灯片图像 (WSI) 中提取的图像,这些图像分为两个数据集。数据集 1 中的切片具有经过 专家审核的注记。数据集 2 包含来自这些相同 WSI 的其余切片, 并包含未经专家审查的稀疏注释
所有 测试集图像都来自数据集 1。
其中两个 WSI (病人)组成训练集, 两个 WSI 组成公共测试集一个 WSI 组成私有测试集
训练数据包括来自公共测试 WSI 的数据集 2 磁贴,但 不包括来自私有测试 WSI 的数据集磁贴。
作为数据集 3,我们还包括从另外九个 WSI 中提取的图像。这些图像尚未添加注释。您可能希望对此数据应用半监督或自监督学习技术来支持您的预测。

从官方的解释可以看出,有标签的一共有五个病人(WSI),其中两个病人组成训练集,两个组成公共测试集,一个组成私有测试集,其中数据集1和2的划分也是有区别的,只有数据集1里面的图像是准确标签的,数据集2的标签是不准确的,数据集3是没有标签

数据集1(准确注释)数据集2(不准确注释)数据集3(没有注释)
训练集WSI1,WSI2WSI1,WSI2,WSI3,WSI4WSI6-WSI14
公共测试集WSI3,WSI4
私有测试集WSI5
每个图像的大小为 512x512。
polygons.jsonl包含多边形分割掩码,可用于数据集 1 和数据集 2。每一行都为单个图像提供 JSON 注释,其中包含:
  • id识别列车中的相应图像
  • annotations掩码注释列表,其中包含:
    • type标识带注释的结构类型:
    • blood_vessel目标结构。您在本次竞赛中的目标是预测测试集上的这些类型的掩码。
    • glomerulus肾脏中的毛细血管球结构。图像的这些部分被排除在血管注释之外。您应确保不会在肾小球结构内进行任何测试集预测,因为它们将被计为假阳性。为数据集隐藏版本中的测试集图像提供批注
    • unsure专家注释者无法自信地将其区分为血管的结构。
    • coordinates定义分割掩码的多边形坐标列表。
tile_meta.csv每个图像的元数据。此文件的隐藏版本还包含测试集磁贴的元数据。
  • source_wsi标识从中提取此图像的 WSI。
  • {i|j}WSI 中提取图像的在整个切片的左上角坐标。
  • dataset所属的数据集。
wsi_meta.csv从中提取图像的整个幻灯片图像的元数据。
  • source_wsi标识 WSI。
  • age、 和有关组织供体的人口统计信息。

从官方提供的数据集,每张图像是从一个很大的图像上切割出来的切片,其中为三种类型的目标打上标签:血管,肾小球,不确定。标签形式为多边形坐标。其中,比赛要求将肾小球排除在外,而且也给了测试集中肾小球的位置信息,需要在最后的输出中排除这些结果。

任务:

构建模型检测出血管位置,并给出每个血管的掩膜以及置信度。

目标检测是识别图像中存在的内容和检测其位置;语义分割是对图像中的每个像素打上类别标签进行分类。实例分割是目标检测和语义分割的结合,在图像中将目标检测出来(目标检测),然后对每个像素打上标签(语义分割)。

因此该任务实际上是一个实例分割问题,语义分割也可以得到掩码,但必须对掩码进行后处理(分割成不同的实例,并计算置信度分数)

评估标准:

通过计算置信度分数的平均精度来评估提交,它遵循与 对象检测评估相同的精神,但考虑了掩码到掩码的匹配。 此处详细介绍了该指标。

第一步,按置信度顺序排列,按顺序将所有的检测掩码与所有现有的真实mask进行匹配。如果检测掩码与真实掩码之间的 IoU > 0.6(比赛规定0.6),则认为两个掩码可能匹配,匹配的检测结果被视为 "真阳性",已经匹配上的真实掩码不会再次匹配。

第二步,其余未匹配的检测结果将与剩下的未标记为“group-of”(组框,本次比赛没有)目标的真实的boxes进行匹配。如果 IoU > 0.6,则两个这样的目标被视为潜在匹配。匹配将被忽略。这些检测可能是真实的,但没有真实掩码可供详细评估

在目标检测中,"group-of"是一种标记或注释,用于表示多个物体组成的一个整体或群体。它指的是一个边界框(bounding box),代表了多个物体的集合,而不是单个物体。

第三步,其余未匹配的检测结果最终会与被标记为“group-of”进行匹配。如果boxes与boxes的IoU大于 0.6,则认为两个这样的boxes有可能匹配(与物体检测的情况一样,多个检测可以匹配同一个boxes群)。匹配的检测结果将被忽略。其余未匹配的检测既不匹配任何mask,也不匹配任何boxes,因此被视为假阳性。

经过这三个阶段的匹配后,所有检测结果都被标记为 "真阳性"、"假阳性 "或被忽略,并可计算出精确度/召回值,从而生成每个类别的 AP 值。由于这个比赛数据集没有“group-of”,那么第二步和第三步将被忽略,而第一步中没有匹配上的将被视为假阳性

实际上,从评估方法可以看出它是AUC精度/召回率,置信度越高的目标是先匹配的,错误预测(低分)不会以任何方式影响最终得分

ROC曲线

针对一个二分类问题,将实例分成正类(postive)或者负类(negative)。但是实际中分类时,会出现四种情况(都是针对预测的类别来命名的).
(1)真正类(True Postive TP)(预测为正类,刚好预测的是正确的)
(2)假负类(False Negative FN)(预测为负类,只不过预测错了)
(3)假正类(False Postive FP)(预测为正类,只不过预测错了)
(4)真负类(True Negative TN)(预测为负类,刚好预测的是正确的)

线上每个点对应一个阈值

AUC指的就是ROC曲线的面积,面积越大效果越好

最佳解决方案:

基于Yolov7模型对dataset1和dataset2的血管类别进行训练

首先要了解目标检测领域的主流方法,本文另外做了以下整理 论文精读之R-CNN(Region-based Convolutional Networks for Accurate Object Detection and Segmentation)icon-default.png?t=N6B9https://blog.csdn.net/weixin_44733295/article/details/132071850 论文精读之Fast R-CNN(Fast R-CNN)_bent1e的博客-CSDN博客论文提出一种新的算法结构Fast R-CNN,首先,将图片输入DeepCNN网络中得到特征图,根据映射关系可以找到原图上每个候选区域在特征图上的特征矩阵,然后将特征矩阵通过RoI Pooling层统一缩放到指定尺寸(论文中采用7x7),然后经过两个全连接层得到特征向量,在这之后并联两个全连接层层,左边的全连接层用于目标类别预测(分类器),右边全连接层用于边界框回归参数的预测(回归器)。首先,最后一个最大池化层被 RoI 池化层取代, 其次,将网络的最后一个全连接层替换为前面所述的(一个全连接层和。https://blog.csdn.net/weixin_44733295/article/details/132178910
论文精读之Faster R-CNN(Towards Real-Time Object Detection with Region Proposal Networks)_bent1e的博客-CSDN博客在第三步中,论文使用检测网络来初始化 RPN 训练,但会固定共享的卷积层(此时两个网络的Deep ConvNet是相同的),只微调 RPN 独有的卷积层。在实验中,论文研究了拥有5个可共享卷积层的Zeiler和Fergus模型(ZF),以及拥有13个可共享卷积层的 Simonyan和Zisserman模型(VGG)。损失函数的设置与Fast R-CNN类似,需要注意的点是在之前的方法中,边界框回归是在从任意大小的区域池化的特征上进行的,并且回归权重是共享的。而在本文的方法中,采用了一种不同的方式。https://blog.csdn.net/weixin_44733295/article/details/132178983
YOLOv1
YOLOv2
FPN
Mask R-CNN

待更新。。。。。。。

5折交叉验证

训练阶段使用数据增强:

多尺度训练,分别使用800和1024两种尺寸进行训练

推理阶段模型集成两种尺寸的最佳单折模型

TTA

尝试过的方法(无效或实现有问题):

推理阶段使用膨胀(严重过拟合)

WBF

排名函数

伪标签训练

避免边缘效应

加入mask rcnn分割头进行辅助

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值