最优传输如何合成病灶?OTLesMix给医学图像分割带来数据增强新思路

发布时间:2026/8/30 2:00:29
最优传输如何合成病灶?OTLesMix给医学图像分割带来数据增强新思路 做医学图像分割的同学应该都有同感病灶数据永远是“不够用”的。一份高质量的肿瘤掩膜需要影像科医生在 CT、MRI 切片上一层一层手动勾画成本高、周期长而且部分病灶形态本身就十分罕见——比如小尺寸转移瘤、贴近血管生长的结节、跨解剖区域的不规则病变。如果训练集里从未出现过这样的形状和位置模型到了真实场景中很容易漏检、误检甚至把正常组织判成病灶。常规的缓解手段是数据增强旋转、翻转、缩放、弹性形变都是常见操作。但这些方法本质是在“已有病灶”的基础上做几何扰动并不具备生成“新形状、新位置病灶”的能力。于是问题变得很有意思能不能像捏橡皮泥一样把两个真实病灶的形状、位置和纹理做一次可解释的融合从而合成大量“介于两者之间”的逼真病灶样本OTLesMix 正是沿着这条思路提出的方法。它的核心不是复杂神经网络而是一套经典数学工具最优传输Optimal Transport, OT与 Wasserstein 重心Wasserstein Barycenter。这篇文章我会从问题背景、数学原理、方法拆解、代码复现思路、实验验证方式和工程落地建议几个维度把 OTLesMix 完整地讲清楚。无论你是医学图像方向的算法工程师还是对最优传输在深度学习中的应用感兴趣的研究者这篇文章都会对你有帮助。1. 医学图像分割的病灶数据难题1.1 病灶数据为什么稀缺病灶分割数据的稀缺并不是单纯“数据量少”而是好几个因素叠加在一起的结果。首先是标注成本。CTA、MRI 或者病理切片中的病灶边界往往并不清晰不同医生对同一病灶的勾画也可能存在差异。要获得一份高质量标注通常需要多位医生交叉验证甚至病理结果对照这在时间、人力和资金上都是很大开销。其次是隐私约束。医学影像属于敏感个人数据脱敏、加密、伦理审批、数据使用协议等环节都会拖慢数据收集节奏。即便拿到数据不同医院之间的数据格式、扫描协议、设备型号差异也会造成分布偏移。最核心的问题是长尾分布。病灶在真实世界中不是均匀出现的比如早期小病灶、罕见位置的病灶在数据集中占比很低而数据增强恰恰需要在这些样本上下更多功夫。如果只是简单复制粘贴这类样本模型很快就会过拟合换一个姿势、一个角度、一个位置就认不出来。1.2 传统数据增强为什么不够先列一下医学分割里用得最多的几何增强增强方式作用局限旋转、翻转改变病灶方向不改变形状本质小病灶仍难泛化缩放改变病灶尺寸实际病变大小与解剖结构相关不能随意缩放弹性形变轻微扭曲形状幅度太大易失真幅度太小不足以增加多样性亮度对比度扰动模拟不同扫描参数不能生成新的结构信息Mixup / CutMix像素级或块级混合通常不做空间对应病灶位置错开时会产生重影Mixup、CutMix 这类通用增强方法在自然图像分类上效果很好但直接搬到医学图像分割时有一个明显问题病灶不是“一块普通贴纸”它有自身的形状组织、纹理统计和空间语义。当两个病灶位置距离较远时线性插值会产生模糊和重影当你把病灶 A 直接复制到病灶 B 的位置时两个病灶边缘之间的过渡又非常突兀模型学到的更多是“贴图伪影”而不是有意义的病理结构。1.3 合成病灶的两条技术路线为了让训练集覆盖更多形状和位置研究者通常走两条路。一条是生成模型路线典型代表是 GAN 和扩散模型。GAN 可以生成非常逼真的合成病灶但训练不稳定、需要大量真实样本作为监督、生成结果的病理语义难以保证。扩散模型效果更细腻但采样速度慢、训练成本高并且依然存在“生成的内容是否符合真实病理特征”这一可解释性问题。另一条路线是几何变换与图像混合路线OTLesMix 属于这一类。它在两个真实病灶之间建立一个“质量搬运”方案让形状、位置和纹理可以解耦处理。这样做的好处是合成病灶的纹理完全来自真实病灶不存在纹理漂移问题形状和位置则来自数学上可解释的插值过程稳定且可控。2. 先搞清楚最优传输与 Wasserstein 重心2.1 最优传输问题从搬运沙土说起最优传输是一个有 200 多年历史的数学问题最早可以追溯到法国工程师 Monge 在 1781 年提出的“搬土问题”。想象地上有一堆沙子分布形状为 A现在要求你把它搬成分布形状为 B并且每一粒沙子从起点到终点都会产生搬运成本。如果搬运成本用两点之间的距离来度量那么最优传输问题要回答的就是怎样规划每一粒沙子的搬运路径让总成本最低这个“搬运方案”在数学上称为传输计划transport plan记作 γ(x, y)表示有多少质量从源位置 x 流向目标位置 y。Kantorovich 后来对问题做了松弛化处理允许质量被“拆分”于是最优传输问题变成了一个线性规划问题min ∫ c(x, y) dγ(x, y)其中 c(x, y) 是搬运代价函数通常取距离的平方 ||x - y||²。这个公式看起来抽象但含义非常朴素在所有可能的搬运方案里找一个总成本最小的。在图像处理里一张图像的灰度值可以归一化成一个概率分布病灶的掩膜也可以看成一个概率分布。于是最优传输就提供了一种“把一个病灶变成另一个病灶”的最优几何对应关系。2.2 Wasserstein 距离分布之间的距离当最优传输的最优总代价被定义出来后它本身也可以用来度量两个分布之间的距离。这就是 Wasserstein 距离。Wasserstein-p 距离的定义是W_p(μ, ν) (min ∫ ||x - y||^p dγ(x, y))^(1/p)当 p 1 时它也叫推土机距离Earth Movers Distance, EMD在图像检索、生成模型评估等领域有广泛应用。Wasserstein 距离有一个非常重要的几何直觉它考虑的是“质量分布的形状差异”。两个分布即使支撑集完全不重叠Wasserstein 距离也依然有明确的有限值因为质量可以沿着空间距离流动。对比 KL 散度和 JS 散度它们在两个分布支撑集不重叠时可能退化为无穷大或常数导致梯度消失而 Wasserstein 距离不会。在 OTLesMix 中Wasserstein 距离可以用来度量两个病灶掩膜之间的“形状距离”也可以作为插值过程中的一致性指标。2.3 Wasserstein Barycenter分布的“平均”给定多个概率分布 μ₁, μ₂, ..., μ_N它们的 Wasserstein 重心是一个新分布 μ*使得所有分布与 μ* 之间 Wasserstein 距离的加权和最小μ* argmin_μ Σ λ_k · W_p(μ, μ_k)^p如果 λ_k 是权重且所有权重之和为 1那么 μ* 就可以理解为这些分布在“最优传输意义下的平均”。这种平均和欧氏平均很不一样。欧氏平均只是逐点取像素值的加权平均容易产生模糊、重影而 Wasserstein 重心会尽量保持分布本身的结构——在病灶掩膜的场景里它倾向于生成一个“形状介于两个病灶之间”的掩膜而不是简单地灰度混合。举个例子一个病灶是圆形另一个是细长形它们的欧氏平均可能是一团模糊的灰块但 Wasserstein 重心可以生成一个从圆形到细长形渐变过程中的“中间形态”这个形态仍然具有清晰的轮廓和可解释的形状结构。3. OTLesMix 方法拆解形状、位置与纹理如何被“搬运”从命名看OTLesMix 可以拆解为 OT最优传输 Les病变 Lesion Mix混合。它要解决的核心问题是给定两个真实病灶样本如何合成一系列形状、位置都不同但纹理统计真实可信的新病灶。3.1 病灶掩膜作为概率分布OTLesMix 首先把病灶掩膜mask看作一个二维概率分布。假设掩膜中病灶区域像素值为 1背景为 0那么将掩膜归一化后它就是一个定义在像素平面上的离散概率分布源的病灶掩膜 μ_s质量集中在病灶区域目标的病灶掩膜 μ_t质量集中在另一个病灶区域用概率分布的语言来描述病灶是 OTLesMix 最关键的一步。因为这样一来形状差异就变成了“两个概率分布之间的差异”而形状插值就变成了“分布之间的重心计算”。3.2 最优传输映射建立空间对应关系有了两个概率分布下一步是计算它们之间的最优传输映射。这里要说一下“最优传输映射”与“最优传输计划”的区别。最优传输计划 γ(x, y) 是一个联合分布表示质量从 x 到 y 的流量而在某些情况下这个计划可以退化为一个确定性的函数 T: x → y即每个源像素点都映射到唯一的目标像素点这个函数就叫最优传输映射。OTLesMix 使用最优传输计划的核心动机是它比仿射变换、TPS 薄板样条等传统配准方法更灵活能够捕捉两个病灶之间任意的质量对应关系同时保证这种对应是“全局最优”的不会因为局部贪心而产生扭曲。在工程实现中这一步通常通过计算两个掩膜像素坐标之间的代价矩阵然后求解线性规划来完成也就是计算G EMD(μ_s, μ_t, M)其中 M 是像素坐标之间的代价矩阵G 是传输计划。G 本身可以理解为一张“从源病灶到目标病灶的质量流量图”它标识了源病灶每一个像素应该搬运到目标病灶的哪个位置。3.3 Wasserstein 重心生成多样中间形状有了传输计划之后OTLesMix 要做的不是直接跳到最极端的目标形状而是在源病灶和目标病灶之间生成一系列中间形态。这一部分用到的正是 Wasserstein 重心。考虑两个掩膜 μ_s 和 μ_t取权重 λ ∈ [0, 1]计算它们的 Wasserstein 重心μ_λ argmin_μ [ (1-λ) · W_p(μ, μ_s)^p λ · W_p(μ, μ_t)^p ]当 λ 0 时重心就是源掩膜当 λ 1 时重心就是目标掩膜当 λ 0.5 时重心是“中间形状”。由于 Wasserstein 重心本身是概率分布因此合成掩膜依然保留着清晰的形态结构不会像线性插值那样出现模糊和重影。通过改变 λ 的取值可以生成一系列形状平滑变化的病灶掩膜这就是“Diverse Shapes”的来源。3.4 纹理保持与位置迁移单纯生成形状还不够合成病灶必须带上真实的纹理灰度统计特征才可用于模型训练。OTLesMix 的做法是用最优传输计划把源病灶的图像纹理“搬运”到目标病灶的位置上去。具体来说给定传输计划 G对于目标位置的每一个像素我们根据 G 中对应的权重从源病灶图像里加权采样像素值得到一张“迁移动态纹理图”。这样整个方法就把病灶的“形状”和“纹理”解耦了形状来自 Wasserstein 重心插值纹理来自真实源病灶的传输搬运位置来自最优传输映射所建立的空间对应关系通过改变源病灶、目标病灶的组合以及权重 λ可以生成“形状像 A、纹理像 B、位置接近 A/B 之间”的大量合成病灶。病灶位置的多样性主要来自两个方面一是源病灶和目标病灶本身位置不同传输计划会把纹理搬运到新的位置二是在多个真实病灶之间两两组合时会形成大量没有在原始数据中出现过的位置分布。3.5 合成病灶如何融入训练数据在实际训练时OTLesMix 通常作为一个在线数据增强模块接入分割训练管线。流程大致如下训练集中维护一个“真实病灶库”每个样本包含病灶小块和对应掩膜。每个训练 step 随机抽取两个病灶样本。用 OTLesMix 合成新的病灶 patch。将合成 patch 粘贴到训练图像的随机位置或通过 OT 映射得到的合理位置。合成 patch 对应的掩膜直接作为训练标签。通过这种方式训练集每次迭代都有新的合成病灶出现模型能够见到更多样的形状和位置组合。4. 代码复现思路用 Python 实现核心模块下面给出一个基于 POTPython Optimal Transport库的示例实现。需要提前说明这部分代码是为了帮助你理解 OTLesMix 的核心思路并不是论文官方实现的完整代码。实际复现时需要根据你自己的数据格式、病灶尺寸和训练框架进行调整。4.1 环境准备与依赖建议使用以下环境Python 3.8 PyTorch 1.10训练分割模型用 POT 0.9.0最优传输计算 NumPy OpenCV图像读写与后处理安装 POTpip install POT如果你已经安装了 PyTorch可以用下面命令验证 POT 是否安装成功python -c import ot; print(ot.__version__)4.2 计算最优传输映射下面的函数接收两个二值掩膜返回一个从源掩膜到目标掩膜的传输计划import numpy as np import ot def compute_ot_map(mask_src, mask_tgt, eps1e-6): 计算从源掩膜到目标掩膜的最优传输计划。 参数: mask_src (np.ndarray): 源病灶掩膜形状 (H, W)像素值为 0/1 mask_tgt (np.ndarray): 目标病灶掩膜形状 (H, W)像素值为 0/1 eps: 防止除零的极小值 返回: G (np.ndarray): 传输计划形状 (H, W, H, W) G[i, j, a, b] 表示从源像素 (i, j) 搬运到目标像素 (a, b) 的质量 h, w mask_src.shape # 1. 将掩膜展平成概率分布 mu_s mask_src.reshape(-1).astype(np.float64) mu_t mask_tgt.reshape(-1).astype(np.float64) mu_s / (mu_s.sum() eps) mu_t / (mu_t.sum() eps) # 2. 生成像素坐标网格 yy, xx np.mgrid[0:h, 0:w] coords np.stack([xx.ravel(), yy.ravel()], axis1).astype(np.float64) # 3. 计算代价矩阵欧氏距离的平方 M ot.dist(coords, coords, metricsqeuclidean) M / (M.max() eps) # 4. 使用 EMD 求解最优传输计划 G ot.emd(mu_s, mu_t, M) return G.reshape(h, w, h, w)这段代码最核心的是两个部分ot.dist(coords, coords, metricsqeuclidean)计算所有源像素与所有目标像素之间的代价矩阵。ot.emd(mu_s, mu_t, M)用线性规划求解最优传输计划。代价矩阵的标准通常会显著影响数值稳定性所以我对 M 做了归一化处理让最大值等于 1。实际使用中如果你的病灶尺寸较大比如 128×128直接展开像素会得到 16384×16384 的代价矩阵内存开销极高建议先在连通域级别计算或者缩小到 32×32 再上采样。4.3 计算 Wasserstein 重心POT 提供了ot.bregman.convolutional_barycenter2d可以直接对多张二维图像计算熵正则化的 Wasserstein 重心def wasserstein_barycenter(masks, reg1e-2, num_iters100): 计算多张掩膜的 Wasserstein 重心。 参数: masks (np.ndarray): 形状 (N, H, W) 的二值掩膜数组 reg: 熵正则化系数越大速度越快但形状越模糊 num_iters: Sinkhorn 迭代次数 返回: bary (np.ndarray): 形状 (H, W) 的密度图值在 0~1 之间 n, h, w masks.shape # 归一化为概率分布 A np.stack([ m.astype(np.float64) / (m.sum() 1e-6) for m in masks ], axis0) bary ot.bregman.convolutional_barycenter2d( A, reg, numItermaxnum_iters ) return bary需要注意convolutional_barycenter2d使用的是卷积 Sinkhorn 算法计算效率比普通 Sinkhorn 高很多适合图像这种二维网格数据。reg是一个关键参数reg 太小形状更锐利但迭代收敛慢。reg 太大计算快但得到的重心会偏模糊。由于我们最终需要合成清晰的病灶掩膜通常会在得到重心密度图后用阈值比如 0.5进行二值化或者再做一次连通域筛选去掉零碎噪声。4.4 纹理搬运与合成病灶传输计划的作用是把源病灶纹理搬运到目标位置。一个朴素的实现如下def transport_texture(image_src, G): 根据传输计划 G 将源图像纹理搬运到目标坐标位置。 参数: image_src (np.ndarray): 源病灶图像形状 (H, W, C) 或 (H, W) G (np.ndarray): 传输计划形状 (H, W, H, W) 返回: warped (np.ndarray): 搬运后的纹理图形状与 image_src 一致 h, w image_src.shape[:2] channel_dim image_src.ndim warped np.zeros_like(image_src, dtypenp.float64) # 对每个目标像素 (a, b) 加权聚合源像素的值 for a in range(h): for b in range(w): weights G[:, :, a, b] total weights.sum() if total 1e-12: continue weights weights / total if channel_dim 2: warped[a, b] (image_src * weights).sum() else: for c in range(image_src.shape[2]): warped[a, b, c] (image_src[:, :, c] * weights).sum() return warped这个双重循环在理论上是正确的但效率很低。实际工程中可以先把传输计划转化为一个稀疏的“源坐标重映射表”再用scipy.ndimage.map_coordinates做一次插值速度会快得多。下面把整个 OTLesMix 合成流程串起来def otlesmix_synthesize(image_src, mask_src, image_tgt, mask_tgt, lam0.5): 合成一个位于源病灶与目标病灶之间的新病灶。 参数: image_src: 源病灶图像块形状 (H, W, 3) mask_src: 源病灶掩膜形状 (H, W)0/1 image_tgt: 目标病灶图像块形状 (H, W, 3) mask_tgt: 目标病灶掩膜形状 (H, W)0/1 lam: Wasserstein 重心的权重越大越接近目标病灶 返回: synth_image: 合成病灶图像块 synth_mask: 合成病灶掩膜 # 1. 计算源到目标的最优传输计划 G compute_ot_map(mask_src, mask_tgt) # 2. 将源纹理搬运到目标病灶位置 warped_texture transport_texture(image_src, G) # 3. 计算两个掩膜的 Wasserstein 重心 bary wasserstein_barycenter( np.stack([mask_src, mask_tgt], axis0), reg1e-2 ) # 4. 根据 lam 生成中间形状掩膜 synth_mask bary (1 - lam) # 5. 背景部分保留目标图像病灶区域使用搬运后的纹理 synth_image image_tgt.copy() synth_image[synth_mask] warped_texture[synth_mask] return synth_image, synth_mask.astype(np.float32)这段代码中lam既是重心权重也充当了掩膜阈值的调节。实际使用中可以拆分成两个独立参数便于控制“形状接近程度”和“掩膜阈值”。5. 从想法到实验如何验证 OTLesMix 的有效性设计好合成方法之后最关键的验证工作是把合成样本真正用到分割模型训练中并和 baseline 对比。这里的实验协议值得认真设计。5.1 评测任务选择OTLesMix 适合作为病灶分割任务的数据增强模块。常见的验证数据集包括BraTS2021多模态脑胶质瘤 MRI 数据集包含 T1、T1ce、T2、FLAIR 四个模态标注有坏死、水肿、增强肿瘤等结构。LiTS肝脏及肝脏肿瘤 CT 数据集常用于腹部病灶分割。MSDMedical Segmentation Decathlon包含多种器官与病灶分割任务如胰腺、肝脏、结肠癌等。选择数据集时最好选择病灶形状差异大、位置分布广的数据这样才能体现 OTLesMix 的优势。如果数据集里全是圆心近似、大小相近的小病灶OT 方法和普通旋转缩放的区别就不明显。5.2 对比基线设置至少需要设置以下几组对比方法说明无增强直接用原始数据训练几何增强旋转、翻转、缩放、弹性形变Mixup / CutMix通用混合增强作为像素混合基线OTLesMix本文讨论的最优传输合成方法评价指标建议同时看全局指标和困难样本指标Dice 系数最常用的区域重叠指标。IoU交并比对边界误差更敏感。HD9595% 豪斯多夫距离反映边界最大偏差对病灶边缘质量敏感。罕见形状子集指标把测试集中形状最不规则、位置最边缘的样本单独统计更容易看出 OTLesMix 带来的提升。5.3 训练流程与超参数建议在实际训练中OTLesMix 通常作为一个在线增强器使用。推荐流程如下离线抽取训练集中所有病灶 patch 和对应掩膜构建病灶库。每个训练 step 以一定概率比如 0.3~0.5触发 OTLesMix 增强。每次触发时从病灶库随机抽取两个病灶随机选择 λ ∈ [0.1, 0.9]。用 OTLesMix 生成合成 patch粘贴到当前训练图像中。使用合成 patch 的掩膜作为对应位置的真实标签参与损失计算。这里有一个值得注意的细节合成病灶粘贴到训练图时需要避免粘贴到不合理的解剖位置。最简单的方式是保持源病灶与目标病灶的相对解剖位置关系或者限制粘贴位置在特定器官区域内。6. 常见理解误区与排查建议在理解和复现 OTLesMix 的过程中下面几个误区比较常见我整理成表格方便排查。误区产生原因正确理解与解决思路把 Wasserstein 重心当作逐像素线性插值没有理解分布的“质量流动”概念线性插值在欧氏空间逐点平均容易产生模糊Wasserstein 重心是概率分布之间的几何平均能保留结构直接把 OTLesMix 当 GAN 用期望生成全新语义混淆“融合已有样本”和“从潜空间采样生成”OTLesMix 是在真实样本之间插值语义由真实样本约束不会凭空创造病灶代价矩阵用像素欧氏距离但不归一化EMD 求解数值不稳定建议先对代价矩阵做归一化处理或改用熵正则化 Sinkhorn 求解只生成病灶但不检查视觉合理性实验流程不够严谨至少要做人工抽样检查保证纹理连续、边界不出现明显伪影在整张图上计算 OT内存溢出图像尺寸太大先裁剪病灶区域到小 patch 上计算合成后再贴回原图认为 λ 越极端多样性越好对插值系数作用理解不深λ 接近 0 或 1 时合成结果接近真实样本多样性有限0.3~0.7 区间更值得探索如果你遇到合成结果中出现大量空洞或者噪声点优先检查掩膜归一化是否遗漏以及reg正则化系数是否过大。reg过大会让重心变得过于平滑二值化后很容易出现零碎伪影。7. 工程化落地的几条建议把 OTLesMix 从论文实验迁移到实际项目中有几个工程层面的问题值得提前规划。7.1 病灶库的构建与管理病灶库的质量直接决定合成样本质量。建议在训练流程开始前先对训练集做一次离线分析筛选出面积适中、边界清晰的病灶。太小的病灶比如只有十几个像素在 OT 计算中噪声非常大边界模糊的病灶掩膜本身就不准合成出来的样本也会带偏模型。病灶库可以采用统一尺寸的 patch 存储例如统一缩放到 64×64 或 128×128。为了避免病灶形态被缩放扭曲记录每个 patch 的原始尺寸和缩放比例合成后再变换回原图尺度。7.2 在线增强 vs 离线增强OTLesMix 的计算开销主要集中在 EMD 求解上在线增强时如果每个 batch 都重新计算会拖慢训练速度。实际工程中推荐“离线预计算 在线随机组合”的方式离线阶段从病灶库中挑选有代表性的配对组合预计算传输计划和重心形状保存到磁盘。在线阶段训练时直接读取预计算的组合结果随机选择 λ 进行纹理搬运和粘贴将单次增强开销控制在毫秒级。这种方式牺牲了一部分随机性但大幅提高了训练效率更适合大规模数据场景。7.3 质量控制与医学合规合成病灶生成得再逼真也不能绕过医学数据的合规要求。使用真实病人数据构建病灶库前必须确认数据的合法授权、匿名化处理和伦理审批。合成样本不应包含可识别患者身份的信息也不能当成真实影像用于任何临床诊断目的。此外如果项目要上线到真实医疗场景建议邀请影像科医生对合成样本进行抽样评估确认病灶的形态、边缘和纹理在病理上合理。这一点是最容易被算法团队忽视但又是最重要的环节。7.4 增强策略的动态调整不建议在训练全程使用固定的 OTLesMix 触发概率。更合理的做法是课程式增强训练早期模型还在学习基础特征以常规几何增强为主训练中期逐步引入 OTLesMix提高样本多样性训练后期收敛阶段再降低触发概率避免模型过于依赖合成样本而产生分布偏移。你可以用一个简单的 epoch 调度函数来控制触发概率def get_otlesmix_prob(epoch, max_epochs, p_max0.5): 随着训练进行先提升再降低 OTLesMix 使用概率。 前半程线性上升到 p_max后半程线性下降。 half max_epochs / 2 if epoch half: return p_max * (epoch / half) else: return p_max * (1 - (epoch - half) / half)7.5 与其它增强方法的组合OTLesMix 并不排斥传统增强方法。推荐在 OTLesMix 合成结束后再叠加随机旋转、小幅度缩放和亮度扰动进一步增加多样性。但要注意控制组合强度避免病灶纹理被过度扰动而失真。组合增强的顺序也影响效果。通常建议先做空间变换旋转、翻转再做强度变换亮度、对比度最后再做随机遮挡类增强。对医学图像而言空间变换要保持解剖关系所以旋转角度不宜过大比如限制在 ±15 度以内。8. 总结与下一步学习方向OTLesMix 的价值在于提供了一种真正可解释、可控制的病灶合成思路。它把病灶分割中的数据稀缺问题转化为经典的最优传输数学问题用 Wasserstein 重心生成多样形状用最优传输映射搬运纹理和位置。这种方法不需要训练额外的生成模型也不会出现 GAN 常见的训练不稳定问题。如果你想把 OTLesMix 用在自己的任务里我的建议是从小规模开始先拿一个小数据集只做两个病灶之间的 OT 混合看看生成的 patch 在视觉上是否合理确认纹理和形状都自然之后再把它接入训练管线。最优传输的数学看起来硬核但它最终解决的问题非常直观——把一个分布搬到另一个分布。理解了这句话就理解了 OTLesMix 的一半。接下来你可以继续深入的方向包括Sinkhorn 算法与熵正则化的原理、切片 Wasserstein 距离在高维问题中的应用、最优传输在域适应中的用法以及如何用卷积 Sinkhorn 加速图像级重心计算。如果这篇文章对你有帮助可以先收藏备用如果你在复现中遇到了具体报错或效果异常欢迎在评论区把你的处理步骤和现象发出来一起排查。

相关新闻