掌桥专利:专业的专利平台
掌桥专利
首页

一种串联融合DenseNet和Transformer的皮肤图像特征提取方法

文献发布时间:2023-06-19 19:30:30



技术领域

本发明涉及深度学习图像分类领域,具体涉及一种通过串联融合DenseNet和Transformer来更充分的提取皮肤疾病图像特征的方法。

背景技术

皮肤病是医学上的比较常见的多发性疾病,皮肤检测技术越来越受关注。传统人工诊断有着一定的主观性,无法满足复杂多样的皮肤病的检测要求。近年来,深度学习技术逐渐在更多熟知的领域都得以应用,在许多任务中,通过深度学习得到的特征被证明比传统方法构造的特征具有更强的表示能力。

深度学习的研究已然成为一种应用趋势,其中卷积神经网络(CNN)模型一直是CV领域的主流模型且最具有应用前景,渐渐变成了机器学习和计算机视觉领域中应用最广泛的对象,并取得了很好的成果。DenseNet卷积运算善于提取局部特征,却不具备提取全局表征的能力,为了感受图像全局信息必须依靠堆叠卷积层,采用池化操作来扩大感受野。而Transformer具备了全局、动态感受野的能力,则打破了CNN在视觉表征方面的垄断,在图像识别任务上取得了更好的结果。利用深度网络进行特征提取方法被广泛地应用于图像、语音、视频等各个方面。

包括皮肤诊断在内的医学图像分析领域,目前面临的一个困难就是高质量的医学图像数据量不足。面对数据量不足的图像,我们要更加充分的提取图像上的信息。在皮肤疾病图像辅助诊断方面,充分对CNN算法和Transformer进行融合,提升图像处理性能,提高诊断的准确率。

发明内容

本发明的目的在于克服现有技术中的不足,提供一种利用串联融合DenseNet和Transformer针对ISIC2019数据集中黑色素瘤、黑素细胞痣、基底细胞癌、光化性角化病、良性角化病、皮肤纤维瘤、血管瘤、鳞状细胞癌8种皮肤病图像进行深度特征提取的方法。利用DenseNet擅长提取图像的局部特征,而Transformer结构更擅长提取图像的全局特征的优点,以及皮肤图像需要关注的病变区域的边缘和纹理等局部特征的特点,先使用DenseNet提取关键信息,再使用Transformer对这些信息进行全局分析,使其在皮肤图像中更好的提取病变特征,提高辅助诊断的准确率。

为达到上述目的,本发明是采用下述技术方案实现的:

步骤一、下载开源数据集ISIC2019,并将所有图片压缩到448*448大小;

步骤二、保留DenseNet中的第一个卷积层、池化层、第一个Transition Layer层和前两个Dense Block层,作为局部特征提取模块。输入的图片转换为张量,送入特征提取模块进行局部特征提取;

步骤三、图片张量经过局部特征提取模块后得到的特征向量经过一个卷积核大小为1*1,卷积核个数为96的卷积层对DenseNet输出的特征图在通道数量上进行降维,以匹配Transformer中的第一个Stage对输入的向量在通道数量上的要求;

步骤四、降维后的特征图送入Transformer算法进行进一步的特征提取,Transformer算法选择Swin Transformer-Tiny。该算法分为4个Stage,每个Stage中SwinTransformer Block的数目为2,2,6,2。

步骤五、经过Transformer提取后的特征向量经过Layer Noraml层、池化层和全连接层输出图像分类的预测结果。

附图说明

图1为本发明所述的算法的使用流程图。

图2为本发明提出算法的结构图。

图3为本发明中DenseNet Block内部结构图。

图4为本发明中Swin Transformer Blocks内部结构图。

具体实施方式

为进一步了解本发明的内容,结合附图对本发明作详细描述。本发明的具体使用过程由以下步骤实现:

步骤一、下载国际皮肤成像协作组织开源的数据集ISIC2019,数据集共25331张图片,共包含八种皮肤病类型:黑色素瘤、黑素细胞痣、基底细胞癌、光化性角化病、良性角化病、皮肤纤维瘤、血管瘤、鳞状细胞癌。将数据集中的每个类别的图片按照8:2的比例划分为训练集和测试集,皮肤病类型的标签按照0,1,2,3...排列,并将图片名称和标签信息保存在一个csv文件中,方便训练时的信息读取。为了缓解数据不平衡的问题和避免训练时的过拟合,对皮肤病图片进行数据增强处理,具体为使用旋转、平移等几何变换方法。由于该改进算法要求输入的图片尺寸为448*448*3,因此将数据集进行缩小分辨率处理,将数据集图片的分辨率缩小为48*448*3。

步骤二、对于皮肤病的检测,我们需要更加关注皮肤损伤的局部特征,比如损伤部分的边缘形状和损伤区域内的纹理。而损伤区域外面的皮肤表面的特征,我们并不需要考虑。DenseNet算法主要负责局部特征的提取。并不需要完整的DenseNet作为SwinTransformer的前置部分,只需要DenseNet中的第一个卷积层,池化层,前两个Dense Block和第一个Transition Layer来组成局部特征提取模块。利用该模块提取大量图像特征,得到图像的特征图。卷积的核心,其功能是对数据进行特征提取,一般由多个卷积核组成。每个卷积核与上一层特征图的局部区域相互连接,这部分区域即为卷积核在上一层的感受野,卷积核通过卷积操作能够得到新的特征图。特征图的计算一般分为2步:先通过卷积核对上一层数据进行卷积运算,之后对每个运算结果施加非线性函数。通常卷积层的形式为:

式中,

首先448*448*3的图像经过DenseNet的第一个卷积层,得到224*224*3的特征向量,第一个卷积层的核大小7*7,64个卷积核,步长为2。输出的特征向量经过一个尺寸为3*3,步长为2的最大池化层,得到112*112*64的特征向量。然后进入第一个Dense Block模块,该模块内部含有可选层Bottleneck,每一层的输入是前面所有层的输出在通道上的拼接。第一个Dense Block中含有六组1*1的卷积层和3*3的卷积层。输入第一个Dense Block的112*112*64的特征向量首先经过Block中的Batch Normalization层和ReLU层,输出的特征向量维度不会发生改变,依然为112*112*64。然后进入可选层Bottleneck,该层为了减少向量在通道上的拼接造成的深度过大的现象,采用1*1的卷积核,输出为112*112*128。再经过一个卷积核大小为3*3,卷积核的个数为32的卷积层,经过第一个Dens Blcok后,最终的输出为112*112*32。

然后经过Transition Block模块。该模块介于两个Dense Block之间,起连接作用,由一个卷积层和一个池化层组成。它的输入为前一个Dense Block输出的112*112*32的特征向量。Block中的Bottlenect为可选层,采用多个1*1大小的卷积核,此处可以根据预先设定的压缩系数θ(0~1)对进行压缩,以减小参数,输出为112*112*(32*θ)。然后再经过第二个Dense Block模块,第二个Dense Block模块含有12组1*1和3*3卷积。得到56*56*32的特征向量。经过DenseNet后得到的特征张量计算公式为:

M=D

其中,Z为输入的图片张量,Conv

步骤三、经过局部特征提取模块后得到的特征向量高和宽为56,但是深度并不符合Transformer的要求。因此,通过一个卷积核大小为1*1,卷积核个数为96的卷积层,使得特征图的通道数也为96。为了解决在训练过程中,中间层数据分布发生改变的问题,以防止梯度消失或爆炸、来加快训练速度,再将特征向量通过Batch Normalization层。最后将特征向量送入Transformer进行进一步的特征提取。

送入Transformer中的特征向量为:

C=BN(Conv

其中,M为经过DenseNet后得到的特征张量,Conv

步骤四、Transformer中的进一步特征提取。Transformer选择Swin Transformer算法。该算法分为4个stage,各Stage中Transformer Block的数目为2,2,6,2。每个stage输入向量的深度分别为96,192,384,768。第一个stage输入的56*56*96大小的特征向量经过Transformer Block,Swin Transformer Block中有成对出现的W-MSA和SW-MSA模块,执行窗口自注意力,使权重更加聚焦于皮肤损伤的部分。经过Block后特征向量的维度不发生变化,再经过Patch Merging后,特征向量的高和宽降为一半,深度加倍,得到28*28*192大小的特征图。再经过Transformer中的Stage3和Stage4,最终得到的特征图的大小为7*7*768。

步骤五、对于分类任务,Transformer输出的特征图还要经过Layer Noraml层,平均池化层和全连接层,最后输出预测类别。全连接层和传统的神经网络相似,其中的每个神经元都会与前一层的所有神经元相连。因此,全连接层包含数据的全局信息,将全连接层的每个神经元连接到Softmax函数,softmax函数通常用于分类问题的输出层,其功能是将预测结果用概率的形式表示,其公式为:

其中,S为第m个神经元的输出值Z

技术分类

06120115934000