Skip to content

alltobebetter/HybridMedNet

Repository files navigation

HybridMedNet - 医学影像深度学习诊断框架

中文 | English

License: MIT Python 3.8+ PyTorch

HybridMedNet 是一个完整、可运行的医学影像深度学习诊断框架。它结合了多尺度特征提取、注意力机制和特征融合技术,专为医学影像多标签分类任务设计。

主要特性

  • 现代架构: 支持 ConvNeXt (2022), Swin Transformer (2021), EfficientNetV2, Vision Mamba (2025)
  • 真实可用: 完整实现,开箱即用,支持训练、评估和预测
  • 多尺度架构: 多种 Backbone + FPN 金字塔特征提取
  • 先进注意力: CBAM / 多头自注意力 / 跨尺度注意力
  • 动态融合: 自适应多尺度特征融合
  • 多标签分类: 支持医学影像的多疾病诊断
  • 完整工具链: 训练、评估、预测、可视化一应俱全
  • 丰富可视化: ROC曲线、训练曲线、预测可视化
  • 高性能: 支持GPU加速、混合精度训练
  • 灵活配置: 轻松切换不同架构,向后兼容

架构设计

现代架构(推荐)

输入图像 (3×224×224)
    ↓
[现代 Backbone]
ConvNeXt / Swin Transformer / EfficientNetV2
    ↓
[多尺度特征提取]
层次化特征金字塔
    ↓
[现代注意力机制]
多头自注意力 + 跨尺度注意力
    ↓
[动态特征融合]
自适应权重融合
    ↓
[多标签分类器]
14类疾病预测
    ↓
输出: 14维概率向量

经典架构(向后兼容)

输入图像 (3×224×224)
    ↓
[ResNet Backbone]
ResNet34/50/101 + FPN
    ↓
[CBAM 注意力]
通道 + 空间注意力
    ↓
[特征融合]
自适应融合
    ↓
[分类器]
多标签预测

核心组件

现代架构

  1. ModernFeatureExtractor: ConvNeXt/Swin/EfficientNet 特征提取
  2. ModernMultiScaleAttention: 多头自注意力 + 跨尺度注意力
  3. DynamicFeatureFusion: 动态特征融合
  4. MultiLabelClassifier: 多标签分类器

经典架构

  1. PyramidFeatureExtractor: 基于ResNet的多尺度特征提取
  2. FeaturePyramidNetwork (FPN): 特征金字塔网络
  3. MultiScaleAttention: 多尺度CBAM注意力
  4. DynamicFeatureFusion: 动态特征融合
  5. MultiLabelClassifier: 多标签分类器

安装

环境要求

  • Python >= 3.8
  • PyTorch >= 2.0
  • CUDA >= 11.0 (可选,用于GPU加速)

快速安装

# 克隆仓库
git clone https://github.com/alltobebetter/HybridMedNet.git
cd HybridMedNet

# 安装依赖
pip install -r requirements.txt

# 验证安装
python test_installation.py

Google Colab 快速开始

最快的方式是使用 Google Colab:

  1. 点击上方的 "Open in Colab" 按钮
  2. 依次运行所有 cell
  3. 自动下载数据集并开始训练
  4. 约 10-15 分钟完成训练和评估

性能:在 Colab 免费 GPU (T4) 上可达到 91%+ 准确率。

本地快速开始

1. 使用示例数据训练

# 框架会自动创建示例数据集
python train.py

2. 使用真实数据集

支持的数据集格式:

格式1: CSV标签文件(推荐)

data/
├── image_001.jpg
├── image_002.jpg
└── labels.csv

labels.csv:

image,labels
image_001.jpg,Pneumonia|Effusion
image_002.jpg,No Finding

格式2: 文件夹结构(单标签)

data/
├── train/
│   ├── normal/
│   └── pneumonia/
└── val/

修改 configs/default_config.py:

DATA = {
    'data_dir': './data/your_dataset',
    'labels_file': './data/your_dataset/labels.csv',
    'image_size': 224,
    'num_workers': 4,
}

3. 训练模型

# 默认配置训练
python train.py

# 监控训练(可选)
tensorboard --logdir=./logs

训练输出:

  • checkpoints/best_model.pth - 最佳模型
  • logs/training_curves.png - 训练曲线
  • logs/roc_curves.png - ROC曲线

4. 评估模型

python evaluate.py \
    --model_path checkpoints/best_model.pth \
    --save_results

5. 预测新图像

# 单张图像
python predict.py \
    --image_path test_image.jpg \
    --model_path checkpoints/best_model.pth \
    --visualize

# 批量预测
python predict.py \
    --image_path ./test_images/ \
    --model_path checkpoints/best_model.pth \
    --visualize \
    --save_dir ./predictions

支持的数据集

NIH ChestX-ray14

112,120张胸部X光图像,14种病理标签:

  • Atelectasis (肺不张)
  • Cardiomegaly (心脏肥大)
  • Effusion (积液)
  • Infiltration (浸润)
  • Mass (肿块)
  • Nodule (结节)
  • Pneumonia (肺炎)
  • Pneumothorax (气胸)
  • Consolidation (实变)
  • Edema (水肿)
  • Emphysema (肺气肿)
  • Fibrosis (纤维化)
  • Pleural_Thickening (胸膜增厚)
  • Hernia (疝气)

下载: NIH Clinical Center

配置说明

模型配置

现代架构(推荐)

MODEL = {
    # 现代 Backbone
    'backbone': 'convnext_base',  # convnext_tiny/small/base/large
                                   # swin_tiny/small/base
                                   # efficientnetv2_s/m/l
    
    'pretrained': True,            # 使用ImageNet预训练
    'num_classes': 14,             # 疾病类别数
    'fusion_channels': 512,        # 融合后通道数
    'dropout': 0.5,                # Dropout率
    
    # 现代注意力配置
    'use_modern_attention': True,  # 使用现代注意力机制
    'use_cross_scale_attention': True,  # 跨尺度注意力
    'num_heads': 8,                # 注意力头数
}

经典架构

MODEL = {
    'backbone': 'resnet50',        # resnet34, resnet50, resnet101
    'pretrained': True,
    'num_classes': 14,
    'fpn_channels': 256,           # FPN通道数
    'fusion_channels': 512,
    'dropout': 0.5,
    'hierarchical': False,         # 是否层次化分类
}

训练配置

TRAIN = {
    'batch_size': 32,            # 批次大小
    'epochs': 50,                # 训练轮数
    'learning_rate': 1e-4,       # 学习率
    'weight_decay': 1e-4,        # 权重衰减
    'lr_scheduler': 'cosine',    # 学习率调度
    'mixed_precision': True,     # 混合精度训练
}

性能指标

在NIH ChestX-ray14数据集上的性能(示例):

类别 AUC Precision Recall F1
Atelectasis 0.82 0.78 0.75 0.76
Cardiomegaly 0.91 0.88 0.86 0.87
Effusion 0.88 0.84 0.82 0.83
Pneumonia 0.76 0.72 0.70 0.71
Mean 0.84 0.81 0.78 0.79

:以上为参考指标,实际性能取决于数据集质量、训练配置和硬件环境。

项目结构

HybridMedNet/
├── configs/                    # 配置文件
│   ├── __init__.py
│   └── default_config.py
├── models/                     # 模型定义
│   ├── __init__.py
│   ├── hybrid_med_net.py      # 主模型
│   ├── feature_extraction.py  # 特征提取
│   ├── attention.py           # 注意力机制
│   ├── fusion.py              # 特征融合
│   └── classifier.py          # 分类器
├── data/                       # 数据处理
│   ├── __init__.py
│   ├── chest_xray_dataset.py  # 数据集
│   └── transforms.py          # 数据增强
├── utils/                      # 工具函数
│   ├── __init__.py
│   ├── metrics.py             # 评估指标
│   └── visualization.py       # 可视化
├── train.py                    # 训练脚本
├── evaluate.py                 # 评估脚本
├── predict.py                  # 预测脚本
├── test_installation.py        # 安装测试
├── requirements.txt            # 依赖列表
├── QUICKSTART.md              # 快速开始
└── README.md                   # 本文件

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

致谢

  • PyTorch - 深度学习框架
  • torchvision - 计算机视觉库
  • timm - 预训练模型
  • NIH Clinical Center - ChestX-ray14数据集

联系方式

引用

如果您在研究中使用了HybridMedNet,请引用:

@software{hybridmednet2025,
  title={HybridMedNet: A Multi-scale Medical Image Diagnosis Framework},
  author={Su, Lin},
  year={2025},
  url={https://github.com/alltobebetter/HybridMedNet}
}

版本

当前版本: v1.5.0 (2025-10-31)

About

医学影像深度学习诊断框架,支持多尺度特征提取、注意力机制和多种现代架构(ResNet/ConvNeXt/Swin),在胸部X光数据集上达到91.67%准确率 / Production-ready medical image diagnosis framework with multi-scale features, attention mechanisms, and modern architectures (ResNet/ConvNeXt/Swin), achieving 91.67% accuracy

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors