视频剪辑方法、装置、电子设备及存储介质与流程

文档序号:21102802发布日期:2020-06-16 20:58阅读:142来源:国知局
视频剪辑方法、装置、电子设备及存储介质与流程

本发明实施例涉及计算机领域,特别涉及一种视频剪辑方法、装置、电子设备及存储介质。



背景技术:

随着科技的发展、生活水平的提高,在家庭、商铺等场景中,智能摄像头产品的普及带来了众多视频数据,使许多“看得见”的问题(陌生人闯入、携带暴力工具等)得到了很好的解决。

但是海量的视频数据,查找起来犹如大海捞针,传统的以人力为主的视频线索查找已经无法应对大数据时代的视频侦查。随着系统规模的不断扩大,如何快速准确地在海量视频里定位人体运动部分,进而生成短视频浏览并查找线索已成亟待解决的问题。

本发明的发明人发现,现有技术常采用高斯混合模型查找视频中的人体目标,或采用视频融合算法确定视频中是否包含人体运动以及人体运动的位置,具有较低的效率。



技术实现要素:

本发明实施例提供一种视频剪辑方法、装置、电子设备及存储介质,有利于快速准确地在海量视频中定位包含有人体运动的视频帧。

为解决上述问题,本发明实施例提供一种视频剪辑方法,包括:采用目标检测算法检测视频中的视频帧,得到所述视频帧中的人体区域;其中,所述目标检测算法基于人体目标特征数据预先训练得到;获取所述人体区域内的运动矢量,并根据所述运动矢量确定所述视频帧中的人体是否存在运动;若存在运动,则输出所述视频帧;根据预设的跳帧步长确定下一待检测的视频帧并进行检测,当所述视频中剩余的视频帧的帧数小于所述跳帧步长时,合成所有输出的视频帧以形成剪辑后的视频。

相应地,本发明实施例还提供一种视频剪辑装置,视频剪辑装置包括:人体检测模块,所述人体检测模块用于采用目标检测算法检测视频中的视频帧,得到所述视频帧中的人体区域;其中,所述目标检测算法基于人体目标特征数据预先训练得到;运动检测模块,所述运动检测模块用于获取所述人体区域内的运动矢量,并根据所述运动矢量确定所述视频帧中的人体是否存在运动;控制模块,所述控制模块用于根据预设的跳帧步长确定下一待检测的视频帧;所述控制模块还用于在视频帧中的人体存在运动时输出视频帧,以及当所述视频中的剩余的视频帧的帧数小于所述跳帧步长时,合成所有输出的视频帧以形成剪辑后的视频。

相应地,本发明实施例还提供一种电子设备,电子设备包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的视频剪辑方法。

相应地,本发明实施例还提供一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的视频剪辑方法。

与现有技术相比,本发明实施例提供的技术方案具有以下优点:采用基于人体目标特征数据预先训练得到的目标检测算法检测视频中的视频帧,目标检测算法能够直接查找视频帧中符合特征数据的人体区域,且目标检测算法的检测准确度会随着检测次数的增加而逐步提高,如此,能够实现快速准确地在海量视频中定位包含有人体运动的视频帧。

另外,所述根据预设的跳帧步长确定下一待检测的视频帧并进行检测,具体包括:若不存在运动且所述跳帧步长小于预设步长范围中的最大值,则调整预设的所述跳帧步长,调整后的跳帧步长大于调整前的跳帧步长;根据调整后的跳帧步长确定下一待检测的视频帧并进行检测。如此,能够跳过包含人体运动可能性较低的视频帧,避免逐帧分析所导致的计算资源浪费。

另外,调整后的跳帧步长是调整前的跳帧步长的固定倍数。如此,有利于提高查找到包含人体运动的视频帧的几率,进而节省计算资源和提高剪辑效率。

另外,所述根据预设的跳帧步长确定下一待检测的视频帧并进行检测,具体包括:若不存在运动且所述跳帧步长等于所述预设步长范围中的最大值,则根据所述预设步长范围中的最大值确定下一待检测的视频帧并进行检测。

另外,所述根据预设的跳帧步长确定下一待检测的视频帧并进行检测,具体包括:若存在运动,则根据预设步长范围中的最小值确定下一待检测的视频帧并进行检测。如此,有利于避免包含人体运动的视频帧在跳帧检测过程中被遗漏。

另外,所述人体目标特征数据包括以下之一或其任意组合:姿态、服装及光照角度。

另外,所述目标检测算法为端到端的目标检测算法。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。

图1为本发明第一实施例提供的一种视频剪辑方法流程图;

图2为本发明第一实施例提供的一种视频帧检测示意图;

图3为本发明第二实施例提供的一种视频剪辑方法流程图;

图4为本发明第三实施例提供的一种视频剪辑装置的功能结构图;

图5为本发明第四实施例提供的一种电子设备结构示意图。

具体实施方式

由背景技术可知,现有技术存在在海量视频中定位包含人体运动的视频帧x效率较低的问题。

为解决上问题,本发明实施提供一种视频剪辑方法,视频剪辑方法包括:采用目标检测算法检测视频中的视频帧,得到视频帧中的人体区域;其中,目标检测算法基于人体目标特征数据预先训练得到;获取人体区域内的运动矢量,并根据运动矢量确定视频帧中的人体是否存在运动;若存在运动,则输出视频帧;根据预设的跳帧步长确定下一待检测的视频帧并进行检测,当视频中剩余的视频帧的帧数小于跳帧步长时,合成所有输出的视频帧以形成剪辑后的视频。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。

本发明的第一实施例涉及一种视频剪辑方法。参考图1,图1为本发明第一实施例提供的一种视频剪辑方法流程图,其具体步骤包括:

步骤101:获取视频。

本实施例中,获取得到的视频可以是海量视频中的一个视频,在对该视频进行视频剪辑之后再获取海量视频中的另一个视频并进行剪辑;也可以是海量视频中多个视频的集合,即将多个视频合并为一个视频,并对合成后的视频进行视频剪辑。

在获取视频之后,对视频进行解码,即可得到多个视频帧;其中,视频的来源包括本地和网络存储服务器。

步骤102:采用目标检测算法检测视频中的视频帧,并得到视频帧中的人体区域。

本实施例中,目标检测算法基于人体目标特征数据预先训练得到,在执行目标检测算法的过程中,直接检测单个视频帧中是否包含有人体目标;若检测到视频帧中包含有人体目标,则获取包含人体目标的人体区域。

需要说明的是,相对于采用高斯混合模型检测人体目标,采用目标检测算法检测人体目标具有更高的检测效率和检测准确性,原因如下:高斯混合模型根据视频帧图像的灰度直方图划分前景和背景,前景是指在假设背景为静止的情况下,任何有意义的运动物体,即本实施例中的人体目标,但未针对人体目标的特征数据进行训练,因此更有可能才出现划分错误的情况,准确度较低;此外,采用高斯混合模型获取人体区域时,需要随着每一视频帧的变化对前景和背景进行实时更新和计算,以优化高斯混合模型,这需要进行大量的计算,使得检测效率较低。

参考图2,图2为本发明第一实施例提供的一种视频帧检测示意图,其中包括视频帧区域q1、人体目标k1以及人体区域q2。

具体地,当目标检测算法对某一视频帧进行检测时,可以将该视频帧中的画面视为一个大区域,即视频帧区域q1;目标检测算法在视频帧区域q1内找到人体目标k1后,根据预设规则划分并确定人体目标k1所在区域,划分后的包含有人体目标的区域被称为人体区域q2。人体区域q2小于视频帧区域q1,如此,有利于缩短后续获取运动矢量的时间,进而提高视频剪辑的效率。

本实施例中,在找到人体目标k1后,采用方形包围框将人体目标k1包围,以获得人体区域q2;在其他实施例中,也可以采用圆形包围框包围人体目标。其中,人体区域q2的面积与人体目标k1的大小之间的关系由预设规则决定。

此外,需要说明的是,由于目标检测算法是依靠人体目标特征数据训练得到,而目标检测算法的精确度受到参与训练的人体目标特征数据的类型和数量的影响,因此目标检测算法只能判断出一目标为人体目标的概率,这一概率被称为置信度;当目标检测算法判断一目标为人体目标的置信度大于预先设置的标准置信度时,认为该目标为人体目标。

步骤103:获取人体区域内的运动矢量。具体地,采用光流法计算人体区域内的运动矢量。

需要说明的是,相对于采用视频融合算法将多个视频帧中的前景目标融合在同一视频帧中,以判断前景目标是否运动来说,通过目标检测算法和光流法判断视频帧中是否存在人体运动的优势至少在于,无需进行耗时较长的碰撞检测,有利于提升视频剪辑效率。

步骤104:若根据运动矢量确定视频帧中的人体存在运动,则输出视频帧。

具体地,在获取人体区域内的运动矢量后,将获取到的运动矢量和预设的标准运动矢量进行对比,若获取到的运动矢量大于预设的标准运动矢量,则确定视频帧中的人体存在运动。

在确定视频帧中的人体存在运动后,输出视频帧,输出的视频帧预存在本地或存储服务器中,以待进行最终的合成。

步骤105:视频中剩余的视频帧的帧数是否小于预设的跳帧步长。

在目标检测算法检测完一个视频帧之后,需要根据预设的跳帧步长和视频中剩余的视频帧的帧数确定目标检测算法是否还需要检测其他的视频帧。具体地,当视频中剩余的视频帧的帧数大于或等于预设的跳帧步长时,执行步骤106;当视频中剩余的视频帧的帧数小于预设的跳帧步长时,执行步骤107。

其中,跳帧步长指的是下一待检测的视频帧的位置与当前检测的视频帧的位置的差值。举例来说,若当前检测的视频帧为视频中的第5个视频帧,且跳帧步长为1,则下一待检测的视频帧为视频中的第6个视频帧。

步骤106:根据预设的跳帧步长确定下一待检测的视频帧。

步骤107:合成所有输出的视频帧。将所有输出的视频帧合并为一短视频,以供用户查询和观看。

本发明第一实施例中,采用基于人体目标特征数据预先训练得到的目标检测算法检测视频中的视频帧,直接查找视频帧中的人体目标,且目标检测算法可根据获取到的人体目标的特征数据进行学习优化,从而实现快速准确地在海量视频中定位包含有人体运动的视频帧,进而实现自动化和批量化的视频剪辑。

本发明的第二实施例也涉及一种视频剪辑方法,第二实施例与第一实施例大致相同,主要区别之处在于:第二实施例中,视频帧中的运动情况会影响跳帧步长的大小。此外,本领域技术人员可以理解,本发明第二实施例与第一实施例具有相同或相似的部分,在第一实施例中已经提到的技术细节在第二实施例中依然有效,为了表达上的简洁,第一实施例与本实施例相同或相似的技术细节在本实施例中不再赘述。

参考图3,图3为本发明第二实施例提供的一种视频剪辑方法流程图,其具体步骤包括:

步骤201:获取视频。

步骤202:根据预设的跳帧步长确定待检测的视频帧并进行检测。

预设的跳帧步长指的是待调用的跳帧步长,在对视频中的视频帧进行检测时,视频帧中的人体运动情况会影响跳帧步长的大小,在检测完视频帧中的人体运动情况后,根据检测结果对跳帧步长进行重新赋值。

步骤203:视频帧是否存在人体。

在采用目标检测算法对视频帧进行检测后,根据检测结果确定待执行的下一步骤。若存在人体,则执行步骤204;若不存在人体,则执行步骤208。

本实施例中,用于训练目标检测算法的人体目标特征数据包括姿态、服装及光照角度。采用多种类型的人体目标特征数据训练目标检测算法,有利于提高目标检测算法的鲁棒性,使得目标检测算法在不同背景环境下能够检测出人体目标。

此外,本实施例中,目标检测算法为端到端的目标检测算法,例如为yolov3。如此,有利于降低目标检测算法的训练难度。

步骤204:获取视频帧中人体区域及人体区域内的运动矢量。

步骤205:人体是否存在运动。

根据获取到的人体区域内的运动矢量判断人体区域内的人体目标是否存在运动。若存在运动,则执行步骤206;若不存在运动,则执行步骤208。

步骤206:输出视频帧。在输出视频帧之后执行步骤207。

步骤207:将跳帧步长设置为预设步长范围中的最小值。

预设步长范围指的是跳帧步长的可调整范围,预设步长范围中的最大值和最小值可根据待检测的视频类型、对于合成的短视频的要求以及计算设备的计算能力进行调整。跳帧步长为预设步长范围中的最小值时,需要投入较多的计算资源对视频进行运动检测,有利于避免存在运动的视频帧直接被跳过的情况,使得输出的短视频中能最大程度地包含视频中包含人体的视频帧;跳帧步长为预设步长范围中的最大值时,所需要的计算资源最少,且有利于快速找到一存在人体运动的视频帧。

进一步地,若当前被检测的视频帧中存在人体运动,则可以认为与其邻近的后续视频帧中存在人体运动的可能性较大;相对地,若当前被检测的视频帧中不存在人体运动或不存在人体目标时,则可以认为与其邻近的后续视频帧中存在人体运动的可能性较小。

基于以上原则,在当前被检测的视频帧中存在人体运动时,将跳帧步长设置为预设步长范围中的最小值,有利于最大程度获取包含有人体运动的视频帧。

步骤208:舍弃视频帧。

相对于输出视频帧而言,舍弃视频帧指的是不输出视频帧。

步骤209:跳帧步长是否小于预设步长范围中的最大值。

本实施例中,为避免跳帧步长过大时遗漏过多的包含有人体运动的视频帧,设置有预设步长范围中的最大值,因此在当前检测的视频帧中不包含人体目标或不包含人体运动,且跳帧步长等于预设步长范围中的最大值时,不再增加跳帧步长。如此,有利于保证最终输出的短视频中包含有较多的人体运动。

也就是说,当跳帧步长小于预设步长范围中的最大值时,执行步骤210;当跳帧步长等于预设步长范围中的最大值时,执行步骤211。

步骤210:调整跳帧步长,且调整后的跳帧步长大于调整前的跳帧步长。

本实施例中,在当前被检测的视频帧中不包含人体目标或不包含人体运动时,增大跳帧步长,有利于更快地找到一包含有人体运动的视频帧,从而提高视频剪辑效率和降低对计算资源的需求。

本实施例中,调整后的跳帧步长是调整前的跳帧步长的固定倍数,即跳帧步长呈指数增加。举例来说,若当前的跳帧步长为1,固定倍数为2,正在被检测的视频帧为视频中的第一个视频帧,若第一个视频帧中不包含人体运动,则对跳帧步长进行调整,调整后的跳帧步长为2;根据当前检测的视频帧和调整后的跳帧步长可知,下一待检测的视频帧为视频中的第三个视频帧,若第三个视频帧中不包含人体运动,则再次对跳帧步长进行调整,调整后的跳帧步长为4。

需要说明的是,包含人体运动的视频帧通常可被认为是无规律地分布于视频中,而利用具有预设规律的查找规则查找到包含有人体运动的视频帧的几率大于利用无规律的查找规则查找到包含有人体运动的视频帧的几率。也就是说,采用固定倍数调节跳帧步长,有利于提高查找到包含人体运动的视频帧的几率,进而节省计算资源和提高剪辑效率。

需要说明的是,目标检测算法对视频中的视频帧进行检测时,既可以从第一个视频帧开始,也可以从第n个视频帧开始,n为大于1的正整数。如此,有利于跳过视频开头部分默认没有人体运动的视频帧。

本实施例中,预设步长范围可设为1~64,即最小值为1,最大值为64,固定倍数为2。

步骤211:剩余的视频帧的帧数是否小于跳帧步长。若是,则执行步骤212;若否,则执行步骤202。

步骤212:合成所有输出的视频帧。

本发明第二实施例中,在检测到人体运动之后,将跳帧步长设置为预设步长范围中的最小值,有利于最大程度获取包含有人体运动的视频帧;在未检测到人体运动时,增加跳帧步长,有利于更快检测到包含有人体运动的视频帧以及节省计算资源;在跳帧步长达到预设步长范围中的最大值后不再增加,有利于避免遗漏包含有人体运动的视频帧。

本发明第三实施例涉及一种视频剪辑装置。参考图4,图4为本发明第三实施例提供的一种视频剪辑装置的功能结构图,具体包括:人体检测模块301,用于采用目标检测算法检测视频中的视频帧,以得到视频帧中的人体区域;其中,目标检测算法基于人体目标特征数据预先训练得到;运动检测模块302,用于获取人体区域内的运动矢量,并根据运动矢量确定视频帧中的人体是否存在运动;控制模块303,用于根据预设的跳帧步长确定下一待检测的视频帧,且用于在视频帧中的人体存在运动时输出视频帧,以及当视频中的剩余的视频帧的帧数小于跳帧步长时,合成输出的视频帧以形成剪辑后的视频。

需要说明的是,在人体检测模块301进行人体检测之前,控制模块303需要预先设置初始跳帧步长以及待检测的初始视频帧;人体检测模块301对初始视频帧进行人体检测,且在人体检测模块301未检测到人体目标以及运动检测模块302未检测到人体运动时,控制模块303根据初始跳帧步长和预设调整规则对跳帧步长进行调整,以确定下一待检测的视频帧。

在一个例子中,控制模块303还用于在视频帧中不存在运动且跳帧步长小于预设步长范围中的最大值时,调整预设的跳帧步长,调整后的跳帧步长大于调整前的跳帧步长;且根据调整后的跳帧步长确定下一待检测的视频帧并进行检测。

在一个例子中,调整后的跳帧步长是调整前的跳帧步长的固定倍数。

在一个例子中,控制模块303还用于在视频帧中不存在运动且跳帧步长等于预设步长范围中的最大值时,根据预设步长范围中的最大值确定下一待检测的视频帧并进行检测。

在一个例子中,控制模块303还用于在视频帧中存在运动时,根据预设步长范围中的最小值确定下一待检测的视频帧并进行检测。

在一个例子中,人体目标特征数据包括以下之一或任意组合:姿态、服装及光照角度。

在一个例子中,目标检测算法为端到端的目标检测算法。

本发明第三实施例中,采用基于人体目标特征数据预先训练得到的目标检测算法检测视频中的视频帧,直接查找视频帧中的人体目标,且目标检测算法可根据获取到的人体目标的特征数据进行学习优化,从而实现快速准确地在海量视频中定位包含有人体运动的视频帧,进而实现自动化和批量化的视频剪辑。

不难发现,本实施例为与第一实施例相对应的装置实施例,本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。

值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。

本发明第四实施例涉及一种电子设备,参考图5,图5为本发明第四实施例提供的一种电子设备结构示意图,包括至少一个处理器401;以及,与所述至少一个处理器401通信连接的存储器402;其中,所述存储器402存储有可被所述至少一个处理器401执行的指令,所述指令被所述至少一个处理器401执行,以使所述至少一个处理器401能够执行上述的视频剪辑方法。

其中,存储器402和处理器401采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器401和存储器402的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器401处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。

处理器401负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器402可以被用于存储处理器401在执行操作时所使用的数据。

本发明第五实施例涉及一种存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。

即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各自更动与修改,因此本发明的保护范围应当以权利要求限定的范围为准。

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