大数跨境

AAAI 2026 | SEMC:超声图像识别的"结构觉醒"

AAAI 2026 | SEMC:超声图像识别的"结构觉醒" AI前沿速递
2026-04-10
3
导读:AAAI 2026 | SEMC:超声图像识别的"结构觉醒"

 


行业共识:超声标准平面识别,深度特征就够了。大家都用深层语义,因为那是"高级知识",浅层特征只是"低级纹理",价值有限。

真实问题:这个共识是错的。超声图像有个致命特点——类内方差大,类间方差小。同一个标准平面,不同医生扫出来的图可能天差地别;不同标准平面,看起来反而很像。这时候,深层语义反而成了"模糊滤镜",真正能区分细节的浅层结构信息被扔掉了。

这篇论文做了一个关键的决策:把浅层结构"请回来",让深层语义和浅层结构平等对话。文末更有相关资源,欢迎获取!


核心结论

👉 这篇论文,本质上做了:抛弃"深层至上"的单一路径,构建"语义-结构双轨融合"机制,用MoE专家系统让不同层级特征各司其职,最终实现超声细粒度识别的突破。

  • • LP2025数据集(肝脏超声):Accuracy 82.30%,超过第二名Diffmic 2.23%
  • • FPUS23数据集(胎儿超声):Accuracy 95.78%,F1 95.06%
  • • CAMUS数据集(心脏超声):Accuracy 82.13%

方法拆解

整个方法可以抽象为三个阶段:

Stage 1:多专家特征解耦(解决"单一视角盲区"问题)

  • • 共享前3层ResNet块提取通用特征
  • • 第4层拆成3个独立专家分支,各自学习不同的语义视角
  • • 关键洞察:不同专家关注不同解剖结构,避免"一视同仁"导致的细节丢失

Stage 2:语义-结构双向对齐(解决"浅层信息浪费"问题)

  • • ACE模块:把浅层特征{F1,F2,F3}逐步下采样、通道对齐,和深层专家特征做"加法融合"
  • • SAMC模块:多尺度卷积+通道-空间双重注意力,让融合后的特征更"结构敏感"
  • • 关键洞察:加法融合比拼接更高效,避免通道冗余

Stage 3:MoE对比学习协同(解决"对比学习粗粒度"问题)

  • • 对比分支:3个专家特征做层级对比,配合动态队列扩展正负样本
  • • 识别分支:Gumbel-Softmax稀疏门控,让模型自适应选择最有价值的专家
  • • 自适应权重:α系数由轻量网络预测,无需手动调参

范式总结:先解耦,再对齐,最后协同选择。


关键技术翻译

SSFM(语义-结构融合模块)

  • • 人话:把浅层特征(边缘、纹理)和深层特征(语义、结构)"对齐"到同一维度,然后融合,让模型既看得清细节,又看得懂内容。
  • • 专业:ACE通过分层步长卷积+通道适配实现浅层特征的渐进式空间-通道对齐;SAMC采用多尺度感受野+CBAM风格的通道-空间注意力机制,强化融合特征的结构感知能力。

ACE(自适应压缩扩展块)

  • • 人话:浅层特征分辨率大、通道少;深层特征分辨率小、通道多。ACE就是把浅层特征"压缩"到和深层一样的尺寸,同时"扩展"通道数,方便融合。
  • • 专业:通过L级级联的步长深度卷积(stride=2)逐步降低空间分辨率,每级通道数翻倍(Ci = Cin × 2^i),最终用1×1卷积映射到目标维度。

SAMC(结构感知多上下文块)

  • • 人话:融合后的特征可能有些区域重要、有些不重要,SAMC就是帮模型"睁大眼睛"看关键区域。
  • • 专业:通道注意力通过全局池化+共享FC捕捉通道间依赖;空间注意力通过Mean/Max池化聚合+卷积生成空间权重图;多尺度卷积特征通过Channel Shuffle促进跨通道交互。

MCRM(MoE对比识别模块)

  • • 人话:让不同的"专家"各司其职——有的擅长看血管,有的擅长看肝实质,然后根据图像特点自动选最靠谱的专家组合。
  • • 专业:对比分支采用监督对比损失+自监督对比损失的加权组合,通过动态队列存储历史特征扩展对比空间;识别分支采用Gumbel-Softmax实现可微分的稀疏专家选择。

即插即用代码

Gumbel-Softmax稀疏门控机制(可用于任何MoE场景)


   
   
   
    
   
   
   

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114

import torch
import torch.nn as nn
import torch.nn.functional as F

class GumbelSoftmaxGate(nn.Module):
    """
    Gumbel-Softmax稀疏门控机制
    用于MoE场景中自适应选择专家
    
    Args:
        input_dim: 输入特征维度
        num_experts: 专家数量
        tau: 温度参数,控制分布稀疏程度
    """
    def __init__(self, input_dim, num_experts=3, tau=1.0):
        super().__init__()
        self.num_experts = num_experts
        self.tau = tau
        
        # 轻量级门控网络:自适应池化 + 线性层
        self.gate_net = nn.Sequential(
            nn.AdaptiveAvgPool2d(1),  # [B, C, H, W] -> [B, C, 1, 1]
            nn.Flatten(),             # [B, C]
            nn.Linear(input_dim, num_experts)  # [B, num_experts]
        )
    
    def forward(self, x, hard=False):
        """
        Args:
            x: 输入特征 [B, C, H, W]
            hard: 是否使用硬采样(推理时可用)
        
        Returns:
            weights: 专家权重 [B, num_experts],和为1
        """
        # 1. 获取门控logits
        logits = self.gate_net(x)  # [B, num_experts]
        
        # 2. Gumbel-Softmax采样
        if self.training:
            # 训练时:软采样,可微分
            weights = F.gumbel_softmax(logits, tau=self.tau, hard=hard, dim=-1)
        else:
            # 推理时:硬采样,选择最大概率专家
            if hard:
                weights = F.one_hot(logits.argmax(dim=-1), self.num_experts).float()
            else:
                weights = F.softmax(logits / self.tau, dim=-1)
        
        return weights


class MoEClassifier(nn.Module):
    """
    MoE分类器:多个专家 + 稀疏门控
    """
    def __init__(self, feature_dim, num_classes, num_experts=3):
        super().__init__()
        self.num_experts = num_experts
        
        # 多个专家分类头
        self.experts = nn.ModuleList([
            nn.Linear(feature_dim, num_classes) 
            for _ in range(num_experts)
        ])
        
        # 门控网络
        self.gate = GumbelSoftmaxGate(feature_dim, num_experts)
    
    def forward(self, x):
        """
        Args:
            x: 输入特征 [B, C, H, W]
        
        Returns:
            output: 融合后的预测 [B, num_classes]
            weights: 专家权重 [B, num_experts]
        """
        # 1. 获取专家权重
        weights = self.gate(x)  # [B, num_experts]
        
        # 2. 全局池化
        x_pooled = F.adaptive_avg_pool2d(x, 1).flatten(1)  # [B, C]
        
        # 3. 各专家预测
        expert_outputs = torch.stack([
            expert(x_pooled) for expert in self.experts
        ], dim=1)  # [B, num_experts, num_classes]
        
        # 4. 加权融合
        weights_expanded = weights.unsqueeze(-1)  # [B, num_experts, 1]
        output = (weights_expanded * expert_outputs).sum(dim=1)  # [B, num_classes]
        
        return output, weights


# 使用示例
if __name__ == "__main__":
    # 模拟输入
    batch_size = 4
    feature_dim = 256
    num_classes = 7  # LP2025数据集:6个标准平面 + 1个非标准
    
    x = torch.randn(batch_size, feature_dim, 16, 16)
    
    # 创建MoE分类器
    moe_classifier = MoEClassifier(feature_dim, num_classes, num_experts=3)
    
    # 前向传播
    output, weights = moe_classifier(x)
    
    print(f"预测输出: {output.shape}")  # [4, 7]
    print(f"专家权重: {weights.shape}")  # [4, 3]
    print(f"专家权重示例: {weights[0]}")  # 和为1



可以放在哪里用?

  • • 替换现有的单一分类头,引入专家多样性
  • • 用于医学图像分类、细粒度分类等需要多视角学习的任务
  • • 结合对比学习框架,让不同专家学习不同的对比视角

方法论升华

👉 这篇论文真正重要的不是"MoE+对比学习"的组合,而是"浅层结构信息觉醒"的设计哲学。

传统方法的逻辑是:深层语义=高级知识,浅层结构=低级纹理 → 深层更重要,浅层可以丢弃
SEMC的逻辑是:深层语义负责"是什么",浅层结构负责"在哪儿、长什么样" → 两者互补,缺一不可

本质区别:前者是"层级崇拜",后者是"功能平等"。

👉 总结为一个范式:特征解耦 → 跨层级对齐 → 专家协同选择

我给这个方法起个名字:"双轨协同结构增强范式"(Dual-Track Synergistic Structure Enhancement)

核心公式:


   
   
   
    
   
   
   

1
2
3

超声图像 → [多专家解耦] → [语义-结构对齐] → [协同对比学习] → 标准平面识别
              ↓                  ↓                   ↓
           多视角特征        浅层+深层融合       类内紧凑/类间分离




可延展方向

科研方向

方向1:动态专家数量

  • • 当前是固定3个专家,是否可以根据图像复杂度自适应调整专家数量?
  • • 问题:如何设计专家数量的决策机制?

方向2:跨模态结构迁移

  • • 超声的结构增强思路能否迁移到CT/MRI等模态?
  • • 不同模态的"浅层结构"定义是否需要重新设计?

方向3:对比学习的语义引导

  • • 当前对比学习主要依赖标签信息,能否引入解剖结构知识做语义引导?
  • • 例如:相同器官的对比样本应该更近

工程方向

方向1:实时超声辅助诊断

  • • 当前方法在RTX 3090上训练,推理速度如何?
  • • 能否优化到满足实时超声扫查需求(<100ms/帧)?

方向2:轻量化部署

  • • MoE专家分支增加了参数量,如何在边缘设备部署?
  • • 知识蒸馏或剪枝可能的方向

方向3:数据集扩展

  • • LP2025目前只有肝脏超声,能否扩展到其他器官(心脏、甲状腺、乳腺)?
  • • 跨器官迁移学习是否可行?



资源(我帮你们整理好了)

为了不让你们卡在“找数据 / 找代码”,我整理了一份完整复现包:

🎁 包含:

  • • LOL v1 / v2
  • • SID(极暗)
  • • LSRW(华为)
  • • 论文官方代码
  • • Patch Mamba Demo

👉 获取方式:
扫码回复:LLIE

图片



"深度不是唯一答案,浅层结构同样有话说。真正的智能,是让不同层级各司其职,协同作战。"


附录:论文信息

  • • 标题:SEMC: Structure-Enhanced Mixture-of-Experts Contrastive Learning for Ultrasound Standard Plane Recognition
  • • 会议:AAAI 2026
  • • 作者:Qing Cai, Guihao Yan, Fan Zhang, Cheng Zhang, Zhi Liu(中国海洋大学、香港理工大学、山东大学)
  • • 数据集:LP2025(肝脏超声标准平面)

 


【声明】内容源于网络
0
0
AI前沿速递
AI前沿速递 聚焦人工智能最新科研成果与技术动态,专注前沿论文解读、行业资讯分享与高校招生信息推送,助力AI爱好者和从业者把握学界风向标。每日更新技术干货与深度内容,让全球优秀研究被更多人看见。关注我们,探索AI无限可能!
内容 1916
粉丝 0
AI前沿速递 AI前沿速递 聚焦人工智能最新科研成果与技术动态,专注前沿论文解读、行业资讯分享与高校招生信息推送,助力AI爱好者和从业者把握学界风向标。每日更新技术干货与深度内容,让全球优秀研究被更多人看见。关注我们,探索AI无限可能!
总阅读4.7k
粉丝0
内容1.9k