二、算法流程

二、算法流程

FA-Net总体流程见图4-10。输入的眼底图像首先要经过数据预处理,预处理的过程包括数据归一化处理和数据扩增。归一化的目的是去除光照的影响。由于数据来自不同的眼底照相机,因而拍摄仪器的参数不同,会导致拍摄的眼底图亮度不同,通过归一化处理可以减少不同光照下拍摄的眼底图之间的差异。数据扩增指通过一些变换增加数据量。由于深度网络的训练需要大量的数据集,而现实数据集的规模无法满足训练的需要,因而一方面采用迁移学习的方法训练网络,另一方面通过数据扩增来避免过拟合,数据集经过扩充也可以使深度网络得到更加充分的学习。预处理后的眼底数据集会被送入卷积神经网络中进行训练。当网络的损失达到稳定时,保存训练好的网络参数,以便对新的眼底图像进行预测,最后输出预测结果。

FA-Net基于VGG19网络并进行改进,引入了注意力机制,使眼底图像质量评估算法更适用于眼疾病的自动筛查系统。对于眼底图像质量分类任务,也具有更优异的性能。

图4-10 FA-Net总体流程图

(一)眼底图像归一化处理

眼底图像数据集是在不同地区由使用不同参数的眼底照相机采集的,眼底图像尺寸各不相同且图像之间的光照差异很大。所以进行眼底图像质量评估时首先要对眼底图像进行归一化处理(图4-11),具体步骤如下。

(1)对眼底图像进行缩放,使得处理后的图像中圆形眼底半径R相同。

(2)对眼底图像进行裁剪,裁剪出一个以2R为边长的正方形。

(3)对眼底图像进行高斯滤波,每一个像素点减去其局部均值,以减少光照影响。

图4-11b及图4-11e为归一化处理的中间结果图。当原始图片中有的眼底图像上下部分被截断,不是一个完整的圆形时,使长度方向上以眼底中心为原点的两边间距一致,对长方形图像上下进行填充,扩展为一个正方形。我们通过裁剪去除了部分眼底图像中黑色的背景区域。为了减少不同光照的干扰,按照公式(4-4)对眼底图像进行归一化处理:

式中,*代表卷积操作,Io(x,y)为归一化处理前的眼底图像。I(x,y)表示处理后的眼底图像。Gaussion (x,y,ρ)表示一个标准差为ρ的高斯低通滤波器。函数floor(X)给出小于或等于X的最大整数。α,β,ρ,γ的值根据经验分别设为α=4,β=-4,ρ=10,γ=128。归一化后的眼底图像见图4-11c、图4-11f。

图4-11 眼底图像归一化处理结果图

(二)眼底图像数据扩增

由于神经网络拥有上百万的参数量级,因而如果用于训练的数据集过小,很容易造成过拟合。数据扩增指在原始的数据集上通过一定的变换增加数据量。有了更多的数据,就可以更充分地学习到图像的深层特征,提升整体的网络性能。深度网络训练所需的数据量是巨大的,在实际中数千张的样本量是无法充分训练大型神经网络的。常用的数据扩增的方法有以下几种。

(1)垂直翻转或水平翻转。

(2)以不同角度旋转图片。

(3)向内缩放或向外缩放。

(4)对图片进行裁剪,在原始图片中进行采样。

(5)平移操作,图片沿X轴或Y轴方向移动。

(6)添加噪声,如高斯噪声。

(7)基于生成式对抗网络生成伪样本。

通过对图像进行0°到360°的随机旋转、随机水平方向或垂直方向翻转,以及随机水平或垂直方向平移来扩充眼底图像数据集,增加样本的数量,从而更充分地训练神经网络的参数。通过这些操作,训练集的数量增加了约8倍。

(三)FA-Net网络

FA-Net网络包括两个主要部分。第一部分是一个预训练的VGG19主网络,通过微调的方式训练主网络,一方面可以减少训练网络的时间,另一方面可以提高系统的鲁棒性。第二部分是基于前景提取方法的注意力权重网络。设计注意力权重图的原因是,对于眼疾病筛查系统的IQA,眼底图像中并不是所有的区域都有着同等重要性。例如,对于DR筛查系统的IQA,血管和病变区域要比眼底图像中的背景区域更重要。这些感兴趣区域必须清晰可见,否则可能会影响正确诊断。而对于背景区域,即使存在轻微模糊,在眼疾病诊断系统中也是可以接受的。此外,视网膜图像外围的黑色区域是不包含任何信息的。FA-Net的网络结构见图4-12。

图4-12 FA-Net网络结构图

(1)F-Net:微调的VGG19主网络。在实际应用中,深层卷积神经网络由于层数较多、参数量巨大,因而满足深层网络训练需要的数据集非常稀少。如果从一开始就完全随机初始化训练参数,会导致网络收敛过慢,并且网络参数也无法被充分训练。常见的方法是,先基于大的数据集对深层卷积神经网络进行预训练,然后将训练好的DCNN的权值作为网络的初始设置。利用ImageNet对VGG19网络进行微调训练,即通过一个具有2个输出单元的全连接层代替原始网络中最后一个全连接层。VGG19模型采用传统的CNN结构,包括16个卷积层、3个全连接层以及5个池化层。池化层将输入图像的尺寸从224×224下采样到7×7。以池化层作为分界线将所有卷积层分成5组,如图4-13所示,五组的卷积层个数分别为2、2、4、4、4。

图4-13中标明了卷积层和池化层的参数细节。每个卷积核的尺寸都为3×3,避免使用较大的卷积核可以减少网络参数。每个卷积层后都连有Re LU激活函数。Dropout在第一个和第二个全连接层中使用,以0.5的概率将神经网络单元暂时丢弃以避免网络的过拟合。最后一个全连接层神经元个数为2,其数量与任务的输出类别个数相同。

(2)A-Net:基于前景提取的注意力网络。前景相比于背景含有更多的信息,为了提取前景部分的像素,计算每个像素点邻域内的均值μN(x,y)和标准差σN(x,y),领域大小为s,前景像素可以根据每一个像素点(x,y)的Mahalanobis距离dM进行提取。dM可根据邻域均值和标准差获得,如公式(4-5)所示。

图4-13 VGG19网络结构图

注:(3,1,1)表示卷积核尺寸为3、步长为1、填充为1

式中,I(x,y)代表眼底图像。选取合适的阈值t,当Mahalanobis距离大于t时,该像素点(x,y)属于前景区域,否则属于背景区域。邻域均值和标准差可以根据逐点计算获得,但是为了节省时间和计算量,采用下采样和双三次插值技术来进行取样估计。是通过取样估计获得的邻域均值和标准差。前景提取的结果见图4-14。其中图4-14a为原始图像,图4-14b为通过Mahalanobis距离提取的前景图,为二值前景图。接下来,将前景图划分为不重叠的4×4大小的子区域,并计算每个子区域像素值的和,以W(i,j)表示。此时,注意力图的尺寸缩小为1/16,与经过两个池化层所得到的特征图同一尺寸。最后,通过公式(4-6),将注意力图的像素值标准化到[0,1],得到注意力权重图,如图4-14c所示。注意力权重图表示视网膜图像中不同区域重要性的权重系数。

将得到的注意力权重图加入VGG19主网络中,会影响CNN参数的训练。将VGG19主网络第3组中第一个卷积层输出的特征图和注意力权重图对应的像素点相乘,得到的特征图再和第3组中最后一个卷积层输出的特征图元素加和。则第三个池化层处理的便是加权后的特征图。注意力权重图用来描述不同子区域的重要性,并在网络训练过程中分配相应的学习权重。通过注意力网络可以从视网膜图像中学习到更加有用的信息。最后,主网络的特征图通过全连接层和Softmax层得到分类结果。

图4-14 注意力图生成过程