CN102460470A - 基于指纹的内容识别趋势分析 - Google Patents
基于指纹的内容识别趋势分析 Download PDFInfo
- Publication number
- CN102460470A CN102460470A CN2010800260530A CN201080026053A CN102460470A CN 102460470 A CN102460470 A CN 102460470A CN 2010800260530 A CN2010800260530 A CN 2010800260530A CN 201080026053 A CN201080026053 A CN 201080026053A CN 102460470 A CN102460470 A CN 102460470A
- Authority
- CN
- China
- Prior art keywords
- content item
- candidate content
- trend
- query
- fingerprint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/40—Scenes; Scene-specific elements in video content
- G06V20/48—Matching video sequences
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/68—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/683—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/78—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/783—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
- G06F16/7847—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content using low-level visual features of the video content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Library & Information Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
描述了基于指纹的内容识别。窗口计数基于根据从查询内容项提取的查询指纹集合和从参考内容项提取的相应参考内容项的匹配集合生成的数据点检测线性趋势。RANSAC可以基于针对多个候选内容项计算的置信度检测趋势。按照置信度的降序将针对候选内容项检测到的趋势与阈值比较,直到找到满足阈值的趋势为止。用于基于指纹的内容识别的基于排序的机制可以使用窗口计数或基于RANSAC的趋势检测机制来识别均与同一查询内容项匹配的重复或多个参考内容项。
Description
相关申请的交叉引用
本申请要求于2009年6月11日提交的第61/186,353号美国临时专利的优先权,其全部内容通过引用合并于此。
技术领域
本公开涉及基于指纹的媒体内容识别。
背景技术
本部分描述的方法是能够达到的方法,而不一定是先前已经构思或达到的方法。因此,除非另外指示,不应当仅由于本部分包括这些方法而假定将本部分描述的这些方法中的任一方法构成现有技术。
由于广泛和日益增长的使用,现今存在大量媒体内容。考虑到以各种格式和编码存在的大量和多种音频和视频内容,以及该内容随着时间的扩大增长,能够正确识别媒体内容的能力具有特别的价值。用于识别媒体内容的一种方法基于媒体指纹的使用。
媒体指纹是媒体内容的标识符,根据这些标识符得到、提取或生成媒体指纹。例如,可以根据特定音频波形得到或以其它方式生成声学指纹作为与其单独对应的代码,并且可以基于诸如亮度、色度和运动描述符的视频内容特征而根据特定视频序列得到或以其它方式生成视频指纹。可以与描述和标识根据其生成各个指纹的各媒体内容项的各种元数据信息相关联地在仓库(repository)中存储媒体指纹。所存储的媒体指纹可以被访问以识别、分类、或以其它方式归类媒体内容的项或样本,诸如音乐或其它音频内容以及视频序列或其它视频内容。媒体内容的这些识别、分类以及归类可以有助于诸如版权管理、授权使用内容的验证、以及各种版本、拷贝以及其它内容项的未授权使用的检测等多种情形。
附图说明
在附图的各图中,相似的附图标记指示相似元件。
图1是示出其中可以实现本文描述的技术的实施例的示例操作环境的框图。
图2A和图2B是共同示出根据示例实施例的用于检测基于指纹的内容识别中的线性趋势的窗口计数机制的流程图。
图3A和图3B是共同示出根据示例实施例的窗口计数机制中的数据点转换的框图。
图4A和图4B是共同示出根据示例实施例的用于检测基于指纹的内容识别中的线性趋势的基于RANSAC的机制的流程图。
图5A示出根据一个实施例的来自基于RANSAC的机制的示例应用的匹配结果的图。
图5B示出根据一个实施例可以用于计算基于RANSAC的机制的置信度的斜率函数的图。
图6A是示出根据示例实施例的用于基于指纹的内容识别的基于排序的机制的流程图。
图6B示处根据一个示例实施例的来自基于排序的机制的示例应用的匹配结果的图。
图7是示出可以在其上实现实施例的示例计算机系统的框图。
具体实施方式
针对基于指纹的内容识别中的线性趋势分析提出技术。在如下描述中,为了说明的目的,描述了众多具体细节以提供对本发明全面的理解。然而,对本领域技术人员显而易见的是没有这些具体细节也可以实施本发明。在其它示例中,为了避免不必要地模糊本发明,以框图形式示出已知结构和装置。
本文根据如下概要描述实施例:
1.0概述
2.0示例操作环境
3.0用于检测线性趋势的窗口计数机制
3.1示例窗口计数方法
3.2数据点转换
3.3窗口尺寸和数据点计数
3.4阈值确定和趋势检测
3.5额外特征
4.0用于检测线性趋势的基于RANSAC的机制
4.1选择匹配的模型
4.2示例非线性趋势
4.3用于检测线性趋势的示例性基于RANSAC的方法
4.4时间窗确定
4.5候选对象的分组、排序和选择
4.6使用RANSAC拟合趋势
4.7置信度确定
4.8最终验证
4.9使用RANSAC检测非线性趋势。
5.0用于内容识别的基于排序的机制
6.0实现机制——硬件概述
7.0等同物、扩展、杂项以及替换
8.0示例实施例
1.0概述
本部分概念性地给出随后部分详细描述的技术的前序。因此,该部分不应当被看做本文描述的技术的概要,而应被认为是说明性的而非限制性的。
如本文中所使用的,“指纹”涉及从连续序列的媒体帧提取、得出或以其它方式生成的一连串签名(其也可被称为码字、子指纹以及哈希值)。每个签名是短数据串,该短数据串是其相应媒体帧或帧序列的高水平表示。为了说明帧速率变化,可以以标称速率(例如12帧每秒或fps)从媒体帧提取或得出签名。“内容项”涉及媒体内容的单元。“参考指纹”涉及从已知和已识别的内容项提取、得出或以其它方式生成的指纹,以及“查询指纹”涉及从需要识别的内容项(也称为“查询内容项”)提取、得出或以其它方式生成的指纹。
一般而言,基于指纹的媒体内容识别涉及搜索仓库中存储的参考指纹与根据需要识别的查询内容项生成的查询指纹之间的最佳匹配。在仓库中,每个参考指纹与描述和标识根据其生成参考指纹的参考内容项的各种元数据信息关联。这种元数据信息的示例包括但不限于内容标识符(例如,文件名、流ID等)、内容描述以及根据其生成指纹的内容项中的指纹的时间位置(或偏移)。
如本文所使用的,“指纹查询”涉及对指纹的单元执行的查询或其它请求,其中单元对应于内容的短时间窗(例如,3秒窗)。指纹查询通常指定某一指纹,当对照参考指纹的仓库执行或以其它方式实施时,指纹查询至少返回与仓库中与所述某个指纹最为匹配的那些参考指纹相关联的元数据信息。
来自单独指纹查询的查询结果可以包含参考内容项的内容标识符和参考内容项内的匹配参考指纹的时间位置(或偏移)。因而,来自各自指定基础查询内容项中以一定时间间隔分离开的多个查询指纹的多个查询的查询结果可以包含针对相应匹配参考指纹的时间位置集合。当匹配参考指纹来自正确匹配查询内容项的内容项时,时间位置集合关于多个查询指纹的时间位置会表现出线性趋势。因此,识别多个间隔开的查询指纹和它们相应的匹配参考指纹的线性趋势能够改善查询内容项的识别准确度,尤其是当查询内容项被严重修改和/或当查询结果包含许多不相关或不正确的匹配时。
如本文所使用的,“线性趋势”涉及数据点沿着以斜率值和截距值为特征的直线的区域中的定位。通过一对时间值表示数据点,其中该对中的第一值是查询指纹在查询内容项中的时间位置,而该对中的第二值是匹配参考指纹在参考内容项中的时间位置。
一种用于改善指纹搜索准确度的方法使用多数投票和线性趋势检测的结合。在该方法中,通过针对返回相同内容标识符的所有匹配计算查询指纹的时间位置和匹配的参考指纹的时间位置之间的偏移差来检测线性趋势。产生最小偏移差的参考指纹对因此被认为表现出最佳线性趋势;如果该最小偏移差小于某阈值,那么对应于该线性趋势的参考内容项被认为是正确的应答。该方法假设线性趋势斜率为“1.0”。这意味着假设偏移差的所有值为相同值,例如,某常数,因此选择具有最小偏移差的参考指纹对是线性趋势的良好指标。与通过使用多数投票和线性趋势检测的结合的方法可以实现的准确度相比,本文描述的技术的实施例可以提高指纹搜索准确度。例如,当以不同于“1.0”的斜率检测时,本文描述的技术的实施例更加准确,当有意地修改查询内容项中的帧速率时,这可以出现不同于“1.0”的斜率,例如,当以比原速度块50%的速度播放视频剪辑时或当24fps剪辑被转换为25fps的PAL格式而未插入复制或内插帧时。在另一个示例中,当从许多数据点中的具有正确内容标识符和表现出正确线性趋势的一小部分数据点检测线性趋势时,本文描述的技术的实施例更加稳健。
本文描述的技术针对基于指纹的内容识别中的趋势检测提供了若干机制,其中不同实施例可以使用这些机制的不同组合。在根据本文描述的技术的一个实施例中,可以基于数据点的窗口计数、由RANSAC(随机采样一致性)得出的置信度、基于数据点的窗口计数和由RANSAC得出的置信度中的至少之一的排序内容识别和/或其任何组合来检测趋势。在该实施例中,一种方法包括下述步骤中的一个或更多个:基于根据从查询内容项提取的查询指纹的集合和从参考内容项提取的相应匹配参考内容项的集合生成的数据点的窗口计数来检测线性趋势;基于针对多个候选内容项计算的由RANSAC得出的置信度来检测趋势,其中,将针对候选内容项检测的趋势按照降低置信度的顺序与阈值比较,直到找到满足阈值的趋势为止;或基于基于窗口计数的检测步骤或基于RANSAC的检测步骤中的至少之一对由指纹得出的内容识别进行排序,其中识别了重复的或多个内容项,它们均与同一查询内容项匹配;以及基于检测的趋势或排序的识别中的一个或更多个计算查询内容项的身份。
根据本文描述的技术的一个实施例,可以实施窗口计数线性趋势检测机制以识别查询内容项。根据查询指纹和相应匹配参考指纹获得多个数据点,其中通过包括查询指纹的时间位置和相应的匹参考指纹的时间位置的一对时间值来表示每个数据点。然后确定数据点的斜率值。然后针对数据点执行线性趋势检测,其中,如果发现,线性趋势会指示与从其得出查询指纹的查询内容项匹配的参考内容项。为了检测线性趋势,首先确定各自对应于多个数据点的多个时间偏移。通过从该数据点中包含的参考指纹的时间位置减去斜率值与该数据点中包含的相应查询指纹的时间位置的乘积来计算每个数据点的时间偏移。然后基于所计算的时间偏移来将数据点分组到多个窗口中,其中,窗口具有相同的窗口尺寸且每个窗口代表不与任何其它窗口的任何时间偏移跨度重叠的特定时间偏移跨度。为了确定具有最大数量的数据点的窗口,对每个窗口中的数据点进行计数。确定最大窗口的一个或更多个度量,然后与当前阈值比较。当一个或更多个度量超过当前阈值时,确定数据点表现出具有当前斜率值的线性趋势,从而对应于数据点的参考内容项被识别为匹配内容项。当一个或多个度量未超过当前阈值时,对具有最大计数的窗口中包含的数据点应用线性回归以确定新的斜率值。还确定更加严格的阈值,并且再次将窗口计数机制应用于具有新斜率值和新阈值的所有数据点。
在根据本文描述的技术的一个实施例中,可以实施基于RANSAC的趋势检测机制以识别查询内容项。基于RANSAC的机制可以使用线性模型或非线性模型来确定针对从查询内容项提取的查询指纹而从指纹数据库获得的多个查询结果所表现出的趋势。针对查询内容项确定时间窗。查询结果被分组到对应于查询结果中返回的内容标识符的多个组中,其中内容标识符分别指示候选内容项。然后对每个候选内容项应用RANSAC算法,以确定与该候选内容项相关联的数据点所表现出的趋势。然后针对每个候选内容项计算置信度,其中置信度基于一个或更多个系数的值以及根据该候选内容项的基础模型确定的趋势的内点数据点的数量。然后按照它们的置信度对候选内容项排序。从具有最高置信度的候选内容项开始,对照阈值逐一比较候选内容项的趋势,直到找到满足阈值的趋势为止或直到对照阈值检测了所有趋势为止。与满足阈值的第一趋势相关联的候选内容项被识别为与正在识别的查询内容项匹配的参考内容项。
根据本文描述的技术的一个实施例,可以实施基于排序的机制以识别均与给定查询内容项匹配的重复的或多个参考内容项。针对为给定查询内容项执行的指纹查询集合中的同一指纹查询返回查询结果集合中的多个不同查询结果的数量。将包含多个不同查询结果的查询结果集合分组为对应于查询结果中返回的内容标识符的多个组,其中内容标识符分别指示候选内容项。针对每个候选内容项应用诸如窗口计数或基于RANSAC的机制的趋势检测机制,以确定拟合与候选内容项相关联的数据点的趋势。基于针对候选内容项而确定的趋势,识别出多个匹配内容项,其中多个匹配内容项的数量大于或等于多个不同查询结果的数量。
基于媒体指纹来识别媒体内容的典型方法已经使用了仓库中存储的参考指纹和从需要识别的查询内容项得出的查询指纹之间的某种形式的模式匹配搜索。与凭借这种模式匹配可以实现的准确度相比,本文描述的技术的实施例可以提高的内容识别的准确度。例如,本文描述的技术的实施例对以下可能影响利用模式匹配搜索可达到的准确度的可能性较不敏感:从其捕获查询内容项的音频/视频信号的失真的可能性、偶然或故意改变或编辑查询内容项的可能性、由于格式和编码不同而导致的指纹变化的可能性和/或和参考指纹与查询指纹之间的误匹配时间对准的可能性。
2.0示例操作环境
图1是示出其中可以实现本文描述的技术的实施例的示例操作环境的框图。
指纹数据库108通信耦合或操作耦合至搜索引擎102。指纹数据库108被配置为存储参考指纹且可以被组织为任意适当的数据仓库,包括但不限于关系数据库、对象关系数据库以及一个或更多个文件系统中的文件或多个文件。
搜索引擎102包括指纹生成器逻辑110、指纹匹配逻辑104以及趋势检测逻辑106。在各种实施例中,指纹生成器逻辑110、指纹匹配逻辑104以及趋势检测逻辑106可以被实现为分离的部件或实现为可以实施额外功能的一个集成部件。如本文中所使用的,“逻辑”涉及指令集合,当通过一个或更多个处理其执行该指令集合时,可进行操作以执行一个或更多个功能。在各种实施例和实现中,可以将任意这样的逻辑实施为能够通过一个或更多个处理器执行的一个或更多个软件部件、诸如专用集成电路(ASIC)或其它可编程集成电路(IC)的一个或更多个硬件部件或软件部件与硬件部件的任意组合。例如,可以将任意具体逻辑实施为,但不限于,一个或更多个软件模块、一个或更多个功能库、一个或更多个动态链接库、独立或客户服务器软件应用程序以及浏览器插件。在各种实施例和实现中,可以将搜索引擎102配置为在各种存储介质中编码的指令的控制下工作的一个或更多个专用计算装置中执行。例如,搜索引擎102可以是在包括但不限于可联网媒体播放器、内容编码器和/或解码器、web搜索服务器、索引服务器以及web浏览器的各种技术环境中配置的独立或分布式应用程序或模块。
指纹生成器逻辑110能够行操作以根据诸如内容输入流和查询内容项的媒体内容得出查询指纹,并将得出的查询指纹传递到指纹匹配逻辑104。指纹匹配逻辑104能够进行操作以比较查询指纹与指纹数据库108中存储的参考指纹,并返回与查询指纹匹配的任意参考指纹。指纹匹配逻辑104能够进行操作以生成指纹查询,并执行或导致执行对照指纹数据库108的指纹查询。例如,指纹匹配逻辑104能够进行操作以通过呼叫数据库驱动器(例如ODBC或JDBC驱动器)、能够访问指纹数据库中的信息的应用编程接口(APIs)、和/或通过直接呼叫管理指纹数据库的各种数据库服务器来执行指纹查询。在一些实施例中,指纹生成器可以不作为单独部件包含在搜索引擎中,但是指纹匹配逻辑本身可以包含能够进行操作以根据查询内容项生成查询指纹的部件。
根据本文描述的技术,指纹匹配逻辑104和/或搜索引擎102的另外的部件能够进行操作以基于正被处理的查询指纹和它们相应的匹配参考指纹生成数据点。例如,当指纹匹配逻辑104找到与给定查询指纹匹配的参考指纹时,指纹匹配逻辑可以进行操作以确定查询内容项中的查询指纹的时间位置以及从指纹数据库108检索到的匹配参考指纹的时间位置,并相互配对。
根据本文描述的技术,指纹匹配逻辑104能够进行操作以将任何所生成的数据点传递到趋势检测逻辑106。在一些实施例中,指纹匹配逻辑104也能够进行操作以将从指纹数据库108检索到的以及标识包括匹配参考指纹的参考内容项的任意内容标识符传递到趋势检测逻辑106。
趋势检测逻辑106能够进行操作以根据用于本文描述的趋势检测和内容识别的一种或更多种机制来执行趋势检测。例如,基于从指纹匹配逻辑104接收的数据点,在一个实施例中,趋势检测逻辑106能够进行操作以实施本文描述的窗口计数机制,以检测接收到的数据点中的线性趋势。在一个实施例中,趋势检测逻辑106能够进行操作以实施本文描述的用于检测接收到的数据点中的线性或非线性趋势的基于RANSAC的机制。在一个实施例中,趋势检测逻辑106能够进行操作以执行用于本文描述的内容识别的基于排序的机制。在另一个实施例中,趋势检测逻辑106能够进行操作以执行本文描述的窗口计数、基于RANSAC的以及基于排序的机制中的一些或全部的任意组合。
工作中,搜索引擎102能够进行操作以接收媒体内容并处理媒体内容以识别匹配参考内容。例如,搜索引擎102可以被配置为在线操作并基于趋势对可能携带各种数字内容项的内容输入流执行内容识别。另外,或作为代替,搜索引擎102可以被配置为离线操作并对从客户端或其它系统过程接收的离散内容项执行内容识别。
例如,搜索引擎102能够进行操作以接收查询内容项103(离线操作中)或提取内容输入流101(在在线操作中)的一部分作为查询内容项。响应于搜索引擎102接收或提取特定查询内容项,指纹生成器逻辑110根据查询内容项生成查询指纹集合。然后将查询指纹集合传递给指纹匹配逻辑104。指纹匹配逻辑104然后生成指纹查询集合并执行或导致执行对照指纹数据库108进行的指纹查询。响应于指纹查询而从指纹数据库108返回的结果包括匹配根据查询内容项生成的查询指纹的参考指纹集合。结果也包括分别与参考指纹集合相关联的根据其生成参考指纹集合的那些参考内容项的内容标识符集合(例如文件名或流ID)。指纹匹配逻辑104然后根据查询指纹和参考指纹生成数据点105,并将这些数据点传递到趋势检测逻辑106。响应于接收到数据点105,趋势检测逻辑106根据本文描述的技术执行窗口计数、基于RANSAC的以及基于排序的机制中的一个或更多个。然后搜索引擎102使用趋势检测的执行结果来确定并输出指示匹配正在处理的查询内容项的一个或更多个内容项的一个或更多个内容项识别107。
本文描述的技术不限于针对任意特定类型的数字内容而实施。例如,本文描述的趋势检测机制可以同样地应用至视频内容和音频内容。音频内容的示例包括但不限于音乐、演讲以及声音。音频内容可以被存储在压缩盘(CD)或其它类型的存储介质上、利用模拟和数字电磁信号传输、或作为服务器和诸如各种类型的计算机系统、移动电话、个人数字助理(PDA)、以及掌上电脑的客户装置之间的数字文件在一个或更多个网络上流动。视频内容的示例包括但不限于电影和其它被记录的表演、演示、动画、以及有时称为“剪辑”的其任意部分。视频内容可以被存储在数字多功能磁盘(DVD)或其它存储介质上、利用模拟和数字电信号传输、或作为服务器和各种类型的客户装置之间的数字文件在一个或更多个网络上流动。
可以用声学指纹识别音频内容。从特定音频波形生成声学指纹作为与其唯一对应的代码。一旦生成了声学指纹,之后可以通过参考指纹来识别根据其生成指纹的相应波形。声学指纹可以用来识别、分类或以其它方式归类音频样本。因而声学指纹在识别用户正在播放的音乐或其它记录、流动或以其它方式传输的音频媒体方面,管理声音库方面,监视广播、网络活动和广告方面以及根据与视频内容(诸如电影)相关联的音频内容(诸如音轨)来识别该视频内容的方面有用。
识别具有视频指纹的视频内容的能力与通过比较声学指纹来识别音频内容相似。根据相应的视频内容生成视频指纹。访问并分析视频信息序列,例如视频流或剪辑。识别并从其得出视频序列的成分特征。特征成分可以包括亮度、色度、运动描述符和/或可以通过人类精神视觉系统感受到的其它特征。得出的特征成分可以被压缩为容易存储和可检索的格式。视频指纹可以用于与视频序列样本的比较,这允许序列中的视频内容的准确识别。因此视频指纹在以下方面有用:观看内容时用户准确识别视频内容,以及对正在被读取、流动或以其它方式使用的内容的版本和项可靠地进行管理版权、验证授权、检测未授权。
3.0用于检测线性趋势的窗口计数机制
根据本文描述的技术,用于检测线性趋势的窗口计数机制依赖于根据查询内容项中的查询指纹的时间位置和参考内容项中的参考指纹的时间位置得出的数据点。虽然线性回归方法(例如最小二乘误差优化方法)可以使用数据点来检测线性趋势,但是在指纹内容识别的环境中,这种方法只有当大多数数据点为内点(in-lier)时才起作用。如果存在显著偏离实际趋势线的许多外点(out-lier)或一些外点,那么通过这种线性回归方法得出的斜率可能远离实际斜率值。
如本文所使用的,“内点”和“内点数据点”涉及接近通过某度量确定的趋势线的数据点;而“外点”和“外点数据点”涉及不接近根据某度量确定的趋势线的数据点。如所使用的,“斜率”和“斜率值”以及“截距”和“截距值”涉及用于限定在二维“x-y”图上绘制的线的标准数学术语。例如,“斜率”和“斜率值”涉及线在水平“x”轴上上升的速度,而“截距”和“截距值”涉及从“x”轴到该线通过竖直“y”轴的点之间的垂直距离。
在指纹内容识别的环境中,数据点集合表现出的线性趋势是由于正被识别的查询内容项和匹配参考内容项之间的时间位置的一对一映射引起的。因此,线性趋势的斜率值通常接近“1.0”。因而,根据本文描述的窗口计数机制,如果在二维图上沿着竖直“y”轴绘制查询指纹和相应参考指纹的时间位置之间的差(标注为toffset),而沿着水平“x”轴绘制查询指纹的时间位置,那么推断散布图表现出具有接近“0”的斜率的平线。这样的平线不会指示截距是什么,但是内点数据点的“y”值将接近截距。因而,如果“y”值的值域(例如沿着“y”轴的toffset的值域)被分成代表相等不重叠时间偏移跨度的窗口,并且确定多少数据点(关联于相同的内容标识符)落入该相同的窗口中的计数,那么代表正确截距的窗口应当具有最高的数据点计数。这是因为虽然外点数据点自然是散布且随机的并会指示任意截距,而根据定义,内点数据点是接近正确截距的。从而,这导致与作为正确或接近正确截距的值相关联的窗口中的数据点高度集中。
3.1示例窗口计数方法
图2A和2B共同示出根据一个实施例的基于指纹的内容识别中用于检测线性趋势的示例窗口计数机制的流程图。窗口计数机制可以通过多种软件部件在多种操作环境中实现。例如,在一种操作环境中,可以通过诸如图1中的搜索引擎102的搜索引擎的一个或更多个模块执行图2A和2B中的方法步骤。只为说明的目的,下文中将图2A和2B中示出的方法步骤描述为通过搜索引擎实施,然而,应注意在各种实施例和操作环境中,可以通过除了搜索引擎之外的软件和/或硬件部件来执行图2A和2B中的方法步骤。
参照图2A,在步骤202中,搜索引擎根据多个查询指纹和多个相应的匹配参考指纹获得多个数据点。例如,搜索引擎或其部件可以接收需要执行识别的查询内容项。搜索引擎或其部件从查询内容项提取查询指纹并搜索指纹数据库以找到与所提取的查询指纹匹配并与标识相同参考内容项的相同内容标识符关联的参考指纹。如果找到的参考指纹与不同内容标识符相关联,并且从而指示不同的参考内容项,那么首先通过它们的内容标识符将参考指纹分成组,并且针对每个组分别执行图2A和2B中的方法步骤以确定该组中的数据点是否表现出线性趋势从而指示与查询内容项匹配的参考内容项。
在步骤204中,搜索引擎或其部件确定第一斜率值,并将所确定的斜率值设定为检测线性趋势的第一次通过(first pass)的当前斜率值。例如,搜索引擎可以最初选择基本上等于“1.0”的斜率值。在一些实施例中,搜索引擎或其部件可以对多个数据点应用RANSAC算法以确定初始斜率值。
在步骤206中,搜索引擎基于当前斜率值和获得的数据点检测线性趋势。注意在一些实施例中,步骤208到步骤222可以作为步骤206的子步骤执行。此外,可以在几次通过中执行步骤208到步骤222,其中每次通过可以使用诸如阈值、度量、斜率值以及窗口尺寸等的不同的当前参数。根据本文描述的窗口机制,执行在数据点中检测线性趋势的多次通过的目的是确定更加准确的线性趋势。如果预定数量次通过之后还没有达到指定的阈值,那么可以确定数据点没有表现出线性趋势,从而与数据点关联的参考内容项与查询内容项不匹配。
在步骤208中,搜索引擎或其部件在获得的数据点上执行数据转换以确定分别对应于所获取的数据点的多个时间偏移。例如,通过从该数据点的参考指纹的时间位置减去当前斜率值与该数据点的查询指纹的时间位置的乘积来计算对应于数据点的时间偏移。凭经验,可以通过以下线性等式来表示这样的数据转换
toffset=tf-k*tq
其中k是当前斜率值,而toffset是针对数据点而计算的时间偏移,其包括查询内容项中的查询指纹的时间位置tq和参考内容项中匹配的参考指纹的时间位置tf。
在步骤210中,搜索引擎或其部件基于所计算的时间偏移将数据点分组到不重叠的窗口中。每个窗口代表不与任何其它窗口的任何其它时间偏移跨度重叠的时间偏移跨度。在一些实施例中,所有窗口可以被设置为具有相同窗口尺寸。可以通过首先计算所有计算出的时间偏移中的最小时间偏移和最大时间偏移之间的时间间隔然后将该时间间隔除以固定的数来确定窗口的尺寸。
在步骤212中,搜索引擎或其部件对每个窗口中的数据点进行计数以确定具有最大数据点计数的窗口(也被称为“最大窗口”)。例如,搜索引擎或其部件可以通过将与数据点关联的时间偏移与每个窗口代表的时间偏移跨度进行比较,以及通过计算多少个时间偏移落入每个时间偏移跨度中来对每个特定窗口中的数据点进行计数。
参照图2B,在步骤214中,搜索引擎或其部件确定最大窗口的一个或更多个度量。一个或更多个度量可以包括可用来确定最大窗口中的数据点表现出的线性趋势的准确度的绝对度量和/或相对度量。例如,在一些实施例中,绝对度量可以是最大窗口中的数据点的计数,而相对度量可以是最大窗口中的数据点的计数与所有窗口中的数据点的总数之比。
在步骤216中,搜索引擎或其部件确定步骤214中确定的度量是否超过当前阈值。当前阈值可以包括一个或更多个阈值,其可以被预先设置为常数或可以针对相同数据点集合执行的每次单独的线性趋势检测通过而被动态计算或以其它方式确定。例如,在各种实现中,可以通过将常数值乘以以下之一来确定阈值:窗口中的数据点的平均计数、窗口中的数据点的总数以及那些包括至少一个数据点的窗口中的数据点的平均计数。在计算最大窗口的绝对度量和相对度量的实施例中,步骤216中的阈值可以包含据对阈值和相对阈值。在这些实施中,为了确定最大窗口中的数据点表现出的线性趋势是否准确,在步骤216中可以将绝度度量与绝对阈值比较,而可以将相对度量与相对阈值比较。
如果在步骤216中,搜索引擎或其部件确定针对最大窗口的计算的一个或更多个度量超过当前阈值,那么在步骤222中,搜索引擎和其部件确定针对正在处理的查询内容项而获得的数据点表现出具有当前斜率值的线性趋势。因此,基于当前斜率值和数据点,搜索引擎或其部件可以确定线性趋势的截距值。
如果在步骤216中,搜索引擎或其部件确定针对最大窗口计算的一个或更多个度量未超过当前阈值,那么在步骤217中搜索引擎或其部件确定一个或更多个度量是否达到最小要求阈值。如果在步骤217中确定一个或更多个度量未达到最小要求阈值,那么在步骤224中搜索引擎或其部件确定在多个数据点之间没有检测到线性趋势并停止搜索。如果在步骤217中确定一个或更多个度量达到要求阈值,那么在步骤218中搜索引擎或其部件对最大窗口中的数据点应用线性回归以确定新的斜率值。在一些实施例中,可以在应用线性回归之前识别并去除外点数据点,从而只对内点数据点应用线性回归。步骤218中应用的线性回归可以使用能够通过分析参考指纹参考指纹的时间位置(在回归中模拟为因变量)和查询指纹的时间位置(在回归中模拟为自变量)之间的关系来确定直线的斜率的已知或以后开发的回归算法。
在步骤220中,搜索引擎或其部件将新斜率值设置为当前斜率值并在第二(或额外)通过中在所有数据点上重复步骤208到224。另外,在步骤220中,搜索引擎或其部件也可以设置比先前使用的阈值更加严格的新当前阈值。
以这种方式,可以在多次通过中在数据点集合上执行检测线性趋势的窗口计数机制,以针对数据点集合表现出的任何线性趋势确定更加准确的参数(例如斜率和截距)。当已经执行了预定数量次通过但没有满足阈值时,窗口计数机制可以生成指示该数据点集合未表现出线性趋势从而与该数据点关联的参考内容项不匹配查询数据内容项的结果。
3.2数据点转换
图3A和3B是共同示出可以在示例窗口计数机制中用来将数据点分组到窗口中的数据点转换的框图。
图3A示出其上绘制了数据点300的二维图。图的水平轴代表包括数据点的查询指纹的时间位置tq,而图的竖直轴代表包括数据点的参考指纹的时间位置tf。线302示出了要通过窗口计数机制确定的线性趋势。线302由截距304和斜率ki定义,其中斜率ki代表针对由窗口计数机制实施的第i次检测通过而选择或确定的斜率值。(注意,图3A中仅以说明的目的而描述线302;事实上,窗口计数机制的目的是确定线302指示的线性趋势和确定该趋势是否足够准确来指示匹配参考内容项。)
图3B示出执行了数据点转换之后在其上绘制了数据点300的二维图。每个数据点300基于如下经验等式310来转换:
toffset=tf-ki*tq
其中toffset是针对数据点计算的时间偏移,tq是该数据点的查询指纹的时间位置,tf是该数据点的匹配参考指纹的时间位置,而ki是针对窗口计数机制执行的第i次检测通过而选择或确定的斜率值。
图3B中的图的水平轴代表包括数据点的查询指纹的时间位置tq,而图的竖直轴代表基于等式310针对数据点300计算的时间偏移toffset。窗口312包括基于计算的时间偏移toffset而确定的相等尺寸的6个窗口。如图3B所示,窗口“4”包括所有窗口的数据点的最高计数,因此窗口“4”会被窗口计数机制确定为最大窗口。
在一些实施例中,可以在若干次检测通过中实施本文描述的窗口计数机制,其中在每次通过中,可以使用不同的斜率值来检测线性趋势。在这些实施例中,可以检查(对第一通过)选择的或(例如通过对后续通过的线性回归)确定的斜率值ki是否在实值“0.5”和“2.5”间的范围内。范围[0.5,2.5]是斜率值ki的合适的值域,这是因为通常查询内容项不会非常慢(例如产生斜率小于“0.5”的线)或非常快(例如产生斜率大于“2.5”的线)地播放内容。此外,在第一次通过之后的检测通过,通过应用线性回归而产生的斜率值ki通常会在“0.9”到“1.1”之间。注意,当存在许多“噪声”数据点从而本文描述的窗口计数机制可能需要应用更多的检测通过的情况下,检测所选择或确定的斜率值ki是否在预期的范围(例如诸如范围[0.9,1.1])内可以提高总体准确度。
3.3.窗口尺寸和数据点计数
根据本文描述的窗口计数机制,窗口尺寸的选择可以确定该机制的鲁棒性和准确度。
如果窗口尺寸太小,那么内点数据点将扩展到许多窗口中而非集合中在(优选地)一个窗口中。这使得更难区分包含内点数据点的窗口和包含外点数据点的窗口。此外,如果实际线性趋势的斜率不同于“1.0”,那么toffset的斜率不会正好是“0”,而内点数据点会扩展到其它窗口。
另一方面,如果窗口尺寸太大,那么窗口可能不期望地包含外点数据点。例如,如果正被检查的数据点实际上没有表现出任何线性趋势,那么它们都不是内点数据点,并且会将窗口的尺寸选择为足够小以避免产生包含集中数量的这种数据点的任何窗口。
在一些实施例中,可以基于两个参数,即线性参数和绝对参数来确定窗口尺寸。用线性参数将窗口尺寸调整为从查询内容项提取查询指纹的时间间隔的长度。例如,线性参数会确保提取查询指纹的时间间隔越长,则选择越大的窗口尺寸。绝对参数用来确保所选择的窗口的尺寸不会太小,而不管从查询内容项提取查询指纹的时间间隔的长度。例如,绝对参数会确保即使提取查询指纹的时间间隔的长度非常小,所选择的窗口尺寸也会至少为某个尺寸。
在一个实施例中,以秒表示窗口的尺寸,且如下地进行选择。令tq-span标注从查询内容项提取查询指纹的时间间隔的以秒为单位的长度。然后,可以将线性参数计算为:
0.004*tq-span
其中“0.004”被确定为根据该实施例产生良好线性参数的系数。该线性参数指示所选择的窗口尺寸会是提取查询指纹的较大时间间隔的至少0.4%。将绝对参数计算为:
其中在该实施例中“200.0”和“100”被确定为产生良好绝对参数的系数。该绝对参数指示即使tq-span太小,窗口尺寸也会大约为两秒。基于上述线性参数和绝对参数,在该实施例中可以根据如下等式来计算窗口的尺寸:
在选择了窗口尺寸之后,在一个实施例中,可以根据表1中示出的伪码来对数据点进行量子化和计数。
表1用于窗口量子化和数据点计数的伪码
在表1的伪码中,toffset[i]表示针对第i个数据点计算的时间偏移。如下执行将数据点量子化到离散窗口中以及数据点计数。首先将每个toffset[i]除以窗口大小,并通过对除法的结果执行INT()操作来获得结果的整数部分。然后将所获得的整数部分用作freg_at[]数组中的索引来增加该整数部分指示的窗口的计数。以这种方式,每个数据点被量子化到指示唯一的离散窗口的唯一的离散整数,并且当量子化数据点时,增加每个窗口的计数。然后,freg_at[]数组中的最大值的位置会指示包含最大数量的数据点的最大窗口。
3.4阈值确定和趋势检测
为了确定数据点集合中是否存在线性趋势,本文描述的窗口计数机制可以测试某窗口中基于窗口计数确定的度量是否超过某个阈值。如果超过,那么这会指示该窗口中的数据点高度集中,因此其将会是线性趋势的良好指示。因此,阈值的确定将决定窗口计数机制的准确度。如果阈值太小,会导致线性趋势检测中的假阳性;如果阈值太大,会导致否定本应为良好线性趋势的检测。
在一些实施例中,窗口计数机制中使用的阈值可以包括相对阈值,其用来测试窗口中发现的数据点的最大计数与所有窗口中的数据点的平均计数的比。在这些实施例中,阈值可以被设置为“3.0”,且,如果最大窗口计数与平均窗口计数的比超过“3.0”,那么在样本中存在足够的数据点的情况下(例如,至少总共5个数据点和最大窗口中至少3个数据点),窗口计数机制可以认为已经检测到了良好线性趋势。
另外,或作为代替,窗口计数机制中使用的阈值也可以包括绝对阈值和相对阈值两者。使用绝对阈值和相对阈值两者的目的是确保最大窗口中存在高度集中的数据点,随后其可以用于后续的通过以确定更加准确的斜率。可以用绝对阈值来确保基于至少一定数量的数据点执行线性趋势的检测。例如,在一个实施例中,绝对阈值的良好值被确定为至少是“5”,(例如,数据点的总数量>=5)。相对阈值可以用来通过确保至少一定数量的总数据点位于最大窗口中来提高任何检测到的线性趋势的准确度。例如,在一个实施例中,该相对值的良好的值被确定为至少“0.15”;该实施例可以测试窗口中的数据点的最大计数与数据点的总数的比是否超过该值(例如,是否)。因而,当对照绝对阈值和相对阈值两者进行测试时,如果数据点的总数量大于或等于“5”(且最大窗口中的数据点的数量大于或等于“3”)且最大窗口计数与数据点总数的比大于或等于“0.15”,那么窗口计数机制可以认为已经检测到良好的线性趋势。
在一些实施例中,可以使用经验数据和/或概率分析来确定阈值中包括的一个或更多个相对阈值和/或绝对阈值以确保低假阴性率和低假阳性率之间的良好的权衡。此外,在一些实施例中,可以通过考虑正被识别的查询内容项的特征来确定阈值中包括的阈值。这些特征的示例包括但不限于正在识别的内容的类型(例如,音频、视频等)、正在识别的查询内容项的长度、以及从查询内容项生成查询指纹的频率等。
3.5额外特征
在各种实施例中,本文描述的窗口计数机制可以使用窗口尺寸选择和阈值确定的各种组合以更加有效第执行和/或更加准确地确定所检测的线性趋势的参数(例如斜率和截距)。
例如,在一些实施例中,可以总是对最大窗口中的数据点执行线性回归,而非仅当一个或更多个所确定的窗口计数度量在某个阈值之下时才应用线性回归以确定新斜率。在这些实施例中,在应用线性回归之后,窗口计数机制可以检查最大窗口中的一些数据是否是外点(例如因为它们远离检测到的线)。然后滤除外点数据点,并仅对剩余的内点数据点再次应用线性回归。一旦确定了线性趋势的斜率的更好的估计,就使用较小窗口尺寸和/或更加严格的阈值集合,因为应当预期在正确的窗口中更高集中度的数据点(和相应的更高的窗口计数),这因此会导致实际线性趋势的斜率值的更好的估计。这样做会在不增加假阴性率的同时降低假阳性率。
4.0用于检测趋势的基于RANSAC的机制
传统RANSAC(“随机取样一致性”)算法随机选取两个样本点并使用这些点形成线。如果其它数据点在距所形成的线的一定距离阈值(标注为D)内,那么它们被认为是内点数据点。如果内点数据点的数量超过某阈值,那么内点数据点指示的线被认为是良好线性趋势。传统RANSAC算法在保持每次迭代时的最佳拟合结果的同时重复该过程一定次数,其中“最佳拟合”结果使当前数据点集合内的内点数据的数量最大化。传统RANSAC算法相对于基于最小二乘的线性回归的优点是其对于外点数据点的鲁棒性。即使只有一小部分点是内点,RANSAC算法也能够确定良好线性趋势。然而应注意,不能够容易地将传统RANSAC算法应用于基于指纹的内容识别的环境中,这是因为这种内容识别可能产生具有许多外点数据点的非常大的数据点集合,这因此会导致传统RANSAC算法使用大量计算资源(例如,CPU时间、内存等)以确定最佳拟合线性趋势。
为了有效地将RANSAC算法应用到基于指纹的内容识别环境,本文描述的技术提供包括传统RANSAC算法的几个新颖定制化的用于检测趋势的基于RANSAC的机制。本文描述的基于RANSAC的机制可以检测线性趋势和非线性趋势。假设通过基于RANSAC的机制检测的线性趋势具有截距。这些线性趋势有时被称为仿射趋势,其可以被拟合到仿射模型。
根据本文描述的技术,基于RANSAC的机制可以与一些传统RANSAC算法一样使用所有被确定的内点数据点来确定更准确的趋势。例如,在(从RANSAC算法的多个迭代期间识别出的多个线中)确定与最大数量的内点数据点相关联的最佳拟合线之后,本文描述的基于RANSAC的机制可以使用最佳拟合线的所有内点数据点以确定该线的更加准确的斜率。例如,基于RANSAC的机制可以对最佳拟合线的内点数据点的组应用线性回归或一些其它类型的回归以获得与这些内点数据点拟合的线的最准确的斜率。
根据本文描述的技术,基于RANSAC的机制可以增强传统RANSAC算法以执行一个或更多个后算法步骤,诸如根据置信度对候选结果排序和/或验证最终结果。为了对通过传统RANSAC算法产生的候选结果进行排序,一些实施例设置为针对每个检测到的趋势计算置信值然后将该趋势的内点数据点的数量与所计算的置信值相乘以获得置信度。然后,根据它们的置信度对候选趋势排序,这允许本文描述的技术通过首先从最可能的候选对象开始有效处理候选对象。也可以在一些操作环境中执行最终结果的验证,在些操作环境中,当RANSAC算法检测到某个较小时间间隔内的多个内点数据时可能获得错误结果。本文描述的技术提供这些结果的最终验证,这是因为小查询窗(即便具有高集中度的数据点)可能不指示正确的结果。
在一些实施例中,本文描述的基于RANSAC的机制可以设置为限制RANSAC算使用的距离阈值D以确定数据点是否接近某个形成的线或曲线。在这些实施例中,距离阈值D可以被设置为秒,其是良好阈值,这是因为通常以12fps速率从基础数据项提取指纹。因此,秒是距离阈值D的良好选择,因为其大约与指纹提取可能引入的任何计时误差相同。
在被配置为检测线性趋势的一些实施例中,本文描述的基于RANSAC的机制可以设置为将RANSAC算发检测到的任何斜率值限定在一定范围内。例如,可以将范围[0.5,2.5]内部地构建到传统RANSAC算法中。如果RANSAC算法检测到该范围以外的斜率值,因为该斜率值肯定指示错误识别结果,所以丢弃该斜率值。这是因为通常查询内容项不会非常慢(例如产生斜率小于“0.5”的线)或非常快(例如产生斜率大于“2.5”的线)地播放内容。因而,在这些实施例中,本文描述的基于RANSAC的机制使用斜率范围来避免一定错误线性趋势的识别。例如,当比特误差率(BER)高时,有时相同的参考指纹可以返回为与许多不同查询指纹匹配。这产生了斜率“0”的线性趋势。然而,在基于指纹的内容识别的环境中,这样的线性趋势没有指示准确的识别结果。根据本文描述的技术,使用斜率范围限制任何检测到的斜率值避免了该问题并提高了基于RANSAC机制的准确度。在一些实施例中,在每个迭代期间,本文描述的基于RANSAC的机制可以首先确定针对两个随机选取的数据点的斜率值是否在一定斜率范围内,而不确定多少其它数据点是关于具有所确定的斜率值的线的内点数据。然后,如果所确定的斜率值不在该斜率范围内,那么基于RANSAC的机制放弃任何基于该斜率值的处理,诸如确定基础内点数据点。以这种方式,本文描述的基于RANSAC的机制尤其在基础数据包括大量噪声时比传统RANSAC处理执行的速度快得多。注意,在被设置用于检测非线性趋势实施例中,本文描述的基于RANSAC的机制可以被设置为以与上述使用斜率范围来限制针对基于线性模型检测到的线性趋势而获得的斜率值的方式相似的方式,将基础非线性模型的系数限制在一定系数范围以内。
注意,不同实施例可以使用不同范围来限制通过线性或非线性趋势的RANSAC算法检测到的系数值,且可以基于各种参数确定这些系数范围,这些参数包括但不限于被搜索的内容的类型(例如,音频或视频内容)、被识别的查询内容项的长度、以及查询内容项的播放速率。例如,在一些实施例中,确定系数范围的参数可以指示如何预测查询内容已经改变,且用户可以动态地配置这些参数。
4.1选择匹配的模型
如本文所使用的,“模型”是指查询内容项的查询结果所要匹配的一种趋势。根据本文描述的技术,在一些实施例中,基于RANSAC的机制能够进行操作以将基础查询结果与若干不同模型拟合。这些模型的例子包括但不限于假设具有截距的线性模型(例如仿射模型)和代表某种的曲线的非线性模型。因而,如果选择线性模型,那么基于RANSAC的机制将试着对照一个线来匹配基础查询结果,以确定查询结果是否表现出线性趋势。如果选了非线性趋势,那么基于RANSAC的机制将试着对照非线性曲线匹配基础查询结果,以确定查询结果是否表现出非线性趋势。
模型与一个或更多个系数相关联,并指定一个或更多个系数。当通过应用本文描述的基于RANSAC机制将查询内容项的指纹查询的查询结果拟合到模型时,确定该模型的系数的值。例如,线性模型中系数之一是斜率;当应用基于RANSAC机制来检测线性趋势时,确定线性趋势的斜率值。在另一个示例中,非线性模型可以与基于特定类型的模型的多个系数相关联;当应用基于RANSAC的机制检测非线性趋势时,确定这些系数的值。
在一些实施例中,本文描述的基于RANSAC的机制允许用户选择对特定模型(例如,线性模型或一些特定非线性模型),基础查询结果将要匹配到该模型。然后基于RANSAC的算法检查并试着对照所选择的模型匹配基础查询结果。例如,搜索引擎或其部件可以提供用户接口,用户可以通过该用户接口输入或选择多个可用模型之一,搜索引擎可以对照该模型匹配从根据查询内容项生成的指纹查询返回的结果。在用户提供选择特定模型的输入之后,搜索引擎或其部件应用RANSAC算法根据本文描述的基于RANSAC的机制对照选择模型来拟合查询结果。
在一些实施例中,本文描述的基于RANSAC的机制可以自动选择特定模型,要对照该模型匹配基础查询结果。例如,搜索引擎或其部件可以使用一些试错法或其它选择技术来从为搜索引擎配置的多个模型选择模型,且然后可以检查和试着对照所选择的模型匹配查询结果。
在一些实施例中,本文描述的基于RANSAC的机制可以允许用户选择将被对照来自特定源的查询内容项而应用的默认模型。例如,搜索引擎可以为用户提供接口,用户可以通过该接口初始选择默认模型。搜索引擎然后可以通过使用默认模型来应用基于RANSAC的机制以初始匹配特定查询内容项的基础查询结果。如果基于RANSAC的机制没有在基础查询结果中检测到任何趋势(例如,如果默认模型是线性的,那么是线性趋势),那么搜索引擎可以促使用户选择一些其它模型(例如,多个可用非线性模型之一),试图对照该模型匹配查询结果。以这种方式,这些实施例允许用户对照查询内容项的查询结果选择和测试各种模式。当根据搜索引擎的用户最初不知道的一些编码方式编码来自特定源(例如基础侵权视频的仓库)查询内容项时这可能尤其有用。因而,通过从多个可用模型进行选择,用户可以使用搜索引擎来确定与编码方式相对应的模型,且然后当试着匹配来自该仓库的内容项时可以将该模型设置为默认。
在一些实施例中,本文描述的基于RANSAC的机制可以自动选择和使用的默认模型,要对照该模型匹配基础查询结果。如果所选择的默认模型不匹配查询结果,那么可以对客户呈现从其中选择试着匹配查询结果的不同于默认模型的另外的模型的一组选项。例如,搜索引擎可以通过使用线性模型来初始匹配基础查询结果而默认地应用基于RANSAC的机制。如果基于RANSAC的机制未在基础查询结果中检测到任何线性趋势,那么搜索引擎可以促使用户选择一些对照其试着匹配查询结果的其它模型(例如,多个可用的非线性模型之一)。在这些实施例中,默认模型与用户可选择的模型的结合使用会加速匹配内容项的识别,当用户最初不知需要识别的查询内容项上可能已经执行的修改的具体类型时尤其如此。
4.2示例非线性趋势
在一些实施例中,本文描述的基于RANSAC的机制能够进行操作以对照代表二维曲线而不是直线的非线性模型来匹配查询内容项的指纹查询结果。
在指纹识别的环境中,表现出非线性趋势的查询结果集合是指正被识别的查询内容项的播放速度不是恒定的而是波动的(例如,内容项的一些部分会播放得比其它部分快)。例如,查询内容项的编码可以有意地根据非线性模型使用波动播放速度,并且在解码/播放期间可以应用逆非线性模型(侵权者知道但是搜索引擎用户不知道)以使得难以识别内容项模式。
在一些实施例中,本文描述的基于RANSAC的机制能够进行操作以对照代表各种非线性曲线的非线性模型来拟合查询内容项的查询结果。例如,非线性模型可表示为不同阶的多项式(阶>1),其中多项式是二维曲线的经验表示。(例如,2阶的多项式表示抛物线。)在另一个示例中,非线性模型可以代表通过调制线性模型上的周期性非线性曲线而创建的曲线。这种曲线可能看起来像正弦波,只不过它会有一个朝上的整体线性趋势。应注意本文所描述的技术并不局限于使用任何具体类型或任何具体阶的非线性趋势。相反,不同的实施例可以使用各种阶的多项式作为非线性模型以实现更好的内容识别准确度,其中可以(例如动态地或响应于用户输入)调节所选择的多项式的阶以用于基础数据中的噪声和/或用于更快地处理。
4.3用于检测线性趋势的基于RANSAC的方法的示例
图4A和4B是共同示出用于在基于指纹的内容识别中检测线性趋势的基于RANSAC的机制的示例的流程图。图4A和4B中示出的基于RANSAC的机制能够进行操作以通过试图对照线性模型拟合指纹查询结果来检测线性趋势。
可以通过各种软件部件在各种操作环境中实现基于RANSAC的机制。例如,在一个操作环境中,图4A和4B中的方法步骤可以由诸如图1中的搜索引擎102的搜索引擎的一个或更多个模块执行。仅为了说明的目的,图4A和4B中的方法步骤在下文中被描述为通过搜索引擎执行,然而,应注意,在各种实施例和操作环境中,可以通过除了搜索引擎之外的软件和/或硬件部件来执行图4A和4B中的方法的步骤。
参照图4A,在步骤402中,搜索引擎或其部件确定查询内容项的时间窗。如本文所使用的,“时间窗”涉及其间从查询内容项提取或以其它方式生成指纹的时间间隔。例如,如果搜索引擎离线操作来对照指纹数据库识别离散查询内容项,那么搜索引擎或其部件可以选择正被识别的查询内容项的整个长度作为时间窗。如果搜索引擎在线操作来处理包含查询内容项的流,那么搜索引擎可以使用适应算法来增量更新查询内容项的时间窗直到发现匹配参考内容项或完成对流的处理为止。
在步骤404中,搜索引擎或其部件访问响应于指定在时间窗内从查询内容项提取的查询指纹的多个指纹查询而获得的多个查询结果。
在步骤406中,搜索引擎或其部件通过内容标识符将查询结果分组到多个组中,其中给定组内的查询结果的子集指示相同候选内容项的相同内容标识符。如本文所使用的,“候选内容项”涉及与一个或更多个参考指纹相关联并可以潜在地作为与给定查询内容项的准确匹配的参考内容项。查询结果可以包括匹配参考指纹和与参考指纹关联的内容标识符,其中为了进一步处理,内容标识符对根据本文描述的基于RANSAC的机制认定为候选内容项的参考内容项进行标识。
在步骤408到步骤412中,搜索引擎或其部件在每个单独的组中处理查询结果以确定与针对该组生成的数据点集合拟合的线性趋势。例如,在步骤408中,搜索引擎或其部件选择特定组中包含的查询结果,并基于查询结果中包含的查询指纹和匹配参考指纹生成数据点集合。在步骤410中,对所生成的数据点集合应用RANSAC算法。当应用时,RANSAC算法返回与数据点结合最拟合的线性趋势的参数(例如,斜率、内点数据点的数量和/或截距)。在一些实施例中,本文描述的基于RANSAC的机制可以限制RANSAC算法使用的距离阈值D以确定与检测到的线接近的内点数据点;例如,距离阈值D可以被设置为秒。在一些实施例中,本文描述的基于RANSAC的机制可以将通过RANSAC算法检测的任何斜率值限制到某一范围内,例如,范围[0.5,2.5]。在这些实施例中,如果根据一对数据点确定的斜率值在斜率范围之外,那么基于RANSAC的机制会丢弃涉及该对数据点的迭代,并会通过从当前数据点集合选择另外一对点来继续下一迭代。如果当前数据点集合中的数据点没有产生斜率范围内的斜率值,那么基于RANSAC的机制会放弃对与该数据点集合相关联的候选内容项的进一步处理。在步骤412中,搜索引擎或其部件确定是否存在任何其它要处理的内容项。如果存在要处理的其它候选内容项,那么搜索引擎或其部件进行步骤408以处理下一候选内容项。如果在步骤412中,搜索引擎或其部件确定已经对与每个候选内容项相关联的数据点应用了RANSAC算法,那么搜索引擎进行步骤414以计算每个候选内容项的置信度。
在步骤414中,搜索引擎或其部件基于针对各个内容项检测的线性趋势的斜率值和拟合检测到的线性趋势的内点数据点的数量来计算每个各个候选内容项的置信度。如本文所使用的,“置信度”涉及指示线性趋势的可能性的度量,该线性趋势指示与该线性趋势关联的候选内容项被正确识别为给定查询内容项。
在步骤416中,搜索引擎或其部件根据候选内容项各自的置信度对候选内容项进行排序,且在步骤418至步骤430中,从具有最高置信度的候选内容项开始逐一处理候选内容项。根据置信度排序和处理候选内容项允许本文描述的基于RANSAC的机制按照从最可能到最不可能候选内容项的顺序处理候选内容项。基于置信度的处理与先前的方法显著不同,先前的方法使用大量操作确定最频繁地在查询结果中找到的候选内容项并使用该候选内容项作为最终结果。在这样的现有方法中,使用大量操作可能产生错误结果,尤其是在查询结果中存在大量噪声和大量外点的情况下。
相比之下,根据在此描述的基于RANSAC的机制,在步骤418中,搜索引擎或其部件首先选择处理具有最高置信度的候选内容项,且在图4B的步骤420中,搜索引擎或其部件对照阈值验证候选内容项的线性趋势。
参照图4B,如果在步骤422中,搜索引擎或其部件确定当前候选内容项的线性趋势满足阈值,那么在步骤428中,搜索引擎确定当前候选内容项是匹配内容项,且在步骤432中,搜索引擎停止识别处理并放弃对剩余候选内容项的处理。
如果在步骤422中搜索引擎或其部件确定当前候选内容项的线性趋势不满足阈值,那么在步骤423中搜索引擎或其部件确定是否存在任何剩余的用于验证的候选内容项的线性趋势。如果在步骤423中,搜索引擎或其部件确定没有剩余的用于验证的线性趋势,那么在步骤430中,搜索引擎或其部件确定没有验证线性趋势从而没有发现匹配的内容项,且在步骤432中,搜索引擎停止识别过程。如果在步骤423中,搜索引擎或其部件确定剩余用于验证的一个或更多个候选内容项的线性趋势,那么在步骤426中,搜索引擎或其部件选择处理具有第二高置信度的候选内容项,且针对该候选内容项重复步骤420到步骤432。
以这种方式,在此描述的基于RANSAC的机制按照置信度的降序处理候选内容项,并一旦找到与满足预设阈值的线性趋势相关联的候选内容项就放弃对任何剩余候选内容项的处理。
4.4时间窗确定
在此描述的基于RANSAC的机制可以被实施为在离线模式和在线模式下工作。在离线模式下,从查询内容项提取指纹期间的时间窗可以被选择为整个查询内容项的时间长度或作为其一个或更多个部分的时间长度。
在在线模式下,在此描述的基于RANSAC的机制可以使用适应算法来动态确定以流方式提供或访问的查询内容项的时间窗。例如,在一个实施例中,可以使用如下适应算法来动态确定正在流动的查询内容项的时间窗。令Tquery-length作为查询内容项的长度,Twindow作为从其提取查询指纹的当前时间窗,Tstep-window作为Twindow的步长(或增量),而Tbase-window作为基本窗大小(例如,指纹的持续时间)。另外,令MAX_Ninlier(n)作为线性趋势检测的第N次通过的所有候选内容项中的内点数据点的最大数量,令MAX_Ninlier(0)=0。最初,Twindow、Tstep-window以及Tbase-window被设置为等于同一值,例如Twindow=Tstep-window=Tbase-window。表2示出了用于确定时间窗的自适应算法的伪码。
表2 用于确定在线模式下的时间窗的伪码
在一些实施例中,可以使用基于一个或更多个先前时间窗内检测到线性趋势的可能性的可变长度增量动态更新正在流动的查询内容项的时间窗。例如,当检测到线性趋势的可能性已从使用从先前时间窗提取的数据点的先前迭代下降时,可变长度增量可以按比例增加(而不是被固定)。可以基于每秒的内点的度量来确定检测到线性趋势的可能性,该度量代表每秒内正规化的内点数据点的数量。
4.5候选对象的分组、排序和选择
根据在此描述的基于RANSAC的机制,从需要进行识别的查询内容项提取或以其它方式生成查询指纹。然后搜索指纹数据库以找到与所提取的查询指纹匹配的参考指纹,其中参考指纹可以与标识不同参考内容项的不同内容标识符(例如,文件名、内容项标题等)相关联。例如,可以针对查询指纹生成指纹查询集合,并且可以对照指纹数据库执行指纹查询集合。查询结果可以包括匹配参考指纹和与参考指纹关联的内容标识符,其中内容标识符标识在此描述的基于RANSAC的机制可能会认作候选内容项的参考内容项以用于进一步处理。
然后通过内容标识符将返回的查询结果分组到单独的组中,其中每组中的查询结果子集指示相同候选内容项的相同内容标识符。在一些实施例中,可以通过候选内容项在每组中出现的频率来进一步对组进行排序。
为了提高处理效率,在一些实施例中,基于候选内容项在查询结果中出现的频率仅选择一些而非全部候选内容项用于进一步处理。例如,如果MAX_F用来表示所有候选内容项中最高匹配频率,那么只有匹配频率大于(例如,前10%)的候选内容项可以被选择用于进一步处理。如果,多于20个候选内容项满足该条件,那么只选择前20用于进一步处理。注意,不同实施例可以使用各种规则和限制来限制用于进一步处理的候选内容项的数量,因此,本段中描述的示例规则被看做是示意性而非限制性的。
4.6使用RANSAC拟合线性趋势
根据在此描述的基于RANSAC的机制,针对每个组中的候选内容项生成数据点集合。例如,可以基于查询内容项中的查询指纹的时间位置和每个组中出现的候选内容项中的相应匹配参考指纹的时间位置来生成数据点集合。
然后分别对每组中的数据点集合应用RANSAC算法以确定与该组中出现的候选内容项相关联的线性趋势。图5A示出了可以通过应用根据在此描述的技术的RANSAC算法来确定的示例线性趋势的图。
在各种实施例中,可以根据在此描述的技术修改所应用的RANSAC算法,以在基于指纹的内容识别中有效地实施。例如,可以通过修改包括但不限于定义线性模型的参数、确定迭代数量的参数以及限定内点数据点容限的参数的各种参数来定制传统RANSAC算法。
线性模型参数。当应用RANSAC算法时,RANSAC算法会找到具有最大数量的内点数据点的线性趋势。然而,在基于指纹的内容识别环境中,只需要考虑斜率在一定范围内的线性趋势。在一些实施例中,斜率范围可以被设置为[0.5,2.5],且可以修改RANSAC算法以只寻找斜率值在该范围内且对应于这些趋势的内点数据点的数量最大的线性趋势。
迭代数量。以p表示内点数据点占数据点总数的比例,n表示迭代的数量(例如,次数),RANSAC算法随机选取两个数据点并拟合通过这两个数据点的线。n次迭代之后,从未确定出良好线性趋势的概率P是
P=(1-p2)n
因此
例如,如果如下选择P和p的值:
P=10-6,p=0.06
那么
n=log(10-6)/log(1-0.062)=3830.7
其中n=3830.7指示迭代次数,在该迭代次数之后找到良好线性趋势的概率(具有6%(0.06)的内点数据点)降到0.0001%(10-6)。基于上述分析,在一个实施例中,可以将RANSAC算法应用的迭代的数量选择为n=4000。
当选择m阶多项式代表的非线性模型用于RANSAC算法时,其会在算法的每个迭代期间选取m+1个数据点来拟合趋势。因此,n次迭代之后从,未确定出良好非线性趋势的概率P是:
P=(1-pm+1)n
因此
基于上述分析,在一个实施例中,可以根据上述经验公式确定针对m阶非线性模型由RANSAC算法应用的迭代n的数量。
内点数据点的容限。对于线性模型,当RANSAC算法选取通过两个随机选择的数据点的线时,RANSAC算法需要对支持(例如,接近)该线的内点数据点进行计数。为了确定数据点关于该线是内点还是外点,需要测量从该数据点到该线的距离。如下计算数据点的距离测量。令
ax+by+c=0
为某个迭代中两个数据点给出的线。然后,针对应用RANSAC算法的数据点集合中剩余数据点(xq,yr)中的每个,如下计算距离测量d:
如果d≤D,其中D是预先确定的内点的距离容限阈值,那么数据点(xq,yr)算作内点。否则,当d>D,那么数据点(xq,yr)是外点。基于上述分析,在一些实施例中,距离容限阈值D被选为秒,其是12fps标称指纹提取率下两个连续帧之间的时间间隔。
4.7置信度确定
当针对线性模型应用在此描述的基于RANSAC的机制时,可以在确定每个候选内容项的线性趋势之后计算每个候选内容项的置信度。例如,可以将候选内容项的置信度计算为针对该候选内容项确定的线性趋势的内点数据点的数量与基于所确定的线性趋势的斜率的置信值的乘积。
在对每个组中的数据点集合应用RANSAC算法之后,确定每个候选内容项的线性趋势,以斜率值和拟合该线性趋势的内点数据点的数量表征该线性趋势。在一些实施例中,可以如下确定每个候选内容项的置信度。另k作为针对线性趋势确定的斜率,Ninlier作为拟合该线性趋势的内点数据点的数量。然后,可以使用如下经验公式来确定置信度:
S=Ninlier*max(e-10*|k-1|,e-10*0.15)
其中S是针对候选内容项计算的置信度,而max(e-10*|k-1|,e-10*0.15)是基于所确定的线性趋势的斜率k、范围在最大约为“1.0”到最小约为“0.23”的置信度函数。图5B示出了根据这些实施例的置信度值函数的图。注意,在一些实施例中可以使用修改的RANSAC算法,其中每个RANSAC迭代期间,修改的RANSAC算法可以计算沿着斜率k的置信度并然后在确定斜率是否可能准确时考虑该计算的置信度。如果给定候选内容项存在不同斜率的多个线性趋势,那么这更优选接近“1.0”的斜率。
在计算了每个候选内容项的置信度之后,基于它们的置信度对候选内容项排序以执行最终的验证。
4.8最终验证
当将在此描述的基于RANSAC算法的机制应用于线性模型时,按照置信度的降序针对候选内容项逐一执行最终验证。如果一个候选内容项的线性趋势满足某预设阈值,那么该候选内容项被认为是匹配结果且不验证剩余候选内容项的线性趋势。
每个线性趋势的最终验证包括将从与该线性趋势相关联的参数得出的一个或更多个度量与一个或更多个阈值比较。因为当较小时间间隔包括较多数据点时可能获得错误的结果(例如,错误参考内容项被识别为匹配内容项),所以可能需要每个线性趋势的最终验证,即便在此描述的修改的RANSAC算法指示大量的内点数据点时也是如此。这是因为小查询时间间隔(即便具有高集中度的数据点)不能指示正确的结果。一般而言,更大的查询时间间隔更加可靠,而在此描述的最终验证处理小查询间隔引起的问题。
在一些实施例中,最终验证可以基于针对每个候选内容项确定的线性趋势的内点数据点的标准化的数量。为了执行最终验证,在此描述的基于RANSAC的机制可以首先将查询时间间隔分为多个时间段。然后,针对给定候选内容项,基于RANSAC的机制确定每个时间段中是否存在至少一个内点数据点。具有至少一个内点数据点的时间段被标记为内点段。然后,内点数据点的标准化的数量指示多少个时间段具有内点数据点,且将该结果与预设阈值比较以确定线性趋势是否指示具有阈值中指示的准确度的匹配内容项。
例如,令Tquery-length作为基础查询内容项的长度。首先将Tquery-length量子化到时间段中,每个时间段长秒(例如包括5个码字)。然后针对秒长的段至少每秒执行一次搜索。然后计算多少段至少具有一个落入其间的内点数据点。如果针对给定候选内容项的内点时间段的计数高于预设阈值(标记为阈值_内点)且内点数据点的密度(例如,每秒的内点数据点)也高于另一预设阈值(标记为阈值_密度),那么确定候选内容项通过最终验证。
在一些实施例中,可以如下选择最终验证中的阈值:
阈值_内点=6,阈值_密度=3×10-3
在这些实施例中,可以将阈值密度设置为很低以检测非常微弱的线性趋势。然而应注意,可以调节阈值密度以适合不同数据点集合和不同操作环境。例如,为了更好地处理短查询内容项,在一些实施例中可以如下选择最终验证中的阈值:
阈值_内点=4,阈值_密度=1
在这些实施例中,可以使用查询内容项的时间长度计算阈值密度,从而更加严格。
4.9使用RANSAC检测非线性趋势
根据在此描述的技术,以与使用RANSAC算法对照线性模型拟合查询结果相似的方式执行使用RANSAC算法对照非线性模型拟合指纹查询结果。例如,在此描述的基于RANSAC的机制能够进行操作以使用置信度来确定拟合基础查询结果的最佳非线性趋势并相应地识别匹配内容项,其中置信度由内点数据点的数量和模型的所获得的系数有多接近它们最通常出现的值(就像对于线性模型,所获得的斜率值有多接近的其最通常值“1.0”)来驱动置信度。相似地,在此描述的基于RANSAC的机制能够进行操作以使用非线性模型的一个或更多个系数的值的范围来限制RANSAC算法的每个迭代期间识别的非线性曲线,从而增加识别最佳匹配内容项中的准确度和机制的处理速度。在此描述的基于RANSAC的机制也能够进行操作以与在此针对线性趋势使用的阈值相似的方式使用针对非线性曲线的内点数据点的绝对密度和/或相对密度的阈值。
5.0用于内容识别的基于排序的机制
在此描述的技术提供能够进行操作以识别均与给定查询内容项匹配的重复或多个参考内容项的基于排序的机制。通常,基于指纹的内容识别方法针对每个查询指纹返回搜索算法在合理量的时间内能找到的“最佳”匹配,其中“最佳”匹配是整个指纹数据库中最接近地匹配查询指纹的一个参考指纹。然后,通过内容标识符(例如,文件名或内容标题)组合来自许多查询指纹搜索的结果,且应用额外算法来确定最准确匹配的参考内容项。
然而,当以指纹数据库中的参考指纹代表重复的内容项时还存在困难。例如,如果指纹数据库存储相同电影的两个不同例子的参考指纹,且两个例子关于比例、信箱(letter box)尺寸、图片质量等几乎相同,那么该电影的查询内容项的最佳匹配会返回第一例子(例如,如果在指纹数据库中来自第一例子的参考指纹具有较高优先权)或以任意且不可预测地方式返回两个例子中的一个。在第一种情况下,用户不会知道指纹数据库中存在该电影的重复或几乎重复的例子。在第二种情况下,用户会获得任意的结果(例如,返回的结果被称为“摆动”)。
因为相同内容可以作为单独版本发行和/或单独发行,所以有时发生同一内容的重复或接近重复的例子。例如,同一歌曲(在音频指纹情况下)可以在不同专辑发行中以稍有不同的版本出现,或会出现在原专辑中然后作为“最热门”专辑的一部分再次出现。此外,在一些操作环境中,可能出现额外的原因来保持在同一指纹数据库中表示的重复的内容。例如,TV连续剧中的一集的一个短场景可以作为概要在另一集中重放。在这些情况下,当数据库用来检测未授权使用时可能期望保留指纹数据库中表示的两个版本。
为了解决同一指纹数据库中表示的重复内容引起的困难,在此描述的技术提供了可以使用在此描述的窗口计数或基于RANSAC的趋势检测机制的基于排序的机制。
在此描述的基于排序的机制针对每个查询指纹返回多达前K个“最佳”参考指纹匹配,而非返回“最佳”匹配,其中K可以是固定常数(例如“3”)。如果针对特定查询指纹返回少于K个匹配,那么可以返回匹配的所用可用参考指纹。然后,使用匹配的所有K个参考指纹(与单个“最佳”匹配相反)来生成提供给趋势检测机制的数据点集合。在趋势检测期间,可以通过它们的关联内容标识符(例如文件名或内容标题)来分类数据点集合,然后可以将趋势检测机制(例如,窗口计数或基于RANSAC的机制)应用至与相同内容标识符关联的每个数据点子集。
注意,根据在此描述的基于排序的机制,不是一确定可接受的参考内容项就停止趋势检测。相反,因为目标是识别重复参考内容项的存在,所以在此描述的基于排序的机制会至少针对一些剩余的参考内容项继续检测。如果在指纹搜索结果中识别出许多候选内容项,那么基于排序的机制可以在针对所有剩余候选内容项检测趋势之后停止,但是为了最佳的性能,其不应在检测到一定数量(例如K)的可接收的参考内容项之前停止。基本原理是因为基于排序的机制每次查询指纹搜索返回多达前K个匹配,所以很可能仅能检测到重复参考内容项的多至K个的例子。
图6A是示出根据示例实施例的用于基于指纹的内容识别的基于排序的机制的流程图。可以通过各种软件部件在各种操作环境中实现基于排序的机制。例如,在一个操作环境中,可以通过诸如图1中的搜索引擎102的搜索引擎的一个或更多个模块执行图6A中的方法步骤。只为说明的目的,图6A中示出的方法的步骤在下文中被描述为通过搜索引擎执行;然而,应注意在各种实施例和操作环境中可以通过除了搜索引擎之外的软件部件和/或硬件部件来执行图6A中的方法步骤。
在步骤602中,搜索引擎或其部件获得或以其它方式访问响应于针对查询内容项生成的多个指纹查询而返回的多个查询结果。查询结果包括针对指纹查询的至少之一而返回的第一固定数量(例如K,其中K>1)的多个不同查询结果。例如,针对相同的查询指纹,查询结果可以包括与标识K个不同候选内容项的K个不同内容标识符相关联的K个不同参考指纹。
在步骤604中,搜索引擎或其部件通过内容标识符将包括同一指纹查询的多个不同查询结果的查询结果分为多个组,其中给定组中的查询结果子集针对相同候选内容项指示相同内容标识符。例如,组“1”中的所有查询结果指示内容标识符“1”,组“2”中所有查询结果指示内容标识符“2”,等。因此,同一指纹查询的多个不同查询结果会被包含在单独的不同组中,该组中可以包括也可以不包括其它指纹查询的查询结果。
在步骤606到610中,搜索引擎或其部件分别对每个单独的组中的所识别的每个候选内容项应用趋势检测机制。趋势检测机制可以是在此描述的窗口计数或基于RANSAC的机制,或者可以是任何现在已知或以后开发出的趋势检测机制。例如,在步骤606中,搜索引擎或其部件可以从组中的所识别的候选内容项选择候选内容项。搜索引擎或其部件可以选择特定组中包含的查询结果以及可以基于查询结果中包含的查询指纹和匹配参考指纹来生成数据点集合。在步骤608中,对所生成的数据点的集合应用趋势检测机制。应用时,趋势检测机制返回与数据点集合最拟合的趋势的参数(例如,线性趋势的斜率、内点数据点的数量和/或截距)。
在步骤610中,搜索引擎或其部件确定是否存在任何其它的要处理的候选内容项。如果存在其它要处理的候选内容项,那么搜索引擎或其部件进行步骤606来选择和处理下一个候选内容项。如果在步骤610中搜索引擎或其部件确定不存在其它应该处理的候选内容项,那么搜索引擎进行步骤612。
在步骤612中,基于针对候选内容项确定的趋势,搜索引擎或其部件识别来自多达一定数量(例如N)的候选内容项的与查询内容项匹配的匹配内容项。有可能与查询内容项基本匹配的候选内容项的数量大于或等于能够针对相同指纹查询范围的多个不同查询结果的数量,换句话说,N≥K,其中N是从其识别匹配内容项的候选内容项的数量,而K是针对相同指纹查询能够返回的多个不同查询结果的数量。注意,在不同实施例和不同操作环境中,参数N和K可以被设置为任何适当的值。例如,可以基于多种参数,包括但不限于被识别的内容的类型(例如音频或视频)、指纹数据库的类型和/或尺寸以及指纹数据库中重复内容的预期数量和/或格式来确定参数N和K。此外,在一些实施例中,用户可以动态地设置参数N和K(例如,针对每个单独的查询内容项或针对每种类型的查询内容项),然而在其它实施例中可以为搜索引擎预先配置或由搜索引擎自动确定参数N和K。
根据在此描述的用于内容识别的基于排序的机制,如果在指纹数据库中存储两个几乎相同的参考内容项的参考指纹,那么在应用了趋势检测机制之后两个参考内容项将作为可接受的结果被识别并被返回。该两个几乎相同的参考内容项可以具有相似的最终得分,该得分可以基于趋势与内点和/或全部数据点的拟合程度、基于内点和/或全部数据点的平均BER等。例如,如果视频剪辑的两个副本(一个具有高质量一个具有低质量)被表示在指纹数据库中,那么高质量查询视频将更可能与视频剪辑的高质量副本匹配,而低质量查询视频将更可能与视频剪辑的低质量副本匹配。然而,在任一情况下,在此描述的基于排序的机制能够在执行趋势检测之后找到和返回其它副本(虽然具有不同、可能有较低的最终得分)。
图6B示出了这样的操作情景的结果,其中在图上绘制了第一最佳匹配和第二最佳匹配。在图6B中,菱形点代表第一最佳匹配,而方形点代表第二最佳匹配。注意,由于一些误差,在查询时间15秒发现查询指纹的错误匹配,但是为了简单起见假设相应的内容标识符依然正确。同样注意,如图6B所示,与第一最佳匹配副本相比,第二最佳匹配副本具有1秒的迟延。
当(例如通过使用基于RANSAC的机制)执行线性趋势检测时,不应将具有相同查询时间位置的两个数据点一起选取来确定初始线的斜率,因为这样的数据点会指示竖直线或无穷大的斜率,这因此会导致在此描述的基于排序的机制的一些实施中的浮点错误。
注意,当“最佳”匹配趋向于在两个几乎相同的参考内容项之间振荡时,返回“最佳”匹配、根据内容标识符分类以及进行趋势检测可能本身就足以检测重复的参考内容项。然而,基于“最佳”匹配如何“振荡”,与在此描述的基于排序的机制所利用的返回前K个匹配相比,可能会需要更多指纹搜索和花费查询内容项的更长持续时间来更可靠地检测重复。如果没有“振荡”,那么使用“最佳”匹配将不能检测指纹数据库中的重复。相比之下,在此描述的基于排序的机制实现了更快和更加可靠的重复参考内容项的检测。如果“最佳”匹配有些“振荡”但不是非常“振荡”,那么在此描述的基于排序的机制会需要更短的查询持续时间,即,需要较少的查询指纹来获得相同的准确度。
6.0实现机制——硬件概述
根据一个实施例,在此描述的基于指纹的用于内容识别的技术通过一个或更多个专用计算装置来实现。专用计算装置可以被硬连线以执行该技术,或可以包括被固定编程为执行这些技术的数字电子装置诸如一个或更多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),或包括被编程为根据固件、存储器、其它存储部或其组合中的程序指令来执行技术的一个或更多个通用硬件处理器。这样的专用计算装置也可以通过定制编程来组合定制硬连线逻辑、ASIC或FPGA以实现该技术。专用计算装置可以是桌上型计算机系统、便携式计算机系统、手持装置、网络装置或其它结合硬接线和/或程序逻辑来实现技术的任何装置。
例如,图7是示出可以在其上实现在此描述的技术的可能的实施例的计算机系统700的框图。计算机系统700包括总线702或其它用于通信信息的通信机制,以及与总线702耦合的用于处理信息的硬件处理器704。硬件处理器704例如可以是通用微处理器。
计算机系统700也可以包含与总线702耦合以用于存储信息和处理器704执行的指令的主存储器706,诸如随机存取存储器(RAM)或其它动态存储装置。主存储器706也可以用来存储要由处理器704执行的指令的执行期间的临时变量或其它中间信息。当这些指令被存储在处理器704可以访问的存储介质中时,这些指令使得计算机系统700成为定制为执行指令中指定的操作的专用机器。
计算机系统700还包括只读存储器(ROM)708或与总线702耦合的用于存储处理器704的静态信息和指令的其它静态存储装置。设置诸如磁盘或光盘的存储装置710并将其耦合至总线702以存储信息和指令。
可以经由总线702将计算机系统700耦合至诸如阴极射线管(CRT)或液晶显示器(LCD)的显示器712,用于对计算机用户显示信息。包括字母数字和其它键的输入设备714耦合至总线702用于将信息和指令选择传达至处理器704。另一类型的用户输入装置是诸如鼠标、轨迹球或光标方向键的光标控制716,用于将方向信息和指令选择传达至处理器704和用于控制光标在显示器712上的移动。该输入装置通常具有允许装置指定平面中的位置的第一轴(例如x)和第二轴(例如y)的两个轴中的两个自由度。
计算机系统700可以使用结合计算机系统以使得或将计算机系统700编程为专用机器的定制的硬连线逻辑、一个或更多个ASIC或FPGA、固件和/或程序逻辑来实现在此描述的技术。根据一个实施例,响应于处理器704执行主存储器706中含有的一个或更多个指令的一个或更多个序列,由计算机系统700执行在此的技术。这些指令可以从诸如存储装置710的另外的存储介质读取到主存储器706中。主存储器706中包含的指令序列的执行使得处理器704执行在此描述的过程步骤。在替选实施例中,可以使用硬连线电路代替软件指令或与软件指令结合。
在此使用的术语“存储介质”涉及存储使机器以特定方式操作的数据和/或指令的任何介质。这样的存储介质可以包括非易失性介质和/或易失性介质。非易失性介质例如包括光盘或磁盘,诸如存储装置710。易失性介质包括动态存储器,诸如主存储器706。例如,存储介质的常见形式包括软盘、软磁盘、硬盘、固态驱动器、磁带、或任何其它磁性数据存储介质、CD-ROM、任何其它的光学数据存储介质、任何具有孔模式的物理介质、RAM、PROM以及EPROM、快闪EPROM、NVRAM、任何其它内存芯片或磁带(cartridge)。
存储介质与传输介质不同,但是可以与传输介质结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包含同轴电缆,铜线和光纤,其包含包括总线702的线。传输介质也可以具有诸如无线电波和红外数据通信期间生成的声波或光波的形式。
可以利用各种形式的介质来将一个或更多个指令的一个或更多个序列携带至处理器407以用于执行。例如,最初可以将指令承载在远程计算机的磁盘或固态驱动器上。远程计算机可以将指令装载到其动态存储器中并使用调制解调器通过电话线发送该指令。计算机系统700的本地调制解调器可以接收电话线上的数据,并使用红外发射器将数据转换成红外信号。红外探测器可以接收红外信号中携带的数据,且适当的电路可以将数据放置在总线702上。总线702携带数据到主存储器706,处理器704从中检索和执行指令。可以选择性地在处理器704的执行之前或之后将主存储器706接收到的指令存储在存储设备710上。
计算机系统也包括耦合至总线702的通信接口718。通信接口718提供耦合至连接到本地网络722的网络链接720的双向数据通信。例如,通信接口718可以是集成服务数字网(ISDN)卡、线缆调制解调器、卫星调制解调器、或调制解调器,以将数据通信连接提供到相应类型的电话线。作为另外一个示例,通信接口718可以是局域网(LAN)卡,以将数据通信连接提供到兼容的LAN。也可以实现无线链接。在任何此类实现中,通信接口718发送和接收携带代表各种类型的信息的数字数据流的电信号、电磁信号或光信号。
网络链接720通常通过一个或更多个网络将数据通信提供至其它数据装置。例如,网络链接720可以通过本地网络722将连接提供至因特网服务提供商(ISP)726所操作的主机724或数据设备。ISP 726因而通过现在通常称为“因特网”728的万维分组数据通信网络提供数据通信服务。本地网络722和因特网728都使用携带数字数据流的电信号、电磁信号或光信号。携带数据至计算机系统700或从计算机系统700携带数据的通过各种网络的信号和网络链接720上的和通过通信接口718的信号是传输介质的示例形式。
计算机系统700能够通过网络、网络链接720以及通信接口718发送包括程序代码的消息和接收数据。在因特网示例中,服务器730可能通过因特网728、ISP 726、本地网络722以及通信接口718发送应用程序的请求的代码。
当接收的代码被接收和/或存储在存储装置710或其它非易失性存储中以用于后续执行时,可以通过处理器704执行所接收的代码。
7.0等同物、扩展、杂项以及替换
在前述说明书中,已经参照可根据不同实施而改变的众多具体细节描述了实施例。因而,本发明是什么以及申请人想要的发明是什么的唯一和排它性的指示是该申请发布的一组权利要求,以这些权利要求发布的具体形式,包括任何后续的更正。这里针对这些权利要求中包含的术语而描述的任何明确的限定应决定权利要求中使用的这些术语的含义。因此,权利要求中没有明确记载的限定、元素、性质、特征、优势或属性不应以任何方式限定这些权利要求的范围。因此,说明书和附图被认为是说明性而非限制性的。
8.0示例实施例
因而,本发明实施例可以涉及一个或更多个示例实施例,将其列举如下:
1.一种方法,包括如下步骤中的一个或更多个:
基于数据点的窗口计数检测线性趋势,所述数据点是根据从查询内容项提取的查询指纹的集合和从参考内容项提取的相应匹配参考内容项的集合生成的;
基于针对多个候选内容项计算的RANSAC得出的置信度来检测趋势,其中对照阈值,按照置信度的降序比较针对所述候选内容项检测出的所述趋势,直到找到满足所述阈值的趋势为止;或
基于所述基于窗口计数的检测步骤或所述基于RANSAC的检测步骤中的至少之一对由指纹得出的内容识别进行排序,其中识别均与同一查询内容项匹配的重复或多个参考内容项;以及
基于检测到的趋势或经排序的识别中的一个或更多个,计算所述查询内容项的身份。
2.根据列举示例实施例1所述的方法,其中基于窗口计数检测线性趋势包括:
(a)将第一斜率值确定为当前斜率值;
(b)确定分别对应于数据点的时间偏移,其中通过从与特定数据点相对应的特定参考指纹的时间位置减去当前斜率值与对应于所述特定数据点的特定查询指纹的时间位置的乘积来计算对应于每个特定数据点的每个特定时间偏移;
(c)基于时间偏移,将数据点分组到各自具有相等窗口大小的多个不重叠的窗口中;
(d)对所述多个窗口中的每个窗口中的数据点进行计数;
(e)确定所述多个窗口中具有最大数据点计数的最大窗口;
(f)至少基于所述最大数据点计数,确定所述最大窗口的一个或更多个度量;
(g)将所述一个或更多个度量与当前阈值比较;
(h)当所述一个或更多个度量超过当前阈值时,确定数据点表现出具有当前斜率值的线性趋势;
(i)当所述一个或更多个度量未超过当前阈值时,对最大窗口中包含的数据点集合应用线性回归以确定第二斜率值;
(j)将第二斜率值设置为当前斜率值并将当前阈值设置为更加严格的阈值;以及
(k)基于所述第二斜率值和所述更加严格的阈值针对数据点执行步骤(b)到(h)。
3.根据列举示例实施例1所述的方法,其中基于RANSAC得出的置信度检测趋势包括:
针对查询内容项确定时间窗;
访问响应于对照指纹数据库执行的指纹查询而获得的查询结果,其中所述指纹查询指定所述时间窗内从所述查询内容项提取的查询指纹;
将所述查询结果分组到分别指示所述多个候选内容项的多个组中,其中每个候选内容项与根据与所述每个候选内容项相应的组中包含的那些查询结果得出的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
确定多个候选内容项中的每个候选内容项的置信度;
基于针对每个候选内容项确定的所述置信度对所述多个候选内容项排序;
从具有最高置信度的候选内容项开始,对照阈值验证针对多个候选内容项中的至少一个候选内容项确定的趋势;以及
将多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
4.根据列举示例实施例1所述的方法,其中对由指纹得出的内容识别进行排序包括:
访问响应于对照指纹数据库执行的指纹查询而获得的查询结果;
其中针对指纹查询的至少特定指纹查询返回第一数量的多个不同查询结果;
将包含特定指纹查询的多个不同查询结果的查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据与所述每个候选内容项相对应的多个组的不同组中包含的那些查询结果得到的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用趋势检测机制,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
基于针对多个候选内容项确定的趋势,将来自多个候选内容项的第二数量的候选内容项识别为匹配的重复或多个参考内容项,其中所述第二数量大于或等于所述第一数量。
5.基于指纹的内容识别中用于检测的线性趋势的计算机实现的方法,包括:
根据多个查询指纹和多个参考指纹获得多个数据点,其中所述多个查询指纹分别与所述多个参考指纹匹配;
其中由一对时间值表示每个特定数据点,其中特定时间值对包含特定查询指纹的时间位置和特定参考指纹的时间位置,其中所述特定查询指纹与所述特定参考指纹匹配;
将第一斜率值确定为当前斜率值;以及
检测多个数据点中的线性趋势,其中所述线性趋势指示匹配内容项且其中检测所述线性趋势包括:
(a)确定分别对应于多个数据点的多个时间偏移,其中通过从与特定数据点相对应的特定参考指纹的时间位置减去当前斜率值与对应于特定数据点的特定查询指纹的时间位置的乘积来计算对应于每个特定数据点的每个特定时间偏移;
(b)基于多个时间偏移,将多个数据点分组到各自具有相等窗口大小的多个窗口中,其中每个特定窗口代表不与多个窗口中的任何其它窗口的任何其它偏移跨度重叠的特定偏移跨度;
(c)对多个窗口中的每个特定窗口中的数据点进行计数;
(d)确定多个窗口的具有最大数据点计数的最大窗口;
(e)至少基于数据点的最大计数,确定最大窗口的一个或更多个度量;
(f)将一个或更多个度量与当前阈值比较;
(g)当一个或更多个度量超过当前阈值时,确定所述多个数据点表现出具有当前斜率值的线性趋势;
(h)当一个或更多个度量未超过当前阈值时,对最大窗口中包含的数据点集合应用线性回归以确定第二斜率值;
(i)将第二斜率值设置为当前斜率值并将当前阈值设置为更加严格的阈值;以及
(j)基于所述第二斜率值和所述更加严格的阈值针对所述多个数据点执行步骤(a)到(g)。
6.根据列举示例实施例5所述的方法,其中检测线性趋势还包括:
基于更加严格的阈值,确定所述多个数据点未表现出具有第二斜率值的有效线性趋势;以及
基于第二斜率值针对所述多个数据点执行步骤(a)到(j)。
7.根据列举示例实施例5所述的方法,其中对数据点集合应用线性回归还包括:
从数据点集合中去除被线性回归指示为外点的任何数据点;以及
再次对数据点集合中剩余的数据点应用线性回归,以确定第二斜率值。
8.根据列举示例实施例5所述的方法,其中检测线性趋势还包括通过将常数值与以下之一相乘来确定当前阈值:
多个窗口中的数据点的平均计数;
多个窗口中的数据点的总数;或
多个窗口中包括至少一个数据点的那些窗口的数据点的平均计数。
9.根据列举示例实施例5所述的方法,其中,确定第一斜率值包括将当前斜率值设置为基本等于整数。
10.根据列举示例实施例5所述的方法,其中,确定第一斜率值包括对多个数据点应用RANSAC算法以确定第一斜率值。
11.根据列举示例实施例5所述的方法,还包括:
基于当前斜率值确定位于线性趋势内的内点数据点的集合;
确定多个指纹中与内点数据点集合关联的参考指纹集合;以及
基于参考指纹集合确定匹配内容项。
12.根据列举示例实施例5所述的方法,其中多个数据点中的每个数据点包含与指示相同参考内容项的相同内容标识符相关联的参考指纹的时间位置。
13.根据列举示例实施例5所述的方法,其中对多个窗口中的每个特定窗口中数据点进行计数包括确定多个数据点中的多少个数据点具有落入所述每个特定窗口表示的特定偏移跨度中的相应时间偏移。
14.根据列举示例实施例5所述的方法,其中:
当前阈值包含绝对阈值和相对阈值;
一个或更多个度量包含第一度量和第二度量,其中
第一度量是数据点的最大计数;
第二度量是数据点的最大计数与多个窗口中的数据点的总数的比;以及
将一个或更多个度量与当前阈值比较包括将第一度量与绝对阈值比较和将第二度量与相对阈值比较。
15.根据列举示例实施例5所述的方法,其中检测线性趋势还包括基于针对多个查询指纹中的所有查询指纹计算的最小时间偏移和最大时间偏移之间的时间间隔来确定窗口大小。
16.根据列举示例实施例5所述的方法,还包括:
从至少一个查询内容项提取多个查询指纹;
对照指纹数据库执行一个或更多个查询,其中一个或更多个查询指定多个查询指纹;以及
响应于一个或更多个查询接收来自指纹数据库的多个参考指纹。
17.根据列举示例实施例5所述的方法,还包括从包含一个或更多个音频内容和视频内容的至少一个查询内容提取多个查询指纹。
18.一种用于基于指纹的内容识别的计算机实现的方法,包括:
针对查询内容项确定时间窗;
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果,其中所述多个指纹查询指定在所述时间窗内从所述查询内容项提取的查询指纹;
将所述多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与从对应于所述每个候选内容项组中包含的查询结果得出的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
确定多个候选内容项的每个候选内容项的置信度,其中置信度基于一个或更多个系数值和针对所述每个候选内容项确定的趋势的内点数据点的数量;
基于针对每个候选内容项确定的所述置信度对所述多个候选内容项排序;
从具有最高置信度的候选内容项开始,对照阈值验证针对多个候选内容项中的至少一个候选内容项确定的趋势;以及
将多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
19.根据列举示例实施例18所述的方法,其中离线执行所述方法,且其中所述时间窗是所述查询内容项的整个时间长度。
20.根据列举示例实施例18所述的方法,其中在所述查询内容项正作为流被处理时在线执行所述方法,且其中所述方法还包括:
增量地更新所述时间窗并搜索匹配内容项直到找到匹配内容项为止或直到完成流的处理为止。
21.根据列举示例实施例18所述的方法,其中针对多个候选内容项中的每个候选内容项应用RANSAC算法还包括:
放弃对一个或更多个系数值在一个或更多个相应范围之外的任何趋势的处理。
22.根据列举示例实施例21所述的方法,其中一个或更多个相应范围是实数的范围。
23.根据列举示例实施例18所述的方法,其中当所述查询内容项作为流被处理时在线执行所述方法,且其中所述方法还包括:
基于在一个或更多个先前时间窗中检测到趋势的可能性使用可变长度增量来更新时间窗,并搜索匹配内容项直到找到匹配内容项为止或直到完成流的处理为止。
24.根据列举示例实施例23所述的方法,其中所述可能性基于每秒中的内点的度量,其代表每秒中标准化的内点数据点的数量。
25.根据列举示例实施例18所述的方法,其中针对多个候选内容项中的每个候选内容项应用RANSAC算法还包括:
使用基本等于一秒的特定分数的内点容限应用RANSAC算法。
26.根据列举示例实施例18所述的方法,其中所述每个候选内容项的趋势是线性趋势,且一个或更多个系数值包含线性趋势的斜率值,且其中多个候选内容项的每个候选内容项的置信度基于如下乘法函数计算:
S=Ninlier*max(e-10*|k-1|,e-10*0.15)
其中“S”是所述每个候选内容项的置信度,
其中“Ninlier”是针对所述每个候选内容项确定的线性趋势的内点数据点的数量,以及
其中“k”是针对所述每个候选内容项确定的线性趋势的斜率值。
27.根据列举示例实施例18所述的方法,其中将多个查询结果分组到分别指示多个候选内容项的多个组中包括:
从多个候选内容项中排除任何与查询结果频率小于特定频率的组相对应的候选内容项。
28.根据列举示例实施例18所述的方法,其中所述阈值包括内点阈值和密度阈值,且其中对照阈值验证针对所述至少一个候选内容项确定的趋势包括:
将时间窗划分为固定时长的段;
确定段计数,其代表包含至少一个内点数据点的段的数量,其中每个段代表标准化的内点数据点;
确定密度度量,其代表每秒的标准化内点数据点的数量;
比较段计数与内点阈值并比较密度度量与密度阈值;以及
当段计数超过内点阈值且密度度量超过密度阈值时,验证所述至少一个候选内容项的趋势。
29.根据列举示例实施例28所述的方法,其中段的固定时长是一秒的特定分数。
30.根据列举示例实施例28所述的方法,其中基于如下之一确定内点阈值和密度阈值:
段的固定时长;或
查询内容项的时间长度。
31.根据列举示例实施例18所述的方法,其中查询内容项包含音频内容和视频内容中的一个或更多个。
32.一种用于基于指纹的内容识别的计算机实现的方法,包括:
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果,其中所述多个指纹查询指定从查询内容项提取的查询指纹;
将所述多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据对应于所述每个候选内容项组中包含的查询结果得出的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
对照阈值验证针对多个候选内容项中的至少一个候选内容项确定的趋势;以及
将多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
33.根据列举示例实施例32所述的方法,其中所述每个候选内容项的趋势是线性趋势,且其中所述方法还包括:
确定多个候选内容项中的每个候选内容项的置信度,其中置信度基于斜率值和针对所述每个候选内容项确定的线性趋势的内点数据点的数量;
其中基于以下乘积函数计算多个候选内容项中的所述每个候选内容项的置信度:
S=Ninlier*max(e-10*|k-1|,e-10*0.15)
其中“S”是所述每个候选内容项的置信度,
其中“Ninlier”是针对所述每个候选内容项确定的线性趋势的内点数据点的数量,并且
其中“k”是针对所述每个候选内容项确定的线性趋势的斜率值;以及
在验证步骤之前,基于针对所述每个候选内容项确定的置信度对多个候选内容项排序。
34.根据列举示例实施例32所述的方法,其中,所述阈值包括内点阈值和密度阈值,且其中对照阈值验证针对所述至少一个候选内容项确定的趋势包括:
将查询内容项的时间窗划分为固定时长的段;
确定段计数,其代表包含至少一个内点数据点的段的数量,其中每个段代表标准化的内点数据点;
确定密度度量,其代表每秒的标准化内点数据点的数量;
比较段计数与内点阈值并比较密度度量与密度阈值;以及
当段计数超过内点阈值且密度度量超过密度阈值时,验证所述至少一个候选内容项的趋势。
35.根据列举示例实施例34所述的方法,其中段的固定时长包括一秒的特定分数。
36.根据列举示例实施例34所述的方法,其中基于如下至少之一确定内点阈值和密度阈值:
段的固定时长;或
查询内容项的时间长度。
37.一种用于基于指纹的内容识别的计算机实现的方法,包括:
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果,其中所述多个指纹查询指定在时间窗内从查询内容项提取的查询指纹;
将所述多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据对应于所述每个候选内容项组中包含的查询结果得出的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势,其中针对所述每个候选内容项应用RANSAC算法包括:
放弃对一个或更多个系数值在一个或更多个相应范围之外的任何趋势的处理;以及
基于针对多个候选内容项确定的趋势,从多个候选内容项识别查询内容项的匹配内容项。
38.根据列举示例实施例37所述的方法,其中,一个或更多个相应范围是实数范围。
39.根据列举示例实施例37所述的方法,其中,将多个查询结果分组到分别指示多个候选内容项的多个组中包括:
从多个候选内容项中排除任何与查询结果频率小于特定频率的组相对应的候选内容项。
40.根据列举示例实施例37所述的方法,其中,识别匹配内容项包括:
将多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
41.一种用于基于RANSAC算法的趋势检测的计算机实现的方法,包括如下步骤中的一个或更多个:
应用RANSAC算法并确定代表包含响应于多个指纹查询而获得的查询结果的多个组的多个候选内容项中的每个候选内容项的置信度;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,其中在RANSAC算法的每次迭代循环中,不针对任何在特定相应范围之外的系数值执行处理;以及
应用RANSAC算法并对照阈值验证针对多个候选内容项中的至少一个候选内容项而确定的趋势,其中对照阈值进行验证包括以下中的一个或更多个:
比较内点阈值与来自查询内容项的段的段计数,其中每个段代表标准化的内点数据点;以及
比较密度阈值与代表查询内容项内的每秒的标准化内点数据数量的密度度量。
42.根据列举示例实施例41所述的方法,其中:
所述至少一个候选内容项的趋势是线性趋势,且所述系数值包含线性趋势的斜率值;
基于以下乘积函数计算多个候选内容项中的每个候选内容项的置信度:
S=Ninlier*max(e-10*|k-1|,e-10*0.15)
其中“S”是所述每个候选内容项的置信度,
其中“Ninlier”是针对所述每个候选内容项确定的线性趋势的内点数据点的数量,并且
其中“k”是针对所述每个候选内容项确定的线性趋势的斜率值;
该方法还包括步骤:至少基于针对多个候选内容项中的一个或更多个候选内容项确定的置信度,从多个候选内容项识别匹配内容项。
43.根据列举示例实施例41所述的方法,其中:
特定相应范围是实数的范围;以及
该方法还包括从多个候选内容项识别匹配内容项的步骤。
44.根据列举示例实施例41所述的方法,还包括步骤:
将多个候选内容项中具有对照阈值第一个被验证的趋势的候选内容项识别为匹配内容项。
45.根据列举示例实施例18、32、37和41中任一项所述的方法,还包括:
确定对照其匹配查询结果的模型;
其中应用RANSAC算法还包括基于所确定的模型应用RANSAC算法。
46.根据列举示例实施例18、32、37和41中任一项所述的方法,其中趋势是线性趋势和非线性趋势之一。
47.一种用于基于指纹的内容识别的计算机实现的方法,包括:
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果;
其中针对所述多个指纹查询中的至少特定指纹查询返回所述多个查寻结果中的多至第一数量的多个不同查询结果;
将包含所述多个不同查询结果的多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据所述多个组中与所述每个候选内容项相对应的不同组中包含的查询结果得到的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用趋势检测机制,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
基于针对多个候选内容项确定的趋势,从来自所述多个候选内容项的多至第二数量的候选内容项中识别匹配内容项,其中所述第二数量大于或等于所述第一数量。
48.根据列举示例实施例47所述的方法,其中,所述趋势检测机制包括窗口计数线性趋势检测机制。
49.根据列举示例实施例47所述的方法,其中,所述趋势检测机制包括基于RANSAC的趋势检测机制。
50.根据列举示例实施例47所述的方法,还包括接收指定第一数量和第二数量的用户输入。
51.根据列举示例实施例47所述的方法,其中,所述第一数量等于所述第二数量。
52.存储一个或更多个指令序列的一个或更多个存储介质,当通过一个或更多个计算装置执行所述指令序列时,使得执行如下步骤中的一个或更多个:
基于数据点的窗口计数检测线性趋势,所述数据点是根据从查询内容项提取的查询指纹的集合和从参考内容项提取的相应匹配参考内容项的集合生成的;
基于针对多个候选内容项计算的RANSAC得出的置信度来检测趋势,其中对照阈值,按照置信度的降序比较针对所述候选内容项检测出的所述趋势,直到找到满足所述阈值的趋势为止;或
基于所述基于窗口计数的检测步骤或所述基于RANSAC的检测步骤中的至少之一对由指纹得出的内容识别进行排序,其中识别均与同一查询内容项匹配的重复或多个参考内容项;以及
基于检测到的趋势或经排序的识别中的一个或更多个,计算所述查询内容项的身份。
53.根据列举示例实施例52中所述的一个或更多个存储介质,其中导致基于窗口计数检测线性趋势的指令包括当由一个或更多个计算装置执行时导致执行以下步骤的指令:
(a)将第一斜率值确定为当前斜率值;
(b)确定分别对应于数据点的时间偏移,其中通过从与特定数据点相对应的特定参考指纹的时间位置减去当前斜率值与对应于所述特定数据点的特定查询指纹的时间位置的乘积来计算对应于每个特定数据点的每个特定时间偏移;
(c)基于时间偏移,将数据点分组到各自具有相等窗口大小的多个不重叠的窗口中;
(d)对所述多个窗口中的每个窗口中的数据点进行计数;
(e)确定所述多个窗口中具有最大数据点计数的最大窗口;
(f)至少基于所述最大数据点计数,确定所述最大窗口的一个或更多个度量;
(g)将所述一个或更多个度量与当前阈值比较;
(h)当所述一个或更多个度量超过当前阈值时,确定数据点表现出具有当前斜率值的线性趋势;
(i)当所述一个或更多个度量未超过当前阈值时,对最大窗口中包含的数据点集合应用线性回归以确定第二斜率值;
(j)将第二斜率值设置为当前斜率值并将当前阈值设置为更加严格的阈值;以及
(k)基于所述第二斜率值和所述更加严格的阈值针对数据点执行步骤(b)到(h)。
54.根据列举示例实施例52中所述的一个或更多个存储介质,其中导致基于RANSAC得出的置信度检测趋势的指令包括当由一个或更多个计算装置执行时导致执行以下步骤的指令:
针对查询内容项确定时间窗;
访问响应于对照指纹数据库执行的指纹查询而获得的查询结果,其中所述指纹查询指定所述时间窗内从所述查询内容项提取的查询指纹;
将所述查询结果分组到分别指示所述多个候选内容项的多个组中,其中每个候选内容项与根据与所述每个候选内容项相对应的组中包含的那些查询结果得出的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
确定多个候选内容项中的每个候选内容项的置信度;
基于针对每个候选内容项确定的所述置信度对所述多个候选内容项排序;
从具有最高置信度的候选内容项开始,对照阈值验证针对多个候选内容项中的至少一个候选内容项确定的趋势;以及
将多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
55.根据列举示例实施例52中所述的一个或更多个存储介质,其中导致对由指纹得出的内容识别的排序的指令包括当由一个或更多个计算装置执行时导致执行以下步骤的指令:
访问响应于对照指纹数据库执行的指纹查询而获得的查询结果;
其中针对指纹查询的至少特定指纹查询返回第一数量的多个不同查询结果;
将包含特定指纹查询的多个不同查询结果的查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据与所述每个候选内容项相对应的多个组的不同组中包含的那些查询结果得到的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用趋势检测机制,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
基于针对多个候选内容项确定的趋势,将来自多个候选内容项的第二数量的候选内容项识别为匹配的重复或多个参考内容项,其中所述第二数量大于或等于所述第一数量。
56.存储一个或更多个指令序列的一个或更多个存储介质,当通过一个或更多个计算装置执行该一个或更多个指令序列时使得执行如下步骤:
根据多个查询指纹和多个参考指纹获得多个数据点,其中所述多个查询指纹分别与所述多个参考指纹匹配;
其中由一对时间值表示每个特定数据点,其中特定时间值对包含特定查询指纹的时间位置和特定参考指纹的时间位置,其中所述特定查询指纹与所述特定参考指纹匹配;
将第一斜率值确定为当前斜率值;以及
检测多个数据点中的线性趋势,其中所述线性趋势指示匹配内容项且其中检测所述线性趋势包括:
(a)确定分别对应于多个数据点的多个时间偏移,其中通过从与特定数据点相对应的特定参考指纹的时间位置减去当前斜率值与对应于特定数据点的特定查询指纹的时间位置的乘积来计算对应于每个特定数据点的每个特定时间偏移;
(b)基于多个时间偏移,将多个数据点分组到各自具有相等窗口大小的多个窗口中,其中每个特定窗口代表不与多个窗口中的任何其它窗口的任何其它偏移跨度重叠的特定偏移跨度;
(c)对多个窗口中的每个特定窗口中的数据点进行计数;
(d)确定多个窗口的具有最大数据点计数的最大窗口;
(e)至少基于数据点的最大计数,确定最大窗口的一个或更多个度量;
(f)将一个或更多个度量与当前阈值比较;
(g)当一个或更多个度量超过当前阈值时,确定所述多个数据点表现出具有当前斜率值的线性趋势;
(h)当一个或更多个度量未超过当前阈值时,对最大窗口中包含的数据点集合应用线性回归以确定第二斜率值;
(i)将第二斜率值设置为当前斜率值并将当前阈值设置为更加严格的阈值;以及
(j)基于所述第二斜率值和所述更加严格的阈值针对所述多个数据点执行步骤(a)到(g)。
57.根据列举示例实施例56中所述的一个或更多个存储介质,其中导致检测线性趋势的指令还包括当通过一个或更多个计算装置执行时导致执行以下的步骤的指令:
基于更加严格的阈值,确定所述多个数据点未表现出具有第二斜率值的有效线性趋势;以及
基于第二斜率值针对所述多个数据点执行步骤(a)到(j)。
58.根据列举示例实施例57中所述的一个或更多个存储介质,其中导致对数据点集合应用线性回归的指令还包括当通过一个或更多个计算装置执行时导致执行以下步骤的指令:
从数据点集合中去除被线性回归指示为外点的任何数据点;以及
再次对数据点集合中剩余的数据点应用线性回归,以确定第二斜率值。
59.根据列举示例实施例56中所述的一个或更多个存储介质,其中导致检测线性趋势的指令还包括当通过一个或更多个计算装置执行时导致通过将常数值与以下之一相乘而执行确定当前阈值的指令:
多个窗口中的数据点的平均计数;
多个窗口中的数据点的总数;或
多个窗口中包括至少一个数据点的那些窗口的数据点的平均计数。
60.根据列举示例实施例56中所述的一个或更多个存储介质,其中导致确定第一斜率的指令包括当通过一个或更多个计算装置执行时使得执行将当前斜率值设置为基本等于整数的指令。
61.根据列举示例实施例56中所述的一个或更多个存储介质,其中导致确定第一斜率的指令包括当通过一个或更多个计算装置执行时使得执行对多个数据点应用RANSAC算法以确定第一斜率的指令。
62.根据列举示例实施例56中所述的一个或更多个存储介质,其中一个或更多个指令序列还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:
基于当前斜率值确定位于线性趋势内的内点数据点的集合;
确定多个指纹中与内点数据点集合关联的参考指纹集合;以及
基于参考指纹集合确定匹配内容项。
63.根据列举示例实施例56中所述的一个或更多个存储介质,其中多个数据点中的每个数据点包含与指示相同参考内容项的相同内容标识符相关联的参考指纹的时间位置。
64.根据列举示例实施例56中所述的一个或更多个存储介质,其中导致对多个窗口中的每个特定窗口中数据点进行计数的指令包括当通过一个或更多个计算装置执行时使得执行确定多个数据点中的多少个数据点具有落入所述每个特定窗口表示的特定偏移跨度中的相应时间偏移的指令。
65.根据列举示例实施例56中所述的一个或更多个存储介质,其中:
当前阈值包含绝对阈值和相对阈值;
一个或更多个度量包含第一度量和第二度量,其中
第一度量是数据点的最大计数;
第二度量是数据点的最大计数与多个窗口中的数据点的总数的比;以及
导致将一个或更多个度量与当前阈值比较的指令包括当通过一个或更多个计算装置执行时使得执行将第一度量与绝对阈值比较和将第二度量与相对阈值比较的指令。
66.根据列举示例实施例56中所述的一个或更多个存储介质,其中导致检测线性趋势的指令包括当通过一个或更多个计算装置执行时导致执行以下步骤的指令:基于针对多个查询指纹中的所有查询指纹计算的最小时间偏移和最大时间偏移之间的时间间隔来确定窗口大小。
67.根据列举示例实施例56中所述的一个或更多个存储介质,其中一个或更多个指令序列包括当通过一个或更多个计算装置执行时导致执行以下步骤的指令:
从至少一个查询内容项提取多个查询指纹;
对照指纹数据库执行一个或更多个查询,其中一个或更多个查询指定多个查询指纹;以及
响应于一个或更多个查询接收来自指纹数据库的多个参考指纹。
68.根据列举示例实施例56中所述的一个或更多个存储介质,其中一个或更多个指令序列还包括当通过一个或更多个计算装置执行时导致执行以下步骤的指令:
从包含音频内容和视频内容中的一个或更多个的至少一个查询内容项提取多个查询指纹。
69.存储一个或更多个指令序列的一个或更多个存储介质,当通过一个或更多个计算装置执行该一个或更多个指令序列时使得执行如下步骤:
针对查询内容项确定时间窗;
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果,其中所述多个指纹查询指定在所述时间窗内从所述查询内容项提取的查询指纹;
将所述多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与从对应于所述每个候选内容项组中包含的查询结果得出的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
确定多个候选内容项的每个候选内容项的置信度,其中置信度基于一个或更多个系数值和针对所述每个候选内容项确定的趋势的内点数据点的数量;
基于针对每个候选内容项确定的所述置信度对所述多个候选内容项排序;
从具有最高置信度的候选内容项开始,对照阈值验证针对多个候选内容项中的至少一个候选内容项确定的趋势;以及
将多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
70.根据列举示例实施例69中所述的一个或更多个存储介质,其中离线执行所述一个或更多个指令序列且其中时间窗是查询内容项的整个时间长度。
71.根据列举示例实施例69中所述的一个或更多个存储介质,其中当作为流处理查询内容项时在线执行一个或更多个指令序列,且其中一个或更多个指令序列还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:
增量地更新所述时间窗并搜索匹配内容项,直到找到匹配内容项为止或直到完成对流的处理为止。
72.根据列举示例实施例69中所述的一个或更多个存储介质,其中使得针对多个候选内容项中的每个候选内容项应用RANSAC算法的指令还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:
放弃对一个或更多个系数值在一个或更多个相应范围之外的任何趋势的处理。
73.根据列举示例实施例72中所述的一个或更多个存储介质,其中一个或更多个相应范围是实数的范围。
74.根据列举示例实施例69中所述的一个或更多个存储介质,其中当作为流处理查询内容项时在线执行所述一个或更多个指令序列,且其中所述一个或更多个指令序列还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:
基于在一个或更多个先前时间窗中检测到趋势的可能性使用可变长度增量来更新时间窗,并搜索匹配内容项直到找到匹配内容项为止或直到完成对流的处理为止。
75.根据列举示例实施例74中所述的一个或更多个存储介质,其中所述可能性基于每秒的内点的度量,该度量代表每秒中标准化的内点数据点的数量。
76.根据列举示例实施例69中所述的一个或更多个存储介质,其中使得针对多个候选内容项中的每个候选内容项应用RANSAC算法的指令还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:
使用基本等于一秒的特定分数的内点容限应用RANSAC算法。
77.根据列举示例实施例69中所述的一个或更多个存储介质,其中所述每个候选内容项的趋势是线性趋势,且一个或更多个系数值包含线性趋势的斜率值,且其中基于如下乘法函数计算多个候选内容项中的每个候选内容项的置信度:
S=Ninlier*max(e-10*|k-1|,e-10*0.15)
其中“S”是所述每个候选内容项的置信度,
其中“Ninlier”是针对所述每个候选内容项确定的线性趋势的内点数据点的数量,以及
其中“k”是针对所述每个候选内容项确定的线性趋势的斜率值。
78.根据列举示例实施例69中所述的一个或更多个存储介质,其中使得将多个查询结果分组到分别指示多个候选内容项的多个组中的指令包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:
从多个候选内容项中排除任何与查询结果频率小于特定频率的组相对应的候选内容项。
79.根据列举示例实施例69中所述的一个或更多个存储介质,其中所述阈值包括内点阈值和密度阈值,且其中使得对照阈值验证针对所述至少一个候选内容项确定的趋势的指令包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:
将时间窗划分为固定时长的段;
确定段计数,其代表包含至少一个内点数据点的段的数量,其中每个段代表标准化的内点数据点;
确定密度度量,其代表每秒的标准化内点数据点的数量;
比较段计数与内点阈值并比较密度度量与密度阈值;以及
当段计数超过内点阈值且密度度量超过密度阈值时,验证所述至少一个候选内容项的趋势。
80.根据列举示例实施例79中所述的一个或更多个存储介质,其中段的固定时长是一秒的特定分数。
81.根据列举示例实施例79中所述的一个或更多个存储介质,其中基于如下之一确定内点阈值和密度阈值:
段的固定时长;或
查询内容项的时间长度。
82.根据列举示例实施例69中所述的一个或更多个存储介质,其中
查询内容项包含音频内容和视频内容中的一个或更多个。
83.存储一个或更多个指令序列的一个或更多个存储介质,当由一个或更多个计算装置执行该一个或更多个指令序列时使得执行以下步骤:
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果,其中所述多个指纹查询指定从查询内容项提取的查询指纹;
将所述多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据对应于所述每个候选内容项组中包含的查询结果得出的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
对照阈值验证针对多个候选内容项中的至少一个候选内容项确定的趋势;以及
将多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
84.根据列举示例实施例83中所述的一个或更多个存储介质,其中所述每个候选内容项的趋势是线性趋势,且其中所述一个或更多个指令序列包括当由一个或更多个计算机执行时使得执行以下步骤的指令:
确定多个候选内容项中的每个候选内容项的置信度,其中置信度基于斜率值和针对所述每个候选内容项确定的线性趋势的内点数据点的数量;
其中基于以下乘积函数计算多个候选内容项中的所述每个候选内容项的置信度:
S=Ninlier*max(e-10*|k-1|,e-10*0.15)
其中“S”是所述每个候选内容项的置信度,
其中“Ninlier”是针对所述每个候选内容项确定的线性趋势的内点数据点的数量,并且
其中“k”是针对所述每个候选内容项确定的线性趋势的斜率值;以及
在验证步骤之前,基于针对所述每个候选内容项确定的置信度对多个候选内容项排序。
85.根据列举示例实施例83中所述的一个或更多个存储介质,其中所述阈值包括内点阈值和密度阈值,且其中使得对照阈值验证针对所述至少一个候选内容项确定的趋势的指令还包括当由一个或更多个计算机执行时使得执行以下步骤的指令:
将查询内容项的时间窗划分为固定时长的段;
确定段计数,其代表包含至少一个内点数据点的段的数量,其中每个段代表标准化的内点数据点;
确定密度度量,其代表每秒的标准化内点数据点的数量;
比较段计数与内点阈值并比较密度度量与密度阈值;以及
当段计数超过内点阈值且密度度量超过密度阈值时,验证所述至少一个候选内容项的趋势。
86.根据列举示例实施例85中所述的一个或更多个存储介质,其中,段的固定时长是秒的特定分数。
87.根据列举示例实施例85中所述的一个或更多个存储介质,其中,基于如下之一确定内点阈值和密度阈值:
段的固定时长;或
查询内容项的时间长度。
88.存储一个或更多个指令序列的一个或更多个存储介质,当由一个或更多个计算装置执行所述一个或更多个指令序列时使得执行以下步骤:
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果,其中所述多个指纹查询指定在时间窗内从查询内容项提取的查询指纹;
将所述多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据对应于所述每个候选内容项组中包含的查询结果得出的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势,其中针对所述每个候选内容项应用RANSAC算法包括:
放弃对一个或更多个系数值在一个或更多个相应范围之外的任何趋势的处理;以及
基于针对多个候选内容项确定的趋势,从多个候选内容项识别查询内容项的匹配内容项。
89.根据列举示例实施例88中所述的一个或更多个存储介质,其中一个或更多个相应范围是实数范围。
90.根据列举示例实施例88中所述的一个或更多个存储介质,其中使得将多个查询结果分组到分别指示多个候选内容项的多个组中的指令还包括当由一个或更多个计算机执行时使得执行以下步骤的指令:
从多个候选内容项中排除任何与查询结果频率小于特定频率的组相对应的候选内容项。
91.根据列举示例实施例88中所述的一个或更多个存储介质,其中使得识别匹配内容项的指令包括当由一个或更多个计算机执行时使得执行以下步骤的指令:
将多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
92.存储用于基于RANSAC算法的趋势检测的一个或更多个指令序列的一个或更多个存储介质,当由一个或更多个计算装置执行所述指令时使得执行以下步骤的中的一个或更多个:
应用RANSAC算法并确定代表包含响应于多个指纹查询而获得的查询结果的多个组的多个候选内容项中的每个候选内容项的置信度;
针对多个候选内容项中的每个候选内容项应用RANSAC算法,其中在RANSAC算法的每次迭代循环中,不针对任何在特定相应范围之外的系数值执行处理;以及
应用RANSAC算法并对照阈值验证针对多个候选内容项中的至少一个候选内容项而确定的趋势,其中对照阈值进行验证包括以下中的一个或更多个:
比较内点阈值与来自查询内容项的段的段计数,其中每个段代表标准化的内点数据点;以及
比较密度阈值与代表查询内容项内的每秒的标准化内点数据数量的密度度量。
93.根据列举示例实施例92中所述的一个或更多个存储介质,其中:
所述至少一个候选内容项的趋势是线性趋势,且所述系数值包含线性趋势的斜率值;
基于以下乘积函数计算多个候选内容项中的每个候选内容项的置信度:
S=Ninlier*max(e-10*|k-1|,e-10*0.15)
其中“S”是所述每个候选内容项的置信度,
其中“Ninlier”是针对所述每个候选内容项确定的线性趋势的内点数据点的数量,并且
其中“k”是针对所述每个候选内容项确定的线性趋势的斜率值;
所述一个或更多个指令序列还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:至少基于针对多个候选内容项中的一个或更多个候选内容项确定的置信度,从多个候选内容项识别匹配内容项。
94.根据列举示例实施例92中所述的一个或更多个存储介质,其中:
特定相应范围是实数的范围;以及
一个或更多个指令序列还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:根据多个候选内容项识别匹配内容项。
95.根据列举示例实施例92中所述的一个或更多个存储介质,其中一个或更多个指令序列还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:
将多个候选内容项中具有对照阈值第一个被验证的趋势的候选内容项识别为匹配内容项。
96.根据列举示例实施例68、82、87以及91中任一项所述的一个或更多个存储介质,其中一个或更多个指令序列还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:
确定对照其匹配查询结果的模型;
其中使得应用RANSAC算法的指令还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:基于所确定的模型应用RANSAC算法。
97.根据列举示例实施例68、82、87以及91中任一项所述的一个或更多个存储介质,其中趋势是线性趋势和非线性趋势之一。
98.存储一个或更多个指令序列的一个或更多个存储介质,当由一个或更多个计算装置执行该一个或更多个指令序列时使得执行以下步骤:
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果;
其中针对所述多个指纹查询中的至少特定指纹查询返回所述多个查寻结果中的多至第一数量的多个不同查询结果;
将包含所述多个不同查询结果的多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据所述多个组中与所述每个候选内容项相对应的不同组中包含的查询结果而得到的数据点集合相关联;
针对多个候选内容项中的每个候选内容项应用趋势检测机制,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
基于针对多个候选内容项确定的趋势,从来自所述多个候选内容项的多至第二数量的候选内容项中识别匹配内容项,其中所述第二数量大于或等于所述第一数量。
99.根据列举示例实施例98中所述的一个或更多个存储介质,其中所述趋势检测机制包括窗口计数线性趋势检测机制。
100.根据列举示例实施例98中所述的一个或更多个存储介质,其中所述趋势检测机制包括基于RANSAC的趋势检测趋势。
101.根据列举示例实施例98中所述的一个或更多个存储介质,其中一个或更多个指令序列还包括当由一个或更多个计算装置执行时使得执行以下步骤的指令:接收指定第一数量和第二数量的用户输入。
102.根据列举示例实施例98中所述的一个或更多个存储介质,其中第一数量等于第二数量。
103.一种计算机可读存储介质,包括当由一个或更多个处理器执行或实施时使得一个或更多个处理器执行或控制权利要求1-51中的一个或更多个中所述的方法的一个或更多个步骤。
104.一种系统,包括用于执行或控制权利要求1-51中的一个或更多个所述的方法的一个或更多个步骤的装置。
105.一种计算设备,包括:
包括编码指令的计算机可读存储介质;以及
一个或更多个处理器,其当执行或实施所述编码指令时,使得一个或更多个处理器实施、执行或控制权利要求1-51中的一个或更多个中所述的方法的一个或更多个步骤。
106.一种计算机系统的用途,包括:
执行、实施、处理、计算或控制权利要求1-51中的一个或更多个中所述的方法的一个或更多个步骤。
Claims (21)
1.一种方法,包括以下步骤中的一个或更多个:
基于数据点的窗口计数检测线性趋势,所述数据点是根据从查询内容项提取的查询指纹的集合和从参考内容项提取的相应匹配参考内容项的集合而生成的;
基于针对多个候选内容项计算的由RANSAC得出的置信度来检测趋势,其中对照阈值,按照置信度的降序比较针对所述候选内容项检测出的所述趋势,直到找到满足所述阈值的趋势为止;或者
根据所述基于窗口计数的检测步骤或所述基于RANSAC的检测步骤中的至少之一对由指纹得出的内容识别进行排序,其中识别均与同一查询内容项匹配的重复或多个参考内容项;以及
基于检测到的趋势或经排序的识别中的一个或更多个,计算所述查询内容项的身份。
2.根据权利要求1所述的方法,其中基于窗口计数检测所述线性趋势包括:
(a)将第一斜率值确定为当前斜率值;
(b)确定分别对应于所述数据点的时间偏移,其中通过从与每个特定数据点相对应的特定参考指纹的时间位置减去所述当前斜率值与对应于所述特定数据点的特定查询指纹的时间位置的乘积,来计算对应于所述每个特定数据点的每个特定时间偏移;
(c)基于所述时间偏移,将所述数据点分组到各自具有相等窗口大小的多个不重叠的窗口中;
(d)对所述多个窗口中的每个窗口中的所述数据点进行计数;
(e)确定所述多个窗口中具有最大数据点计数的最大窗口;
(f)至少基于所述最大数据点计数,确定所述最大窗口的一个或更多个度量;
(g)将所述一个或更多个度量与当前阈值比较;
(h)当所述一个或更多个度量超过所述当前阈值时,确定所述数据点表现出具有所述当前斜率值的线性趋势;
(i)当所述一个或更多个度量未超过所述当前阈值时,对所述最大窗口中包含的数据点集合应用线性回归以确定第二斜率值;
(j)将所述第二斜率值设置为当前斜率值并将所述当前阈值设置为更加严格的阈值;以及
(k)基于所述第二斜率值和所述更加严格的阈值针对所述数据点执行步骤(b)到(h)。
3.根据权利要求1所述的方法,其中,基于所述由RANSAC得出的置信度检测趋势包括:
针对所述查询内容项确定时间窗;
访问响应于对照指纹数据库执行的指纹查询而获得的查询结果,其中所述指纹查询指定在所述时间窗内从所述查询内容项提取的查询指纹;
将所述查询结果分组到分别指示所述多个候选内容项的多个组中,其中每个候选内容项与根据对应于所述每个候选内容项的组中包含的那些查询结果得出的数据点集合相关联;
针对所述多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
确定所述多个候选内容项中的每个候选内容项的置信度;
基于针对每个候选内容项确定的所述置信度对所述多个候选内容项排序;
从具有最高置信度的候选内容项开始,对照阈值验证针对所述多个候选内容项中的至少一个候选内容项确定的所述趋势;以及
将所述多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
4.根据权利要求1所述的方法,其中对所述由指纹得出的内容识别进行排序包括:
访问响应于对照指纹数据库执行的指纹查询而获得的查询结果;
其中针对所述指纹查询中的至少特定指纹查询返回第一数量的多个不同查询结果;
将包含所述特定指纹查询的所述多个不同查询结果的查询结果分组到分别指示所述多个候选内容项的多个组中,其中每个候选内容项与根据所述多个组中对应于所述每个候选内容项的不同组中包含的那些查询结果得到的数据点集合相关联;
针对所述多个候选内容项中的每个候选内容项应用趋势检测机制,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
基于针对所述多个候选内容项确定的趋势,将来自所述多个候选内容项的第二数量的候选内容项识别为匹配的重复或多个参考内容项,其中所述第二数量大于或等于所述第一数量。
5.一种用于基于指纹的内容识别的计算机实现的方法,包括:
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果,其中所述多个指纹查询指定从查询内容项提取的查询指纹;
将所述多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据对应于所述每个候选内容项的组中包含的查询结果得出的数据点集合相关联;
针对所述多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
对照阈值验证针对所述多个候选内容项中的至少一个候选内容项确定的趋势;以及
将所述多个候选内容项中具有对照所述阈值第一个被验证的趋势的一个候选内容项识别为匹配内容项。
6.根据权利要求5所述的方法,其中,所述阈值包括内点阈值和密度阈值,且其中对照所述阈值验证针对所述至少一个候选内容项确定的趋势包括:
将所述查询内容项的时间窗划分为固定时长的段;
确定段计数,其代表包含至少一个内点数据点的段的数量,其中每个所述段代表标准化的内点数据点;
确定密度度量,其代表每秒的标准化内点数据点的数量;
比较所述段计数与所述内点阈值并比较所述密度度量与所述密度阈值;以及
当所述段计数超过所述内点阈值且所述密度度量超过所述密度阈值时,验证所述至少一个候选内容项的趋势。
7.根据权利要求6所述的方法,其中基于以下的一个或更多个确定所述内点阈值和所述密度阈值:
所述段的所述固定时长;或
所述查询内容项的时间长度。
8.一种用于基于指纹的内容识别的计算机实现的方法,包括:
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果,其中所述多个指纹查询指定在时间窗内从查询内容项提取的查询指纹;
将所述多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据对应于所述每个候选内容项的组中包含的查询结果得出的数据点集合相关联;
针对所述多个候选内容项中的每个候选内容项应用RANSAC算法,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势,其中针对所述每个候选内容项应用RANSAC算法包括:
放弃对一个或更多个系数值在一个或更多个相应范围之外的任何趋势的处理;以及
基于针对所述多个候选内容项确定的趋势,从所述多个候选内容项中识别所述查询内容项的匹配内容项。
8.根据权利要求7所述的方法,所述一个或更多个相应范围是实数范围。
9.根据权利要求7所述的方法,其中,将所述多个查询结果分组到分别指示多个候选内容项的多个组包括:
从所述多个候选内容项中排除任何与查询结果频率小于特定频率的组相对应的候选内容项。
10.根据权利要求7所述的方法,其中识别所述匹配内容项包括:
将所述多个候选内容项中具有对照阈值第一个被验证的趋势的一个候选内容项识别为所述匹配内容项。
11.一种用于基于RANSAC算法的趋势检测的计算机实现的方法,包括如下步骤中的一个或更多个:
应用所述RANSAC算法并确定代表包含响应于多个指纹查询而获得的查询结果的多个组的多个候选内容项中的每个候选内容项的置信度;
针对所述多个候选内容项中的每个候选内容项应用所述RANSAC算法,其中在所述RANSAC算法的每次迭代循环中,对于任何在特定相应范围之外的系数值不执行处理;以及
应用所述RANSAC算法并对照阈值验证针对所述多个候选内容项中的至少一个候选内容项而确定的趋势,其中对照所述阈值进行验证包括以下的一个或更多个:
比较内点阈值与来自查询内容项的段的段计数,其中每个段代表标准化的内点数据点;以及
比较密度阈值与密度度量,所述密度度量代表所述查询内容项中的每秒的标准化内点数据点数量。
12.根据权利要求11所述的方法,其中:
所述特定相应范围是实数的范围;并且
所述方法还包括从所述多个候选内容项中识别匹配内容项的步骤。
13.根据权利要求11所述的方法,还包括步骤:
将所述多个候选内容项中具有对照所述阈值第一个被验证的趋势的候选内容项识别为匹配内容项。
14.根据权利要求1、5、8或11中任一项所述的方法,还包括:
确定被对照来匹配所述查询结果的模型;
其中应用所述RANSAC算法还包括基于所确定的模型应用所述RANSAC算法。
15.根据权利要求1、5、8或11中任一项所述的方法,其中所述趋势包括线性趋势或非线性趋势的至少之一。
16.一种用于基于指纹的内容识别的计算机实现的方法,包括:
访问响应于对照指纹数据库执行的多个指纹查询而获得的多个查询结果;
其中针对所述多个指纹查询中的至少特定指纹查询返回所述多个查寻结果中的多至第一数量的多个不同查询结果;
将包含所述多个不同查询结果的所述多个查询结果分组到分别指示多个候选内容项的多个组中,其中每个候选内容项与根据所述多个组中对应于所述每个候选内容项的不同组中包含的查询结果得到的数据点集合相关联;
针对所述多个候选内容项中的每个候选内容项应用趋势检测机制,以确定拟合与所述每个候选内容项相关联的数据点集合的趋势;
基于针对所述多个候选内容项确定的趋势,从来自所述多个候选内容项的多至第二数量的候选内容项中识别匹配内容项,其中所述第二数量大于或等于所述第一数量。
17.根据权利要求16所述的方法,其中,所述趋势检测机制包括窗口计数线性趋势检测机制或基于RANSAC的趋势检测机制中的一个或更多个。
18.一种包含指令的计算机可读存储介质,当由一个或更多个处理器执行或实施所述指令时,使得所述一个或更多个处理器实施或控制权利要求1-17中的一个或更多个所述的方法的一个或更多个步骤。
19.一种系统,包括用于执行或控制权利要求1-17中的一个或更多个所述的方法的一个或更多个步骤的装置。
20.一种计算装置,包括
包含编码指令的计算机可读存储介质;以及
一个或更多个处理器,当其执行或实施所述编码指令时,使得所述一个或更多个处理器实施、执行或控制权利要求1-17中的一个或更多个所述的方法的一个或更多个步骤。
21.一种计算机系统的用途,包括:
执行、实施、处理、计算或控制权利要求1-17中的一个或更多个所述的方法的一个或更多个步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US18635309P | 2009-06-11 | 2009-06-11 | |
US61/186,353 | 2009-06-11 | ||
PCT/US2010/038120 WO2010144671A2 (en) | 2009-06-11 | 2010-06-10 | Trend analysis in content identification based on fingerprinting |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102460470A true CN102460470A (zh) | 2012-05-16 |
CN102460470B CN102460470B (zh) | 2014-12-03 |
Family
ID=42676890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080026053.0A Expired - Fee Related CN102460470B (zh) | 2009-06-11 | 2010-06-10 | 基于指纹的内容识别趋势分析 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8635211B2 (zh) |
CN (1) | CN102460470B (zh) |
WO (1) | WO2010144671A2 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104853244A (zh) * | 2014-02-17 | 2015-08-19 | 斯耐尔有限公司 | 用于管理音视频、音频或视频内容的方法和装置 |
CN107852252A (zh) * | 2015-06-12 | 2018-03-27 | 索伦森媒体有限公司 | 通过自动内容辨识指纹匹配来检测频道改变 |
CN107851104A (zh) * | 2015-04-23 | 2018-03-27 | 索伦森媒体有限公司 | 自动内容辨识指纹序列匹配 |
CN109614844A (zh) * | 2018-10-16 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种链路验证方法、装置及设备 |
CN109661822A (zh) * | 2016-06-27 | 2019-04-19 | 脸谱公司 | 用于识别匹配内容的系统和方法 |
CN109712642A (zh) * | 2018-12-10 | 2019-05-03 | 电子科技大学 | 一种精准快速的广告播出监测方法 |
CN111033513A (zh) * | 2017-09-29 | 2020-04-17 | 株式会社东海理化电机制作所 | 开关装置 |
CN111512283A (zh) * | 2017-12-21 | 2020-08-07 | 华为技术有限公司 | 数据库中的基数估算 |
CN114127714A (zh) * | 2019-05-10 | 2022-03-01 | 六科股份有限公司 | 具有基于传输延迟的特征的内容修改系统 |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101548294B (zh) | 2006-11-30 | 2012-06-27 | 杜比实验室特许公司 | 提取视频和音频信号内容的特征以提供信号的可靠识别 |
US8275681B2 (en) | 2007-06-12 | 2012-09-25 | Media Forum, Inc. | Desktop extension for readily-sharable and accessible media playlist and media |
US9390167B2 (en) | 2010-07-29 | 2016-07-12 | Soundhound, Inc. | System and methods for continuous audio matching |
DE102009030318B4 (de) * | 2009-06-24 | 2012-09-06 | Opticom Dipl.-Ing. Michael Keyhl Gmbh | Vorrichtung und Verfahren zur Bestimmung eines Abtastratenunterschiedes |
US11113299B2 (en) | 2009-12-01 | 2021-09-07 | Apple Inc. | System and method for metadata transfer among search entities |
US8892541B2 (en) * | 2009-12-01 | 2014-11-18 | Topsy Labs, Inc. | System and method for query temporality analysis |
US8892570B2 (en) * | 2009-12-22 | 2014-11-18 | Dolby Laboratories Licensing Corporation | Method to dynamically design and configure multimedia fingerprint databases |
US8417683B2 (en) * | 2010-02-16 | 2013-04-09 | Yahoo ! Inc. | System and method for presenting geolocated relevance-based content |
US9043296B2 (en) | 2010-07-30 | 2015-05-26 | Microsoft Technology Licensing, Llc | System of providing suggestions based on accessible and contextual information |
US8712560B2 (en) * | 2010-12-08 | 2014-04-29 | L'air Liquide Societe Anonyme Pour L'etude Et L'exploration Des Procedes Georges Claude | Performance monitoring of advanced process control systems |
US9069557B2 (en) | 2010-12-17 | 2015-06-30 | Microsoft Technology Licensing, LLP | Business intelligence document |
US9110957B2 (en) * | 2010-12-17 | 2015-08-18 | Microsoft Technology Licensing, Llc | Data mining in a business intelligence document |
US9171272B2 (en) | 2010-12-17 | 2015-10-27 | Microsoft Technology Licensing, LLP | Automated generation of analytic and visual behavior |
US9024952B2 (en) | 2010-12-17 | 2015-05-05 | Microsoft Technology Licensing, Inc. | Discovering and configuring representations of data via an insight taxonomy |
US9104992B2 (en) | 2010-12-17 | 2015-08-11 | Microsoft Technology Licensing, Llc | Business application publication |
US9864966B2 (en) | 2010-12-17 | 2018-01-09 | Microsoft Technology Licensing, Llc | Data mining in a business intelligence document |
US9304672B2 (en) | 2010-12-17 | 2016-04-05 | Microsoft Technology Licensing, Llc | Representation of an interactive document as a graph of entities |
US9111238B2 (en) | 2010-12-17 | 2015-08-18 | Microsoft Technology Licensing, Llc | Data feed having customizable analytic and visual behavior |
US9336184B2 (en) | 2010-12-17 | 2016-05-10 | Microsoft Technology Licensing, Llc | Representation of an interactive document as a graph of entities |
EP2659481B1 (en) * | 2010-12-30 | 2016-07-27 | Dolby Laboratories Licensing Corporation | Scene change detection around a set of seed points in media data |
US10168413B2 (en) | 2011-03-25 | 2019-01-01 | T-Mobile Usa, Inc. | Service enhancements using near field communication |
GB2489512A (en) * | 2011-03-31 | 2012-10-03 | Clearswift Ltd | Classifying data using fingerprint of character encoding |
US9035163B1 (en) | 2011-05-10 | 2015-05-19 | Soundbound, Inc. | System and method for targeting content based on identified audio and multimedia |
US8805827B2 (en) * | 2011-08-23 | 2014-08-12 | Dialogic (Us) Inc. | Content identification using fingerprint matching |
US9824199B2 (en) * | 2011-08-25 | 2017-11-21 | T-Mobile Usa, Inc. | Multi-factor profile and security fingerprint analysis |
US9715659B2 (en) | 2011-08-26 | 2017-07-25 | Google Inc. | System and method for determining a level of confidence that a media item is being presented |
US8548497B2 (en) * | 2011-12-16 | 2013-10-01 | Microsoft Corporation | Indoor localization using commercial frequency-modulated signals |
US8751757B1 (en) * | 2011-12-30 | 2014-06-10 | Emc Corporation | Acquisition and kernel memory storage of I/O metrics |
CN104272304B (zh) * | 2012-05-11 | 2018-06-12 | 索尼公司 | 信息处理设备、信息处理方法以及程序 |
US8645994B2 (en) | 2012-06-28 | 2014-02-04 | Microsoft Corporation | Brand detection in audiovisual media |
CN103678365B (zh) * | 2012-09-13 | 2017-07-18 | 阿里巴巴集团控股有限公司 | 数据的动态获取方法、装置及系统 |
US8898113B2 (en) * | 2012-11-21 | 2014-11-25 | International Business Machines Corporation | Managing replicated data |
US9323840B2 (en) * | 2013-01-07 | 2016-04-26 | Gracenote, Inc. | Video fingerprinting |
US9495451B2 (en) * | 2013-01-07 | 2016-11-15 | Gracenote, Inc. | Identifying video content via fingerprint matching |
US20140257959A1 (en) * | 2013-03-11 | 2014-09-11 | Alan L. Chung | Systems and methods for verification of consumption of product |
US10650408B1 (en) * | 2013-03-15 | 2020-05-12 | Twitter, Inc. | Budget smoothing in a messaging platform |
US9460201B2 (en) * | 2013-05-06 | 2016-10-04 | Iheartmedia Management Services, Inc. | Unordered matching of audio fingerprints |
US9536339B1 (en) * | 2013-06-13 | 2017-01-03 | Amazon Technologies, Inc. | Processing unordered point cloud |
US9141676B2 (en) * | 2013-12-02 | 2015-09-22 | Rakuten Usa, Inc. | Systems and methods of modeling object networks |
US9773328B2 (en) * | 2014-08-18 | 2017-09-26 | Wells Fargo Bank, N.A. | Density gradient analysis tool |
US10607194B2 (en) * | 2014-10-29 | 2020-03-31 | At&T Intellectual Property I, L.P. | Method and apparatus for managing maintenance for a service provider |
US9805099B2 (en) * | 2014-10-30 | 2017-10-31 | The Johns Hopkins University | Apparatus and method for efficient identification of code similarity |
CN106294331B (zh) * | 2015-05-11 | 2020-01-21 | 阿里巴巴集团控股有限公司 | 音频信息检索方法及装置 |
CN107025419B (zh) * | 2016-01-29 | 2020-11-10 | 北京小米移动软件有限公司 | 指纹模板录入方法及装置 |
US10063918B2 (en) | 2016-02-29 | 2018-08-28 | Gracenote, Inc. | Media channel identification with multi-match detection and disambiguation based on single-match |
US9924222B2 (en) * | 2016-02-29 | 2018-03-20 | Gracenote, Inc. | Media channel identification with multi-match detection and disambiguation based on location |
US10395378B2 (en) * | 2016-07-15 | 2019-08-27 | Samsung Electronics Co., Ltd. | Detecting periodic patterns and aperture problems for motion estimation |
US9959448B2 (en) * | 2016-08-19 | 2018-05-01 | Google Llc | Multi-step sequence alignment |
US10467433B2 (en) * | 2017-03-17 | 2019-11-05 | Mediasift Limited | Event processing system |
US20180300701A1 (en) * | 2017-04-12 | 2018-10-18 | Facebook, Inc. | Systems and methods for content management |
US10901869B2 (en) * | 2017-11-07 | 2021-01-26 | Vmware, Inc. | Methods and systems that efficiently store metric data |
US10904587B2 (en) | 2018-07-19 | 2021-01-26 | Gracenote, Inc. | Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision |
US10832692B1 (en) * | 2018-07-30 | 2020-11-10 | Amazon Technologies, Inc. | Machine learning system for matching groups of related media files |
CN109886151B (zh) * | 2019-01-30 | 2022-07-22 | 武汉大学 | 一种虚假身份属性检测方法 |
US11238105B2 (en) * | 2019-03-29 | 2022-02-01 | Salesforce.Com, Inc. | Correlating user device attribute groups |
US11343565B2 (en) | 2020-04-08 | 2022-05-24 | Roku, Inc. | Content-modification system with feature for detecting and responding to a content modification by a tuner device |
US20220027407A1 (en) * | 2020-07-27 | 2022-01-27 | Audible Magic Corporation | Dynamic identification of unknown media |
US11741710B2 (en) * | 2020-10-22 | 2023-08-29 | Micron Technology, Inc. | Accelerated video processing for feature recognition via an artificial neural network configured in a data storage device |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246543A (zh) * | 2008-03-18 | 2008-08-20 | 苏州纳米技术与纳米仿生研究所 | 基于仿生与生物特征识别的考试者身份鉴定系统 |
CN101303729A (zh) * | 2008-07-01 | 2008-11-12 | 山东大学 | 一种新的指纹奇异点检测方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6980690B1 (en) * | 2000-01-20 | 2005-12-27 | Canon Kabushiki Kaisha | Image processing apparatus |
US6990453B2 (en) * | 2000-07-31 | 2006-01-24 | Landmark Digital Services Llc | System and methods for recognizing sound and music signals in high noise and distortion |
CN101548294B (zh) | 2006-11-30 | 2012-06-27 | 杜比实验室特许公司 | 提取视频和音频信号内容的特征以提供信号的可靠识别 |
EP2149098B1 (en) | 2007-05-17 | 2011-01-05 | Dolby Laboratories Licensing Corporation | Deriving video signatures that are insensitive to picture modification and frame-rate conversion |
US8266142B2 (en) | 2007-06-06 | 2012-09-11 | Dolby Laboratories Licensing Corporation | Audio/Video fingerprint search accuracy using multiple search combining |
US20090063277A1 (en) | 2007-08-31 | 2009-03-05 | Dolby Laboratiories Licensing Corp. | Associating information with a portion of media content |
EP2198376B1 (en) | 2007-10-05 | 2016-01-27 | Dolby Laboratories Licensing Corp. | Media fingerprints that reliably correspond to media content |
US20110035382A1 (en) | 2008-02-05 | 2011-02-10 | Dolby Laboratories Licensing Corporation | Associating Information with Media Content |
CN101981574B (zh) | 2008-03-31 | 2013-06-12 | 杜比实验室特许公司 | 分布式媒体指纹储存库 |
WO2010021965A1 (en) | 2008-08-17 | 2010-02-25 | Dolby Laboratories Licensing Corporation | Signature derivation for images |
WO2010022303A1 (en) | 2008-08-22 | 2010-02-25 | Dolby Laboratories Licensing Corporation | Content identification and quality monitoring |
WO2010027847A1 (en) | 2008-08-26 | 2010-03-11 | Dolby Laboratories Licensing Corporation | Robust media fingerprints |
CN102216952B (zh) | 2008-11-17 | 2013-06-05 | 杜比实验室特许公司 | 通过矩不变量的投影可靠地与媒体内容对应的媒体指纹 |
-
2010
- 2010-06-10 US US13/376,584 patent/US8635211B2/en not_active Expired - Fee Related
- 2010-06-10 CN CN201080026053.0A patent/CN102460470B/zh not_active Expired - Fee Related
- 2010-06-10 WO PCT/US2010/038120 patent/WO2010144671A2/en active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101246543A (zh) * | 2008-03-18 | 2008-08-20 | 苏州纳米技术与纳米仿生研究所 | 基于仿生与生物特征识别的考试者身份鉴定系统 |
CN101303729A (zh) * | 2008-07-01 | 2008-11-12 | 山东大学 | 一种新的指纹奇异点检测方法 |
Non-Patent Citations (2)
Title |
---|
SCHMIDT, GEOFF R.等: "Scalable, Content-Based Audio Identification by Multiple Independent Psychoacoustic Matching", 《JOURNAL OF THE AUDIO ENGINEERING SOCIETY》 * |
SUNIL LEE等: "《Acoustics, Speech and Signal Processing, 2008. ICASSP 2008. IEEE International Conference on》", 4 April 2008 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104853244A (zh) * | 2014-02-17 | 2015-08-19 | 斯耐尔有限公司 | 用于管理音视频、音频或视频内容的方法和装置 |
CN107851104A (zh) * | 2015-04-23 | 2018-03-27 | 索伦森媒体有限公司 | 自动内容辨识指纹序列匹配 |
CN107851104B (zh) * | 2015-04-23 | 2022-05-06 | 六科股份有限公司 | 自动内容辨识指纹序列匹配 |
CN107852252B (zh) * | 2015-06-12 | 2019-10-22 | 尼尔森(美国)有限公司 | 通过自动内容辨识指纹匹配来检测频道改变 |
CN107852252A (zh) * | 2015-06-12 | 2018-03-27 | 索伦森媒体有限公司 | 通过自动内容辨识指纹匹配来检测频道改变 |
CN109661822A (zh) * | 2016-06-27 | 2019-04-19 | 脸谱公司 | 用于识别匹配内容的系统和方法 |
US11030462B2 (en) | 2016-06-27 | 2021-06-08 | Facebook, Inc. | Systems and methods for storing content |
CN109661822B (zh) * | 2016-06-27 | 2021-08-20 | 脸谱公司 | 用于识别匹配内容的系统和方法 |
CN111033513A (zh) * | 2017-09-29 | 2020-04-17 | 株式会社东海理化电机制作所 | 开关装置 |
CN111512283A (zh) * | 2017-12-21 | 2020-08-07 | 华为技术有限公司 | 数据库中的基数估算 |
CN111512283B (zh) * | 2017-12-21 | 2023-09-08 | 华为技术有限公司 | 数据库中的基数估算 |
CN109614844A (zh) * | 2018-10-16 | 2019-04-12 | 阿里巴巴集团控股有限公司 | 一种链路验证方法、装置及设备 |
CN109614844B (zh) * | 2018-10-16 | 2023-01-24 | 创新先进技术有限公司 | 一种链路验证方法、装置及设备 |
CN109712642A (zh) * | 2018-12-10 | 2019-05-03 | 电子科技大学 | 一种精准快速的广告播出监测方法 |
CN114127714A (zh) * | 2019-05-10 | 2022-03-01 | 六科股份有限公司 | 具有基于传输延迟的特征的内容修改系统 |
CN114127714B (zh) * | 2019-05-10 | 2022-07-29 | 六科股份有限公司 | 具有基于传输延迟的特征的内容修改系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2010144671A2 (en) | 2010-12-16 |
WO2010144671A3 (en) | 2011-02-24 |
US8635211B2 (en) | 2014-01-21 |
US20120078894A1 (en) | 2012-03-29 |
CN102460470B (zh) | 2014-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102460470B (zh) | 基于指纹的内容识别趋势分析 | |
EP2657884B1 (en) | Identifying multimedia objects based on multimedia fingerprint | |
CN102414683B (zh) | 基于媒体内容的分类来存储和检索从媒体内容中导出的指纹 | |
CN103370739B (zh) | 用于辨识环境声音的系统和方法 | |
CN101821734B (zh) | 时基媒体之间的匹配的检测和分类 | |
CN100485574C (zh) | 用于内容项目签名匹配的方法和装置 | |
CN105787104B (zh) | 用户属性信息的获取方法和装置 | |
CN100437572C (zh) | 音频指纹识别系统和方法 | |
US8892570B2 (en) | Method to dynamically design and configure multimedia fingerprint databases | |
US8676731B1 (en) | Data extraction confidence attribute with transformations | |
US7991206B1 (en) | Surrogate heuristic identification | |
CN112860943A (zh) | 一种教学视频审核方法、装置、设备及介质 | |
EP1582999A4 (en) | DEVICE, PROGRAM AND METHOD FOR TECHNICAL EVALUATION | |
CN101452477A (zh) | 信息处理设备、信息处理方法和程序 | |
CN108447501A (zh) | 一种云存储环境下基于音频字的盗版视频检测方法与系统 | |
US10534777B2 (en) | Systems and methods for continuously detecting and identifying songs in a continuous audio stream | |
CN102428467A (zh) | 用于分类的基于相似度的特征集补充 | |
CN104615741A (zh) | 一种基于云计算的冷启动项目推荐的方法及装置 | |
US20140198998A1 (en) | Novel criteria for gaussian mixture model cluster selection in scalable compressed fisher vector (scfv) global descriptor | |
Trummer et al. | A holistic approach for query evaluation andresult vocalization in voice-based OLAP | |
CN111753126A (zh) | 用于视频配乐的方法和装置 | |
KR101064256B1 (ko) | 최대 개념강도 인지기법을 이용한 최적의 데이터베이스 선택장치 및 그 방법 | |
US8639773B2 (en) | Discrepancy detection for web crawling | |
CN112328881A (zh) | 文章推荐方法、装置、终端设备及存储介质 | |
CN114285587A (zh) | 域名鉴别方法和装置、域名分类模型的获取方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20141203 Termination date: 20170610 |
|
CF01 | Termination of patent right due to non-payment of annual fee |