本发明属于视频处理技术领域,具体的涉及一种基于深度学习的数字视频稳像方法。
背景技术:
随着数字视频时代的到来,数字视频被广泛用于生活中的各种场景。但由于手持式相机易受到拍摄主体的抖动和采集环境的影响,相邻帧之间往往包含不规则的全局运动,严重影响了视频的质量。视频稳像的目的就是通过数字化的方法对拍摄的视频进行抖动校正处理,实现数字视频中抖动的去除。虽然视频稳像方法经过了长时间的研究,但由于实际抖动的频率的多样性,传统的数字稳像方法很难处理于多种频率不同的抖动。
为了解决上述的关键问题,同时随着机器学习的迅猛发展,大量学者希望通过机器学习的方式,让机器通过抖动和稳定的视频数据比较自动发现视频稳像的算法。不过目前,深度学习中的卷积神经网络用于学习自动稳像模型还属于一个崭新的领域。
技术实现要素:
针对于上述现有技术的不足,本发明的目的在于提供一种基于深度学习的数字视频稳像方法,克服了现有技术存在的视频效果不佳等技术缺陷。
为达成上述目的,本发明采用如下技术方案:一种基于深度学习的数字视频稳像方法包括如下步骤:步骤1:获取稳定视频帧,并利用计算机在稳定视频中加入随机抖动,构建一个用于训练视频稳像网络的数据集,所述数据集中包含成对的抖动和稳定的视频帧;步骤2:构建一个深度卷积神经网络,所述网络可以实现将抖动的视频转换为稳定视频;步骤3:构造一个损失函数,所述损失函数包括视频帧的稳定损失和ssim损失,利用该损失函数训练深度卷积神经网络,获得深度视频稳像网络模型参数。
优选地,在步骤1中,构建数据集的具体要求如下:a、对于需要采集的稳定视频无特殊限制条件,只要该视频满足正常拍摄标准,获取稳定的视频即可;b、也可以通过goprohero4的相机同时在相机头上安装一个稳定器,用来采集稳定视频;c、不同数据源获取的视频稳像帧无需统一尺度大小;d、采用上述方法构建训练数据集,当数据集规模包含预设数量的稳定视频时,则停止收集数据。
优选地,步骤2具体包括如下内容:深度卷积神经网络由若干个稳像单元构成,其中每个稳像单元由单点卷积层,单层卷积层和单点卷积层构成;单点卷积层和单层卷积层之间加入批量归一化与非线性激活单元;给定一个抖动的视频帧,经过该深度视频稳像网络后输出一个稳定视频帧。
优选地,步骤3具体包括如下内容:
视频稳像的损失函数包括视频帧的稳定损失和ssim损失;
视频帧的稳定损失为lstab(ft,it)=lpixel(ft,it)+λlfeature(ft,it)其中lpixel(ft,it)是像素级别的损失,lfeature(ft,it)是特征级别的损失;
ssim损失为衡量两帧之间相似度的指标,为结构相似度,该损失为lssim(x,y)=l(x,y)*c(x,y)*s(x,y),其中l(x,y)是亮度对比因子,c(x,y)是对比度因子,s(x,y)是结构对比因子;
优化目标函数为损失函数l=∑i∈{t,t-1}lstab(fi+ii)+αlssim(x,y),其中α为比例系数;
求解目标函数关于特征变换的ft;
利用网络前向传播求解目标相对网络各层参数;
对各层参数利用随机梯度下降进行参数更新学习。
优选地,步骤3之后还包括步骤4:模型学习完毕后,即可利用该网络输入抖动视频帧,网络的输入即为稳像之后的视频帧;
在步骤4中,模型学习得到模型参数,通过输入任意一个有抖动的视频帧,网络通过将有抖动的视频帧与网络模型中的参数进行计算,网络的输出即为稳定后的视频帧。
相较于现有技术,本发明提供的技术方案具有如下有益效果:
1、采用深度学习的方法构造深度卷积神经网络,算法的复杂度降低使得本发明的平均运行时间会得到缩短;
2、根据深度卷积神经网络训练有不同频率抖动的视频帧,可以产出效果稳定的稳像帧,解决现有的视频稳像算法只能针对单一类型的抖动。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明基于深度学习的视频稳像方法的执行流程图;
图2为本发明实施方式提供的深度稳像卷积神经网络模型结构图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明的权利要求书、说明书及上述附图中,除非另有明确限定,如使用术语“第一”、“第二”或“第三”等,都是为了区别不同对象,而不是用于描述特定顺序。
本发明的权利要求书、说明书及上述附图中,除非另有明确限定,对于方位词,如使用术语“中心”、“横向”、“纵向”、“水平”、“垂直”、“顶”、“底”、“内”、“外”、“上”、“下”、“前”、“后”、“左”、“右”、“顺时针”、“逆时针”等指示方位或位置关系乃基于附图所示的方位和位置关系,且仅是为了便于叙述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位或以特定的方位构造和操作,所以也不能理解为限制本发明的具体保护范围。
本发明的权利要求书、说明书及上述附图中,除非另有明确限定,如使用术语“固接”或“固定连接”,应作广义理解,即两者之间没有位移关系和相对转动关系的任何连接方式,也就是说包括不可拆卸地固定连接、可拆卸地固定连接、连为一体以及通过其他装置或元件固定连接。
本发明的权利要求书、说明书及上述附图中,如使用术语“包括”、“具有”以及它们的变形,意图在于“包含但不限于”。
参见图1,本基于深度学习的数字视频稳像方法包括以下步骤:
步骤s1:获取稳定视频帧,并利用计算机在稳定视频中加入随机抖动,构建一个用于训练视频稳像网络的数据集,所述数据集中包含成对的抖动和稳定的视频帧;
步骤s2:构建一个深度卷积神经网络,所述网络可以实现将抖动的视频转换为稳定视频;
步骤s3:构造一个损失函数,所述损失函数包括视频帧的稳定损失和ssim损失,利用该损失函数训练深度卷积神经网络,获得深度视频稳像网络模型参数;
步骤s4:模型学习完毕后,即可利用该网络输入抖动视频帧,网络的输入即为稳像之后的视频帧:。
具体地,在步骤s1中,构建数据集的具体要求如下:
a、对于需要采集的稳定视频无特殊限制条件,只要该视频满足正常拍摄标准,获取稳定的视频即可;
b、也可以通过goprohero4的相机同时在相机头上安装一个稳定器,用来采集稳定视频;
c、不同数据源获取的视频稳像帧无需统一尺度大小;
d、采用上述方法构建训练数据集,当数据集规模包含预设数量的稳定视频时,则停止收集数据。
在步骤s2中,深度卷积神经网络由若干个稳像单元构成,其中每个稳像单元由单点卷积层,单层卷积层和单点卷积层构成。单点卷积层和单层卷积层之间加入批量归一化与非线性激活单元;给定一个抖动的视频帧,经过该深度视频稳像网络后输出一个稳定视频帧。
具体地,深度稳像卷积神经网络结构如请参阅图2,在步骤s2中包括如下内容:
输入图像为包含抖动的视频帧,其大小为h×w×1,其中h表示视频帧的高度,w表示视频帧宽度,1表示视频帧的通道数。输入的视频帧首先经过一个卷积层,该卷积层包括64个3×3×1的滤波器。之后卷积层输出的结果经过归一化层和非线性激活层被送入稳像单元。稳像单元包括由单点卷积层,单层卷积层和单点卷积层构成,单点卷积层包括96个1×1×64的滤波器,单层卷积层包括96个3×3×1的滤波器,后面的单点卷积层包括64个1×1×96的滤波器。单点卷积层和单层卷积层之间加入批量归一化与非线性激活单元。每个稳像单元的输入和输出之间加入直接连接的通路,使得稳像单元变成一种残差结构。通过多个稳像单元的串联,即可构成深度视频稳像网络。在最后一个稳像单元的输出后面加入一个卷积层,该卷积层包括1个3×3×64的滤波器,进而使得输出与输入视频帧大小一致。同时在网络输出前,将输入视频帧与最后一个卷积层的进行相加,构建从输入到输出的残差结构,进而增加模型的学习能力。
在步骤s3中,在本实施例中,在本实施方式中,视频稳像的损失函数包括视频帧的稳定损失和ssim损失。稳定损失包括像素级损失和特征级损失,其中像素级恢复损失为
具体地,在步骤s3中包括如下步骤:
构建视频帧稳定性恢复损失,该损失为:
lstab(ft,it)=lpixel(ft,it)+λlfeature(ft,it)其中lpixel(ft,it)是像素级别的损失,lfeature(ft,it)是特征级别的损失;其中,其中像素级恢复损失为
构建ssim损失,ssim损失为衡量两帧之间相似度的指标,为结构相似度,该损失为lssim(x,y)=l(x,y)*c(x,y)*s(x,y),其中l(x,y)是亮度对比因子,c(x,y)是对比度因子,s(x,y)是结构对比因子;
优化目标函数为l=∑if{t.t-1}lstab(fi+ii)+αlssim(x,y),其中a为比例系数;
求解目标函数关于特征变换的ft;
利用网络前向传播求解目标相对网络各层参数;
对各层参数利用随机梯度下降进行参数更新学习。
具体地,在步骤s4中,模型学习得到模型参数后,通过输入任意一个有抖动的视频帧,网络通过将有抖动的视频帧与网络模型中的参数进行计算,网络的输出即为稳定后的视频帧。
上述说明示出并描述了本发明的优选实施例,如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。