中文 | English
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 注意力]
通道 + 空间注意力
↓
[特征融合]
自适应融合
↓
[分类器]
多标签预测
- ModernFeatureExtractor: ConvNeXt/Swin/EfficientNet 特征提取
- ModernMultiScaleAttention: 多头自注意力 + 跨尺度注意力
- DynamicFeatureFusion: 动态特征融合
- MultiLabelClassifier: 多标签分类器
- PyramidFeatureExtractor: 基于ResNet的多尺度特征提取
- FeaturePyramidNetwork (FPN): 特征金字塔网络
- MultiScaleAttention: 多尺度CBAM注意力
- DynamicFeatureFusion: 动态特征融合
- 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:
- 点击上方的 "Open in Colab" 按钮
- 依次运行所有 cell
- 自动下载数据集并开始训练
- 约 10-15 分钟完成训练和评估
性能:在 Colab 免费 GPU (T4) 上可达到 91%+ 准确率。
# 框架会自动创建示例数据集
python train.py支持的数据集格式:
data/
├── image_001.jpg
├── image_002.jpg
└── labels.csv
labels.csv:
image,labels
image_001.jpg,Pneumonia|Effusion
image_002.jpg,No Findingdata/
├── 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,
}# 默认配置训练
python train.py
# 监控训练(可选)
tensorboard --logdir=./logs训练输出:
checkpoints/best_model.pth- 最佳模型logs/training_curves.png- 训练曲线logs/roc_curves.png- ROC曲线
python evaluate.py \
--model_path checkpoints/best_model.pth \
--save_results# 单张图像
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 ./predictions112,120张胸部X光图像,14种病理标签:
- Atelectasis (肺不张)
- Cardiomegaly (心脏肥大)
- Effusion (积液)
- Infiltration (浸润)
- Mass (肿块)
- Nodule (结节)
- Pneumonia (肺炎)
- Pneumothorax (气胸)
- Consolidation (实变)
- Edema (水肿)
- Emphysema (肺气肿)
- Fibrosis (纤维化)
- Pleural_Thickening (胸膜增厚)
- Hernia (疝气)
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数据集
- 作者: 苏淋
- Email: me@supage.eu.org
- 项目链接: https://github.com/alltobebetter/HybridMedNet
如果您在研究中使用了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)