APP下载

基于改进YOLOv5s 的手术器械检测与分割方法

2023-12-11孟晓亮赵吉康王晓雨张立晔

液晶与显示 2023年12期
关键词:手术器械内窥镜语义

孟晓亮, 赵吉康, 王晓雨, 张立晔, 宋 政

(山东理工大学 计算机科学与技术学院, 山东 淄博 255000)

1 引言

基于视觉的内窥镜手术作为一种具有代表性的微创手术,在深度学习[1-2]时代受到越来越多的关注。与传统的手术不同,微创手术在内窥镜相机的辅助下通过一个小的切口进行,组织缝合需要使用专业的手术器械。然而,缺乏对手术技巧、手术质量等有针对性的、客观的反馈是内窥镜手术过程中存在的关键问题之一。手术过程中手术器械检测与分割的准确性对评估外科医师的手术技能具有非常重要的意义[3]。

国外针对手术器械检测与分割的研究相对较早,且近年来已有很多研究者将深度学习成功应用于实际内窥镜手术中。Jin 等人[4]对手术过程中的手术器械进行检测,采用Faster-RCNN 算法框架,主干网络使用VGG-16 卷积神经网络,在内窥镜手术中实现了对手术器械的实时检测,可以辅助评估外科医师的操作技能。Mahmood等人[5]提出一种基于双流残差密集网络(DSRDNet)的手术器械分割方法,利用残差和密集的空间金字塔池化模块优化算法,精准分割手术器械,减少因视野模糊等导致的人为失误,并在公开可用的胃肠内窥镜数据集上进行测试,取得了较好的实验结果。不过此类算法的参数量和运算量较大,如果再添加额外的优化模块,会导致检测和分割速度下降。基于此,文献[6]提出一种Anchor-free 的卷积神经网络,通过沙漏网络对内窥镜手术视频进行逐帧检测并将手术器械建模,以点作为边界框的中心点生成检测框,在保证精度的同时,检测速度超过同时期以双阶段目标检测为代表的Anchor-based 类算法。但是该网络只能生成手术器械的定位框而未实现对手术器械种类的识别,功能性上略有不足。

国内对于深度学习在微创手术领域的研究起步较晚。2018 年,郑腾辉等人[7]基于全卷积神经网络(FCN)实现了对手术器械和手术器械收纳盒的图像分割,识别目标的准确度可达到像素级,但是检测目标为手术器械收纳盒中的静态手术器械,因此实用性上有所欠缺。2019 年,Ni 等人[8]提出一种新的网络Residual Attention U-Net(RAUNet)用于白内障手术中的手术器械语义分割,该网络通过编码-解码结构获取高分辨率的掩膜,同时关注高阶和低阶特征图,从而在保证获取重要特征的基础上有效过滤干扰信息。2022 年,Ni 等人[9]为解决内窥镜手术中照明因素对手术器械的影响,提出了一种新的网络Surgi-Net,通过添加金字塔注意力模块捕捉多尺度特征,通过自蒸馏消除其他的干扰信息。文献[10]提出一种改进的DoubleUNet[11]分割方法,通过对图像进行预处理,并使用密集连接空洞空间卷积池化金字塔(DenseASPP)模块[12]和Focal Tversky Loss 损失函数进一步提取图像特征。该方法可以辅助外科医师切除结肠异常组织,从而降低息肉癌变的概率。

综上所述,基于深度学习的手术器械检测与分割得到很多研究者的关注。虽然RAUNet网络已经考虑手术器械反光的问题,但在实际的内窥镜手术中,除手术器械金属材质自身导致的反光问题外,组织器官之间的相互遮挡、光线影响以及阴影遮挡等问题[13]也需要被考虑。文献[14]已经证实通过对YOLO 算法的Neck 部分的下采样进行优化和添加注意力机制,可以在保证模型轻量化的同时进一步提高检测的精度。但目前YOLO算法应用于内窥镜手术的研究相对较少,且目标检测中存在的漏检问题仍然有改进的空间。

针对以上问题,本文提出一种改进的YOLOv5s 手术器械检测与分割方法。对于内窥镜图像中存在的反光和阴影遮挡等问题,使用Gamma 校正算法优化图像亮度和对比度。通过添加CBAM(Convolutional Block Attention Module)[15]、动态卷积以及空间金字塔池化模块以增强目标特征信息的权重,进一步提高手术器械检测的准确度并降低漏检率。最后,在模型的Neck部分添加基于特征金字塔网络(FPN)的语义分割分支,同时实现手术器械的检测和语义分割功能,辅助外科医师提高手术效率,减小手术难度。

2 方法

本文基于YOLOv5s 算法框架,针对手术器械的检测与分割问题进行优化,以实现内窥镜图像中手术器械的检测与分割[16],本文算法的整体网络结构如图1 所示。在内窥镜图像进行训练之前,需要对图像进行图像增强、图像填充和锚框计算等预处理。在Backbone 部分,以YOLOv5s为基础,添加5 个Conv 模块和C3 模块,每一个Conv 模块都包含一个1×1 的卷积核。对输入的特征图像进行卷积操作,同时通过BatchNorm 正则化函数和SiLU 激活函数[17]进行处理。C3 模块中包含3 个标准的Conv 卷积层,对残差特征进行学习。特征信息进入C3 模块后分为两个分支:一个分支使用多个Bottleneck 和3 个标准卷积层;另一个分支经过一个卷积模块。然后将两个分支通过Concat 进行连接。图像输入尺寸为640×640,每次经过一个Conv 与C3 的组合模块后,特征图会变为原来尺寸的1/2,再经过5 次卷积后,输出20×20 的特征图。在Neck 部分,采用PANet 框架,也称为FPN+PAN。FPN 特征金字塔是一个自顶向下的过程,如输入FPN 的特征图尺寸为20×20,经过2 倍上采样后,特征图尺寸变为40×40。Conv 模块输出的40×40 特征图经过卷积核后,在Concat 模块和经过上采样的特征图融合,后续的Conv、C3 和Concat 模块重复前述步骤。PAN 和FPN 相反,是一个自底向上的特征金字塔[18]。FPN 是自顶向下传递特征内容,而PAN 是自底向上传递特征位置,通过组合可以有效融合两者的优点,同时PAN 采用80×80的特征图,经过两次Conv 与C3 的组合模块后,分别输出40×40 和20×20 的特征图。

2.1 Gamma 校正

在基于深度学习的手术器械检测中,图像的亮度会直接影响模型训练的效果。内窥镜视频中出现的手术器械本身多为金属材质,在手术环境下极易出现反光或阴影遮挡等情况,从而影响目标检测的效果。因此,需要在模型训练前对图像进行预处理。本文采用Gamma 校正算法,对内窥镜图像进行预处理。

Gamma 校正算法的公式如式(1)所示:

如图2 所示,红色和蓝色曲线分别代表灰度值过高和过低的情况,当r<1 或r>1 时,Gamma算法会对图像灰度值进行调整。对于图像中灰度值较高的区域,经过校正后灰度值会减小,使r的值接近于1;对于图像中灰度值较低的区域,经过校正后灰度值会增大,使r的值接近于1。

图2 Gamma 校正算法曲线图Fig.2 Graph of Gamma correction algorithm

2.2 CBAM 与动态卷积模块

原有算法特征图信息中每个通道的权重相等,这会导致一些无用信息的比重偏大,而关键信息的比重偏小。因此,我们在Backbone 底部添加注意力机制模块CBAM,通过学习的方式获取每个通道的比重并生成权重。CBAM 可同时应用空间和通道两个不同的注意力维度。在语义分割部分,由于上采样会导致部分语义信息丢失,因此,在语义分割头的C3 部分加入CBAM,通过通道注意力模块以减少重要信息的丢失,可防止由于单独添加CBAM 模块导致的网络层数过多的问题。图3 为CBAM 的结构图。

图3 CBAM 结构Fig.3 Structure of CBAM

另外,将Neck 部分的Conv 模块更换为动态卷积ODConv 模块[19]。注意力机制可赋予权重,通过注意力权重进行学习可以提高CNN 网络的准确性并减少计算量。普通的动态卷积仅关注卷积核数量,而其他3 个参数(输入通道数、输出通道数、空间大小)容易被忽略。本文使用的ODConv 模块可通过对4 个维度的并行策略实现对内核空间互补注意力的学习,从而进一步提高模型的准确度。

2.3 空间金字塔池化模块优化

YOLOv5s 使用的空间金字塔池化模块是SPPF(Spatial Pyramid Pooling Fast),在保持SPP 效果的同时提高其速度。本文使用SPPCSPC 模块[20](SPP-CSP-Concat),该模块采用CSP结构[21],通过保留SPP 不同尺度的最大池化层使模型视野进一步扩大,可解决特征重复提取的问题。同时,可建立一条新的卷积分支,将原图通过卷积核后,与通过最大池化层得到的特征图进行二次合并,可有效减少池化后的特征损失,从而进一步提高检测的准确度。

2.4 FPN 语义分割头

图1 中,在FPN 和PAN 的连接位置增加语义分割头,使80×80 的特征图继续按照FPN 特征金字塔结构的上采样步骤进行,实现语义分割功能[22]。在生成80×80 的特征图后形成两个分支,一个分支进入PAN 模块,另外一个分支继续采用自顶向下的上采样结构实现语义分割。因此,本文模型可同时实现目标检测和语义分割。

3 实验与结果分析

3.1 数据集

本文数据集采用Cholec80,该数据集中包含大量的内窥镜手术视频,我们选取Cholec80 中的20 个内窥镜手术视频并按照一定的帧频转换成内窥镜图像序列,将其中不存在手术器械或者手术器械较为模糊的图像剔除。数据集包含4 000 幅图像,其中3 000 幅图像用于训练,1 000 幅图像用于测试。本文将数据集中的手术器械分为7 类,分别标注为Grasper、 Hook、 Clipper、 Scissors、 SpecimenBag、 Bipolar和Irrigator。

由于模型需要同时实现目标检测和语义分割功能,本文分别通过LabelImg 和Labelme 制作两种不同格式的标签。目标检测标签设定为txt格式,语义分割标签设定为png 格式记录掩膜,并对数据集通过Gamma 校正算法进行调整优化。通过实验发现,如果数据集中不同类别手术器械的数量相对平均时,Grasper 类型的手术器械识别的准确度明显低于其他6 类手术器械。因此,我们在数据集中提高了Grasper 类型的比例,将Grasper 类型的图像数量提高至1 000 幅,其余6 类手术器械各为500 幅图像。

图4 为数据集样本的部分图像。由图4(a)可以看出,数据集中手术器械受环境的影响较大,导致图像中亮度分布不均,即使是同一幅图像,手术器械的金属部分反光强烈导致亮度过高,而周围环境和手术器械的其余部分相对较暗。因此,通过Gamma 校正算法,可使数据集中的图像亮度分布相对均匀,减少外界因素对目标检测的影响,如图4(b)所示。图4(c)为分割掩膜结果。

图4 数据集样本。 (a) 原图; (b) Gamma 校正后结果;(c) 分割掩膜。Fig.4 Dataset sample. (a) Original image ;(b) Results after Gamma correction ;(c) Segmentation mask.

3.2 训练环境

本文的模型训练在Windows 10 操作系统上进行,模型由Python 编程语言实现,编程软件采用PyCharm。采用CPU 进行模型训练相对缓慢,因此,我们通过GPU 对网络框架进行模型训练,GPU 的硬件配置如表1 所示。

表1 GPU 硬件配置Tab.1 Hardware configuration of GPU

3.3 实验结果分析

3.3.1 模型衡量指标

本文需要同时衡量目标检测和语义分割的效果。对于目标检测,本文选用mAP@0.5 和 损失作为模型的衡量指标;语义分割通过mIoU 进行衡量。最后,通过测试集验证实际检测和分割的效果。

3.3.2 目标检测效果分析

对于目标检测而言,召回率(Recall)和精确度(Precision)是衡量目标检测结果的两个非常重要的指标。AP 为通过计算每一个召回率对应精确度的值并进行平均得到的一个衡量标准;mAP是将目标检测中所有种类的AP 取平均值的结果。本文将所提方法与其他目标检测算法的AP和mAP 进行比较,结果如表2 所示。

表2 不同方法的AP 和mAP 比较Tab.2 Comparison of AP and mAP with different methods

由表2 可以看出,无论是在不同手术器械的单项AP 上还是整体的mAP 上,本文方法都要优于其他方法。相较于YOLOv5s,优化后算法在本文手术器械数据集上的mAP@0.5 提高了1.8%,达到了98.2%。在单阶段检测方法中,本文算法在mAP@0.5 上仍然具有优势,相较于目前流行的SSD 和RetinaNet 算法,mAP 分别高出3.2%和2.8%;相较于经典的双阶段检测方法Faster-RCNN,本文算法的mAP@0.5 提高了11.4%,验证了本文方法在AP 上的优势。

将本文所提方法和YOLOv5s 方法的损失曲线进行对比分析,结果分别如图5 和图6所示。

图5 本文所提方法的损失曲线Fig.5 Loss curve of the proposed method

图6 YOLOv5s 方法的损失曲线Fig.6 Loss curve of the YOLOv5s method

从图5 和图6 可以看出,对于bounding box 检测框损失,本文所提方法和YOLOv5s 方法都接近0.02。对于obj 目标检测损失,最终两者在数值上比较接近。但在验证集val 的obj 损失曲线上, YOLOv5s 在降低到0.012 后缓慢回升,并在0.014 附近上下波动;而本文所提方法在降低到0.012 后,一直较为平稳的维持在0.014 以下。从曲线和数据上可以看出,YOLOv5s 在测试集val 上的损失曲线更加平滑,当epoch 为100 时,训练集损失曲线也趋于平稳。本文所提方法由于引入语义分割模块,训练集train 的obj 损失曲线和测试集val 的损失曲线几乎趋近于90°,在训练集train 最终损失值相差不大的情况下,本文所提方法的损失曲线下降速度最快,在进入平稳期后波动也最小,不会像YOLOv5s 一样出现明显的上下波动。在验证集val 上,本文所提方法的损失曲线无论是在训练的波动幅度还是最终损失值上都优于YOLOv5s 方法,进一步验证了本文方法的有效性和优势。

3.3.3 语义分割效果分析

mIoU 是评价语义分割效果的重要指标[23]。本文通过添加基于FPN 网络的语义分割头实现了语义分割功能,目标检测算法的mIoU 通过矩形框计算。为更好地比较分析语义分割的效果,本文在相同条件下训练其他语义分割网络并与本文方法进行比较。由于目标检测部分已经实现对于手术器械的分类功能,语义分割只需将手术器械和背景进行区分即可,因此语义分割的类别这里只定义Instruments 和Background 两类,将所提方法的mIoU 值与其他语义分割方法进行比较,结果如表3 所示。

表3 不同方法的mIoU 值比较Tab.3 Comparison of mIoU with different methods

由表3 可以看出,本文方法在语义分割方面有着良好的表现,mIoU 值达到了94.0%,远高于经典分割网络FCN。相较于Deeplabv3 和UNet图像分割网络,本文方法的mIoU 分别高出2.2%和1.3%。相较于目前流行的语义分割网络PSPNet,mIoU 提高了0.9%,进一步验证了本文方法的有效性和优势。

3.3.4 检测与分割结果

本文选取数据集中具有代表性的两帧图像进行检测与分割结果分析,结果如图7 所示。

图7 手术器械检测与分割结果Fig.7 Detection and segmentation results of surgical instruments

由图7(a)可以看出,本文方法能够较好地实现手术器械的检测和语义分割,在多个手术器械同时存在的情况下也能够进行准确识别。但也会存在漏检的情况,如图7(b)所示,相较于被检测出的Scissors 类型的手术器械,漏检的手术器械在图像中所占比例相对较小,且受到手术环境的遮挡,导致模型提取的特征信息不足,被检测器误认为是背景信息,因此出现了漏检现象。但是语义分割模块却能够很好地识别该手术器械并进行准确地分割,在一定程度上弥补了目标检测的漏检问题。

4 结论

本文采用改进的YOLOv5s 结合FPN 的方法实现了手术器械的检测与语义分割功能。通过Gamma 校正算法,减轻反光和阴影等因素的影响;通过CBAM、动态卷积模块、空间金字塔池化模块和FPN 语义分割模块,提高检测与分割的准确度,并降低漏检率。实验结果表明,手术器械的检测与语义分割效果良好,手术器械检测的mAP@0.5 为98.2%,语义分割的mIoU 为94.0%。所提方法可辅助外科医师提高手术效率,减小手术难度,实现术中精准导航。

猜你喜欢

手术器械内窥镜语义
一种具有附加内窥镜功能的医疗管
电子内窥镜临床评价要求探讨
内窥镜技术研究进展
持续质量改进对手术器械供应及时性与准确性的影响
语言与语义
“上”与“下”语义的不对称性及其认知阐释
认知范畴模糊与语义模糊
鼻内窥镜在分泌性中耳炎治疗中的作用
提高手术器械准备完善率
神经外科手术器械指南