aicomp_demo / README.md
ceasonen
修改了README
72f7f5a
---
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)