Spaces:
Running
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万元,提升社会健康福祉。
克隆项目
git clone https://github.com/ceasonen/aicomp.git cd aicomp
使用 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
和自动计算类别权重。 - 模型切换与轻量化:内置
MobileNetV3
、ShuffleNetV2
等高效模型。 - 知识蒸馏:通过 "teacher-student" 模式提升小模型性能。
- **量化感知训练 (QAT)**:支持训练并导出INT8量化的 ONNX 模型以加速推理。
- 多数据集联合训练:合并多个数据集进行训练,提升模型泛化能力。
常见问题 (FAQ)
ModuleNotFoundError: No module named 'src'
请使用python -m src.train
或python -m src.inference
的方式运行,以确保项目根目录被正确添加到 Python 路径中。权重加载失败或结构不兼容 这通常发生在修改模型结构后。建议删除
weights/
目录下的旧模型文件,然后重新训练。路径找不到错误 请仔细检查
config.yaml
中配置的数据集路径是否与您的实际文件路径一致。PowerShell 无法链式执行命令 PowerShell 不支持使用
&&
连接命令。请将命令分开,逐行执行。CUDA out of memory 显存不足。请在
config.yaml
中减小batch_size
,或者切换到 CPU 进行训练。
参考与致谢
- APTOS 2019 Kaggle 竞赛
- EyePACS 数据集
- PyTorch, torchvision, scikit-learn, OpenCV 等开源社区。