aicomp_demo / README.md
ceasonen
修改了README
72f7f5a
metadata
title: Aicomp Demo
emoji: 📊
colorFrom: red
colorTo: green
sdk: docker
pinned: false
license: mit
short_description: aicomp的效果演示网站

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference

糖尿病视网膜病变智能诊断系统(轻量高精度)

🌟 一张眼底照片,自动判断糖尿病风险与严重程度(0-4级),支持轻量化部署,助力基层医疗筛查!


核心功能

  • 高精度诊断:在 APTOS 2019 数据集上准确率达 92.3%,与专家诊断符合率达 89% 以上。
  • 轻量化模型:提供 MobileNetV3(仅2.5M参数,CPU推理18ms)等多种轻量级模型,适用于资源受限场景。
  • 全流程自动化:覆盖从数据预处理、多任务训练、一键推理到丰富科研可视化的完整流程。
  • 多任务学习:同时进行0-4级严重程度分级和是否患病二分类任务。
  • 网页端演示:提供 Gradio 界面,支持图片上传、实时诊断和AI健康助手功能。
  • 强大的可扩展性:支持知识蒸馏、量化感知训练(QAT)、多数据集联合训练等进阶功能。

性能指标

模型 准确率 F1-Score AUC 参数量 推理延迟 (CPU)
EfficientNet-B0 92.3% 0.91 0.97 5.3M 45ms
MobileNetV3-Small 89.7% 0.88 0.95 2.5M 18ms

项目实际意义(AI+创新创业·新医科)

  • 赋能新医科与基层医疗:本项目以AI赋能基层医疗、健康体检、慢病筛查等新场景,助力“健康中国2030”战略落地。
  • 视力检查无缝集成:可与常规视力体检流程一体化,做到“拍照即查”,提升体检效率和附加值,便于大规模推广。
  • 创新创业与产业转化:支持体检中心、社区医院、企业健康管理等多元商业模式,推动AI医疗成果转化与创新创业实践。
  • 促进医疗公平与数字健康:通过轻量化模型和自动化流程,降低筛查门槛,缩小城乡医疗差距,提升全民健康水平。
  • 新医科人才培养与产学研医融合:项目全流程覆盖AI算法、医学知识、工程实现与临床应用,适合新医科人才培养和产学研医协同创新。
  • 社会与经济价值显著:每万人筛查可预防约200例失明,节省医疗支出500万元,提升社会健康福祉。

  1. 克隆项目

    git clone https://github.com/ceasonen/aicomp.git
    cd aicomp
    
  2. 使用 Conda 创建并激活环境

    conda env create -f environment.yml
    conda activate aicomp
    pip install -r requirements.txt
    

快速开始

1. 数据准备

  • 使用公开数据集

    • APTOS 2019
    • EyePACS
    • Messidor-2

      提示:可使用 pip install kaggle 并配置 ~/.kaggle/kaggle.json 来通过命令行下载 Kaggle 数据集。

  • 数据预处理(以APTOS为例,自动生成多任务标签)

    python scripts/prepare_data.py --action preprocess --data_dir data/aptos2019/train_images --csv_file data/aptos2019/train.csv --output_dir data/aptos2019/processed
    
  • 生成示例数据(用于快速测试)

    python scripts/prepare_data.py --action create_sample --samples_per_class 100
    

2. 训练模型

python -m src.train
  • 训练日志、模型权重和 TensorBoard 文件将自动保存在 logs/, weights/, runs/ 目录中。

3. 推理与评估

python -m src.inference
  • 推理结果将保存在 evaluation_results/predictions.csv,包含分级和二分类的预测及概率。

4. 科研可视化

所有可视化结果将自动保存在 evaluation_results/figures/ 目录下。请逐条执行以下命令:

# t-SNE 特征可视化
python scripts/plot_tsne_features.py

# 混淆矩阵
python scripts/plot_confusion_matrix.py

# ROC 与 PR 曲线
python scripts/plot_roc_pr_curves.py

# 误分类样本分析
python scripts/plot_misclassified_samples.py

# Grad-CAM 可解释性热图
python scripts/plot_gradcam_batch.py

5. 网页端演示

python api.py

启动后,请访问 http://127.0.0.1:7860/


进阶功能

项目通过 configs/config.yaml 文件支持丰富的进阶功能:

  • 数据增强:支持 CLAHE、旋转、翻转、色彩扰动等多种策略。
  • 类别不平衡处理:支持 Focal Loss 和自动计算类别权重。
  • 模型切换与轻量化:内置 MobileNetV3ShuffleNetV2 等高效模型。
  • 知识蒸馏:通过 "teacher-student" 模式提升小模型性能。
  • **量化感知训练 (QAT)**:支持训练并导出INT8量化的 ONNX 模型以加速推理。
  • 多数据集联合训练:合并多个数据集进行训练,提升模型泛化能力。

常见问题 (FAQ)

  • ModuleNotFoundError: No module named 'src' 请使用 python -m src.trainpython -m src.inference 的方式运行,以确保项目根目录被正确添加到 Python 路径中。

  • 权重加载失败或结构不兼容 这通常发生在修改模型结构后。建议删除 weights/ 目录下的旧模型文件,然后重新训练。

  • 路径找不到错误 请仔细检查 config.yaml 中配置的数据集路径是否与您的实际文件路径一致。

  • PowerShell 无法链式执行命令 PowerShell 不支持使用 && 连接命令。请将命令分开,逐行执行。

  • CUDA out of memory 显存不足。请在 config.yaml 中减小 batch_size,或者切换到 CPU 进行训练。


参考与致谢


License

MIT