想象你走进一座乐高城堡展览馆:数以万计的彩色乐高颗粒拼成了城墙、塔楼、窗棂和喷泉。现在工作人员提出一个要求——为每一颗乐高颗粒贴上身份标签:这颗属于墙砖,那颗属于窗框。在医学影像的世界里,CT 或 MRI 扫描出的三维图像,就是一座“人体乐高城堡”,每一个最小的立体颗粒叫体素(voxel)。而 3D 医学影像分割的任务,正是给每一个体素贴上一张“器官身份证”:这是肝脏,那是肿瘤,旁边是血管。 本文要认识的,是三位擅长给体素贴标签的“资深师傅”:3D U-Net——经验老到的传统手艺人;V-Net——带着记事本、特别细心的改良派;Swin UNETR——戴着 AI 智能眼镜、一眼看全局的新锐专家。它们手法各异,却在共同解决同一个问题:如何从三维影像中精准地“切”出医生需要的器官。跟随乐高城堡的比喻,你会看到体素如何被分类、三个模型如何各显神通,以及它们如何真正走进临床手术室。
3D 医学影像分割是医疗 AI 落地的核心场景之一。掌握 3D U-Net、V-Net、Swin UNETR 三种架构的原理与选型,是从事影像 AI 算法工程师、放疗物理师 AI 协作岗位的基本功,直接关系到肿瘤勾画、术前规划等临床任务的精度与效率。
可视化演示
展示3D U-Net编码解码器U型结构与跳跃连接、V-Net残差块与Dice损失、Swin UNETR移位窗口注意力三种分割架构核心机制。
本节配有交互动效(进入视口后自动加载,约 3KB)。
3D U-Net编码解码架构 编码器逐级下采样提取3D体素特征分辨率减半 跳跃连接拼接编码器与解码器同层特征保留细节 out=up(dec,skip(enc)) U型结构实现体数据精确分割
分割任务基础
走进乐高城堡展览馆,你看到的不是平面照片,而是一座由几十万颗积木堆叠起来的三维建筑。工作人员递给你一叠彩色标签:红色代表承重墙,蓝色代表窗户,绿色代表屋顶。你的任务,是给每一颗乐高颗粒都贴上正确的标签。在医学影像里,CT 或 MRI 扫描出的三维数据就是这座“人体乐高城堡”,每一颗“积木”叫体素,而分割就是给所有体素分类。
要分清三个近义词:分类只看整幅图是什么(“这是一张肺部 CT”);检测要框出目标位置(“结节在右上角”);分割则精细到每个点——把 CT 里每一个体素标记为正常肺还是肿瘤。2D 图像的最小单元是像素,3D 图像多了深度,变成了体素。一段 256×256×200 的 MRI 扫描,可以看作一个由 1300 多万个体素组成的三维网格。
贴标签准不准,不能靠肉眼。医学影像界最常用的评分尺是 Dice 系数,衡量预测区域与医生标注区域的重叠程度:
Dice 就像乐高老师的评分表:0.9 意味着每十颗贴标签的积木里有九颗与标准答案一致;而 0.5 以下的分数,基本宣告这位“贴标签师傅”得回去重新培训了。
- X 与 Y 的含义X 是模型预测为“肿瘤”的全部体素集合,Y 是医生在影像上手动标注的真实集合。
- 交集 X∩Y两个集合重合的体素,也就是“模型标对了”的部分。
- 分母 |X|+|Y|预测总体积与真实总体积之和,用于归一化,避免大器官天然更容易得分高。
- 系数 2因为交集只被算了一次,乘 2 使 Dice 落在 0 到 1 之间,1 表示完全重合。
三维数据表示
在动手培训贴标签师傅之前,得先把乐高城堡“数字化”地搬进仓库。医学影像的原始数据怎么存?体素之间怎么组织?这决定了师傅能看到什么。
医院里的 CT 扫描仪以一个个体素为基本单元输出数据,常用 NIfTI 格式存储,每个文件包含一个三维数组(例如 512×512×300)和一个记录物理间距、方向的头文件。同一套 CT 数据里,不同组织有不同的灰度范围,骨头接近 +1000 HU,空气接近 -1000 HU,而软组织在 -100 到 +100 HU 之间。为了让不同扫描仪的数据具有可比性,训练前要做归一化:
标签标注同样重要:医生在专用软件里逐层描出器官轮廓,生成与影像同尺寸的标签数组,每个体素用一个整数表示类别(0 背景、1 肝脏、2 肿瘤),训练时再转成 one-hot 向量。最后用随机裁剪、旋转、弹性形变做数据增强,相当于给师傅多看几个不同角度的乐高城堡,提高泛化能力。
- 原始体素值 x每个体素在 CT 中的灰度读数(Hounsfield 单位),范围跨度大。
- 均值 μ整个三维影像的灰度平均值,代表扫描的整体亮度水平。
- 标准差 σ灰度的离散程度,衡量不同组织的对比度差异。
- 标准化结果 x'归一化后的体素值大多落在 -2 到 2 之间,模型更容易收敛。
3D U-Net架构
现在师傅登场了。3D U-Net 是 2D U-Net 的立体版,它的结构就像一条 U 形流水线:左侧是“编码器”,把整座乐高城堡逐步压缩成一张张“结构图纸”;底部是“瓶颈”,保存最浓缩的信息;右侧是“解码器”,把图纸逐步还原成和原来一样大的城堡,并在每个尺度给积木贴标签。
为什么用 U 形?因为医学影像分割既要“看得懂”全局(这座城堡是什么风格),又要“看得清”细节(这块砖的裂缝在哪)。编码器通过下采样不断缩小空间尺寸,同时增加通道数——就像把一张城市地图逐步放大到街区图,每个方框里的特征越来越抽象。解码器再通过上采样逐步恢复分辨率。而跳跃连接(skip connection)把编码器同级的特征图直接接到解码器,相当于把“高分辨率原图”和“低分辨率抽象图”拼在一起,避免细节丢失。
3D U-Net 的核心运算单元是 3D 卷积,它在三个方向上同时滑动:
3D U-Net 就像一位经验老到的乐高老师傅:先用放大镜逐块检查城堡结构,记下关键特征,再回到全身视角拼出整体分割图。因为结构清晰、训练稳定,它至今仍是医学影像分割的“国民级”基线模型。
- 输入位置 x_{c,i+a,j+b,k+d}输入特征在通道 c、空间坐标 (i+a, j+b, k+d) 处的体素值,a、b、d 表示三维邻域偏移。
- 权重 w_{c,a,b,d}卷积核中对应位置的可学习参数,决定模型关注哪些方向的纹理与边缘。
- 三重求和对通道数 C 和 27 个三维邻域位置全部加权求和,一个输出体素融合了 27×C 个输入信息。
- 输出 y_{i,j,k}卷积后的特征图体素值,体现了局部三维结构(如边缘、角点、管状血管)的响应强度。
V-Net创新
V-Net 是 3D U-Net 的“改良版”,它给师傅配了一本记事本。普通 U 型流水线在压缩过程中容易“忘记”早期层的细节,V-Net 在每一个卷积块中加入了残差连接:输入信号除了走正常的卷积路径外,还有一条“捷径”直接绕过卷积块,与输出相加。就像师傅在记事本上随时记下重要信息,哪怕处理流程再长,关键线索也不会丢。
残差连接缓解了深层网络的梯度消失问题,让 50 层以上的网络也能稳定训练。同时,V-Net 还引入了PReLU 激活函数,让网络自适应地学习非线性的形状;并采用密集训练策略,在推理时让相邻 patch 有重叠区域,减少拼接痕迹。
V-Net 最标志性的贡献是端到端使用 Dice 损失:
V-Net 师傅的记事本哲学贯穿了整个训练过程:不仅记得住细节,还懂得优先把“难贴标签的小零件”(如小肿瘤)处理好。因此它在器官小、边界模糊的任务上往往比 3D U-Net 更稳定。
- p_i 与 g_ip_i 是模型对体素 i 预测为 1 的概率,g_i 是真实标签(0 或 1)。
- 分子 2∑p_i g_i预测概率与真实标签的逐点乘积和,只有模型对正类有信心时才贡献数值。
- 分母 ∑p_i + ∑g_i预测“软体积”与真实体积之和,保持了 Dice 的归一化性质。
- 整体 1 - Dice损失函数把“最大化重叠”变成“最小化误差”,值越小表示分割越好。
Swin UNETR
如果说前两位师傅靠的是经验和笔记,Swin UNETR 则是戴上了一副能“一眼看全局”的 AI 智能眼镜。传统卷积模型的感受野是局部的,就像乐高师傅一次只能看清手边的几十颗积木;而 Transformer 架构允许每个体素直接与整幅影像中任意位置的体素建立关联,相当于站在城堡塔顶俯瞰全景。
Swin UNETR 以 Swin Transformer 为编码主干:它先把 3D 影像切成互不重叠的小窗口,在每个窗口内计算自注意力,再通过“窗口移位”让信息跨窗口流动。这样做的好处是:既保留了 Transformer 的全局建模能力,又把计算复杂度从平方级降到线性级,让 3D 影像这种超大输入变得可行。
核心的自注意力公式:
Swin UNETR 的下采样采用分层策略,不同尺度特征分别送入解码器融合,最后用卷积层输出逐体素分类结果。它就像一位既拿望远镜又拿显微镜的师傅:全局布局一眼掌握,局部细节也不放过,在大型多器官分割任务上刷新了多项纪录。
- Q、K、V 三个矩阵Q(查询)回答“我要关注什么”,K(键)回答“我是什么特征”,V(值)是实际携带的信息内容。
- QK^T 相似度矩阵每个体素与所有体素的内积,数值越大表示两个位置的特征越相关。
- 除以 √d_k缩放点积,防止特征维度较大时内积过大,把数值拉回 softmax 的敏感区间。
- softmax 与加权 V对相似度做归一化得到注意力权重,再对 V 加权求和,输出每个体素的全局融合特征。
训练与优化
师傅再能干,也要经过系统培训。训练一个 3D 分割模型,就像办一所乐高贴标签培训班:要设计课程(损失函数)、安排教室(显存管理)、制定学习节奏(学习率策略)。
损失函数是培训班的“考卷”。只用交叉熵(CE),小器官会被大背景淹没;只用 Dice 损失,边界易粗糙。业界主流是把两者组合:
显存管理是 3D 训练的最大痛点:一整块 512×512×300 的 CT 数据直接送入网络,任何 GPU 都会爆显存。工程上常用的三板斧:随机裁剪成 64×64×64 的小 patch 训练、使用混合精度(FP16)、梯度累积(多个小 batch 攒够梯度再更新)。学习率通常采用 warmup 策略——先从小学习率慢慢升到目标值,再按余弦曲线衰减,就像培训班先慢热热身再全力冲刺。配合 Dropout 和权重衰减等正则化手段,模型在验证集上才能稳定地涨点。
- 交叉熵项 L_CE惩罚每个体素分类错误的平均程度,对逐点精度敏感。
- Dice 项 L_Dice惩罚整体区域重叠不足,对小器官和类别不平衡更宽容。
- 权重 α 与 1-α平衡两类损失的贡献,通常取 0.5,小器官任务可调低 α 让 Dice 主导。
模型选型对比
三位师傅都出师了,该选谁上工?这取决于你的活儿长什么样。就像选乐高拼装师:如果有 10 万颗积木的大城堡,你要的是效率与稳定;如果是一个千颗小零件的心脏模型,你要的是极致精细。
从精度看,Swin UNETR 由于具备全局上下文建模能力,在大型数据集(如多器官分割挑战赛)上通常能比 3D U-Net 高出 1-3 个点 Dice;V-Net 凭借残差和 Dice 损失,在小器官上表现稳健。但从内存开销看,Transformer 的中间特征图巨大,Swin UNETR 显存占用往往是 3D U-Net 的 2-3 倍,且推理速度更慢。从推理速度看,3D U-Net 结构简单、算子成熟,是最容易上生产线的选择。
选型可以看作一个倾向性评分:
如果项目数据量小(几百例),3D U-Net 往往已经够用且更稳;数据量大、任务复杂、GPU 资源充裕,Swin UNETR 能榨出更高精度;V-Net 则适合不想过多调参、追求开箱即用的团队。
- C_{l-1} 与 C_l第 l 层卷积的输入通道数和输出通道数,通道数越多,特征表达越丰富。
- k_l^33D 卷积核的体积,常见 3³=27,可理解为一次需要融合的邻域体素数。
- 累加求和把每一层的参数全部加起来,就是模型总参数量,参数量直接影响显存占用和训练时间。
临床工程实践
师傅培训完毕,走进真正的医院。临床落地是检验分割模型的考场,这一环比训练模型还要“卷”。
预处理流程决定模型能不能“看懂”数据:原始 DICOM 影像要先重采样为各向同性体素(如 1.0×1.0×1.0mm),统一窗口灰度范围,裁剪出包含器官的 ROI,再归一化后输入网络。后处理同样关键:模型输出的概率图要经过阈值化、去除孤立噪声区域(连通域分析)、条件随机场(CRF)平滑边界,才能得到干净的器官掩膜。分割质量评估常用 IoU(交并比):
落地案例中,脑肿瘤 MRI 分割用 Swin UNETR 自动勾画放疗靶区;肝脏 CT 分割用 3D U-Net 计算肝体积与肿瘤负荷,辅助术前规划;多器官分割用 V-Net 保护危及器官。这些都说明:模型再先进,也要在预处理、后处理、GPU 推理服务的系统工程中才能兑现临床价值。
- 交集 |X∩Y|预测与真实标注重合的体素数,与 Dice 的分子一致。
- 并集 |X∪Y|预测或标注至少一方覆盖的总体素数,包括“预测错但标对区域的面积惩罚”。
- 比值重合区域占总体范围的比值,对过度分割(把正常组织标成肿瘤)惩罚更强。
AI 应用场景
脑肿瘤 MRI 自动勾画(放疗科)
阶段:模型训练与部署推理
解决的问题:传统放疗计划需要医生在几百层 MRI 切片上手动勾画肿瘤靶区,耗时 2-3 小时,且不同医生勾画差异大。Swin UNETR 利用全局上下文建模能力,自动给出整个肿瘤区域的初步分割结果。
具体案例:某三甲医院放疗科收集了 800 例多模态 MRI(T1、T1增强、T2、FLAIR),训练 Swin UNETR 分割胶质瘤的坏死核心、增强核心和水肿区。模型推理单个病例仅需 40 秒,医生只需在自动结果上局部修改,将勾画时间缩短到 15 分钟。
肝脏与肿瘤 CT 分割(术前规划)
阶段:数据预处理与模型推理
解决的问题:肝切除手术前需要精确计算肝脏总体积和肿瘤体积,传统方法靠医生手动逐层描边,误差大且效率低。3D U-Net 在 CT 增强扫描上同时分割肝脏和肝脏肿瘤。
具体案例:某医疗 AI 公司与外科团队合作,用 3D U-Net 对 300 例门静脉期 CT 进行肝脏分割,Dice 达到 0.95,肿瘤分割 Dice 0.82。系统输出三维可视化肝脏模型,外科医生可旋转观察肿瘤与血管的空间关系,制定更安全的手术方案。
头颈部多器官分割(放疗剂量计算)
阶段:模型优化与评估
解决的问题:放疗计划要保护腮腺、下颌骨、脑干等危及器官,人工勾画 20 多个器官需要数小时。V-Net 的 Dice 损失在小器官上表现稳定,适合这类多类别不平衡场景。
具体案例:某放疗中心用 V-Net 自动分割头颈部 CT 中的 22 个危及器官,平均 Dice 0.87,其中体积较小的视神经 Dice 0.75,显著优于单用交叉熵训练的模型。物理师仅需微调少数切片即可提交计划。
Python 演示
import torchimport torch.nn as nn class ConvBlock(nn.Module): def __init__(self, in_c, out_c): super().__init__() self.conv1 = nn.Conv3d(in_c, out_c, 3, padding=1) self.bn1 = nn.BatchNorm3d(out_c) self.conv2 = nn.Conv3d(out_c, out_c, 3, padding=1) self.bn2 = nn.BatchNorm3d(out_c) self.relu = nn.ReLU(inplace=True) def forward(self, x): x = self.relu(self.bn1(self.conv1(x))) x = self.relu(self.bn2(self.conv2(x))) return x class Encoder(nn.Module): def __init__(self, in_c, out_c): super().__init__() self.conv = ConvBlock(in_c, out_c) self.pool = nn.MaxPool3d(2) def forward(self, x): f = self.conv(x) return self.pool(f), f class Decoder(nn.Module): def __init__(self, in_c, out_c): super().__init__() self.up = nn.ConvTranspose3d(in_c, out_c, 2, stride=2) self.conv = ConvBlock(in_c, out_c) def forward(self, x, skip): x = self.up(x) diff_d = skip.size(2) - x.size(2) x = nn.functional.pad(x, [0, diff_d, 0, diff_d, 0, diff_d]) x = torch.cat([x, skip], dim=1) return self.conv(x) class SimpleUNet3D(nn.Module): def __init__(self, in_channels=1, num_classes=2): super().__init__() self.enc1 = Encoder(in_channels, 32) self.enc2 = Encoder(32, 64) self.enc3 = Encoder(64, 128) self.bottle = ConvBlock(128, 256) self.dec3 = Decoder(256, 128) self.dec2 = Decoder(128, 64) self.dec1 = Decoder(64, 32) self.out_conv = nn.Conv3d(32, num_classes, 1) def forward(self, x): x, f1 = self.enc1(x) x, f2 = self.enc2(x) x, f3 = self.enc3(x) x = self.bottle(x) x = self.dec3(x, f3) x = self.dec2(x, f2) x = self.dec1(x, f1) return self.out_conv(x) if __name__ == '__main__': torch.manual_seed(0) model = SimpleUNet3D(1, 2) x = torch.randn(1, 1, 64, 64, 64) y = model(x) assert y.shape == (1, 2, 64, 64, 64), f"Unexpected shape {y.shape}" print("输入:", list(x.shape)) print("输出:", list(y.shape)) print("模型参数量: %.2f M" % (sum(p.numel() for p in model.parameters()) / 1e6))
class Encoder(nn.Module)编码器模块:先做卷积提取特征,再用 MaxPool3d 把空间尺寸减半,模拟“从全局到抽象”的压缩过程。f = self.conv(x)保存卷积后的高分辨率特征图,这个 f 会作为跳跃连接传给解码器。class Decoder(nn.Module)解码器模块:先用转置卷积上采样恢复分辨率,再与跳跃连接的特征拼接。diff_d = skip.size(2) - x.size(2)计算编码器特征与解码器特征的深度差,用于 padding 对齐,保证拼接时尺寸一致。torch.cat([x, skip], dim=1)在通道维度上拼接上采样特征和跳跃连接特征,实现“全局语义 + 局部细节”的信息融合。self.out_conv = nn.Conv3d(32, num_classes, 1)用 1×1×1 卷积把 32 通道特征映射为类别数,输出逐体素的分割概率图。
常见误区
误区“3D 分割就是把 2D 模型升级成 3D,反正维度越高信息越全,效果肯定更好。我直接用 3D U-Net 替换 2D 的就行,不用看数据量。”
正解3D 模型确实能利用 Z 轴上下文,但参数量和显存开销急剧上升。如果只有几十例数据、标注稀疏,3D 模型很容易过拟合,2D 模型逐层分割可能更稳。选型要看数据量、任务复杂度和资源,而不是无脑选 3D。
为何常见:深度学习中“越复杂越强大”的直觉很常见,但忽略了数据量和资源约束这两块天花板。
误区“模型验证集 Dice 达到了 0.95,肯定可以直接上临床了,医生不用再改了。”
正解Dice 是体素级别的重叠指标,对边界误差不敏感。一个 2mm 的肿瘤整体偏移 1mm,Dice 可能下降不多,但临床放疗勾画对边界非常敏感。必须同时看豪斯多夫距离(HD)、平均表面距离(ASD)等几何指标,并由医生做临床验收。
为何常见:评估时习惯了只看单一分数,忽略了临床任务对边界安全性的苛刻要求。
误区“Transformer 是当前最先进的技术,Swin UNETR 精度最高,所以不管什么任务我都应该优先选它。”
正解Swin UNETR 的全局建模优势需要大规模数据支撑。在小数据集(<500 例)上,它容易过拟合,训练时间和显存开销却高出 2-3 倍,最终效果反而不如 3D U-Net。数据量不足时,卷积的归纳偏置反而是优势。
为何常见:看到论文 SOTA 排行就盲目追新,忽略了 SOTA 背后的数据规模与算力条件。
误区“模型输出已经是一张逐体素标签图了,直接保存成 NIfTI 给医生用就行,后处理是多余的。”
正解模型输出往往有孤立噪点、边界锯齿、甚至跨切片不连续。必须经过连通域分析去掉小团块、用条件随机场或形态学操作平滑边界,才能得到解剖学上合理的掩膜。没有后处理的输出直接进临床,可能导致严重的假阳性。
为何常见:演示时模型输出看起来已经很漂亮,忽略了真实数据中噪声和伪影的影响。
误区“分割效果不好,一定是网络结构不够新,换个更强的主干网络就好了。归一化、裁剪这些预处理随便写写就行。”
正解医学影像的预处理直接影响训练稳定性。不同扫描仪灰度分布差异大,不归一化会导致模型不收敛;不重采样会让体素间距不一致,造成器官形状失真。数据增强(旋转、弹性形变)在小数据集上的收益常常超过换模型结构。
为何常见:视觉领域习惯把精力花在模型结构上,但医学影像的质量控制才是工程落地的大头。
面试题
Q1. 3D 医学影像中的基本数据单元是什么?
- A.像素 pixel
- B.体素 voxel← 正确答案
- C.向量 vector
- D.矩阵 matrix
答案:B。2D 图像的基本单元是像素(pixel),3D 影像在 x、y 之外多了 z 轴深度,基本单元变成体素(voxel)。向量和矩阵是数学描述工具,不是影像数据的原子单元。就像乐高城堡由立体小颗粒组成,而不是平面贴纸。
Q2. 3D U-Net 中跳跃连接的主要作用是什么?
- A.减少网络参数量
- B.保留高分辨率结构细节← 正确答案
- C.加快数据读取速度
- D.替代所有卷积层
答案:B。跳跃连接把编码器中的高分辨率特征图直接传给解码器,弥补下采样过程中的空间细节损失,这是 U-Net 系列分割精度的关键。减少参数量是池化或瓶颈结构的作用,加速读数与网络结构无关,跳跃连接无法替代卷积。
Q3. 训练 3D 分割模型时显存不足,以下哪些方案是有效的?
- A.降低输入 patch 尺寸← 正确答案
- B.使用混合精度训练← 正确答案
- C.把 3D 卷积全部换成全连接层
- D.减小 batch size 并配合梯度累积← 正确答案
答案:ABD。缩小 patch、混合精度、减小 batch 都是直接减少显存占用的常用手段,梯度累积能在小 batch 下保持稳定的优化更新。把 3D 卷积换成全连接层不仅无法解决问题,还会让参数量爆炸且丢失空间局部性,是错误方案。
Q4. V-Net 在 3D U-Net 基础上引入的关键结构是什么?
- A.残差连接← 正确答案
- B.Transformer 块
- C.空洞卷积
- D.循环神经网络
答案:A。V-Net 的核心创新是在卷积块中加入残差连接(shortcut),让梯度能在深层网络中顺畅回传。Transformer 块是 Swin UNETR 的特征,空洞卷积和循环网络不是 V-Net 的标志性设计。
Q5. 关于 Swin UNETR,下列说法正确的有哪些?
- A.以 Swin Transformer 为编码主干← 正确答案
- B.使用窗口自注意力降低计算复杂度← 正确答案
- C.完全抛弃卷积操作
- D.能同时建模全局与局部特征← 正确答案
答案:ABD。Swin UNETR 的编码器是 Swin Transformer,通过窗口内自注意力和窗口移位实现高效全局建模;解码端仍然使用卷积层和跳跃连接,并非完全抛弃卷积,因此 C 错误。
Q6. 医学影像训练前做归一化的主要目的是什么?
- A.加快文件读写速度
- B.统一不同扫描仪的灰度尺度← 正确答案
- C.去除所有图像噪声
- D.把数据变成彩色图像
答案:B。不同 CT/MRI 设备的灰度范围差异大,归一化让所有体素值分布到相近区间,模型才能学到可泛化的特征。归一化不改变文件格式或读写速度,也无法去除噪声,更不会把数据变彩色。
Q7. V-Net 的“密集训练”策略指的是什么?
- A.用超大 batch size 一次吃进所有数据
- B.推理时相邻 patch 留重叠区域减少拼接伪影← 正确答案
- C.每个 epoch 都随机打乱数据顺序
- D.在 CPU 上逐层训练网络
答案:B。V-Net 提出密集训练,在推理时让滑窗 patch 之间保持重叠,每个体素的预测来自多个窗口的投票,有效减少边界拼接痕迹。超大 batch 或随机打乱是常规训练技巧,不是密集训练的定义。
Q8. 3D 卷积相比 2D 卷积的优势有哪些?
- A.能捕捉 Z 轴方向的上下文信息← 正确答案
- B.参数量一定更少
- C.利用三维空间的连续性← 正确答案
- D.计算速度一定更快
答案:AC。3D 卷积在深度、高度、宽度三个方向滑动卷积核,能感知 Z 轴的立体结构(如血管走向);参数量通常比堆叠多层 2D 卷积更大,计算也更慢,所以 B、D 错误。三维连续性是其核心价值。
Q9. 下列哪一项属于分割任务的输出形式?
- A.一个类别标签
- B.目标边界框坐标
- C.逐体素的类别图← 正确答案
- D.一段文字描述
答案:C。分类输出一个标签,检测输出边界框,而分割要输出与输入同尺寸的逐体素标签图,每个体素都有一个类别。就像给乐高城堡中每一颗积木分别贴标签,而不是给整座城堡贴一个总标签。
Q10. 某 3D 分割模型在测试集上 Dice=0.90,最合理的推断是什么?
- A.模型必然满足所有临床要求
- B.模型完全不可用,需要重新训练
- C.需结合豪斯多夫距离等几何指标综合评估← 正确答案
- D.该结果与数据标注质量完全无关
答案:C。Dice 只衡量体素重叠,对边界偏移不敏感。肿瘤分割 Dice=0.90 时,边界可能仍有数毫米偏差,在放疗场景中不可接受,因此必须结合 HD、ASD 等边界指标以及医生临床验收来判断。A、B 都过于绝对,D 错误——标注质量是 Dice 的重要影响因素。