一、医疗影像分析 ⭐
1.1 影像模态
| 模态 | 全称 | 特点 | 常见任务 |
|---|---|---|---|
| CT | Computed Tomography | 3D X光断层,高分辨率骨骼 | 器官分割、病灶检测 |
| MRI | Magnetic Resonance Imaging | 软组织结构清晰 | 脑肿瘤分割、病变检测 |
| X-Ray | X射线 | 2D、快、便宜 | 肺炎/骨折检测 |
| Ultrasound | 超声 | 实时、无辐射 | 胎儿检查、心脏 |
| 病理切片WSI | Whole Slide Image | 十亿像素级 | 病理诊断 |
| Retinal Fundus | 眼底照相 | 视网膜血管 | 糖尿病视网膜病变 |
1.2 核心任务
| 任务 | 说明 | 典型方法 | 数据集 |
|---|---|---|---|
| 器官/病灶分割 | 像素级标注 | nnUNet, TransUNet | KiTS, LiTS |
| 疾病分类 | 全图/ROI分类 | ResNet, EfficientNet | ChestXray14 |
| 病灶检测 | 定位病变位置 | YOLO, RetinaNet | LUNA16 |
| 图像配准 | 多模态对齐 | VoxelMorph | - |
| 超分辨率 | 提高图像质量 | SRGAN | - |
| 报告生成 | 影像→文本报告 | 多模态VLM | MIMIC-CXR |
1.3 nnUNet ⭐
自适应框架: 根据数据集自动配置网络
1. 分析数据集统计信息(spacing/intensity/class frequencies)
2. 自动选择3D/2D U-Net + 配置
3. 自动Patch大小/批大小/学习率
4. 集成5折交叉验证
5. 测试时增强
结果: 在10+医学分割任务中SOTA
1.4 医疗影像挑战
| 挑战 | 说明 |
|---|---|
| 数据量小 | 标注成本极高 |
| 类别不平衡 | 病灶远小于背景 |
| 跨模态 | CT/MRI/X-Ray/Micro不同 |
| 隐私保护 | HIPAA/GDPR合规 |
| 可解释性 | 临床需要理由 |
| 3D数据 | 内存/计算需求大 |
1.5 常用数据集
| 数据集 | 任务 | 规模 |
|---|---|---|
| LiTS (肝肿瘤) | 分割 | 201个CT |
| KiTS (肾脏) | 分割 | 300个CT |
| BraTS (脑肿瘤) | 分割 | 1251个MRI |
| ChestX-ray14 | 分类 | 112K X光 |
| MIMIC-CXR | 报告生成 | 377K 影像 |
| PANDA (前列腺) | 分级 | 12K病理 |
| ISIC (皮肤) | 分类 | 23K 皮肤镜 |
二、遥感与卫星图像
2.1 任务
| 任务 | 说明 |
|---|---|
| 目标检测 | 飞机/舰船/车辆检测 |
| 场景分类 | 城市/森林/农田/水域 |
| 变化检测 | 随时间的变化 |
| 语义分割 | 土地覆盖分类 |
| 目标计数 | 车辆/建筑计数 |
| 超分辨率 | 提高卫星图分辨率 |
2.2 遥感特点
| 特性 | 说明 |
|---|---|
| 多光谱 | RGB+NIR+SWIR+... |
| 旋转方向任意 | 需要旋转不变性 |
| 尺度巨大 | 30000×30000+ 像素 |
| 小目标密集 | 道路/车辆/建筑 |
| 大角度视角 | 非水平视角 |
2.3 遥感数据集
| 数据集 | 任务 | 规模 |
|---|---|---|
| DOTA | 旋转目标检测 | 280K inst |
| xView | 目标检测 | 1M inst |
| DeepGlobe | 分割/分类 | 多任务 |
| LoveDA | 语义分割 | 5K (城市/乡村) |
| ISPRS Potsdam | 城市分割 | 38张高分辨率 |
| FAIR1M | 旋转检测 | 1M inst |
python
# 旋转框检测 (DOTA数据集需要)
# 输出: (x, y, w, h, θ) 带角度的Bbox
# 常用: RoI Transformer, Oriented R-CNN, S2ANet
# 框架: MMROTATE (OpenMMLab)
📺 推荐视频
- 医学图像深度学习入门: YouTube/B站
- nnUNet教程: B站搜索
- 遥感目标检测: B站搜索 "旋转目标检测"
📚 推荐论文
| 领域 | 论文 | 年份 |
|---|---|---|
| 医学 | nnUNet: Self-adapting Framework | 2020 |
| 医学 | CheXNet (肺炎分类) | 2017 |
| 医学 | TransUNet | 2021 |
| 遥感 | DOTA (旋转检测数据集) | 2017 |
| 遥感 | ReDet (旋转不变检测) | 2021 |
| 医学 | MedSAM (SAM医学版) | 2023 |
🔗 资源链接
- MONAI (医学影像DL框架): https://monai.io/
- nnUNet: https://github.com/MIC-DKFZ/nnUNet
- MMROTATE: https://github.com/open-mmlab/mmrotate
- ITK-SNAP (3D标注工具): http://www.itksnap.org/
- 3D Slicer (医学可视化): https://www.slicer.org/
附录:深层补充
一、nnUNet 详解
1.1 自适应框架的三步 Pipeline
nnUNet(no-new-Net)的理念:不需要手动调参,框架根据数据集自动配置一切。
Step 1:数据指纹提取(Dataset Fingerprint)
分析训练集的统计信息:
- 空间属性(spacing):CT 体素间距(如 0.7mm × 0.7mm × 1.5mm),决定 anisotropic 程度
- 强度属性(intensity):全局均值、标准差、上下 0.5 百分位数、模态(CT/MRI 等)
- 尺寸属性(size):所有病例的 3D 形状分布(最大/最小/中位数 patch 尺寸)
- 类别属性(class):类别数目、每类的体素数量(类别频率)
Step 2:Pipeline 配置(自动规则引擎)
基于指纹自动推导:
| 参数 | 自动推导逻辑 |
|---|---|
| 架构选择 | 3D UNet vs 2D UNet vs 3D+2D 级联 |
| Patch 大小 | 根据显存约束最大化 patch size(常选择训练集中值) |
| Batch 大小 | 由 patch size 和显存反向推导(默认从2往下调整) |
| 下采样策略 | 根据 spacing 的 anisotropic 程度决定各轴下采样次数 |
| 强度归一化 | CT 用全局 z-score(来自1000个随机采样体素),MRI 用局部 z-score |
| 数据增强 | 固定增强策略(旋转、缩放、弹性变形、Gamma校正、镜像) |
| 损失函数 | Dice + CE 损失组合 |
| 学习率 | 基于 batch size 和 patch size 的经验公式: l r = 0.01 × ( b a t c h / 2 ) lr = 0.01 \times (batch/2) lr=0.01×(batch/2) |
| 训练策略 | 5折交叉验证 + 1000 epochs(每 epoch 250个 mini-batch) |
| 后处理 | 自动检测是否需要移除孤立的预测区域(连通域分析) |
Step 3:模型训练与集成
- 5折交叉验证训练 5 个模型
- 测试时:5 个模型的预测结果取软投票(soft voting)平均
- 对于 3D 大 patch 的 GPU 限制:随机采样若干 3D patch 并用 patch 预测拼接
- 测试时增强(Test-time Augmentation, TTA):翻转 + 缩放
1.2 nnUNet 为何持续领先
nnUNet 在医学分割竞赛中长期霸榜的原因:
- 自动搜索优于多数手动调参:医学数据的多样性极大,手动针对每个数据集调参不现实
- 朴实但有效的架构:UNet 多层跳跃连接天然适合逐级细化的医学分割
- 合理的 patch 策略:patch size 最大化策略保证模型能看到足够大的局部上下文
- 5 折集成:医学数据量小,集成显著提升泛化性
- 强大的数据增强:尤其弹性变形对器官变形建模很重要
- 精确的 normalization:CT 的强度值本身有物理意义(Hounsfield Unit),正确的归一化至关重要
二、医学分割的特殊挑战
2.1 数据量小与迁移学习
医学分割数据标注成本是通用的 10-100 倍(需要有资质的医生),导致数据量通常只有几十到几百个病例。
迁移学习策略:
- ImageNet 预训练:对 2D 切片有效(如 CheXNet),但对 3D 数据挑战大
- 自监督预训练:SimCLR / MAE 在医学数据上预训练编码器,再用少量标注数据微调
- 领域特定预训练:使用其他医学数据集(如 RadImageNet、CT-ORG)预训练
- 跨模态微调:CT→MRI 的特征适配(如对抗域自适应)
2.2 标注噪声与软标签
医学标注存在显著 inter-rater variability(阅片者间差异),有时专家之间标注的 Dice 仅为 0.7-0.8。
置信度学习(Confidence Learning):
- 估计每个标注的噪声概率( P ^ ( y = y ~ ∣ x ) \hat{P}(y=\tilde{y}|x) P^(y=y~∣x) 标注相对于真实标签的可信度)
- 使用 Prune by Class (PBC) 等技术剔除低置信度样本
软标签(Soft Label):
- 当有多名医生的标注时,取平均概率图作为训练目标
- 单个医生的标注 + 使用多尺度高斯模糊生成软边界
损失函数的适配:
- 使用 L1 损失替代 CE 损失(对标签噪声更鲁棒)
- 基于互信息的噪声适应损失: L n o i s e = − ∑ log P ( y ~ = y ) P ( y ∣ x ) \mathcal{L}_{noise} = -\sum \log P(\tilde{y}=y) P(y|x) Lnoise=−∑logP(y~=y)P(y∣x)
2.3 类别严重不平衡与复合损失
病灶体素通常仅占全图的 0.1%-5%,类别极度不平衡。
复合损失函数 :
L = α ⋅ L D i c e + β ⋅ L C E \mathcal{L} = \alpha \cdot \mathcal{L}{Dice} + \beta \cdot \mathcal{L}{CE} L=α⋅LDice+β⋅LCE
- L D i c e = 1 − 2 ∑ p i g i + ϵ ∑ p i + ∑ g i + ϵ \mathcal{L}_{Dice} = 1 - \frac{2\sum p_i g_i + \epsilon}{\sum p_i + \sum g_i + \epsilon} LDice=1−∑pi+∑gi+ϵ2∑pigi+ϵ:关注区域重合度,不受背景干扰
- L C E = − ∑ g i log p i \mathcal{L}_{CE} = -\sum g_i \log p_i LCE=−∑gilogpi:提供像素级梯度信号
进阶损失:
- Tversky Loss:对假阳/假阴施加不等权重
- Focal Tversky Loss : L F T = ( 1 − Tversky ) γ \mathcal{L}_{FT} = (1 - \text{Tversky})^{\gamma} LFT=(1−Tversky)γ,聚焦难分样本
- Boundary Loss:基于距离变换,关注边界精度
2.4 3D 数据的高计算需求
| 挑战 | 后果 | 解决方案 |
|---|---|---|
| 3D 体素数量大 | batch size 只能设为 1-2 | Gradient Accumulation |
| 3D 卷积计算量大 | 训练时间长 | 混合精度 (AMP) |
| 标注尺寸大(如 512×512×500) | GPU 装不下 | Patch-wise 训练 + 滑动窗口推理 |
| anisotropic spacing | 各轴分辨率不一致 | 插值为 isotropic 或使用各向异性卷积 |
Patch-wise 训练:
- 从 3D 体积中随机裁剪固定大小的 3D patch(如 128×128×128)
- 训练时:随机采样,确保包含病灶区域(正样本采样策略)
- 推理时:滑动窗口(stride = patch/2)重叠预测,重叠区域取平均
三、医疗大模型进展
3.1 MedSAM(Medical SAM)
MedSAM 将 SAM 微调到医学领域,核心改动:
- 在全科医学图像上 fine-tune(CT/MRI/超声/X 光/病理等 11 种模态)
- 训练数据:超过 100 万对(医学图像 + 医生标注的 mask)
- 微调策略:固定 Image Encoder(ViT),只训练 Mask Decoder + prompt encoder
- 支持 2D 和 3D(slice-by-slice 推理 + 体素一致性约束)
- 自动提示生成(Automatic Prompt Generation):网格采样 + 前景 saliency 生成建议点
3.2 RadImageNet 大规模医学预训练
RadImageNet 是 CT/MRI/超声的多模态预训练数据集(超过 130 万张影像),使用 ResNet-50/152 和 EfficientNet 在 4 万+ 医学概念上预训练。
与 ImageNet 预训练的对比:
- ImageNet 的 3 通道 RGB 空间: μ = 0.485 , 0.456 , 0.406 , σ = 0.229 , 0.224 , 0.225 \mu = 0.485, 0.456, 0.406, \sigma = 0.229, 0.224, 0.225 μ=0.485,0.456,0.406,σ=0.229,0.224,0.225
- RadImageNet 的医学图像空间:单通道/多通道 CT 窗宽窗位调整后的 intensity 归一化
- 医学下游任务上 RadImageNet 预训练比 ImageNet 预训练提升 3-8% AUC
3.3 病理大模型(CTransPath / REMP)
病理图像 WSI(Whole Slide Image)尺寸可达 10 5 × 10 5 10^5 \times 10^5 105×105 像素,需要特殊的 patch 化策略:
- CTransPath:将病理图像切分为 224×224 patch,在 15K+ 病理数据上用 MoCo 自监督预训练 CNN + Transformer 混合编码器
- REMP(Region Embedding with Multi-modal Pretraining):利用病理报告文本辅助病理图像的自监督学习,实现图文对齐
3.4 报告生成(CLIP-driven 方法)
医学报告生成是将影像(如 X 光、CT)自动转化为结构化诊断文本。
CLIP-driven 框架:
- 图像编码器:ResNet / ViT 提取医学影像特征
- 文本编码器:BioBERT / PubMedBERT 编码诊断报告
- 对比学习:在同一患者的影像-报告对上做对比学习
- 报告生成:使用 Transformer decoder 在 CLIP 视觉特征条件下生成文本
代表性工作:
- R2Gen:基于 Transformer 的放射报告生成
- CXR-LLaVA:基于 LLaVA 的多模态 chest X-ray 对话系统
- MAIRA:Microsoft 的多模态胸部 X 光报告生成
四、遥感目标检测
4.1 旋转目标检测
遥感图像中的目标(飞机、舰船)具有任意朝向,水平框(HBB)会包含大量背景、导致 NMS 误抑制问题。
旋转框表示法:
常用 5 参数表示法: ( x , y , w , h , θ ) (x, y, w, h, \theta) (x,y,w,h,θ)
- x , y x, y x,y:中心点坐标
- w , h w, h w,h:长边和短边
- θ ∈ [ − 90 ° , 0 ° ) \theta \in [-90\degree, 0\degree) θ∈[−90°,0°)(OpenCV 定义)或 ∈ [ − 180 ° , 180 ° ) \in [-180\degree, 180\degree) ∈[−180°,180°)(长边定义)
角度回归的边界问题 :角度 θ \theta θ 是周期性变量, 0 ° 0\degree 0° 和 − 90 ° -90\degree −90° 实际表示相同方向,但数值差异极大,导致回归不稳定。
解决方案:
-
Smooth L1 + 角度周期损失 :
L r e g = SmoothL1 ( θ , θ ^ ) + λ ⋅ circular ( θ − θ ^ ) \mathcal{L}_{reg} = \text{SmoothL1}(\theta, \hat{\theta}) + \lambda \cdot \text{circular}(\theta - \hat{\theta}) Lreg=SmoothL1(θ,θ^)+λ⋅circular(θ−θ^)
-
基于 GWD/KLD 的旋转 IoU 近似(Gaussian Wasserstein Distance):将旋转框建模为 2D 高斯分布,计算分布间的距离
| 方法 | 旋转检测方式 | 特点 |
|---|---|---|
| RoI Transformer | RoI warping + 旋转 RoI 精调 | Two-stage,先 HBB 再旋转精调 |
| S2ANet | 对齐卷积(AlignConv) | 单级 + 特征对齐 |
| Oriented R-CNN | 旋转 RPN | Two-stage 直接旋转 |
| ReDet | 旋转等变网络 | 旋转不变特征提取 |
4.2 遥感独特问题
| 问题 | 具体表现 | 缓解策略 |
|---|---|---|
| 大尺度变化 | 同一类目标尺寸可差 10× | FPN + 多尺度训练测试 |
| 密集排列 | 飞机场/港口大量密集目标 | 软化 NMS,引入 repulsion loss |
| 小目标 | 远景车辆仅数十像素 | 超分辨率重建 + 注意力放大 |
| 类间相似性 | 立交桥 vs 普通路面 | 上下文感知(大感受野 + 场景理解) |
| 朝向多样化 | 任意角度分布 | 旋转框 + 角度增强 |
4.3 多尺度检测策略
Feature Pyramid Network (FPN) 在遥感中的适配:
- 遥感中目标尺度范围极宽(从几像素到几千像素)
- 需要 FPN 的 P2-P6 多级特征(相对通用检测的 P3-P5)
- 不同 level 的 anchor 分配:P3 对应小目标,P6 对应大目标
可变形卷积(Deformable Conv):
- 标准卷积是规则网格采样,对旋转/形变目标效率低
- 可变形卷积 y ( p 0 ) = ∑ p n ∈ R w ( p n ) ⋅ x ( p 0 + p n + Δ p n ) y(p_0) = \sum_{p_n \in \mathcal{R}} w(p_n) \cdot x(p_0 + p_n + \Delta p_n) y(p0)=∑pn∈Rw(pn)⋅x(p0+pn+Δpn) 自适应偏移
- 偏移 Δ p n \Delta p_n Δpn 通过额外分支学习,受目标形状引导
五、遥感图像分割
5.1 遥感语义分割
遥感语义分割每像素分配土地覆盖类别(建筑/道路/植被/水体/裸地)。
DeepLabV3+ 的遥感适配:
- 使用空洞空间金字塔池化(ASPP)捕获多尺度上下文:
- rate = 6 , 12 , 18 \text{rate}=6,12,18 rate=6,12,18 的空洞卷积处理不同尺度建筑
- Image Pooling 捕获全局场景类别
- Encoder-Decoder 结构恢复边缘细节(道路的细长边缘)
SegFormer 的遥感适配:
- 层次化 Transformer 编码器(Mit-B0 到 Mit-B5)
- 重叠 patch merging 减少分辨率损失
- MLP 解码器避免了复杂的 ASPP 结构,对大尺度遥感图更高效
5.2 遥感变化检测
变化检测的目标:对比同一区域的双时相图像,检测发生变化的位置。
孪生网络(Siamese Network)设计 :
F t 1 = f θ ( I t 1 ) , F t 2 = f θ ( I t 2 ) \mathbf{F}{t1} = f\theta(\mathbf{I}{t1}), \quad \mathbf{F}{t2} = f_\theta(\mathbf{I}_{t2}) Ft1=fθ(It1),Ft2=fθ(It2)
变化检测的三种范式:
-
早期对比(Early Difference) :
D = ∣ F t 1 − F t 2 ∣ \mathbf{D} = |\mathbf{F}{t1} - \mathbf{F}{t2}| D=∣Ft1−Ft2∣,然后对差异图做分割
- 简单快速,对光照变化敏感
-
孪生编码 + 差异解码(Siamese + Difference Decoder) :
双流共享权重编码,特征差异输入解码器
- 代表性:ChangeNet 、BIT(用 Transformer 建模双时相全局关系)
-
双时相 Transformer(Bitemporal Transformer):
- 将 F t 1 \mathbf{F}{t1} Ft1 和 F t 2 \mathbf{F}{t2} Ft2 的 token 拼接,用自注意力捕获双时相的像素级对应
- BIT(Bitemporal Image Transformer):对双时相 token 做 cross-attention
- ChangeFormer:Swin Transformer + MLP decoder
变化检测的评估指标 :
F1 = 2 TP 2 TP + FP + FN , IoU c h a n g e = TP TP + FP + FN \text{F1} = \frac{2\text{TP}}{2\text{TP} + \text{FP} + \text{FN}}, \quad \text{IoU}_{change} = \frac{\text{TP}}{\text{TP} + \text{FP} + \text{FN}} F1=2TP+FP+FN2TP,IoUchange=TP+FP+FNTP
5.3 超分辨率重建
遥感超分辨率将低分辨率卫星图(如 30m/pixel)重建为高分辨率(如 5m/pixel)。
退化模型 :
I L R = ( I H R ⊗ k ) ↓ s + n \mathbf{I}{LR} = (\mathbf{I}{HR} \otimes k) \downarrow_s + n ILR=(IHR⊗k)↓s+n
- k k k:模糊核(高斯模糊 / 运动模糊)
- ↓ s \downarrow_s ↓s:下采样因子(通常 2-8×)
- n n n:加性噪声
经典方法:
- SRCNN:3层卷积端到端映射
- ESPCN:亚像素卷积(sub-pixel conv)实现高效上采样
- RCAN / HANet:残差注意力网络
对遥感图的挑战:
- 遥感图像的低分辨率退化未知(模糊核、噪声水平不同)
- 盲超分辨率(Blind SR)------同时估计退化参数并重建
- 跨传感器超分:从 Sentinel-2(10m)重建为类似 WorldView-3(0.3m)的分辨率------但无配对的 ground truth,需要使用无监督/循环一致性方法(CycleGAN)