高效的基于内容的视频检索的制作方法_2

文档序号:9848285阅读:来源:国知局
虑的帧(例如,最近的100帧被考虑),并 确定是否创建新的镜头分组。其中所述帧被压缩,在一些实施方式中,系统可以将压缩的帧 转换为像素帧(例如,使用相邻帧内帧将P帧转换为像素图像)。
[0029] 如果最近添加到所考虑的帧小组的帧不确定为框215中将被考虑的最后帧,则在 框220中,系统可以包括各帧之间的视图中的下一帧用于镜头转换检测的考虑。如在下文更 详细讨论的,对过去帧的考虑可以根据施加到一个或多个帧的度量,其可被用于随着时间 的推移识别帧内容中的图案。
[0030] 一旦已经考虑了所有的相关帧,并且确定了镜头转换时,系统可进行到框225。在 框225中,系统可以将视频数据集编入索引,例如,使用代表帧(将认识到的是在一些实施方 式中,索引编制随着镜头转换的识别而发生)。在框230中,系统或者相关的系统可以执行对 索引数据的基于镜头的处理(例如,对镜头的各帧进行匹配算法和图像识别)。
[0031]在一些实施方式中,系统可以在一开始将视频分割成连续帧的序列,之后将这些 帧划分为镜头,而不是执行迭代过程。例如,在接收到每一到达的帧后,对不检测镜头,而是 执行两步骤过程。首先,系统将视频分割为各帧,然后检测镜头边界。
[0032] 用于镜头识别的帧分析实施例
[0033]图3是流程图,描绘了在一些实施方式中实现的镜头转换检测方法300的各个步 骤。特别地,如上文相关的图2的框210所讨论的,可以将方法300应用到视频序列中的连续 帧。因此,图3描绘了该方法的单次迭代,而将认识到的是可以对帧的序列迭代地执行各种 所描绘的步骤。例如,可以将方法300作为框210的部分来执行(经由框220,随着更多的帧被 考虑,当前镜头被调整而新镜头被创建)。
[0034] 在框305和框310中,该系统可以预先处理帧,例如,在框305中通过将帧转换为灰 度并且对帧310进行平滑从而去除伪影。如上文所讨论的,也可以将帧从压缩形式转换为独 立的像素图像。
[0035] 在框315中,系统可以将帧分割为nXk个块。这里所使用的"块"指的是帧的一部 分。例如,像素图像帧的宽度为256个像素,高度为256个像素,该帧可以被细分为八个块,每 个块的宽度为128个像素,高度为64个像素。在本实施例中,块不必是对称的,虽然它们可以 是对称的。
[0036] 在框320中,系统计算每个块nu的平均灰度值。例如,该系统可以累加上述块中的 8192像素(64X128 = 8192)的每个值,并将总和除以8192。虽然在本实施方式中为了说明的 目的引用了平均灰度值,但一些实施方式在分析的基础上考虑另一值。例如,不同实施方式 考虑使用不同彩色空间分量,例如RGB像素中的红色分量,HSV像素中的色调分量等。一些实 施方式在颜色空间之间进行转换,以执行不同分析。虽然在本实施例中引用了 "灰度值"和 "平均",但是可以用其它值(色调、色度等),值的推导值(红色和绿色分量的平均值,特征值 表示等)和其他统计测定(模式、方差等)来代替。
[0037]在框325中,该系统通过连接每个值nu构建向量a(f)。不需要在物理上连接,而是 纯粹的逻辑。例如,该系统可以创建索引块值数组,可以经由指针分配表示连接等。
[0038] 在框330中,该系统可以以与贯穿从视频分析出的所有帧或者一部分先前帧一致 的方式排列a(f)的元素。此排列向量在这里被称为as(f)。如本领域技术人员将认识到的, 该重新排列可以采取任何合适的形式,例如,重建将元素编入索引的新结构,重新排列a(f) 的元素,仅引用a(f)中的位置的新结构等。在一些实施方式中,排列是部分排序或更特别地 在一些实施方式中,可以是总排序。在其他实施方式中,排序可以是关于中点值(向量的每 端的最小值和中心的最大值,或反之亦然)的"高斯"型分布。在一些实施方式中,基于图像 的环境(例如,相邻像素或块的值),块之间"关系"得到处理。
[0039] 在框335中,该系统可以创建帧描述d(f),其指出分类排序的向量as(f)中块的位 置。然后该描述可以是在计算机系统中的逻辑或物理结构,例如,对数组的存储器的实际分 配,或通过间接手段,诸如指针集合的逻辑表示。例如,一些实现可以不直接创建d(f)而是 可以用as(f)执行操作,间接考虑块的位置。在这些实现中,如在下文更详细描述的,可以保 存前一帧的as(f)用于创建d(f )_previous。
[0040] 在框340中,该系统确定是否这是被考虑的第一帧。再次说明,所描绘的步骤是出 于解释的目的,并且许多实现不必在创建任何其他步骤之后实际执行此检查。相反,该系统 可以通过进行与d(f )_previous值的比较,检查它的存在。
[0041]如果这是被考虑的第一帧,或至少不存在d(f)_preVi〇us,则该方法可以进行到框 345。在框345中,该系统可以创建新镜头,并将新镜头设置为所考虑的当前镜头。创建"新" 镜头可以包括创建新的数据结构来存储各帧,对各帧的引用,一系列帧等。在一些实施方式 中,该框还可以包括关于先前帧的任何加工程序(例如,指出过去镜头的结束帧)。
[0042]在框350中,该方法可以将该帧保存到当前镜头(例如,将该帧的副本插入到镜头 数据结构,插入数据结构中对该帧的引用,扩大镜头数据结构中的范围以包括帧等)。
[0043]在框355中,该方法可以将d(f)保存为d(f )_previous或以其他方式为后续帧的计 算提供信息。如上文所述,可以通过对存储器或逻辑结构的物理分配表示d(f),而将d(f)记 录为d(f )_previous可以采取多种形式(例如,保存as(f)的副本或记录)。
[0044] 在框360中,在一些实施方式中,该方法可以更新过去帧的比较的时间序列。例如, 时间序列可描绘各帧之间一系列的排列距离。使用这个信息,系统能够评估这些距离的模 式来确定镜头转换的存在和性质,例如,更详细的描述可参照图5和6。序列中的条目t可以 包括:
[0045] ti= [Di-Di-i]
[0046] 其中Di是当前帧与前一考虑帧的距离,而Dh是前一考虑帧和它的前一考虑帧之 间的距离。在这点上,下面的框360,该方法可以选择用于考虑的下一帧,然后重复该方法 (以新的帧返回到框305)直到将被考虑的所有帧已被考虑。
[0047]如果在框340中内容被代之以确定是否正在考虑后续帧(或用于d(f )_previous的 值是否存在,可能是通过缺省的初始化)该方法可以进行到框365。在框365中,系统可以测 量d(f)和d(f)_previ 〇US之间的排列距离D。将认识到用于执行这样的排列度量的许多方 法。例如,一些实施方式以类似于语法中使用的列文斯坦距离的方式,计算必须用于将描述 符(d(f))转换为其他(d(f)_pr evi〇US)的重新排列的数量。图4中描述了这种方法的一个实 施例。
[0048] 在框370中,系统可以确定D是否表示镜头转换,例如通过确定是否超过阈值。在一 些实施方式中,不仅当前的D,还有框360中来自时间序列的先前考虑的Ds被用于确定镜头 转换是否存在。如果发生了转换,那么系统可以在框345中创建一个新镜头。如果没有发生 转换,那么在框350中,可以将该帧存储在当前镜头中。再次说明,图3所描述的方法300仅仅 是一个实施方式的一种可能实现,这些变化将容易被认识到。例如,在框370中,系统可以查 阅来自框360的序列,并确定镜头转换的"中点"实际上发生在先前的若干帧(例如,如下文 图5中所描述的可能发生在柔性转换中),而不是仅将当前考虑的帧放置在新镜头中。虽然 所描绘的实施例可以正确检测刚性转换,但是框370中对过去的帧的考虑可以更容易地检 测到柔性转换。因此,在当前帧之前直到中点的各帧可以被包括在新的镜头,而不是先前的 镜头中。
[0049] 图4是示意框图,描绘了可以在一些实施方式中实现的镜头转换检测方法的各个 方面。图4还描绘了可以在一些实施方式中应用的一种可能的排列度量以确定两个帧的描 述之间的距离。
[0050] 该方法可以考虑第一帧405a和第二帧405b。在本实施例中,每帧405a-b被分解为 九个块,并为每一块计算块值M1-M9。如上文所讨论的,例如,块值可以是一部分颜色空间 (例如,灰度值)的平均值。例如,第一帧405a的块Ml可以具有块值22。第二帧405b的块Ml可 以具有块值100。这种情况可能发生,例如,因为每帧描绘了不同的图像。
[00511如上文图3所描述,每帧的各块可以被组织成向量a(f)41 Oa-b。然后,可以将各向 量a(f)分类以创建分类的向量as(f)415a_b(再次说明,不必在物理上复制存储器中的分 配,但是,例
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1