File size: 6,353 Bytes
6850b17
 
 
 
 
 
 
 
 
 
 
 
72f7f5a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
---
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)