赞
踩
由于局部性的归纳偏差,CNN无法有效提取乳腺癌组织病理图像的全局特征信息,限制了分类结果的提高。
本文合理地引入了纯 Transformer 的额外主干流,该主干流由自注意力机制组成,用于捕获组织病理学图像的全局感受野,从而补偿 CNN 主干的局部性特征。基于CNN和Transformer的两个主干流,提出了一种称为DCET-Net的双流网络,它同时考虑局部特征和全局特征,并逐步将这两个流中的它们组合起来形成最终的分类表示。
组织病理学图像可以清晰地显示乳腺组织细胞,与其他医学检查技术相比具有不可替代的权威性。然而,观察组织切片具有主观性且耗时,这使得病理学家很难从组织病理学图像中准确筛查和诊断乳腺癌。
目前利用深度学习的乳腺癌组织病理学图像分类方法主要可以分为两类。一些研究人员采用代表性的卷积神经网络(CNN)模型作为提取器来捕获乳腺癌组织病理学图像的深层特征,然后使用传统的机器学习模型构建特征分类器来区分提取的深层特征,这也是总结为非端到端方法。
非端到端方法指的是将问题划分为多个子问题,每个子问题单独处理,再将处理结果组合起来得到最终输出的方法
将注意力机制引入端到端模型中,用于对乳腺癌组织病理学图像进行分类。由于CNN的局部性,这些模型难以有效捕获乳腺癌组织病理图像的全局特征信息,这在一定程度上限制了分类性能的进一步提高。
除了CNN主干之外,由一堆基于自注意力机制的Transformer层组成的Vision Transformer成功应用于许多视觉任务,并取得了令人印象深刻的性能。 Transformer 主干可以捕获每个 Transformer 层中的全局上下文,这与仅关注局部性的 CNN 主干有显著不同。
DETR 基于 Transformer 构建,是第一个探索其在物体检测中的应用并获得有竞争力的结果。
Max-DeepLab,其中掩码Transformer可用于直接预测带有类别标签的掩码,并使用 二分图匹配 来训练具有全景质量启发损失的掩码。
VisTR 将视频实例分割视为并行序列解码/预测问题。通过给出由多个图像帧组成的视频剪辑作为输入,VisTR 直接输出视频中每个实例的掩码顺序。它在目标检测和全景实例分割领域取得了优越的性能,研究人员越来越多地尝试将其应用到广泛关注的图像分类任务中。
在VisTR(Video Instance Segmentation with Transformers)输出的视频中,每个实例的掩码(Mask)是指用于标识和区分视频帧中各个独立实例(如物体、人物等)的二进制图像。掩码通常是一个与输入视频帧相同大小的矩阵,其中每个像素点的值表示该像素点是否属于某个特定实例。
具体来说,掩码中的每个像素点都有一个对应的值,通常为0或1。值为1的像素点表示该像素点属于某个特定实例,而值为0的像素点则表示该像素点不属于该实例。通过将这些值为1的像素点连接起来,就可以形成一个轮廓,用于精确地勾勒出该实例在视频帧中的位置和形状。
在VisTR的输出中,每个实例都会生成一个独特的掩码,用于标识和区分视频帧中的其他实例。这些掩码的顺序通常按照视频帧的顺序生成,即按照时间轴上的顺序排列。同时,为了保持连贯性和一致性,VisTR还会利用跟踪算法将不同帧中的相同实例关联起来,生成一个连贯的掩码序列。
总之,VisTR输出视频中每个实例的掩码是一种用于标识和区分视频帧中各个独立实例的二进制图像,通过掩码可以精确地勾勒出每个实例在视频帧中的位置和形状。
训练序列Transformer从而自动回归预测像素,而不合并来自2D输入框架的信息。
ViT则直接将纯Transformer应用于图像块序列,并在多个图像识别基准上获得了有竞争力的结果。
SETR利用Transformer主干来挑战像素级预测,并且优于基于CNN主干的基本模型。
引入另一种Transformer主干来增强分类任务,并设计了一个双流网络,即Dual-Stream Convolution Expanded Transformer 。它有效地结合了Transformer的长距离依赖性和CNN的局部信息提取能力。
DCET-Net,它有效地结合了 CNN 和 Transformer 主干的优点。基于这两个里程碑,DCET-Net不仅关注CNN流中的局部特征,而且还从Transformer流中捕获全局特征。通过它们之间的有效和渐进的结合,CNN主干也通过DCET-Net中Transformer 主干的指导被赋予了更多的全局视野。
DCET-Net利用CNN流捕获组织病理学图像的局部深层特征,同时通过Transformer流增强深层特征的全局信息,实现更具区分性的特征呈现,以区分乳腺癌组织病理学图像。 ⊗表示内积运算。
DCET-Net模型是一个突破性的双流网络,由CNN和Transformer两个主干组成。经过数据增强和处理操作后的输入图像分别发送到两个流,用于组织病理学图像切片的组织特征提取。
CNN流:包含多个残差块的ResNet架构,每个块主要由卷积层组成,其目的是捕获局部特征和关系,并且无法在任何中间层中对全局上下文进行建模。距离长位置的特征通信有限。
Transformer流:通过每个 Transformer 层中的自注意力操作来收集远程关系,自注意力为每个特征配备全局视图,从而根据特征的相似性输出非局部特征。
MLP头之前的Transformer主干输出与ResNet主干的每个残差块特征相结合,然后将融合的特征被输入到下一个块中,每个块都会进行重复相同的操作。最后,我们将ResNet池化后的特征与Transformer中全连接层之后的特征连接起来,作为分类的全局图像表示。
Transformer的输入是一维序列,与接受二维图像作为输入的ResNet有很大不同。Transformer编码器有很多Transformer层,每个层都执行自注意力。
给出二维输入图像,我们首先将其转变为一个展平的包含N个二维补丁的序列,其大小为,这些补丁不重叠,也被称为视觉标记。通过线性嵌入,将N个C维度的扁平补丁()映射到D维度。
在补丁嵌入之后,类似于Vision Transformer,我们将额外引入一个可学习的类令牌;此外,为了保留位置信息,学习每个补丁的特定一维嵌入,并将其添加到中从而形成最终的序列输入,通过下一个Transformer编码器进行传递。
Transformer编码器堆叠了标准Transformer模块,每个Transformer模块包含一个多头自注意力和多层感知器(MLP)。MLP包含两个全连接层,在第一个全连接层之后有一个GRLU非线性激活函数。在每个Transformer块前后分别进行 层归一化 和残差连接。
自注意力是Transformer块中不可或缺的重要组成部分,它聚合输入特征的全局信息来更新输入序列的各个视觉标记(补丁序列)。
,
MSA由独立SA组成,首先将所有的SA连接起来,然后将其投影出来,从而获得最终的输出。
,其中是投影矩阵。是MSA中SA的维度。
则整个的transformer块的公式为:
如图所示,浅层ResNet-18和ViT-Base作为构成我们的DCET-Net的两个主干。对于ResNet-18,我们通过丢弃最后一个剩余块来略微修改其架构。因此,ResNet-18的末端在融合这两个主干的特征时,不需要进行上采样或下采样,输出与ViT-Base相同的14 × 14空间分辨率的特征图。
DCET-Net通过融合ViT-Base主干的全局特征来增强ResNet-18中每个残差块的特征。增强的特征依次输入到下一个残差块中。ResNet-18中包含3个残差块,分别用Layer1、Layer2、Layer3表示。这三个残差块的输出特征形状分别为56 × 56 × 64、28 × 28 × 128和14 × 14 × 256。
对于Layer1来说,我们可以先进行1*1卷积,将维数从256降到64。之后可以通过上采样将14*14的分辨率增加到56*56。
- import torch
- import torch.nn as nn
- import torch.nn.functional as F
-
- # 假设输入特征图大小为14x14x256
- input_feature_map = torch.randn(1, 256, 14, 14)
-
- # 第一步:上采样
- upsample_layer = nn.Upsample(scale_factor=4, mode='bilinear', align_corners=True)
- feature_map_after_upsample = upsample_layer(input_feature_map) # 56x56x256
-
- # 第二步:调整通道数
- conv_layer = nn.Conv2d(in_channels=256, out_channels=64, kernel_size=1, stride=1, padding=0)
- feature_map_after_conv = conv_layer(feature_map_after_upsample) # 56x56x64
-
- print(feature_map_after_conv.shape) # 输出应为[1, 64, 56, 56]
但是对于Layer3而言,我们直接对ResNet-18和ViT-base的特征进行内积,不必进行卷积和上采样。之后可以在ResNet-18的顶层采用池化层,得到256维的图像表示向量。
同样的,ViT-Base通过MLP Head得到这样的向量,其中MLP Head中的最后一个FC也输出256维向量。
- import torch
- import torch.nn as nn
-
- # 假设我们有一个128维的向量
- input_vector = torch.randn(1, 128)
-
- # 创建一个线性层,输入维度为128,输出维度为256
- linear_layer = nn.Linear(in_features=128, out_features=256)
-
- # 将输入向量传递给线性层
- output_vector = linear_layer(input_vector)
-
- print(output_vector.shape) # 输出应为[1, 256],表示我们得到了一个256维的向量
该数据集包括82例患者的7909张临床乳腺肿瘤组织病理图像,每张图像的大小为700×460像素。良性肿瘤(纤维腺瘤、腺瘤、管状腺瘤、毛状体瘤)和恶性肿瘤(小叶癌、导管癌、乳头状癌、粘液癌)在40倍、100倍、200倍、400倍4种放大倍数下的组织病理图像分别为2480张和5429张。
图像级识别率和患者级识别率是乳腺癌组织病理学图像分类应用中最常用的两个指标。图像级识别率表示正确分类图像的数量与总分类图像的数量之比,它忽略了患者信息的因素。同时,通过关注患者信息计算患者级别识别率。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。