一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种视频插帧方法、终端以及存储介质与流程

2021-11-17 19:33:00 来源:中国专利 TAG:


1.本发明涉及计算机视觉技术领域,特别涉及一种视频插帧方法、终端以及存储介质。


背景技术:

2.视频插帧时在视频的帧与帧之间插入额外帧的技术,视频插帧可以提高视频的流畅度,提高观看体验。基于光流的视频插帧方法是一种主流的视频插帧方法,在现有技术中,虽然基于光流的视频插帧方法虽然取得了不错的效果,但是在对于帧图像中存在物体遮挡的情况下,基于光流的视频插帧效果不佳,特别是帧与帧之间存在物体的大幅度运动时插帧效果较差。
3.因此,现有技术还有待改进和提高。


技术实现要素:

4.针对现有技术的上述缺陷,本发明提供一种视频插帧方法、终端及存储介质,旨在解决现有技术中的基于光流的视频插帧方法插帧效果差的问题。
5.为了解决上述技术问题,本发明所采用的技术方案如下:
6.一种视频插帧方法,其中,所述视频插帧方法包括:
7.获取目标图像对对应的前向光流,根据所述前向光流获取所述目标图像对对应的后向光流,其中,所述前向光流为所述目标图像对中第一图像到第二图像的光流,所述后向光流为所述第二图像到所述第一图像的光流;
8.根据所述前向光流获取所述第一图像中的第一遮挡区域,根据所述后向光流获取所述第二图像中的第二遮挡区域;
9.对所述第一遮挡区域对应的前向光流值进行修正,生成修正前向光流,对所述第二遮挡区域对应的后向光流值进行修正,生成修正后向光流;
10.根据所述修正前向光流和所述修正后向光流生成用于插入至所述第一图像和所述第二图像之间的目标帧。
11.所述的视频插帧方法,其中,所述根据所述前向光流获取所述目标图像对对应的后向光流包括:
12.获取所述第一图像中各个像素点分别对应的各个第一前向光流值;
13.对所述各个第一前向光流值向上取整,获取所述第一图像中各个像素点分别对应的各个整数中间光流值;
14.根据所述第一图像中各个像素点的坐标、所述各个第一前向光流值以及所述各个整数中间光流值获取所述第二图像中多个像素点的后向光流值。
15.所述的视频插帧方法,其中,所述根据所述第一图像中各个像素点的坐标、所述各个第一前向光流值以及所述各个整数中间光流值获取所述第二图像中多个像素点的后向光流值包括:
16.根据公式获取所述第二图像中多个像素点的后向光流值;
17.其中,为所述第二图像中坐标为的像素点的后向光流值,x为所述第一图像中的像素点的坐标,f0→1(x)为所述第一图像中坐标为x的像素点的第一前向光流值,为所述第一图像中坐标为x的像素点对应的整数中间光流值。
18.所述的视频插帧方法,其中,所述根据所述前向光流获取所述第一图像的第一遮挡区域包括:
19.从所述第一图像中的各个像素点中提取至少一个像素点集合,所述像素点集合中包括至少两个像素点,所述像素点集合中包括前向光流值指向所述第二图像中的同一点的各个像素点;
20.获取所述像素点集合中各个像素点分别对应的各个像素值以及所述像素点集合中各个像素点的前向光流值在所述第二图像中指向的点的第二像素值,将所述像素点集合中像素值与所述第二像素值最接近的像素点之外的像素点标记为第一遮挡区域。
21.所述的视频插帧方法,其中,所述根据所述后向光流获取所述第二图像的第二遮挡区域包括:
22.获取各个后向光流值对应的第三像素点;
23.将所述第二图像中所述第三像素点之外的像素点标记为第二遮挡区域。
24.所述的视频插帧方法,其中,所述对所述第一遮挡区域对应的前向光流值进行修正包括:
25.获取与所述第一遮挡区域中第一目标像素点的距离小于第一预设值的至少一个预设尺寸的第一非遮挡区域;
26.获取各个第一非遮挡区域分别对应的像素值,将所述第一目标像素点的前向光流值修正为目标前向光流值,其中,所述目标前向光流值为与所述第一目标像素点的像素值最接近的第一非遮挡区域对应的前向光流值;
27.所述对所述第二遮挡区域内的各个像素点对应的后向光流值进行修正包括:
28.获取与所述第二遮挡区域中第二目标像素点的距离小于第二预设值的至少一个预设尺寸的第二非遮挡区域;
29.获取各个第二非遮挡区域分别对应的像素值,将所述第二目标像素点的后向光流值修正为目标后向光流值,其中,所述目标后向光流值为与所述第二目标像素点的像素值最接近的第二非遮挡区域对应的后向光流值。
30.所述的视频插帧方法,其中,所述根据所述修正前向光流和所述修正后向光流生成用于插入至所述第一图像和所述第二图像之间的目标帧包括:
31.根据所述修正前向光流和所述第一图像生成第一中间帧,根据所述修正后向光流和所述第二图像生成第二中间帧;
32.根据所述第一中间帧和所述第二中间帧生成所述目标帧。
33.所述的视频插帧方法,其中,所述根据所述修正前向光流和所述第一图像生成第一中间帧包括:
34.根据所述修正前向光流获取所述第一图像到所述目标帧的第一中间光流;
35.根据第一预设公式以及所述第一中间光流获取第一中间帧上多个像素点对应的像素值,生成所述第一中间帧;
36.所述根据所述修正后向光流和所述第二图像生成第二中间帧包括:
37.根据所述修正后向光流获取所述第二图像到所述目标帧的第二中间光流;
38.根据第二预设公式以及所述第二中间光流获取第二中间帧上多个像素点对应的像素值,生成所述第二中间帧。
39.所述的视频插帧方法,其中,所述第一预设公式为:i0(m δm)=i
t1
(m δm f0→
t
(m))
40.其中,i0(m δm)为所述第一图像上坐标为m δm的点的像素值,i
t1
(m δm f0→
t
(m))为所述第一中间帧上坐标为m δm f0→
t
(m)的像素点的像素值,f0→
t
(m)为所述第一图像上坐标为m的像素点对应的第一中间光流值,m为整数,δm为使得δm f0→
t
(m)为整数的值,0≤δm<1;
41.所述第二预设公式为:i1(n δn)=i
t2
(n δn f1→
t
(n))
42.其中,i1(n δn)为所述第二图像上坐标为n δn的点的像素值,i
t2
(n δn f1→
t
(n))为所述第二中间帧上坐标为n δn f1→
t
(n)的像素点的像素值,f1→
t
(n)为所述第二图像上坐标为n的像素点对应的第二中间光流值,n为整数,δn为使得δn f1→
t
(n)为整数的值,0≤δn<1。
43.所述的视频插帧方法,其中,所述根据所述第一预设公式以及所述第一中间光流获取第一中间帧上各个像素点对应的像素值包括:
44.当所述第一图像中存在多个第一像素点对应的第一中间光流值指向所述第一中间帧上的同一个像素点时,获取所述多个第一像素点中不处于所述第一遮挡区域内的第三像素点,将所述第三像素点在所述第一中间帧上对应的像素点的像素值作为所述多个第一像素点在所述第一中间帧上对应的像素点的像素值;
45.所述根据所述第二预设公式以及所述第二中间光流获取第二中间帧上各个像素点对应的像素值包括:
46.当所述第二图像中存在多个第二像素点对应的第二中间光流值指向所述第二中间帧上的同一个像素点时,获取所述多个第二像素点中不处于所述第二遮挡区域内的第四像素点,将所述第四像素点在所述第二中间帧上对应的像素点的像素值作为所述多个像素点在所述第二中间帧上对应的像素点的像素值。
47.一种终端,其中,所述终端包括:处理器、与处理器通信连接的存储介质,所述存储介质适于存储多条指令,所述处理器适于调用所述存储介质中的指令,以执行实现上述任一项所述的视频插帧方法的步骤。
48.一种存储介质,其中,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一项所述的视频插帧方法的步骤。
49.有益效果:与现有技术相比,本发明提供了一种视频插帧方法、终端及存储介质,所述视频插帧方法对待插入目标帧的目标图像对,分别计算前向光流和后向光流,根据前向光流和后向光流获取图像中的遮挡区域,并根据图像中的遮挡区域对前向光流和后向光流进行修正,使用修正后的前向光流和后向光流来生成目标帧,由于在生成目标帧的过程中对于遮挡区域进行了单独的光流修正,能够提高存在遮挡情形下的插帧效果。
附图说明
50.图1为本发明提供的视频插帧方法的实施例的流程图;
51.图2为根据前向光流生成后向光流的一种实现方式的示意图;
52.图3为根据前向光流生成后向光流的另一种实现方式的示意图;
53.图4为遮挡情形的示意图;
54.图5为本发明提供的视频插帧方法与现有方法的插帧效果对比图;
55.图6为本发明提供的终端的实施例的结构原理图。
具体实施方式
56.为使本发明的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
57.本发明提供的一种视频插帧方法,是可以应用在终端中,终端可以但不限于是各种个人计算机、笔记本电脑、手机、平板电脑、车载电脑和便携式可穿戴设备。所述终端在获取到待插入目标帧的目标图像对时,可以通过本发明提供的视频插帧方法生成目标帧。
58.实施例一
59.请参照图1,图1为本发明提供的视频插帧方法的实施例一的流程图。
60.所述视频插帧方法包括步骤:
61.s100、获取目标图像对对应的前向光流,根据所述前向光流获取所述目标图像对对应的后向光流。
62.视频插帧是在视频的帧与帧之前插入额外帧,也就是说,是根据两张帧图像生成时间序列在所述两张帧图像之间的一帧新图像,即,需要根据一个图像对来生成一张新的帧图像,在本实施例中,在获取需要插入目标帧的目标图像对后,是先获取所述目标图像对的前向光流,具体地,所述目标图像对中包括两张图像:第一图像和第二图像,所述前向光流为所述第一图像到所述第二图像的光流,所述后向光流为所述第二图像到所述第一图像的光流,也就是说,所述前向光流反映了所述第一图像中的各个点在第一图像到第二图像的时间段里产生的位移,所述后向光流反映了所述第二图像中过的各个点在所述第二图像到所述第一图像的时间段里产生的位移。例如,所述第一图像中坐标为x的像素点对应的前向光流值为f0→1(x),那么,这个点在经过一段从所述第一图像到所述第二图像的时间的运动后,在第二图像上的坐标为x f0→1(x),不难看出,在所述第二图像上的坐标为x f0→1(x)的点在经过从所述第二图像到所述第一图像的时间的运动后,在第一图像上的坐标为x,即,所述第二图像中坐标为x f0→1(x)的点的后向光流值f1→0(x f0→1(x))=-f0→1(x)。
63.在实际应用中,在获取所述后向光流时,需要知道的是整数坐标位置的光流值,而所述前向光流中包括的是所述第一图像中各个整数坐标位置处的前向光流值,且所述前向光流中包括的各个前向光流值基本上为浮点数,也就是说,x为整数,x f0→1(x)往往不是整数,因此,不能直接根据公式f1→0(x f0→1(x))=-f0→1(x)获取到所述后向光流。
64.在一种可能的实现方式中,如图2所示,直接将所述第二图像(图中i0为所述第一图像,i1为所述第二图像)中坐标为x的像素点的后向光流值设置为-f0→1(x),即f1→0(x)=-f0→1(x),那么,根据公式f1→0(x f0→1(x))=-f0→1(x),可以得出f1→0(x f0→1(x))=-f0→1(x)=
f1→0(x),即,采用这种方式获取所述后向光流值时,包含了默认条件:x f0→1(x)=x,当物体在所述第一图像和所述第二图像之间的相对运动比较小时,f0→1(x)也较小,这种方式导致的误差也不大,但是,在运动比较大时,这种方式导致的误差就会随之增大,造成插帧效果明显异常。
65.在另一种可能的实现方式中,所述根据所述前向光流获取所述目标图像对对应的后向光流包括:
66.s110、获取所述第一图像中各个像素点分别对应的各个第一前向光流值。
67.前面已经说明,所述前向光流中包括所述第一图像中坐标为整数的点的前向光流值,而在本领域中,图像是由像素点组成的,图像中的像素点的坐标均为整数,因此,在获取到所述前向光流后,可以获取到所述第一图像中各个像素点分别对应的各个第一前向光流值。
68.s120、对所述各个第一前向光流值向上取整,获取所述第一图像中各个像素点分别对应的各个整数中间光流值。
69.正如前面所说明的,所述前向光流中的各个前向光流值为浮点数,在获取到所述各个第一前向光流值之后,对所述各个第一前向光流值进行向上取整,也就是说,对于每一个前向光流值,是获取大于所述前向光流值且与所述前向光流值最接近的整数作为所述整数中间光流值。
70.s130、根据所述第一图像中各个像素点的坐标、所述各个第一前向光流值以及所述各个整数中间光流值获取所述第二图像中多个像素点的后向光流值。
71.具体地,如图3所示,在s130中,是根据公式来获取所述第二图像中多个像素点的后向光流值,其中,为所述第二图像中坐标为的像素点的后向光流值,x为所述第一图像中的像素点的坐标,f0→1(x)为所述第一图像中坐标为x的像素点的第一前向光流值,为所述第一图像中坐标为x的像素点对应的整数中间光流值。不难看出,由于所述第一图像中各个像素点的坐标为整数,即,x为整数,那么,为整数,就能够获得所述第二图像中多个整数坐标点(即多个像素点)的后向光流值。不难看出,在采用这种方式获取所述后向光流时,包含了默认条件:相当于用所述第二图像中坐标为的点在1个像素点范围内的浮点坐标x f0→1(x)处的后向光流值作为处的后向光流值。这样,将所述后向光流值的误差控制在一个像素点内,提高插帧效果。
72.请参照图1,在获取到所述前向光流和所述后向光流之后,所述视频插帧方法还包括:
73.s200、根据所述前向光流获取所述第一图像中的第一遮挡区域,根据所述后向光流获取所述第二图像中的第二遮挡区域。
74.所述第一图像和所述第二图像中的物体可能存在遮挡的情形,在本实施例中,将在所述第一图像中可见,而在所述第二图像中被遮挡的区域称为所述第一图像中的第一遮挡区域,将在所述第一图像中被遮挡,而在所述第二图像中可见的区域称为所述第二图像
中的第二遮挡区域。遮挡区域的像素点的前向光流值和后向光流值往往是不准确的,因此,在本实施例中,还获取所述第一遮挡区域和所述第二遮挡区域,分别根据所述第一遮挡区域和所述第二遮挡区域对所述前向光流和所述后向光流进行修正。
75.具体地,所述根据所述前向光流获取所述第一图像中的第一遮挡区域包括:
76.s211、从所述第一图像中的各个像素点中提取至少一个像素点集合,所述像素点集合中包括至少两个像素点,所述像素点集合中前向光流值指向所述第二图像中的同一点的各个像素点。
77.如果所述第一图像中存在两个或以上的像素点的前向光流值指向所述第二图像中的同一点,那么这些前向光流值指向同一点的像素点中的部分像素点在一段时间的运动后,在所述第二图像中被遮挡了,如图4所示,图像i0上坐标分别为x和y的像素点的前向光流值都指向图像i1上的z点,即x f0→1(x)=y f0→1(y),那么x和y中有像素点在图像i1上被遮挡了。
78.在本实施例中,获取所述第一图像中各个像素点中前向光流值指向所述第二图像中的同一点的像素点的像素点集合,也就是说,每个像素点集合中包括的各个像素点的前向光流值指向所述第二图像中的同一点。
79.s212、获取所述像素点集合中各个像素点分别对应的各个像素值以及所述像素点集合中各个像素点的前向光流值在所述第二图像中指向的点的第二像素值,将所述像素点集合中像素值与所述第二像素值最接近的像素点之外的像素点标记为第一遮挡区域。
80.在获取到在所述第一图像中可见,在所述第二图像中可能被遮挡的像素点后,根据这些像素点的像素值和这些像素点的前向光流值指向的所述第二图像中的点的像素值来确定这些像素点中哪些被遮挡,具体地,是将所述像素点集合中各个像素点分别对应的各个像素值以及所述像素点集合中各个像素点的前向光流值在所述第二图像中指向的点的第二像素值,确定所述像素点集合中像素值与所述第二像素值最接近的像素点没有被遮挡,也就是说,所述像素点集合中像素值与所述第二像素值最接近的像素点的前向光流值是真实的,将所述像素点集合中其余的像素点标记为第一遮挡区域。具体地,所述像素点集合中各个像素点的前向光流值在所述第二图像中指向的点的坐标可能不是整数,也就是说,这个点不是像素点,那么可以通过双线性插值的方法求得该点的像素值作为所述第二像素值,或者是获取与这个点最接近的像素点的像素值作为所述第二像素值。所述像素点集合可能有多个,在获取所有的所述像素点集合中标记为第一遮挡区域的像素点,则获取到了在所述第一图像上的所述第一遮挡区域。例如,图4中的图像i0上坐标分别为x和y的像素点的前向光流值都指向图像i1上的z点,那么,获取坐标分别为x和y的像素点的像素值i0(x),i0(y)以及图像i1上的z点的像素值i1(z),如果i1(z)和i0(x)更接近,那么确定i0上坐标为y的像素点在图像i1上被遮挡了,标记i0上坐标为y的像素点为第一遮挡区域。
81.所述根据所述后向光流获取所述第二图像中的第二遮挡区域包括:
82.s221、获取各个后向光流值对应的第三像素点;
83.s222、将所述第二图像中所述第三像素点之外的像素点标记为第二遮挡区域。
84.所述第二图像中的所述第二遮挡区域是在所述第二图像中可见,在所述第一图像中被遮挡的区域,而在所述第一图像中被遮挡的区域在所述第一图像中是不存在对应的前向光流值的,也就是说,所述第二图像上的第二遮挡区域中的点不会被所述前向光流所指
向,因此,在根据所述前向光流获取所述后向光流时,当所述第二图像中存在所述第二遮挡区域时,根据所述前向光流获取到后向光流值的像素点是所述第二图像中的部分像素点,而不能获取到所述第二图像中所述第二遮挡区域中的点的后向光流值。在获取所述第二遮挡区域时,获取各个后向光流值对应的第三像素点,所述第三像素点在所述第一图像中也是可见的,而所述第三像素点之外的像素点在所述第一图像中被遮挡,将所述第二图像中所述第三像素点之外的像素点标记为所述第二遮挡区域。
85.所述视频插帧方法还包括:
86.s300、对所述第一遮挡区域内对应的前向光流值进行修正,生成修正前向光流,对所述第二遮挡区域对应的后向光流值进行修正,生成修正后向光流。
87.根据前面的说明,由于所述第一图像中的所述第一遮挡区域内的像素点在所述第二图像中被遮挡,那么,无法获取所述第一遮挡区域内的像素点的真实的前向光流值,同样地,由于所述第二图像中的所述第二遮挡区域内的像素点在所述第一图像中被遮挡,所述后向光流中不存在所述第二遮挡区域的像素点的后向光流值,因此,在本发明提供的视频插帧方法中,还对所述前向光流和所述后向光流进行修正。
88.具体地,所述对所述第一遮挡区域对应的前向光流值进行修正包括:
89.s311、获取与所述第一遮挡区域中第一目标像素点的距离小于第一预设值的至少一个预设尺寸的第一非遮挡区域。
90.由于物体在所述第一图像和所述第二图像之间的运动为刚性运动,那么同一个语义物体具有相同的运动,即同一个语义物体前向光流基本一样,而同一个语义物体一般具有相似的像素值,因此,在本实施例中,对于所述第一遮挡区域中的每个第一目标像素点,是获取所述所述第一目标像素点周围的至少一个第一非遮挡区域,根据各个第一非遮挡区域的像素值来确定各个第一非遮挡区域中哪个区域与所述第一目标像素点属于同一个语义物体。具体地,是获取与所述第一目标像素点距离小于所述第一预设值的预设尺寸的第一非遮挡区域,所述第一非遮挡区域可以是不在所述第一遮挡区域内的单个像素点,即所述第一非遮挡区域的预设尺寸为1*1,获取与所述第一目标像素点距离小于所述第一预设值的预设尺寸的第一非遮挡区域即为获取与所述第一目标像素点最接近的不在所述第一遮挡区域内的像素点;所述第一非遮挡区域还可以是不在所述第一遮挡区域内的多个像素点组成的区域,所述预设尺寸可以为3*3,或者5*3等等,此时第一非遮挡区域与所述第一目标像素点的距离是第一非遮挡区域的中心像素点与所述第一目标像素点的距离,也就是说,获取以与所述第一目标像素点距离小于所述第一预设值的像素点为中心的预设尺寸的非遮挡区域。所述第一预设值可以是两个像素点、五个像素点等,不难看出,在这种情况下,所述第一非遮挡区域可以有多个。在一种可能的实现方式中,所述第一预设值可以是根据所述第一图像中各个预设尺寸的非遮挡区域与所述第一目标像素点的距离中的最小值来确定,具体地,是可以直接获取与所述第一目标像素点的距离最小的预设尺寸的非遮挡区域作为所述第一非遮挡区域,值得说明的是,在这种情况下,也可能存在多个第一非遮挡区域,也就是说,存在多个预设尺寸的非遮挡区域的距离与所述第一目标像素点的距离最小且相等,这和计算距离时选取的精度有关。
91.s312、获取各个第一非遮挡区域分别对应的像素值,将所述第一目标像素点的前向光流值修正为目标前向光流值,其中,所述目标前向光流值为与所述第一目标像素点的
像素值最接近的第一非遮挡区域对应的前向光流值。
92.在获取到各个第一非遮挡区域后,获取所述各个第一非遮挡区域分别对应的像素值,具体地,所述第一非遮挡区域对应的像素值可以是所述第一非遮挡区域内包含的所有像素点的平均像素值、所述第一非遮挡区域内的中心像素点的像素值、或者是所述第一非遮挡区域内与所述第一目标像素点最接近的像素点的像素值等。将各个第一非遮挡区域对应的像素值与所述第一目标像素点的像素值进行比较,获取像素值与所述第一目标像素点的像素值最接近的第一非遮挡区域,将所述第一目标像素点的前向光流值修正为该第一非遮挡区域对应的前向光流值(即所述目标前向光流值)。具体地,所述第一非遮挡区域对应的前向光流值可以是所述第一非遮挡区域内包含的所有像素点的平均前向光流值,所述第一非遮挡区域内的中心像素点的前向光流值、或者是所述第一非遮挡区域内与所述第一目标像素点最接近的像素点的前向光流值等。
93.所述第一目标像素点为所述第一遮挡区域内的各个像素点,在对所述第一遮挡区域内各个像素点的前向光流值进行修正后,生成所述修正前向光流。
94.所述对所述第二遮挡区域对应的后向光流值进行修正包括:
95.s321、获取与所述第二遮挡区域中第二目标像素点的距离小于第二预设值的至少一个预设尺寸的第二非遮挡区域。
96.与所述第一遮挡区域类似,在本实施例中,对于所述第二遮挡区域中的每个第二目标像素点,是获取所述所述第二目标像素点周围的至少一个第二非遮挡区域,根据各个第二非遮挡区域的像素值来确定各个第二非遮挡区域中哪个区域与所述第二目标像素点属于同一个语义物体。具体地,是获取与所述第二目标像素点距离小于第二预设值的预设尺寸的第二非遮挡区域,所述第二非遮挡区域可以是不在所述第二遮挡区域内的单个像素点,即所述第二非遮挡区域的预设尺寸为1*1,获取与所述第二目标像素点距离小于所述第二预设值的预设尺寸的第二非遮挡区域即为获取与所述第二目标像素点最接近的不在所述第二遮挡区域内的像素点;所述第二非遮挡区域还可以是不在所述第二遮挡区域内的多个像素点组成的区域,所述预设尺寸可以为3*3,或者5*3等等,此时第二非遮挡区域与所述第二目标像素点的距离是第二非遮挡区域的中心像素点与所述第二目标像素点的距离,也就是说,获取以与所述第二目标像素点距离小于所述第二预设值的像素点为中心的预设尺寸的非遮挡区域。所述第二预设值可以与所述第一预设值相等,也可以不同,所述第二预设值可以是两个像素点、五个像素点等,不难看出,在这种情况下,所述第二非遮挡区域可以有多个。在一种可能的实现方式中,所述第二预设值可以是根据所述第二图像中各个预设尺寸的非遮挡区域与所述第二目标像素点的距离中的最小值来确定,具体地,是可以直接获取与所述第二目标像素点的距离最小的预设尺寸的非遮挡区域作为所述第二非遮挡区域,值得说明的是,在这种情况下,也可能存在多个第二非遮挡区域,也就是说,存在多个预设尺寸的非遮挡区域的距离与所述第二目标像素点的距离最小且相等,这和计算距离时选取的精度有关。
97.s322、获取所述各个第二非遮挡区域分别对应的像素值,将所述第二目标像素点的后向光流值修正为目标后向光流值,其中,所述目标后向光流值为与所述第二目标像素点的像素值最接近的第二非遮挡区域对应的后向光流值。
98.在获取到各个第二非遮挡区域后,获取所述各个第二非遮挡区域分别对应的像素
值,具体地,所述第二非遮挡区域对应的像素值可以是所述第二非遮挡区域内包含的所有像素点的平均像素值、所述第二非遮挡区域内的中心像素点的像素值、或者是所述第二非遮挡区域内与所述第二目标像素点最接近的像素点的像素值等。将各个第二非遮挡区域对应的像素值与所述第二目标像素点的像素值进行比较,获取像素值与所述第二目标像素点的像素值最接近的第二非遮挡区域,将所述第二目标像素点的后向光流值修正为该第二非遮挡区域对应的后向光流值(即所述目标后向光流值)。具体地,所述第二非遮挡区域对应的后向光流值可以是所述第二非遮挡区域内包含的所有像素点的平均后向光流值,所述第二非遮挡区域内的中心像素点的后向光流值、或者是所述第二非遮挡区域内与所述第二目标像素点最接近的像素点的后向光流值等。
99.所述第二目标像素点为所述第二遮挡区域内的各个像素点,在对所述第二遮挡区域内各个像素点的后向光流值进行修正后,生成所述修正后向光流。
100.获取所述修正前向光流和所述修正后向光流后,所述视频插帧方法还包括:
101.s400、根据所述修正前向光流和所述修正后向光流生成用于插入至所述第一图像和所述第二图像之间的目标帧。
102.所述根据所述修正前向光流和所述修正后向光流生成用于插入至所述第一图像和所述第二图像之间的目标帧包括:
103.根据所述修正前向光流和所述第一图像生成第一中间帧,根据所述修正后向光流和所述第二图像生成第二中间帧;
104.根据所述第一中间帧和所述第二中间帧生成所述目标帧。
105.所述目标帧是时间顺序上在所述第一图像和所述第二图像之间的一帧图像,那么根据所述目标帧与所述第一图像的时间间隔,可以获取到所述第一图像到所述目标帧的光流以及所述第二图像到所述目标帧的光流,而由于所述第一图像和所述第二图像中的物体是运动的,那么,所述目标帧上可能存在部分像素点在所述中间帧上可见,而在所述第一图像上被遮挡,那么,此时根据所述第一图像到所述目标帧的光流是无法求出这部分像素点的像素值,但是,这部分像素点很大概率在所述第二图像上是可见的,因此,可以根据所述第二图像到所述目标帧的光流来求得这部分像素点的像素值;也可能存在部分像素点在所述中间帧上可见,而在所述第二图像上被遮挡,那么,根据所述第二图像到所述中间帧的光流是无法求出这部分像素点的像素值,但是,同样地,这部分像素点很大概率在所述第一图像上可见,因此,可以根据所述第一图像到所述目标帧的光流来求得这部分像素点的像素值。因此,可以根据所述所述第一图像到所述目标帧的光流来获取所述第一中间帧,根据所述第二图像到所述目标帧的光流来获取所述第二中间帧,并将二者进行融合,即使用所述第二中间帧去补所述第一中间帧中缺失的像素点的像素值,或使用所述第一中间帧去补所述第二中间帧中缺失的像素点的像素值,进而生成完整的所述目标帧。
106.具体地,所述根据所述修正前向光流和所述第一图像生成第一中间帧包括:
107.s411、根据所述修正前向光流获取所述第一图像到所述目标帧的第一中间光流。
108.具体地,在确定了所述目标帧距所述第一图像和所述第二图像的时间后,就可以根据所述修正前向光流获取所述第一图像到所述目标帧的第一中间光流,此为现有技术,在此不再赘述。
109.s412、根据第一预设公式以及所述第一中间光流获取第一中间帧上多个像素点对
应的像素值,生成所述第一中间帧。
110.所述第一图像上坐标为m的像素点对应的第一中间光流值反映了所述第一图像上坐标为m的像素点在所述第一图像和所述第一中间帧之间的位移,记所述第一图像上坐标为m的像素点的第一中间光流值为f0→
t
(m),也就是说,所述第一图像上坐标为m的像素点在所述第一中间帧上的坐标为m f0→
t
(m),也就是说,所述第一中间帧上坐标为m f0→
t
(m)的像素点的像素值等于所述所述第一图像上坐标为m的像素点的像素值,用公式可以记为:i0(m)=i
t1
(m f0→
t
(m)),其中,i0(m)为所述第一图像上坐标为m的像素点的像素值,i
t1
(m f0→
t
(m))为所述第一中间帧上坐标为m f0→
t
(m)的像素点的像素值,f0→
t
(m)为所述第一图像上坐标为m的像素点的第一中间光流值。
111.正如前面所说明的,光流值为浮点数,往往不是整数,也就是说,m f0→
t
(m)往往不是整数,而在生成所述第一中间帧时,需要获取所述第一中间帧上各个坐标为整数的像素点的像素值。在本实施例中,通过第一预设公式来获取所述第一中间帧上多个像素点的像素值,所述第一预设公式为:i0(m δm)=i
t1
(m δm f0→
t
(m))
112.其中,i0(m δm)为所述第一图像上坐标为m δm的点的像素值,i
t1
(m δm f0→
t
(m))为所述第一中间帧上坐标为m δm f0→
t
(m)的像素点的像素值,f0→
t
(m)为所述第一图像上坐标为m的像素点对应的第一中间光流值,m为整数,δm为使得δm f0→
t
(m)为整数的值,0≤δm<1。这样,可以求得所述第一中间帧上多个整数坐标点的像素值,其中所述第一图像上坐标为m δm的点的像素值可以通过双线性插值的方式获取。
113.正如前面所说明的,在所述第一中间帧上可能存在部分像素点在所述第一中间帧上可见,而在所述第一图像上被遮挡,那么,这些像素点不会被第一中间光流所指向,也就是说,无法根据所述第一图像和所述第一中间光流求出这些像素点的像素值,也就是说,所述第一中间帧中缺失了部分像素点的像素值。在本实施例中,是根据所述修正后向光流和所述第二图像生成第二中间帧,使用所述第二中间帧获取这些像素点的像素值。
114.所述根据所述修正后向光流和所述第二图像生成第二中间帧包括:
115.s421、根据所述修正后向光流获取所述第二图像到所述目标帧的第二中间光流。
116.在确定了所述目标帧距所述第一图像和所述第二图像的时间后,就可以根据所述修正后向光流获取所述第二图像到所述目标帧的第二中间光流,此为现有技术,在此不再赘述。
117.s422、根据第二预设公式以及所述第二中间光流获取第二中间帧上多个像素点对应的像素值,生成所述第二中间帧。
118.与所述第一中间帧类似,所述第二图像上坐标为n的像素点对应的第二中间光流值反映了所述第二图像上坐标为n的像素点在所述第二图像和所述第二中间帧之间的位移,记所述第二图像上坐标为n的像素点的第二中间光流值为f1→
t
(n),也就是说,所述第二图像上坐标为n的像素点在所述第二中间帧上的坐标为n f1→
t
(n),也就是说,所述第二中间帧上坐标为n f1→
t
(n)的像素点的像素值等于所述所述第二图像上坐标为n的像素点的像素值,用公式可以记为:i1(n)=i
t2
(n f1→
t
(n)),其中,i1(n)为所述第二图像上坐标为n的像素点的像素值,i
t2
(n f1→
t
(n))为所述第二中间帧上坐标为n f1→
t
(n)的像素点的像素值,f1→
t
(n)为所述第二图像上坐标为n的像素点的第二中间光流值。
119.正如前面所说明的,光流值为浮点数,往往不是整数,也就是说,n f1→
t
(n)往往不
是整数,而在生成所述第二中间帧时,需要获取所述第二中间帧上各个坐标为整数的像素点的像素值。在本实施例中,通过第二预设公式来获取所述第二中间帧上多个像素点的像素值,所述第二预设公式为:i1(n δn)=i
t2
(n δn f1→
t
(n))
120.其中,i1(n δn)为所述第二图像上坐标为n δn的点的像素值,i
t2
(n δn f1→
t
(n))为所述第二中间帧上坐标为n δn f1→
t
(n)的像素点的像素值,f1→
t
(n)为所述第二图像上坐标为n的像素点对应的第二中间光流值,n为整数,δn为使得δn f1→
t
(n)为整数的值,0≤δn<1。这样,可以求得所述第二中间帧上多个整数坐标点的像素值,其中所述第二图像上坐标为n δn的点的像素值可以通过双线性插值的方式获取。
121.在实际应用中还可能出现所述第一图像上的像素点在所述第一中间帧上被遮挡,所述第二图像上的像素点在所述第二中间帧上被遮挡的情况,因此,在本实施例中,所述根据所述第一预设公式以及所述第一中间光流获取第一中间帧上各个像素点对应的像素值包括:
122.s4121、当所述第一图像中存在多个第一像素点对应的第一中间光流值指向所述第一中间帧上的同一个像素点时,获取所述多个第一像素点中不处于所述第一遮挡区域内的第三像素点,将所述第三像素点在所述第一中间帧上对应的像素点的像素值作为所述多个第一像素点在所述第一中间帧上对应的像素点的像素值。
123.当所述第一图像中存在多个第一像素点对应的第一中间光流值指向所述第一中间帧上的同一个像素点时,说明所述多个第一像素点中包括在所述第一图像上可见,在所述第一中间帧上被遮挡的像素点,而所述第一遮挡区域是在所述第一图像上可见,在所述第二图像上被遮挡的区域,在本实施例中在所述多个第一像素点中,确定属于所述第一遮挡区域内的第一像素点是在所述第一中间帧上被遮挡的点。获取所述多个第一像素点中不处于所述第一遮挡区域内的第三像素点,将所述第三像素点在所述第一中间帧上对应的像素点的像素值作为所述多个第一像素点在所述第一中间帧上对应的像素点的像素值。
124.所述根据所述第二预设公式以及所述第二中间光流获取第二中间帧上各个像素点对应的像素值包括:
125.s4221、当所述第二图像中存在多个第二像素点对应的第二中间光流值指向所述第二中间帧上的同一个像素点时,获取所述多个第二像素点中不处于所述第二遮挡区域内的第四像素点,将所述第四像素点在所述第二中间帧上对应的像素点的像素值作为所述多个像素点在所述第二中间帧上对应的像素点的像素值。
126.当所述第二图像中存在多个第二像素点对应的第二中间光流值指向所述第二中间帧上的同一个像素点时,说明所述多个第二像素点中包括在所述第二图像上可见,在所述第二中间帧上被遮挡的像素点,而所述第二遮挡区域是在所述第二图像上可见,在所述第一图像上被遮挡的区域,在本实施例中,在所述多个第二像素点中,确定属于所述第二遮挡区域内的第二像素点是在所述第二中间帧上被遮挡的点。获取所述多个第二像素点中不处于所述第二遮挡区域内的第四像素点,将所述第四像素点在所述第二中间帧上对应的像素点的像素值作为所述多个第二像素点在所述第二中间帧上对应的像素点的像素值。
127.从上面的说明不难看出,所述第一中间帧中包含了根据所述第一图像和所述前向修正光流获得的所述目标帧上的部分像素点的像素值,所述第二中间帧中包含了根据所述第二图像和所述后向修正光流获得的所述目标帧上的部分像素点的像素值,将所述第一中
间帧和所述第二中间帧进行融合,可以获取到所述目标帧上所有像素点的像素值,进而生成所述目标帧,而正如前面所提到的,可以是保留所述第一中间帧中的所有像素点的像素值,对于所述第一中间帧中缺失的像素点的像素值,获取所述第二中间帧中相应的像素点的像素值进行补充,也可以是保留所述第二中间帧上的所有像素点的像素值,对于所述第二中间帧中缺失的像素点的像素值,获取所述第一中间帧中相应的像素点的像素值进行补充,而由于所述后向光流是根据所述前向光流求得的,因此,所述修正前向光流比所述后向修正后向光流的准确性更高,即,所述第一中间帧比所述第二中间帧的准确性更高,因此,在本实施例中,是优先保留所述第一中间帧中的像素点的像素值,对于所述第一中间帧上无法获取到像素值的像素点,使用所述第二中间帧中相应坐标的像素点的像素值进行补充。
128.如图5所示,图5为本实施例提供的视频插帧方法与现有方法的插帧效果对比图,图5中第一行为待插入目标帧的图像对中的第一图像,第四行为待插入目标帧的图像对中的第二图像,第二行为现有方法中生成的目标帧,第三行为本实施例提供的视频插帧方法生成的目标帧,从图5中不难看出,相对于现有方法,本实施例提供的视频插帧方法生成的目标帧没有前景重影和边缘黑影,效果更好。
129.综上所述,本实施例提供一种视频插帧方法,对待插入目标帧的目标图像对,分别计算前向光流和后向光流,根据前向光流和后向光流获取图像中的遮挡区域,并根据图像中的遮挡区域对前向光流和后向光流进行修正,使用修正后的前向光流和后向光流来生成目标帧,由于在生成目标帧的过程中对于遮挡区域进行了单独的光流修正,能够提高存在遮挡情形下的插帧效果。
130.应该理解的是,虽然本发明说明书附图中给出的的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
131.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
132.实施例二
133.基于上述实施例,本发明还提供了一种终端,其原理框图可以如图6所示。该终端
包括通过系统总线连接的处理器、存储器、网络接口、显示屏、温度传感器。其中,该终端的处理器用于提供计算和控制能力。该终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种视频插帧方法。该终端的显示屏可以是液晶显示屏或者电子墨水显示屏,该终端的温度传感器是预先在终端内部设置,用于检测内部设备的当前运行温度。
134.本领域技术人员可以理解,图6中示出的原理框图,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
135.在一个实施例中,提供了一种终端,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时至少可以实现以下步骤:
136.获取目标图像对对应的前向光流,根据所述前向光流获取所述目标图像对对应的后向光流,其中,所述前向光流为所述目标图像对中第一图像到第二图像的光流,所述后向光流为所述第二图像到所述第一图像的光流;
137.根据所述前向光流获取所述第一图像中的第一遮挡区域,根据所述后向光流获取所述第二图像中的第二遮挡区域;
138.对所述第一遮挡区域对应的前向光流值进行修正,生成修正前向光流,对所述第二遮挡区域对应的后向光流值进行修正,生成修正后向光流;
139.根据所述修正前向光流和所述修正后向光流生成用于插入至所述第一图像和所述第二图像之间的目标帧。
140.其中,所述根据所述前向光流获取所述目标图像对对应的后向光流包括:
141.获取所述第一图像中各个像素点分别对应的各个第一前向光流值;
142.对所述各个第一前向光流值向上取整,获取所述第一图像中各个像素点分别对应的各个整数中间光流值;
143.根据所述第一图像中各个像素点的坐标、所述各个第一前向光流值以及所述各个整数中间光流值获取所述第二图像中多个像素点的后向光流值。
144.其中,所述根据所述第一图像中各个像素点的坐标、所述各个第一前向光流值以及所述各个整数中间光流值获取所述第二图像中多个像素点的后向光流值包括:
145.根据公式获取所述第二图像中多个像素点的后向光流值;
146.其中,为所述第二图像中坐标为的像素点的后向光流值,x为所述第一图像中的像素点的坐标,f0→1(x)为所述第一图像中坐标为x的像素点的第一前向光流值,为所述第一图像中坐标为x的像素点对应的整数中间光流值。
147.其中,所述根据所述前向光流获取所述第一图像的第一遮挡区域包括:
148.从所述第一图像中的各个像素点中提取至少一个像素点集合,所述像素点集合中包括至少两个像素点,所述像素点集合中包括前向光流值指向所述第二图像中的同一点的各个像素点;
149.获取所述像素点集合中各个像素点分别对应的各个像素值以及所述像素点集合中各个像素点的前向光流值在所述第二图像中指向的点的第二像素值,将所述像素点集合中像素值与所述第二像素值最接近的像素点之外的像素点标记为第一遮挡区域。
150.其中,所述根据所述后向光流获取所述第二图像的第二遮挡区域包括:
151.获取各个后向光流值对应的第三像素点;
152.将所述第二图像中所述第三像素点之外的像素点标记为第二遮挡区域。
153.其中,所述对所述第一遮挡区域对应的前向光流值进行修正包括:
154.获取与所述第一遮挡区域中第一目标像素点的距离小于第一预设值的至少一个预设尺寸的第一非遮挡区域;
155.获取各个第一非遮挡区域分别对应的像素值,将所述第一目标像素点的前向光流值修正为目标前向光流值,其中,所述目标前向光流值为与所述第一目标像素点的像素值最接近的第一非遮挡区域对应的前向光流值;
156.所述对所述第二遮挡区域对应的后向光流值进行修正包括:
157.获取与所述第二遮挡区域中第二目标像素点的距离小于第二预设值的至少一个预设尺寸的第二非遮挡区域;
158.获取各个第二非遮挡区域分别对应的像素值,将所述第二目标像素点的后向光流值修正为目标后向光流值,其中,所述目标后向光流值为与所述第二目标像素点的像素值最接近的第二非遮挡区域对应的后向光流值。
159.其中,所述根据所述修正前向光流和所述修正后向光流生成用于插入至所述第一图像和所述第二图像之间的目标帧包括:
160.根据所述修正前向光流和所述第一图像生成第一中间帧,根据所述修正后向光流和所述第二图像生成第二中间帧;
161.根据所述第一中间帧和所述第二中间帧生成所述目标帧。
162.其中,所述根据所述修正前向光流和所述第一图像生成第一中间帧包括:
163.根据所述修正前向光流获取所述第一图像到所述目标帧的第一中间光流;
164.根据第一预设公式以及所述第一中间光流获取第一中间帧上多个像素点对应的像素值,生成所述第一中间帧;
165.所述根据所述修正后向光流和所述第二图像生成第二中间帧包括:
166.根据所述修正后向光流获取所述第二图像到所述目标帧的第二中间光流;
167.根据第二预设公式以及所述第二中间光流获取第二中间帧上多个像素点对应的像素值,生成所述第二中间帧。
168.其中,所述第一预设公式为:i0(m δm)=i
t1
(m δm f0→
t
(m))
169.其中,i0(m δm)为所述第一图像上坐标为m δm的点的像素值,i
t1
(m δm f0→
t
(m))为所述第一中间帧上坐标为m δm f0→
t
(m)的像素点的像素值,f0→
t
(m)为所述第一图像上坐标为m的像素点对应的第一中间光流值,m为整数,δm为使得δm f0→
t
(m)为整数的值,0≤δm<1;
170.所述第二预设公式为:i1(n δn)=i
t2
(n δn f1→
t
(n))
171.其中,i1(n δn)为所述第二图像上坐标为n δn的点的像素值,i
t2
(n δn f1→
t
(n))为所述第二中间帧上坐标为n δn f1→
t
(n)的像素点的像素值,f1→
t
(n)为所述第二图
像上坐标为n的像素点对应的第二中间光流值,n为整数,δn为使得δn f1→
t
(n)为整数的值,0≤δn<1。
172.其中,所述根据所述第一预设公式以及所述第一中间光流获取第一中间帧上各个像素点对应的像素值包括:
173.当所述第一图像中存在多个第一像素点对应的第一中间光流值指向所述第一中间帧上的同一个像素点时,获取所述多个第一像素点中不处于所述第一遮挡区域内的第三像素点,将所述第三像素点在所述第一中间帧上对应的像素点的像素值作为所述多个第一像素点在所述第一中间帧上对应的像素点的像素值;
174.所述根据所述第二预设公式以及所述第二中间光流获取第二中间帧上各个像素点对应的像素值包括:
175.当所述第二图像中存在多个第二像素点对应的第二中间光流值指向所述第二中间帧上的同一个像素点时,获取所述多个第二像素点中不处于所述第二遮挡区域内的第四像素点,将所述第四像素点在所述第二中间帧上对应的像素点的像素值作为所述多个像素点在所述第二中间帧上对应的像素点的像素值。
176.实施例三
177.本发明还提供了一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例所述的视频插帧方法的步骤。
178.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献