李振鹏,陈国明,孙艳宁,魏小花,李云蓉
(广东第二师范学院计算机学院,广州 510303)
青光眼是一种常见的眼科疾病,患者通常表现为不同程度的视力下降和视野缺失,严重者甚至会丧失视力。据统计,2020 年全世界患青光眼的中老年人数约为7600 万,在将来还会持续增长。青光眼的早期症状不明显,有的患者表现为无症状,甚至发展到中后期才被确诊。因此早发现、早诊断、早治疗是治疗青光眼的关键。
眼底照相是青光眼早期检查的主要项目,通过观察视盘与视杯的比例,即杯盘比是否有异常增大作为诊断的重要指标之一。这种诊断方式主观性较强,通常依靠眼科医生的经验判断,如果杯盘比增大不明显,则有可能造成误诊或漏诊的情况。随着深度学习的发展,计算机辅助诊断(CAD)逐渐应用于临床,有助于医生对患者病情做出更加正确的判断,提高工作质量与效率。
为了降低青光眼早期误诊漏诊的可能性,主要思路是提取青光眼病变特征,将正常与青光眼的眼底图正确分类。卷积神经网络(CNN)是CAD 系统中被广泛应用的深度学习方法,在进行肺结节与前列腺癌的诊断中有着较高的准确率。Harangi提出了一个深度卷积神经网络,结合另外四种卷积神经网络作为分类层的输出,实现了将皮肤镜图像分类为黑素瘤、痣和脂溢性角化病三类。Ozawa等基于GoogleNet构建了一个基于CNN 的CAD 系统,并利用该系统对结肠镜图像进行训练,在分析溃疡性结肠炎患者的疾病严重程度上表现稳健,有望于投入临床帮助医生进行疾病的诊断。Chan 等对三种CNN网络进行迁移学习以分类甲状腺肿瘤,并进行了训练和测试。结果表明,CNN 网络的诊断效果比医生要好,训练的CNN 网络能提高大多数甲状腺癌的诊断准确性。Chougrad等提出了一种基于CNN 的乳腺癌分类器,通过迁移学习克服了数据量偏少所带来的过拟合问题,达到了98.23%的准确率,并能够判断肿瘤是恶性还是良性。Patel 等利用两种胃肠息肉的视频序列训练CNN 模型,在判断息肉类型是腺瘤性的还是增生性的结果与专科医生的报告吻合较好。
医学影像数据集是多种多样的,相对于其他数据集而言,尚缺乏特定病症的大型数据集,因此可用于深度学习的数据量较少。且图像中存在着一定程度的噪声干扰,不确定性较高,如何抵抗噪声干扰并从较少的图像数据中提取有效的隐藏信息成为提高青光眼识别准确率的关键。
Maheshwari 等提出了一种基于位平面分解的青光眼诊断方法,对图像进行RGB 三通道分离并进行位平面分解,再利用局部二值模式对每个位平面提取纹理特征,再将这些特征分别输入到三个不同的支持向量机进行分类,实验表明在区分正常和青光眼病例方面是有效的。为了评估PET/CT 图像区分非小细胞肺癌(NSCLC)的能力,Han 等比较了10 种机器学习模型和VGG16 深度学习方法,发现VGG16 算法优于这些传统机器学习方法。由于VGG16 网络有较高性能,Montaha 等提出了一种基于VGG16 的网络消融研究方法。以预处理后的乳腺X 光图像作为数据集,评估该网络与另外五种网络的健壮性,研究表明,该网络模型表现最佳。
本文主要提出了结合位平面分解和提取特征子图两种方法提取眼底图特征,通过CNN 分类器实现青光眼与正常眼的分类。为了验证提取图像特征的健壮性和鲁棒性,采用FGSM对原始眼底图像进行对抗攻击,再对攻击后的图像提取特征子图和位平面分解,将位平面图像分别输入CNN 分类器中以抵御对抗攻击,并比较攻击后的原始图像与对应特征子图位平面图像之间的分类效果。
卷积神经网络(CNN)是一种包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一。图1是卷积神经网络结构图,该网络简化了对图像的复杂前期预处理,可以直接将图片作为网络的输入,自动对图像提取特征,并且对图片的变形具有高度不变性。实验使用的卷积神经网络分类器共有三层卷积层,卷积核大小均为3x3,激活函数使用relu 函数,池化层采用最大池化策略,大小为2x2,全连接层激活函数使用softmax函数。
图1 CNN网络结构图
实验采用公共医学图像眼底影像作为数据集,总体分为两类,正常眼眼底与青光眼病变眼底。其中,正常样本数为483,青光眼样本数为167,把图像分为训练集和测试集,比例为1 ∶1。将数据集输入分类器中,经过80次迭代得到识别准确率为77.6%,损失率为47.5%,如图2、图3 所示。实验结果显示,原始图像的分类准确率较低,准确率曲线呈上升趋势但未达到收敛状态,并不适宜投入临床试验,分类性能还有一定的提升空间。CNN 的分类性能受到迭代次数、网络层数以及数据集的影响。本文以同一CNN 分类器作对比实验,为了提高图像识别率,采用位平面分解和生成特征子图两种手段对原始图像进行特征提取。
图2 原始眼底影像分类准确率
图3 原始眼底影像分类损失率
Goodfellow 等提出了快速梯度符号(Fast Gradient Sign Method,FGSM)图像攻击算法。该文指出,一张能被常规分类器分类为熊猫的图片,通过添加由网络梯度生成的攻击噪声后,看起来仍然是熊猫,但分类器却将其分类为长臂猿。为了模拟医学影像数据集遭遇噪声攻击的情况,分别利用高斯噪声和FGSM对眼底图像进行攻击,攻击效果如图4所示。
图4 对原始图像进行攻击
由图4看出,经过高斯攻击后的图像相对于原始图像有着明显差异,清晰度有所下降,部分图像特征丢失。而经过FGSM攻击后的眼底图像与原始图像相似,仍能够从图像中观测出原图的整体特征。将两种攻击后的图像输入分类器中,分类准确率和损失率如图5、图6、图7和图8所示。
图5 高斯攻击图像分类准确率
图6 高斯攻击图像分类损失率
图7 FGSM攻击图像分类准确率
图8 FGSM攻击图像分类损失率
经过高斯噪声攻击的图像分类准确率为66.7%,与原始图像相比下降了11.0%;经过FGSM 攻击后的图像分类准确率为72.9%,下降了4.7%。结果表明,高斯噪声攻击会降低图像质量,干扰噪声会影响图像分类准确率。FGSM相较于高斯噪声攻击而言,其隐蔽性更强,能在肉眼无法分辨的情况下对图像进行攻击,更容易被恶意利用,在该种情况下,分类器的分类性能与人工观测判断相比有着明显劣势。如何在受到噪声干扰的图像数据集中提取出有效的图像特征,成为抵御攻击、提高图像识别准确率的关键。
VGG16网络是2014 年牛津大学和Google DeepMind 公司联合研发的深度网络模型,该网络一共有16 个训练参数,由13 层卷积层和3 层全连接层组成。VGG 网络能将输入的图像提取出25 张特征子图,以及25 张特征子图融合后的一张整体特征图,每张图像共生成26 张图像,形成了一个新的数据集。VGG16 网络及其生成的特征子图分别如图9、图10所示。
图9 VGG16网络
从图10 可以看出,26 种图像反映的图像特征贡献不一样,某些子图能够很好反映出原始图像的结构特征,但某些子图只能看到眼底轮廓,并且包含了大部分的黑暗区域,与原图差异较大。我们通常认为这些图像是不适宜进行分类的,应该抽取那些特征明显或者更能反映杯盘比的图像特征作为输入图像。为了验证假设,分别将所有特征图像输入分类器,比较它们的识别率,准确率与损失率如表1所示。
图10 VGG网络提取的特征子图
表1 青光眼特征子图的分类准确率和损失率
结果显示,提取图像特征后,图像分类准确率提升显著,平均识别率为79.23%,最高可达89.94%。这表明运用VGG16 网络对图像提取特征子图是有效的,能够总体提高图像的准确率,但与此同时,特征子图还有待改进的空间,那些我们认为应该从数据集中剔除的特征子图中有可能隐藏了一些肉眼不可见的特征,也可能是因为分类器分类失败所导致的,与网络梯度攻击后的图像分类结果类似。为了消除这种不确定性,我们将有可能影响分类性能的特征子图摒弃。
26 个特征图像的最高识别率为89.9%,为了进一步提高识别率,突破特征子图所达到的准确率瓶颈,我们对筛选出来的特征子图进行位平面分解,进一步蒸馏图像特征。用图像作为底面,表示像素亮度大小的8位二进制数作为高度,可形成一个立体直方图,各像素位置相同的位形成的一个平面成为图像的位平面,这个过程称为位平面分解。先将提取出的特征子图进行位平面分解,然后采用格雷码进行位平面置换,通常可以减小灰度变化所带来的影响。图11 显示了青光眼图像特征子图的位平面分解结果。
图11 位平面分解后进行格雷码置换
图11(0)为被分解前的原图,从图11(1)到图11(8)为最低位平面到最高位平面。通常情况下,位平面越高,图像整体特征越明显,更接近原图,说明高位平面图保留了较多的原图信息,在原图组成上更为关键。低位平面图像能反映局部特征,但整体与原图有着一定差异。从图11 看出,由于图11(7)、图11(8)位平面强调原图信息,反而丢失了图像的特征,导致图像中出现了较多的无效区域。图11(1)、图11(2)位平面作为低位平面,更容易受到噪声干扰,有可能承载了更多的噪声信息,因此通过实验分析哪些位平面层更适合分类显得尤其关键。将筛选出的特征图位平面图像输入CNN 分类器中,得出最高的分类准确率达到97.41%,准确率与损失率分别如图12、图13所示。
图12 特征子图最高分类准确率
图13 对应特征子图分类损失率
经过80 次迭代,准确率曲线在97.0%~97.5%之间呈震荡形态,震荡区间为0.5%,而损失率曲线在47%~41%之间呈震荡形态,震荡区间为6%。由于准确率曲线的震荡区间较小,在宏观上看,准确率曲线收敛于97.3%,平均损失率为44%左右,分类性能良好,准确率比原始图像提高了19.7%,比高斯噪声攻击后的图像提高了30.6%,比FGSM 攻击后的图像提高了24.4%。综上所述,遭受噪声攻击的图像虽然会造成分类性能的下降,但通过对被攻击的图像生成特征子图,再结合格雷码位平面置换的方法,仍能够从图像中提取出关键特征,提高分类器分类性能,达到较高的准确率与较低的损失率。
本文针对青光眼临床诊断依赖人工经验判断容易引发错误的问题,提出了一种基于CNN的青光眼分类器。结合特征子图和位平面分解提取青光眼图像特征,通过实验结果说明该方法能够抵御噪声干扰并提升分类准确率,有助于青光眼的早期诊断与筛查。该分类器简单,会对分类准确率有所制约,将来的研究工作主要包括优化分类器网络结构,用不同网络提高分类器的分类效能,降低损失率。