Spaces:
Running
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万元,提升社会健康福祉。 | |
--- | |
1. **克隆项目** | |
```bash | |
git clone https://github.com/ceasonen/aicomp.git | |
cd aicomp | |
``` | |
2. **使用 Conda 创建并激活环境** | |
```bash | |
conda env create -f environment.yml | |
conda activate aicomp | |
pip install -r requirements.txt | |
``` | |
--- | |
## 快速开始 | |
### 1. 数据准备 | |
* **使用公开数据集**: | |
* [APTOS 2019](https://www.kaggle.com/competitions/aptos2019-blindness-detection/data) | |
* [EyePACS](https://www.kaggle.com/competitions/diabetic-retinopathy-detection/data) | |
* [Messidor-2](http://www.adcis.net/en/third-party/messidor2/) | |
> **提示**:可使用 `pip install kaggle` 并配置 `~/.kaggle/kaggle.json` 来通过命令行下载 Kaggle 数据集。 | |
* **数据预处理**(以APTOS为例,自动生成多任务标签) | |
```bash | |
python scripts/prepare_data.py --action preprocess --data_dir data/aptos2019/train_images --csv_file data/aptos2019/train.csv --output_dir data/aptos2019/processed | |
``` | |
* **生成示例数据**(用于快速测试) | |
```bash | |
python scripts/prepare_data.py --action create_sample --samples_per_class 100 | |
``` | |
### 2. 训练模型 | |
```bash | |
python -m src.train | |
``` | |
* 训练日志、模型权重和 TensorBoard 文件将自动保存在 `logs/`, `weights/`, `runs/` 目录中。 | |
### 3. 推理与评估 | |
```bash | |
python -m src.inference | |
``` | |
* 推理结果将保存在 `evaluation_results/predictions.csv`,包含分级和二分类的预测及概率。 | |
### 4. 科研可视化 | |
所有可视化结果将自动保存在 `evaluation_results/figures/` 目录下。请逐条执行以下命令: | |
```bash | |
# 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. 网页端演示 | |
```bash | |
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 竞赛](https://www.kaggle.com/competitions/aptos2019-blindness-detection/data) | |
* [EyePACS 数据集](https://www.kaggle.com/competitions/diabetic-retinopathy-detection/data) | |
* PyTorch, torchvision, scikit-learn, OpenCV 等开源社区。 | |
--- | |
## License | |
[MIT](https://github.com/ceasonen/aicomp/blob/main/LICENSE) |