一种基于transformer的视频防抖方法与流程

文档序号:25992533发布日期:2021-07-23 21:05阅读:98来源:国知局
一种基于transformer的视频防抖方法与流程

本发明涉及视频防抖技术领域,特别涉及一种基于transformer的视频防抖方法。



背景技术:

随着科技水平的发展和居民生活现代化进程的推进,各种各样的视频数据已成为日常生活和工作中必不可少的组成部分。由于视频采集设备会受到各种环境因素的干扰,如大风吹、安装底座振动、手持设备时手部的不稳等,导致采集到的视频会或多或少的包含画面抖动,当视频画面包含较多的抖动时,会影响视频的观看效果。因此,对视频进行防抖处理是必不可少的步骤。目前,视频防抖的主要技术有以下几种:

(1)机械视频防抖技术:其使用特殊传感器如陀螺仪和加速度计,检测摄像机的运动参数值,通过移动图像传感器来补偿摄像机的运动,进而达到防抖的目的。

(2)光学视频防抖技术:其使用一组可移动的镜头组合,可变地调整光的路径长度。当通过特殊传感器检测到摄像机的运动参数值后,通过移动镜头补偿摄像机的运动,进而达到防抖的目的。

(3)数字视频防抖技术:当视频画面采集完成后,通过计算机视觉技术对视频画面进行运动估计,然后平滑运动轨迹,重建画面稳定的视频。不需要使用特殊的传感器来估计摄像机的运动。

其中,机械视频防抖技术和光学视频防抖技术均需要相应的特殊传感器来感知摄像机的运动,硬件成本较高,不利于大面积应用。而数字视频防抖技术不需要任何特殊硬件,仅依靠计算机视觉技术即可实现视频防抖。数字视频防抖因其成本较低、防抖效果好,得到了广泛的应用。



技术实现要素:

本发明的目的在于克服上述背景技术中的不足,以提供一种抗干扰能力强、运行速度快且防抖效果好的视频防抖方法。

为实现以上目的,采用一种基于transformer的视频防抖方法,包括如下步骤:

获取待处理视频图像序列作为预先训练好的深度神经网络模型的输入,该深度神经网络模型包括特征提取模块和抖动参数估计模块,抖动参数估计模块包括基于transformer改进的encoder模块;

利用特征提取模块获取待处理视频图像序列每帧图像的深层抽象特征;

利用抖动参数估计模块对相邻若干帧图像的深层抽象特征进行处理,估计当前帧图像的抖动参数;

根据当前帧的抖动参数,获取稳定的当前帧图像。

进一步地,所述特征提取模块包括输入图像分辨率快速下降层ifd、卷积层conv0、conv1_0、conv1_1、conv2_0、conv2_1、conv2_2、conv3和conv4、特征图相加层sum0和sum1以及最大值池化层maxpool0,其中,所述待处理视频图像序列作为输入图像分辨率快速下降层ifd的输入,输入图像分辨率快速下降层ifd的输出与卷积层conv0的输入连接,卷积层conv0的输出与最大值池化层maxpool0的输入连接,最大值池化层maxpool0的输出分别与特征图相加层sum0的输入和卷积层conv1_0的输入连接,卷积层conv1_0的输出与卷积层conv1_1的输入连接,卷积层conv1_1的输出与特征图相加层sum0的输入连接;特征图相加层sum0的输出分别与卷积层conv2_0的输入和卷积层conv2_2的输入连接,卷积层conv2_0的输出与卷积层conv2_1的输入连接,卷积层conv2_1的输出和卷积层conv2_2的输出均与特征图相加层sum1的输入连接,特征图相加层sum1的输出经卷积层conv3与卷积层conv4连接,卷积层conv4的输出为所述待处理视频图像序列每帧图像对应的深层抽象特征。

进一步地,所述抖动参数估计模块包括特征拼接层concat、特征图相加层sum2、位置编码特征图pos-emb、输出标记特征图out-token、基于transformer改进的encoder模块和全连接层fc,特征拼接层concat的输入分别与输出标记特征图out-token的输出以及所述特征提取模块的输出连接,特征拼接层concat的输出和位置编码特征图pos-emb的输出均与特征图相加层sum2的输入连接,特征图相加层sum2的输出经encoder模块与全连接层fc的输入连接。

进一步地,所述输入图像分辨率快速下降层ifd用于将所述待处理视频图像序列的每帧图像分解成若干个分解子图,具体为:

对所述待处理视频图像序列的每帧图像进行均匀网格划分,获得网格子图;

对每个网格子图,按照行优先顺序进行数字编码,得到数字编码网格子图;

将每个网格子图中相同数字编码的像素取出来,并按照网格顺序排列拼接,得到所述分解子图并作为所述卷积层conv0的输入。

进一步地,所述encoder模块包括归一化层ln0和ln1、特征图相加层sum5和sum6、全连接层fc2和注意力模块attention,归一化层ln0的输入与所述特征图相加层sum2的输出连接、输出经注意力模块attention与特征图相加层sum5的输入连接,特征图相加层sum5的输入还与所述特征图相加层sum2的输出连接;特征图相加层sum5的输出以及经归一化层ln1和全连接层fc2后与特征图相加层sum6的输入连接,特征图相加层sum6的输入还与特征图相加层sum5的输出连接,特征图相加层sum6的输出为所述全连接层fc的输入连接,且特征图相加层sum6输出的特征图作为下次执行时归一化层ln0的输入。

进一步地,所述注意力模块attention包括加权矩阵相乘层mul_qk、注意力图特征值调整层softmax以及矩阵相乘层mul_v,加权矩阵相乘层mul_qk的输入与所述归一化层ln0的输出连接,加权矩阵相乘层mul_qk的输出经注意力图特征值调整层softmax后与矩阵相乘层mul_v的输入连接,矩阵相乘层mul_v与加权矩阵相乘层mul_qk连接,加权矩阵相乘层mul_qk的输出与所述特征图相加层sum5的输入连接。

进一步地,所述深度神经网络模型的训练过程包括:

获取训练样本数据;

设计所述深度神经网络模型的目标损失函数为均方差损失函数;

利用训练样本数据训练深度神经网络模型,学习模型参数,以得到所述的预先训练好的深度神经网络模型。

进一步地,所述获取训练样本数据包括:

收集抖动视频集合;

对抖动视频集合中的数据进行处理,获取视频的抖动参数;

依据不同的采样时长t,将抖动视频均匀分割成多个短视频片段,对每个短视频片段均匀采样多幅连续图像组成所述深度神经网络模型的输入图像样本序列,并记录当前幅采样图像的抖动参数作为该输入图像序列的标签数据,其中所述多幅连续图像的任意两帧连续图像的画面存在50%以上重叠区域。

进一步地,所述根据当前帧的抖动参数,获取稳定的当前帧图像,包括:

根据所述抖动参数,计算相应的相似变换矩阵;

将当前帧图像乘以相似变换矩阵,得到稳定的当前帧图像。

进一步地,还包括:

预测当前帧图像的抖动参数时,保存所述待处理视频图像序列中除首幅图像之外的其他图像的特征数据,以用于预测后一帧图像的抖动参数。

与现有技术相比,本发明存在以下技术效果:本发明采用深度学习技术,综合利用多帧图像序列之间的像素运动信息,自适应的预测出当前帧图像的抖动参数,通过补偿运算获取画面稳定的当前帧图像。本方案防抖效果好;可以抵抗复杂光线变化、物体运动等带来的干扰,鲁棒性更强;通过采用高效的网络结构,模型计算量较小,运行速度更快;网络端到端训练,模型使用更加方便。

附图说明

下面结合附图,对本发明的具体实施方式进行详细描述:

图1是一种基于transformer的视频防抖方法的流程图;

图2是一种基于transformer的视频防抖方法的原理框图;

图3是深度神经网络结构图;

图4是特征提取模块结构图;

图5是抖动参数估计模块结构图;

图6是encoder模块结构图;

图7是attention模块结构图;

图8是单通道图像分解原理图,其中图(a)表示编码图像,图(b)表示分解子图;

其中,每个网络层图形旁边的字母数字,表示当前特征层的特征图尺寸,即:特征图高度×特征图宽度×特征图通道数。

具体实施方式

以下结合附图对本发明实施方式的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施方式,并不用于限制本发明实施方式。

在本发明实施方式中,在未作相反说明的情况下,使用的方位词如“上、下、顶、底”通常是针对附图所示的方向而言的或者是针对竖直、垂直或重力方向上而言的各部件相互位置关系描述用词。

另外,若本发明实施方式中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。

如图1所示,本实施例公开了一种基于transformer的视频防抖方法,包括如下步骤:

s1、获取待处理视频图像序列作为预先训练好的深度神经网络模型的输入,该深度神经网络模型包括特征提取模块和抖动参数估计模块,抖动参数估计模块包括基于transformer改进的encoder模块;

s2、利用特征提取模块获取待处理视频图像序列每帧图像的深层抽象特征;

s3、利用抖动参数估计模块对相邻若干帧图像的深层抽象特征进行处理,估计当前帧图像的抖动参数;

s4、根据当前帧的抖动参数,获取稳定的当前帧图像。

作为进一步优选的技术方案,在上述利用预先训练好的深度神经网络模型对待处理视频图像序列进行防抖处理之前,还需对深度神经网络模型进行构建以及训练,如图2所示:

(1)设计深度神经网络模型:

由于视频画面抖动是通过前后相邻若干帧画面的连续出现体现出来的,因此,视频画面抖动校正是依据前后相邻若干帧图像的运动规律获取当前帧图像的抖动参数,进而补偿当前帧,重建稳定的视频画面。本实施例方法采用深度学习技术,通过借助一个深度神经网络模型,能够根据前后相邻若干帧图像的运动规律,自适应的计算出当前帧图像的抖动参数。本实施例使用卷积神经网络(cnn)进行深度神经网络模型设计,为了方便叙述本方案,定义一些术语:特征图分辨率指的是特征图高度×特征图宽度,特征图尺寸指的是特征图高度×特征图宽度×特征图通道数,核尺寸指的是核宽度×核高度,跨度指的是宽度方向跨度×高度方向跨度,另外,每一个卷积层后面均带有批量归一化层和非线性激活层。

本实施例设计的深度神经网络模型,其具体网络结构如图3所示,设计过程分为以下步骤:

1-1)设计深度神经网络模型的输入图像:

本实施例需要根据相邻若干帧图像获取当前帧的抖动参数,因此,输入图像包括20幅3通道rgb图像。其中,前14幅图像表示当前帧之前的连续图像序列,第15幅图表示当前帧图像,后面5幅图像表示当前帧之后的连续图像序列。

应当理解的是,输入图像的数量可根据不同的任务需要选择不同的数值。

需要说明的是,这连续的20幅3通道rgb图像,根据不同的应用场景,可以选择不同的采样步长。其中,输入图像的分辨率是256×256,根据不同的需要,每一幅输入图像可以是整幅视频画面,也可以是截取的部分视频画面。

1-2)设计深度神经网络模型的网络结构:

深度神经网络主要用来根据输入的相邻若干帧图像序列获取当前帧图像的抖动参数。本实施例设计的深度神经网络模型包括特征提取模块和抖动参数估计模块。具体设计步骤如下:

1-2-1)设计深度神经网络模型的特征提取模块:

特征提取模块主要用来提取输入图像的深层抽象特征,该模块需要具有特征提取能力强和运算高效等特点。该模块的具体网络结构如图4所示:其中,ifd(imagefastdecrease)层是输入图像分辨率快速下降层;conv0是一个核尺寸是5×5,跨度是2×2的卷积层;maxpool0层是一个核尺寸为2×2,跨度为2×2的最大值池化层;conv1_0、conv1_1、conv2_0均是一个核尺寸是3×3,跨度是1×1的卷积层;conv2_1是一个核尺寸是3×3,跨度是2×2的卷积层;conv2_2是一个核尺寸是1×1,跨度是2×2的卷积层;conv3是一个核尺寸是3×3,跨度是2×2的卷积层;conv4是一个核尺寸是4×4,跨度是1×1的卷积层;sum0、sum1均是特征图相加层,主要实现两个输入特征图逐像素相加。

需要说明的是,ifd层的作用是把一幅较大的输入特征图,分解成若干个较小的分解子图,即子输入特征图,其中,多通道图像需要拆分成多个单通道图像分别进行分解,以单通道图像为例,具体分解方法如下:

图像网格化,主要是对输入图像进行均匀网格划分,获得网格子图,每个网格的宽高尺寸均为4个像素,如图8(a)所示。

网格图像编码,主要是对每一个网格子图,按照行优先顺序进行数字编码,得到数字编码网格子图,编码数字的范围是1-4,如图8(a)所示。

获取分解子图,主要是基于所有数字编码网格子图,把每一个网格子图中,相同数字编码的像素取出来,按照网格顺序排列拼接,形成新的子图,即是分解子图,如图8(b)所示。

1-3)设计深度神经网络模型的抖动参数估计模块:

抖动参数估计模块联合利用相邻若干帧图像的深层抽象特征,估计当前帧图像的抖动参数。本实施例基于transformer(attentionisallyouneed)技术和视频防抖任务的特殊性,进行模型网络结构优化改进,具体网络结构如图5所示,pos-emb是位置编码特征图,用来表示不同图像输入特征在输入特征序列中的时序位置,其特征图分辨率和特征提取模块输出的单幅图像特征图分辨率相同,其特征图通道数等于网络模型的输入图像序列长度加一;out-token是输出标记特征图,用来获取用于后续任务的输出特征图,其特征图尺寸和特征提取模块输出的单幅图像特征图尺寸相同;pos-emb特征图和out-token特征图均通过训练深度神经网络模型时学习得到;concat层是特征拼接层,主要实现多个输入特征图按照宽度维度拼接成一个输出特征图。

其中,out-token特征图需要位于特征拼接图的第1宽度位置;sum2是特征图相加层,主要实现两个输入特征图逐像素相加;encoder表示基于transformer改进的encoder模块;fc层是全连接层,其输出3维特征表示当前帧图像的抖动参数,fc层的输入特征图只使用encoder模块输出的out-token特征图。

其中,encoder模块的具体网络结构如图6所示,ln0、ln1均是层归一化层(layernormalization),主要是对批输入图像序列中的每一个单输入图像序列的相应特征图进行标注化处理;sum5、sum6均是特征图相加层,主要实现两个输入特征图逐像素相加;fc2是全连接层;attention是注意力模块,用来获取输入特征图序列中不同特征图之间的注意力关系。encoder模块会被重复执行多次,第一次执行时,encoder模块的输入特征图来源于图5中的sum2层,后续重复执行时,encoder模块的输入特征图均来源于上一次执行的输出特征图,如图6中虚线箭头所示,n表示重复执行的次数,本发明中,n=3。

其中,attention模块的具体网络结构如图7所示,mul_qk是加权矩阵相乘层,用来获取不同输入特征图之间的相关性,即注意力图,具体运算方法是,首先输入特征图矩阵乘以输入特征图矩阵的转置矩阵,然后所得计算矩阵的每个元素再除以特征图通道数的平方根;softmax是注意力图特征值调整层,基于softmax理论归一化注意力图特征值,使其范围在0-1之间;mul_v是矩阵相乘层,基于注意力图对输入特征图进行加权,获取具有注意力机制的输入特征图,具体运算方法是,softmax层的输出特征图矩阵乘以输入特征图矩阵。

(2)训练深度神经网络模型,主要是通过大量的标注好的训练样本数据,优化深度神经网络模型参数,使得深度神经网络模型检测性能最优,具体的步骤如下:

2-1)获取训练样本数据,训练样本数据的质量直接决定了视频防抖的性能具体步骤如下:

2-1-1)收集抖动视频集合,主要收集各种背景、各种光线、各种拍摄角度下的抖动视频,即视频中存在抖动现象。

2-1-2)获取视频的抖动参数,主要是针对抖动视频,计算每一帧图像的抖动参数,即该帧抖动图像相对于稳定图像的整体运动参数,具体包括x坐标位移、y坐标位移、绕图像中心的旋转角度。

2-1-3)获取深度神经网络模型的输入图像序列,即视频图像序列,主要是依据不同的采样时长t,把抖动视频均匀分割成一个个短视频片段,对于每一个短视频片段,均匀采样20幅连续图像,这20幅连续图像共同组成一个深度神经网络模型的输入图像样本序列,并记录第15幅采样图像的抖动参数作为该输入图像序列的标签数据。另外,20幅连续图像中,任意两帧连续图像的画面要存在50%以上重叠区域。

需要说明的是,由于抖动视频不好收集,本实施例中可以先收集一些不抖动的稳定视频,通过抖动变换算法,间接获取抖动视频,具体为:收集稳定视频集合,主要收集各种背景、各种光线、各种拍摄角度下的稳定视频,即视频中基本不存在抖动现象。对于这些稳定视频,采用现有的一些视频抖动运动模型进行抖动变换,变换成抖动视频。

2-2)设计深度神经网络模型的目标损失函数,本发明基于回归分析实现,其目标损失函数采用的均方差(mse)损失函数。

2-3)训练深度神经网络模型,主要是把标注好的视频图像序列集合送入定义好的深度神经网络模型,学习相关的模型参数,得到训练好的深度神经网络模型。

(3)使用深度神经网络模型,对于任意给出的一个视频图像序列进行处理,步骤如下:

3-1)经过深度神经网络模型前向运算后,直接输出当前帧图像(即视频图像序列的第15幅图)的抖动参数;

3-2)根据获得的抖动参数,计算相应的相似变换矩阵;

3-3)将当前帧图像直接乘以相似变换矩阵,即可获取稳定的当前帧图像。

作为进一步优选的技术方案,还包括:

预测当前帧图像的抖动参数时,保存所述待处理视频图像序列中除首幅图像之外的其他图像的特征数据,以用于预测后一帧图像的抖动参数。

需要说明的是,在使用深度神经网络模型进行预测时,由于输入图像序列的所有图像的特征提取模块是共用的,先后预测前后两帧图像的抖动参数时,会存在大量的重复特征提取计算,即预测当前帧图像的抖动参数时的输入图像序列的后19幅图像的特征和预测下一帧图像的抖动参数时的输入图像序列的前19幅图像的特征相同,所以,预测当前帧图像的抖动参数时,保存后19幅图像的特征数据直接用于预测后一帧图像的抖动参数,这样,每一次预测图像的抖动参数时,实际上只需要提取一幅图像的特征,大大减少了计算量。

需要说明的是,本实施例中所描述的视频抖动指的是:采集摄像机发生整体运动,即视频画面中,除运动物体外,所有像素的运动轨迹相同。

以上结合附图详细描述了本发明例的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1