用Edge Impulse构建离线AI模型检测糖尿病视网膜病变分期
无需互联网连接即可准确识别糖尿病视网膜病变分期的便携医疗设备,可在全球大幅降低失明率。借助嵌入式机器学习,直接在电池供电硬件运行的算法现已可行。本文演示使用Edge Impulse平台训练此类模型的步骤。
糖尿病视网膜病变损害眼底血管,若不治疗常致失明。超五分之二美国糖尿病患者患有某种形式该病,早期检测至关重要。视力护理匮乏的农村地区,甚至轻度病例常被漏诊至严重阶段。
为解决此,我们利用公开数据集训练模型,从视网膜相机图像评估DR严重程度。数据集分五类:
- 无DR
- 轻度DR
- 中度DR
- 重度DR
- 增殖性DR
患者标识符替换为id_code,诊断评分0(无DR)至5(增殖性DR)。数据集链接。

因图像扁平存储,我编写VBA脚本读取Excelid_code列表,定位各图像并移入对应类别文件夹。脚本在此。偏好Python或其他语言亦可轻松自动化。

Edge Impulse通过数据上传界面简化摄取。我分五次上传——每类一次——适当标记文件夹。平台也提供云存储桶集成和设备采集,但手动上传最适合我们数据集。

Edge Impulse自动按80/20分割训练/测试集,但我手动向测试集添加约500张图像以更好平衡类别。
模型选择图像分块,应用迁移学习架构分类五个DR分期。初始训练最佳准确率约74%,虽尚可但凸显误分类——尤其重度与轻度DR间。混淆矩阵(如下)展示此挑战。

实际部署中,便携视网膜相机捕获图像,本地运行模型,即时通知临床医生患者是否需随访。优先检测所有DR分期,当前精度作为筛查工具可接受。
可能改进:
- 获取更多标注数据降低方差。
- 合并相邻类别(如轻-中度、重度-增殖性)简化决策边界。
- 微调神经网络层数和Dropout率。

最终模型占用306KB Flash和236KB RAM。Cortex-M4 80MHz推理耗时0.8-6秒,Cortex-M7 216MHz更快——适合即拍即测的手持设备。
总结,我们证明开源数据集可训练有效边缘模型检测糖尿病视网膜病变。将此类模型部署于嵌入式单片机或轻量Linux设备,能为偏远或服务不足社区带来可靠筛查,克服连接障碍。

更多细节和未来工作见此处。
嵌入式