黄 硕 刘黎明 邢孟豪
(商丘师范学院电子电气工程学院,河南 商丘 476000)
糖尿病视网膜病变(Diabetic Retinopathy,DR)是一种由糖尿病引发的眼底视网膜并发症,是导致患者视力损害和失明的主要原因[1]。大量研究表明[2-4],糖尿病视网膜病变患者越早发现越有利于治疗,且在病变的不同阶段及时检测有利于防治和控制病情,目前预防和检测的有效手段是通过拍摄眼底照片进行检测,医生通过眼底图像检查进行病情诊断,这一过程耗费人力和物力,特别是病患太多,而医院医生有限,医生进行检查和诊断都需要经验和时间,因此,设计一个基于人工智能进行DR 检测的计算机辅助诊断系统,为一线医生的诊断提供技术支持, 提供工作效率,也可用于DR 患者自查,以便及时关注病情变化,及时就医。
根据国际通行标准,DR 在不同病变阶段具有不同的病理特征,划分为五个等级,分别是健康、轻度病变、中度病变、重度病变和增值性病变[5,6]。 目前,基于眼底图像处理的DR 检测主要有病变等级和病灶检测,病变等级是基于全局图像通过对整个眼底照片病变等级进行标注训练, 从整体病变等级特征进行分析,实现DR 病变等级分类预测和判别;病灶检测是根据眼底照片中不同病变阶段所表现出的局部病灶特征不同,对病灶类型进行更细致的标注和训练,在实现病灶检测的同时, 进行DR 病变等级分类预测和判断。 近年来,随着深度学习的发展,在DR 眼底图像病变分类和检测领域已有大量成果出现[7],本文采用深度学习算法实现基于Web 的糖尿病视网膜病变分类自动检测系统,使用户能够在Web 端通过浏览器上传患者眼底图片进行自动预测糖尿病视网膜病变等级。
糖尿病视网膜病变检测系统是基于数据标注和深度学习算法完成的,通过对大量标注的数据利用深度学习算法训练相应模型,为此针对国内和国际糖尿病视网膜病变的通行标准,开发了一套眼底图片数据标注系统, 该标注系统基于Qt5 使用Python 开发完成,Qt 是一个跨平台的C++开发库, 主要用来开发图形用户界面(Graphical User Interface,GUI)程序,眼底图片数据标注系统的UI 界面如图1 所示。
图1 眼底图片数据标注系统
糖尿病视网膜病变分类检测是基于深度学习算法实现对糖尿病视网膜病变眼底图片进行自动分类。算法流程主要包括数据集、图像预处理、模型构建、模型训练、模型评价等,其中数据集分为公开数据集和私有数据集, 公开数据集选取IDRiD、Messidor 以及Kaggle 平台提供的数据作为训练数据样本,私有数据集从某市第一人民医院采集而来, 通过自主设计的DR 阅片图像标注系统对眼底图像进行人工手动标注,标注的数据用于模型的训练与测试使用。
图像预处理部分主要涉及图像去噪、归一化等操作,为进一步增强图像特征,使用对比度有限自适应直方图均衡方法实现DR 图片背景与病变特征的局部对比度增强,从而获取更多的病变特征信息。
模型构建基于Inception 模型利用迁移学习方法对网络参数进行调整, 使其更适应于DR 病变的自动检测和分类。 本模型采用的Inception 网络结构如图2所示,引入了1×1 层,目的是用来降维,减少计算量,同时使用3×3 和5×5 的卷积核,网络深度的增加扩大了感受野,使得模型可以在不同尺度上进行特征的融合。 本文使用的Inception 模型结构中,在卷积之后利用激活函数增加网络各层的非线性关系,提高了模型的泛化能力。 模型经过训练后,再测试集中进行验证,最终准确率达到80%以上。
图2 Inception 网络结构
基于B/S 架构搭建糖尿病视网膜病变分级诊断系统,通过深度学习Inception 网络模型,自动预测眼底病变等级,使用户能够在Web 端通过浏览器上传患者眼底图片进行自动判定眼底病变等级, 流程如图3所示。
图3 糖尿病视网膜病变分类检测系统流程图
DR 自动分类检测系统基于Django 框架开发完成,Django 作为一个开放的Web 应用框架能够帮助开发人员快速实现功能。 该系统的数据库共设计14 张表,如图4 所示。
图4 基于web 的糖尿病视网膜病变分类检测系统数据库表
该系统的Web 页面的分类检测和预测页面,预测结果为正常的界面如图5 所示,预测结果为病变等级的界面如图6 所示。
图5 预测正常页面
图6 预测病变页面
本文利用深度学习算法实现了糖尿病视网膜病变图像的自动检测和分类预测。 鉴于糖尿病视网膜病变是一个逐渐变化的过程,患者如果不能够及时检查将导致病情恶化,从而失去最佳治疗时机,因此本文通过公开数据集和自主眼底图像标注系统对眼底图像进行标注, 基于Inception 网络结构进行模型训练,实现了在Web 端通过浏览器对患者眼底图片进行自动检测和预测病变等级。 后续将进一步改进模型算法,提高模型检测准确度。