基于CBAM Faster R-CNN的食道癌检测
2021-12-17佘逸飞高军峰闵祥德徐胜舟盘安思蓝文威
佘逸飞,高军峰,闵祥德,徐胜舟*,盘安思,蓝文威
(1 中南民族大学 计算机科学学院 & 湖北省制造企业智能管理工程技术研究中心,武汉 430074;2 中南民族大学 生物医学工程学院,武汉 430074;3 华中科技大学同济医学院附属同济医院 影像科,武汉 430030)
目前,根据相关资料显示,我国食道癌的患病率常年位于世界前列.国内外专家也针对食道癌做了相关的研究.早些年前,薛东军[1]等人提出了一种基于PC机的早期食管癌细胞自动识别分类系统,该系统利用传统方法对食管癌细胞图像预处理,图像分割,以及特征提取等操作,得出癌变的相关信息,由医生综合这些信息对病人进行诊断.后来,SOMMEN F V D等人[2]提出了食道癌检测的计算机辅助诊断系统(Computer Aided Diagnosis,CAD),其利用基于Gabor滤波的食管内窥镜图像计算局部颜色以及纹理特征,同时利用训练好的支持向量机(Support Vector Machine,SVM)分类器对其特征进行分类,查全率和查准率分别为95%及75%.SCHOON E J等人[3]提出了检测早期食管内窥镜图像的CAD系统,该系统采用特定纹理,彩色滤镜,及机器学习技术在44例食管癌患者的100幅食管内窥镜图像中的敏感性和特异性分别达到0.86和0.87.以上文献中食管癌CAD系统主要为针对食管癌细胞图像和食管内窥镜图像的研究.目前国内外还未见基于钡餐造影图像的食道癌检测系统的相关研究,钡餐造影图像是指患者吞食糊状硫酸钡后,通过钡剂经食道到达胃,十二指肠部位的显影过程来进行诊断.钡餐造影能很好地显示病变部位,黏膜改变及癌瘤长度.既可以对病变进行定位又可以定性[4].在实际的临床研究中X线钡餐和CT检查各有优势,两者结合有利于食管癌诊断及指导临床治疗[5].
近年来,机器学习和人工智能的兴起促进计算机视觉得到了进一步的发展.在目标的分类、检测和分割等任务上取得和人类相当甚至是超过人类的性能水平.现阶段计算机视觉已经成熟应用于医学图像处理[6]、文档分析[7]、军事领域[8]、无人驾驶[9]等热门领域.在2014年GIRSHICK R等人提出了基于感兴趣区域(Region of Interest,ROI)与卷积神经网络(Convolutional Neural Network,CNN)相结合的目标检测算法R-CNN[10].该算法是基于深度学习的目标检测算法的开篇大作,也激发了更多优秀的学者对目标检测算法的研究兴趣.R-CNN首先从输入图像中筛选出2000个包含可疑目标的候选区域,然后将这2000个候选区域送入CNN模型中得到特征向量,这些特征向量作为SVM和边框回归模型的输入,经过SVM得到ROI属于某类对象的概率,经过边框回归模型得到待检测目标的坐标位置.虽然R-CNN实现了基于深度学习的目标检测算法,但在ROI的特征向量提取过程中,无法实现卷积层的参数共享.2015年GIRSHICK R受SPP-NET[11]启发提出了基于ROI的深度学习目标检测算法Fast R-CNN[12],该算法首次提出了ROI pooling层,使得用于ROI特征向量提取的卷积层实现了参数共享,也将分类和回归任务同时加入了网络.但它的缺点是在ROI的提取中仍然用的是Selective Seacrh算法,该算法是在CPU上运行的,存在运行速度慢等问题.2016年任少卿等人采用区域生成网络(Region Proposal Network,RPN)进行ROI的提取,提出了目标检测算法Faster R-CNN[13].至此目标检测的3个基本步骤:提取原始图片中的ROI、ROI特征提取、ROI分类及边框回归全部被统一到同一个深度网络框架中,真正地实现了目标检测任务端到端的学习.因此,Faster R-CNN一经提出,便在医学图像检测问题上表现出相对其他网络的明显优势.
本文将食道癌患者病例作为实验数据集,利用Faster R-CNN网络进行训练和测试,为进一步提升检测性能,本文创新性地将卷积注意力模块[14](Convolutional Block Attention Module,CBAM)融入Faster R-CNN的backbone网络中.评测结果表明本文方法明显优于Faster R-CNN原网络.
1 食道癌检测算法
1.1 算法原理
从本质上来讲,食道癌检测算法主要分为两个步骤,第一步是进行ROI的提取,第二步是对提取的ROI进行目标分类以及边框回归.本文所用的食道癌病灶区域检测算法CBAM Faster R-CNN是通过在Faster R-CNN网络的基础上引入CBAM模块而形成的,该算法流程如图1所示.首先将钡餐造影图像输入至引入CBAM模块的backbone(VGG16[15])网络,得到一系列特征图,再由RPN网络生成候选区域Proposals,由特征图获取这些Proposals对应的特征向量,最后将这些向量输入至ROI pooling层,完成目标分类以及边框回归操作.最后得到的是候选区域检测框以及该检测框为目标类别的概率.
图1 CBAM Faster R-CNN的网络结构Fig.1 Network structure of CBAM Faster R-CNN
1.2 算法模型
CBAM Faster R-CNN算法模型主要由三部分组成,分别是引入CBAM模块的backbone网络,RPN网络和ROI Pooing层.CBAM backbone网络是由一种轻量级的卷积神经网络注意力模块即CBAM,卷积层以及池化层构成.CBAM结合了通道(Channel)注意力机制以及空间(Spatial)注意力机制,通过引入注意力机制可以使输出信息更聚焦于更关键更有用的信息,减弱甚至消除无关信息的干扰,从而达到提高模型准确率的目的.
图2 通道注意力模块Fig.2 Channel attention module
空间注意力模块如图3所示,空间注意力模块的输入为F与Mc的乘积即通道注意力特征图Fc,首先对Fc分别采用基于Fc通道的平均池化操作和最大池化操作,再将平均池化结果AvgPoolc与最大池化结果MaxPoolc进行Concat操作,得到的结果与1个7×7大小,个数为1的卷积核进行卷积操作并使用Sigmoid激活函数,最终得到空间注意力图Ms.
图3 空间注意力模块Fig.3 Spatial attention module
CBAM模块则结合了通道注意力机制以及空间注意力机制,整个模块如图4所示.首先将特征图F输入至通道注意力模块得到通道注意力图Mc,再将F与Mc的乘积即通道注意力特征图Fc输入至空间注意力模块得到空间注意力图Ms,最后将通道注意力特征图Fc与空间注意力图Ms的乘积作为CBAM模块的输出,即优化后的特征图F′.且其高度、宽度和通道数均与输入F相同,分别为H,W,C.
图4 CBAM模块Fig.4 CBAM module
本文将CBAM模块加入至Faster R-CNN的backbone网络层(图5)中并尝试了7种不同的添加方式,再将经CBAM模块加强后的特征图输入至后续RPN层及ROI pooling层.在卷积神经网络的初始阶段,卷积提取的特征为一些通用特征,直接运用模型在自然数据集上预训练参数即可获得很好的效果,所以将CBAM模块加在前面这些Block中是次优的,极大地增加了计算量,同时模型的效果不会有太大提升.在后续的Block中,卷积提取的特征为语义信息更为丰富的全局特征,所以更希望模型注意到这些重要的特征,同时这些特征的提取往往更复杂,所以综合以上情况,仅考虑在Block3,Block4,Block5中添加CBAM模块,并尝试了共7种实验方案,分别在Block3后加入,Block4后加入,Block5后加入,Block3、Block4后分别加入,Block3、Block5后分别加入,Block4、Block5后分别加入以及Block3、Block4和Block5后分别加入.
图5 Faster R-CNN backbone网络结构Fig.5 Faster R-CNN backbone structure
CBAM Faster R-CNN中的RPN网络主要用于生成Proposals.其中关于ROI区域的生成主要用到了“anchor”的思想,所谓的“anchor”实际上就由CBAM backbone网络得到的特征图通过3×3的卷积后,将卷积后的结果中每一个像素点通过一定比例映射至原图,并通过3种不同的长宽比以及3种不同的矩形区域面积生成共计9种不同的ROI;然后将这些ROI区域进行一定的筛选,最后选取128个正样本,128个负样本分为两路送入训练,一路是基于候选框前景背景的二分类问题;一路是基于候选框的初步回归问题,此回归仅涉及判定为前景的候选框.经过RPN层最终得到了以原图为基准的不同大小的Proposals,同时将这些不同大小的Proposals映射到特征图中的对应区域得到其特征向量.然后将这些特征向量送至ROI pooling层,将这些特征向量水平分为7×7的网格.对网格的每一份都进行Max pooling处理.这样处理后,即使大小不同的Proposals输出结果都是7×7固定大小,实现了固定长度输出.最后将这些Proposals特征向量送入终端网络中,通过全连接层和Softmax层计算每个Proposal是否属于病灶区域,输出类别预测概率向量;同时再次利用边框回归获得每个Proposal的位置偏移量,用于回归更加精确的食道癌病灶区域.
1.3 数据集预处理
本文中所有的实验数据均来自于华中科技大学同济医院消化科提供的数据资源.具有丰富临床经验的放射科医师们从近五年中的大量病例中选取了具有代表性的200个食道癌患者病例.根据患者检查时体位的不同,每个病例分为了若干个体位,每个体位包含若干钡餐造影图像,图像格式为JPG格式,分辨率大小为1024×1024像素,位深度为24位.数据集分布如表1所示.
表1 数据分布详情Tab.1 Data distribution details
1.4 数据增强
为增强模型对目标区域亮度值偏高或偏低的样本的检测能力,本文首先对训练集中病灶区域亮度值偏高或偏低的数量偏小的困难样本实施仿射变换(如图6所示).将仿射变换后的困难样本与原训练集合并构成新的训练集,再对新的训练集采用水平翻转,垂直翻转的增强策略.对于普通样本,通过这些增强策略后的样本数是原样本数的3倍.对于数量偏小的困难样本,通过这些增强策略后的样本数是原样本数的7倍.
图6 困难样本数据增强Fig.6 Data augmentation of hard examples
本实验对测试集40个病例共计1166张图片进行了评测,对于每一张图片,将测试结果矩形框与其金标准矩形框进行IOU(Intersection over Union)计算,其中IOU的定义如下:
(1)
其中Area(a)代表金标准矩形框面积,Area(b)代表预测矩形框面积.若两者IOU比例大于等于TP阈值,则认为该模型成功预测出该张图片的病灶区域,FP(真阳性数)加一;反之则未能预测出该张图片的病灶区域,FP(假阳性数)加一.并根据TP,FN,PF计算出Recall,Precision,AP.Recall也称召回率,表示在所有食道癌患者样本中有多少食道癌患者样本被预测正确,Recall值越高也表明模型的漏检率越低.Precision又称精确率,表示在所有预测结果中有多少食道癌患者样本被预测正确,Precision值越高也表明模型的误检率越低.AP则是由横坐标Recall、纵坐标Precision两个维度下围成的PR曲线下面积,AP的值越大说明检测模型的综合性能越好.Recall,Precision的计算公式如下:
(2)
(3)
2 实验结果及分析
本文的CBAM Faster R-CNN模型是在Windows平台上利用TensorFlow1.13实现的,在训练过程中,动量值、初始学习率、权重衰减和最大迭代次数分别设置为0.9,0.001,0.0005和70000.为了全面评估算法性能,模型改进前后实验均在数据增强后的训练样本上进行训练,并且在相同的测试样本上进行测试.对比原始Faster R-CNN算法,改进后的模型的Recall,Precision,AP指标均有明显提升.
目前国内外还未见基于钡餐造影图像的食道癌检测系统的相关研究,本文算法主要对比原Faster R-CNN算法.图7展示了本文的食道癌检测算法在2张食道癌钡餐造影图像上的检测结果.其中蓝色线条代表放射科医师圈画的食道癌病灶轮廓,即金标准区域,绿色线条则是检测算法得到的检测结果.从检测结果中可以看出本文算法更接近医师的金标准.
图7 食道癌图像检测结果Fig.7 Esophageal cancer image detection results
2.1 数据增强前后评测实验结果及分析
本文采用了如1.4所述的数据增强方式,针对困难样本和普通样本进行不同数量的增强,图8描述了数据增强前后模型AP值随IOU的变化曲线图.由图8可观察出,针对IOU阈值处于0.1~0.5时,即检测条件更加宽松,在训练集数据增强后,模型的AP值较未增强提高了1.26%~5.61%,但在IOU阈值处于大于0.5的范围时,即检测条件更加严格,在训练集数据增强后,模型的Recall,Precision,AP值都较原始训练集有所降低.考虑到实际的项目需求,本实验主要为医生提供辅助诊断,因此主要考虑小IOU阈值时模型的检测能力.
图8 数据增强前后AP值对比Fig.8 Comparison of AP before and after data augmentation
2.2 模型改进前后实验结果及分析
本文采用如表2第1列所示的7种方式将CBAM融入backbone网络中,即分别在图5所示的Block3、 Block4、 Block5、 Block3和Block4、 Block3和Block5、 Block4和Block5层,以及Block3、 Block4和Block5层后分别加入.表2描述了在各个IOU阈值下,模型改进前后对模型Recall,Precision,AP值的影响,表中一列则代表某一固定阈值,其中Recall,Precision,AP值在该阈值下最高的已用加粗字体标出.由表2可观察到,同样在数据增强后的训练集上训练,在各IOU阈值情况下,模型改进后的Recall、Precision、AP值较原模型都有较大提升,其中AP值提高了0.1%~5%,即CBAM Faster R-CNN的病灶区域检测矩形框整体上更接近医生圈画的金标准且假阳性更少.为结合临床实际需求,本实验主要考虑IOU阈值为0.3时模型的检测能力,此时AP值最高的改进模型为Block5后加入CBAM模块的CBAM Faster R-CNN模型.相较于Faster R-CNN模型,Recall值提升了1.54%,Precision值提升了3.39%,AP值提高了3.73.
表2 模型改进前后食道癌检测结果对比
为分析实验结果,本文打印了经原Faster R-CNN backbone网络后得到的特征图和原Faster R-CNN经CBAM模块(Block5)增强后的backbone网络得到的特征图,并从512张特征图中随机抽取3张如图9中2、3列所示,图9描述了原Faster R-CNN backbone网络生成的特征图与原Faster R-CNN经CBAM模块(Block5)增强后的backbone网络得到的特征图的差异.由图9的第1行的2、3列对比可知,经过CBAM模块后,冗余信息得到了一定的抑制,从而减少了假阳性数量.由图9的第2、3行的2、3列对比可知,经过CBAM模块后,模型增强了食管区域的特征显著性,从而增加了真阳性数量.
图9 特征图对比Fig.9 Comparison of feature maps
3 结语
为了提高食道癌病灶区域检测能力,本文在原Faster R-CNN模型的backbone网络中添加CBAM模块,对训练集中的困难样本与普通样本采取不同倍数的数据增强,以提高模型对食道癌病灶区域亮度值偏高或偏低的病灶区域检测能力.实验结果表明,在进行数据增强后,针对IOU阈值小于0.5时,模型的AP值较未增强提高了1.26%~5.61%.在模型改进后,在各个IOU阈值上,模型的AP值较原始模型提高了0.1%~5.0%.以上实验结果表明,本文设计的CBAM Faster R-CNN的食道癌病灶检测效果相较于Faster R-CNN算法有明显提升.