APP下载

基于双线性注意力金字塔网络的压疮等级识别

2022-12-11陈昱彤邓悟何小海

智能计算机与应用 2022年11期
关键词:细粒度金字塔压疮

陈昱彤,邓悟,何小海

(1 四川大学 电子信息学院,成都 610065;2 四川大学 华西天府医院,成都 610065)

0 引言

压疮,又称压力性溃疡(Pressure Ucler,PU),俗称褥疮[1]。压疮是临床上常见的一种慢性伤口,所有人都有可能患上压疮,且更高概率发生在重病、神经系统疾病、行动不便、姿势不良或畸形、皮肤受损或营养不良者身上[2]。因为压疮具有难以愈合的特性,故将压疮视作医疗质量的重要指标,并已成为公共卫生系统和经济支出上的一个不小负担[3]。但是目前PU 的管理现状却远远不能令人满意,全球护理资源短缺也是不可忽视的事实。目前最普遍使用的PU 风险评估工具是Braden 量表,但是Braden 量表在区分有压疮发生风险的重症监护患者方面表现出预测有效性欠佳和准确性差的问题,可能无法充分反映重症监护患者的特征[4]。到目前为止,亟需一种能够帮助医护人员判别压疮分级的工具,以便及时采取治疗,预防轻度压疮向重度压疮的转变。

随着人工智能的不断发展,现已越来越多地被应用在日常生活中。而将人工智能应用在医疗领域的实践可行性也已获得了充分有效的验证。有研究指出,生物医学大数据(Biomedical Big Data)在学术领域和工业应用领域都是全球范围内到目前为止发展最快的领域之一[5-6]。本文探究关于PU 智慧数字化的诊断方式,有助于减轻一线临床医生的负担,以及提高对病患的护理质量。

近些年,细粒度视觉分类(Fine-Grained Visual Categorization,FGVC)是计算机视觉领域颇具挑战的一个方向,细粒度是指类别更加细分、类间差异更加细小的分类任务[7],符合压疮等级分类的需求。美国国家压疮咨询委员会(National Pressure Ulcer Advisory Panel,NPUAP)发布的《国际性压疮防治指南》中规定根据局部组织破坏的严重程度对压疮级别进行Ⅰ~Ⅳ期[3]的划分,与医生共同完成压疮图像数据集SCU-PU 的构建。数据集仅包含图像的类别标签,不包含额外的人工标注信息(Annotation),因此采用基于弱监督的细粒度图像分类方法[8]。

目前,主流的基于深度学习的弱监督细粒度图像分类方法大致可以分为2类[9]:基于特征编码的方法和基于局部区域定位的方法。对此可做阐述如下。

(1)基于特征编码的方法。是对特征的高阶信息进行编码,比如Lin 等人[10]提出的B-CNN 网络使用双线性池化来聚合2 个独立卷积网络中的特征,计算2 个CNN 流输出特征通道的外积以捕获二阶信息。此外,Yu 等人[11]提出了跨层双线性池化的方法来捕获层级间的特征信息。

(2)基于局部区域定位的方法。是通过定位网络来明确地分离与特定对象局部区域相关联的细微外观差异来促进细粒度分类。比如,Yang 等人[8]提出的NTS 网络将金字塔特征应用于FGVC 任务,在CNN 上应用金字塔网络(Feature Pyramid Network,FPN)来学习区域定位器[12],定位可能的信息区域有利于后续的分类任务。此外,Ding 等人[13]提出的APCNN 中包含区域选取网络(Region Proposal Network,RPN)以弱监督的方式生成金字塔感兴趣区域[14]。

综合上述2 种方式可以看出,高效获取特征和感兴趣区域是细粒度分类的关键,本文在APCNN网络的基础上优化了注意力特征提取模块,并且引入了双线性注意力池化机制,得到了改进的双线性金字塔网络BAP-CNN 以此提高模型分类的准确率。实验结果表明,优化后的模型在自建的压疮图像数据集SCU-PU 上取得了良好的识别率。

1 基础网络APCNN

为了能够使用多尺度的特征[15],APCNN 提出了一种新的注意力金字塔卷积神经网络,目的是更有效地集成高层语义和底层细节特征来进行细粒度分类,可以在不使用边框和其他零件标注的情况下联合学习多级信息和细化的特征。该网络与传统细粒度分类网络的不同在于将金字塔层级结构引入,图1 为APCNN 网络框图。

图1 APCNN 网络示意图Fig.1 APCNN network diagram

首先,输入原始图像进入特征金字塔网络和注意力金字塔网络,遵循自上向下的特征路径和自下而上的注意路径,生成金字塔特征和金字塔注意。然后,RPN[14]以弱监督的方式生成金字塔感兴趣区域(Region of Interest,RoI),使用RoI引导的删除和缩放对图进行细化。将细化后的特征图送入细化阶段,已提取更多有利于分类的鉴别信息。每个金字塔级别都设置了单独的分类器,将特征图和注意力图点乘后进行全局平均池化(Global Average Pooling,GAP)[16],最后取平均得到分类结果。

1.1 注意力金字塔模块

一般的特征金字塔网络(Feature Pyramid Network,FPN)利用各个层次的特征定位不同尺度上的样本,以关注不同尺度上对象的细微差异[12]。APCNN 在一阶段通过在金字塔特征上引入额外的注意力机制,形成一个自下而上的注意力金字塔(Attention Pyramid)进一步增强FPN 结构。注意力金字塔包括空间注意和通道注意,生成过程如图2所示。

图2 注意力金字塔模块Fig.2 Attention Pyramid Module

金字塔空间注意模块里每层将FPN 中的特征映射Fk作为输入,经过一个3×3 的反卷积层,以压缩空间信息;最后使用Sigmoid层来调整空间注意力输出的尺度,按照公式(1)生成空间注意掩码:

其中,σ表示Sigmoid函数;“ ∗”表示反卷积;υc表示的是3 ×3 的卷积核。结果得到了基于多尺度的空间注意力金字塔

金字塔通道注意模块设计思路基于SE -Net[17],每层都将FPN 中的特征映射Fk作为输入,经过GAP层和2 个全连接(FC)层;最后使用Sigmoid层来调整通道注意力输出的尺度,按照公式(2)生成通道注意掩码

其中,σ表示Sigmoid函数;ReLU表示ReLU函数;W1和W2是2 个FC 层的权重矩阵;GAP(·)表示的全局平均池化函数,具体如式(3)所示:

其中,W和H表示Fk的空间维度。

GAP[16]的目的是对跨越空间维度,对W ×H的特征映射进行压缩成一维的并且将感受野扩展到了全局,能够提取更丰富的特征。2个FC层可以更好地拟合通道间复杂的相关性,自动学习分配特征权重,提升对当前任务有用的特征通道,抑制作用不大的特征通道。结果得到通道注意力金字塔

1.2 感兴趣区域引导的细化模块

细化模块是指APCNN 在二阶段对金字塔底层特征Bn进行RoI引导的细化,包括丢弃和裁剪,从而进一步提高细化阶段的性能。

首先将先前模块得到的注意力映射Ak输入RPN[14]。RPN 是一种候选框生成网络,对于每个金字塔级别卷积感受野设计了比例和范围生成目标候选框,并且对区域建议采用非极大值抑制(Non-Maximum Suppression,NMS)来减少区域冗余[18],这样一来就形成了感兴趣区域(RoI)金字塔Rall={Rn,Rn+1,…,Rn+N-1}。

RoI引导的丢弃策略通过在特征图上随机删除连续区域来删除某些语义信息,从而强制网络学习剩余区域的信息,有效防止过拟合问题的产生[19]。首先从Rall中随机选取区域Rs,然后从Rs中以相同概率选取信息区域rs∈Rs,并通过将RoI区域激活设置为0,得到丢弃掩码M,推导得到的公式可写为:

通过式(5)在底层特征Bn上应用掩码M,并进行归一化得到丢弃的特征映射Dn:

不同于传统的随机丢弃,RoI引导的丢弃可以直接擦除信息部分,鼓励网络找到更多有区分性的区域,从而提高准确率。

RoI引导的裁剪策略通过合并所有RoI金字塔,以弱监督的方式学习输入图像的最小边界矩形,并得到分别表示合并边界矩形在x轴和y轴的最小和最大坐标,表示为[tx1,tx2,ty1,ty2],根据式(6)从之前的丢弃的特征掩码Dn中提取该区域,得到细化特征Zn,即:

其中,φ指的是双线性上采样函数。

需要指出的是,细化操作只在训练过程中执行,测试过程将跳过这一操作。将细化后的特征Zn发送到细化阶段进行下一步预测,再与原始阶段的预测进行平均,得到最终预测结果。

2 改进网络BAP-CNN

细粒度分类任务需要解决的2 个难点在于:

(1)高层次的语义,属于同一类别的物体图像呈现出不同的姿势和视角。

(2)低层次的特征,子类别间的差异通常很细微。

针对以上问题,本文的改进网络BAP-CNN 主要对基础网络APCNN 做了2 方面的改进:

(1)通过改进空间注意力提取的机制对注意力金字塔模块进行优化。

(2)通过改进池化机制对特征融合部分进行优化。

2.1 优化空间注意力模块

原始网络中的注意力金字塔模块由空间注意力和通道注意力两部分并联组成,2 个单独的注意力分支计算得出了最终的注意力图。其中,空间注意力模块采用了一个3×3 的反卷积的方法,反卷积可以增加图像尺寸,从而实现压缩空间信息的目的。

但是反卷积有一个不可避免的缺点,输出的特征图容易出现棋盘效应[20]。棋盘效应是由于反卷积的“不均匀重叠”而导致的结果,使图像中某个部位的颜色比其他部位更深。尤其是当卷积核的大小不能被步长整除时,反卷积就会发生不均匀重叠的现象。并且这种棋盘状的现象会层层递进,影响此后的注意力图输出,最终影响整个网络的预测效果。

考虑到对空间注意力模块进行优化,本文参考ResNet[21]提出的Bottleneck 瓶颈结构,改进后的瓶颈注意力模块(Bottleneck Attention Module,BAM)结构如图3 所示。在瓶颈注意力模块中,空间注意力分支生成过程如下。

图3 瓶颈注意力模块Fig.3 Bottleneck Attention Module

每层将FPN 中的特征映射Fk作为输入,使用一个1×1 的卷积将原特征映射降维以整合和压缩信道维度的特征图,并通过2 个3×3 的膨胀卷积[22]来聚合具有更大感受野的上下文信息,继而使用1×1 的卷积再次压缩空间注意力图;此后为了调整尺度比例,使用Sigmoid函数将空间注意掩码的每个元素归一化压缩在(0,1)之间,按照公式(7)生成空间注意掩码

其中,σ指的是Sigmoid函数;f表示卷积运算,其上标为卷积核大小。

利用膨胀卷积来高效地扩大卷积的感受野,可以得到比普通卷积更有效的空间映射,加强模型对图像每个像素和周围关系的理解。不仅如此,Bottleneck 瓶颈结构可以减少构造中的参数数量,从而节省计算的开销,提升了网络的速度。

2.2 双线性注意力池化

原始网络中在特征融合时使用了点乘之后全局平均池化(GAP)的方法[16],其优势在于可以减少融合时特征的维度,极大地减少了网络的参数。但是缺点是GAP操作会造成收敛速度减慢,并且融合后的特征向量会受到注意力图强度的影响,容易丢失一些纹理信息。

针对细粒度图像分类的任务,利用双线性池化操作来融合2 个独立卷积中的特征是一种经典的基准做法,被广泛地运用于提取图像高阶信息[10]。本文引入双线性注意力池化(Bilinear Attention Pooling,BAP)的特征融合方式,通过外积的重组方式,双线性池化能够将基础网络的一阶特征映射成更高阶的特征,显式地表达出更多的图像细节信息,从而提升分类网络的准确率。本文模型加入的双线性注意力池化的过程如图4 所示。

图4 双线性注意力池化过程图Fig.4 Bilinear attention pooling process diagram

首先把网络前面阶段生成的特征图Fk和注意力图Ak进行逐元素相乘计算得到部分特征图,然后再对部分特征图进行池化和向量化操作后,得到双线性向量池P,用于后续的分类和预测,计算过程可表示为:

其中,g(·)表示池化和向量化计算过程,可由如下公式计算求出:

本文使用BAP 对2 种特征进行融合,再用于后续的分类任务,可以提升网络性能。并且双线性池化的形式简单,有利于梯度的反向传播,从而实现端到端的训练。

3 实验结果与分析

3.1 实验数据集

本文实验在2 个常用的基准细粒度视觉分类(FGVC)数据集上进行训练和测试,包括CUB-200-2001[23]和FGVC-Aircraft[24]。所有数据集包含同一类别下的多组子类别。

为了验证改进后网络BAP-CNN 的有效性,将改进后的模型在自建的压疮伤口图像数据集SCUPU 中进行训练和测试。根据美国国家压疮咨询委员 会(National Pressure Ulcer Advisory Panel,NPUAP)发布的《国际性压疮防治指南》中规定Ⅰ~Ⅳ期分期标准[3],增广前的SCU-PU 数据集包括压疮的4 个等级,共140 张图像。

由于DeiT[25]表明数据增强可以实现高性能模型训练和测试,根据压疮图像的特征,为了保留更精细的图像特征信息,不干扰图像纹理特征,选取特定角度翻转和旋转的方式实现数据增强,以扩充压疮数据集协助网络训练。将SCU-PU 数据集的每一张图像先进行水平、垂直、主对角线和副对角线四种翻转,再每45°进行一次旋转,共旋转7次,最终扩充40 倍的数据,经过以上数据增广后的SCU-PU 可以更好地适用于网络训练。本文实验选用的所有数据集的分布情况见表1。

表1 实验数据集分布Tab.1 The distribution of the dataset used in the experiment

3.2 实验平台与实验细节

本文实验使用的 GPU 为 Nvidia GeForce GTX1080Ti,操作系统为Ubuntu 16.04,CUDA 版本为10.0,Python 版本为3.6,使用深度学习框架Pytorch 1.3.0,TorchVision 0.4.1。

本文网络与基础模型对比,在ResNet50[21]的基础上实现BAP-CNN。具体来说,金字塔的层级结构选择ResNet50 中剩余块conv3、conv4和conv5,分别表示为B3、B4和B5 在最后输出特征,其中细化模块在B3 上进行。细化模块中的drop -out丢弃块率设置为0.5。关于输入图像大小,对于细粒度视觉分类数据集,根据大多数对比文献中实验输入图像大小为448×448;对于自建压疮图像数据集SCUPU,在采集后,运用图像处理算法将输入图像大小调整为224×224。

训练过程中batchsize设置为16,epoch为100,初始学习率为0.001,使用随机梯度下降SGD 进行优化,设置动量为0.9,衰减权重为0.000 01,每隔2次迭代、调整一次学习率。

3.3 评价指标与实验结果

为了评估BAP-CNN 模型对细粒度分类任务和压疮伤口图像分类的性能,本文采用混淆矩阵来可视化计算准确率,并且将准确率作为本文实验的评价指标。准确率可以反映训练网络准确分类各等级的数量,准确率越大,表明正确分类的数量越多。准确率Accuracy的数学定义公式见如下:

其中,TP、TN、FP、FN分别表示真阳性、真阴性、假阳性和假阴性。

为了验证改进后的网络BAP-CNN 的有效性,在2 个基准细粒度视觉分类(FGVC)数据集CUB-200-2001 和FGVC-Aircraft 上进行训练和测试,并与当前主流代表性的细粒度分类网络B-CNN[10]、NTS[8]和WSDAN[26]进行比较,定量对比实验结果见表2。

表2 不同模型在FGVC 数据集上对比Tab.2 Comparison of different models on the FGVC dataset

表2 列出了多个模型与本文中的BAP-CNN 模型在FGVC 数据集中的准确率Accuracy对比。其中,在CUB-200-2001 数据集上,与经典的双线性卷积网络B-CNN 模型相比,本文设计出的BAPCNN 模型的准确率从84.1%增长到了90.3%,提升了6.2%,与经典的细粒度网络NTS 和WSDAN 相比,准确率分别提升了2.8%、0.9%。而在FGVCAircraft 数据集上,与经典网络B-CNN、NTS 和WSDAN 相比,准确率也均有提升,分别提升了10.4%、3.1%和1.5%。同时,在2 个基准细粒度视觉分类(FGVC)数据集上,本文的改进网络BAP-CNN与基础网络APCNN 相比可知,识别准确率均能提升,分别提升了1.9%和1.1%。说明本文BAP-CNN模型的方法具有较好的分类准确率,验证了改进网络的有效性。

本文BAP-CNN 模型对基础网络主要进行了2个方面的改进,为了进一步验证本文改进方法对提升模型识别准确率性能的有效性,在基础网络APCNN 上逐一进行模块的改进,通过消融实验来分别验证各个模块优化的有效性。实验中网络的Baseline 均选用ResNet50,实验结果见表3。

表3 消融实验在FGVC 数据集上结果Tab.3 Results of ablation experiments on the FGVC dataset

从表3 所列出的消融实验结果可知,在2 个FGVC 数据集上,对不同模块改进的2 个网络在识别准确率上均有提升作用。与基础网络APCNN 对比,改进了瓶颈注意力模块,在FGVC-Aircraft 数据集上的识别准确率提升较大,提升了0.9%;引入了双线性注意力池化的网络,在CUB-200-2001 数据集上的识别准确率提升较大,提升了1.0%。而且,根据表3 的实验结果可知,同时改进了2 个模块的本文网络BAP-CNN 与基础网络对比在识别效果上有更明显的改进,分别提升了1.9%和1.1%。

为了验证改进后网络BAP-CNN 的有效性,将改进后的模型在自建的压疮伤口图像数据集SCU-PU中进行训练和测试,并与细粒度分类网络NTS 和WSDAN 在识别准确率上进行比较,定量对比实验结果见表4。

表4 不同模型在SCU-PU 数据集上对比Tab.4 Comparison of different models on the SCU-PU dataset

表4 列出了多个模型与本文中的BAP-CNN 模型在自建的压疮伤口图像数据集SCU-PU 中的准确率(Accuracy)对比。由实验数据可以看出,在压疮图像等级分类任务中相较于传统的细粒度分类网络,本文网络有更高的识别准确率,高于NTS网络3.9%,高于WSDAN网络2.3%。和基础网络APCNN 对比,识别效果也提升了1.4%,验证了本文方法有较好的分类准确性和良好的泛化能力。

为了进一步探究压疮图像各个等级分类任务的差异性,使用基础网络和本文网络BAP-CNN 针对压疮图像的Ⅰ期、Ⅱ期、Ⅲ期和Ⅳ期四种等级分别进行对比实验。实验中,网络的Baseline 均选用ResNet50,实验结果见表5。

表5 SCU-PU 数据集上压疮各等级识别率对比Tab.5 Comparison of the recognition rates of pressure ulcers at different levels on the SCU-PU dataset

从表5 所列出的对比实验结果可以看出,对于不同等级的压疮图像样本,识别的准确率不同。从Ⅰ期到Ⅳ期压疮等级的样本,识别准确率依次降低。其中,Ⅰ期与Ⅱ期、Ⅲ期的压疮等级识别率差异相对较小,而Ⅰ期与Ⅳ期的压疮等级识别率相差较大,达到了35%左右。

压疮分级是根据局部组织破坏的严重程度进行划分的[3],上述实验数据分析说明,不同程度的局部组织破坏会对压疮产生不同的影响。这也与实际的临床观察结果相对应,越高等级的压疮伤口、其局部组织破坏的程度越严重,可以提取到的特征差异性较小,所以导致了识别率不高的问题。

4 结束语

为了更好地识别不同等级的压疮图像,本文提出了一种基于双线性注意力金字塔网络的压疮等级识别方法。首先,输入原始图像进入金字塔网络,生成特征图和注意力图;然后,根据注意力图生成的RoI引导,对金字塔底层特征进行细化;最后,引入双线性注意力池化对特征图和注意力图进行特征融合得到双线性向量池,输入线性分类层得到识别结果。改进后的网络BAP-CNN 在细粒度视觉分类数据集CUB-200-2001 和FGVC-Aircraft 上表现良好,相比基础网络和经典细粒度分类取得了更高的准确率,验证了网络改进的有效性。并且在自建压疮图像数据集SCU-PU 上测试得到了71.1%的识别准确率,表明BAP-CNN 在识别分类任务上具有较好的泛化能力。

但是在压疮图像数据集上却仍有不足,采集到的不同等级的压疮图像数量存在差异,数据集构建在未来还有亟待丰富扩充的空间。由于数据集存在不足对压疮等级识别准确率有一定影响,所以本文网络在公开数据集上表现良好,但是在自建数据集中识别准确率却较低,针对如何提升不同等级的压疮的识别率,在下一步工作中可以继续探索。

猜你喜欢

细粒度金字塔压疮
融合判别性与细粒度特征的抗遮挡红外目标跟踪算法
“金字塔”
贴膜固定法换药在压疮治疗中的应用
家有卧床老人,如何预防压疮
Great Vacation Places
基于SVM多分类的超分辨图像细粒度分类方法
海上有座“金字塔”
基于web粒度可配的编辑锁设计
金字塔是用金子造的吗
支持细粒度权限控制且可搜索的PHR云服务系统