基于改进YOLOv5s的手术器械检测与分割方法
1 引言
基于视觉的内窥镜手术作为一种具有代表性的微创手术,在深度学习[1-2]时代受到越来越多的关注。与传统的手术不同,微创手术在内窥镜相机的辅助下通过一个小的切口进行,组织缝合需要使用专业的手术器械。然而,缺乏对手术技巧、手术质量等有针对性的、客观的反馈是内窥镜手术过程中存在的关键问题之一。手术过程中手术器械检测与分割的准确性对评估外科医师的手术技能具有非常重要的意义[3]。
国外针对手术器械检测与分割的研究相对较早,且近年来已有很多研究者将深度学习成功应用于实际内窥镜手术中。Jin等人[4]对手术过程中的手术器械进行检测,采用Faster-RCNN算法框架,主干网络使用VGG-16卷积神经网络,在内窥镜手术中实现了对手术器械的实时检测,可以辅助评估外科医师的操作技能。Mahmood等人[5]提出一种基于双流残差密集网络(DSRD-Net)的手术器械分割方法,利用残差和密集的空间金字塔池化模块优化算法,精准分割手术器械,减少因视野模糊等导致的人为失误,并在公开可用的胃肠内窥镜数据集上进行测试,取得了较好的实验结果。不过此类算法的参数量和运算量较大,如果再添加额外的优化模块,会导致检测和分割速度下降。基于此,文献[6]提出一种Anchor-free的卷积神经网络,通过沙漏网络对内窥镜手术视频进行逐帧检测并将手术器械建模,以点作为边界框的中心点生成检测框,在保证精度的同时,检测速度超过同时期以双阶段目标检测为代表的Anchor-based类算法。但是该网络只能生成手术器械的定位框而未实现对手术器械种类的识别,功能性上略有不足。
国内对于深度学习在微创手术领域的研究起步较晚。2018年,郑腾辉等人[7]基于全卷积神经网络(FCN)实现了对手术器械和手术器械收纳盒的图像分割,识别目标的准确度可达到像素级,但是检测目标为手术器械收纳盒中的静态手术器械,因此实用性上有所欠缺。2019年,Ni等人[8]提出一种新的网络Residual Attention U-Net(RAUNet)用于白内障手术中的手术器械语义分割,该网络通过编码-解码结构获取高分辨率的掩膜,同时关注高阶和低阶特征图,从而在保证获取重要特征的基础上有效过滤干扰信息。2022年,Ni等人[9]为解决内窥镜手术中照明因素对手术器械的影响,提出了一种新的网络SurgiNet,通过添加金字塔注意力模块捕捉多尺度特征,通过自蒸馏消除其他的干扰信息。文献[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],本文算法的整体网络结构如
2.1 Gamma校正
在基于深度学习的手术器械检测中,图像的亮度会直接影响模型训练的效果。内窥镜视频中出现的手术器械本身多为金属材质,在手术环境下极易出现反光或阴影遮挡等情况,从而影响目标检测的效果。因此,需要在模型训练前对图像进行预处理。本文采用Gamma校正算法,对内窥镜图像进行预处理。
Gamma校正算法的公式如
如
2.2 CBAM与动态卷积模块
原有算法特征图信息中每个通道的权重相等,这会导致一些无用信息的比重偏大,而关键信息的比重偏小。因此,我们在Backbone底部添加注意力机制模块CBAM,通过学习的方式获取每个通道的比重并生成权重。CBAM可同时应用空间和通道两个不同的注意力维度。在语义分割部分,由于上采样会导致部分语义信息丢失,因此,在语义分割头的C3部分加入CBAM,通过通道注意力模块以减少重要信息的丢失,可防止由于单独添加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语义分割头
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. 数据集样本。(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. GPU硬件配置
Table 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. 不同方法的AP和mAP比较
Table 2. Comparison of AP and mAP with different methods
|
由
将本文所提方法和YOLOv5s方法的损失曲线进行对比分析,结果分别如
从
3.3.3 语义分割效果分析
mIoU是评价语义分割效果的重要指标[23]。本文通过添加基于FPN网络的语义分割头实现了语义分割功能,目标检测算法的mIoU通过矩形框计算。为更好地比较分析语义分割的效果,本文在相同条件下训练其他语义分割网络并与本文方法进行比较。由于目标检测部分已经实现对于手术器械的分类功能,语义分割只需将手术器械和背景进行区分即可,因此语义分割的类别这里只定义Instruments和Background两类,将所提方法的mIoU值与其他语义分割方法进行比较,结果如
表 3. 不同方法的mIoU值比较
Table 3. Comparison of mIoU with different methods
|
由
3.3.4 检测与分割结果
本文选取数据集中具有代表性的两帧图像进行检测与分割结果分析,结果如
由
4 结论
本文采用改进的YOLOv5s结合FPN的方法实现了手术器械的检测与语义分割功能。通过Gamma校正算法,减轻反光和阴影等因素的影响;通过CBAM、动态卷积模块、空间金字塔池化模块和FPN语义分割模块,提高检测与分割的准确度,并降低漏检率。实验结果表明,手术器械的检测与语义分割效果良好,手术器械检测的mAP@0.5为98.2%,语义分割的mIoU为94.0%。所提方法可辅助外科医师提高手术效率,减小手术难度,实现术中精准导航。
[7] 郑腾辉, 陶青川. 基于全卷积神经网络的手术器械图像语义分割算法[J]. 现代计算机, 2019(9): 80-84.
ZHENG T H, TAO Q C. Semantic segmentation algorithm for images of surgical instruments based on fully convolutional networks[J]. Modern Computer, 2019(9): 80-84.
[10] 徐昌佳, 易见兵, 曹锋, 等. 采用DoubleUNet网络的结直肠息肉分割算法[J]. 光学 精密工程, 2022, 30(8): 970-983.
[14] 樊新川, 陈春梅. 基于YOLO框架的轻量化高精度目标检测算法[J]. 液晶与显示, 2023, 38(7): 945-954.
Article Outline
孟晓亮, 赵吉康, 王晓雨, 张立晔, 宋政. 基于改进YOLOv5s的手术器械检测与分割方法[J]. 液晶与显示, 2023, 38(12): 1698. Xiao-liang MENG, Ji-kang ZHAO, Xiao-yu WANG, Li-ye ZHANG, Zheng SONG. Detection and segmentation method of surgical instruments based on improved YOLOv5s[J]. Chinese Journal of Liquid Crystals and Displays, 2023, 38(12): 1698.