具体实施方式
下面结合附图对本发明作详细描述。
实施例1
视频在实际传输过程中,由于受传输条件或其他干扰因素的影响,往往会发生帧的丢失。寻找有效的视频帧合成方法来恢复丢失的帧可以提高视频的质量。而视频帧预测可以通过现有的帧来预测未来的帧,预测目标的未来状态,学习视频中人或一个物体的将来动作。视频帧的合成问题越来越受到人们的关注,但现有的基于神经网络的方法需要大量的训练数据,现有张量方法由于整帧的缺失不能获取足够的信息,恢复精度较低,不能有效地用于视频帧合成。
针对上述现状,本发明经过研究与创新,提出一种基于张量的视频帧合成方法,参见图1,包括有以下步骤:
步骤1,建立基于张量的视频帧合成模型:对于原始的视频数据
n
1和n
2表示视频每帧的长和宽,n
3为视频的帧数,输入中间随机置零丢失若干帧后待恢复的视频数据或将末尾几帧置零待预测的视频数据
将恢复丢失的视频帧或预测未来的视频帧转化为补全一个三阶张量,构造该视频帧合成的低tubal-rank张量补全表述,将最终得到的恢复视频或预测视频称作目标张量
目标张量
是一个大小为n
1×n
2×n
3的三阶张量,n
1,n
2为视频每帧的长和宽,n
3为视频的帧数。
步骤2,分解目标张量
将目标张量
分解为两个大小分别为
和
的三阶张量的
-积,表示为
r为原始视频的秩tubal-rank;
步骤3,求解分解后的两个张量:在傅里叶变换域中采用交替最小化方法对步骤2中得到的两个张量
和
进行交替求解,每次交替最小化是张量
或
的最小二乘形式,在傅立叶变换域得到最优化后的张量
和张量
步骤4,对张量
和张量
进行傅里叶反变换,张量
和张量
相乘后即可得到目标张量
目标张量即为恢复丢失帧后的视频或预测出待预测帧的视频。
本发明为了将丢失帧后的视频或为含有预测帧的视频更好的合成,将视频看作为一个三阶张量,将视频的帧看作为三阶张量的正面切片,把视频帧的缺失看作张量正面切片的缺失,将视频帧合成转换为低秩张量的补全,将待求解的目标张量分解并转换到变换域,在变换域中分解成若干个子问题,对每个子问题进行交替最小化求解,得到分解后的张量后进行反变换,相乘后得到目标张量。本发明解决了将传统低秩补全方法应用于视频帧合成效果较差,神经网络方法需要大量训练集的问题。
实施例2
基于张量的视频帧合成方法同实施例1,步骤1中所述的构造该视频帧合成的低秩tubal-rank张量补全表述,具体是
1.1对于一个具有n
3帧的完整视频
对视频中的帧进行随机置零用于恢复,或将视频最后几帧置零用于预测,输入中间随机置零若干帧后的视频数据或将末尾几帧置零的视频数据
Ω表示原始视频
中已有帧的序号集合,
是在Ω上的投影张量,
表示已有的视频帧数据,即
其中
为张量
的第i个正面切片,即完整视频的第i帧,大小为n
1×n
2,
为张量
的第i个正面切片,0是n
1×n
2的全0矩阵,表示该帧缺失;|Ω|表示视频
中已有帧的数量,那么有n
3-|Ω|帧需要被合成。视频帧合成可以被视为从视频
中已有的|Ω|帧中恢复视频或预测未来的视频帧,即找到一个低秩的
去近似原始视频
使
1.2将视频帧合成表示为以下低秩tubal-rank张量补全表述,也就是补全一个张量,即原始视频
其中,
表示目标张量
的秩tubal-rank,r为原始视频的秩,‖·‖
F表示三阶张量的Frobenius范数,等于张量所有元素的平方和开方。
本发明通过将视频帧合成建模为补全一个张量,直接通过输入的视频即可恢复出丢失的帧或者预测接下来的视频帧,而不需要使用大量的训练集对模型进行训练。
实施例3
基于张量的视频帧合成方法同实施例1-2,步骤2中所述的将目标张量
分解为两个大小分别为
和
的三阶张量的
-积,具体是
2.1将步骤1中目标张量
分解为
的形式,其中三阶张量
三阶张量
·表示两个三阶张量的
-积,对于任意两个三阶张量
和
定义为
i∈[n
1],j∈[n
4],[n
1]表示1到n
1的集合,
表示三阶张量
第i行第j列的tube,
表示一种线性变换,即傅立叶变换,
是
的逆变换,·*表示对应元素间的乘法。
2.2视频帧合成转换为以下形式
实施例4
基于张量的视频帧合成方法同实施例1-3,步骤3中所述的采用交替最小化方法对张量
和张量
在傅立叶变换域进行交替求解,具体是
3.1由于在交替求解的过程中求解张量
和张量
的过程相似,统一表达为
并将更新的过程表示为一个函数:
即,根据给定的
按照
Ω,r求解
根据卷积定理,上述张量最小二乘形式可转换为傅立叶变换域中的最小二乘形式,即
其中
即输入的视频数据,
表示该张量
沿第三维方向的傅里叶变换,即张量
的变换域表示,
定义为两个三阶张量间对应tube进行循环卷积,即
表示张量
第i行第j列的tube,★表示循环卷积,·§表示两个三阶张量间对应正面切片的矩阵乘法,即
表示3阶张量
的第l个正切面;
3.2在傅立叶变换域求解张量
和
的过程按侧面切片分为n
2个独立的最小二乘最小化:
在时域中对张量
和张量
的求解过程需要计算两个张量间的
-积,运算量大。本发明将其转换到傅立叶变换域中,将张量间的
-积转换为对应切片的矩阵乘法,进一步分解为n
2个子问题求解,简化了运算,提高了视频帧合成的运算速度。
实施例5
基于张量的视频帧合成方法同实施例1-4,步骤3.2中,在傅立叶变换域求解张量
和
的过程按侧面切片分为n
2个独立的最小二乘最小化,具体是
每个最小二乘最小化相当于估计变换域中张量
的一个侧面切片
j∈[n
2],包括有以下步骤:
3.21将傅里叶变换域中的输入视频
的侧面切片
j∈[n
2],按行展开为一个大小为n
1n
3×1的向量b
其中unfold(·)表示将一个1×1×n
3的tube转换为长度为n
3的向量;类似地,将
j∈[n
2],变换为大小为rn
3×1的向量x
3.22将
的每个正面切片依次置于一个矩阵的对角线上,转换为一个大小为n
1n
3×rn
3的块对角矩阵
3.23将输入视频的投影在傅立叶变换域中的侧面切片
转换为一个大小为n
3×n
3×n
1的张量
满足
其中circ(·)表示将一个向量转换为循环矩阵,然后令
估计
的第j个侧面切片转化为以下向量的标准最小二乘:
然后可以将每个向量
恢复为矩阵
j∈[n
2],进而得到目标视频张量分解后的张量;
通过将侧面切片按行展开为向量,并将
转换为循环矩阵,充分利用了视频各帧中的信息,提高了视频帧合成的质量。
其中,在执行交替求解的每次迭代过程中,给定
更新
时(即求解
时,
表示第l-1轮迭代求解的
表示第l轮迭代求解的
),输入数据的维度与原始维度相同,输出数据的维度即与
相同;给定
更新
时(即求解
时,
表示第l轮迭代求解的
表示第l轮迭代求解的
),为了使输出张量的维度与
相同,需要对输入的数据进行转置处理,得到输出数据后再对输出数据进行转置即可得到正确的
迭代更新直至
和
收敛即可。
本发明在求解出分解后的两个张量之后,再经过傅里叶反变换并将两个张量相乘求解出目标张量,完成输入中间随机丢失若干帧后的视频数据或末尾几帧置零的视频数据的视频帧合成。
下面给出一个更加详细完整的例子,对本发明进一步说明:
实施例6
基于张量的视频帧合成方法同实施例1-5,
步骤1,将视频帧合成问题转化为补全一个张量
输入一个待合成的视频,参见图2,输入的视频可能如图2的(a)所示,是一个中间缺失了某几帧的视频,也可能是如图2的(b)所示的,需要根据已经存在的帧去预测未来帧的视频,无论是中间缺失几帧的情况还是需要预测未来帧的情况,都是相当于利用已有的帧来恢复视频中空缺的帧,将这两种情况的输入视频均记为
本发明将一个具有n
3帧的视频表示为一个三阶张量
假设观测到了
的|Ω|帧,那么有n
3-|Ω|帧需要被恢复或预测。因此,视频帧合成的问题可以被视为从已观测到的|Ω|帧中恢复未知的帧来补全原始视频
即找到一个低秩的
使
其中
是在Ω上的投影,
表示已观测到的视频数据,即
其中,
为张量
的第i个正面切片,即完整视频的第i帧,大小为n
1×n
2,
为张量
的第i个正面切片,0是n
1×n
2的全0矩阵,表示该帧缺失。
将视频帧合成表示为以下低tubal-rank张量补全表述,补全这个张量的过程也即从已有的帧中合成缺失的帧的过程:
其中,
表示视频数据
的tubal-rank,r为原始视频的秩,‖·‖
F表示三阶张量的Frobenius范数,等于张量所有元素的平方和开方。
将步骤1中目标张量
分解为
的形式,
则视频帧合成转换问题转换为以下形式
因此,恢复视频中缺失的帧,即求解目标张量
转化为求解
和
两个三阶张量,可以通过交替最小化方法求解。
步骤3,使用交替最小化方法求解
对交替最小化方法,有两个重要的步骤,一个是初始化,一个是在给定
或
中的一个来找到最佳的另一个之间交替。对于初始化,使用随机初始化获得标准正交的
作为
的初始化值。然后使用最小二乘方法交替更新
或者
更新
和
的过程相似,为了方便表述统一表述为
并将这一过程表示为一个函数:
根据卷积定理,上述张量最小二乘可以在变换域中转换为标准最小二乘
更进一步,可以被分为n
2个独立的标准最小二乘最小化:
其中,
表示张量
的第j个侧面切片,j∈[n
2]。
每个子问题相当于估计一个侧面切片
j∈[n
2],可以通过以下步骤解决:
1)将变换域中输入视频的侧面切片
j∈[n
2]按行展开为一个大小为n
1n
3×1的向量b
类似地,将
j∈[n
2],变换为大小为rn
3×1的向量x
2)将目标视频张量分解后的
按每个正面切片展开为大小为n
1n
3×rn
3的块对角矩阵,即
3)将输入视频的投影在傅立叶变换域中的侧面切片
的每行转换为循环矩阵,进而转换为一个大小为n
3×n
3×n
1的张量
估计目标视频张量分解后
的第j个侧面切片可以转化为以下标准最小二乘:
然后将向量
展开为矩阵,即可恢复出目标视频张量分解后的
j∈[n
2]。
其中,在执行交替求解的每次迭代过程中,给定
更新
时,即求解
时,输入数据的维度与原始维度相同,输出数据的维度即与
相同;给定
更新
时,即求解
时,为了使输出张量的维度与
相同,需要对输入的数据进行转置处理,得到输出数据后再对输出数据进行转置即可得到正确的
迭代更新直至收敛。
步骤4,得到补全后的视频
将在变换域中得到的分解后的张量进行傅里叶反变换,再将其相乘得到目标张量,即补全后的视频,恢复出输入视频中丢失的帧或者要预测的帧。
由于可以将视频看作是一个三阶的张量,视频帧合成可以转换为从一些采样的正面切片中重构一个三阶张量。恢复缺失帧就是恢复该帧图像,可以在视频帧合成中尝试使用一些传统低秩补全方法,如非负CP分解(NCPC),高精度低秩张量补全(HaLRTC)等方法。由于整帧图像的缺失导致该帧可以获取的信息有限,应用传统的低秩补全方法进行视频帧的合成难度较大,不能有效的用于视频帧合成。
本发明通过将视频数据看作是一个张量,将视频帧看作是一个张量的正面切片,将视频帧合成转化为补全一个张量的方法,将视频帧合成转换到傅立叶变换域进行,并将视频的帧进一步分解为向量的形式,简化运算。本发明方法能获取缺失帧的更多信息,更有利于对缺失帧进行恢复或预测,且不需要大量的数据集进行训练,直接对输入视频进行处理即可恢复输入视频中丢失的帧或预测未来的帧,且合成准确度较高。
下面结合附图,结合仿真实验对本发明的技术效果再做说明:
实施例7
基于张量的视频帧合成方法同实施例1-6,
仿真条件与内容
本发明实施例使用KTH数据集和NBA视频进行仿真,采用离散傅里叶变换,分别对视频帧预测和视频帧插值进行仿真,如附图2所示。KTH数据集包括六种人类活动,由25名受试者在四种不同的场景中多次执行,仿真中使用了行走的数据集。
在仿真中使用
-SVD对原始视频
进行去噪,即
取
的前r个奇异值,并令其余的为0,得到
进一步可以得到去噪后的视频
其中
表示张量转置。仿真中对应KTH视频和NBA视频所使用的tubal rank分别为15和48。
仿真中分别从KTH数据集的行走视频和NBA视频中选取30帧,将数据分别处理为60×80×30和90×160×30。对于视频帧恢复,选取第3、6、9帧作为需要合成的丢失帧,对于视频帧预测,预测视频的最后帧。在仿真中,本发明方法与NCPC方法,HaLRTC方法,DVF方法等进行了性能对比。
仿真结果与分析
参见图3,图3是在KTH数据集上进行视频帧预测的仿真,是一个单人行走的视频,图3的(a)和图3的(b)是已知的视频帧,图3的(c)是使用NCPC方法对视频帧预测,图3的(d)是使用HaLRTC方法对视频帧预测,图3的(e)是使用DVF方法对视频帧预测,图3的(f)是使用本发明的方法对视频帧预测结果。可以看出图3的(c)和图3的(d)的结果无法预测与分辨,图3的(e)基本可以恢复出结果,但效果不如本发明的结果精确。图中目视可见其他几种方法均没有本发明视觉效果好,本发明方法的结果最为准确。
参见图4,图4是在NBA视频上进行视频帧预测的仿真,是一幅场景复杂的比赛视频。图4的(a)和图4的(b)是已知的视频帧,图4的(c)是使用NCPC方法对视频帧预测,图4的(d)是使用HaLRTC方法对视频帧预测,图4的(e)是使用DVF方法对视频帧预测,图4的(f)是使用本发明的方法对视频帧预测。仿真结果与图3中结果相似。
参见图5,图5是在KTH数据集上进行丢失视频帧恢复的仿真。图5的(a)和图5的(b)是已知的视频帧,要恢复这两帧之间的视频帧,图5的(c)是使用NCPC方法恢复丢失帧,图5的(d)是使用HaLRTC方法恢复丢失帧,图5的(e)是使用DVF方法恢复丢失帧,图5的(f)是使用本发明的方法恢复丢失帧。对比几幅恢复出的图像可见,本发明的方法恢复出的图像最为清晰精确。
参见图6,图6是在KTH数据集上进行丢失视频帧恢复的仿真。图6的(a)和图6的(b)是已知的视频帧,要恢复这两帧之间的视频帧,图6的(c)是使用NCPC方法恢复丢失帧,图6的(d)是使用HaLRTC方法恢复丢失帧,图6的(e)是使用DVF方法恢复丢失帧,图6的(f)是使用本发明的方法恢复丢失帧。恢复效果与图5相似,本发明的方法效果最好。
多次实验均证明本发明方法效果最好,还需要说明的是,本发明在实验中直接对输入的30帧视频进行处理即可得到预测或恢复的视频,本发明不需要大量的训练集就可以得到精确的合成结果。
实施例8
基于张量的视频帧合成方法同实施例1-6,仿真条件与内容同实施例7,如果说直接观察合成效果还不够精确,本例采用具体数据进一步定量描述。
为了直观的解释本发明的技术效果,定量分析合成结果的准确性,定义相对平方误差RSE,令
表示丢失帧的序号集合。
表1
|
KTH |
NBA |
NCPC |
0.5889 |
0.6998 |
HaLRTC |
0.1334 |
0.3089 |
DVF |
0.0760 |
0.2886 |
Our method |
0.0208 |
0.0845 |
表2
|
KTH |
NBA |
NCPC |
0.5147 |
0.5379 |
HaLRTC |
0.1465 |
0.3240 |
DVF |
0.1250 |
0.3085 |
Our method |
0.0384 |
0.0667 |
表1和表2分别给出了以上视频帧恢复和视频帧预测中本发明方法与其他方法的RSE值,从表中可以看出,本发明方法的合成误差与其他方法相比较小,对视频帧合成的准确率更高。
附图7给出了在两个数据集上的RSE值随缺失帧数变化的曲线。图中仅比较了效果较好的DVF方法和本发明的方法。图7的(a)为KTH数据集,图7的(b)为NBA视频,图中“△”曲线为DVF方法,“╳”曲线为本发明的方法。从图中可以看出,在丢失帧数小于一定值时,本发明方法的视频帧合成误差均低于DVF方法,合成准确度较高。
从附图3-7中可以看出,在实际的视频帧合成中,本发明的方法比其他方法的视觉效果更好,同时RSE值的分析结果表明在缺失帧数小于一定值时,本发明的方法误差更小,合成准确率更高,性能更好。
综上所述,本发明公开的一种基于张量的视频帧合成方法,解决了传统低秩补全方法应用于视频帧合成效果较差,神经网络方法需要大量训练集的问题。包括有以下步骤:1)建立基于张量的视频帧合成模型,将视频帧合成转换为补全一个张量;2)分解目标张量
3)采用交替最小化方法在傅立叶变换域中求解分解后的两个张量;4)对得到的两个张量进行傅里叶反变换,相乘后得到目标张量,即恢复缺失帧后的视频。本发明将视频看作张量,将视频帧看作张量的正面切片,将视频帧合成转换为补全一个张量,并在傅立叶变换域中求解。与现有技术相比,可以获取有关缺失帧的更多信息,对细节部分的处理较好,不需要大量的数据进行训练,且对缺失帧的合成精确度较高。本发明方法可以用于恢复视频在传输中丢失的帧或在现有的帧之间进行插值,提高视频质量,或用于预测视频中目标的未来状态。