一种基于改进YOLOv5s网络的结直肠腺瘤实时检测方法

2022-06-16 00:31:26刘爽田兆星李浩然常颖吴思蓓薛林雁
河北大学学报(自然科学版) 2022年3期
关键词:结肠镜腺瘤息肉

刘爽,田兆星,李浩然,常颖,吴思蓓,薛林雁

(1.河北大学 质量技术监督学院,计量仪器与系统国家地方联合工程研究中心,河北 保定 071002;2.河北大学附属医院 消化内科,河北 保定 071000)

结直肠癌(colorectal cancer,CRC)是消化道系统常见的恶性肿瘤,亦被称为大肠癌,是发生于结肠和直肠的肿瘤的总称.根据2020年全球癌症统计报告[1],在全球范围内,结直肠癌的发病率和死亡率在各类恶性肿瘤中高居第3位和第2位.在中国,2020年结直肠癌的新发病例约为55.5万例,死亡病例约为28.6万例,发病率和死亡率分别位列第2位和第5位,严重威胁中国居民健康.大部分结直肠癌由结直肠腺瘤演变而来,这一过程被称作结直肠腺瘤-癌序列[2].因此,早期发现并切除腺瘤性息肉,对预防或根治结直肠癌具有重要的临床意义[3].

结肠镜检查是诊断结直肠癌的金标准.衡量结肠镜检查质量的重要评价指标是腺瘤检出率(adenoma detection rate,ADR),指一名内镜医师在进行以筛查为目的的肠镜检查中发现病理学确诊的腺瘤或腺癌的平均比例[4].循证医学证据表明,腺瘤检出率每增加1%,间期结直肠癌的发病率降低3%~6%[5].因此,有效地提高腺瘤检出率可以潜在地降低结直肠癌的发病率.

随着人工智能技术的发展和计算机算力的提升,基于深度学习的计算机辅助诊断系统(computer aided diagnosis,CAD)表现出良好的性能,目前已应用于乳腺癌[6-7]、肺癌[8-9]、胰腺癌[10]等疾病的临床辅助诊断中.基于人工智能的结直肠息肉CAD系统能够提升息肉检测的准确率,降低漏检率和误检率.在早期的研究中,Karkanis等[11]利用传统的机器学习算法提取肠镜图像中腺瘤性息肉的颜色和纹理特征,模型的灵敏度达到90%,准确率达到95%.随后,由于深度学习算法能够自动提取目标特征,当前已有多个深度学习模型基于卷积神经网络(CNNs)[12]进行结直肠腺瘤的实时检测.如Qadir等[13]使用从公开数据集CVC-Clinic中获取的20段结肠镜视频来验证他们的方法,在处理视频的当前帧时,利用前后帧的信息综合分析连续帧之间的时间依赖性,判别当前帧中是否存在真阳性结果,最终结果表明,该模型的准确率和召回率在原网络的基础上分别提升了16%和10%.Zhang等[14]利用深度卷积神经网络实现对腺瘤性及增生性息肉的实时检测,在随机光照、变焦和光学放大条件下采集包含1 930张图像的实验数据集,其中非息肉、增生性息肉、腺瘤性息肉图像分别为1 104、263、563张,实验后得到准确率、召回率及平均精度分别为87.3%、87.6%和85.9%.Ma等[15]通过修改网络模型中将原网络中识别出来的假阳性再次输入反复学习并输出结果,经过几次迭代后可以将假阳率大幅减小.模型通过在CVC-Clinic Video DB数据集的11 954个结肠镜视频帧上进行评估,该模型准确度在原网络基础上能提升约2%.

然而,上述研究仍然有一定的局限性:1)为了提升检测精度而不断加深网络,增加识别步骤,导致检测速度大幅下降,因此影响了检测的实时性[16];2) 目前的研究大都采用静态的图像或者精选的结肠镜视频作为数据集对深度学习模型进行训练和验证,而实际临床诊断中有许多如肠道准备情况、退镜时间、结肠镜检查设备等不确定因素,这些因素可能导致计算机辅助系统的性能会有所下降.

本研究使用融入了通道注意力机制和改进了损失函数的YOLO(you only look once)v5s网络来对结肠镜视频中的腺瘤性息肉做实时检测,使用公开数据集和自建数据集训练并评估模型性能.最终实验表明,与原网络YOLOv5s相比,改进后的网络在准确率、召回率和平均精度上分别提升了3.4%、0.9%和1.0%,且识别速度基本没有影响,完全满足实时检测的需求.

1 改进的YOLOv5s算法

1.1 网络模型的选择

传统的目标检测网络分为单阶段和双阶段2种.双阶段目标检测器如Mask R-CNN[17]、Faster R-CNN[18]采用了2段式结构采样来处理类别不均衡的问题,第1阶段粗略回归,第2阶段精确调整,且RPN使正负样本更加均衡,因此网络的准确率更高,但目标检测的速度较慢.单阶段目标检测网络如SSD[19]在检测过程中对特征图的每个位置都设置多个先验框(anchors),每个先验框对应一个特定的位置,再利用非极大值抑制[20](NMS)消除多余的先验框,最终将目标检测结果呈现出来.相比于双阶段网络,单阶段的目标检测网络检测速度快,但对太近距离或太小目标进行检测时易漏检,因此网络的准确率较低.

考虑到结肠镜检查对实时性和准确性的要求,本研究选择YOLOv5s[21]这一单阶段目标检测网络中性能较好的模型.其主干网使用CSP瓶颈结构[22],可以从输入的肠镜视频中提取丰富的腺瘤特征,且解决了网络优化的梯度信息重复问题,因此检测的准确率较高.与此同时,该模型的参数量较小,因此具有较快的检测速度.

1.2 注意力机制

为了使目标特征提取更准确,在模型中增加了注意力机制.在实验过程中对比分析了通道注意力机制(squeeze-and-excitation networks,SE)[23]和基于空间和通道混合域的卷积模块注意力机制(convolutional block attention module,CBAM)[24-25].

SE模型如图1a所示.先对通道总数为C且尺寸为H×W的特征图进行全局平均池化,得到各通道的统计量1×1×C;再经过两级全连接操作来组建通道之间的相关性,并输出同样数目的权重,由此可以更好地拟合通道间复杂的相关性,得到不同的权重比例;最后将通道权重作归一化处理,并作为通道比例与输入图像的通道分别相乘,作为下一级的输入数据.SE模型通过控制通道比例的大小增强重要的特征,减弱不重要的特征,从而使提取的特征指向性更强.

CBAM模型如图1b所示.输入的特征图F先经过通道注意力提取模块提取特征图的通道信息,再将融合了通道信息的特征图输入到空间注意力模块中,提取空间敏感信息,最后再将通道特征、空间特征与原始特征图三者融合得到输出的特征图F″.

a.SE模型;b.CBAM模型.图1 注意力机制模型Fig.1 Aattention mechanism model diagram

1.3 融合通道注意力机制的网络架构

融合了SE模块的网络构架如图2a所示.为了使图像的特征提取更加充分,尺寸为608×608×3的特征图先经过临近下采样模块对特征图做切片操作,每隔1个像素点获取1个值,由此得到输出尺寸均为304×304×12的4张相似图片.这些图片通过瓶颈层做卷积操作后得到1张304×304×64的特征图,瓶颈层的处理过程如图2b所示.在进行1×1卷积和3×3卷积操作后加入新的SE模块,SE模块先对输入特征图进行全局池化,然后经过2层的全连接结构,可以组建复杂通道之间的相关性,通过权重归一化和通道加权处理,让权重占比高的通道得到更多关注,达到提升通道关注度的目的.从瓶颈层输出的特征图进一步输入网络的颈部,颈部构造为金字塔网络结构,作用是在保证底层信息不丢失的同时,将检测器头部分为大、中、小3种不同的尺寸,使该网络能够对不同尺寸的目标都有很好的检测效果.颈部中包含多个CSP瓶颈层,每个CSP瓶颈层都包含若干个加入了SE模块的瓶颈层,如图2c,因此CSP瓶颈层丰富了架构的梯度组合,在减少网络的计算量和降低计算成本的同时提高推理速度和准确性.

a.网络整体结构示意;b.瓶颈层结构;c.CSP瓶颈层结构.图2 融入了SE的YOLOv5s结构示意Fig.2 Schematic diagram of the structure of YOLOv5s incorporating the SE

1.4 非极大值抑制(non-maximum suppression,NMS)

由于YOLOv5s网络的滑动窗口机制,1个目标可能会生成多个检测框.为了使检测结果更加精确,可以应用非极大值抑制先找到概率最大的检测框,然后分别判断其他检测框与该检测框的交并比是否大于设定的阈值.若大于该阈值,则去掉该检测框;若小于该阈值,则保留该检测框并与原检测框取并集最后做矩形化处理.随机选取1张内镜图片,图3a标出了真实的腺瘤标注信息.将图片送入训练后的目标检测网络中,改进后的YOLOv5s网络会对图片进行特征提取、注意力机制关注感兴趣区域等操作,然后会在目标上生成多个预测框并判别该预测框中是否有目标,具体识别的结果如图3b所示,对1个目标生成多个预测框且各预测框之间无任何关系.因此需要在图片可视化之前做NMS处理,将同一目标的多个预测框做非极大值抑制,最终只保留1个预测框,并给出预测目标的置信度,如图3c所示,在经过NMS处理后的网络识别结果只有1个预测框,且置信度为1,与标注结果完全相符.

a.腺瘤的真实标注;b.NMS处理前网络预测值;c.NMS处理后腺瘤识别结果.图3 NMS效果Fig.3 NMS renderings

1.5 损失函数的改进

YOLOv5使用交叉熵损失函数(BCELogits)来计算目标损失,该损失函数将损失和归一化分开计算,在一定程度上造成计算冗余,增加了计算时间.与之相反,归一化交叉熵损失函数(BCEWithLogitsLoss)[26]将交叉熵损失和归一化二者融合,相当于在计算过程中省略了归一化这一步骤,可以在一定程度上加快计算速度.

BCEWithLogitsLoss计算的目标损失L主要包括目标定位损失Lloc和目标置信度损失Lconf,如式(1).

L=Lloc+Lconf.

(1)

目标定位损失Lloc采用GIoU损失.GIoU直接把交并比设为回归的损失,如式(2).

(2)

对于任意2个先验框A和B,存在找到一个最小的封闭框C,使C可以把A、B包含在内.然后计算C中除A和B之外的面积占C总面积的比值.再用A、B的交并比减去这个值最后得到的值就是GIoU.因此,GIoU损失可以表示为式(3).

Lloc=LGIoU=1-GIoU.

(3)

目标置信度损失Lconf包括正样本目标置信度损失Lp和负样本目标置信度损失Ln,如式(4).

Lconf=Lp+Ln,

(4)

其中

(5)

(6)

2 实验方法

2.1 实验环境

本实验在操作系统为Ubuntu 18.04的工作站(戴尔Precision5820高性能深度学习塔式工作站)上运行,其核心配置为Inter Core i7-7800*1,NVIDIA RTX 2080Ti*2以及128G的DDR4运行内存.显示器为冠捷卢瓦尔系列4K医学图像显示器.深度学习框架为Python3.8.5和Pytorch1.6.0.在训练过程中的初始参数设置如下:批处理大小(Batchsize)为32,学习率为0.01,训练周期(epoch)设置为200,每隔100学习率减半,ADAM[27]优化器的动量参数,β1、β2和ε分别设置为0.5、0.999和0.001,

2.2 实验数据

实验所用的数据分别来自河北大学附属医院消化内科和公开数据集CVC-Clinic Video.实验数据来自于2016年6月至2019年3月在河北大学附属医院进行结肠镜检查的1 197例患者,每例患者的结肠镜报告中至少存在1枚腺瘤性息肉.本文共收集了50 230张结肠镜图像,其中的2 074张至少有1个腺瘤性息肉(占图像总数的4.13%);其余均不含腺瘤性息肉,或存在拍摄模糊、肠道处理不佳等情况(占图像总数的95.87%).2位经验丰富的消化道内科医师根据病理结果对含有腺瘤性息肉的2 074张图像通过labelImg图像标注软件进行手动标记,确保腺瘤位置准确无误.将其中的1 566张图片作为训练集,用于对网络参数进行训练和优化;其余508张图片作为测试集,用于评估经过训练后的算法的实际学习能力是否达到预期要求.除此之外,还从CVC-Clinic Video获得了20段共19 700帧结肠镜检测视频,用于验证该算法对视频的实时检测能力.

2.3 评价指标

在结直肠镜的检查中,检测的精度十分重要.为了最大限度地体现网络的精度,降低检测期间的误检率和漏检率,本文选择使用精确率(precision,P)、召回率(recall,R)、F1分数、F2分数,mAP@0.5(IoU为0.5时的平均精度值)和每秒的处理帧数(帧/s)作为网络性能的评价指标.精确率和召回率的定义如下:

(7)

(8)

其中,TP为真阳性,表示正确检测出的腺瘤数量;FP为假阳性,表示错误地把非腺瘤组织识别成腺瘤的数;FN为假阴性,表示未被正确识别的腺瘤数量.然而在实际检测过程中,精确率和召回率不足以证明网络性能达到最优,因此需要将二者结合起来,计算F1分数和F2分数,来验证网络的综合性能.

(9)

(10)

平均精度的计算方法为:在坐标轴上绘制IoU=0.5的R-P曲线,计算出的曲线下面积即为mAP@0.5.

2.4 实验流程

使用改进后网络对图像和视频的具体检测过程如图4所示.改进后的YOLOv5s先对输入图像帧进行特征提取,再将提取到的特征进行多尺度融合.融合后的特征图同时进行注意力感兴趣区域信息提取和生成预测目标框并判别的操作,最后输出腺瘤的个数和位置.若输入数据集中仍存在下一帧图像,则进入下一帧的检测;若无下一帧存在,则输出最终结果.

图4 实验流程Fig.4 Experimental flowchart

3 实验结果与分析

3.1 不同网络的对比实验

首先对比了单阶段目标检测网络YOLOv5s、YOLOv5x和双阶段目标检测网络Faster R-CNN.表1显示了3种网络的各种性能指标.

表1 YOLOv5s、YOLOv5x、Faster R-CNN网络性能对比Tab.1 YOLOv5s,YOLOv5x,Faster R-CNN network performance comparison

由表1可知,双阶段目标检测网络Faster R-CNN的精确率略高于单阶段目标检测网络YOLOv5s(0.905 vs 0.881)和YOLOv5x(0.905 vs 0.887),但其召回率低于单阶段目标检测网络YOLOv5x(0.931 vs 0.934),因此在F1分数(+0.8%)、F2分数(+0.2%)和mAP@0.5(+0.2%)等评价指标上与YOLOv5x没有显著性差异.对目标进行实时检测时检测速度须达到40帧/s以上,而实验中Faster R-CNN的响应速度只有37帧/s,因此双阶段目标检测网络不能达到实时检测的标准.

对于YOLOv5的2个单阶段目标检测网络,由于YOLOv5x的预训练权重更大,因此在精确率、召回率、F1分数、F2分数和mAP@0.5等检测精度指标上表现更好.然而实时检测任务对检测速度和检测精度的要求均较高,更快的网络可以更有效地降低检测延迟,从而降低检测过程中的漏检率.由表1可知,YOLOv5s的检测速度远高于YOLOv5x(98帧/s vs 55帧/s),因此选择速度更快的YOLOv5s网络,并进一步改进其网络架构以提高系统的检测精度.

3.2 不同注意力机制的对比实验

由于注意力机制可以更好地拟合通道间复杂的相关性,使网络更加关注权重较高的通道和目标位置,因此本实验对比分析了在YOLOv5s中分别加入SE模块和CBAM模块后网络性能改进的效果.

如表2所示,与原网络YOLOv5s相比,融合了SE模块和CBAM模块后的网络性能均有提升,但前者对网络性能的提升更显著.其中精确率的提升达到3.4%,而加入CBAM的精确率只提升了0.6%.此外,由于CBAM在计算复杂程度上高于SE,因而网络的检测速度较慢(77帧/s vs 82帧/s).总之,在单阶段网络中加入SE机制后能够有效提高检测各项的精度指标.

表2 融入注意力机制前后网络性能对比Tab.2 Comparison of network performance before and after incorporating the attention mechanism

3.3 改进损失函数的对比实验

虽然加入注意力机制可以提升网络的检测精度,但同时也在一定程度上损失了网络的响应速度.为了在提高精度的同时不影响网络的检测速度,本文将原网络YOLOv5s中的交叉熵损失函数替换为BCEWithLogitsLoss损失函数.BCEWithLogitsLoss省略了原损失函数的归一化步骤,因此在检测速度方面可以得到一定的改善.表3所示为损失函数的改进对网络性能的影响.在几乎不影响精确率、召回率、F1分数、F2分数和mAP@0.5等精度指标的情况下,响应速度由原来的98帧/s提升到了110帧/s.优化损失函数后的网络,每秒可以多检测12帧图片,更加保证了检测的实时性.

表3 改进损失函数前后网络性能对比Tab.3 Comparison of network performance before and after improving the loss function

3.4 网络的总体改进结果

Faster R-CNN、YOLOv5s原网络与改进之后的网络性能对比如表4所示.与原网络YOLOv5s相比,增加了SE模块并改进了损失函数后的网络在各项精度指标上均有提升,其中精确率提升了3.4% (0.915 vs 0.881),召回率提升了0.9% (0.934 vs 0.925),F1分数提升了2.2% (0.924 vs 0.902),F2分数提升了1.4% (0.930 vs 0.916),mAP@0.5 提升了1.0% (0.936 vs 0.926).检测速度由原来的98帧/s变为了93帧/s,基本保留了原网络较快的检测速度.此外,改进后网络在精度和速度的表现均超过了双阶段目标检测网络Faster R-CNN.由此,改进后的网络在不影响检测速度的同时,提高了检测精度,增强了网络对结直肠镜下腺瘤的捕捉能力,可以辅助医师进行诊断,降低由主观因素导致的误检率和漏检率.

表4 改进前后网络性能对比Tab.4 Comparison of network performance before and after improvement

为了更直观地对比网络改进的效果,随机选取了2张经内镜医师标注的内镜图片,每张图片各包含1个腺瘤,其位置分别如图5a和图5d中矩形框所示.对比YOLOv5s和改进后的网络,原网络的识别结果如图5b和5e所示,改进后的网络识别结果如图5c和5f所示.对于图5a的输入图像,原网络YOLOv5s 并未识别出扁平状细小腺瘤,即出现漏检情况(图5b),而改进后的网络可以将其有效地捕捉到,且置信度为0.9(图5c).对于图5d的输入图像,原网络将形状类似腺瘤的正常肠道组织也识别成腺瘤,且置信度为0.7(图5e),而改进后的网络并未将其错误识别(图5f).因此,改进后网络检测性能优于原始的YOLOv5s.

a.腺瘤的真实标注;b.YOLOv5识别结果;c.YOLOv5s+SE识别结果;d.腺瘤的真实标注;e.YOLOv5识别结果;f.YOLOv5s+SE识别结果.图5 YOLOv5s+SE与原网络图片测试结果对比Fig.5 Comparison of YOLOv5s+SE and original network picture test results

4 结束语

为了对结直肠镜下的腺瘤进行实时检测,本文改进了单阶段目标检测网络YOLOv5s,在其主干网中加入了通道注意力机制.由于腺瘤性息肉具有独特的颜色和纹理,因此,用通道注意力中的通道加权代替原网络中的全局池化,可以更大限度地保留腺瘤性息肉的特征,降低漏检率和误检率.除此之外,本文还对损失函数做了调整,用BCEWithLogitsLoss替换原网络的交叉熵损失函数,以此提升检测速度.通过实验验证后发现,改进后的网络在精确率和召回率等精度指标上比其他对比网络表现更好,并且在提升检测精度的同时,并未影响检测的实时性,检测速度只从原始的98帧/s变为93帧/s,完全可以满足实时检测,因此改进后的网络具有潜在的临床应用价值和良好的应用前景.

视频中上下文之间信息的重复导致网络对视频的目标检测识别精度和召回率会略高于图片,但相邻帧之间的重复目标也存在着大量的冗余信息,这些冗余信息在本文中并未被发掘,如果能通过一些办法过滤掉冗余信息而不损害网络性能,那么检测速度还可以获得一定的提升;另外,对重复信息提供更多的关注度,也可以解决视频中单帧图片检测中由于运动模糊等问题造成的漏检问题,从而提升网络性能.这是下一步改进工作的研究方向.

猜你喜欢
结肠镜腺瘤息肉
结肠镜治疗前肠道清洁准备致水中毒一例报告
息肉虽小,防病要早
后肾腺瘤影像及病理对照分析
你真的了解子宫内膜息肉吗
结肠镜下治疗肠息肉的临床疗效观察
175 例结肠镜诊断和治疗结肠息肉的临床分析
姜兆俊治疗甲状腺腺瘤经验
胸腺瘤放射治疗研究进展
ER、PR、Ki-67在绝经后子宫内膜息肉中的表达
减轻结肠镜操作中腹痛的研究进展