Advertisement

深度学习:乳腺检测abnormality detection in mammography +CAM

阅读量:

论文《基于深度卷积神经网络的乳腺图像异常检测》提出了一种利用深度学习进行乳腺图像异常检测的方法。研究采用CBIS-DDSM数据集,通过数据增强技术(如旋转)提升模型性能。任务为二分类(钙化+肿块),定位采用CAM技术。网络结构包括AlexNet、VGGNET、GoogleNET和RESNET等,并结合两种分类器进行训练。训练流程采用掩码提取patch并结合全连接层进行分类。CAM技术通过全局平均池化(GAP)和全连接层权重生成热力图,用于解释分类结果。该方法在乳腺图像异常检测中具有较高的准确性和定位能力。

Abnormality identification in breast imaging based on deep convolutional neural networks

数据集为CBIS-DDSM(CC+MLO)*(右侧和左侧单人) 即(753钙化)+(891肿块) 数据增强方法为旋转

任务:二分类:calcification钙化+mass肿块

定位:CAM

网络结构:AlexNet / VGGNET/GOOGLENET/RESNET+two classification

训练流程:

中心思想:patch 训练分类器,再用whole image 去(训练+测试)

  • 1、通过掩码获取patch,将两种不同类型的patch输入到训练网络中(resize224*224)进行全尺寸测试。
  • 2、通过CAM生成热图。

名词解释

1、CAM(Class Activation Mapping)

参考:CAM:<>

请相信你的模型CAM链接:https://www.jianshu.com/p/1d7b5c4ecb93

在《Learning Deep Features for Discriminative Localization》这篇文章中,作者提出,CNN网络不仅具备强大的图像处理和分类能力;同时能够对图像中的关键区域进行定位,这一过程被称为Class Activation Mapping,简称CAM。

那么,什么是CAM呢?它是一种用于分析深度学习模型中特征重要性的方法。在本研究中,我们采用第一组输入图片为标签式刷牙训练数据。通过基于模型的CAM方法处理后,我们获得了如图所示的热力图。从图中可以看出,嘴部和牙刷区域的热力值较高,这表明这两个区域对于刷牙结果具有重要影响。至于第三列和第四列的结果,由于内容较为直观,这里不做详细说明。

让我们深入探讨CAM的网络架构,如图所示。输入一张图片,随后通过CNN网络提取出多个特征图,每个特征图都能反映整个网络的特定特征。例如,常用的包括VGG系列和Inception系列等。然而,一个关键问题是,feature map保留了图片的空间信息,这也是通过将多个特征图叠加,可以生成类激活图(Class Activation Map, CAM)的原因。而传统网络在进行特征图到特征向量的转换时,通常会选择全连接层,这个过程会丢失空间信息。

通过global average pooling(GAP)(可以将其视为一种特殊的池化层,其池化窗口尺寸与整个特征图的尺寸相同,实际上等同于对每张特征图的所有像素计算均值。)来替代全连接层。然后将生成的该值,通过一个全连接层来实现相应的分类任务,其中该全连接层的权重参数分别记为w1和w2。

我们设想最终的分类结果,其实质是经过池化操作后的值与对应权重的乘积。值得注意的是,池化值的生成基于GAP机制,因此,最终的分类结果本质上可以视为特征图与权重的乘积。在这一过程中,权重的作用是量化各特征图对最终结果的贡献程度。具体而言,如果我们将特征图乘以权重后进行相加,那么对最终结果影响较大的区域将呈现出较大的数值,而影响较小的区域则会显示出相对较小的数值。这一机制即为CAM方法的核心原理。通过图二的下半部分,可以更直观地理解这一操作的具体实施过程。

在卷积层之后,采用了名为GAP的池,其全称是全局平均池。全局平均池的主要优势在于能够有效减少参数数量,同时保持图像的空间结构。在尾部,使用FC层(fully connected layer)进行分类输出。该层为每个分类任务独立分配了一组权重参数。

在本方法中,有几个关键点需要进行说明。首先,在应用过程中,需要对模型进行预训练,从而才能进行CAM操作的后续步骤。其次,对于生成特征图的尺寸,不同基础模型有不同的解决方案,具体来说,Alexnet的输出尺寸为13×13,而VGG和Googlenet的输出尺寸均为14×14。因此,为了获得我们期望的原始图像尺寸,最后一步是需要进行图像缩放操作的。

PS可能有同学会好奇,为什么选择使用这种方法中的average部分呢?max方法的效果如何呢?

该方法主要基于max pooling(GMP)实现。然而,该方法存在局限性:基于average的CAM能够精确标注所有关键区域,而基于max pooling的CAM仅能定位ROI区域的右下方。这导致基于GMP的CAM在分类性能上与基于GAM的方法不相上下,但在定位精度方面则略逊一筹。

该网络经过卷积层处理后,输出特征图尺寸为(8x8x2048)。经过GAP层处理后,输出特征图尺寸缩减为(1x1x2048)。全连接层权重矩阵为(2048x10),其中每一列对应一个类别。每个类别对应2048个权重。在生成热力图的过程中,是将卷积层输出(8x8x2048)与特定类别全连接层权重(1x2048)进行点积运算,生成8x8的热力图。为了适应需求,将该热力图进行尺寸扩展即可。

在GitHub平台,方便用户随时访问和查看项目代码。同时,我们鼓励用户进行交流互动,欢迎关注和星标项目。

在分析过程中,我们重点考察了经过GAP操作后与输出层之间的连接关系(暂不考虑Softmax层),其本质上,这相当于一个全连接层,其显著特征是没有偏置项,如图所示。

观察图可知,在应用GAP操作后,我们计算了每个特征图的均值,并通过加权和计算得到输出(实际上,这是softmax层的输入)。需要注意的是,对于每一个类别C,每个特征图k的均值都对应一个权重值w_kc。CAM的结构非常清晰,其训练过程与普通CNN模型基本一致。训练完成后,我们如何生成一个用于解释分类结果的热力图呢?其实,这个过程非常简单。例如,要解释分类结果为羊驼,我们只需提取所有与该类别相关的权重值w_kc,并计算其与各自特征图的加权和。由于这个结果与特征图具有相同的维度,我们需要对其进行上采样,然后叠加到原始图像上,如图所示。

CAM通过热力图的形式揭示了模型重点通过哪些像素来确定图片内容为羊驼。

全部评论 (0)

还没有任何评论哟~