视频生成方法、装置、设备和介质与流程
未命名
07-15
阅读:88
评论:0
1.本公开涉及人工智能技术领域,具体为计算机视觉、深度学习等技术领域,可应用于aigc等场景。具体涉及一种视频生成方法、装置、设备和介质。
背景技术:
2.aigc即自动化内容生成,是目前新兴并且飞速发展的一项新的人工智能领域,受到了广泛和强烈的关注。随着5g大带宽网络时代的到来,人们对更具有视觉表现力的数字内容越来越渴望。传统数字内容的生成效率已成为新时代的瓶颈。作为下一个探索热点,aigc激发了大量行业需求,也让我们看到了人工智能技术新的引爆点。
3.由于大多数已有的视频素材都是4:3或者16:9的横屏视频,因此通过aigc重新合成的视频也都是横屏的,这对于手机等移动端播放的用户体验不是很好,而通过视频横转竖技术可以对已有的aigc生产的视频进行直接处理,使其快速转换成指定长宽比的竖屏视频,方便在手机等移动端的播放。
技术实现要素:
4.本公开提供了一种视频生成方法、装置、设备和介质。
5.根据本公开的一方面,提供了一种视频生成方法,包括:
6.通过目标检测获取原视频的目标检测框集合;
7.对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在所述原视频中的目标追踪框集合,其中,所述各目标的目标追踪框集合用于表示各目标在所述原视频的时序上空间位置的动态变化信息;
8.根据所述目标追踪框集合获取所述原视频中每个原视频帧的选定目标追踪框,并根据所述选定目标追踪框确定所述每个原视频帧的裁剪框;
9.根据所述裁剪框对所述每个原视频帧进行裁剪,根据经所述裁剪得到的帧序列生成目标视频。
10.根据本公开的另一方面,提供了一种视频生成装置,包括:
11.目标检测模块,用于通过目标检测获取原视频的目标检测框集合;
12.追踪模块,用于对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在所述原视频中的目标追踪框集合,其中,所述各目标的目标追踪框集合用于表示各目标在所述原视频的时序上空间位置的动态变化信息;
13.裁剪框确定模块,用于根据所述目标追踪框集合获取所述原视频中每个原视频帧的选定目标追踪框,并根据所述选定目标追踪框确定所述每个原视频帧的裁剪框;
14.视频生成模块,用于根据所述裁剪框对所述每个原视频帧进行裁剪,根据经所述裁剪得到的帧序列生成目标视频。
15.根据本公开的另一方面,提供了一种电子设备,包括:
16.至少一个处理器;以及
17.与所述至少一个处理器通信连接的存储器;其中,
18.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开任意实施例所述的视频生成方法。
19.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行本公开任意实施例所述的视频生成方法。
20.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
21.附图用于更好地理解本方案,不构成对本公开的限定。其中:
22.图1是根据本公开实施例的一种视频生成方法的流程示意图;
23.图2是根据本公开实施例的视频生成方法中进行目标检测的流程示意图;
24.图3是根据本公开实施例的视频生成方法中对目标进行追踪的流程示意图;
25.图4是根据本公开实施例的目标追踪过程中获取目标追踪框的流程示意图;
26.图5是根据本公开实施例的视频生成方法中确定裁剪框的流程示意图;
27.图6是根据本公开实施例的另一种视频生成方法的流程示意图;
28.图7是根据本公开实施例的另一种视频生成方法的流程示意图;
29.图8是根据本公开实施例的一种视频生成装置的结构示意图;
30.图9是用来实现本公开实施例的视频生成方法的电子设备的框图。
具体实施方式
31.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
32.图1是根据本公开实施例的一种视频生成方法的流程示意图,本实施例可适用于将横屏视频转为竖屏视频,或者将竖屏视频转为横屏视频的情况,涉及人工智能技术领域,具体为计算机视觉、深度学习等技术领域,可应用于aigc等场景。该方法可由一种视频生成装置来执行,该装置采用软件和/或硬件的方式实现,优选是配置于电子设备中,例如智能终端、计算机设备或服务器等。如图1所示,该方法具体包括如下:
33.s101、通过目标检测获取原视频的目标检测框集合。
34.其中,原视频可以是横屏视频,也可以是竖屏视频,通过本公开实施例的视频生成方法,可以将横屏的原视频转为竖屏的目标视频,也可以将竖屏的原视频转为横评的目标视频。
35.在一种实施方式中,可以利用任一种现有技术中的目标检测算法对原视频中的原视频帧进行目标检测,获取目标检测框集合,例如yolo算法(一种典型的one-stage目标检测算法)。在另一种实施方式中,也可以利用显著性检测算法来获取目标检测框集合。当然,在又一种实施方式中,还可以结合目标检测算法和显著性检测算法来获取目标检测框集
合。通过目标检测,可以获取原视频中具有明确语义的目标检测框。
36.目标检测框集合中包括原视频帧中出现的目标及其检测框,该检测框的信息可以包括检测框的位置、目标的类别标签以及置信度。示例性的,检测框可以表示为{xmin,ymin,xmax,ymax,cls,s},其中,xmin和xmax表示检测框中心的x轴坐标的最小值和最大值,ymin和ymax表示y轴坐标的最小值和最大值,cls表示类别标签,s表示置信度。具体实现时,可以根据需求选择所需的具有特定类别标签和置信度的检测框作为目标检测框。例如,可以选择类别标签为人脸和人体的检测框,也可以基于检测框的数量选择置信度最高的设定数量的检测框,例如,可以选择置信度最高的5个人脸检测框和3个人体检测框。本公开实施例对如何筛选检测框不做任何限定。
37.s102、对目标检测框集合中出现的各目标进行追踪,获取各目标在原视频中的目标追踪框集合,其中,各目标的目标追踪框集合用于表示各目标在原视频的时序上空间位置的动态变化信息。
38.s103、根据目标追踪框集合获取原视频中每个原视频帧的选定目标追踪框,并根据选定目标追踪框确定每个原视频帧的裁剪框。
39.s104、根据裁剪框对每个原视频帧进行裁剪,根据经裁剪得到的帧序列生成目标视频。
40.例如,可以基于kcf(kernel correlation filter,核相关滤波算法)等目标追踪算法实现目标追踪。视频中的某个目标通常会出现在多个视频帧中,而通过追踪获取各目标在原视频中的目标追踪框集合,则可以通过目标追踪框集合中的各个目标追踪框来表示各目标在原视频的时序上空间位置的动态变化信息,也即能够获取到各目标在帧间的变化情况。
41.然后,根据目标追踪框集合获取原视频中每个原视频帧的选定目标追踪框,并根据选定目标追踪框确定每个原视频帧的裁剪框。其中,选定目标追踪框即为该原视频帧中的所有目标中最优目标的追踪框。最优目标的判断标准可以根据实际需求灵活定义,例如可以是指定的最优目标,还可以根据目标的类别、目标在各个视频帧中出现的次数、目标对应追踪框的位置和大小等因素综合定义,本公开实施例对定义最优目标的标准不做任何限定。在确定裁剪框之后,就可以根据裁剪框对每个原视频帧进行裁剪,根据经裁剪得到的帧序列生成目标视频。
42.在根据横屏视频生成对应的竖屏视频的应用中,由于需要对横屏视频进行裁剪,视频画面中的主体目标常常会受到影响,例如人物面部、肢体或是其他前景物体被部分截断等,十分影响视频的观感,因此需要在裁剪视频时考虑画面中的主体目标并智能裁剪,保证主体目标要么完整保留在画面中,要么完全被裁剪掉,不能允许部分截断的情况。本公开实施例中,通过目标检测可以获取到横屏视频中具有语义信息的主体目标,得到对应的目标检测框集合,然后通过追踪获取各目标在横屏视频中的目标追踪框集合,确定各目标在帧间的变化情况,接着从中获取选定目标追踪框,并依据选定目标追踪框确定裁剪框,最后根据裁剪框对视频帧进行裁剪,即可根据经裁剪得到的帧序列生成竖屏视频。一方面,可以确保最优的主要目标不被截断,另一方面,也可以精准地在不同帧之间进行动态裁剪,获取运动中的目标在不同帧的动态裁剪框。
43.可见,本公开实施例的技术方案中,通过目标追踪来获取目标在帧间的变化,从而
获取各类目标在时序上空间位置的动态变化情况,因此对于在视频中运动的目标能获取更为精确的动态裁剪框,降低运动目标被截断的可能,提升生成视频的整体质量。
44.图2是根据本公开实施例的视频生成方法中进行目标检测的流程示意图,本实施例在上述实施例的基础上,对s101中目标检测的具体操作进行进一步地优化。如图2所示,具体包括如下:
45.s201、按照第一间隔帧数从原视频的原视频帧中进行抽帧,获取第一视频帧集合,并将第一视频帧集合作为待检测视频帧集合。
46.s202、对待检测视频帧集合中的每个待检测视频帧进行目标检测,得到原视频的目标检测框集合。
47.其中,第一间隔帧数可以灵活设置,本公开实施例对此不作任何限定。例如,可以设置为6帧,也即从第一帧开始,每隔6帧进行抽帧。通过抽帧的方式获取待检测视频帧集合,并对每个待检测视频帧进行目标检测。这样,既可以确保检测到视频中出现的目标,也可以降低视频处理的帧数,提高视频生成的效率。
48.在一种实施方式中,可以结合目标检测算法和显著性检测算法获取原视频的目标检测框集合。也即,对待检测视频帧集合中的每个待检测视频帧进行目标检测,得到原视频的目标检测框集合,具体包括:
49.利用目标检测算法获取每个待检测视频帧的第一检测框集合;
50.如果存在第一检测框集合为空的任意目标待检测视频帧,则利用显著性检测算法获取目标待检测视频帧的第二检测框集合;
51.根据第一检测框集合和第二检测框集合得到原视频的目标检测框集合。
52.具体的,针对每个待检测视频帧,先通过目标检测算法检测其中具有明确语义的目标,然后,对于一些没有通过目标检测算法检测到目标的帧,则进一步通过显著性检测算法进行检测。最后,将每个待检测视频帧中检测到的检测框集合作为目标检测框集合。优选的,第一检测框集合包括人脸检测框和人体检测框。也就是说,通过目标检测算法,选取类别标签为人脸或人体的检测框作为第一检测框。这样,就可以在很大程度上把视频中的主要目标检测出来。需要说明的是,还需要使第一检测框的面积满足大于第一阈值的条件,以便于接下来对这些检测框进行目标追踪。
53.进一步的,利用显著性检测算法获取目标待检测视频帧的第二检测框集合,具体包括:
54.利用显著性检测算法获取目标待检测视频帧的显著图;
55.基于第二阈值对显著图进行二值化,得到显著图的二值图;
56.计算二值图的八邻域连通区域,并对其中除背景区域以外的每个连通区域计算矩形包围框;
57.在矩形包围框中按照第一条件进行筛选,获取第二检测框集合。
58.其中,显著性检测算法可以基于深度学习实现,例如采用u2net网络模型实现。对显著图进行二值化的第二阈值可以灵活设置,例如为0.5。第一条件包括:矩形包围框的高和宽均大于0,并且矩形包围框的面积大于第三阈值,并且高和宽中的较大值除以较小值的得数小于第四阈值。第三阈值和第四阈值均可以根据实际情况进行设置,本公开对此不作任何限定。示例性的,第三阈值可以设置为64,第四阈值可以设置为16。这样,通过第一条
件,就可以将长宽比太大的长条形区域从矩形包围框中排除,获取到质量更好的第二检测框集合。
59.本公开实施例的技术方案,利用目标检测算法和显著性检测算法同时检测人物和非人物的初始目标,相较于现有技术中已有的单纯利用显著性检测算法或目标检测算法来检测目标的方案,能更准确的获取不同语义类别的目标空间位置和优先级,因此在横转竖或竖转横时能准确判断出最重要的主体目标,并计算更为准确的裁剪框,降低主体目标被截断的可能性,提升生成视频的可用率。
60.图3是根据本公开实施例的视频生成方法中对目标进行追踪的流程示意图,本实施例在上述各个实施例的基础上,对s102中目标追踪的具体操作进行进一步地优化。如图3所示,具体包括如下:
61.s301、按照第二间隔帧数从原视频的原视频帧中进行抽帧,获取第二视频帧集合,并将第二视频帧集合作为待追踪视频帧集合。
62.s302、在待追踪视频帧集合中,对目标检测框集合中出现的各目标进行追踪,获取各目标在每个待追踪视频帧中的目标追踪框。
63.s303、根据同一目标的相邻的两个目标追踪框,在该两个目标追踪框各自所属的待追踪视频帧之间的其他原视频帧中进行插帧,获取该同一目标在其他原视频帧中的目标追踪框。
64.s304、根据经追踪获取的目标追踪框和经插帧获取的目标追踪框,组成各目标在原视频中的目标追踪框集合。
65.目标追踪可以基于经抽帧获取的待追踪视频帧集合来进行。优选的,第一间隔帧数可以大于第二间隔帧数,例如第一间隔帧数可以是第二间隔帧数的整数倍。例如,待追踪视频帧的数量可以是待检测视频帧数量的二倍。
66.具体的,针对待追踪视频帧集合中的每个待追踪视频帧逐帧进行追踪,获取每个待追踪视频帧中的目标追踪框。然后,由于待追踪视频帧是间隔第二帧数抽帧得到的,因此,对于同一目标的相邻的两个目标追踪框,也即同一个目标连续两次在不同的待追踪视频帧中追踪到的两个目标追踪框,则在该两个目标追踪框各自所属的待追踪视频帧之间的其他原视频帧中进行插帧,获取该同一目标在其他原视频帧中的目标追踪框。具体实现时,可以进行均匀插帧,来模拟间隔的帧中追踪框的形状位置变化,插帧得到的不同帧之间的目标追踪框的中心位置在x轴上的最大值和最小值以及在y轴上的最大值和最小值,呈等差数列分布。由此,就可以获得经追踪获取的目标追踪框和经插帧获取的目标追踪框,并将其组成各目标在原视频中的目标追踪框集合。这样,通过先进行目标跟踪然后进行插帧的方式获取全部的目标追踪框,可以提高目标追踪过程整体的处理效率。
67.图4是根据本公开实施例的目标追踪过程中获取目标追踪框的流程示意图,本实施例在上述各个实施例的基础上,对s302中如何获取目标追踪框进行进一步地优化。如图4所示,具体包括如下:
68.s401、将待检测视频帧集合的第一帧待检测视频帧中的目标对应的目标检测框作为待追踪检测框。
69.具体实现时,可以根据第一帧待检测视频帧中的目标检测框构建一个目标追踪集合t(track集合),每个目标检测框的信息可以表示为d={xmin,ymin xmax,ymax,cls,s},
在track集合中,每个track可以指代待追踪检测框,并在集合中记载其相关追踪信息,例如可以表示为track t={d
t
,newest_fidx,histroy},其中,newest_fidx表示使该track t最新一次更新的帧序号,即最近一次追踪到该track t的帧序号,histroy表示该track t从创建帧开始之后追踪到的该track t在各帧的追踪框组成的数组,d
t
表示该track t的目标追踪框信息。
70.在创建目标追踪集合t后,当前初始时的待追踪检测框即为第一帧待检测视频帧中各目标对应的目标检测框。接下来则针对第一帧后的每一个待追踪视频帧对这些目标检测框进行追踪,获取其在每一个待追踪视频帧的目标追踪框。
71.s402、将待追踪视频帧集合中的任意待追踪视频帧作为当前待追踪视频帧,并对当前待追踪视频帧执行s403-s406。
72.s403、利用目标追踪算法预测待追踪检测框在当前待追踪视频帧的位置,根据所述位置获取当前待追踪视频帧中预测的目标追踪框。
73.其中,目标追踪算法例如可以是kcf(kernel correlation filter核相关滤波算法)。通过kcf算法来预测t中的每个待追踪检测框t在当前待追踪视频帧的位置,包括中心位置以及检测框的尺寸等信息,然后根据位置获取当前待追踪视频帧中预测的目标追踪框。此时,可以更新每个待追踪检测框t的d属性,记录目标追踪框信息,得到更新后的d’,并更新t的newest_fidx信息,记载当前追踪到的帧序号。
74.s404、如果当前待追踪视频帧进行了目标检测,则针对当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的匹配度。
75.s405、根据匹配度,如果存在满足匹配条件的第一当前目标检测框,则根据第一当前目标检测框更新与第一当前目标检测框匹配的待追踪检测框在当前待追踪视频帧中预测的目标追踪框。
76.s406、对于不满足匹配条件的第二当前目标检测框,将第二当前目标检测框作为新的待追踪检测框。
77.由于抽取待检测视频帧集合的第一间隔帧数与抽取待追踪视频帧集合的第二间隔帧数不同,因此,原视频中有些原视频帧既进行了目标检测也进行了目标追踪,而有的原视频帧则只进行了目标追踪。因此,在获取当前待追踪视频帧中预测的目标追踪框之后,还需要判断当前待追踪视频帧是否也作为待检测视频帧进行了目标检测,并根据情况分别进行处理。
78.如果当前待追踪视频帧没有进行目标检测,表示当前待追踪视频帧中并没有目标检测框,因此,无需匹配,只需将预测的目标追踪框作为当前待追踪视频帧的目标追踪框即可。而如果当前待追踪视频帧进行了目标检测,表示当前待追踪视频帧中包括至少一个目标检测框,因此还需要进一步通过匹配来确定最终的目标追踪框。
79.具体的,如果当前待追踪视频帧进行了目标检测,则针对当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的匹配度。也就是说,对当前待追踪视频帧中的目标检测框逐一计算其与当前每个待追踪检测框的匹配度。根据匹配度,如果存在满足匹配条件的第一当前目标检测框,则根据第一当前目标检测框更新与第一当前目标检测框匹配的待追踪检测框在当前待追踪视频帧中预测的目标追踪框。也就是说,当任意第一当前目标检测框对应的匹配度满足匹配条件,则将第一当前目标检测框的位置作为与
第一当前目标检测框匹配的待追踪检测框在当前待追踪视频帧中预测的目标追踪框。同时更新该待追踪检测框的newest_fidx信息,即当前待追踪视频帧的帧数。而对于不满足匹配条件的第二当前目标检测框,表明该第二当前目标检测框尚未被追踪,于是将该第二当前目标检测框作为新的待追踪检测框,加入目标追踪集合t中。
80.在一种实施方式中,针对当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的匹配度,包括:针对当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的第一交并比,并根据第一交并比得到对应的二分图;根据所述二分图,利用匈牙利匹配算法得到匹配度。
81.其中,针对当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的第一交并比,包括:从当前每个待追踪检测框中获取至少一个选定待追踪检测框,其中,所述选定待追踪检测框满足如下条件:选定待追踪检测框最近一次被追踪到的帧序号大于当前待追踪视频帧的帧序号与第一间隔帧数的设定倍数(如三倍)之间的差值;针对当前待追踪视频帧的每个当前目标检测框,计算其与每个选定待追踪检测框的第一交并比。也就是说,在计算第一交并比时,作为一种优选,可以仅针对每个当前目标检测框计算其与每个选定待追踪检测框的第一交并比,无需与全部待追踪检测框一一计算。而通过上述条件的判断,则可以将已经有较多帧没有出现的待追踪检测框排除,从而提高计算效率。
82.针对s405中出现的匹配条件,判断是否满足该匹配条件的过程包括:根据匹配度的值,获取与每个当前目标检测框的最大匹配待追踪检测框;分别计算每个当前目标检测框及其对应的最大匹配待追踪检测框的第二交并比;如果第二交并比大于第六阈值,则判断为满足匹配条件,否则不满足匹配条件。也就是说,通过计算可以得到当前目标检测框与每个待追踪检测框的匹配度,从中选择值最大的检测框作为最大匹配待追踪检测框,然后再计算二者的第二交并比,并将第二交并比与第六阈值进行比较,根据比较结果确定是否满足匹配条件。第六阈值可以根据实际情况灵活设置。
83.需要说明的是,关于计算两个检测框之间的匹配度,上述仅为示例,可以采用现有技术中的任一种方法实现,本公开实施例对此不作任何限定。
84.此外,针对当前待追踪视频帧的匹配追踪后,还需要维护目标追踪集合t中的histroy信息。也就是说,执行上述实施例中s303的操作,对未作为待追踪视频帧的其他原视频帧进行插帧。需要说明的是,插帧的操作可以是在s302操作后进行,也可以在针对每一个当前待追踪视频帧进行匹配追踪的过程中,在获取到当前待追踪视频帧的目标追踪框之后就进行插帧。插帧时,针对非当前新建的目标追踪框进行插帧即可。
85.在另一种实施方式中,在将第二当前目标检测框作为新的待追踪检测框之后,对当前待追踪视频帧所做的操作还包括:
86.在当前全部的待追踪检测框中,获取每个待追踪检测框最近一次被追踪到的目标帧序号,并计算当前待追踪视频帧的帧序号与目标帧序号的序号差;
87.如果存在对应的序号差大于第五阈值的目标待追踪检测框,则停止对目标待追踪检测框对应目标的追踪。
88.其中,序号差表示遍历到当前待追踪视频帧时,已经有多少帧没有追踪到该目标待追踪检测框,那么如果序号差大于第五阈值,则表示由于目标待追踪检测框已经有多帧没有追踪到,可以停止对目标待追踪检测框对应目标的追踪。第五阈值可以根据实际情况
灵活设置。
89.现有技术中的方法均没有利用目标追踪方法来将各帧检测到的目标在时序的关系刻画出来,从而对于存在时序上运动的物体,容易造成裁剪框准确性的降低和裁剪框在时序上的跳变等不稳定的情况,一方面导致重要目标容易被截断,另一方面也会导致生成视频的用户观感较差。而本公开实施例的技术方案,利用目标追踪算法来获取目标在帧间的变化,从而获取各类目标在时序上空间位置的动态变化情况,因此对于在视频中运动的目标能获取更为精确的动态裁剪框,从而提升视频生成的质量。
90.图5是根据本公开实施例的视频生成方法中确定裁剪框的流程示意图,本实施例在上述各个实施例的基础上,对s103中如何确定裁剪框进行进一步地优化。如图5所示,具体包括如下:
91.s501、根据各目标的目标追踪框集合中,每个目标追踪框在其所属原视频帧的位置、对应目标的类型标签的权重和置信度,以及追踪到各目标的原视频帧帧数,计算各目标的评分。
92.例如,可以根据如下公式计算评分s
t
:
93.s
t
=∑
d∈histroy
d[s]*(d[ymax]-d[ymin])*d[xmax]-d[xmin])*score(d[cls])
[0094]
其中,score()表示每个类别标签对应的权重,例如人脸的权重可以大于其他类别标签的权重,d表示目标追踪框。也就是说,每个目标的评分,是先计算每个目标追踪框的面积,然后与该目标追踪框的置信度和目标类别标签的权重相乘,最后再将同一目标的每个目标追踪框计算的结果相加。可见,目标追踪框的面积越大,置信度越高,权重越大,并且追踪到该目标的帧数越多,那么该目标的评分则越大,表示该目标在视频中的重要性越大。
[0095]
s502、从每个原视频帧中出现的目标追踪框中,选择对应目标的评分最大的目标追踪框作为选定目标追踪框。
[0096]
根据评分最大而选择的选定目标追踪框是原视频帧中的主要目标,根据主要目标进行裁剪可以确保视频帧的主要目标不被截断。
[0097]
其中,对于原视频的第一帧原视频帧,如果不存在对应目标的评分最大的目标追踪框,表示第一帧原视频帧中可能不存在目标检测框,这时,可将第一初始化框作为第一帧原视频帧的选定目标追踪框。而第一初始化框是根据原视频和目标视频各自的宽和高确定的,可以表示为c0={w/2,h/2,targetw,targeth},其中,w和h分别是原视频的宽和高,targetw和targeth分别是目标视频的宽和高。
[0098]
s503、根据选定目标追踪框确定每个原视频帧的裁剪框。
[0099]
具体的,可以是将选定目标追踪框在每个原视频帧的中心位置作为每个原视频帧的裁剪框的中心位置,然后根据中心位置和目标视频的宽和高,确定每个原视频帧的裁剪框。
[0100]
在一种实施方式中,将选定目标追踪框在每个原视频帧的中心位置,作为每个原视频帧的裁剪框的中心位置,包括:
[0101]
将第一帧原视频帧的选定目标追踪框对应的目标作为当前最优目标;
[0102]
对于原视频的第一帧原视频帧,将第一帧原视频帧的选定目标追踪框的中心位置,作为第一帧原视频帧的裁剪框的中心位置;
[0103]
将第一帧原视频帧后的任意原视频帧作为当前原视频帧,对当前原视频帧做如下
操作:
[0104]
判断当前原视频帧的当前选定目标追踪框对应的目标是否为当前最优目标;
[0105]
如果是当前最优目标,则利用平滑裁剪框的动量参数,基于当前原视频帧上一帧的裁剪框中心位置,和当前选定目标追踪框在当前原视频帧的中心位置,计算当前原视频帧的裁剪框的中心位置;
[0106]
如果不是当前最优目标,则将当前选定目标追踪框在当前原视频帧的中心位置作为当前原视频帧的裁剪框的中心位置;
[0107]
更新当前最优目标为当前选定目标追踪框对应的目标。
[0108]
也即,首先对于原视频的第一帧原视频帧,将第一帧原视频帧的选定目标追踪框的中心位置,作为第一帧原视频帧的裁剪框的中心位置,同时,将该选定目标追踪框对应的目标作为当前最优目标,对于之后的每一帧原视频帧,则需要逐帧进行遍历。
[0109]
具体的,对于任意当前原视频帧,先判断当前原视频帧的当前选定目标追踪框对应的目标是否为当前最优目标,起到对最优目标的连续追踪的目的。如果不是当前最优目标,表示当前原视频帧的最优目标发生了变更,则直接将当前选定目标追踪框在当前原视频帧的中心位置作为当前原视频帧的裁剪框的中心位置,并且更新当前最优目标为当前选定目标追踪框对应的目标。如果是当前最优目标,表示当前原视频帧的最优目标与上一帧相同,于是利用平滑裁剪框的动量参数,基于当前原视频帧上一帧的裁剪框中心位置,和当前选定目标追踪框在当前原视频帧的中心位置,计算当前原视频帧的裁剪框的中心位置,公式可以表示为:
[0110]cj
[centerw]=c
j-1
[centerw]*momentum+d
mj
[centerw]*(1-monentum)
[0111]
其中,momentum是用于平滑裁剪框的动量参数(如0.095),c
j-1
[centerw]表示上一帧裁剪框的中心位置,d
mj
[centerw]表示当前选定目标追踪框在当前原视频帧的中心位置。根据上式即可计算出当前原视频帧的裁剪框中心cj[centerw]。而通过引入上述这种动量加权平均的形式计算裁剪框,能够在连续帧具有同一个最优目标的情况下,保证画面的稳定移动,避免抖动,提升生成视频的整体质量。
[0112]
此外,如果不是当前最优目标,还可以进一步分为两种情况来处理。也即,将当前选定目标追踪框在当前原视频帧的中心位置作为当前原视频帧的裁剪框的中心位置,进一步包括:
[0113]
如果不是当前最优目标,则获取当前原视频帧距离上一次裁剪框突变的间隔帧数;
[0114]
如果间隔帧数小于第七阈值,则利用平滑裁剪框的动量参数,基于当前原视频帧上一帧的裁剪框中心位置,和当前选定目标追踪框在当前原视频帧的中心位置,计算当前原视频帧的裁剪框的中心位置;
[0115]
如果间隔帧数大于第七阈值,则将当前选定目标追踪框在当前原视频帧的中心位置作为当前原视频帧的裁剪框的中心位置;
[0116]
其中,所述裁剪框突变是指:若任意帧对应的最优目标的目标追踪框与该任意帧的上一帧的裁剪框的中心坐标的x轴距离大于第八阈值,则该任意帧发生裁剪框突变。
[0117]
也就是说,如果上一次发生裁剪框突变的帧与当前帧的间隔帧数没有达到第七阈值(如30),表示当前已经出现了最优目标频繁切换的情况,此时则采用动量加权的方式,根
据上一帧的裁剪框中心位置和当前选定目标追踪框在当前原视频帧的中心位置计算当前原视频帧的裁剪框的中心位置,使得不同帧间的目标切换更加平滑,反之则直接将当前选定目标追踪框在当前原视频帧的中心位置作为当前原视频帧的裁剪框的中心位置。这样做的目的在于,针对原视频中目标运动幅度大且镜头快速切换的场景,可以降低生成的目标视频中切换镜头的频繁程度,避免目标视频中出现剧烈晃动和模糊的情况,提升视频的观看效果。
[0118]
本公开实施例的技术方案,不仅利用目标追踪算法来获取目标在帧间变化,从而获取各类目标在时序上空间位置的动态变化情况,从而获取视频中运动的目标的更为精确的动态裁剪框,降低运动目标被截断的可能。同时,还通过引入动量加权平均的形式计算裁剪框,能保证画面的稳定,移动避免抖动,提升生成视频的整体质量。
[0119]
在另一种实施方式中,为了进一步确保目标不被截断,在根据裁剪框对每个原视频帧进行裁剪之前,本公开实施例的方法还包括:
[0120]
对于任意当前原视频帧fj做如下操作,j为自然数:
[0121]
判断fj中的最优目标是否被截断;
[0122]
如果判断为未被截断,则逐个遍历fj中的目标追踪框,判断任意当前目标追踪框是否满足第二条件,其中,所述第二条件为当前目标追踪框对应目标的类别标签为人体,并且fj中的最优目标被当前目标追踪框完全覆盖;
[0123]
如果满足第二条件,则继续进行遍历;
[0124]
如果不满足第二条件,则判断当前目标追踪框与最优目标的追踪框的覆盖面积是否大于第十一阈值,如果大于第十一阈值,则确定fj中存在目标被截断。
[0125]
具体的,在裁剪之前进一步判断是否仍有目标被截断。首先判断最优目标是否被截断,如果未被截断,则通过逐个遍历fj中的目标追踪框来确定是否有其他目标被截断。其中,当最优目标为人脸,而其他目标中存在人体,并且该人体的目标追踪框完全覆盖人脸追踪框,则表示二者虽然产生了覆盖,但是其表示的是同一个人,因此无需进行额外的处理。对于非人体的其他目标追踪框,则进一步判断其与最优目标追踪框之间的覆盖面积,如果大于一定的阈值则表示该目标被截断。如果全部视频帧中存在目标被截断的总帧数超出一定的阈值,则表示当前目标视频质量不达标,可以采取不输出或者过滤该目标视频的方式进行处理,以确保输出的生成视频具有较高的视频质量。
[0126]
其中,判断fj中的最优目标是否被截断,可以包括:
[0127]
如果满足如下公式中的任意之一,则判断fj中的最优目标被截断:
[0128]cj
[centerw]-(cj[width])/2)-dm[xmin]》10或者
[0129]cj
[centerw]+(cj[width])/2)-dm[xmax]》10;
[0130]
其中,cj[width]表示fj的裁剪框的宽度,dm表示fj中的最优目标,dm[xmin]和dm[xmax]分别表示最优目标对应的目标追踪框的x轴坐标最小值和最大值。
[0131]
需要说明的是,现有技术中已有的方法均没有对生成的裁剪结果进行有效性的判断,从而无法确定横转竖或竖转横后的视频质量,而本公开实施例的技术方案中,通过判断每一帧中所有目标是否被裁剪框截断来判定视频是否有效,从而能够过滤掉生成结果中由于目标被截断而导致的用户观感不好的视频,以在实际项目中提升产出视频的质量。
[0132]
图6是根据本公开实施例的另一种视频生成方法的流程示意图,本实施例在上述
各个实施例的基础上,对基于场景划分的实现方式做出进一步地优化。如图6所示,该方法具体包括如下:
[0133]
s601、对输入视频进行场景划分,得到至少一个场景及其对应的原视频。
[0134]
s602、对每个场景的原视频,分别通过目标检测获取每个场景的原视频的目标检测框集合。
[0135]
s603、针对每个场景,对目标检测框集合中出现的各目标进行追踪,获取各目标在各场景的原视频中的目标追踪框集合,其中,各目标的目标追踪框集合用于表示各目标在各场景的原视频的时序上空间位置的动态变化信息。
[0136]
s604、根据目标追踪框集合获取各场景的原视频中每个原视频帧的选定目标追踪框,并根据选定目标追踪框确定各场景的每个原视频帧的裁剪框。
[0137]
s605、根据裁剪框对各场景的每个原视频帧进行裁剪。
[0138]
s606、获取每个场景的原视频经裁剪得到的帧序列,根据帧序列生成目标视频。
[0139]
具体的,若输入视频中包括多个不同的场景,那么针对每个场景分别进行目标检测和目标追踪等操作,也即在场景之间独立计算裁剪框,这样可以使得方法能适应于更广泛的多场景视频类型。
[0140]
对输入视频进行场景划分,可以采用现有技术中的任一种方法实现。在一种实施方式中,对输入视频进行场景划分得到至少一个场景及其对应的原视频,可以包括:对输入视频进行逐帧抽帧,得到帧集合;计算帧集合中的每一帧fi与其前一帧f
i-1
的像素差值,其中,i表示帧数,且i大于等于2;比较像素差值与第十阈值,根据比较结果确定帧fi是否为新场景的第一帧。也就是说,可以通过比较两个视频帧之间像素差值的方式来确定是否出现场景切换。
[0141]
优选的,计算帧集合中的每一帧fi与其前一帧f
i-1
的像素差值,包括:计算帧集合中的每一帧fi与其前一帧f
i-1
的一阶像素差值;根据帧集合中的每一帧fi与其前一帧f
i-1
各自的一阶像素差值计算二阶像素差值;选取一阶像素差值和二阶像素差值中值更小者作为帧fi的目标像素差值。相应的,比较像素差值与第十阈值,则包括:比较目标像素差值与第十阈值。
[0142]
其中,一阶像素差值diffi按照如下公式计算:diffi=sum(s(gray(fi))-s(gray(f
i-1
))/w*h*255*α;
[0143]
所述二阶像素差值diff2i按照如下公式计算:diff2i=diff
i-diff
i-1
;
[0144]
其中,gray表示将rgb格式的帧图像进行灰度图转化,s表示对图像进行二倍下采样,sum表示对图像的所有像素求和,w、h分别是帧图像的宽和高,α是常数系数。
[0145]
由此,通过进一步计算二阶像素差值,并从一阶像素差值和二阶像素差值中选择值更小者作为帧fi的目标像素差值,可以提升视频帧之间差异比较的准确性,从而获取更加准确的场景划分结果。
[0146]
针对划分后的各场景的原视频帧,本公开实施例的方法中,还包括:
[0147]
对于输入视频中非第一个场景的任意当前场景,将该当前场景的上一个场景中最后一帧的裁剪框作为第二初始化框,并将该第二初始化框作为该当前场景中第一帧原视频帧的裁剪框。也就是说,虽然针对不同的场景分别计算裁剪框,但是在非第一个场景的任意当前场景中,根据该当前场景的上一个场景中最后一帧的裁剪框对该当前场景中第一帧原
视频帧的裁剪框进行初始化,这样,可以在该当前场景中第一帧原视频帧中不存在最优目标时,可以利用该初始化的裁剪框进行裁剪,而且起到与上一个场景的最有一帧衔接平滑的作用。
[0148]
进一步的,如果该当前场景中第一帧原视频帧中存在最优目标的选定目标追踪框,则本公开实施例的方法中还包括:对于原视频中非第一个场景的任意当前场景的第一帧原视频帧,计算当前场景的第一帧原视频帧中基于与之对应的选定目标追踪框确定的裁剪框的中心坐标,与根据第二初始化框确定的裁剪框的中心坐标的x轴距离;判断所述x轴距离是否大于第九阈值;如果大于第九阈值,则将根据第二初始化框确定的裁剪框,更新为当前场景的第一帧原视频帧中基于与之对应的选定目标追踪框确定的裁剪框。也就是说,对于该当前场景中第一帧原视频帧,需要将基于最优目标确定的裁剪框与初始化的裁剪框进行比较,具体为计算两个框中心坐标的x轴距离,如果该距离大于第九阈值,则表示二者相距较远,当前场景与上一场景中的最优目标发生了变化,裁剪框发生了突变,因此,则对第二初始化框确定的裁剪框进行更新,更新为当前场景的第一帧原视频帧中基于与之对应的选定目标追踪框确定的裁剪框。
[0149]
本公开实施例的技术方案,加入了场景检测算法,在每个场景中计算动态裁剪框,场景之间独立计算裁剪框,因此能适应于更广泛的多场景视频类型。同时,在不同场景之间进行切换时,也可以确保视频转换的平滑度,提升观看效果。
[0150]
图7是根据本公开实施例的另一种视频生成方法的流程示意图。如图7所示,输入视频先进行场景切分,然后分别进行处理。对每个场景的原视频,先按照第一间隔帧数进行抽帧,并对抽取的各帧进行目标检测。然后按照第二间隔帧数进行抽帧,并对抽取的各帧进行目标匹配追踪,其中,第一间隔帧数大于第二间隔帧数。因此,有些原视频帧只进行了目标匹配追踪,有些原视频帧则既进行了目标检测也进行了目标匹配追踪。通过目标匹配追踪获取到每个原视频帧的目标追踪框,并且在目标追踪的过程中,当前帧的数据还会依赖之前各帧追踪的结果。接着,基于评分排序从目标追踪框集合中选择最优目标的目标追踪框,并根据该最优目标的目标追踪框确定裁剪框。最后再按照裁剪框对原视频帧进行裁剪,对经裁剪得到的视频帧序列进行编码,得到输出视频。
[0151]
由此,本公开利用目标检测算法和显著性检测算法同时检测人物和非人物的初始目标,相较于已有算法单纯利用显著性检测或目标检测,能更准确的获取不同语义类别的目标空间位置和优先级,因此在横转竖时能准确判断出最重要的主体目标,并计算更为准确的裁剪框,降低主体目标被截断的可能性,提升生成视频的可用率。同时,还利用目标追踪算法来获取目标在帧间变化,从而获取各类目标在时序上空间位置的动态变化情况,因此对于在视频中运动的目标能获取更为精确的动态裁剪框,降低运动目标被截断的可能。此外,通过引入动量加权平均的形式计算裁剪框,能保证画面的稳定移动避免抖动,提升生成视频的整体质量。
[0152]
图8是根据本公开实施例的一种视频生成装置的结构示意图,本实施例可适用于将横屏视频转为竖屏视频,或者将竖屏视频转为横屏视频的情况,涉及人工智能技术领域,具体为计算机视觉、深度学习等技术领域,可应用于aigc等场景。该装置可实现本公开任意实施例所述的视频生成方法。如图8所示,该装置800具体包括:
[0153]
目标检测模块801,用于通过目标检测获取原视频的目标检测框集合;
[0154]
追踪模块802,用于对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在所述原视频中的目标追踪框集合,其中,所述各目标的目标追踪框集合用于表示各目标在所述原视频的时序上空间位置的动态变化信息;
[0155]
裁剪框确定模块803,用于根据所述目标追踪框集合获取所述原视频中每个原视频帧的选定目标追踪框,并根据所述选定目标追踪框确定所述每个原视频帧的裁剪框;
[0156]
视频生成模块804,用于根据所述裁剪框对所述每个原视频帧进行裁剪,根据经所述裁剪得到的帧序列生成目标视频。
[0157]
可选的,所述目标检测模块,包括:
[0158]
第一抽帧子模块,用于按照第一间隔帧数从所述原视频的原视频帧中进行抽帧,获取第一视频帧集合,并将所述第一视频帧集合作为待检测视频帧集合;
[0159]
目标检测子模块,用于对所述待检测视频帧集合中的每个待检测视频帧进行目标检测,得到所述原视频的目标检测框集合。
[0160]
可选的,所述目标检测子模块,包括:
[0161]
第一检测框集合获取单元,用于利用目标检测算法获取所述每个待检测视频帧的第一检测框集合;
[0162]
第二检测框集合获取单元,用于如果存在第一检测框集合为空的任意目标待检测视频帧,则利用显著性检测算法获取所述目标待检测视频帧的第二检测框集合;
[0163]
目标检测框集合获取单元,用于根据所述第一检测框集合和所述第二检测框集合得到所述原视频的目标检测框集合。
[0164]
可选的,所述第一检测框集合包括人脸检测框和人体检测框。
[0165]
可选的,所述第一检测框集合中的每个第一检测框的面积均大于第一阈值。
[0166]
可选的,所述第二检测框集合获取单元,包括:
[0167]
显著图获取子单元,用于利用显著性检测算法获取所述目标待检测视频帧的显著图;
[0168]
二值图获取子单元,用于基于第二阈值对所述显著图进行二值化,得到所述显著图的二值图;
[0169]
矩形包围框计算子单元,用于计算所述二值图的八邻域连通区域,并对其中除背景区域以外的每个连通区域计算矩形包围框;
[0170]
第二检测框集合获取子单元,用于在所述矩形包围框中按照第一条件进行筛选,获取所述第二检测框集合。
[0171]
可选的,所述第一条件包括:
[0172]
矩形包围框的高和宽均大于0,并且矩形包围框的面积大于第三阈值,并且所述高和宽中的较大值除以较小值的得数小于第四阈值。
[0173]
可选的,所述追踪模块,包括:
[0174]
第二抽帧子模块,用于按照第二间隔帧数从所述原视频的原视频帧中进行抽帧,获取第二视频帧集合,并将所述第二视频帧集合作为待追踪视频帧集合;
[0175]
追踪子模块,用于在所述待追踪视频帧集合中,对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在每个待追踪视频帧中的目标追踪框;
[0176]
插帧子模块,用于根据同一目标的相邻的两个目标追踪框,在该两个目标追踪框
各自所属的待追踪视频帧之间的其他原视频帧中进行插帧,获取该同一目标在所述其他原视频帧中的目标追踪框;
[0177]
目标追踪框集合获取子模块,用于根据经所述追踪获取的目标追踪框和经所述插帧获取的目标追踪框,组成所述各目标在所述原视频中的目标追踪框集合。
[0178]
可选的,所述第一间隔帧数是所述第二间隔帧数的整数倍。
[0179]
可选的,所述追踪子模块,包括:
[0180]
待追踪检测框获取单元,用于将所述待检测视频帧集合的第一帧待检测视频帧中的目标对应的目标检测框作为待追踪检测框;
[0181]
追踪单元,用于将所述待追踪视频帧集合中的任意待追踪视频帧作为当前待追踪视频帧,并对所述当前待追踪视频帧做如下操作:
[0182]
利用目标追踪算法预测所述待追踪检测框在所述当前待追踪视频帧的位置,根据所述位置获取所述当前待追踪视频帧中预测的目标追踪框;
[0183]
如果所述当前待追踪视频帧进行了所述目标检测,则针对所述当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的匹配度;
[0184]
根据所述匹配度,如果存在满足匹配条件的第一当前目标检测框,则根据所述第一当前目标检测框更新与所述第一当前目标检测框匹配的待追踪检测框在所述当前待追踪视频帧中预测的目标追踪框;
[0185]
对于不满足所述匹配条件的第二当前目标检测框,将所述第二当前目标检测框作为新的待追踪检测框。
[0186]
可选的,在所述将所述第二当前目标检测框作为新的待追踪检测框之后,所述追踪单元还用于:
[0187]
在当前全部的待追踪检测框中,获取每个待追踪检测框最近一次被追踪到的目标帧序号,并计算所述当前待追踪视频帧的帧序号与所述目标帧序号的序号差;
[0188]
如果存在对应的序号差大于第五阈值的目标待追踪检测框,则停止对所述目标待追踪检测框对应目标的追踪。
[0189]
可选的,所述追踪单元针对所述当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的匹配度,具体为:
[0190]
针对所述当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的第一交并比,并根据所述第一交并比得到对应的二分图;
[0191]
根据所述二分图,利用匈牙利匹配算法得到所述匹配度。
[0192]
可选的,满足所述匹配条件的判断过程包括:
[0193]
根据所述匹配度的值,获取与所述每个当前目标检测框的最大匹配待追踪检测框;
[0194]
分别计算所述每个当前目标检测框及其对应的最大匹配待追踪检测框的第二交并比;
[0195]
如果所述第二交并比大于第六阈值,则判断为满足所述匹配条件。
[0196]
可选的,所述追踪单元针对所述当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的第一交并比,具体为:
[0197]
从当前每个待追踪检测框中获取至少一个选定待追踪检测框,其中,所述选定待
追踪检测框满足如下条件:选定待追踪检测框最近一次被追踪到的帧序号大于所述当前待追踪视频帧的帧序号与所述第一间隔帧数的设定倍数之间的差值;
[0198]
针对所述当前待追踪视频帧的每个当前目标检测框,计算其与每个选定待追踪检测框的第一交并比。
[0199]
可选的,所述裁剪框确定模块,包括:
[0200]
评分计算子模块,用于根据所述各目标的目标追踪框集合中,每个目标追踪框在其所属原视频帧的位置、对应目标的类型标签的权重和置信度,以及追踪到所述各目标的原视频帧帧数,计算所述各目标的评分;
[0201]
选定目标追踪框获取子模块,用于从所述每个原视频帧中出现的目标追踪框中,选择对应目标的所述评分最大的目标追踪框作为所述选定目标追踪框;
[0202]
裁剪框确定子模块,用于根据所述选定目标追踪框确定所述每个原视频帧的裁剪框。
[0203]
可选的,所述选定目标追踪框获取子模块,包括:
[0204]
第一初始化单元,用于对于所述原视频的第一帧原视频帧,如果不存在对应目标的所述评分最大的目标追踪框,则将第一初始化框作为所述第一帧原视频帧的选定目标追踪框;
[0205]
其中,所述第一初始化框是根据所述原视频和所述目标视频各自的宽和高确定的。
[0206]
可选的,所述裁剪框确定子模块,包括:
[0207]
中心位置确定单元,用于将所述选定目标追踪框在所述每个原视频帧的中心位置,作为所述每个原视频帧的裁剪框的中心位置;
[0208]
裁剪框确定单元,用于根据所述中心位置和所述目标视频的宽和高,确定所述每个原视频帧的裁剪框。
[0209]
可选的,所述中心位置确定单元,包括:
[0210]
当前最优目标确定子单元,用于将所述第一帧原视频帧的选定目标追踪框对应的目标作为当前最优目标;
[0211]
中心位置确定子单元,用于对于所述原视频的第一帧原视频帧,将所述第一帧原视频帧的选定目标追踪框的中心位置,作为所述第一帧原视频帧的裁剪框的中心位置;
[0212]
当前原视频帧处理子单元,用于将所述第一帧原视频帧后的任意原视频帧作为当前原视频帧,对所述当前原视频帧做如下操作:
[0213]
判断所述当前原视频帧的当前选定目标追踪框对应的目标是否为当前最优目标;
[0214]
如果是当前最优目标,则利用平滑裁剪框的动量参数,基于所述当前原视频帧上一帧的裁剪框中心位置,和所述当前选定目标追踪框在所述当前原视频帧的中心位置,计算所述当前原视频帧的裁剪框的中心位置;
[0215]
如果不是当前最优目标,则将所述当前选定目标追踪框在所述当前原视频帧的中心位置作为所述当前原视频帧的裁剪框的中心位置;
[0216]
更新所述当前最优目标为所述当前选定目标追踪框对应的目标。
[0217]
可选的,如果不是当前最优目标,则所述当前原视频帧处理子单元将所述当前选定目标追踪框在所述当前原视频帧的中心位置作为所述当前原视频帧的裁剪框的中心位
置,具体为:
[0218]
如果不是当前最优目标,则获取所述当前原视频帧距离上一次裁剪框突变的间隔帧数;
[0219]
如果所述间隔帧数小于第七阈值,则利用平滑裁剪框的动量参数,基于所述当前原视频帧上一帧的裁剪框中心位置,和所述当前选定目标追踪框在所述当前原视频帧的中心位置,计算所述当前原视频帧的裁剪框的中心位置;
[0220]
如果所述间隔帧数大于第七阈值,则将所述当前选定目标追踪框在所述当前原视频帧的中心位置作为所述当前原视频帧的裁剪框的中心位置;
[0221]
其中,所述裁剪框突变是指:若任意帧对应的最优目标的目标追踪框与该任意帧的上一帧的裁剪框的中心坐标的x轴距离大于第八阈值,则该任意帧发生裁剪框突变。
[0222]
可选的,所述装置还包括场景划分模块,用于:
[0223]
对输入视频进行场景划分,得到至少一个场景及其对应的原视频;
[0224]
对每个所述场景的原视频,分别由目标检测模块执行所述通过目标检测获取原视频的目标检测框集合的操作;
[0225]
相应的,所述视频生成模块,具体用于:
[0226]
根据所述裁剪框对所述每个原视频帧进行裁剪;
[0227]
获取每个所述场景的原视频经所述裁剪得到的帧序列,根据所述帧序列生成所述目标视频。
[0228]
可选的,所述裁剪框确定子模块,还包括:
[0229]
第二初始化单元,用于对于所述输入视频中非第一个场景的任意当前场景,将该当前场景的上一个场景中最后一帧的裁剪框作为第二初始化框,并将该第二初始化框作为该当前场景中第一帧原视频帧的裁剪框。
[0230]
可选的,所述裁剪框确定子模块,还包括非第一场景第一帧处理单元,具体用于:
[0231]
对于所述原视频中非第一个场景的任意当前场景的第一帧原视频帧,计算所述当前场景的第一帧原视频帧中基于与之对应的选定目标追踪框确定的裁剪框的中心坐标,与根据所述第二初始化框确定的裁剪框的中心坐标的x轴距离;
[0232]
判断所述x轴距离是否大于第九阈值;
[0233]
如果大于第九阈值,则将根据所述第二初始化框确定的裁剪框,更新为所述当前场景的第一帧原视频帧中基于与之对应的选定目标追踪框确定的裁剪框。
[0234]
可选的,所述场景划分模块,包括:
[0235]
帧集合获取子模块,用于对所述输入视频进行逐帧抽帧,得到帧集合;
[0236]
像素差值计算子模块,用于计算所述帧集合中的每一帧fi与其前一帧f
i-1
的像素差值,其中,i表示帧数,且i大于等于2;
[0237]
比较子模块,用于比较所述像素差值与第十阈值,根据比较结果确定帧fi是否为新场景的第一帧。
[0238]
可选的,所述像素差值计算子模块,包括:
[0239]
一阶像素差值计算单元,用于计算所述帧集合中的每一帧fi与其前一帧f
i-1
的一阶像素差值;
[0240]
二阶像素差值计算单元,用于根据所述帧集合中的每一帧fi与其前一帧f
i-1
各自
的一阶像素差值计算二阶像素差值;
[0241]
目标像素差值确定单元,用于选取所述一阶像素差值和二阶像素差值中值更小者作为帧fi的目标像素差值;
[0242]
相应的,所述比较子模块具体用于:
[0243]
比较所述目标像素差值与第十阈值。
[0244]
可选的,所述一阶像素差值diffi按照如下公式计算:diffi=sum(s(gray(fi))-s(gray(f
i-1
))/w*h*255*α;
[0245]
所述二阶像素差值diff2i按照如下公式计算:diff2i=diff
i-diff
i-1
;
[0246]
其中,所述gray表示将rgb格式的帧图像进行灰度图转化,s表示对图像进行二倍下采样,sum表示对图像的所有像素求和,w、h分别是帧图像的宽和高,α是常数系数。
[0247]
可选的,在所述视频生成模块根据所述裁剪框对所述每个原视频帧进行裁剪之前,所述装置还包括截断判断模块,具体用于:
[0248]
对于任意当前原视频帧fj做如下操作,j为自然数:
[0249]
判断fj中的最优目标是否被截断;
[0250]
如果判断为未被截断,则逐个遍历fj中的目标追踪框,判断任意当前目标追踪框是否满足第二条件,其中,所述第二条件为当前目标追踪框对应目标的类别标签为人体,并且fj中的最优目标被当前目标追踪框完全覆盖;
[0251]
如果满足第二条件,则继续进行遍历;
[0252]
如果不满足第二条件,则判断当前目标追踪框与所述最优目标的追踪框的覆盖面积是否大于第十一阈值,如果大于第十一阈值,则确定fj中存在目标被截断。
[0253]
可选的,所述判断fj中的最优目标是否被截断,包括:
[0254]
如果满足如下公式中的任意之一,则判断fj中的最优目标被截断:
[0255]cj
[centerw]-(cj[width])/2)-dm[xmin]》10或者
[0256]cj
[centerw]+(cj[width])/2)-dm[xmax]》10;
[0257]
其中,cj表示fj的裁剪框,cj[centerw]表示fj的裁剪框中心点的x轴坐标,cj[width]表示fj的裁剪框的宽度,dm表示fj中的最优目标,dm[xmin]和dm[xmax]分别表示最优目标对应的目标追踪框的x轴坐标最小值和最大值。
[0258]
上述产品可执行本公开任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
[0259]
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等,均符合相关法律法规的规定,且不违背公序良俗。
[0260]
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
[0261]
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
[0262]
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(rom)902中的计算机程序或者从存储单元908加载到随机访问存储器(ram)903中的计算机程序,来执行各种适当的动作和处理。在ram 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、rom 902以及ram 903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。
[0263]
设备900中的多个部件连接至i/o接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
[0264]
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如视频生成方法。例如,在一些实施例中,视频生成方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由rom 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到ram 903并由计算单元901执行时,可以执行上文描述的视频生成方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行视频生成方法。
[0265]
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、复杂可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
[0266]
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
[0267]
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或
上述内容的任何合适组合。
[0268]
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
[0269]
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)区块链网络和互联网。
[0270]
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
[0271]
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术;人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术及机器学习/深度学习技术、大数据处理技术、知识图谱技术等几大方向。
[0272]
云计算(cloud computing),指的是通过网络接入弹性可扩展的共享物理或虚拟资源池,资源可以包括服务器、操作系统、网络、软件、应用和存储设备等,并可以按需、自服务的方式对资源进行部署和管理的技术体系。通过云计算技术,可以为人工智能、区块链等技术应用、模型训练提供高效强大的数据处理能力。
[0273]
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开提供的技术方案所期望的结果,本文在此不进行限制。
[0274]
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
技术特征:
1.一种视频生成方法,包括:通过目标检测获取原视频的目标检测框集合;对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在所述原视频中的目标追踪框集合,其中,所述各目标的目标追踪框集合用于表示各目标在所述原视频的时序上空间位置的动态变化信息;根据所述目标追踪框集合获取所述原视频中每个原视频帧的选定目标追踪框,并根据所述选定目标追踪框确定所述每个原视频帧的裁剪框;根据所述裁剪框对所述每个原视频帧进行裁剪,根据经所述裁剪得到的帧序列生成目标视频。2.根据权利要求1所述的方法,其中,所述通过目标检测获取原视频的目标检测框集合,包括:按照第一间隔帧数从所述原视频的原视频帧中进行抽帧,获取第一视频帧集合,并将所述第一视频帧集合作为待检测视频帧集合;对所述待检测视频帧集合中的每个待检测视频帧进行目标检测,得到所述原视频的目标检测框集合。3.根据权利要求2所述的方法,其中,所述对所述待检测视频帧集合中的每个待检测视频帧进行目标检测,得到所述原视频的目标检测框集合,包括:利用目标检测算法获取所述每个待检测视频帧的第一检测框集合;如果存在第一检测框集合为空的任意目标待检测视频帧,则利用显著性检测算法获取所述目标待检测视频帧的第二检测框集合;根据所述第一检测框集合和所述第二检测框集合得到所述原视频的目标检测框集合。4.根据权利要求3所述的方法,其中,所述第一检测框集合包括人脸检测框和人体检测框。5.根据权利要求3所述的方法,其中,所述第一检测框集合中的每个第一检测框的面积均大于第一阈值。6.根据权利要求3所述的方法,其中,所述利用显著性检测算法获取所述目标待检测视频帧的第二检测框集合,包括:利用显著性检测算法获取所述目标待检测视频帧的显著图;基于第二阈值对所述显著图进行二值化,得到所述显著图的二值图;计算所述二值图的八邻域连通区域,并对其中除背景区域以外的每个连通区域计算矩形包围框;在所述矩形包围框中按照第一条件进行筛选,获取所述第二检测框集合。7.根据权利要求6所述的方法,其中,所述第一条件包括:矩形包围框的高和宽均大于0,并且矩形包围框的面积大于第三阈值,并且所述高和宽中的较大值除以较小值的得数小于第四阈值。8.根据权利要求2所述的方法,其中,所述对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在所述原视频中的目标追踪框集合,包括:按照第二间隔帧数从所述原视频的原视频帧中进行抽帧,获取第二视频帧集合,并将所述第二视频帧集合作为待追踪视频帧集合;
在所述待追踪视频帧集合中,对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在每个待追踪视频帧中的目标追踪框;根据同一目标的相邻的两个目标追踪框,在该两个目标追踪框各自所属的待追踪视频帧之间的其他原视频帧中进行插帧,获取该同一目标在所述其他原视频帧中的目标追踪框;根据经所述追踪获取的目标追踪框和经所述插帧获取的目标追踪框,组成所述各目标在所述原视频中的目标追踪框集合。9.根据权利要求8所述的方法,其中,所述第一间隔帧数是所述第二间隔帧数的整数倍。10.根据权利要求8或9所述的方法,其中,所述在所述待追踪视频帧集合中,对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在每个待追踪视频帧中的目标追踪框,包括:将所述待检测视频帧集合的第一帧待检测视频帧中的目标对应的目标检测框作为待追踪检测框;将所述待追踪视频帧集合中的任意待追踪视频帧作为当前待追踪视频帧,并对所述当前待追踪视频帧做如下操作:利用目标追踪算法预测所述待追踪检测框在所述当前待追踪视频帧的位置,根据所述位置获取所述当前待追踪视频帧中预测的目标追踪框;如果所述当前待追踪视频帧进行了所述目标检测,则针对所述当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的匹配度;根据所述匹配度,如果存在满足匹配条件的第一当前目标检测框,则根据所述第一当前目标检测框更新与所述第一当前目标检测框匹配的待追踪检测框在所述当前待追踪视频帧中预测的目标追踪框;对于不满足所述匹配条件的第二当前目标检测框,将所述第二当前目标检测框作为新的待追踪检测框。11.根据权利要求10所述的方法,其中,在所述将所述第二当前目标检测框作为新的待追踪检测框之后,所述对所述当前待追踪视频帧所做的操作还包括:在当前全部的待追踪检测框中,获取每个待追踪检测框最近一次被追踪到的目标帧序号,并计算所述当前待追踪视频帧的帧序号与所述目标帧序号的序号差;如果存在对应的序号差大于第五阈值的目标待追踪检测框,则停止对所述目标待追踪检测框对应目标的追踪。12.根据权利要求10所述的方法,其中,所述针对所述当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的匹配度,包括:针对所述当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的第一交并比,并根据所述第一交并比得到对应的二分图;根据所述二分图,利用匈牙利匹配算法得到所述匹配度。13.根据权利要求10所述的方法,其中,满足所述匹配条件的判断过程包括:根据所述匹配度的值,获取与所述每个当前目标检测框的最大匹配待追踪检测框;分别计算所述每个当前目标检测框及其对应的最大匹配待追踪检测框的第二交并比;
如果所述第二交并比大于第六阈值,则判断为满足所述匹配条件。14.根据权利要求12所述的方法,其中,所述针对所述当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的第一交并比,包括:从当前每个待追踪检测框中获取至少一个选定待追踪检测框,其中,所述选定待追踪检测框满足如下条件:选定待追踪检测框最近一次被追踪到的帧序号大于所述当前待追踪视频帧的帧序号与所述第一间隔帧数的设定倍数之间的差值;针对所述当前待追踪视频帧的每个当前目标检测框,计算其与每个选定待追踪检测框的第一交并比。15.根据权利要求1所述的方法,其中,所述根据所述目标追踪框集合获取所述原视频中每个原视频帧的选定目标追踪框,并根据所述选定目标追踪框确定所述每个原视频帧的裁剪框,包括:根据所述各目标的目标追踪框集合中,每个目标追踪框在其所属原视频帧的位置、对应目标的类型标签的权重和置信度,以及追踪到所述各目标的原视频帧帧数,计算所述各目标的评分;从所述每个原视频帧中出现的目标追踪框中,选择对应目标的所述评分最大的目标追踪框作为所述选定目标追踪框;根据所述选定目标追踪框确定所述每个原视频帧的裁剪框。16.根据权利要求15所述的方法,其中,所述从所述每个原视频帧中出现的目标追踪框中,选择对应目标的所述评分最大的目标追踪框作为所述选定目标追踪框,包括:对于所述原视频的第一帧原视频帧,如果不存在对应目标的所述评分最大的目标追踪框,则将第一初始化框作为所述第一帧原视频帧的选定目标追踪框;其中,所述第一初始化框是根据所述原视频和所述目标视频各自的宽和高确定的。17.根据权利要求15或16所述的方法,其中,所述根据所述选定目标追踪框确定所述每个原视频帧的裁剪框,包括:将所述选定目标追踪框在所述每个原视频帧的中心位置,作为所述每个原视频帧的裁剪框的中心位置;根据所述中心位置和所述目标视频的宽和高,确定所述每个原视频帧的裁剪框。18.根据权利要求17所述的方法,其中,所述将所述选定目标追踪框在所述每个原视频帧的中心位置,作为所述每个原视频帧的裁剪框的中心位置,包括:将所述第一帧原视频帧的选定目标追踪框对应的目标作为当前最优目标;对于所述原视频的第一帧原视频帧,将所述第一帧原视频帧的选定目标追踪框的中心位置,作为所述第一帧原视频帧的裁剪框的中心位置;将所述第一帧原视频帧后的任意原视频帧作为当前原视频帧,对所述当前原视频帧做如下操作:判断所述当前原视频帧的当前选定目标追踪框对应的目标是否为当前最优目标;如果是当前最优目标,则利用平滑裁剪框的动量参数,基于所述当前原视频帧上一帧的裁剪框中心位置,和所述当前选定目标追踪框在所述当前原视频帧的中心位置,计算所述当前原视频帧的裁剪框的中心位置;如果不是当前最优目标,则将所述当前选定目标追踪框在所述当前原视频帧的中心位
置作为所述当前原视频帧的裁剪框的中心位置;更新所述当前最优目标为所述当前选定目标追踪框对应的目标。19.根据权利要求18所述的方法,其中,所述如果不是当前最优目标,则将所述当前选定目标追踪框在所述当前原视频帧的中心位置作为所述当前原视频帧的裁剪框的中心位置,包括:如果不是当前最优目标,则获取所述当前原视频帧距离上一次裁剪框突变的间隔帧数;如果所述间隔帧数小于第七阈值,则利用平滑裁剪框的动量参数,基于所述当前原视频帧上一帧的裁剪框中心位置,和所述当前选定目标追踪框在所述当前原视频帧的中心位置,计算所述当前原视频帧的裁剪框的中心位置;如果所述间隔帧数大于第七阈值,则将所述当前选定目标追踪框在所述当前原视频帧的中心位置作为所述当前原视频帧的裁剪框的中心位置;其中,所述裁剪框突变是指:若任意帧对应的最优目标的目标追踪框与该任意帧的上一帧的裁剪框的中心坐标的x轴距离大于第八阈值,则该任意帧发生裁剪框突变。20.根据权利要求19所述的方法,还包括:对输入视频进行场景划分,得到至少一个场景及其对应的原视频;对每个所述场景的原视频,分别执行所述通过目标检测获取原视频的目标检测框集合的操作;相应的,所述根据所述裁剪框对所述每个原视频帧进行裁剪,根据经所述裁剪得到的帧序列生成目标视频,包括:根据所述裁剪框对所述每个原视频帧进行裁剪;获取每个所述场景的原视频经所述裁剪得到的帧序列,根据所述帧序列生成所述目标视频。21.根据权利要求20所述的方法,其中,所述根据所述选定目标追踪框确定所述每个原视频帧的裁剪框,还包括:对于所述输入视频中非第一个场景的任意当前场景,将该当前场景的上一个场景中最后一帧的裁剪框作为第二初始化框,并将该第二初始化框作为该当前场景中第一帧原视频帧的裁剪框。22.根据权利要求21所述的方法,其中,所述根据所述选定目标追踪框确定所述每个原视频帧的裁剪框,还包括:对于所述原视频中非第一个场景的任意当前场景的第一帧原视频帧,计算所述当前场景的第一帧原视频帧中基于与之对应的选定目标追踪框确定的裁剪框的中心坐标,与根据所述第二初始化框确定的裁剪框的中心坐标的x轴距离;判断所述x轴距离是否大于第九阈值;如果大于第九阈值,则将根据所述第二初始化框确定的裁剪框,更新为所述当前场景的第一帧原视频帧中基于与之对应的选定目标追踪框确定的裁剪框。23.根据权利要求20所述的方法,其中,所述对输入视频进行场景划分,得到至少一个场景及其对应的原视频,包括:对所述输入视频进行逐帧抽帧,得到帧集合;
计算所述帧集合中的每一帧f
i
与其前一帧f
i-1
的像素差值,其中,i表示帧数,且i大于等于2;比较所述像素差值与第十阈值,根据比较结果确定帧f
i
是否为新场景的第一帧。24.根据权利要求23所述的方法,其中,所述计算所述帧集合中的每一帧f
i
与其前一帧f
i-1
的像素差值,包括:计算所述帧集合中的每一帧f
i
与其前一帧f
i-1
的一阶像素差值;根据所述帧集合中的每一帧f
i
与其前一帧f
i-1
各自的一阶像素差值计算二阶像素差值;选取所述一阶像素差值和二阶像素差值中值更小者作为帧f
i
的目标像素差值;相应的,所述比较所述像素差值与第十阈值,包括:比较所述目标像素差值与第十阈值。25.根据权利要求19所述的方法,在所述根据所述裁剪框对所述每个原视频帧进行裁剪之前,所述方法还包括:对于任意当前原视频帧f
j
做如下操作,j为自然数:判断f
j
中的最优目标是否被截断;如果判断为未被截断,则逐个遍历f
j
中的目标追踪框,判断任意当前目标追踪框是否满足第二条件,其中,所述第二条件为当前目标追踪框对应目标的类别标签为人体,并且f
j
中的最优目标被当前目标追踪框完全覆盖;如果满足第二条件,则继续进行遍历;如果不满足第二条件,则判断当前目标追踪框与所述最优目标的追踪框的覆盖面积是否大于第十一阈值,如果大于第十一阈值,则确定f
j
中存在目标被截断。26.一种视频生成装置,包括:目标检测模块,用于通过目标检测获取原视频的目标检测框集合;追踪模块,用于对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在所述原视频中的目标追踪框集合,其中,所述各目标的目标追踪框集合用于表示各目标在所述原视频的时序上空间位置的动态变化信息;裁剪框确定模块,用于根据所述目标追踪框集合获取所述原视频中每个原视频帧的选定目标追踪框,并根据所述选定目标追踪框确定所述每个原视频帧的裁剪框;视频生成模块,用于根据所述裁剪框对所述每个原视频帧进行裁剪,根据经所述裁剪得到的帧序列生成目标视频。27.根据权利要求26所述的装置,其中,所述目标检测模块包括:第一抽帧子模块,用于按照第一间隔帧数从所述原视频的原视频帧中进行抽帧,获取第一视频帧集合,并将所述第一视频帧集合作为待检测视频帧集合;目标检测子模块,用于对所述待检测视频帧集合中的每个待检测视频帧进行目标检测,得到所述原视频的目标检测框集合。28.根据权利要求27所述的装置,其中,所述目标检测子模块包括:第一检测框集合获取单元,用于利用目标检测算法获取所述每个待检测视频帧的第一检测框集合;第二检测框集合获取单元,用于如果存在第一检测框集合为空的任意目标待检测视频帧,则利用显著性检测算法获取所述目标待检测视频帧的第二检测框集合;
目标检测框集合获取单元,用于根据所述第一检测框集合和所述第二检测框集合得到所述原视频的目标检测框集合。29.根据权利要求27所述的装置,其中,所述追踪模块包括:第二抽帧子模块,用于按照第二间隔帧数从所述原视频的原视频帧中进行抽帧,获取第二视频帧集合,并将所述第二视频帧集合作为待追踪视频帧集合;追踪子模块,用于在所述待追踪视频帧集合中,对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在每个待追踪视频帧中的目标追踪框;插帧子模块,用于根据同一目标的相邻的两个目标追踪框,在该两个目标追踪框各自所属的待追踪视频帧之间的其他原视频帧中进行插帧,获取该同一目标在所述其他原视频帧中的目标追踪框;目标追踪框集合获取子模块,用于根据经所述追踪获取的目标追踪框和经所述插帧获取的目标追踪框,组成所述各目标在所述原视频中的目标追踪框集合。30.根据权利要求29所述的装置,其中,所述追踪子模块包括:待追踪检测框获取单元,用于将所述待检测视频帧集合的第一帧待检测视频帧中的目标对应的目标检测框作为待追踪检测框;追踪单元,用于将所述待追踪视频帧集合中的任意待追踪视频帧作为当前待追踪视频帧,并对所述当前待追踪视频帧做如下操作:利用目标追踪算法预测所述待追踪检测框在所述当前待追踪视频帧的位置,根据所述位置获取所述当前待追踪视频帧中预测的目标追踪框;如果所述当前待追踪视频帧进行了所述目标检测,则针对所述当前待追踪视频帧的每个当前目标检测框,计算其与当前每个待追踪检测框的匹配度;根据所述匹配度,如果存在满足匹配条件的第一当前目标检测框,则根据所述第一当前目标检测框更新与所述第一当前目标检测框匹配的待追踪检测框在所述当前待追踪视频帧中预测的目标追踪框;对于不满足所述匹配条件的第二当前目标检测框,将所述第二当前目标检测框作为新的待追踪检测框。31.根据权利要求26所述的装置,其中,所述裁剪框确定模块包括:评分计算子模块,用于根据所述各目标的目标追踪框集合中,每个目标追踪框在其所属原视频帧的位置、对应目标的类型标签的权重和置信度,以及追踪到所述各目标的原视频帧帧数,计算所述各目标的评分;选定目标追踪框获取子模块,用于从所述每个原视频帧中出现的目标追踪框中,选择对应目标的所述评分最大的目标追踪框作为所述选定目标追踪框;裁剪框确定子模块,用于根据所述选定目标追踪框确定所述每个原视频帧的裁剪框。32.根据权利要求31所述的装置,其中,所述裁剪框确定子模块包括:中心位置确定单元,用于将所述选定目标追踪框在所述每个原视频帧的中心位置,作为所述每个原视频帧的裁剪框的中心位置;裁剪框确定单元,用于根据所述中心位置和所述目标视频的宽和高,确定所述每个原视频帧的裁剪框。33.根据权利要求32所述的装置,其中,所述中心位置确定单元包括:
当前最优目标确定子单元,用于将所述第一帧原视频帧的选定目标追踪框对应的目标作为当前最优目标;中心位置确定子单元,用于对于所述原视频的第一帧原视频帧,将所述第一帧原视频帧的选定目标追踪框的中心位置,作为所述第一帧原视频帧的裁剪框的中心位置;当前原视频帧处理子单元,用于将所述第一帧原视频帧后的任意原视频帧作为当前原视频帧,对所述当前原视频帧做如下操作:判断所述当前原视频帧的当前选定目标追踪框对应的目标是否为当前最优目标;如果是当前最优目标,则利用平滑裁剪框的动量参数,基于所述当前原视频帧上一帧的裁剪框中心位置,和所述当前选定目标追踪框在所述当前原视频帧的中心位置,计算所述当前原视频帧的裁剪框的中心位置;如果不是当前最优目标,则将所述当前选定目标追踪框在所述当前原视频帧的中心位置作为所述当前原视频帧的裁剪框的中心位置;更新所述当前最优目标为所述当前选定目标追踪框对应的目标。34.根据权利要求33所述的装置,其中,如果不是当前最优目标,则所述当前原视频帧处理子单元将所述当前选定目标追踪框在所述当前原视频帧的中心位置作为所述当前原视频帧的裁剪框的中心位置,具体为:如果不是当前最优目标,则获取所述当前原视频帧距离上一次裁剪框突变的间隔帧数;如果所述间隔帧数小于第七阈值,则利用平滑裁剪框的动量参数,基于所述当前原视频帧上一帧的裁剪框中心位置,和所述当前选定目标追踪框在所述当前原视频帧的中心位置,计算所述当前原视频帧的裁剪框的中心位置;如果所述间隔帧数大于第七阈值,则将所述当前选定目标追踪框在所述当前原视频帧的中心位置作为所述当前原视频帧的裁剪框的中心位置;其中,所述裁剪框突变是指:若任意帧对应的最优目标的目标追踪框与该任意帧的上一帧的裁剪框的中心坐标的x轴距离大于第八阈值,则该任意帧发生裁剪框突变。35.根据权利要求34所述的装置,还包括:截断判断模块,用于在所述视频生成模块根据所述裁剪框对所述每个原视频帧进行裁剪之前,执行如下操作:对于任意当前原视频帧f
j
做如下操作,j为自然数:判断f
j
中的最优目标是否被截断;如果判断为未被截断,则逐个遍历f
j
中的目标追踪框,判断任意当前目标追踪框是否满足第二条件,其中,所述第二条件为当前目标追踪框对应目标的类别标签为人体,并且f
j
中的最优目标被当前目标追踪框完全覆盖;如果满足第二条件,则继续进行遍历;如果不满足第二条件,则判断当前目标追踪框与所述最优目标的追踪框的覆盖面积是否大于第十一阈值,如果大于第十一阈值,则确定f
j
中存在目标被截断。36.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-25中任一项所述的视频生成方法。37.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-25中任一项所述的视频生成方法。38.一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令在被处理器执行时实现根据权利要求1-25中任一项所述的视频生成方法。
技术总结
本公开提供了一种视频生成方法、装置、设备和介质,涉及人工智能技术领域,具体为计算机视觉、深度学习等技术领域,可应用于AIGC等场景。具体实现方案为:通过目标检测获取原视频的目标检测框集合;对所述目标检测框集合中出现的各目标进行追踪,获取所述各目标在所述原视频中的目标追踪框集合,其中,所述各目标的目标追踪框集合用于表示各目标在所述原视频的时序上空间位置的动态变化信息;根据所述目标追踪框集合获取所述原视频中每个原视频帧的选定目标追踪框,并根据所述选定目标追踪框确定所述每个原视频帧的裁剪框;根据所述裁剪框对所述每个原视频帧进行裁剪,根据经所述裁剪得到的帧序列生成目标视频。本公开可以提高生成视频的质量。高生成视频的质量。高生成视频的质量。
技术研发人员:袁苇航 孙高峰
受保护的技术使用者:北京百度网讯科技有限公司
技术研发日:2023.04.14
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
