视频分镜方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及人工智能
技术领域
,尤其涉及一种视频分镜方法、装置、设备 及计算机可读存储介质。背景技术
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制 的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳 结果的理论、方法、技术及应用系统。
计算机视觉技术(Computer Vision,CV)计算机视觉是一门研究如何使机器 “看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识 别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人 眼观察或传送给仪器检测的图像。视频处理是计算机视觉技术中的重要技术。
视频分镜是视频处理过程中的重要任务,即区分视频的每一视频帧与哪一 视频帧属于同一镜头、且描述同一人物同一事件。分镜提供的场景变换识别可 以大大压缩视频处理中抽取样本的数据、以及提供视频序列故事情节变化的主 要线索。
相关技术中,通常采用的方法是基于视频帧的尺度不变特征变换(SIFT, Scale-invariant feature transform)特征,来对视频进行分镜处理,由于SIFT特 征本身表达能力问题,导致分镜准确性低,且分镜聚合度低。
发明内容
本申请实施例提供一种视频分镜方法、装置、设备及计算机可读存储介质, 能够提高分镜准确性、及分镜聚合度。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种视频分镜方法,包括:
对目标视频进行抽帧处理,得到对应所述目标视频的视频帧序列;
对所述视频帧序列中的各视频帧进行特征提取,得到各视频帧的图嵌入特 征;
基于各视频帧的图嵌入特征,获取所述视频帧序列中相邻视频帧的图嵌入 特征间的相似度;
基于所述相邻视频帧的图嵌入特征间的相似度,对所述视频帧序列进行分 镜处理,得到至少两个目标分镜,每个所述目标分镜包括至少一个视频帧。
本申请实施例提供一种视频分镜装置,包括:
抽帧模块,用于对目标视频进行抽帧处理,得到对应所述目标视频的视频 帧序列;
提取模块,用于对所述视频帧序列中的各视频帧进行特征提取,得到各视 频帧的图嵌入特征;
获取模块,用于基于各视频帧的图嵌入特征,获取所述视频帧序列中相邻 视频帧的图嵌入特征间的相似度;
分镜模块,用于基于所述相邻视频帧的图嵌入特征间的相似度,对所述视 频帧序列进行分镜处理,得到至少两个初始分镜,每个所述初始分镜包括至少 一个视频帧;
聚合模块,用于对至少两个初始分镜进行聚合处理,得到至少两个目标分 镜。
上述方案中,所述抽帧模块,还用于获取目标视频的视频帧率、及目标视 频的时长;
根据目标视频的视频帧率、及目标视频的时长,确定抽帧数量;
根据所述抽帧数量,对所述目标视频进行抽帧处理,得到包含所述抽帧数 量的视频帧的视频帧序列。
上述方案中,所述提取模块,还用于通过第一图嵌入模型,对所述视频帧 序列中的各视频帧进行特征提取,得到各视频帧的图嵌入特征;
所述装置还包括:
更新模块,用于从至少两个目标分镜中筛选出分镜难例;
获取对应所述分镜难例的人工分镜结果,所述人工分镜结果用于指示归属 于同一分镜的视频帧;
基于所述分镜难例及所述人工分镜结果构建训练集,并通过所述训练集, 对所述第一图嵌入模型的模型参数进行更新,得到第二图嵌入模型。
上述方案中,所述更新模块,还用于获取各目标分镜中的视频帧数量、及 各所述目标分镜对应每个目标分镜的平均视频帧数量;
分别确定各目标分镜中的视频帧数量与所述平均视频帧数量的比值;
将所述视频帧数量与所述平均视频帧数量的比值未达到目标比值的目标分 镜,作为分镜难例。
上述方案中,所述更新模块,还用于当所述目标分镜包括至少两个视频帧 时,对于每个目标分镜执行以下操作:
从所述目标分镜中的第一个视频帧开始,依据播放时间点顺序获取目标比 例的视频帧,得到第一视频帧子集,并
从所述目标分镜中的最后一个视频帧开始,依据播放时间点逆序获取目标 比例的视频帧,得到第二视频帧子集;
获取所述第一视频帧子集与第二视频帧子集之间的相似度;
当相似度未达到相似度阈值时,确定所述目标分镜为分镜难例。
上述方案中,所述训练集包括多个三元组,所述三元组包括基准图像、与 所述基准图像属于同一分镜的正图像、与所述基准图像属于不同分镜的负图像;
所述更新模块,还用于将三元组中基准图像、正图像、及负图像输入所述 第一图嵌入模型;
通过所述第一图嵌入模型对所述基准图像、正图像、及负图像,进行前向 计算,预测得到基准图像的图嵌入特征、正图像的图嵌入特征、及负图像的图 嵌入特征;
获取基准图像的图嵌入特征和正图像的图嵌入特征之间的第一差异、及基 准图像的图嵌入特征与负图像的图嵌入特征之间的第二差异,并基于所述第一 差异及所述第二差异确定所述第一图嵌入模型的损失函数的值;
基于所述损失函数的值,对所述第一图嵌入模型的模型参数进行更新。
上述方案中,所述更新模块,还用于获取测试集,并将所述测试集分别输 入至所述第一图嵌入模型、及所述第二图嵌入模型,得到对应所述第一图嵌入 模型的第一预测结果、及对应所述第二图嵌入模型的第二预测结果;
基于所述第一预测结果,确定所述第一图嵌入模型对应的损失函数的值;
基于所述第二预测结果,确定所述第二图嵌入模型对应的损失函数的值;
当第二图嵌入模型对应的损失函数的值小于对应第一图嵌入模型的损失函 数的值时,用第二图嵌入模型更新第一图嵌入模型。
上述方案中,所述分镜模块,还用于获取第一相似度阈值及第二相似度阈 值,所述第一相似度阈值大于第二相似度阈值;
将图嵌入特征间的相似度达到所述第一相似度阈值的两个视频帧划分至同 一分镜,
以及将图嵌入特征间的相似度未达到所述第二相似度阈值的两个视频帧划 分至不同分镜,以得到至少两个初始分镜。
上述方案中,所述分镜模块,还用于获取至少两个三元组,所述三元组包 括基准图像、与所述基准图像属于同一分镜的正图像、与所述基准图像属于不 同分镜的负图像;
获取至少两个候选相似度阈值;
基于所述三元组,确定各候选相似度对应的分镜准确率和分镜平衡分数;
将所述分镜平衡分数最高的候选相似度阈值作为第一相似度阈值;
将所述分镜准确率最高的候选相似度阈值作为第二相似度阈值。
上述方案中,所述聚合模块,还用于获取初始分镜间的相似度;
基于所述初始分镜间的相似度,对所述至少两个初始分镜进行聚合处理, 以使聚合到同一目标分镜中任两个初始分镜间的相似度都达到相似度阈值。
上述方案中,所述聚合模块,还用于当所述初始分镜包括至少两个视频帧 时,以第一初始分镜与第二初始分镜作为所述至少两个初始分镜中任意两个初 始分镜,对任意两个初始分镜执行以下处理:
针对第一初始分镜中任一目标视频帧,分别获取所述目标视频帧与第二初 始分镜中各视频帧之间的相似度,得到所述目标视频帧对应的至少两个相似度;
基于获取的第一初始分镜中各目标视频帧对应的至少两个相似度,确定所 述第一初始分镜中各目标视频帧对应的最大相似度;
获取最大相似度达到第一相似度阈值的目标视频帧的第一数量、及第一初 始分镜中目标视频帧的第二数量;
将所述第一数量与所述第二数量的比值,作为所述第一初始分镜与所述第 二初始分镜间的相似度。
上述方案中,所述聚合模块,还用于当所述初始分镜包括至少两个视频帧 时,以第一初始分镜与第二初始分镜作为所述至少两个初始分镜中任意两个初 始分镜,对任意两个初始分镜执行以下处理:
当第一初始分镜的播放时间顺序先于第二初始分镜时,获取第一初始分镜 中播放时间点顺序最后的目标视频帧;
获取所述目标视频帧与第二初始分镜中各视频帧之间的相似度,得到所述 目标视频帧对应的至少两个相似度;
将至少两个相似度的相似度平均值,作为第一初始分镜与所述第二初始分 镜间的相似度。
本申请实施例提供一种计算机设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例 提供的视频分镜方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引 起处理器执行时,实现本申请实施例提供的视频分镜方法。
本申请实施例具有以下有益效果:
应用上述实施例,通过对目标视频进行抽帧处理,得到对应所述目标视频 的视频帧序列;分别对所述视频帧序列中,各视频帧进行特征提取,得到各视 频帧的图嵌入特征;基于各视频帧的图嵌入特征,获取所述视频帧序列中相邻 视频帧的图嵌入特征间的相似度;基于所述相邻视频帧的图嵌入特征间的相似 度,对所述视频帧序列进行分镜处理,得到至少两个初始分镜,每个所述初始 分镜包括至少一个视频帧;相对于SIFT特征,本申请的图嵌入特征能够更准确 的描述视频帧,进而提升分镜的准确性;并且,本申请通过对初始分镜进行聚 合,使得目标分镜中的内部聚合度更高,提升了分镜聚合度。
附图说明
图1是对视频进行人工分镜的结果示意图;
图2是基于SIFT特征对视频进行分镜的结果示意图;
图3是本申请实施例提供的视频分镜系统的一个可选的架构示意图;
图4是本申请实施例提供的视频分镜方法的流程示意图;
图5是本申请实施例提供的ResNet模块的结构示意图;
图6是本申请实施例提供的初始分镜的确定流程示意图;
图7是本申请实施例提供的初始分镜的确定流程示意图;
图8是本申请实施例提供的聚合效果的示意图;
图9是本申请实施例提供的视频分镜方法;
图10是本申请实施例提供的视频分镜方法的流程示意图;
图11是本申请实施例提供的视频分镜的处理流程示意图;
图12是本申请实施例提供的视频分镜装置的结构示意图;
图13是本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申 请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普 通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本 申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集, 但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集, 并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象, 不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下 可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在 这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术 领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申 请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词 和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)视频分镜,指影视剧场景中经常会采用不同位置、角度的镜头拍摄,每 次更换镜头会造成视频场景变换,而同一场景内图像相同(常常是同一个人和 同一背景环境)。
相关技术中提供一种视频分镜方法,该方法基于SIFT的视频切换利器(pyScenedetect)库实现,也即,采用SIFT的视频切换利器(pyScenedetect)库, 对待分镜的视频中的每个视频帧进行SIFT特征提取,然后根据待分镜的视频中 相邻视频帧的SIFT特征的相似度进行分镜。
图1是对视频进行人工分镜的结果示意图,图2是基于SIFT特征对视频进 行分镜的结果示意图,参见图1及图2,相对于图1,图2中的分镜结果漏掉了 一个分镜201。
申请人在实施本申请实施例时发现上述方案中存在以下问题:
1)由于SIFT本身表达能力问题,无法应用海量数据中所有图像的区分, 如穿同一运动服的不同体育人物区分等;
2)在图像噪声失真或形变中角点特征容易引起图像表达错误以致看起来相 似图像在此特征表达下无法匹配到同一分镜;
3)难以区分细粒度的差异,如由于人脸在SIFT特征中的角点常常定位在 眼睛鼻子相同位置,但并不具备具体区分不同人眼睛鼻子的能力,在人脸场景 切换时,无法区分不同人脸构造;
4)由于其是逻辑驱动的分镜框架,而非数据驱动的分镜框架,其中“相邻 特征相似度分镜”并不适用于其它特征,同时SIFT特征不具备特征学习能力, 难以优化。
基于此,本申请实施例提供一种视频分镜方法、装置、设备和计算机可读 存储介质,能够解决以上问题至少之一。
参见图3,图3是本申请实施例提供的视频分镜系统的一个可选的架构示 意图,为实现支撑一个示例性应用,终端(示例性示出了终端400-1和终端40 0-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或 者是二者的组合。在实际应用中,终端上设置有客户端,如视频客户端,浏览 器客户端,新闻客户端,教育客户端等,终端和服务器的数量不受限制。
终端,用于接收输入的目标视频,并将目标视频发送至服务器;
服务器200,用于对目标视频进行抽帧处理,得到对应目标视频的视频帧 序列;分别对视频帧序列中,各视频帧进行特征提取,得到各视频帧的图嵌入 特征;基于各视频帧的图嵌入特征,获取视频帧序列中相邻视频帧的图嵌入特 征间的相似度;基于相邻视频帧的图嵌入特征间的相似度,对视频帧序列进行 分镜处理,得到至少两个初始分镜,每个初始分镜包括至少一个视频帧;对至 少两个初始分镜进行聚合处理,得到至少两个目标分镜;
终端,用于获取至少两个目标分镜。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物 理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、 云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全 服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工 智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔 记本电脑、台式计算机、智能音箱、智能手表、智能电视等,但并不局限于此。
基于上述对本申请实施例的视频分镜系统说明,下面说明本申请实施例提 供的视频分镜方法。参见图4,图4是本申请实施例提供的视频分镜方法的流 程示意图;在一些实施例中,该视频分镜方法可由终端单独实施,服务器单独 实施,或由终端和服务器协同实施,以服务器单独实施为例,本申请实施例提 供的视频分镜方法包括:
步骤401:服务器对目标视频进行抽帧处理,得到对应目标视频的视频帧 序列。
本申请实施例目标视频的来源及种类不做限定,服务器可以从线上业务流、 数据库或其他数据来源获取目标视频,目标视频可以是视频创作者发表的视频, 可以是即时通信过程中的聊天视频,也可以是电商发布的广告视频。
在实际实施时,服务器获取目标视频之后,获取所要抽帧的时间点,这里 可以是按照时间进行均匀抽帧,如每隔一秒设置一个时间点,即每隔一秒抽取 一帧,也可以是抽取指定时间点的视频帧,这里指定时间点可以是均匀的,也 可以是不均匀的,如指定时间点可以为1秒、2秒、5秒。
在一些实施例中,可以通过以下对目标视频进行抽帧处理,得到对应目标 视频的视频帧序列:获取目标视频的视频帧率、及目标视频的时长;根据目标 视频的视频帧率、及目标视频的时长,确定抽帧数量;根据抽帧数量,对目标 视频进行抽帧处理,得到包含抽帧数量的视频帧的视频帧序列。
这里,视频帧率是用于测量显示帧数的量度,即每秒显示帧数。在实际实 施时,可以根据视频帧率来确定抽帧的时间点,也即对于任一秒,确定与视频 帧率相同数量的时间点,如视频帧率为25,那么每一秒需要抽取25个视频帧, 也即每隔0.04秒抽取一个视频帧。根据目标视频的视频帧率和目标视频的时长, 便可以确定抽帧数量,如视频帧率为25,时长为4秒,那么共抽取100个视频 帧,这里的视频帧按照播放时间点,组成视频帧序列。
如此,本申请通过获取目标视频的视频帧率、及目标视频的时长;根据目 标视频的视频帧率、及目标视频的时长,确定抽帧数量,能够使抽取的视频帧 之间更加的连贯,更利于后续的分镜。
步骤402:对视频帧序列中的各视频帧进行特征提取,得到各视频帧的图 嵌入特征。
在一些实施例中,可以通过第一图嵌入模型,分别对视频帧序列中,各视 频帧进行特征提取,得到各视频帧的图嵌入特征。
这里,第一图嵌入模型基于训练集训练得到的,在实际实施时,服务器构 建神经网络模型,如卷积神经网络模型等,将包含多个图像样本的训练集输入 构建得到神经网络模型,基于输出结果计算损失函数的值,然后将损失函数的 值反向传输如神经网络模型的各个层,通过随机梯度下降法(SGD,Stochastic Gradient Descent)更新各个层的模型参数,以对神经网络模型进行训练,得 到第一图嵌入模型。在得到第一图嵌入模型之后,通过训练得到的第一图嵌入 模型对视频帧序列中的视频帧进行特征提取。
本申请通过第一图嵌入模型,对视频帧序列中的各视频帧进行特征提取, 得到个视频帧的图嵌入特征,由于本申请的第一图嵌入模型是基于包含多个图 像样本的训练集训练得到的,通过第一图嵌入模型提取的图嵌入特征能够更好 的表示视频帧,进而提升分镜的准确性。
在一些实施例中,第一图嵌入模型可以采用resnet101作为网络结构,参见 图5,图5是本申请实施例提供的ResNet模块的结构示意图,这里使用1×1 卷积先将输入的256维进行降维到64维,然后经过3×3卷积后,再用1×1 卷积进行升维恢复到256维,可降低参数的计算量。
这里,resnet101包括特征模块及嵌入embedding模块,表1是本申请实施 例提供的resnet101的特征模块结构表,参见表1,本申请实施例提供的resnet 101的特征模块包括5个卷积层,即Conv1、Conv2_x、Conv3_x、Conv4_x、 Conv5_x,其中,Conv1为7×7×64的卷积,跨度(stride)为2,Conv2_x包 括3×3最大池化层(max pool)和3个ResNet模块(block),Conv3_x-Conv5 _x分别包括3个ResNet模块、4个ResNet模块、23个ResNet模块以及3个R esNet模块;表2是本申请实施例提供的resnet101的embedding模块结构表, 参见表2,embedding模块包括最大池化层。
表1 resnet101的特征模块结构表
层的名字
输出尺寸
层
Pool_cr
1×2048
最大池化层
表2 resnet101的embedding模块结构表
在实际实施时,在训练过程中,可以在最大池化层后增加一个分类层,即 全连接层,分类层用于基于最大池化层输出的图嵌入特征,对图像进行分类预 测,得到图像的列表。在实际应用中,将标注有图像类别的图像作为训练样本, 将训练样本输入resnet101网络结构,输出训练样本对应的图嵌入特征,然后将 图嵌入特征输入全连接层,输出训练样本的图像类别,基于输出的图像类别及 标注的图像类别之间的差异,确定损失函数的值,然后基于损失函数的值,更 新更新各个层的模型参数。
步骤403:基于各视频帧的图嵌入特征,获取视频帧序列中相邻视频帧的 图嵌入特征间的相似度。
这里,相似度可以基于闵可夫斯基距离、欧式距离、余弦相似度、皮尔逊 相关系数等计算得到。
示例性的,以余弦相似度为例进行说明,图嵌入特征可以以向量的形式表 示,对于视频帧序列中任意两个相邻视频帧,获取这两个视频帧的图嵌入特征, 计算这两个图嵌入特征的夹角余弦,以将计算得到的夹角余弦作为这两个图嵌 入特征间的相似度。
步骤404:基于相邻视频帧的图嵌入特征间的相似度,对视频帧序列进行 分镜处理,得到至少两个初始分镜。
其中,每个初始分镜包括至少一个视频帧。
在实际实施时,判断相邻视频帧的图嵌入特征间的相似度是否满足相似度 条件,若满足则确定相邻视频帧属于同一分镜,以对视频帧序列进行分镜处理, 这里,同一初始分镜中的视频帧在播放时间上是连续的。
在一些实施例中,获取相似度阈值;将图嵌入特征间的相似度达到相似度 阈值的两个视频帧划分至同一分镜,以得到至少两个初始分镜。
在实际实施时,对于任意两个相邻视频帧,这里两个相邻视频帧为第一视 频帧和第二视频帧,其中第一视频帧的播放时间点先与第二视频帧的播放时间 点,判断第一视频帧与第二视频帧的图嵌入特征间的相似度是否达到第一相似 度阈值,若是,将第二视频帧划分至与第一视频帧相同的初始分镜中;否则, 创建新的初始分镜,将第二视频帧划分至新的初始分镜中。
图6是本申请实施例提供的初始分镜的确定流程示意图,参见图6,第一 个视频帧与第二个视频帧的图嵌入特征间的相似度达到相似度阈值,将第一视 频帧与第二视频帧划分至初始分镜1;第二个视频帧与第三个视频帧的图嵌入 特征间的相似度达到相似度阈值,将第三个视频帧划分至与第二个视频帧相同 的初始分镜中,即初始分镜1;第三个视频帧与第四个视频帧的图嵌入特征间 的相似度未达到相似度阈值,将第四个视频帧划分至与第三个视频帧不同的初 始分镜中,即初始分镜2;第五个视频帧与第四个视频帧的图嵌入特征间的相 似度达到相似度阈值,将第五个视频帧划分至与第四个视频帧相同的初始分镜 中,即初始分镜2。
在一些实施例中,获取第一相似度阈值及第二相似度阈值,第一相似度阈 值大于第二相似度阈值;将图嵌入特征间的相似度达到第一相似度阈值的两个 视频帧划分至同一分镜,以及将图嵌入特征间的相似度未达到第二相似度阈值 的两个视频帧划分至不同分镜,以得到至少两个初始分镜。
在实际实施时,对于任意两个相邻视频帧,这里,两个相邻视频帧为第一 视频帧和第二视频帧,其中,第一视频帧的播放时间点先与第二视频帧的播放 时间点,判断第一视频帧与第二视频帧的图嵌入特征间的相似度是否达到第一 相似度阈值,若是,将第二视频帧划分至与第一视频帧相同的初始分镜中;否 则,判断第一视频帧与第二视频帧之间的图嵌入特征间的相似度是否达到第二 相似度阈值,若是,则表示第二视频帧为过渡帧,不将其划分至任何初始分镜, 否则,创建一个新的初始分镜,将第二视频帧划分至新的初始分镜中。
例如,图7是本申请实施例提供的初始分镜的确定流程示意图,参见图7, 第一个视频帧与第二个视频帧的图嵌入特征间的相似度达到第一相似度阈值, 将第一视频帧与第二视频帧划分至初始分镜1;第二个视频帧与第三个视频帧 的图嵌入特征间的相似度达到第一相似度阈值,将第三个视频帧划分至与第二 个视频帧相同的初始分镜中,即初始分镜1;第三个视频帧与第四个视频帧的 图嵌入特征间的相似度未达到第一相似度阈值,且第三个视频帧与第四个视频 帧的图嵌入特征间的相似度达到第二相似度阈值,这里,不将第四个视频帧划 分至任何初始分镜中;第五个视频帧与第四个视频帧的图嵌入特征间的相似度 未达到第一相似度阈值、且未达到第二相似度阈值,将第五个视频帧划分至与 第四个视频帧不同的初始分镜中,即初始分镜2。
在实际应用中,在视频帧序列中,存在过渡性视频帧,也即在镜头转换过 程中,为提升视觉效果的视频帧,如淡入淡出、两图重叠、放大缩小等,本申 请在进行分镜处理时,不考虑这部分视频帧,基于此,在进行分镜时,将将图 嵌入特征间的相似度达到第一相似度阈值的两个视频帧划分至同一分镜,以及 将图嵌入特征间的相似度未达到第二相似度阈值的两个视频帧划分至不同分镜, 而不考虑位于第一相似度阈值与第二相似度阈值之间的视频帧,如此,能够避 免过渡性视频帧影响整体的分镜结果,提升了分镜的准确性。
在一些实施例中,可以通过以下方式获取第一相似度阈值和第二相似度阈 值,获取至少两个三元组,三元组包括基准图像、与基准图像属于同一分镜的 正图像、与基准图像属于不同分镜的负图像;获取至少两个候选相似度阈值; 基于三元组,确定各候选相似度阈值对应的分镜准确率和分镜平衡分数;将分 镜平衡分数最高的候选相似度阈值作为第一相似度阈值;将分镜准确率最高的 候选相似度阈值作为第二相似度阈值。
在实际实施时,预先设置多个候选相似度阈值,例如,设置0.05~0.99中每 隔0.01为一个候选相似度阈值,然后对多个候选相似度阈值进行遍历,对于每 隔候选相似度阈值,获取三元组中基准图像、正图像及负图像的图嵌入特征, 并获取基准图像与正图像的图嵌入特征间的相似度、以及基准图像与正图像的 图嵌入特征间的相似度,获取多个三元组中基准图像与正图像的图嵌入特征间 的相似度大于该候选相似阈值、且基准图像与负图像的图嵌入特征间的相似度 小于该候选相似度阈值的三元组的数量,将该数量与三元组总数量的比值作为 分镜准确率。并获取多个三元组中基准图像与正图像的图嵌入特征间的相似度 大于该候选相似阈值的第一数量,以及基准图像与负图像的图嵌入特征间的相 似度大于该候选相似度阈值的三元组的第二数量,确定第一数量与第二数量的 和,将第一数量、与第一数量与第二数量的和的比值作为召回率。
在得到基于各候选相似度阈值对应的分镜准确率和分镜召回率之后,可以 根据获取分镜平衡分数,其中,precision为准确率,recal l为召回率。这里,根据获取的分镜准确率和分镜平衡分数,将平衡分数最高的 候选相似度阈值作为第一相似度阈值;将准确率最高的候选相似度阈值作为第 二相似度阈值。
在实际应用中,若基于上述方式获取的第二相似度阈值大于第一相似度阈 值,可以根据thr2=thr1-0.05确定第二相似度阈值,其中thr1为第一相似度阈值, thr2为第二相似的阈值。
由于本申请的第一相似度阈值和第二相似度阈值,是根据三元组中各图像 的图嵌入特征筛选得到的,其会根据图嵌入模型的不同而进行相应修改,相对 于固定的第一相似度阈值和第二相似度阈值,本申请所确定的第一相似度阈值 和第二相似度阈值能够使分镜更加准确。
步骤405:对至少两个初始分镜进行聚合处理,得到至少两个目标分镜。
在实际实施时,同一分镜的内容可以在不同播放时间播放,如视频中包括 两个人的对话,会存在两个镜头之间的来回切换,基于此,本申请对至少两个 初始分镜进行聚合处理,以将同一镜头拍摄的画面聚合到一个目标分镜中,提 升分镜的聚合度。
例如,图8是本申请实施例提供的聚合效果的示意图,参见图8,图8中 的初始分镜801A和初始分镜801B是通过同一镜头拍摄的,虽然中间插播了其 它分镜,但可以将其聚合到一起,作为一个目标分镜,以及初始分镜802A和 初始分镜802B是通过同一镜头拍摄的,将初始分镜802A和初始分镜802B聚 合到一起,作为一个目标分镜。
在一些实施例中,可以通过以下方式对至少两个初始分镜进行聚合处理, 得到至少两个目标分镜:获取初始分镜间的相似度;基于初始分镜间的相似度, 对至少两个初始分镜进行聚合处理,以使聚合到同一目标分镜中任两个初始分 镜间的相似度都达到相似度阈值。
这里,聚合到同一目标分镜中的初始分镜的数量可以为两个或者多个,在 实际实施时,对于每个初始分镜,获取该初始分镜与其它各初始分镜之间的相 似度,然后若该初始分镜与某一初始分镜之间的相似度达到相似度阈值,那么 将这两个初始分镜聚合到一起,得到目标分镜;若需要将其它初始分镜聚合至 该目标分镜中,那么该初始分镜需要与目标分镜中的每个初始分镜之间的相似 度都达到相似度阈值。
例如,将初始分镜A、B、C合并为一个目标分镜,那么分镜A与分镜B 之间的相似度达到相似度阈值,分镜A与分镜C之间的相似度达到相似度阈值, 且分镜B与分镜C之间的相似度达到相似度阈值。
在一些实施例中,可以通过以下方式获取初始分镜间的相似度:当初始分 镜包括至少两个视频帧时,以第一初始分镜与第二初始分镜作为至少两个初始 分镜中任意两个初始分镜,对任意两个初始分镜执行以下处理:针对第一初始 分镜中任一目标视频帧,分别获取目标视频帧与第二初始分镜中各视频帧之间 的相似度,得到目标视频帧对应的至少两个相似度;基于获取的第一初始分镜 中各目标视频帧对应的至少两个相似度,确定第一初始分镜中各目标视频帧对 应的最大相似度;获取最大相似度达到第三相似度阈值的目标视频帧的第一数 量、及第一初始分镜中目标视频帧的第二数量;将第一数量与第二数量的比值, 作为第一初始分镜与第二初始分镜间的相似度。
在实际实施时,若第一初始分镜中包括m个视频帧,第二初始分镜中包括 n个视频帧,那么,对于第一初始分镜中的任一目标视频帧,获取该目标视频 帧与第二初始分镜中n个视频帧之间的相似度,得到n个相似度,获取这n个 相似度之间中最大相似度,作为该目标视频帧对应的最大相似度;那么,对于 第一初始分镜中的m个视频帧,可以得到m个最大相似度;将这m个最大相 似度与第三相似度阈值进行比较,获取这m个最大相似度中达到第三相似度阈 值的第一数量,然后将该第一数量与m的比值作为第一初始分镜与第二初始分镜之间的相似度。
这里,在确定相似度时,获取每个视频帧的图嵌入特征,然后通过获取目 标视频帧与第二初始分镜中n个视频帧的图嵌入特征间的相似度,来确定目标 视频帧与第二初始分镜中n个视频帧之间的相似度。
例如,第一初始分镜中包括5个视频帧A、B、C、D、E,第二初始分镜 中包括4个视频帧F、G、H、J,那么,获取A的图嵌入特征与F、G、H、J 的图嵌入特征之间的相似度,并选择最高相似度作为A对应的相似度,如0.8、 0.75、0.82、071,那么将0.82作为A对应的相似度。采用相同的方式,获取B、 C、D、E对应的相似度,如获取的A、B、C、D、E对应的相似度分别为0.82、0.73、0.78、0.77、0.74,当第三相似度阈值为0.75时,确定第一初始分镜与第 二初始分镜之间的相似度为0.6。
在一些实施例中,可以通过以下方式获取初始分镜间的相似度:当初始分 镜包括至少两个视频帧时,以第一初始分镜与第二初始分镜作为至少两个初始 分镜中任意两个初始分镜,对任意两个初始分镜执行以下处理:当第一初始分 镜的播放时间顺序先于第二初始分镜时,获取第一初始分镜中播放时间点顺序 最后的目标视频帧;获取目标视频帧与第二初始分镜中各视频帧之间的相似度, 得到目标视频帧对应的至少两个相似度;将至少两个相似度的相似度平均值, 作为第一初始分镜与第二初始分镜间的相似度。
在实际实施时,通常通过同一分镜中的视频帧在播放时间上应该是连续的, 基于此,可以获取播放时间靠前的一个初始分镜的最后一个目标视频帧,然后 将该目标视频帧与播放时间靠后的一个初始分镜中的各视频帧进行相似度匹配, 以得到该目标视频帧与各视频帧之间的相似度,接着获取这些相似度的平均值, 得到第一初始分镜与第二初始分镜间的相似度。
例如,第一初始分镜中包括5个视频帧A、B、C、D、E(按照播放时间 点排序),第二初始分镜中包括4个视频帧F、G、H、J,那么,获取A的图嵌 入特征与F、G、H、J的图嵌入特征之间的相似度,如0.8、0.75、0.82、071, 然后获取这几个相似度的平均值,如0.8、0.75、0.82、071的平均值为0.77, 那么将0.77作为第一初始分镜与第二初始分镜间的相似度。
在一些实施例中,对至少两个初始分镜进行聚合处理,得到至少两个目标 分镜之后,服务器还可以从至少两个目标分镜中筛选出分镜难例;获取对应分 镜难例的人工分镜结果,人工分镜结果用于指示归属于同一分镜的视频帧;基 于分镜难例及人工分镜结果构建训练集,并通过训练集,对第一图嵌入模型的 模型参数进行更新,得到第二图嵌入模型。
在实际实施时,在得到目标分镜之后,可以从至少两个目标分镜中筛选出 分镜难例从至少两个目标分镜中筛选出分镜难例,这里的所述分镜难例为基于 难例判断条件,判断为分镜错误的目标分镜,其中,难例判断条件可以为目标 分镜中视频帧数量未达到数量阈值等;然后通过人工对筛选出的分镜难例进行 判断,即判断该分镜难例中的视频帧是够属于同一分镜,以及当判断目标分镜 中的视频帧不属于同一分镜时,对该目标分镜中的视频帧进行分镜处理,以得 到人工分镜结果;这里,基于分镜难例及人工分镜结果构建训练集,将训练集 输入第一图嵌入模型,对第一图嵌入模型的模型参数进行更新,得到第二图嵌 入模型。
本申请通过基于分镜难例及人工分镜结果构建训练集,并通过训练集,对 第一图嵌入模型的模型参数进行更新,得到第二图嵌入模型,如此,能够根据 分镜结果对第一图嵌入模型进行更新,提升第一图嵌入模型的特征表达能力, 进而提升后续分镜的准确性。
在实际实施时,在得到目标分镜之后,可以分别判断各目标分镜是否分镜 错误,若是,则将其确定为分镜难例,在一些实施例中,可以通过以下方式从 至少两个目标分镜中筛选出分镜难例:获取各目标分镜中的视频帧数量、及各 所述目标分镜对应的平均视频帧数量;分别确定各目标分镜中的视频帧数量与 平均数量的比值;将视频帧数量与平均数量的比值未达到目标比值的目标分镜, 作为分镜难例。
在实际实施时,获取所有目标分镜中视频帧数量的总和,然后确定视频帧 数量的总和与目标分镜的数量的比值,为所述目标分镜对应的平均视频帧数量; 对于每一个目标分镜,获取该目标分镜中视频帧数量,确定该视频帧数量与平 均视频帧数量的比值,若少于目标比值,则确定该目标分镜为分镜难例。
例如,可以将目标比值设置为1/4,获取所有目标分镜中视频帧数量,如有 五个目标分镜,分镜中数量分别为8、12、13、2、10,那么至少两个目标分镜 中视频帧对应每个目标分镜的平均数量为9,由此可知,第4个目标分镜中视 频帧数量与平均数量的比值小于1/4,因此,该目标分镜为分镜难例。
在一些实施例中,也可以直接根据目标分镜中视频帧数量,来判断该目标 分镜是否为分镜难例,也即判断目标分镜中视频帧数量是否达到数量阈值,若 未达到,则表示该目标分镜为分镜难例,如可以将目标分镜中视频帧数量小于 2的目标分镜确定为分镜难例。
在一些实施例中,可以通过以下方式从至少两个目标分镜中筛选出分镜难 例:当目标分镜包括至少两个视频帧时,对于每个目标分镜执行以下操作:从 目标分镜中的第一个视频帧开始,依据播放时间点顺序获取目标比例的视频帧, 得到第一视频帧子集,并从目标分镜中的最后一个视频帧开始,依据播放时间 点逆序获取目标比例的视频帧,得到第二视频帧子集;获取第一视频帧子集与 第二视频帧子集之间的相似度;当相似度未达到第四相似度阈值时,确定目标 分镜为分镜难例。
申请人在实施本申请的过程中发现,分镜常见的分镜难例是由“a场景→短 时间过渡视频帧→b场景”组成的错误分镜,基于此,本申请通过比较目标分镜 内前目标比例的视频帧和后目标比例的视频帧,来确定分镜难例,以避免中间 段时间过渡视频帧分镜难例确定的准确性。
在实际实施时,在计算第一视频帧子集与第二视频帧子集时,可以采用与 上述确定初始分镜间的相似度相同的方式,计算第一视频帧子集与第二视频帧 子集之间的相似度。
例如,将目标比例设置为1/3,那么按照播放时间点顺序,获取目标分镜中 前1/3的视频帧、及目标分镜中后1/3的视频帧,将前1/3的视频帧作为第一视 频帧子集,并将后1/3的视频帧作为第二视频帧子集;对于第一视频帧子集中 每个目标视频帧,获取该目标视频帧与第二视频帧子集中各视频帧之间的相似 度,从得到的多个相似度中,获取最大相似度作为该目标视频帧对应的相似度; 获取第一视频帧子集中所有目标视频帧对应的相似度,并分别将各目标视频帧 对应的相似度与相似度阈值进行比较,确定达到第三相似度阈值的相似度数量; 确定相似度数量与第一视频子集中视频帧数量的比值,为第一视频帧子集与第 二视频帧子集之间的相似度;当该相似度未达到第四相似度阈值,确定该目标分镜为分镜难例。
在一些实施例,训练集包括多个三元组,三元组包括基准图像、与基准图 像属于同一分镜的正图像、与基准图像属于不同分镜的负图像;可以通过以下 方式基于损失函数的值,对第一图嵌入模型的模型参数进行更新:将三元组中 基准图像、正图像、及负图像输入第一图嵌入模型;通过第一图嵌入模型对基 准图像、正图像、及负图像,进行前向计算,预测得到基准图像的图嵌入特征、 正图像的图嵌入特征、及负图像的图嵌入特征;获取基准图像的图嵌入特征和 正图像的图嵌入特征之间的第一差异、及基准图像的图嵌入特征与负图像的图 嵌入特征之间的第二差异,并基于第一差异及第二差异,确定第一图嵌入模型 的损失函数的值;基于损失函数的值,对第一图嵌入模型的模型参数进行更新。
在实际实施时,可以根据分镜难例和人工分镜结果,确定多个难例对A-B, 其中,A和B分别代表一个分镜,A中的视频帧互为相似,B中的视频帧互为 相似,且A和B中的视频帧互为不相似,也即集内互为相似视频帧、而集外互 为不相似视频帧,从难例对中抽取多个三元组,例如,A为{a1,a2,…},B为{b 1,b2,b3,…},可以从A-B中可以抽取到(a1,a2,b1)、(a1,a3,b2)等,以(a1,a 2,b1)为例,a1为基准图像,a2与a1属于同一分镜,b1与a1属于不同分镜, 也即a2为正图像,b1为负图像。
在得到三元组之后,将三元组中的图像输入第一图嵌入模型,通过第一图 嵌入模型对基准图像、正图像、及负图像,进行前向计算,预测得到基准图像 的图嵌入特征、正图像的图嵌入特征、及负图像的图嵌入特征。这里,在对第 一图嵌入模型进行更新时,学习任务是使基准图像与正图像之间的相似度增大, 而基准图像与负图像之间的相似度减少,也即使基准图像的图嵌入特征与正图 像的图嵌入特征之间的距离尽可能小,以及使基准图像的图嵌入特征与负图像 的图嵌入特征之间的距离尽可能大。
基于上述学习任务,可以构建损失函数为:
其中,a为基准图像,p为正图像,n为负图像,f函数为第一图嵌入模型, α取值为0.2。
基于上述损失函数,计算损失函数的值,并将损失函数的值反向传播至第 一图嵌入模型的每一层,对将损失函数的值反向传中至图像分类模型的各个层, 通过随机梯度下降法更新各个层的模型参数,从而完成一轮训练。这里可以进 行多轮训练,以得到第二图嵌入模型。
在一些实施例中,服务器还可以获取测试集,并将测试集分别输入至第一 图嵌入模型、及第二图嵌入模型,得到对应第一图嵌入模型的第一预测结果、 及对应第二图嵌入模型的第二预测结果;基于第一预测结果,确定第一图嵌入 模型对应的损失函数的值;基于第二预测结果,确定第二图嵌入模型对应的损 失函数的值;当第二图嵌入模型对应的损失函数的值小于对应第一图嵌入模型 的损失函数的值时,用第二图嵌入模型更新第一图嵌入模型。
在实际实施时,仅当第二图嵌入模型优于第一图嵌入模型时,才用第二图 嵌入模型更新第一图嵌入模型,以基于第二图嵌入模型进行后续的分镜。这里, 通过测试集对第一图嵌入模型和第二图嵌入模型进行测试,以损失函数的值作 为衡量模型优劣的参数,比较第一图嵌入模型和第二图嵌入模型。
在一些实施例中,测试集可以包括标准测试集和难例测试集,那么可以获 取对应第一图嵌入模型的标准测试集的损失函数的值L00、第一图嵌入模型的 难例测试集的损失函数的值L01、第二图嵌入模型的标准测试集的损失函数的 值L10、第二图嵌入模型的难例测试集的损失函数的值L10,当L00大于L10、 且L01大于L11时,用第二图嵌入模型更新第一图嵌入模型。
其中,标准测试集是基于均匀分布的长视频剧集样本构建的,其是经过人 工清洗得到的;难例测试集是基于分镜难例构建的。
这里以构建标准测试集为例,获取标准样本对A-B,随机抽取多个三元组, 如抽取10个三元组,组成测试子集1,抽取一次或者多次,得到一个或多个测 试子集,得到标准测试集,如抽取10次,得到由10个测试子集组成的标准测 试集。这里,难例测试集的方式与标准测试集的构建方式相同。
需要说明的是,三元组的抽取方式与上述构建训练集时的抽取方式相同。
那么,将标准测试集中各三元组输入第一图嵌入模型,输出各三元组中基 准图像的图嵌入特征、正图像的图嵌入特征、及负图像的图嵌入特征,基于得 到的这些图嵌入特征,计算损失函数的值。当标准测试集包括多个测试子集时, 获取多个测试子集的损失函数的值的平均值为L00。
相应的,将难例测试集中各三元组输入第一图嵌入模型,输出各三元组中 基准图像的图嵌入特征、正图像的图嵌入特征、及负图像的图嵌入特征,基于 得到的这些图嵌入特征,计算损失函数的值。当难例测试集包括多个测试子集 时,获取多个测试子集的损失函数的值的平均值为L01。
这里,第二图嵌入模型的标准测试集的损失函数的值L10、及第二图嵌入 模型的难例测试集的损失函数的值L10,可以基于与上述相同的方式获取。
应用上述实施例,通过对目标视频进行抽帧处理,得到对应目标视频的视 频帧序列;通过第一图嵌入模型,分别对视频帧序列中,各视频帧进行特征提 取,得到各视频帧的图嵌入特征;基于各视频帧的图嵌入特征,获取视频帧序 列中相邻视频帧的图嵌入特征间的相似度;基于相邻视频帧的图嵌入特征间的 相似度,对视频帧序列进行分镜处理,得到至少两个初始分镜,每个初始分镜 包括至少一个视频帧;相对于SIFT特征,本申请的图嵌入特征能够更准确的描 述视频帧,进而提升分镜的准确性;并且,本申请通过对初始分镜进行聚合, 使得目标分镜中的内部聚合度更高,提升了分镜聚合度。
下面继续说明本申请实施例提供的视频分镜方法,参见图9,图9是本申 请实施例提供的视频分镜方法,本申请实施例提供的视频分镜方法由第一终端、 第二终端及服务器协同实施,本申请实施例提供的视频分镜方法包括:
步骤901:第一终端发送目标视频至服务器。
步骤902:服务器对目标视频进行抽帧处理,得到对应目标视频的视频帧 序列。
步骤903:服务器通过第一图嵌入模型,分别对视频帧序列中,各视频帧 进行特征提取,得到各视频帧的图嵌入特征。
步骤904:服务器将图嵌入特征间的相似度达到第一相似度阈值的两个视 频帧划分至同一分镜,以及将图嵌入特征间的相似度未达到第二相似度阈值的 两个视频帧划分至不同分镜,以得到至少两个初始分镜。
步骤905:服务器获取初始分镜间的相似度。
步骤906:服务器基于初始分镜间的相似度,对至少两个初始分镜进行聚 合处理,得到至少两个目标分镜。
步骤907:服务器从目标分镜中的第一个视频帧开始,依据播放时间点顺 序获取1/3的视频帧,得到第一视频帧子集,并从目标分镜中的最后一个视频 帧开始,依据播放时间点逆序获取1/3的视频帧,得到第二视频帧子集。
步骤908:服务器获取第一视频帧子集与第二视频帧子集之间的相似度。
步骤909:服务器当相似度未达到相似度阈值时,确定目标分镜为分镜难 例。
步骤910:服务器将分镜难例发送至第二终端。
步骤911:第二终端获取对应分镜难例的人工分镜结果,并返回给服务器。
步骤912:服务器基于分镜难例及人工分镜结果构建训练集,并通过训练 集,对第一图嵌入模型的模型参数进行更新,得到第二图嵌入模型。
步骤913:服务器获取测试集,并将测试集分别输入至第一图嵌入模型、 及第二图嵌入模型,得到对应第一图嵌入模型的第一预测结果、及对应第二图 嵌入模型的第二预测结果。
步骤914:服务器基于第一预测结果,确定第一图嵌入模型对应的损失函 数的值。
步骤915:服务器基于第二预测结果,确定第二图嵌入模型对应的损失函 数的值。
步骤916:服务器当第二图嵌入模型对应的损失函数的值小于对应第一图 嵌入模型的损失函数的值时,用第二图嵌入模型更新第一图嵌入模型。
应用上述实施例,由于第一图嵌入模型是通过数据训练得到的,相对于SI FT特征,本申请的图嵌入特征能够更准确的描述视频帧,进而提升分镜的准确 性;本申请通过对初始分镜进行聚合,使得目标分镜中的内部聚合度更高,提 升了分镜聚合度;并且,从目标分镜中获取分镜难例,以构建训练集,对第一 图嵌入模型的模型参数进行更新,实现了自我优化,进一步提升分镜准确性。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。图10 是本申请实施例提供的视频分镜方法的流程示意图,参见图10,本申请实施例 提供的视频分镜方法包括:
步骤1001:服务器获取视频。
步骤1002:服务器对视频进行抽帧。
在实际实施时,采用开源图像库opencv对视频进行抽帧,将视频装换成视 频帧序列。
例如,对于一个10秒钟25fps的视频,一共能抽取到250个视频帧。
步骤1003:服务器通过深度学习网络模型,获取各视频帧的图嵌入特征。
这里,采用预设的深度学习网络模型对各视频帧进行特征提取,得到各视 频帧的图嵌入特征。
在实际实施时,可以采用resnet101作为网络结构,这里采用腾讯开源ML -Images(一个大规模图像分类数据集)训练模型参数,以得到预设的深度学习 网络模型,通过预设的深度学习网络模型,对上述视频帧序列逐帧提取特征, 在每各视频帧输入深度学习网络模型后,以表2中Pool_cr层输出的结果作为 图嵌入特征,即1*2048维特征。
步骤1004:服务器基于相邻视频帧的图嵌入特征间的相似度,进行分镜处 理。
在实际实施时,预设第一相似度阈值和第二相似度阈值(如第一相似度阈 值为0.9,第二相似度阈值为0.85),建立分镜结果字典D={1:[],2:[],3:[],4:[],…, M:[]},其中1代表第一个初始分镜,其下设一个列表用于存放后续分镜结果(对 应帧id的列表),如D={1:[1,2,3],2:[4,5],…}表示第1、2、3帧属于第1个 初始分镜,第4、5帧属于第2初始分镜。
将第1个视频帧存至第1个初始分镜中,预设当前初始分镜为shotx为1 (表示当前视频帧属于初始分镜shotx);对于第2到N个视频帧x以此进行以 下操作:
1)若视频帧x与视频帧x-1的图嵌入特征间的相似度大于第一相似度(th r1),则x与x-1同属于同一初始分镜,把x记录在与x-1相同的分镜列表中;
2)若视频帧x与视频帧x-1的图嵌入特征间的相似度小于第二相似度阈值(thr2),则在D中新建初始分镜shotx+1,将视频帧x记录在新分镜列表中。
本申请在进行分镜处理的过程中,不保留与上一视频帧的图嵌入特征间的 相似度介于thr1、thr2之间的视频帧。
步骤1005:服务器对初始分镜进行聚合处理。
这里,对于初始分镜1到初始分镜M中的每一个初始分镜P,获取初始分 镜中视频帧数量n,对初始分镜P到初始分镜M中的每个初始分镜q,若初始 分镜q未被合并,则判断初始分镜p与初始分镜q之间的相似度是否大于0.5, 若是,则将初始分镜p和初始分镜q合并为一个目标分镜;若初始分镜q已经 被合并,则跳过初始分镜q。
其中,初始分镜p与初始分镜q之间的相似度可以通过以下方式获取:对 于初始分镜p中每个目标视频帧,获取该目标视频帧与初始分镜q中每个视频 帧之间的相似度,获取得到的多个相似度中的最大相似度,作为目标视频帧对 应的最大相似度,获取各目标视频帧对应的最大相似度达到第一相似度阈值的 数量nsim,将nsim/n作为初始分镜p与初始分镜q之间的相似度。
步骤1006:服务器抽取分镜难例。
这里,根据目标分镜的长度、目标分镜内、外相似度,从多个目标分镜中 获取分镜难例。
在实际实施时,计算目标分镜的视频帧数量的平均数,即总视频帧数量/ 目标分镜数量,对于每个目标分镜,若目标分镜内视频帧数量小于平均数量, 或目标分镜内视频帧数量少于2个,则将该目标分镜确定为分镜难例。
或者,分镜内前1/3视频帧与后1/3视频帧的视频帧子集间相似度小于0.3, 则前1/3与后1/3互为分镜难例,并记录为A-B分镜难例对。在难例挖掘中, 由于数据量巨大、而人力投入有限,本方法希望难例挖掘到的数据内部聚合度 足够高从而避免由于内部聚合不当造成二次标注,故这里采用更小的阈值(0. 3相比thr1),使难例数量精而效果准。
其中,视频帧子集间相似度的计算方式,与上述确定初始分镜间的相似度 的方式相同。
步骤1007:服务器进行难例数据收集。
这里,通过人工对获取的分镜难例进行判断,也即判断该目标分镜是否分 镜正确,以标注属于同一分镜的视频帧。
对于上述获取的分镜难例对,人工判断其中的A与B是否为不同的分镜内 容,若是,则保存该分镜难例对。
步骤1008:服务器进行视频基础分镜数据积累。
这里,获取属于同一分镜的视频帧,以进行基础分镜数据积累。
本申请需要维护3个数据集,即分镜难例测试集、分镜数据集、分镜标准 测试集。首先,初始化分镜难例测试集为空;初始化分镜数据集为均匀分布的 长视频剧集样本P中,目标分镜所对应分镜结果;初始化分镜标准测试集为均 匀分布的长视频剧集样本Q中(与P无交集),目标分镜所对应分镜结果中经 过人工清洗得到的标准分镜测试集;将以上分镜难例对添加到分镜数据库中, 同时添加到分镜难例测试集中。
这里,每个测试集包含A-B难例对,为:{a1,a2,…}和{b1,b2,b3,…},其中 代表由a1、a2…组成的A分镜,及b1、b2、b3的B分镜,集内互为相似图像、 而集外互为不相似图像。每次训练中可抽取三元组(Anchor、Positive、Negati ve)作为一个样本组合,Anchor为基准图像、Positive为与所述基准图像属于 同一分镜的正图像、Negative为与所述基准图像属于不同分镜的负图像,如从A-B中可以抽取到(a1,a2,b1)、(a1,a3,b2),后续深度学习网络模型的任务是 使得anchor-positive相似度增大,而anchor-negative相似度减少。
步骤1009:服务器对深度学习网络模型进行训练。
这里,通过积累的分镜数据,实现基于度量学习的模型训练。
在实际应用中,采用基于SGD的梯度下降法,更新深度学习网络模型的卷 积模板参数w和偏置参数b,在每次迭代过程中,计算预测结果误差并反向传 播到神经学习网络的每一层,计算梯度并更新卷积神经网络模型的参数。具体 过程为:把模型的所有参数都设为需要学习状态,训练时,通过深度学习网络 模型对输入的三张图像(Anchor、Positive、Negative)进行前向计算,得到预 测结果,基于预测结果计算损失函数的值,将损失函数的值回传到深度学习网 络模型中,通过随机梯度下降法更新模型参数,从而实现一次参数优化。这里, 共训练60个epoch,每个epoch遍历完所有训练集中的A-B样本对(没样本对 采取10个三元组)。
这里,损失函数为 其中,a为基准图像,p为正图像,n为负图像,f函数为深度学习网络模 型,α取值为0.2。
步骤1010:服务器更新用于提取图嵌入特征的深度学习网络模型。
这里,通过指标测试训练得到的模型是否符合更新效果,若符合则更新深 度学习网络模型,以通过更新后的深度学习网络模型,实现视频分镜。
在实际应用中,首先对分镜标准测试集的所有标准样本对A-B,随机抽取 10个三元组,组成测试子集1;共进行10次,组成10个测试子集;对每个测 试子集,采用预训练的神经学习网络模型提取三元组中三个图像的图嵌入特征, 并根据损失函数,计算损失函数的值,记录所有三元组的损失函数的值的平均 值为Loss。
然后,取10个测试子集的损失函数的值作为分镜标准测试集对应的基准(baseline)指标L00。
通过相似度方式,构建难例测试集,并确定难例测试集对应的baseline指 标L01。若难例测试集为空,则L01=L00*10。
接着,采用更新后的深度学习网络模型对标准测试集中的三元组中图像进 行特征提取,得到相应的图嵌入特征,并计算损失函数的值,以得到深度学习 网络模型针对标准测试集的损失函数的值L10;以及采用更新后的深度学习网 络模型对难例测试集中的三元组中图像进行特征提取,得到相应的图嵌入特征, 并计算损失函数的值,以得到深度学习网络模型针对标准测试集的损失函数的 值L11;比较L00和L10,并比较L01和L11,当L00大于L10、且L01大于L 11时,用更新后的深度学习网络模型替换预训练的神经学习网络模型。
这里,在确定用更新后的深度学习网络模型替换预训练的神经学习网络模 型,遍历相似度阈值0.05~0.99(步长0.01),计算标准测试集的10个三元组 子集的召回和准确率,计算f1,选择使得f1最高的相似度阈值替代原始thr1, 选择使得准确率最高的相似度阈值阈值替代原始thr2。若thr2大于thr1,则thr 2=thr1-0.05,以保证一级、二级阈值的相对大小可用于相同镜头、不同镜头的 区分。
在更新用于提取图嵌入特征的深度学习网络模型之后,继续下一轮分镜与 数据、模型迭代。
在一些实施例中,带噪训练得到的深度学习网络模型可搭载于云服务,提 供视频分镜服务。
图11是本申请实施例提供的视频分镜的处理流程示意图,参见图11,终 端A接收到用户输入的视频,将视频上传至服务器,服务器采用上述方法对视 频进行分镜,并提取分镜难例,输出分镜结果到终端B,同时并积累分镜数据 库,以更新深度学习网络模型。
本申请实施例具有以下有益效果:
1)采用基于数据驱动的深度学习网络模型进行视频的分镜,提高了视频分 镜的准确性。
2)采用弱监督的主动学习方法,在海量视频样本中抽取较准确的样本作为 训练集,并利用人工清洗建立标准测试集用于衡量模型效果。
3)通过初始分镜、难例回流、模型学习与分镜优化的闭环流程,实现分镜 系统自我优化的效果,其中仅需要有限人工清洗即可维持系统在海量影视剧数 据下的持续迭代。
下面继续说明本申请实施例提供的视频分镜装置。参见图12,图12是本 申请实施例提供的视频分镜装置的结构示意图,本申请实施例提供的视频分镜 装置包括:
抽帧模块210,用于对目标视频进行抽帧处理,得到对应所述目标视频的 视频帧序列;
提取模块220,用于对所述视频帧序列中的各视频帧进行特征提取,得到 各视频帧的图嵌入特征;
获取模块230,用于基于各视频帧的图嵌入特征,获取所述视频帧序列中 相邻视频帧的图嵌入特征间的相似度;
分镜模块240,用于基于所述相邻视频帧的图嵌入特征间的相似度,对所 述视频帧序列进行分镜处理,得到至少两个初始分镜,每个所述初始分镜包括 至少一个视频帧;
聚合模块250,用于对至少两个初始分镜进行聚合处理,得到至少两个目 标分镜。
在一些实施例中,所述抽帧模块210,还用于获取目标视频的视频帧率、 及目标视频的时长;
根据目标视频的视频帧率、及目标视频的时长,确定抽帧数量;
根据所述抽帧数量,对所述目标视频进行抽帧处理,得到包含所述抽帧数 量的视频帧的视频帧序列。
在一些实施例中,所述提取模块,还用于通过第一图嵌入模型,对所述视 频帧序列中的各视频帧进行特征提取,得到各视频帧的图嵌入特征;
所述装置还包括:
更新模块,用于从至少两个目标分镜中筛选出分镜难例,所述分镜难例为 判断为分镜错误的目标分镜;
获取对应所述分镜难例的人工分镜结果,所述人工分镜结果用于指示归属 于同一分镜的视频帧;
基于所述分镜难例及所述人工分镜结果构建训练集,并通过所述训练集, 对所述第一图嵌入模型的模型参数进行更新,得到第二图嵌入模型。
在一些实施例中,所述更新模块,还用于获取各目标分镜中的视频帧数量、 及各所述目标分镜对应的平均视频帧数量;
分别确定各目标分镜中的视频帧数量与所述平均视频帧数量的比值;
将所述视频帧数量与所述平均数量的比值未达到目标比值的目标分镜,作 为分镜难例。
在一些实施例中,所述更新模块,还用于当所述目标分镜包括至少两个视 频帧时,对于每个目标分镜执行以下操作:
从所述目标分镜中的第一个视频帧开始,依据播放时间点顺序获取目标比 例的视频帧,得到第一视频帧子集,并
从所述目标分镜中的最后一个视频帧开始,依据播放时间点逆序获取目标 比例的视频帧,得到第二视频帧子集;
获取所述第一视频帧子集与第二视频帧子集之间的相似度;
当相似度未达到相似度阈值时,确定所述目标分镜为分镜难例。
在一些实施例中,所述训练集包括多个三元组,所述三元组包括基准图像、 与所述基准图像属于同一分镜的正图像、与所述基准图像属于不同分镜的负图 像;
所述更新模块,还用于将三元组中基准图像、正图像、及负图像输入所述 第一图嵌入模型;
通过所述第一图嵌入模型对所述基准图像、正图像、及负图像,进行前向 计算,预测得到基准图像的图嵌入特征、正图像的图嵌入特征、及负图像的图 嵌入特征;
获取基准图像的图嵌入特征和正图像的图嵌入特征之间的第一差异、及基 准图像的图嵌入特征与负图像的图嵌入特征之间的第二差异,并基于所述第一 差异及所述第二差异,确定所述第一图嵌入模型的损失函数的值;
基于所述损失函数的值,对所述第一图嵌入模型的模型参数进行更新。
在一些实施例中,所述更新模块,还用于获取测试集,并将所述测试集分 别输入至第一图嵌入模型、及第二图嵌入模型,得到对应所述第一图嵌入模型 的第一预测结果、及对应所述第二图嵌入模型的第二预测结果;
基于第一预测结果,确定所述第一图嵌入模型对应的损失函数的值;
基于第二预测结果,确定所述第二图嵌入模型对应的损失函数的值;
当第二图嵌入模型对应的损失函数的值小于对应第一图嵌入模型的损失函 数的值时,用第二图嵌入模型更新第一图嵌入模型。
在一些实施例中,所述分镜模块,还用于获取第一相似度阈值及第二相似 度阈值,所述第一相似度阈值大于第二相似度阈值;
将图嵌入特征间的相似度达到所述第一相似度阈值的两个视频帧划分至同 一分镜,
以及将图嵌入特征间的相似度未达到所述第二相似度阈值的两个视频帧划 分至不同分镜,以得到至少两个初始分镜。
在一些实施例中,所述分镜模块240,还用于获取至少两个三元组,所述 三元组包括基准图像、与所述基准图像属于同一分镜的正图像、与所述基准图 像属于不同分镜的负图像;
获取至少两个候选相似度阈值;
基于所述三元组,确定各候选相似度阈值对应的分镜准确率和分镜平衡分 数;
将所述分镜平衡分数最高的候选相似度阈值作为第一相似度阈值;
将所述分镜准确率最高的候选相似度阈值作为第二相似度阈值。
在一些实施例中,所述聚合模块250,还用于获取初始分镜间的相似度;
基于所述初始分镜间的相似度,对所述至少两个初始分镜进行聚合处理, 以使聚合到同一目标分镜中任两个初始分镜间的相似度都达到相似度阈值。
在一些实施例中,所述聚合模块250,还用于当所述初始分镜包括至少两 个视频帧时,以第一初始分镜与第二初始分镜作为所述至少两个初始分镜中任 意两个初始分镜,对任意两个初始分镜执行以下处理:
针对第一初始分镜中任一目标视频帧,分别获取所述目标视频帧与第二初 始分镜中各视频帧之间的相似度,得到所述目标视频帧对应的至少两个相似度;
基于获取的第一初始分镜中各目标视频帧对应的至少两个相似度,确定所 述第一初始分镜中各目标视频帧对应的最大相似度;
获取最大相似度达到第一相似度阈值的目标视频帧的第一数量、及第一初 始分镜中目标视频帧的第二数量;
将所述第一数量与所述第二数量的比值,作为所述第一初始分镜与所述第 二初始分镜间的相似度。
在一些实施例中,所述聚合模块240,还用于当所述初始分镜包括至少两 个视频帧时,以第一初始分镜与第二初始分镜作为所述至少两个初始分镜中任 意两个初始分镜,对任意两个初始分镜执行以下处理:
当第一初始分镜的播放时间顺序先于第二初始分镜时,获取第一初始分镜 中播放时间点顺序最后的目标视频帧;
获取所述目标视频帧与第二初始分镜中各视频帧之间的相似度,得到所述 目标视频帧对应的至少两个相似度;
将至少两个相似度的相似度平均值,作为第一初始分镜与所述第二初始分 镜间的相似度。
应用上述实施例,相对于SIFT特征,本申请的图嵌入特征能够更准确的描 述视频帧,进而提升分镜的准确性;并且,本申请通过对初始分镜进行聚合, 使得目标分镜中的内部聚合度更高,提升了分镜聚合度。
本申请实施例还提供一种计算机设备,该计算机设备可以是终端或服务器, 参见图13,图13为本申请实施例提供的计算机设备的结构示意图,本申请实 施例提供的计算机设备包括:
存储器550,用于存储可执行指令;
处理器510,用于执行所述存储器中存储的可执行指令时,实现本申请实 施例提供的视频的播放方法。
这里,处理器510可以是一种集成电路芯片,具有信号的处理能力,例如 通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编 程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理 器可以是微处理器或者任何常规的处理器等。
存储器550可以是可移除的,不可移除的或其组合。示例性的硬件设备包 括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位 置上远离处理器510的一个或多个存储设备。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易 失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。
在一些实施例中还可包括至少一个网络接口520和用户接口530。计算机 设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540 用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包 括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图13中将 各种总线都标为总线系统540。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产 品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。 计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该 计算机指令,使得该计算机设备执行本申请实施例上述的视频分镜方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存 储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实 施例提供的方法,例如,如图4示出的方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可 以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代 码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程 性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被 部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被 存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专 用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一 个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一 个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互 连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。 凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在 本申请的保护范围之内。