使用镜头持续时间相关来确定视频之间的相似性的制作方法

文档序号:18061747发布日期:2019-07-03 03:07阅读:225来源:国知局
使用镜头持续时间相关来确定视频之间的相似性的制作方法

所公开的实施例一般地涉及用于视频处理的计算机实现的方法,并且更具体地,涉及使用镜头(shot)持续时间信息来确定视频内容项(为了方便通常被称为“视频”)之间的相似性。



背景技术:

内容系统可以接收从用户和其它实体上传的非常大量的内容项诸如视频。这些视频可以包括各种不同类型的内容,诸如电影和家庭视频,并且在构图、照明和其它方面可以是显著地不同的。被上传的许多视频实际上可以是相同视频,或者是相同视频的相似的版本。这可以给内容系统带来问题,因为它试图组织并分类视频,或者呈现它们以用于推荐给内容系统的用户。存储相同内容项的两个(或更多个副本)浪费存储容量,并且如果内容系统执行内容项的任何处理,则处理相同内容项的多个副本类似地浪费处理能力/资源。另外,如果例如内容系统向用户推荐实际上为相同视频的两个视频,则这将再次导致资源使用的重复(并且还将很可能对用户来说是烦人的)。因此,期望内容系统能够检测内容系统中的视频之间的相似性,使得它能够确定哪些视频可能是其它视频的副本或相似的版本。

然而,在由内容系统接收到非常大量的视频情况下,内容系统需要确定视频之间的相似性的高效方法。诸如分析每个视频的内容以便确定相似性的方法可能要求超过可用于执行这种相似性比较的处理能力的处理能力。此外,当试图使用视频内容来确定视频相似性时,视频的组成和内容的变化性质可以引起不准确。因此,缺乏并期望确定视频之间的相似性的更好且更高效的方法。

因此,期望提供用于使用镜头持续时间相关性来确定视频之间的相似性的方法、系统和介质。



技术实现要素:

在一个实施例中,描述了用于确定视频中的相似性的计算机实现的方法。该方法包括识别第一视频中的第一多个镜头和第二视频中的第二多个镜头。该方法还包括确定每个视频的经识别的镜头的镜头持续时间。生成每个视频的直方图,其中每个直方图将对应视频的多个经识别的镜头划分成根据镜头持续时间的范围而划分的桶(bucket)的集合。确定每个直方图的桶的置信权重,其中桶的置信权重基于在该桶的镜头持续时间的范围内发生特定数量的经识别的镜头的可能性。基于每个相应直方图的每个桶中的经识别的镜头的数量并且基于置信权重来针对两个视频计算相关值。进行基于相关值与每个视频的自相关值的比较来确定第一视频与第二视频之间的相似性。

本公开的另一个方面提供计算机可读存储介质(其可以是非暂时性计算机可读存储介质,但是此方面不限于此),所述计算机可读存储介质具有在其上编码的指令,所述指令当由一个或多个处理器执行时,使处理器执行根据本文中描述的任何实施例或实施方式的方法。本公开的另一个方面提供一个或多个处理器,所述一个或多个处理器被编程为执行根据本文中描述的任何实施例或实施方式的方法。本公开的另一个方面提供装置,所述装置包括在操作上连接到计算机可读存储介质(其可以是非暂时性计算机可读存储介质,但是此方面不限于此)的一个或多个处理器,所述计算机可读存储介质具有在其上编码的指令,所述指令当由一个或多个处理器执行时,使处理器执行根据本文中描述的任何实施例或实施方式的方法。

在本发明内容和以下具体实施方式中描述的特征和优点不是包括一切的。鉴于其附图、说明书和权利要求,许多附加特征和优点对于本领域的普通技术人员而言将是显而易见的。

附图说明

图1是根据一个实施例的用于使用镜头持续时间相关性来确定视频之间的相似性的环境的高级框图。

图2是图示根据一个实施例的将视频转换成镜头持续时间直方图的示例性方法的图。

图3图示根据一个实施例的用于基于某个镜头持续时间范围内的镜头的平均镜头计数生成泊松概率质量函数的示例性过程。

图4图示根据一个实施例的用于基于平均镜头计数的泊松分布确定视频的直方图的置信权重的示例性过程。

图5图示根据一个实施例的用于计算第一视频与第二视频之间的相关值以及确定两个视频之间的相似性的量度的示例性过程。

图6是图示根据一个实施例的用于使用镜头持续时间相关性来确定视频之间的相似性的内容系统的动作的流程图。

这些图仅出于图示的目的描绘本发明的各种实施例。本领域的技术人员将从以下讨论中容易地认识到,在不脱离本文中描述的本发明的原理的情况下,可以采用本文中图示的结构和方法的替代实施例。

具体实施方式

i.概述

本文中描述的内容系统提供高效地确定两个(或更多个)视频之间的相似性的优点。内容系统确定并利用视频之间的镜头持续时间中的相关性来确定它们之间的相似性。通过使用此方法,内容系统能够高效地且快速地分析被上传到内容系统的视频之间的相似性。因为内容系统可以在短时间段期间接收到许多视频,例如每天数百万个视频,所以快速地确定视频之间的相似性的能力是有利的,因为内容系统可能没有足够的处理能力来使用更多的计算能力密集过程来执行更严格的相似性分析。此高效过程允许内容系统将相似的视频分组在一起,例如,使得一组相似的视频中的仅一个可以被推荐给用户,转发以供进一步分析和/或处理等。

ii.系统架构

图1是根据一个实施例的用于使用镜头持续时间相关性来确定视频之间的相似性的环境100的高级框图。图1图示具有内容存储130、内容子系统140和内容相似性检测器150的内容系统105。内容系统105连接到网络190,所述网络190还连接到客户端设备170。虽然在图1中示出了某些元件,但是在其它实施例中环境可以具有不同的元件。此外,元件之间的功能性可以在其它实施例中以不同的方式分布到不同的或多个模块。

客户端设备和网络

客户端设备170是可以访问来自内容子系统140的内容的计算设备。客户端设备170的用户可通过使用客户端设备170来访问来自内容子系统140的视频以浏览内容的目录,使用关键词来进行搜索,回顾来自其它用户或系统管理员的播放列表(例如,形成频道的内容的合集),或者查看与特定用户组(例如,社区)相关联的内容。附加地,在一些实施例中,客户端设备170还可以用于将内容(例如,视频)上传到内容系统105。客户端设备170可以是台式机、膝上型电脑、智能电话、平板、可穿戴设备、电视、机顶盒等。尽管图1图示仅两个客户端设备170a、170b,然而应该理解的是,许多客户端设备(例如,数百万)可在任何时间与内容系统105进行通信。

在一个实施例中,客户端设备170访问来自内容系统105的内容并且经由内容呈现器175将内容呈现给用户。在一个实施例中,通过包括视频播放器(例如,html5兼容播放器)的web浏览器来访问内容呈现器。内容呈现器175可以能够与从字幕系统105接收到的字幕或其它元数据(例如,注释)同时向用户呈现内容。内容呈现器175可以是允许用户查看由内容子系统140提供的web页面和内容的web浏览器。

在一个实施例中,客户端设备170可以将内容项上传到内容系统105(例如,经由内容呈现器175)。例如,客户端设备170可以将视频上传到内容系统105。在一些情况下,两个或更多个客户端设备170可以上传与内容系统105相同或非常相似的视频。

网络

网络190表示客户端设备170与内容系统105之间的通信通路。在一个实施例中,网络190是因特网,但是还可以是任何网络,包括但不限于lan、man、wan、移动、有线或无线网络、云计算网络、专用网络或虚拟专用网络及其任何组合。此外,可使用诸如安全套接字层(ssl)、安全http和/或虚拟专用网络(vpn)的常规加密技术来加密网络190的链路中的全部或一些。在另一实施例中,实体可使用定制和/或专用数据通信技术代替上述的技术或者使用除了上述的技术之外的定制和/或专用数据通信技术。

内容系统

内容系统105向客户端设备170的用户提供内容项并且还接收从客户端设备170上传的内容。内容系统105包括内容存储130、内容子系统140和内容相似性检测器150。内容系统105还可以包括附加元件、子系统和服务器,诸如负载均衡子系统、内容分发网络等。从图1中的图示中排除这些和其它附加元件以改进理解的容易性。此外,可以在多于一个硬件设备之间划分所图示的子系统中的每一个的功能性。例如,可以跨越多个单独的服务器分割如本文中所描述的内容子系统140的功能性。

内容存储

内容系统105的内容存储130存储内容项135。内容项135可以包括各种持续时间、分辨率等的视频和/或音频内容项。例如,内容项135可以包括任何数量的宽高比的传统视频文件、4k视频文件、360度视频文件或立体(例如,3d)视频文件。内容项135可以被以各种格式存储,使得它们可与尽可能多的客户端设备170兼容。它们还可以被以各种比特率存储,以适应不同的网络带宽容量。被存储在内容存储130中的每个内容项135还可以被与元数据一起存储并与元数据相关联,所述元数据诸如标题、描述、响应评论、评级、字幕等。

内容子系统

内容子系统140提供对内容项例如视频135的访问、查看和侦听并允许上传内容项135(过程未示出)。内容子系统140允许用户经由搜索和/或浏览界面访问内容存储130中的内容项135。内容项135可源自用户对内容的上传,来自对其它网站或内容的数据库的搜索或爬取或其任何组合。例如,在一个实施例中内容子系统140可被配置成允许用户上传内容。内容子系统140将这些上传的内容项存储在内容存储130中。作为另一示例,内容子系统140可以通过网络190从其它内容数据库中检索内容。

内容子系统140处理从用户接收到的搜索查询。搜索查询可以包括搜索判据,诸如可以识别用户有兴趣查看的视频的关键词。内容子系统140可以使用搜索判据,例如,以查询存储在内容存储130中的所有内容项135的元数据和/或与存储在内容存储130中的所有内容项135相关联的实体。来自查询的搜索结果由内容子系统140发送到客户端设备170。

内容子系统140可以从客户端设备170接收内容(过程未示出)。所接收到的内容的处理可以包括将识别号指派给新近接收到的内容。处理所接收到的内容的其它步骤可以包括格式化(例如,转码)、压缩、元数据标记、内容分析和/或其它数据处理方法。

内容还可以与其它信息诸如标题、描述、内容类型、作者、评级等相关联。内容子系统140将内容(和任何关联的元数据)存储在内容存储130中。

内容子系统140可以以与youtubetm网站相似的方式为内容服务;其它视频托管网站也是已知的,并且可被适配成根据本文中公开的教导来操作。

内容相似性检测器

内容相似性检测器150通过使有关视频之间的镜头的持续时间(镜头持续时间)的信息相关来确定视频内容项之间的相似性。如先前所指出的,内容系统105可以在小时间段期间接收到大量视频。许多这些视频实际上可能是彼此相同或非常相似的。然而,这些相似的视频可能不具有相同的文件大小、字节序列、校验和或其它文件格式特性。例如,一些视频可以是相同电影的不同的剪辑或版本(例如,由于区域限制),或者具有不同的编码、压缩格式、视频格式、分辨率。因此,内容系统105可能无法使用基本编码、压缩格式、视频格式或分辨率信息来简单地比较视频以将这些视频区分或者识别为相似的。另外,直接地使用文件的二进制值来执行字节序列、散列或其它方法也无法产生用于将视频识别为相似的适当结果。

替代地,内容系统105可以在一定程度上分析每个视频的内容以确定它是否与另一视频相似。然而,当内容系统105在短时间跨度内接收到非常大量的视频(例如,每天300,000个视频)时,内容系统105需要确定两个视频之间相似性的高效的(例如计算上高效的和/或资源高效的)但准确的方法。

为了实现以处理高效的方式确定第一视频与第二视频之间的相似性的这个目标,在一个实施例中,如上面简要地介绍的内容相似性检测器150识别并利用被比较的第一视频和第二视频内的不同持续时间的镜头数量(镜头计数)之间的相关性。如在下面进一步详细地描述的,内容相似性检测器150包括许多元件,包括镜头检测器155、直方图生成器160、置信计算器165和相关引擎170。尽管在这里针对内容相似性检测器150示出了上面列举的示例元件,然而在其它实施例中,每个元件的功能可以不同地分布在各种硬件和/或软件组件当中。

内容相似性检测器-镜头检测器

镜头检测器155识别视频中的镜头以及这些镜头的持续时间。为了做这个,镜头检测器155确定视频的镜头边界,也称为镜头转换。镜头是视频中的一系列连续和相关帧,通常由单个相机拍摄,并且通常表示时间和空间中的连续动作。视频中的两个镜头之间的转换一般地可以是突变的转换(即,突然的或立即的)或更渐进的转换(即,在相对较少的帧上的转换)。镜头检测器155可以利用多种方法来确定视频中的镜头之间的边界。

例如,为了识别镜头,镜头检测器155可以首先确定视频中的两帧的分数(例如,帧间分数)。这两个帧可以是视频中的连续帧,或视频中的近连续帧(例如,被少量中间帧诸如5个帧分隔的帧)。镜头检测器155基于分数确定在视频中的两个帧之间是否存在镜头边界。镜头检测器155对遍及整个视频的不同对帧重复地执行此操作以确定在视频中存在的镜头边界(若有的话)的集合。

为了确定两个帧之间的分数,镜头检测器155可以计算许多不同量中的任何一个或多个,其示例包括:1)两个帧的(例如,每个像素或仅像素的子集的)像素强度值之间的差异的和,2)两个帧的直方图之间的差异,或3)每个帧的边缘检测版本内的差异(例如,通过使用边缘检测卷积矩阵)。此外,当在许多帧上发生一些镜头转换时,镜头检测器155可以一次确定多个帧或帧对的分数。镜头检测器155可以一次考虑多个帧的集合,并且计算每个帧对中的像素值之间的差异,或与该集合中的其它帧相比较的每个帧之间的边缘的位置和/或像素值的差异。镜头检测器155可以确定集合的帧内的差异的总方差或标准偏差,并且可以将分数计算为此方差值,或者可以基于该方差值计算分数。当针对每个集合计算分数时,镜头检测器155还可以重叠每个集合。

在确定分数之后,镜头检测器155可以基于两个帧之间的分数确定在通过视频中的两个帧所指示的点处是否存在镜头边界。镜头检测器155可以设置阈值,使得超过阈值的任何分数指示镜头边界。此阈值可以基于视频的特性自适应。例如,可以使用具有相同的流派、格式或其它相似的特性的相似的视频的样本来校准阈值,并且可以根据被分析的视频使用这些不同的阈值。镜头检测器155还可以通过使用训练视频的地面实况来训练机器学习模型(例如,深度神经网络)来使用机器学习技术,其中输出标签指示镜头边界发生的位置,并且其中输入标签是针对每对帧而计算的分数。

还可以单独地或相结合地利用上述的这些方法。例如,可以首先利用最快的方法(例如,确定像素值中的差异)来确定潜在的候选镜头,并且随后可以利用更准确的方法(例如,确定直方图中的差异)来缩小“被识别”镜头的结果集。作为另一示例,镜头检测器155还可以使分数通过简单阈值测试,但是在分数在阈值的某个范围内的情况下使分数通过机器学习模型以验证结果。

如果镜头检测器155确定分数指示镜头边界,则它可以将与该分数相对应的帧位置标记为镜头边界位置。如果分数基于一对帧,则镜头检测器155可以将第一帧或第二帧标记为镜头边界的位置。如果分数是根据帧的集合确定的,则镜头检测器155可以将该集合的中心帧标记为镜头边界的位置。如果镜头检测器155确定超过阈值数量的分数的多个连续分数指示镜头边界,则镜头检测器155可以仅指示与多个连续分数相对应的多个帧中的中心帧是镜头边界的位置。

一旦镜头检测器155确定在相似性确定中涉及的第一视频的镜头边界的位置,镜头检测器155就还类似地确定在相似性确定中涉及的第二视频中的镜头边界的存在和帧位置。镜头检测器155还可以确定每个镜头的持续时间,其可以被存储为镜头边界之间的帧的数量或时间的某个其它量度(例如,秒)。镜头检测器155可以通过确定一个镜头边界与下一个镜头边界之间的帧数中的差异和/或通过将此值转换成时间的量度(或时间差)或者按照时间的量度(或时间差)计算此值来确定每个镜头的持续时间。

在一些情况下,第一视频和第二视频可以具有不同的帧速率(例如,不同的fps或帧每秒)。例如,第一视频可以是30fps并且第二视频可以是25fps。在这种情况下,如果镜头持续时间由镜头检测器155使用帧数来测量,则第一视频中的镜头即使与第二视频中的镜头相同(或相似),也可能与第二视频中的镜头的帧数具有较大差异,并且因此在如通过帧数所测量的镜头持续时间方面具有大差异。在这种情况下,镜头检测器155首先将两个视频转换为各自具有相同的fps或帧速率。镜头检测器155可以将一个视频转换为另一个视频的帧速率,或者可以选取被每个视频的帧速率完全可除或者可完全除成两个视频的帧速率(如在这里使用的“完全”指示除法产生整数)的新帧速率。镜头检测器155可以将两个视频转换成与用于如下所述计算置信权重的视频的样本集的帧速率匹配的帧速率。镜头检测器155将每个视频转换为重新选取的帧速率并且执行如上所述的镜头检测。

内容相似性检测器-直方图生成器

直方图生成器160针对第一视频和第二视频中的每一个生成直方图,其中直方图的桶按镜头持续时间对每个视频进行分组。直方图生成器160取得如由镜头检测器155所生成的第一视频的镜头持续时间并且根据镜头持续时间来把镜头分成第一直方图的不同桶。每个桶可以包括具有具体持续时间或镜头持续时间范围(即,持续时间的范围)的镜头。针对第一直方图所指定的镜头持续时间、镜头持续时间范围和/或桶数对于由直方图生成器160所生成的所有直方图来说可以是相同的。第一直方图因此可以包括多个桶,每个桶指示在某个镜头持续时间范围内或者具有指定镜头持续时间的镜头的视频的镜头数量(镜头计数)。直方图生成器160还针对第二视频生成相似的第二直方图。这两个直方图都可以包括相同数量的桶,其中每个直方图的桶指定相同的镜头持续时间。在下面参考图2描述有关直方图的生成的附加细节。

内容相似性检测器-置信计算器

原则上,可以直接地比较第一视频和第二视频的直方图以确定两个视频之间的相似性。然而,在一些实施例中,不是直接地比较第一视频和第二视频的每个直方图中的镜头计数,而是置信计算器165首先计算每个直方图的桶的置信权重。每个置信权重指示在特定桶中发生的特定镜头计数的概率。置信权重用于当进行相似性比较时在比较每个视频的对应镜头计数值之前修改(例如,通过归一化)每个桶中的镜头计数值。

用于计算置信权重的原因是某些桶持续时间的某些镜头计数比其它桶持续时间更常见,并且应该被加权得小于不太常见的某些桶持续时间的那些镜头计数。例如,视频具有10秒持续时间的大约20个镜头(例如,在30fps下为300个帧)可能是非常常见的,并且因此如果直方图指示视频中的一个(第一个或第二个)在包括10秒持续时间的镜头的桶中有20个镜头,则该桶的镜头计数被加权得小于其它不太常见地发生的镜头计数。这帮助将相似度计算集中在具有不正常镜头计数的镜头持续时间的那些桶上,这帮助识别根据其它相似性计算将另外看起来相似的两个视频。

为了确定第一直方图的置信权重,置信计算器165可以首先遍及大量样本视频针对与在第一直方图的桶中指定的持续时间相对应的不同的持续时间(或镜头持续时间范围)的镜头确定那些视频中的平均镜头计数。这些平均值用于确定那些持续时间的镜头计数的泊松分布(或其它统计分布)。在确定不同的平均镜头计数的泊松分布之后,置信计算器165使用所计算的泊松分布来针对第一直方图的每个桶计算对于针对该桶所指示的持续时间(或镜头持续时间范围)具有在该桶中指示的镜头计数的泊松概率。

因此,概括最后段落,置信计算器165可以将第一直方图的每个桶的置信权重基于针对该桶所计算的泊松概率。特别地,桶的置信权重的计算值与该桶的泊松概率之间的关系在一些情况下可以是反比关系,即,随着泊松概率值下降,置信权重值上升,并且反之亦然。这是因为随着概率增加,这表明与概率相对应的特定镜头计数更常见,并且因此它被较少地加权,并且因此置信权重较低。例如,使用来自上面的示例,如果包括10秒持续时间的镜头的桶的镜头计数是18,则此镜头计数的泊松概率可以是高的(例如,接近于100%)并且因此此桶的置信权重由置信计算器165计算为低的。

尽管置信权重与对应泊松概率之间的确切关系可以是反比关系,然而关系可能比这更复杂。在一些情况下,关系可以随泊松概率而以指数方式变化,使得置信权重可以相对于泊松概率以指数方式减小,同时置信权重的减小随着泊松概率减小而逐渐减小。一般地,确切关系因实施方式而变化并且可以使用任何函数。

置信计算器165针对第二直方图重复上述的相同过程。在下面关于图3和图4描述有关置信权重的计算的附加细节。

内容相似度检测器-相关引擎

相关引擎170使用它们相应的直方图和关联的置信权重来确定第一视频与第二视频之间的相关值。相关引擎170还计算每个视频的自相关值,并且可以使用相关值和自相关值来确定两个视频之间的相似性的量度。

为了确定相关值,相关引擎170计算通过对应置信权重修改的第一视频的镜头计数值与第二值的镜头计数值的相关性。

在一个实施例中,相关引擎170可以通过针对第一直方图和第二直方图中的每一个将第一直方图的每个桶的镜头计数乘以该桶的对应置信权重(如由置信计算器165所计算的)来计算相关值。这些被称为置信加权镜头计数。将这两组置信权重加权的镜头计数作为点(内)积被一起相乘以产生第一视频与第二视频之间的相关值。

相关引擎170还针对第一直方图和第二直方图计算自相关值。这些还可以通过每个直方图的桶的相应的置信权重来加权。相关引擎170可以将这两个自相关值组合成组合自相关值(例如,通过取自相关值的积的平方根)。

相关引擎170将相关值与组合自相关值相比较。如果两个值是相似的(例如,两个数字之间的比率大于阈值),则相关引擎170可以确定被比较的两个视频是相似的。否则,相关引擎170可以确定两个视频是不相似的。在下面关于图5描述有关相关值的计算和相似性的确定的附加细节。

注意的是,尽管在这里主要关于第一视频和第二视频描述系统,然而内容相似性检测器150也可以能够确定多于两个视频之间的相似性。内容相似性检测器150可以将视频的集合中的每个视频与该集合中的每个其它视频相比较,并且如果该集合中针对每个视频与其它视频所计算的相关值是相似的并且可选地高于阈值,则可以确定该集合中的视频是相似的。

使用这里描述的系统,内容系统可以能够快速地确定由内容系统接收到的大量视频的任何相似性。不是根据对每个视频的实质内容的其它更计算密集的分析来分析每个视频,而是内容系统能够使用这里描述的更快但仍然准确的方法来确定相似性。这里描述的方法准确的一个原因是它说明了某个镜头计数在视频中有多常见,并且在确定两个视频之间的相似性时不太重地对此类常见的镜头计数进行加权。

这尤其可用于区分根据视频内容的其它类型的计算分析会另外看起来相同的视频。例如,诸如足球比赛的体育比赛常常是从场地俯视的透视图拍摄的。因此,这些视频的大部分内容都被填充有相对均匀的绿色场地,并且各种颜色的穿制服的运动员对未经训练的计算机算法而言以某种随机的方式跨越场地移动。因此,即使所描绘的实际比赛在每个独特视频中可以是不同的,包括一个团队或两个相同团队的所有比赛也可能根据其它算法看起来相同。本文中描述的过程能够通过查看镜头计数和持续时间来消除这些另外相似的视频的歧义,即使对于相似团队之间的体育比赛,所述镜头计数和持续时间即使对于相似团队之间的体育比赛,也一般地将在视频之间足够不同以消除视频的歧义。

iii.示例性镜头持续直方图

图2是图示根据一个实施例的例如如由如上所述的镜头检测器155和直方图生成器160所执行的将视频210转换成镜头持续时间直方图220的示例性方法的图。尽管在这里示出了具有变量的具体值和组合的特定过程,然而它们是仅为了说明性目的而提供的。

视频210包括许多不同的镜头212。每个镜头通过镜头边界214与邻近镜头分开。例如,镜头边界214可能是突变的转换,诸如直接切,或者它可以是逐渐的转换,诸如淡化(fade)、划变(wipe)或其它转换效果。此外,如上所述的每个镜头具有镜头持续时间216(在图中表示为d)。

使用上述的方法,诸如确定两个帧的分数并且确定该分数是否指示在那两个帧之间存在镜头边界214,镜头检测器155识别视频210中的镜头212和镜头边界214并且还依照上述的方法来确定这些镜头的镜头持续时间216。直方图生成器160取得关于镜头和镜头边界的信息并且针对视频210生成镜头持续时间直方图220。此镜头持续时间直方图220包括多个桶。每个桶bx包括镜头持续时间在某个范围内的镜头。此范围可以确切地是单个值(例如,确切地300个帧的镜头持续时间)或者可以是从较低值到较高值(例如,300-500个帧)的值的范围。一个桶的镜头持续时间范围(通过d(bx)=u(bx)–l(bx)来给出,其中u(bx)和l(bx)是桶bx的镜头持续时间的上限和桶bx的镜头持续时间的下限)可以等于另一桶的镜头持续时间范围或者可以与另一桶的镜头持续时间范围不同。一个桶的镜头持续时间范围还可以与相邻桶的镜头持续时间范围连续(即,不存在间隙)。直方图生成器160将视频中的每个镜头放置在对应桶中,使得该镜头的镜头持续时间与桶的镜头持续时间范围匹配。镜头持续时间直方图220中的桶在图2中被布置为使得每个桶从左到右具有增加的镜头持续时间范围。因此,如图2中的222处所示,桶bx具有镜头持续时间范围d(bx),所述镜头持续时间范围d(bx)包括比镜头持续时间范围d(bx-1)更高的镜头持续时间但是包括比d(bx+1)更低的镜头持续时间。

可以基于对内容存储130中的一组样本或训练视频的分析来确定每个桶中覆盖的镜头持续时间范围。在一种情况下,直方图生成器160可以确定镜头持续时间的范围,使得样本视频的整个集合中的一定百分比的镜头被指派给每个桶。例如,直方图生成器160可以将来自视频的样本集的镜头添加(即,指派)到第一桶中,直到它达到视频的样本集中的总镜头的1%。这产生第一桶中的镜头持续时间从零到第一镜头持续时间的范围。可以以相同的方式填充后续桶(例如,所有镜头的最多1%),同时其范围是前一个桶的最长镜头持续时间到当前桶的最长镜头持续时间。例如,第二桶将包括镜头持续时间大于第一镜头持续时间并且直到第二镜头持续时间的镜头。在另一情况下,每个桶的镜头持续时间范围可以被固定为每个桶的相等镜头持续时间范围。可以确定此范围,使得包含视频的整个样本大小的镜头所需的总桶数不超过某个值(例如,100个桶)。因此,例如,如果视频的样本大小中的最长镜头是10000个帧,则如果对桶数的限制是100,则系统可以针对每个桶具有100个帧的范围。

在一些情况下,镜头可以落在由直方图生成器160使用视频的样本集所确定的桶中的任一个的镜头持续时间范围外。因此,可以包括具有指定的镜头持续时间范围的附加溢出桶,所述指定的镜头持续时间范围包括大于桶集中的最大镜头持续时间直到无限的镜头持续时间的镜头。可替选地,大于最大镜头持续时间的任何镜头可以被丢弃而未被放置在直方图的任何桶中。

直方图生成器160还针对第二视频生成第二直方图,其中第二直方图中的桶具有与针对第一视频的直方图相同的配置,即,其中第二直方图的每个桶具有与第一直方图的桶相同的镜头持续时间。

iv.用于计算置信权重的示例性概率分布

图3图示根据一个实施例的用于基于某个镜头持续时间范围内的镜头的平均镜头计数生成泊松概率质量函数的示例性过程。图3中图示的过程可以由如上面关于图1所描述的内容系统105的置信计算器165来执行。

置信计算器165最初确定样本/训练视频的集合当中的不同范围的持续时间的平均镜头计数,所述集合可以对应于内容存储130中的视频的整个集合。置信计算器165考虑的持续时间的范围对应于由直方图生成器160生成的直方图的桶的相同范围。因此,如果直方图生成器生成具有递增了1000个帧间隔的持续时间的范围的桶,则置信计算器165针对样本中的每个视频计算每个1000帧间隔内的镜头的镜头计数,并且确定这些镜头计数的平均值。

对于特定镜头持续时间范围,平均值是视频的样本集中的视频的平均镜头计数。当计算此平均镜头计数时,置信计算器165可以将在样本集中不具有特定镜头持续时间范围内的任何镜头的那些视频设置为零。为了确定样本集中的每个视频的镜头计数,置信计算器165可以请求镜头检测器155和直方图生成器160如上所述确定镜头边界和镜头计数。置信计算器165还可以在一些情况下将结果舍入到最近非负整数值,因为计算可以是离散计算。

作为这种过程的示例,对于针对某个桶bx的1000至2000个帧的镜头持续时间范围,置信计算器165已接收到指示视频的样本集的每个视频对于此镜头持续时间范围具有0、5、0、10、10、32、50和25的镜头计数的数据。在这种情况下,这些单独的镜头计数的平均值是16.5,其可以向上舍入到17。这意味着对于1000至2000个帧的镜头持续时间范围,视频的样本集的平均镜头计数是16.5(如果被舍入则为17)。注意的是,尽管在此示例中仅8个视频被用于样本集,但是实际上视频的样本集可以大得多并且包括数百万个视频。还应注意的是,尽管镜头持续时间范围包括帧的范围,然而镜头持续时间范围可以仅包括单个持续时间例如1000个帧,而不是范围。一旦置信计算器165确定镜头持续时间范围的平均镜头计数,置信计算器165就可计算该镜头持续时间范围的泊松分布。平均镜头计数是特定镜头持续时间范围的泊松分布的lambda(λ)值。例如,如果1000至2000个帧的镜头持续时间范围的平均镜头计数是16.5,则用于此镜头持续时间范围的λ值是16.5。泊松分布是离散概率分布,其表达如果已知平均值对这些事件是已知的并且如果事件彼此独立地发生则在固定间隔中发生给定数量的事件的概率。这里,事件是镜头持续时间范围中的镜头计数并且间隔是视频,即,这里泊松分布确定在视频中发生镜头持续时间范围中的某个镜头计数的概率。

如图3中所示,每个桶bx具有某个平均镜头计数,其被用作泊松分布的λ值310,即,桶bx的平均镜头计数是λx。置信计算器165使用泊松概率等式来确定针对特定λ值的每个镜头计数的泊松概率:

其中k是镜头持续时间范围的镜头计数(通过桶bx来表示),并且如上所述的lambda(λ)是相同镜头持续时间范围的平均镜头计数。例如,使用λ值为16.5的上述示例,10的镜头计数将产生((16.510)(e-16.5))/10!或约0.0281的计算概率。换句话说,对于16.5的平均镜头计数大约有将发生10的镜头计数的2.8%几率。

置信计算器165可以使用这些λ值和以上等式(1)来确定不同的泊松概率质量函数(pmf)320即泊松分布。如图3中所示的泊松pmf使用如等式(1)中所示的泊松概率函数来对照特定lambda值λ的泊松概率来标绘k(镜头计数)。如所示,每个泊松分布中的泊松概率具有最大点(其可以在k接近分布的相应λ值的情况下发生)并且在此点之外逐渐变细。最大点是最高概率的点,并且因此对于平均镜头计数λx来说该点处的镜头计数k将最可能发生。如图3中所示,平均镜头计数中的一些可以是相同的,并且因此这些平均镜头计数的泊松pmf也是相同的(例如,参见图3中的λ2和λ6)。使用这些泊松分布,置信计算器165像在下面参考图4所描述的那样计算置信权重。

注意的是,在一个实施例中,视频的样本集可以包括内容存储130中的所有视频的子集。置信计算器165可以针对这些不同的子集来计算相同镜头持续时间范围的不同的平均镜头计数。这些不同的子集可以基于那些视频的特性将内容存储130中的视频划分成某些组。例如,划分可以基于视频类型(例如,3d、360度)、长度、流派、分辨率、标签、作者、视频所属的频道、评论历史、查看计数等。

在一个实施例中,为了生成视频的子集以用作样本集,置信计算器165存储上述的那些特性的排名列表。可以对特性进行排名,使得被相似的视频共享的特性被排名更高。置信计算器165识别在列表中排名最高的并且具有与计算的平均镜头计数匹配的视频的子集的被分析视频的特性。置信计算器165使用根据视频的此匹配子集所计算出的平均镜头计数来计算被分析视频的pmf(概率质量函数)。

在另一实施例中,置信计算器165使用正在为了相似性被分析的两个视频作为视频的样本集。尽管在这里使用较小样本大小,然而此分析意味着置信计算器165不需要存储大量的平均镜头计数数据,或者预先计算平均镜头计数。

尽管参考泊松分布的使用进行上述描述,然而在其它实施例中置信计算器165使用其它概率分布函数来确定平均镜头计数(例如,正态分布)。

v.置信权重的示例性计算

图4图示根据一个实施例的用于基于平均镜头计数的泊松分布确定用于视频的直方图的置信权重的示例性过程。图4中描述的过程可以由置信计算器165执行。

一旦置信计算器165像上面参考图3所描述的那样确定泊松概率,置信计算器165就为针对第一视频的第一直方图的每个桶确定置信权重。置信计算器165还以相似的方式为针对第二视频的第二直方图确定置信权重。

如先前所指出的,对于每个镜头持续时间范围,一些镜头计数比其它镜头计数更常见。例如,更多的视频可以在1000至2000个帧的镜头持续时间范围中平均具有10个镜头。如果针对此镜头持续时间范围内的镜头的视频的镜头计数接近平均计数,则该镜头计数可以不一定是用于识别视频的良好标记,因为它在视频当中更常见。换句话说,因为该镜头计数在视频的样本集中的所有视频当中经常出现,所以它不一定足够独特以用作该视频的标记,并且应该被较少地加权。另一方面,远离平均值的镜头计数可以被更高地加权。

当分析第一直方图时,置信计算器165确定第一直方图的桶的置信权重。参考图4,对于如镜头持续时间直方图410中所示的第一直方图的桶(bax),置信计算器165确定第一视频的该桶(sax)的镜头计数的概率。这可以基于由置信计算器165在上面针对图3所描述的过程中确定的该桶的镜头持续时间范围的泊松分布。置信计算器165确定该桶的置信权重(cax)(示出在420处),使得置信权重随着概率减小而增加。

桶的置信权重与桶的泊松概率之间的关系可以是概率的倒数的自然对数,使得:

其中cax是置信权重,ln是自然对数,并且p(sax,λx)是针对该桶x给定平均镜头计数λx的桶x的镜头计数sax的泊松概率。使用对数的目的是使得两个权重值不一定在范围中彼此非常显著地发散。如果一些置信权重比其它置信权重大得多,则后续计算可以被大置信权重值不准确地偏倚。

在另一实施例中,置信权重与泊松概率之间的关系可以基于某个其它关系,诸如线性反比关系、指数关系,或者可以基于某个其它函数。

还可以使用机器学习方法来确定关系。例如,可以将具有已知输出标签的视频的训练集馈送到模型中。输出标签指示对于两个视频来说它们是否相似。模型可以针对优化两个视频之间的相似性的预测的每个镜头持续时间范围确定置信权重与泊松概率之间的关系。如将在下面所描述的,置信权重用于生成相关值,所述相关值可用于确定第一视频与第二视频之间的相似性的量度。

作为上述过程的示例,假设镜头计数sa1的泊松概率p(sa1,λ1)是0.55。如果置信权重与泊松概率之间的关系是线性反比关系,则ca1=ln(1/p(sa1,λ1))=ln(1/0.55),其是约0.59。因此,sa1的置信权重是0.59。注意的是,置信权重随着泊松概率减小而增加。

在一个实施例中,除了计算第一直方图的置信权重之外,置信计算器165还像图4中的430处所示的那样以相似的方式计算第二视频的第二直方图的置信权重cbx。例如,可以将cbx计算为cbx=ln(1/p(sbx,λx))。

尽管这里的描述是关于计算每个桶的置信度权重,然而在一个实施例中,置信计算器165计算桶的范围(即,多于一个桶而不是所有桶)的置信权重。为了做这个,置信计算器165可以仅针对桶的范围中的一个桶计算泊松分布,或者在视频的样本集中的桶的范围内计算平均镜头计数值。置信计算器165针对桶的范围计算相同的泊松分布,并且基于此范围中的第一桶的镜头计数或桶的此范围的平均镜头计数值来计算针对此范围的桶的相同的置信权重。

vi.相关性和相似性的示例性计算

图5图示根据一个实施例的用于计算第一视频与第二视频之间的相关值以及确定两个视频之间的相似性的量度的示例性过程。在一个实施例中,该过程可以由相关引擎170执行。

相关引擎170访问在这里被称为视频a的第一视频的置信权重510和在这里被称为视频b的第二视频的置信权重520。注意的是,在图5中,下标标记a指代第一视频,而下标标记b指代第二视频。如先前所描述的,这些权重是基于对应镜头计数的发生的罕见性来计算出的。附加地,相关引擎170访问第一视频的镜头计数530和第二视频的镜头计数540。如先前所描述的,视频的镜头计数指示针对该视频的直方图的不同桶中的镜头数量。

在一个实施例中,相关引擎170根据图5中所示的函数来计算第一视频和第二视频的相关值550(在550处)。一般而言,相关引擎170可以像分别通过每个视频的置信权重所修改的那样计算第一视频和第二视频的镜头计数之间的内积(或点积)。因此,例如,函数中的第一项可以是(sa1ca1)(sb1cb1),其对应于乘以第一视频的对应置信权重的第一视频的第一桶的镜头计数以及乘以第二视频的对应置信权重的第二视频的第一桶的镜头计数的积。这与第二桶的相同积相加,依此类推,即,

尽管在上述等式(2)中使用两个置信权重,一个用于第一视频并且一个用于第二视频,然而在替代实施例中相关引擎170仅计算这些视频中的一个的置信权重(例如,仅计算cax值),并且仅通过单个置信权重而不是如图5中所示的两个置信权重来修改内积中的每个分量。换句话说:

相关引擎170还计算第一视频的自相关560和第二视频的自相关570。如图5中所示,视频的自相关是基于视频的镜头计数和它本身(即,再次镜头计数)的内积来计算的,通过对应置信权重来修改。因此,第一视频(a)的自相关560是:

并且第二视频(b)的自相关570是:

在一个实施例中,当仅计算一个视频的置信权重时,两个视频对于每个桶使用相同的置信权重值。例如,如果仅计算cax,则第二视频(b)的自相关替代地将是:

在计算相关值和自相关值之后,相关引擎170确定比较值580,所述比较值580将两个视频的自相关值560和570的第一函数与两个视频的相关值550的第二函数相比较。例如,第一函数可能是两个自相关值的积的平方根,并且第二函数可能是直接等价,使得相关值550未被第二函数修改。如图5所图示的,可以基于对第一函数和第二函数的操作诸如除法来计算比较值580。因此,用于计算比较值580的比较等式可以是:

在等式(8)中,如果第一视频和第二视频是相似的,则所计算的比较值580接近于1或100%,否则,比较值580较低。如果比较值580大(例如,超过诸如50%的阈值),则相关引擎170确定第一视频和第二视频彼此相似。大比较值580可以指示两个视频(a和b)都具有镜头计数的相似但罕见的组合。

否则,如果比较值580小(低于阈值),则相关引擎170可以确定两个视频是不相似的。小比较值很可能指示两个视频具有镜头计数的不相似的组合,或者具有镜头计数的相似但常见的组合。

在一个实施例中,不是确定相似性或不相似性,而是相关引擎170基于比较580确定相似性的可变数值量度(其在一定范围内变化)。例如,如果比较580中指示的差异大,则相似度的数值量度可以是低的,并且反之亦然。

作为相关计算的示例,假定50%的比较阈值,想象镜头计数的两个序列。第一视频a的镜头计数的序列是sa1:2;sa2:0;sa3:l;sa4:0;sa5:l;sa6:l;sa7:l;sa8:0;sa9:l;sa10:l;sa11:0;sa12:l;sa13:0;sa14:1。第二视频b的镜头计数的序列是:sb1:2;sb2:l;sb3:0;sb4:l;sb5:0;sb6:0;sb7:0;sb8:l;sb9:l;sb10:l;sbl1:l;sb12:0;sb13:l;sb14:0。这些桶的镜头持续时间范围分别可以是l;2;3;4;5;6;7;8;10;20;23;25;980;999。所示的镜头持续时间范围的第一视频的置信权重是ca1:l;ca2:l;ca3:l;ca4:l;ca5:l;ca6:l;ca7:l;ca8:l;ca9:2;ca10:2;ca11:2;ca12:2;ca13:10;ca14:10。如果仅使用第一视频的置信权重,则corrab值被计算为8。视频a的自相关值是24,而对第二视频来说是21。这些自相关值的积的平方根是22.45。22.45与8之间的比较值将是8/22.45,其是约0.3363或33.63%,其低于阈值(例如,50%),所以相关引擎170确定这两个视频是不相似的。

vii.用于确定两个视频之间的相似性的示例性流程

图6是图示根据一个实施例的用于使用镜头持续时间相关性来确定视频之间的相似性的内容系统105的动作的流程图。在一个实施例中,流程图中的操作归因于内容系统105。

最初,内容系统105识别605内容存储的第一视频和第二视频中的镜头。内容系统105确定610每个视频的每个经识别的镜头的镜头持续时间。这些镜头持续时间指示每个视频中的镜头的持续时间。

内容存储105生成615每个视频的直方图,每个直方图根据镜头持续时间将每个视频的镜头划分成桶。如上所述,每个直方图的桶可以包含特定镜头范围持续时间。特定镜头范围持续时间内的每个视频的镜头被放置在对应桶中。

内容存储105确定620每个直方图的桶的置信权重,置信权重基于内容存储中的所有视频发生相应镜头持续时间的镜头数量的可能性。如果针对特定镜头持续时间范围的桶中的镜头计数是常见的,则置信权重可以增加,并且反之亦然。

内容系统105基于每个相应直方图的每个桶中的镜头数量并且基于置信权重计算625两个视频的相关值。

内容系统105基于将相关值与每个视频的自相关值相比较来确定630第一视频与第二视频之间的相似度。

viii.其它考虑事项

在说明书中对“一个实施例”或者对“实施例”的引用意味着连同该实施例一起描述的特定特征、结构或特性被包括在至少一个实施例中。短语“在一个实施例中”在本说明书中的各个地方中的出现不一定全部参考同一实施例。

应该注意的是,过程步骤和指令用软件、固件或硬件加以具体实现,并且当用软件加以具体实现时,可被下载以驻留在由各种操作系统所使用的不同平台上并且从由各种操作系统所使用的不同平台操作。

本文中的操作还可以由装置执行。此外,在说明书中参考的计算机可以包括单个处理器或者可以是采用多个处理器设计以得到增加的计算能力的架构。应领会的是,可以使用各种编程语言来实现如本文中所描述的本发明的教导,并且在下面对具体语言的任何引用是为了公开本发明的实现和最佳模式而提供的。附加地,本文中的操作可以作为指令被存储在装置和/或计算机的计算机可读存储介质(其可以是非暂时性计算机可读存储介质,但是本公开不限于此)中。

虽然已经参考优选的实施例和若干替代实施例特别示出并描述了本发明,但是相关领域的技术人员应理解的是,在不脱离本发明的精神和范围的情况下,可在其中做出形式和细节上的各种变化。在一个实施例或实施方式的上下文中描述的任何特征可以被应用在本文中描述的任何实施例或实施方式中。

最后,应该注意的是,本说明书中使用的语言主要是出于可读性和指示目的而选择的,并且可能尚未被选择来刻画或者限制本发明主题。因此,本发明的公开内容旨在说明而不限制本发明的范围,本发明的范围在以下权利要求中进行阐述。

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