Segment Model Compare
SegMamba
Datasets
- CRC-500:500个3D结直肠癌CT
- BraTS 2023:1251个3D脑MRI
- AIIB2023:120个纤维化肺病CT
- 公开数据集加粗,下同
Model
SegMamba具有三部分:
- 1)具有多个三向空间Mamba(TSMamba)块的3D特征编码器,用于以不同尺度对全局信息进行建模(正向、反向、切片间)
- 2)基于卷积层的3D解码器,用于预测分割结果
- 3)特征级不确定性估计(FUE)的跳跃连接用于特征增强。
- 实际上就是把卷积块换成TSMamba块,逐个尺寸Res跳连。
- 主干:k:7x7x7 p:3x3x3 s:2x2x2 –> 48 D/2 H/2 W/2
- 代码中实际上把Stem作为下采样第一层,图示少了一次下采样。

TSMamba块
Gated Spatial Convolution(谨慎学习这块内容,基本没用,代码部分会提到):weary:
类似于门机制的信息传输,在mamba前捕获空间信息

Tri-orientated Mamba
前向、反向、切片间,对高维特征的全局信息进行建模。


Feature-level Uncertainty Estimation(谨慎学习这块内容,作者没有给出)
计算通道维度上的平均值,并进行归一化,增强低不确定性特征。

Loss & Train
参数:使用交叉熵损失,具有多项式学习率调度器的SGD优化器(初始学习率为1^e-2^,衰减为1^e-5^)。所有数据集运行1000个epoch
数据增强:加性亮度、伽马、旋转、缩放、镜像和弹性变形。
Code
https://github.com/ge-xing/SegMamba
吐槽下作者代码里实际上根本没有点乘,而是直接相加,加的位置也不对,和画的图/公式完全是俩玩意。其实就是基本两个3x3+1x1跳连的残差块,外边再1x1之后和原来的输入跳连,和门控不大沾边,浪费好久去看这个结构。git记录也是稍显抽象。然后FUE根本没给,在issue回复很模糊。


可学习的点:3D切片上ToM的正序反序、切片间顺序思路。
3D-ResUNet
Datasets
- 三个非洲爪蟾肾胚胎样本
Model
和标准U-Net基本上一样。这篇比较早结构也比较简单,直接看代码吧。

Code
没有找到原论文代码,找到类似的3D-ResUNet
https://github.com/safamathl/3D-ResUnet/tree/main/net
16→32→64→128,每级包含2-3个卷积层,找到的这个代码通过dilation在3、4层扩大感受野。concat合并通道,特征融合后接3个卷积层进行信息整合。3D相对原来的U-Net在z轴维度上的变化也没有额外处理。
以图中128+256作为例子,进行信息整合的3个卷积层:
| 层级 | 输入通道 | 输出通道 | kernel_size | stride | padding | dilation | 激活函数 | 参数量 | 计算量(FLOPs) |
|---|---|---|---|---|---|---|---|---|---|
| 第1层 | 128+64=192 | 128 | 3×3×3 | 1 | 1 | 1 | PReLU | 192×128×3³=663,552 | 128×192×D×H×W×27 |
| 第2层 | 128 | 128 | 3×3×3 | 1 | 1 | 1 | PReLU | 128×128×3³=442,368 | 128×128×D×H×W×27 |
| 第3层 | 128 | 128 | 3×3×3 | 1 | 1 | 2 | PReLU | 128×128×3³=442,368 | 128×128×D×H×W×27 |
可学习的点:适当的使用dilation,其他当做一种方法和最后我们的结果进行比较就好。
LISA
Datasets
- Semantic Segmentation Dataset
- Vanilla Referring Segmentation Dataset
- Visual Question Answering Dataset
Model
LLM输出掩码,其中分割掩码表示为多边形序列,使分割掩码能够表示为纯文本。
仅需在现有LLM(如LLaVA)基础上新增一个 <SEG> 标记和简单的解码器结构,避免复杂模型重构。

作为触发分割的指令信号,嵌入到LLM的词汇表中。当模型需要输出分割结果时,响应文本中会包含此标记。
有

Loss & Train
Ltxt是用于文本生成的自回归交叉熵损失,Lmask是掩码损失。

Can you segment the {class name} in this image? 语义分割数据集,输入图像和目标对象的名称 Can you segment {description} in this image?Vanilla参考分割数据集,输入图像和目标对象的显式简短描述 视觉问题分类数据集,提高多模态LLM的问题分类(VQA)能力
训练参数:微调LoRA,Fdec,embed tokens,Ilm head,投影层
可以学习的点:LLM指导分割任务,LLM掩码处理。
Code
也是SAM作为predictor
可学习的点:结合SAM
HyperSeg
Datasets
图像分割
- COCO Panoptic
- RefCOCO系列
- COCO-Interactive
- ReasonSeg
视频分割
- DAVIS 2017
- Ref-Youtube-VOS
- YouTube-VIS 2019
- ReVOS
Model
把Vision Token(VLLM的CLIP)、FVP精细分割后的Fine-grained Token、视觉和文字的Prompt Token输入大模型,LoRA微调。
Prompt Token、Fine-grained Token和语义识别后的Mask Token一起输入分割预测器。

VLLM
输入(V,P),由CLIP编码器得到特征fv,投影并与Fine-grained Token、Prompt Token级联得到输出。输出后的Hybrid Entity Reconition的语义增强掩码标记EQ是手动提取的。

Prompt
PI:文本提示 PC:图片提示 具体设计看上面的Overview就可以了
Segmentation predictor
mj是掩码建议,zj是分类得分,ej进针对视频用不上。

CLIP和FVP区别
CLIP单层简单结构,对细粒度感知效果不强。

Train & Loss
该模型可以使用统一损失L在多个任务上联合训练。Ltext采用自回归交叉熵,Lmask采用BCELoss和DiceLoss,Lcls交叉熵来分类,Lins用于视频暂时也用不上。

可学习的点:细粒度token的加入,prompt token的设计。
LLMSeg
Datasets
981乳腺癌患者CT
内部验证集,提供了一小部分具有相似特征的受试者样本,而不是完整的患者数据集,用于验证目的
Model
大概思路和上面的LLM指导分割任务差不多,用的3D ResUNet + Llama2-7B-chat + sam

主要有三个模块:
text prompt tuning
v
n:MxD矩阵,D与LLM的嵌入维度相同,进行随机初始化。t = v
n+ 诊断内容[TEXT] + 分割标记[SEG] (LISA也用到这个标记),输出gNxDmultimodal interactive alignment
对齐g与图像嵌入,图像嵌入f
l为图像编码器第l层输出,维度Hlx Wlx Slx Cl逐层使用线性层对齐L与投影g,然后self-attention与cross-attention进行信息交互(这块就是SAM的双向注意力),最后得到f
l^*^CTV delineation
SAM预测,用CE和Dice来计算损失,softmax出y
hat

Train
随机裁剪384 x 384 x 128的patch,训练冻结LLM,学习text prompt,对齐时的参数和SAM参数。
Code
代码中ResUnet和上文找到的ResUnet差不多,具体的大小如下:

5个下采样 + gNxD信息,为了对齐通道会减去N:
1 | |
Encoder用的monai给的Unetr块,Decoder前四块为加了残差的上采样+卷积,最后一块简单的用转置卷积实现上采样。使用了SAM的双向注意力来交互文字与图片信息。
可学习的点:不再是直接把text和image连接进sam,two ways attention加在ResUNet跳连部分,接着再去做decoder。
L&C
用4个MRI序列做多模态输入(T1、T1增强一组/T2、DWI一组互注意力)。
3DResUnet+(顺序切片间(这样是不是2D更好?))做分割模型,高层使用自适应dilation不减小尺寸扩大感受野。
Two ways Attention可以加在跳连/后处理门控?(加在Encoder、Decoder可能运算过大)