本发明属于计算机视觉领域,尤其涉及一种基于参考机制的图像语义分割方法。
背景技术:
1、图像语义分割的背景可以追溯到计算机视觉和模式识别领域的发展历程。早期的计算机视觉任务主要集中在图像分类,即将整个图像分为不同的类别,例如识别图像中的动物、车辆、人物等。然而,图像分类忽略了图像中的像素级细节,不能提供图像中每个像素的语义信息。
2、为了更好地理解图像的语义信息和局部结构,图像语义分割技术应运而生。它的主要目标是将图像中的每个像素分配到对应的语义类别,从而实现像素级别的语义理解。这就意味着每个像素都被赋予了语义标签,使得图像的理解更加细致和准确。
3、早期的图像语义分割方法主要依赖于手工设计的特征和传统的图像处理技术。这些方法虽然在一些场景下取得了一定的成效,但对于复杂的图像结构和语义区分来说,效果不尽人意。
4、随着深度学习的兴起,特别是卷积神经网络(cnn)的成功应用于图像分类任务,研究者们开始探索将深度学习方法应用于图像语义分割。深度学习的强大表征能力和特征学习能力使得图像语义分割取得了显著的进展。
5、在2014年,全卷积网络(fully convolutional networks,fcn)的提出,标志着图像语义分割进入了一个全新的阶段。fcn首次将卷积神经网络应用于像素级别的语义分割,通过将全连接层替换为全卷积层,使得网络能够接受任意大小的输入图像,并输出相同大小的语义分割结果。这为图像语义分割的高效和精确实现奠定了基础。
6、随后,出现了许多基于fcn的改进模型,如u-net、deeplab、segnet等。这些模型在结构上都采用了编码器-解码器的架构,通过编码器提取图像特征,然后通过解码器进行像素级的语义分割预测。同时,引入了空间注意力和跳跃连接等机制,进一步提高了分割的精度和稳定性。
7、尽管图像语义分割模型取得了很大的进展,但还存在着明显的问题,目前的模型通常有大量的参数,这导致模型非常庞大。特别是一些先进的语义分割模型,如deeplab和u-net,需要较大的计算资源和显存来进行训练和推理。由于模型较大,同样也导致模型不能满足实时性。
技术实现思路
1、本发明目的在于提供一种基于参考机制的图像语义分割方法,以解决现有分割模型复杂、分割精度不高和分割速度慢等的技术问题。
2、为实现上述目的,本发明的一种基于参考机制的图像语义分割方法的具体技术方案如下:
3、为了达到上述目的/为解决上述技术问题,本发明是采用以下步骤设计实验实现的:
4、步骤一:获取数据集,将数据集进行预处理;
5、具体的,获取cityscape数据集,划分出训练集、测试集、验证集,并对训练集进行数据预处理;
6、步骤二:搭建分割模型,包括五个模块:空间特征提取模块、全局特征提取模块、参考答案模块、注意力细化模块、特征融合模块,其中空间特征提取模块、全局特征提取模块和参考答案模块分别提供三个不同特征,然后上述提供的三个不同特征经过特征融合模块后得到分割预测图;
7、步骤三:选择合适的损失函数,通过反向传播优化参数,训练轮数设定为150轮,训练过程中只保存最优的(最小的)模型结构和模型参数。
8、进一步,步骤一所述数据集为cityscapes,所述cityscape数据集的划分包括2975张训练集图像及标签、1525张测试集图像及标签、500张验证集图像及标签;由于cityscaps数据集中图像标签不仅包含彩色图,还包含实例标签图及深度图,将彩色图作为标签,并对标签单独处理;注,只取彩色图作为图像标签。将图像对应标签后,进行数据预处理,首先对图像裁剪为736*736,随后进行数据增强,包括:随机缩放、0.5倍亮度、0.5倍对比度的操作,并将cityscapses的标签由原来的35分类重新编码为19分类。
9、进一步,所述步骤一对训练集进行数据预处理包括从文件夹中读取数据,按尺寸大小进行中心裁剪,数据增强对标签进行编码,将numpy数组转为tensor张量,实例化数据类;
10、此处的数据增强具体包括随机缩放、调整图像对比度及亮度。
11、进一步,步骤二所述的搭建分割模型,主要包含五个模块,模块一为空间特征提取模块,用于提取图像的空间特征;模块二为全局特征提取模块,用于提取图像的全局特征;模块三为参考答案模块,用于提取图像所有特征;模块四为注意力细化模块,用于优化不同阶段的特征;模块五为特征融合模块,用于将空间特征提取模块、全局特征提取模块和参考答案模块相融合。最后,通过上采样操作将特征图恢复到原图大小得到预测分割图。
12、进一步,模块一为空间特征提取模块,用于提取图像的空间特征,图像经过五个卷积块得到空间特征,得到的空间特征为原始输入图像大小的1/8大小,记为spatial_feature。具体为,图像经过数据预处理后进入空间特征提取模块,首先经过卷积块,所有卷积块均由一个卷积层、归一化层和relu激活层组成,经过的第一个卷积块的卷积输入通道in_channels为3,输出通道out_channels为16,卷积核kernel_size大小为3*3,步长stride为2,填充padding为1,卷积块1的归一化层使用batchnorm2d,卷积块1的激活层使用relu激活函数,得到的特征空间sp1为(1,16,368,368),经过卷积块1得到的图像为原始图像大小的1/2;特征sp1经过卷积块二(输入通道为16,输出通道为32,卷积核大小为3*3,步长为2,填充为1)得到的空间特征sp2为(1,32,184,184),特征sp2经过卷积块三(输入通道为32,输出通道为64,卷积核大小为3*3,步长为2,填充为1)得到的特征空间sp3为(1,64,92,92),特征sp3经过卷积块四(输入通道为64,输出通道为128,卷积核大小为3*3,步长为1,填充为1)得到的空间特征sp4为(1,128,92,92),特征sp4经过卷积块五(输入通道为128,输出通道256,卷积核大小为3*3,步长为1,填充为1)得到空间特征sp5为(1,256,92,92),sp5即为空间特征提取模块提取到的特征图。
13、进一步,模块二为全局特征提取模块,用于提取图像的全局特征。该全局特征提取模块结构类似u形网络结构,通过卷积进行了五次下采样,分别得到1/2、1/4、1/8、1/16、1/32大小的特征图,保留了1/8、1/16、1/32大小的特征图,分别记为feature2、feature3、feature4,并将最后一次下采样得到的特征图进行全局平均池化,记为tail,以此方法保留了足够大的感受野。
14、具体为,图像经过数据预处理后进入全局特征提取模块,首先经过卷积层(输入通道为3,输出通道为64,卷积核大小为7*7,步长为2,填充为3)得到全局特征cp1为(1,64,368,368),特征cp1经过池化层(卷积核大小为3*3,步长为2,填充为1)得到全局特征cp2为(1,64,184,184),cp2经过两次卷积层(输入通道为64,输出通道为64,卷积核大小为3*3,步长为1,填充为1)得到feature1为(1,64,184,184),feature1经过两次卷积层(输入通道为64,输出通道为128,卷积核大小为3*3,步长为2,填充为1)得到feature2为(1,128,92,92),feature2经过两次卷积层(输入通道为128,输出通道为256,卷积核大小为3*3,步长为2,填充为1)得到feature3为(1,256,46,46),feature3经过两次卷积层(输入通道为256,输出通道为512,卷积核大小为3*3,步长为2,填充为1)得到feature4为(1,512,32,32),feature4经过全局平均池化(输出通道为(1,1))得到tail为(1,512,1,1)。其中feature2、feature3、feature4会经过注意力细化模块后与tail进行拼接,得到全局特征cp。
15、进一步,模块三为参考答案模块,用于提取图像所有特征,该模块由图像编码器和解码器构成,该模块的作用相当于参考答案,得到的预测图经过后续的特征融合模块,可以加强模型的学习能力。模块三是用训练好的大模型提供参考答案,训练时使用该模块,测试和验证时不使用该模块。
16、具体为,图像经过预处理后进入图像编码器,图像编码器是使用mae预训练vit实现的,图像进入编码器后输出1/16大小的嵌入;详细步骤为:原始图像(736,736)被等比缩放到1024大小,然后经过卷积层(卷积核大小为16*16,步长为16)后得到1*64*64*768的向量,向量在w和c上被拉直后进入多层transformer编码器,vit输出的向量再通过两个卷积层(卷积核大小分别为1*1和3*3,每层输出后再经归一化)得到256维特征向量,即图像编码器得到的是(256*64*64)的特征。图像编码器得到的特征在解码器首先做自注意力计算,随后通过一层多层感知机后得到预测结果,即参考答案ra。解码器使用transformer解码器,能够有效的将图像嵌入映射到掩码中。通过参考答案模块,得到和原始输入图像大小相同的预测图。
17、进一步,模块四为注意力细化模块,用于优化不同阶段的特征。注意力细化模块使用在全局特征中,由全局平均池化指导不同阶段的特征,该模块由一个adaptiveavgpool2d池化层、一个卷积核大小为1*1的卷积层、一个归一化层及sigmoid激活层组成。由全局特征提取模块得到的feature2、feature3、feature4以及由参考答案模块得到的特征都需要经过注意力细化模块优化特征。注意力细化模块分为两个路径,路径一通过全局池化、1*1卷积、归一化、激活操作后与路径二相乘,从而实现优化不同阶段的全局特征,其中路径二不做任何操作。
18、进一步,模块五为特征融合模块,用于将空间特征提取模块、全局特征提取模块和参考答案模块得到的特征相融合。在该模块中,首先将空间特征sp5、全局特征cp以及参考答案ra进行拼接,随后经过一个卷积块后分为三路,第一路特征经过全局池化、1*1卷积、relu激活、1*1卷积、sigmoid激活后与第二路特征相乘,随后与第三路特征相加,得到最终的模型特征,该特征经过8被上采样还原后,得到预测结果。
19、进一步,步骤三所述选择log_softmax损失函数,通过反向传播优化参数,训练轮数设定为150轮,训练过程中只保存最优的模型结构和模型参数。
20、进一步,所述步骤三中,使用torch.nn.functional库中的log_softmax函数计算损失,并与真实标签计算交叉熵损失,具体计算公式如下:
21、使用softmax函数将原始分数转换为概率分布:
22、 (1)
23、将logits应用softmax函数,得到概率分布:
24、 (2)
25、使用自然对数(log函数)将概率转换为对数概率(log probabilities):
26、 (3)
27、将公式(2)得到的概率分布probs应用log函数,得到对数概率:
28、 (4)
29、与真实标签计算交叉熵损失:
30、 (5)
31、上述公式(1)至公式(5)中,假设模型输出为logits,batch_size是批次中的样本数量,exp(x)表示对x中的每个元素取指数,sum(exp(x))表示将所有指数项求和,y_true是真实的标签。本发明中分割模型的训练轮次设为150轮,通过log_softmax损失函数不断优化模型参数。
32、本发明的一种基于参考机制的图像语义分割方法具有以下优点:
33、(1)针对现有图像语义分割模型复杂,分割速度慢和分割精度低等问题,本发明提出了一种基于参考机制的图像语义分割方法,在原有的bisenet模型架构上添加模块及对网络层进行改动,能够有效提高分割精度和速度。
34、(2)针对图像语义分割大模型计算量过大、推理时间长等问题,本发明提出的方法中添加了参考答案模块,该模块是通过训练好的大模型提供分割预测图作为参考答案,该模块仅在训练时使用,推理阶段不需要该模块进行计算,从而实现提高模型精度的同时,还保证了实时性。
35、(3)本发明的模型中,对空间特征提取模块和全局特征提取模块中增加了卷积层,使模块更好的获取细粒度的特征,同时,在全局特征提取模块使用了全局平均池化操作优化下采样过程中不同阶段的全局特征,在最后一次下采样中得到的特征图经过全局平均池化保留了足够大的感受野,使得模型计算量不大的同时,还提升了分割精度。