1.一种基于Transformer的半监督视频目标分割方法,其特征在于包括以下步骤:(1)获取数据集与分割标签:
获取视频目标分割数据集和静态图像数据集及这两个数据集所对应的分割标签,将数据集中的每一张图像及对应的分割标签组成一个图像对;
(2)数据扩充与处理,具体包括以下步骤:(2‑a)对步骤(1)获取的静态图像数据集及对应的分割标签组成的每一个图像对进行归一化处理后,重复以下流程,得到每一个图像对对应的合成视频训练样本,合成视频训练样本的集合组成合成视频训练集:
I.将图像对的短边缩小至w像素,长边则按与短边等比例缩小,将得到的图像对随机裁剪为h×w像素大小,其中w为裁剪后图像的宽,h为裁剪后图像的高,w、h都为正整数,其取值范围为[10,3000];
II.对裁剪后的图像对依次应用随机缩放、随机水平翻转、随机颜色抖动和随机灰度转换,得到该图像对对应的增强图像对;
III.重复流程II三次,得到该图像对对应的三个增强图像对,这三个增强图像对组成一个合成视频训练样本;
(2‑b)对步骤(1)获取的视频目标分割数据集中的每一个视频及对应的分割标签进行归一化处理后,重复以下流程,得到每一个视频对应的真实视频训练样本,真实视频训练样本的集合组成真实视频训练集:
I.从视频及对应的分割标签中随机抽取三个图像对;
II.将这三个图像对的短边缩小至w像素,长边则按等比例缩小,将得到的三个图像对随机裁剪为h×w像素大小,w、h的含义和取值与步骤(2‑a)相同;
III.对这三个图像对依次应用随机裁剪、颜色抖动和随机灰度转换,得到增强的三个图像对,这三个增强图像对组成一个真实视频训练样本;
(3)构建分割模型,具体包括以下步骤:(3‑a)构建查询编码器
使用卷积神经网络作为查询编码器,待分割帧依次经过该编码器的前四层,其中第二层的输出为fC2,第三层的输出为fC3,第四层的输出为fC;
(3‑b)构建存储池
将视频序列中的第1帧、第τ+1帧、第2τ+1帧、……、第Nτ+1帧及其对应的分割标签放入存储池中,其中τ为正整数,取值范围为[1,200], τC为待分割帧的相对位置,符号 表示向下取整;
(3‑c)构建存储编码器
使用卷积神经网络作为存储编码器,存储池中的所有图像及其对应的分割标签经过该编码器后得到fM;
(3‑d)构建Transformer模块该模块由一个Transformer编码器和一个Transformer解码器组成;Transformer编码器包括一个时空整合模块、一个卷积层、一个多尺度层和一个自注意力模块;Transformer解码器包括两个卷积层、一个多尺度层、一个自注意力模块和一个双分支交叉注意力模块,其中双分支交叉注意力模块由查询分支和存储分支组成,这两个分支的结构完全相同,都由一个多头注意力模块、两个残差与层归一化模块、一个全连接前馈网络组成,其中全连接前馈网络由两个线性层和一个ReLU激活层组成;Transformer编码器和Transformer解码器中的自注意力模块的结构完全相同,都是由一个多头注意力模块、一个残差与层归一化模块组成;所述的多头注意力模块结构相同;
(3‑e)构建分割解码器
分割解码器由一个残差模块、两组上采样模块和一个预测卷积模块组成;其中残差模块由三个卷积层和两个Relu激活层组成,第一个上采样模块由四个卷积层、两个Relu激活层和一个双线性插值组成,第二个上采样模块由三个卷积层、两个Relu激活层和一个双线性插值组成,预测卷积模块由一个卷积层和一个双线性插值组成;
(3‑f)将步骤(3‑a)得到的fC与步骤(3‑c)得到的fM输入到步骤(3‑d)构建的Transformer编码器的时空整合模块,得到fM',其具体计算过程为:fM'=fM·softmax(c(ConvKey(fM),ConvKey(fC)))其中ConvKey(·)为键投影层,由一个卷积层组成,c(·)代表负平方欧几里得距离,softmax(·)表示激活函数;
(3‑g)将步骤(3‑f)得到的fM'依次输入到Transformer编码器中的卷积层、多尺度层和自注意力模块,分别得到M1、M2和M3;将步骤(3‑a)得到的fC依次输入到步骤(3‑d)构建的Transformer解码器中的第一个卷积层、第二个卷积层、多尺度层和自注意力模块,分别得到C0、C1、C2和C3;将M3和C3输入到步骤(3‑d)构建的Transformer解码器中的双分支交叉注意力模块中的查询分支,得到C4;将M3和C3输入到步骤(3‑d)构建的Transformer解码器中的双分支交叉注意力模块中的存储分支,得到M4;
(3‑h)将步骤(3‑g)得到的C0、C4、M4和步骤(3‑f)得到的fM'拼接后输入到步骤(3‑e)构建的分割解码器的残差模块中,得到fO1;将fO1与步骤(3‑a)得到的fC3输入到步骤(3‑e)构建的分割解码器的第一个上采样模块,得到fO2;将fO2与步骤(3‑a)得到的fC2输入到步骤(3‑e)构建的分割解码器的第二个上采样模块,得到fO3;将fO3输入到步骤(3‑e)构建的分割解码器的预测卷积模块,得到预测分割标签fO4,完成分割模型的构建;
(4)构建损失函数:
损失函数L使用交叉熵损失,定义如下:其中Y是真实分割标签,是预测分割标签,HY和WY分别为真实分割标签的高和宽,Yij是Y中第i行第j列像素的像素值, 中第i行第j列像素的像素值,i=1,2,…,HY,j=1,
2,…,WY,log(·)表示求自然对数;
(5)训练分割模型:
利用步骤(2‑a)得到的合成视频训练集训练步骤(3)构建的分割模型,根据步骤(4)构建的损失函数得到损失值,并使用随机梯度下降法更新分割模型内的参数,得到预训练模型;利用步骤(2‑b)得到的真实视频训练集训练该预训练模型,根据步骤(4)构建的损失函数得到损失值,并使用随机梯度下降法更新分割模型内的参数,得到训练好的分割模型;
(6)视频目标分割:
获取待分割视频及其第一帧对应的分割标签,从该待分割视频的第二帧开始依次将其输入到步骤(5)得到的训练好的分割模型中,输出分割标签。
2.如权利要求1所述的一种基于Transformer的半监督视频目标分割方法,其特征在于,步骤(3‑d)所述的多尺度层由t个卷积核大小不同的卷积层组成,其输出的计算过程为:MSL=Concat(S1,…,Si,…,St)Si=Convi(Xi;ri)
其中MSL表示多尺度层的输出,Concat(·)表示拼接操作,t表示多尺度层中卷积层的个数,t为正整数,其取值范围为[1,50],Convi(·)表示多尺度层中的第i个卷积层,ri表示第i个卷积层的卷积核大小,ri为正整数,取值范围为[1,100],Xi表示多尺度层第i个卷积层的输入,Si表示多尺度层第i个卷积层的输出,对于Transformer编码器中的多尺度层,Xi=M1,对于Transformer解码器中的多尺度层,Xi=C1,i=1,2,…,t。
3.如权利要求1所述的一种基于Transformer的半监督视频目标分割方法,其特征在于,所述步骤(3‑d)的多头注意力模块,其输出的计算过程为:o
MultiHead(q,k,v)=Concat(A1,…,Ai,…,As)U其中MultiHead(q,k,v)表示多头注意力模块的输出,softmax(·)表示激活函数,Concat(·)表示拼接操作;q、k和v为多头注意力模块的输入,对于Transformer编码器的自注意力模块内部的多头注意力模块,q=k=v=M2,对于Transformer解码器的自注意力模块内部的多头注意力模块,q=k=v=C2,对于双分支交叉注意力模块存储分支内部的多头注意力模块,q=M3,k=v=C3,对于查询分支内部的多头注意力模块,q=C3,k=v=M3;s是多头注意力模块中注意力头的个数,s为正整数,且取值范围为[1,16],Ai表示第i个注意力o
头的输出,i=1,2,…,s, 和 表示第i个注意头的q、k和v参数矩阵,U是调整最终输出的参数矩阵,T表示转置操作符,d是超参数,d为正整数,且取值范围为[1,1000]。