视频关键帧提取方法、计算机设备和存储介质
文献发布时间:2023-06-19 11:54:11
技术领域
本申请属于计算机技术领域,尤其涉及视频关键帧提取方法、计算机设备和存储介质。
背景技术
在当前的视频监控领域或其他视频相关领域,通常需要对采集到的视频进行分析,以提取视频中的关键帧;其中,关键帧代表了视频中每个镜头的最显著特征,因此准确的提取视频关键帧可以有效减少视频内容检索的处理时间。例如,在车站的监控视频中,为减少人群密集而引起的安全隐患,可以将监控视频中人群密度首次大于阈值的视频帧作为关键帧,然后对该关键帧相邻的前后视频帧进行检索分析等处理。
在实际应用中,可能需要对一段视频提取不同类别的关键帧,如场景分类关键帧、人群密集关键帧等。传统技术通常将视频数据分别输入提取不同类别关键帧的算法中,以得到对应的关键帧。
但是,传统技术的关键帧提取方法,其提取得到的关键帧准确率较低。
发明内容
本申请实施例提供了一种视频关键帧提取方法、计算机设备和存储介质,可以解决传统技术中得到的关键帧准确率较低的问题。
第一方面,本申请实施例提供了一种视频关键帧提取方法,包括:
获取视频段数据;
将所述视频段数据输入第一关键帧提取模型,得到所述视频段数据的第一类别关键帧;
将所述视频段数据和候选视频段数据输入第二关键帧提取模型,得到所述视频段数据的第二类别关键帧,并将所述第一类别关键帧和所述第二类别关键帧作为所述视频段数据的目标关键帧;其中,所述候选视频段数据由所述视频段数据中除所述第一类别关键帧之外的视频帧数据组成。
示例性的,第一关键帧提取模型可以为基于场景分类的网络模型,用于提取如室内、自然环境、都市环境等信息的视频帧;第二关键帧提取模型可以为基于人群检测的网络模型,用于提取包含人群聚集等信息的视频帧。当然,第一关键帧提取模型和第二关键帧提取模型还可以是其他类型的网络模型,且不限制关键帧提取模型的数量。
上述的视频关键帧提取方法,通过第一关键帧提取模型得到第一类别关键帧之后,在第二关键帧提取模型提取第二类别关键帧时,除了对原始视频段数据进行处理之外,还考虑候选视频段数据的处理结果,视频段数据不仅流入每个模型,而且在一个模型处理后会流入下一个模型,即实现多层次多方向的处理过程,进而提高了得到的视频关键帧的准确率。
在第一方面的一种可能的实现方式中,将所述视频段数据和候选视频帧数据输入第二关键帧提取模型,得到所述视频段数据的第二类别关键帧,包括:
将所述视频段数据输入所述第二关键帧提取模型,得到所述视频段数据的第一候选关键帧;
将所述候选视频段数据输入所述第二关键帧提取模型,得到所述候选视频段数据的第二候选关键帧;
根据所述第一候选关键帧和所述第二候选关键帧,确定所述第二类别关键帧。
在一种可能的实现方式中,根据所述第一候选关键帧和所述第二候选关键帧,确定所述第二类别关键帧,包括:
计算所述第一候选关键帧和所述第二候选关键帧的相似度;
若所述相似度不小于相似度阈值,将所述第一候选关键帧和所述第二候选关键帧中的至少一个作为所述第二类别关键帧。
在一种可能的实现方式中,在所述将所述第一类别关键帧和所述第二类别关键帧作为所述视频段数据的目标关键帧之前,所述方法还包括:
将所述第一类别关键帧和所述第二类别关键帧分别转换为哈希码;
计算每个哈希码与预设的哈希码数据库中各参考哈希码对应的置信度;
若所述哈希码数据库中存在置信度不小于置信度阈值的参考哈希码,则将与所述哈希码对应的类别关键帧作为所述目标关键帧。
在一种可能的实现方式中,在所述计算每个哈希码与预设的哈希码数据库中各参考哈希码对应的置信度之前,所述方法还包括:
在所述哈希码的最前端添加类别编号;
相应的,将与所述哈希码对应的类别关键帧作为所述目标关键帧,还包括:
将所述类别编号与所述目标关键帧进行关联。
在一种可能的实现方式中,获取视频段数据,包括:
获取源视频数据;
将所述源视频数据输入视频段提取模型,得到按时间排序的视频段数据;其中,所述视频段提取模型包括多层次卷积网络和时间敏感网络,所述视频段数据为所述源视频数据中有效的视频数据。
在一种可能的实现方式中,将所述源视频数据输入视频段提取模型,得到按时间排序的视频段数据,包括:
将所述源视频数据输入所述多层次卷积网络,通过所述多层次卷积网络的卷积层及最大卷积激活操作提取所述源视频数据的最大特征向量;
将所述最大特征向量输入所述时间敏感网络,得到所述按时间排序的视频段数据。
在一种可能的实现方式中,将所述第一类别关键帧和所述第二类别关键帧作为所述视频段数据的目标关键帧,包括:
获取所述第一类别关键帧的类别编号、以及所述第二类别关键帧的类别编号;
将所述第一类别关键帧和所述第二类别关键帧按时间及类别编号排序后,作为所述目标关键帧。
第二方面,本申请实施例提供了一种视频关键帧提取装置,包括:
获取单元,用于获取视频段数据;
第一提取单元,用于将所述视频段数据输入第一关键帧提取模型,得到所述视频段数据的第一类别关键帧;
第二提取单元,用于将所述视频段数据和候选视频段数据输入第二关键帧提取模型,得到所述视频段数据的第二类别关键帧,并将所述第一类别关键帧和所述第二类别关键帧作为所述视频段数据的目标关键帧;其中,所述候选视频段数据由所述视频段数据中除所述第一类别关键帧之外的视频帧数据组成。
第三方面,本申请实施例提供了一种计算机设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的视频关键帧提取方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的视频关键帧提取方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行上述第一方面中任一项所述的视频关键帧提取方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的计算机设备的结构示意图;
图2是本申请一实施例提供的视频关键帧提取方法的流程示意图;
图3是本申请另一实施例提供的视频关键帧提取方法的流程示意图;
图4是本申请又一实施例提供的视频关键帧提取方法的流程示意图;
图5是本申请又一实施例提供的视频关键帧提取方法的流程示意图;
图5a是本申请一实施例提供的视频关键帧提取方法的过程示意图;
图6是本申请又一实施例提供的视频关键帧提取方法的流程示意图;
图7是本申请一实施例提供的视频关键帧提取装置的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供的视频关键帧提取方法可以应用于手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、服务器等计算机设备上,本申请实施例对计算机设备的具体类型不作任何限制。
图1为本申请一实施例提供的计算机设备的结构示意图。如图1所示,该实施例的计算机设备1包括:至少一个处理器10(图1中仅示出一个)处理器、存储器11以及存储在所述存储器11中并可在所述至少一个处理器10上运行的计算机程序12,所述处理器10执行所述计算机程序12时实现上述任意各个视频关键帧提取方法实施例中的步骤。
所述计算机设备1可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该计算机设备1可包括,但不仅限于,处理器10、存储器11。本领域技术人员可以理解,图1仅仅是计算机设备1的举例,并不构成对计算机设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器10可以是中央处理单元(Central Processing Unit,CPU),该处理器10还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器11在一些实施例中可以是所述计算机设备1的内部存储单元,例如计算机设备1的硬盘或内存。所述存储器11在另一些实施例中也可以是所述计算机设备1的外部存储设备,例如所述计算机设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器11还可以既包括所述计算机设备1的内部存储单元也包括外部存储设备。所述存储器11用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。
图2示出了本申请提供的视频关键帧提取方法的示意性流程图,作为示例而非限定,该方法可以应用于上述计算机设备1中。
S101,获取视频段数据。
其中,本实施例中的视频段数据可以为由计算机设备从监控服务器上获取的视频数据,例如监控服务器中存储的道路、车站等密集区域的监控视频、或者用于网信安全及应急救援的监控视频等。当计算机设备从监控服务器中获取一段源视频数据时,可以直接将该源视频数据作为视频段数据,也可以将该源视频数据按预设尺寸进行分段得到视频段数据。
可选地,上述视频段数据的数量可以为一个或多个,计算机设备还可以先对各视频段数据进行去噪及灰度化,以减少视频段数据的噪声。若视频段数据有多个,计算机设备可以分别对每个视频段数据执行下述方法步骤。
S102,将所述视频段数据输入第一关键帧提取模型,得到所述视频段数据的第一类别关键帧。
其中,视频的关键帧代表了视频每个镜头的最显著特征,因此准确的提取每个镜头的关键帧可以有效地降低视频内容检索的处理时间,并且提高检索的准确率。通常,解码之后的视频是分层的结构,视频分为若干个场景,每个场景分为若干个镜头,每个镜头包含一个或多个关键帧。在提取视频每个镜头的关键帧之后,通过对视频帧进行基于内容的检索,即可高效、准确地检索出相关的视频序列。
具体地,计算机设备可以将上述视频段数据输入第一关键帧提取模型,该第一关键帧提取模型可以为基于深度学习的网络模型,以提取视频段数据的第一类别关键帧。可选地,上述第一关键帧提取模型可以包括场景分类模型、人群聚集检测模型、语义搜图模型、目标识别模型、车牌识别模型、视频动作检测模型中的任一个,并可以将不同的模型划分为不同的类别,其得到的关键帧记为不同类别的关键帧。例如,可以将场景分类的关键帧记为一类编号,人群聚集检测、语义搜图、目标识别、车牌识别的关键帧记为二类编号,视频动作的关键帧记为三类编号。
作为示例而非限定性的,上述场景分类模型可以为SENet模型,用于获取包括室内、自然环境、都市环境等信息的关键帧;SENet的核心思想在于建模通道之间的相互依赖关系,通过网络的全局损失函数自适应的重新矫正通道之间的特征相应强度。SENet由一系列SE块(block)组成,一个SE block的过程分为压缩(Squeeze)和激发(Excitation)两个步骤。其中Squeeze通过在特征图(Feature Map)上执行全局平均池化(Global AveragePooling,GAP)得到当前Feature Map的全局压缩特征向量,Excitation通过两层全连接得到Feature Map中每个通道的权值,并将加权后的Feature Map作为下一层网络的输入。从上面的分析中可以看出SE block只依赖于当前的一组Feature Map,因此可以非常容易的嵌入到所有的卷积网络中。
上述人群聚集检测模型可以为FCHD人头检测模型,用于获取包含人群聚集等信息的视频帧;FCHD模型包括两个卷积神经网络模型(Convolutional Neural Networks,CNN),第一个模型用于直接从视频帧图像预测头部的尺度和位置,第二个模型用于建模对象之间的成对关系。
上述语义搜图模型可以为DeepMAR模型,用于获取包括性别、衣服颜色、衣服类型、发型类型、鞋子颜色及类型、是否戴帽子等信息的视频帧;DeepMAR模型利用各属性之间的关系,将所有属性的识别一次性完成,实现多标签分类问题,如长发更有可能是女性,所以头发的长度有利于帮助识别性别属性。
上述目标识别模型可以为YOLOv3检测模型,用于获取包括家电类、卫生设备、办公用品、厨房用具、餐具、家具类、浴室配件、建筑物、医用器材、乐器、运动装备、武器、人、贝类、鱼、动物、帽子、化妆品、鞋类、包、服装、陆地车辆、海洋交通工具、空中交通工具的视频帧;YOLOv3模型为目标检测算法YOLO(You Only Look Once)的最新变种模型,目标检测过程可以理解为目标定位和目标识别的结合过程,该模型可以识别图片或视频中的近80种物体,且实时性较强。
上述车牌识别模型可以为hyperlpr模型,用于获取包括车牌号等信息的视频帧;hyperlpr模型目前支持的车牌类型包括单行蓝牌、单行黄牌、新能源车牌、白色警用车牌、使馆/港澳车牌、教练车牌等。
上述视频动作检测模型可以为OpenPose模型,用于获取包含跳、踢、打拳、跑、坐、蹲、站、走等动作的视频帧;OpenPose的关键思想是使用卷积神经网络生成两个堆图,一个用于预测关节位置,另一个用于将关节关联到人体骨骼中。简而言之,OpenPose的输入是一幅帧图像,输出是该算法检测到的所有人类的骨骼。每个骨骼有18个关节,包括头,两眼,两耳,鼻子,颈,两肩,两肘,两手腕,两髋,两膝盖,两脚踝;每个关节位置在图像坐标中用x和y的坐标值表示,因此每个骨骼总共有36个值。
还需要说明的是,上述各模型应用于提取视频关键帧之前,还需进行模型训练以达到收敛状态,模型训练的过程可以参见传统的深度学习训练方法,其实现原理类似。
S103,将所述视频段数据和候选视频段数据输入第二关键帧提取模型,得到所述视频段数据的第二类别关键帧,并将所述第一类别关键帧和所述第二类别关键帧作为所述视频段数据的目标关键帧;其中,所述候选视频段数据由所述视频段数据中除所述第一类别关键帧之外的视频帧数据组成。
具体地,当视频段数据输入上述第一关键帧提取模型,且提取到第一类别关键帧之后,计算机设备可以将视频段数据中除第一类别关键帧之外的视频帧数据组成候选视频段数据。例如,一个视频段数据包括10个视频帧,其中第5个视频帧为第一类别关键帧,则计算机设备将第1-4、6-10个视频帧数据作为候选视频段数据。然后,计算机设备将整个视频段数据和得到的候选视频段数据输入第二关键帧提取模型,得到第二类别关键帧;也即是说,在第二关键帧提取模型提取第二类别关键帧时,除了对原始视频段数据进行处理之外,还考虑候选视频段数据的处理结果,视频段数据不仅流入每个模型,而且在一个模型处理后会流入下一个模型,即实现多层次多方向的处理过程,进而提高了得到的关键帧的准确率。
可选地,该第二关键帧提取模型可以包括上述场景分类模型、人群聚集检测模型、语义搜图模型、目标识别模型、车牌识别模型、视频动作检测模型中除第一关键帧提取模型之外的任一个;例如,若第一关键帧提取模型为场景分类模型,则第二关键帧提取模型可以为人群聚集检测模型、语义搜图模型、目标识别模型、车牌识别模型、视频动作检测模型中的任一个。
然后,计算机设备将得到的第一类别关键帧和第二类别关键帧作为视频段数据的目标关键帧。示例性的,假设识别得到的第一类别关键帧表征的是电梯场景,第二类别关键帧表征的是长头发女生,则通过视频段数据的目标关键帧就可以得知电梯内有一长头发女生。
还需要说明的是,在得到第二类别关键帧之后,计算机设备还可以将视频段数据中除第一类别关键帧、第二类别关键帧之外的视频帧数据再次组成候选视频段数据,并将整个视频段数据和候选视频段数据输入另一个关键帧提取模型,得到另一类别关键帧,即上述提取过程可以持续执行。
上述的视频关键帧提取方法,计算机设备通过第一关键帧提取模型得到第一类别关键帧之后,在第二关键帧提取模型提取第二类别关键帧时,除了对原始视频段数据进行处理之外,还考虑候选视频段数据的处理结果,视频段数据不仅流入每个模型,而且在一个模型处理后会流入下一个模型,即实现多层次多方向的处理过程,进而提高了得到的关键帧的准确率。
在一种可能的实现方式中,如图3所示,上述S103的过程可以包括:
S201,将所述视频段数据输入所述第二关键帧提取模型,得到所述视频段数据的第一候选关键帧。
S202,将所述候选视频段数据输入所述第二关键帧提取模型,得到所述候选视频段数据的第二候选关键帧。
具体地,第二关键帧提取模型可以分别对视频段数据和候选视频段数据进行处理,以得到第一候选关键帧和第二候选关键帧;而关于第二关键帧提取模型的处理过程,可以参见上述实施例中第一关键帧提取模型的描述,其实现原理类似,在此不再赘述。
S203,根据所述第一候选关键帧和所述第二候选关键帧,确定所述第二类别关键帧。
具体地,因上述第一候选关键帧和第二候选关键帧都是第二关键帧提取模型处理得到的第二类别的候选帧,则两者应在一定程度上相似。因此,计算机设备可以通过对比第一候选关键帧和第二候选关键帧,以确定第二类别关键帧。
在一种可能的实现方式中,计算机设备可以计算第一候选关键帧和第二候选关键帧的相似度,可选地,可以通过计算第一候选关键帧各像素点值和第二候选关键帧各像素点值之间的差异,计算确定上述相似度;还可以根据第一候选关键帧和第二候选关键帧之间的重合度确定上述相似度。然后计算机设备判断得到的相似度是否小于相似度阈值(如90%),若相似度不小于相似度阈值,则将第一候选关键帧和第二候选关键帧中的至少一个作为第二类别关键帧。若相似度小于相似度阈值,可以表征第一候选关键帧和第二候选关键帧中的至少一个存在误差,则计算机设备可以重新执行S201和S202的步骤,或者将第二类别关键帧设置为空值。
上述的视频关键帧提取方法,计算机设备通过第二关键帧提取模型得到第一候选关键帧和第二候选关键帧,然后根据第一候选关键帧和第二候选关键帧的相似度确定第二类别关键帧,以减少候选关键帧可能存在的误差,进而进一步提高第二类别关键帧的准确率。
在一种可能的实现方式中,为进一步提高得到的关键帧的准确率,本实施例还可以借助哈希码具有唯一标识的特点,将类别关键帧转换为哈希码进行再次校验。如图4所示,上述在所述将所述第一类别关键帧和所述第二类别关键帧作为所述视频段数据的目标关键帧之前,上述方法还可以包括:
S301,将所述第一类别关键帧和所述第二类别关键帧分别转换为哈希码。
具体地,为进一步判断第一类别关键帧和第二类别关键帧是否为“真实”的关键帧,计算机设备可以将第一类别关键帧和第二类别关键帧分别转换为哈希码。其中,帧图像转换为哈希码的过程可以包括:假设帧图像大小为x*y,其像素点矩阵存储于n*n数组中;然后将帧图像转换为z*z大小(z可由哈希算法可以处理的最优图片尺寸确定),接下来对转换后的帧图像进行灰度化,并计算灰度化前后各像素点的像素差值,由各像素差值组成n’*n’数组;而该像素差值通常为二进制形式,则可以将二进制的像素差值转换为十六进制,即为对应的哈希码。
S302,计算每个哈希码与预设的哈希码数据库中各参考哈希码对应的置信度。
S303,若所述哈希码数据库中存在置信度不小于置信度阈值的参考哈希码,则将与所述哈希码对应的类别关键帧作为所述目标关键帧。
其中,哈希码数据库为存储各类关键帧对应的哈希码的数据库。该哈希码数据库的构建过程可以为:获取大量的样本视频段数据,通过各训练收敛的关键帧提取模型得到多个关键帧,并将多个关键帧转换为哈希码,存储于哈希码数据库中;另外,为区别不同类别的关键帧,还可以为各关键帧分配不同的编号,并添加于对应的哈希码的最前端。例如,可以在场景分类哈希码的前端增加一类编号、在人群聚集、语义搜图、目标识别、车牌识别等哈希码的前端增加二类编号,在视频动作哈希码的前端增加三类编号。
为方便区别,本实施例将哈希码数据库中的哈希码称为参考哈希码。然后,计算机设备计算上述S301步骤得到的哈希码与哈希码数据库中各参考哈希码对应的置信度,以判断哈希码数据库中是否存在与得到的哈希码置信度不小于置信度阈值的参考哈希码,如存在则表明得到的哈希码是“真实”的哈希码,其对应的类别关键帧为“真实”的关键帧,进而可以将该类别关键帧作为目标关键帧。示例性的,若第一类别关键帧对应的哈希码与某一参考哈希码的置信度不小于置信度阈值,则将第一类别关键帧作为一个目标关键帧;若第二类别关键帧对应的哈希码与某一参考哈希码的置信度不小于置信度阈值,则将第二类别关键帧作为另一个目标关键帧;若第一类别关键帧对应的哈希码和第二类别关键帧对应的哈希码都与某一参考哈希码的置信度不小于置信度阈值,则可以将第一类别关键帧和第二类别关键帧都作为目标关键帧。
可选地,计算机设备在计算哈希码与各参考哈希码的置信度之前,还可以在哈希码的最前端添加类别编码,以区分各哈希码(及关键帧)的类别,并在确定了目标关键帧之后,将类别编号与目标关键帧进行关联,即为视频关键帧赋予属于自身的类别编号。
上述的视频关键帧提取方法,计算机设备基于哈希码具有唯一标识的特性,将得到的候选关键帧转换为哈希码,并与哈希码数据库中的参考哈希码进行比对,进一步校验候选关键帧的准确性,进而进一步提高得到的视频关键帧的准确率。
在一种可能的实现方式中,为使输出的视频关键帧具有一定的时间顺序,本实施例还可以采用视频段提取模型得到按时间排序的视频段数据,进而对该视频段数据进行关键帧提取,得到按时间排序的关键帧。如图5所示,上述S101可以包括:
S401,获取源视频数据。
S402,将所述源视频数据输入视频段提取模型,得到按时间排序的视频段数据;其中,所述视频段提取模型包括多层次卷积网络和时间敏感网络,所述视频段数据为所述源视频数据中有效的视频数据。
其中,上述源视频数据可以为监控服务器中存储的原始视频数据,其视频长度一般较长,直接处理的话计算复杂度较高,本实施例可以对该源视频数据进行分段。具体地,计算机设备将源视频数据输入视频段提取模型,该视频段提取模型可以包括多层次卷积网络和时间敏感网络(Time Sensitive Network,TSN),进而得到按时间排序的视频段数据,且该视频段数据为源视频数据中有效的视频数据;需要说明的是,这里“有效的视频数据”是指视频帧数据发生变化的视频数据,例如,对于道路监控视频,在10:00-10:01这一分钟时间段内没有车辆进入该监控区域,该时间段内的监控视频是类似静止的画面,其对应的视频数据对监控的指导意义不大,则可以记为无效的视频数据;10:01-10:02这一分钟时间段内开始出现车辆,则将该时间段对应的视频数据记为有效的视频数据。
可选地,多层次卷积网络可以为包括多层卷积层(示例性的可以为5层)的3D卷积网络,TSN网络可以由空间流卷积网络和时间流卷积网络构成;TSN网络可以从整个视频数据中稀疏地采样一系列短片段,每个片段都将给出其本身对于行为类别的初步预测,从这些片段的“共识”来得到视频级的预测结果;可以理解为,一个输入视频被分为段(segment),一个片段(snippet)从它对应的段中随机采样得到,不同片段的类别得分采用段共识函数(The segmental consensus function)进行融合来产生段共识(segmentalconsensus),然后对所有模式的预测融合产生最终的预测结果。由上述分析可以得知,视频段提取模型可以相当于一个4D卷积网络,在该网络架构下,假设输入的视频数据尺寸为(C,U,T,H,W),其中C是网络通道总数量,U是视频单元的数量(即一个视频数据可以分为U个视频单元),T、H、W分别代表每个视频单元的长度、高度和宽度;一个位于(u,t,h,w)的属于第j个通道的输出像素用O
作为一种可实现的方式,上述视频段提取模型对源视频数据进行处理的过程可以包括:将所述源视频数据输入所述多层次卷积网络,通过所述多层次卷积网络的卷积层及最大卷积激活操作MAC提取源视频数据的最大特征向量;将所述最大特征向量输入所述时间敏感网络,得到所述按时间排序的视频段数据。具体地,此时的源视频数据中可能包含一些无效数据,通过多层次卷积网络的卷积层进行特征提取,并将提取的特征向量经最大卷积激活操作得到该源视频数据的最大特征向量;再将最大特征向量输入时间敏感网络进行排序处理,即得到按时间排序的视频段数据。进而可以根据按时间排序的视频段数据执行上述S102和S103步骤,关于整个流程的过程示意图,可以参见图5a所示。
如图5a所示,上述多层次卷积网络可以包括多个卷积层(图中以5层为例示出),则可以将源视频数据分别输入每个卷积层,对于每一层,源视频数据都经由卷积层及MAC操作得到最大特征向量,并输入TSN网络,由此可得到多组按时间排序的视频段;然后,计算机设备可以将多组视频段进行融合,得到最终的一组按时间排序的视频段,进而执行S102和S103步骤。
上述的视频关键帧提取方法,计算机设备可以将源视频数据输入视频段提取模型,得到按时间排序的有效的视频段数据,以减少后续视频关键帧提取过程的计算量,且可以输出按时间排序的关键帧,方便用户的查看。
在一种可能的实现方式中,除了可以按时间排序输出视频关键帧之外,还可以按视频关键帧的类别进行输出,则上述将所述第一类别关键帧和所述第二类别关键帧作为所述视频段数据的目标关键帧,可以包括:获取所述第一类别关键帧的类别编号、以及所述第二类别关键帧的类别编号;将所述第一类别关键帧和所述第二类别关键帧按时间及类别编号排序后,作为所述目标关键帧。
其中,第一类别关键帧的类别编号以及第二类别关键帧的类别编号可以为上述实施例中的一类编号、二类编号、三类编号等,将第一类别关键帧和第二类别关键帧按时间及类别编号排序后的示例可以为:第一个时间段的一类编号关键帧、二类编号关键帧、三类编号关键帧;第二个时间段的一类编号关键帧、二类编号关键帧、三类编号关键帧;第三个时间段的一类编号关键帧、二类编号关键帧、三类编号关键帧等等的排列效果,即为目标关键帧。通过此顺序排列关键帧,可以进一步方便用户查看得到的视频关键帧,如通过视频关键帧就可以获得“10:05:10-10:05:20时间段内电梯内有一戴帽子儿童在蹦跳”的信息。
为更好理解上述视频关键帧提取方法的整个过程,下面以一个整体实施例方式对该方法进行描述:如图6所示,该方法包括:
S501,获取源视频数据;
S502,将所述源视频数据输入所述多层次卷积网络,通过所述多层次卷积网络的卷积层及最大卷积激活操作提取源视频数据的最大特征向量;
S503,将所述最大特征向量输入所述时间敏感网络,得到所述按时间排序的视频段数据;
S504,将所述视频段数据输入第一关键帧提取模型,得到所述视频段数据的第一类别关键帧;
S505,将所述视频段数据输入所述第二关键帧提取模型,得到所述视频段数据的第一候选关键帧;
S506,将所述候选视频段数据输入所述第二关键帧提取模型,得到所述候选视频段数据的第二候选关键帧;
S507,计算所述第一候选关键帧和所述第二候选关键帧的相似度;
S508,若所述相似度不小于所述相似度阈值,将所述第一候选关键帧和所述第二候选关键帧中的至少一个作为所述第二类别关键帧;
S509,将所述第一类别关键帧和所述第二类别关键帧分别转换为哈希码;
S510,在所述哈希码的最前端添加类别编号;
S511,计算每个哈希码与预设的哈希码数据库中各参考哈希码对应的置信度;
S512,若所述哈希码数据库中存在置信度不小于置信度阈值的参考哈希码,则将与所述哈希码对应的类别关键帧作为所述目标关键帧,并将所述类别编号与所述目标关键帧进行关联;或者将所述第一类别关键帧和所述第二类别关键帧按时间及类别编号排序后,作为所述目标关键帧。
关于本实施例中各步骤的实现过程,可以参见上述实施例的描述,其实现原理和技术效果类似,在此不再赘述。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的视频关键帧提取方法,图7示出了本申请实施例提供的视频关键帧提取装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图7,该装置包括:获取单元21、第一提取单元22和第二提取单元23。
具体地,获取单元21,用于获取视频段数据;
第一提取单元22,用于将所述视频段数据输入第一关键帧提取模型,得到所述视频段数据的第一类别关键帧;
第二提取单元23,用于将所述视频段数据和候选视频段数据输入第二关键帧提取模型,得到所述视频段数据的第二类别关键帧,并将所述第一类别关键帧和所述第二类别关键帧作为所述视频段数据的目标关键帧;其中,所述候选视频段数据由所述视频段数据中除所述第一类别关键帧之外的视频帧数据组成。
在一种可能的实现方式中,第二提取单元23,具体用于将所述视频段数据输入所述第二关键帧提取模型,得到所述视频段数据的第一候选关键帧;将所述候选视频段数据输入所述第二关键帧提取模型,得到所述候选视频段数据的第二候选关键帧;根据所述第一候选关键帧和所述第二候选关键帧,确定所述第二类别关键帧。
在一种可能的实现方式中,第二提取单元23,具体用于计算所述第一候选关键帧和所述第二候选关键帧的相似度;若所述相似度不小于相似度阈值,将所述第一候选关键帧和所述第二候选关键帧中的至少一个作为所述第二类别关键帧。
在一种可能的实现方式中,上述装置还包括确定单元,用于将所述第一类别关键帧和所述第二类别关键帧分别转换为哈希码;计算每个哈希码与预设的哈希码数据库中各参考哈希码对应的置信度;若所述哈希码数据库中存在置信度不小于置信度阈值的参考哈希码,则将与所述哈希码对应的类别关键帧作为所述目标关键帧。
在一种可能的实现方式中,上述确定单元,还用于在所述哈希码的最前端添加类别编号;将所述类别编号与所述目标关键帧进行关联。
在一种可能的实现方式中,上述获取单元21,具体用于获取源视频数据;将所述源视频数据输入视频段提取模型,得到按时间排序的视频段数据;其中,所述视频段提取模型包括多层次卷积网络和时间敏感网络,所述视频段数据为所述源视频数据中有效的视频数据。
在一种可能的实现方式中,上述获取单元21,具体用于将所述源视频数据分段后输入所述多层次卷积网络,通过所述多层次卷积网络的卷积层及最大卷积激活操作提取所述源视频数据的最大特征向量;将所述最大特征向量输入所述时间敏感网络,得到所述按时间排序的视频段数据。
在一种可能的实现方式中,上述第二提取单元22,具体用于获取所述第一类别关键帧的类别编号、以及所述第二类别关键帧的类别编号;将所述第一类别关键帧和所述第二类别关键帧按时间及类别编号排序后,作为所述目标关键帧。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种计算机设备,该计算机设备包括:至少一个处理器、存储器以及存储在所述存储器中并可在所述至少一个处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意各个方法实施例中的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
- 视频关键帧提取方法、计算机设备和存储介质
- 一种视频关键帧提取方法、装置、终端设备及存储介质