APP下载

基于嵌入式平台的眼底血管检测方法与系统设计

2022-01-07姚忠林蔡锦达何方正龙颖奇

软件导刊 2021年12期
关键词:嵌入式阈值神经网络

姚忠林,蔡锦达,何方正,龙颖奇

(上海理工大学出版印刷与艺术设计学院,上海 200093)

0 引言

眼底检查在眼科疾病的诊断中占据重要地位,人体的许多疾病都可以在眼底上体现出来,如青光眼、白内障、糖尿病、高血压等[1]。眼底的视网膜血管作为肉眼可见的微血管,其变化可以反映一些器官的病变程度[2],如眼底动静脉血管的宽度可以反映出高血压的严重程度[3]。目前临床常采用光学相干断层扫描仪(OCT)、眼底荧光血管造影(FFA)、眼底相机等手段采集眼底图像[4],其中眼底相机因无需散瞳以及注射造影剂等优势,成为临床应用较为广泛的一种眼底检查设备,为许多疾病的早期病理学研究以及诊断提供了良好的技术支持[5]。然而,眼底相机存在体积较大、便携性差且费用较高的缺点,限制了其在眼底疾病临床诊断中的大规模应用。因此,小型化眼底照相设备应运而生,如泰立瑞间接检眼镜、日本KOWA 手持眼底相机等。但该类小型设备受限于硬件的运算与处理能力,往往不具备辅助诊断的功能。

临床上有大量眼底图像需要进行血管提取,但手工标注耗费大量人力,且多依赖于专家经验。在计算机辅助诊断方面,眼底血管分割算法多在高性能计算机上实现,可分为有监督和无监督的眼底血管分割方法两类。在有监督的眼底血管分割方法研究领域,Ronneberger 等[6]提出一种基于卷积神经网络(CNN)的图像分割方法U-Net,其在训练样本数量有限的情况下表现出了良好的分割性能;Liang 等[7]提出自适应尺度信息的U-Net 网络对眼底血管图像进行分割,该方法在U-Net 中加入密集可变卷积和金字塔型空洞卷积操作以提高网络的特征复用能力和整体感受野,解决了微血管分割不足的问题;Wu 等[8]提出一种将ResNet 与DensNet 加入到U-Net 网络中对眼底血管进行分割的方法,增加了加权注意机制,使得模型可以学习到更多鉴别血管与非血管像素的特征信息;Zhuang[9]提出一种U-Nets 链式结构,通过组合U-Net 模型获取更多信息路径,并共享权重残差块以减少模型参数。

上述有监督方法虽然分割精度较高,但在嵌入式平台上,传统的无监督方法仍然占据主导地位。例如,Arguello等[10]采用图像滤波与轮廓跟踪相结合,Rai 等[11]采用基于全局阈值的分割方法,Xu 等[12]采用Gabor 滤波器和形态学操作在智能设备中进行血管分割,但以上3 种方法均易受到图像中噪声和光照变化等因素的影响。目前应用于嵌入式平台的有监督的眼底血管分割算法较少,主要原因是神经网络分割模型结构复杂、参数量过大,如最经典的UNet 模型参数可达7 765 422 个[6],对嵌入式平台的运行内存、处理速度都有很高要求,轻则耗时较长,重则导致界面卡顿甚至崩溃。简单地降低模型复杂性会使分割精度下降,例如Berseth[13]提出一种类似于U-Net 结构的深度卷积神经网络模型,在每层内核大小和特征图数量上进行了一些修改,减少了模型参数量和训练数据,但并未取得分割精度的提升;Laibacher 等[14]基于Image-Net预训练的MobileNetV2 模型设计了分割眼底图像中血管的M2U-Net 架构,分割效果略逊于世界先进水平,但其认为该模型仍有简化空间。

本文受文献[6,13-14]的启发,探讨U-Net 眼底血管分割模型复杂度的下限,提出一种应用于嵌入式平台的眼底血管分割轻量化U-Net 模型,引入自适应激活函数(Adaptive Activation Function,AAF)[15-16]和注意力(Attention Gate,AG)[17]模块,以增加少量重要参数为代价,补偿轻量化U-Net 模型参数和深度不足导致的精度下降问题,最终实现了一种基于嵌入式平台的眼底血管检测系统,用于辅助医生诊断眼底疾病。

1 系统设计

1.1 系统总体结构设计

基于嵌入式平台的眼底血管检测系统应满足以下要求:①能够预览、调节摄像头参数,拍摄、存储眼底图像,并能随时查看;②能够对眼底图像中的血管进行检测;③能够实现无线数据通信和远程控制;④界面操作简单;⑤系统稳定性好、成本低廉。

为实现上述功能,本文设计的系统总体结构如图1 所示。采用美国伟伦牌检眼镜作为光学系统,其特点为无需散瞳即可进行眼底观察,且可获取比其他检眼镜大5 倍的眼底图像。嵌入式系统采用树莓派(Raspberry Pi)开发板,该开发板与索尼公司生产的IMX377 图像传感器(CMOS 相机模块)进行USB 连接,通过I/O 端口控制光源模块,配合IMX377 图像传感器完成眼底的预览、拍摄等功能,可插入SD 卡,用于存储眼底图像,亦可移植Linux 系统,使得眼底血管分割和宽度测量算法均可在嵌入式系统上运行。该开发板自带无线网卡,可与上位机(计算机)进行SSH 和VNC 通信,实现上位机对下位机的远程控制功能,方便医生进行远程诊断。采用带有Mirco HDMI 接口的电容型触摸屏,与树莓派主板的Mirco HDMI 相连接,用于显示人机交互界面。此外,在嵌入式平台的Linux 系统上设计软件界面,医生可通过该界面完成眼底图像的采集与处理。软件界面采用多线程任务处理方法,处理图像时不会产生界面卡顿的现象。

Fig.1 Overall structure design of the system图1 系统总体结构设计

1.2 系统软件功能设计与实现

为使小型眼检设备能够协助医生进行眼底疾病的诊断,基于嵌入式平台的眼底血管检测系统应具备以下功能,具体如图2 所示。

(1)上位机功能。①当眼底图像数据扩增时,可训练新的神经网络模型;②将训练好的神经网络模型传输给下位机,用于眼底血管分割模型的更新;③接收下位机发送的眼底图像,用于专家会诊。

(2)下位机功能。①控制CMOS 相机,实现眼底图像的采集;②利用眼底血管分割算法对眼底图像进行血管分割;③通过TCP/IP 协议实现无线数据传输,将下位机采集的眼底图像上传至上位机用于远程诊断,并可下载上位机训练好的神经网络模型用于眼底血管分割算法的更新;④利用MySQL 数据库实现患者信息的记录与检索。

上位机的功能在计算机上实现,下位机的软件功能在嵌入式系统上实现。通过TCP/IP 协议,多台下位机均可根据上位机的IP 进行远程通信,实现专家远程诊断。

Fig.2 System software function design图2 系统软件功能设计

2 眼底血管分割算法设计

2.1 优化的U-Net 模型

本文提出的网络结构是受U-Net 模型[6]启发,将编码路径中不同层次的特征与解码路径中的特征映射相结合,以提取出更多层次的图像特征,从而达到准确分割的目的。该模型在原有U-Net 的基础上进行了改进,使其成为一个更小、参数更少的模型结构。单纯缩小U-Net 模型结构会导致分割精度降低[13],故本文通过引入AAF 和AG 的方法补偿模型参数、深度减少导致的损失,提出优化的UNet 模型结构——AAF+AGU-Net,具体如图3 所示。

与原始的U-Net 相比,优化的U-Net 有以下改变:

(1)左边的编码层和右边的解码层各移除了3 层;特征数量从[64,128,256,512,1024]减少至[16,32,64,128];优化后的模型参数为277 002 个,比U-Net 模型减少近30倍。因此,优化的U-Net 模型具有更高的训练速度和分割效率。

(2)引入AG 模块代替U-Net 中的skip 连接。在标准U-Net 中,为避免在解码层丢失大量精确空间细节信息,使用skip 将编码层中提取的特征(Feature Map)直接连接到解码层相对应的层,然而提取的低层次特征有很多冗余信息。为解决这个问题,在模型中引入注意力机制,强调模型要学习的特征,抑制其学习无关内容,以此提高分割精度。

(3)卷积层利用AAF 代替ReLU 函数,由原来的Conv3×3+ReLu 替换为Conv3×3+AAF。测试结果表明,这种修改以增加网络组合系数为代价,通过组合不同种类的激活函数并在每个激活函数中引入系数构成AAF,可有效改善网络性能。这些引入的系数需要在网络训练时自行学习。

标准U-Net 模型经过修改后成为一个轻量级神经网络结构,与修改前相比缩小了30 倍,但减少参数量的代价是学习能力降低[13]。因此,本文在轻量级模型的基础上加入AAF,并使用AG 代替原本的跳跃连接(Skip Connection),将U-Net 模型左边编码层与右边解码层的特征图进行拼接,神经网络中AAF 的系数和AG 中的参数均可通过正向和反向传播适应输入数据。

2.2 AG 模块

在标准U-Net 模型中,为捕获较大的感受野,特征图被逐渐下采样,从而根据不同深度的特征获取上下文的语义信息。下采样会导致底层特征损失,因此需要留下一条没有进行下采样的分支保存细节,即标准U-Net 结构中的跳跃连接。然而跳跃连接会将很多低层次特征中的冗余信息拼接到解码层路径中[17],为提高模型分割准确率,将分割任务分为目标定位和目标分割两个步骤[18-19],并将注意力机制引入到优化的U-Net 模型中,使其不需要训练多个模型和大量额外的模型参数就能实现目标定位。与多阶段神经网络的定位模型相比,AG 模块可逐步抑制不相关背景区域的特征响应,同时加强相关特征的学习,有效提高模型分割准确率。

改进的AG 模块结构如图4 所示。该模块分别输入编码层图像特征L 和相同通道数的解码层图像特征R,为使输入图像特征的尺寸相同,解码层特征需要进行一次上采样。为使输出特征图能与对应解码层的特征进行拼接,需采用Conv1×1 的卷积块将通道数由cL、cR降低至cint。为突出特征,将形状为b×cint×wL×dL的图像特征相加并输入到AAF 中,得到非线性映射的特征图像,然后再经过Wζ将通道数由Cint变为1,由sigmoid 激活函数处理后得到(0,1)区间内尺寸为b×1×wL×dL的注意力系数矩阵。编码层的输入特征L 经降通道操作后与注意力系数矩阵相乘,输出添加注意力信息的低层次特征图像。

Fig.3 Optimized structure of U-Net model(AAF+AGU-Net)图3 优化的U-Net 模型结构(AAF+AGU-Net)

Fig.4 Improved attention gate module structure图4 改进的AG 模块结构

对跳跃连接与加入AG 模块的中间训练过程进行可视化处理,并选取相同层次的特征图进行展示,结果如图5 所示。可以看出,跳跃连接的特征图像素较为杂乱,对血管像素的突出并不明显,以致于网络无法很好地进行深层次学习,而采用AG 模块的特征图更集中于需要学习的血管像素区域。

Fig.5 Visual feature images图5 可视化特征图像

2.3 AAF

激活函数是神经网络的重要组成部分,将非线性激活函数引入人工神经网络的计算中是使其能够不断学习、逐渐拟合非线性数据的关键。目前深度前馈神经网络中应用最广泛的激活函数为线性单元校正(ReLU),也有许多替代方法得到了成功应用,然而还没有一种替代方法具有明显优势。例如,Sigmoid 和Tanh 激活函数的梯度取值范围分别为(0,1)和(-1,1),当网络层数较多时,人工神经网络可能会遇到梯度消失的问题;ReLU 和ELU 激活函数仅能避免正向区域梯度消失的问题,如果遇到特征全部小于零的情况,两个函数的输出则全部为零;Leaky ReLU(LRe-LU)[20]、Parametric ReLU(PReLU)[21]和Randomized Leaky ReLU(RReLU)[22]函数被用于修正ReLu 负区域为零的问题,但往往需要根据训练数据预先选定参数。

基于此,Sütfeld 等[15]提出自适应混合单元(ABU),使用6 个基本函数(Identity、Tanh、ReLU、ELU、SELU 和Swish)的线性组合对可训练的参数进行缩放,并通过实验证明了ABU 在神经网络结构中的优势,但ABU 的优势在很大程度上依赖于激活函数在训练过程中的适应能力。类似地,Manessi 等[23]提出了一种对每层多个常用激活函数进行混合学习的方法,其中混合权值被限制为1,并在一系列任务和网络配置中证实了该方法的可行性。受此启发,本文扩展激活函数的组成范围,选取近年来在分割项目中有突出表现的激活函数,利用神经网络自适应学习每个激活函数的权重系数,以增强神经网络的学习能力。

将组合的激活函数封装于模块AFs 中,AFs 模块的组成单元为:

则AAF 可表示为:

式中,M 为AAF 的权重系数;AAF(x)为权重系数与对应激活函数的组合,可将其看作一个小型感知器网络,经过神经网络训练后可获取每个对应激活函数的权重系数,是一个适用于当前分割任务的AAF。

每个激活函数的可调整范围为[-1,1],使其具有极强的自我学习特性。值得注意的是,相较于全局应用一个AAF,本文将14 个自适应激活函数分别应用于每一层Conv3×3 卷积之后(见图3 中的黑色箭头),这样的策略能在很大程度上提高网络的自适应性。因此,本文在AG 模块中也加入AAF。

3 实验与结果分析

在两个广泛应用于眼底血管分割性能测试的数据集DRIVE、CHASE DB1 上训练并测试本文建立的AAF+AGUNet 模型,通过比较Dice 分数获取最优阈值,得到分割的二值图像。研究该模型在不同平台上的处理时间,并将其分割性能与已有研究结果进行比较。

3.1 训练与测试

DRIVE 数据集由40 张视网膜彩色图像组成,其中20张用于训练,20 张用于测试,每个图像均为565×584 像素。CHASE_DB1 数据集采集自14 名在校儿童的左右眼,共有28 张视网膜彩色图像,其中20 张用于训练,8 张用于测试,每个图像均为996 × 960 像素。图像数据增强技术可通过平移、翻转、旋转、仿射、颜色变换等人为地扩大训练数据集的大小,该技术可用于神经网络训练,以提高其性能或准确性。为消除数据不平衡带来的干扰,本文采用数据增强技术分别对两个数据集的训练数据进行扩充。

训练模型使用的工作站配置为:CPU 为Intel(R)Xeon(R)W-2255(64GRAM+2T 固态),GPU 为NVIDIA Quadro RTX 4000(8G 显存)。训练前首先对模型参数进行初始化配置,选择He 等[24]提出的方法对所有卷积层进行初始化,以避免参数初始值过大或过小的问题,使训练精度更高。为使AAF 在模型训练之初不产生某一函数权重过大的影响,使其系数全部初始化为1/10。采用Adam 优化器对模型参数进行调整,采用余弦退火算法(Cosine Annealing)[25]自适应调整学习率(Learning Rate),以提高其在训练深度神经网络时的实时性。为防止在训练过程中出现过拟合现象,在模型中加入Dropout 方法,随机失活50%的神经元。以DRIVE 数据集为例,每次输入模型训练的图片数量(Batch Size)设为2,训练集中所有数据训练1 次为1 个epoch,本文模型共训练了100 个epoch,此时Loss 值已达到稳定状态,见图6。

Fig.6 Training loss function descent curve图6 训练损失函数下降曲线(Loss)

分别在DRIVE 和CHASE_DB1 数据集上训练神经网络模型,并用于测试。模型训练完成后加载测试集中的图像,输入训练好的模型中,得到分割后的概率图像。根据Dice 分数(Dice Score)选取概率图像的最优二值化阈值,此处Dice 分数用于表征模型分割的二值图像与对应标签图像的相似性,其值越接近于1 表示图像的相似性越高,分割越精准,计算公式为:

式中,TP 为真正例(Ture Positive),FN 为假反例(False Negative),FP 为假正例(False Positive)。

概率图的最优二值化阈值求解方法为:将阈值设定为[0,1]并切块为256 份,选定阈值对概率图像进行二值化,并与对应标签图像进行Dice 分数计算,求得该阈值下分割图像的平均Dice 分数,以Dice 分数最高的阈值作为图像二值化的阈值。图7 为DRIVE 和CHASE_DB1 数据集分割图像的平均Dice 分数随阈值变化的趋势。

Fig.7 The trend of average Dice score with segmentation threshold图7 平均Dice 分数随阈值变化情况

根据得到的最优阈值(Best Threshold),对模型输出的概率图进行二值化。图8 分别列出了DRIVE 和CHASE_DB1 数据集中两张眼底图像及其分割后的二值图像,可见本文模型对血管的主干部分实现了精确分割,对细小的血管区域也表现出较高的分割水平。

Fig.8 Binary picture segmentation based on optimal threshold图8 根据最优阈值分割的二值图像

3.2 实验结果分析

表1 列出了本文提出的AAF+AGU-Net 以及3 个对照模型U-Net[6]、ERFNet[26]、M2U-Net[14]的参数量、所占内存大小、Dice 分数和在Cortex-A72 平台上的运行时间。可以看出,AAF+AGU-Net 是其中参数量最少、所占内存最小的模型,在DRIVE 和CHASE_DB1 数据集上的运行情况优于其他3 种模型。

Table 1 Test results of each model on DRIVE and CHASE_DB1 dataset表1 各模型在DRIVE 和CHASE_DB1 数据集上的测试结果

表2 列出了本文模型与以往研究成果在DRIVE 和CHASE_DB1 数据集上的相关性能指标,包括硬件平台、分割时间、Dice 分数、准确性(Acc)和AUC。其中,准确性指正确预测的样本数占总样本数的比值;AUC 为受试者工作特征曲线(ROC)下面积,越接近于1 表示模型分割效果越好。可以看出,在嵌入式设备Raspberry Pi 4 Model B 平台上,本文模型在DRIVE 数据集中的Dice 分数和准确性指标表现突出;在CHASE_DB1 数据集上,本文模型的Dice 分数虽然相较M2U-Net 低了0.24%,但本文模型参数量降低了1倍,运算速度得到了提升。

为进一步评价本文模型的性能,计算其ROC 曲线和准确率—召回率曲线(P-R 曲线)。如图9 所示,ROC 曲线的横轴表示模型预测的正样本中实际负样本数占所有负样本的比例(FPR),纵轴表示模型预测的正样本中实际正样本数占所有正确预测样本的比例(TPR)。P-R 曲线的横轴与TPR 的概念相同(召回率,Recall),纵轴表示正样本中实际正样本数占预测的正样本的比例(精确率,Precision)。其曲线下面积(AUC)分数是表征模型分割性能的重要指标,AUC 分数越接近1 表示模型分割的效果越好。当正样本个数严重小于负样本,数据严重倾斜时,P-R 曲线比ROC曲线更能直观反映出模型分割性能的优势。将本文模型的分割结果可视化,并与M2U-Net 模型进行对比,如图10 所示,本文模型对血管的细节区域分割更加准确。

Fig.9 ROC curve and P-R curve of the model on DRIVE and CHASE_DB1 dataset图9 模型在DRIVE 和CHASE_DB1 测试的ROC 曲线和P-R 曲线

Fig.10 Visual display of model segmentation effect图10 模型分割效果可视化展示

4 系统功能与界面

上、下位机软件采用PyQt 与MySQL 数据库进行联合开发。为使上、下位机实现通信,需要设置其IP 地址,上位机可通过Internet 网络进行远程控制和无线通信。上位机操作界面如图11(a)所示,主要实现专家远程诊断、神经网络模型的训练等功能。下位机的主界面如图11(b)所示,主要负责实现系统的控制、图像存储、血管分割处理、患者信息登记、无线通信等功能。

Fig.11 Master and slave computer software interface图11 上、下位机软件界面

5 结语

目前,小型眼检设备受体积和硬件条件限制,往往缺乏辅助诊断功能,本文针对上述问题,设计了一种轻量化U-Net 模型,引入AAF 和AG 模块,以增加极少量重要参数为代价补偿U-Net 模型权重和深度的缺失问题,实现了一种基于嵌入式平台的眼底血管检测系统。该系统在满足小型化要求的前提下,实现了眼底图像采集、眼底血管分割、无线通信等功能。与常用的图像分割模型相比,该模型在DRIVE 和CHASE_DB1 数据集上的Dice 分数、AUC、Acc 3 个性能评价指标均达到较高水平。目前,本课题组已经获得上海眼病防治所提供的3 000 张眼底图像,未来将在更多数据集上对该模型进行训练,以提高其泛化性。

猜你喜欢

嵌入式阈值神经网络
神经网络抑制无线通信干扰探究
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于自适应阈值和连通域的隧道裂缝提取
搭建基于Qt的嵌入式开发平台
比值遥感蚀变信息提取及阈值确定(插图)
嵌入式软PLC在电镀生产流程控制系统中的应用
室内表面平均氡析出率阈值探讨
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定