首页> 中国专利> 一种斯诺克比赛视频事件检测与语义标注方法

一种斯诺克比赛视频事件检测与语义标注方法

摘要

本发明公开一种斯诺克比赛视频事件检测与语义标注方法,包括:全台面镜头的检测;比分条信息提取;利用隐马尔可夫模型进行音频分类;对回放镜头进行检测;融合多模态的信息并结合斯诺克的领域知识实现斯诺克比赛视频的事件检测与语义标注。本发明方法融合视频内在的多种模态信息,实现了斯诺克比赛视频内容的事件检测与语义标注,为建立基于语义的视频索引打下坚实的基础。

著录项

  • 公开/公告号CN105183849A

    专利类型发明专利

  • 公开/公告日2015-12-23

    原文格式PDF

  • 申请/专利权人 华中科技大学;

    申请/专利号CN201510564255.5

  • 发明设计人 于俊清;黄易欣;何云峰;

    申请日2015-09-06

  • 分类号G06F17/30(20060101);

  • 代理机构42201 华中科技大学专利中心;

  • 代理人廖盈春

  • 地址 430074 湖北省武汉市洪山区珞喻路1037号

  • 入库时间 2023-12-18 12:59:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-02

    授权

    授权

  • 2016-01-20

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20150906

    实质审查的生效

  • 2015-12-23

    公开

    公开

说明书

技术领域

本发明属于基于内容的视频检索领域,具体涉及一种斯诺克比赛 视频事件检测和语义标注方法。

背景技术

基于语义内容的视频分析一直是多媒体研究领域的热点问题。体 育视频作为一类重要的视频资源,有着巨大的观众基数和商业价值, 得到了相关科研机构和研究人员的广泛关注。随着近年来三网融合环 境下体育视频数量的急剧增长和移动计算设备的迅速普及,人们早已 不再满足于当前的体育视频观看与检索现状,而对于快速定位自己感 兴趣的视频内容有着更加迫切的需求,解决这一问题的关键就是对视 频中的语义事件进行自动检测与标注。

台球是世界三大绅士运动之一,在世界范围内具有广泛的群众基 础,而斯诺克则是公认的最规范和最有影响力的台球运动。斯诺克运 动在中国发展之迅速、水平提升之显著令整个台球界惊讶,英国的天 空电视台也曾预言斯诺克的未来将在中国。随着中国斯诺克选手在国 际赛场上的异军突起,国内普通观众也开始越来越多地关注斯诺克赛 事。由于斯诺克赛事耗时较长,人们一般很少有时间去看完一场完整 的斯诺克比赛,人们希望利用闲暇时间观看最精彩的部分,如精彩的 单杆高分、精彩进球、精彩安全球等,或者仅仅只是希望跳过一段局 间插播的广告或者对局中乏味的防守大战。此外,如何从海量的斯诺 克比赛视频中快速找到观众感兴趣的内容,也是一个重要的需求。为 了满足这些需求,关键是对视频中的语义事件进行自动检测与标注, 而现有的对于斯诺克视频分析的研究成果并不足以完成这一任务。因 此,一个基于语义内容的斯诺克比赛视频事件检测系统的意义就显得 格外重要。

目前国内外针对体育视频的分析工作大多把焦点集中在足球、篮 球、网球等体育运动中,并取得了一些重要的研究成果。而斯诺克作 为近年来越来越热门的体育运动,正受到来自社会各界的广泛关注。 虽然目前已有少量斯诺克视频分析的研究成果,但这些成果对于构建 一个基于语义内容的事件检测与标注系统还有一定的距离,具体表现 在以下几个方面:1.现有的针对斯诺克比赛视频的分析工作都把目标 定位在视频摘要的自动生成与比赛过程的三维重建,并没有完全针对 事件检测与标注的相关研究,而现有的研究成果远不足以实现基于内 容的视频检索;2.现有的针对斯诺克比赛视频摘要的研究,往往只是 简单地对整个比赛流程进行流水账式的记录,并没有区分各类事件的 重要性,同时也忽略了很多重要的语义事件,虽然这些摘要对于专业 球员和教练有较大帮助,但是其中的大部分内容都是普通观众不感兴 趣的,普通观众感兴趣的只是比赛中精彩的或者关键的事件;3.现有 的针对斯诺克比赛视频的分析工作仅仅依靠单一的视觉信息进行分 析,而忽略了包含有大量语义信息的文字与音频信息,这是现有研究 工作的一个巨大缺陷。

发明内容

针对现有技术中存在的问题,本申请提供的是一种斯诺克比赛视 频事件检测与语义标注方法,其中根据斯诺克视频的具体特征而对其 视频进行分析及标注,以实现对视频的检索,与现有体育视频分析相 比,该方法可以满足广大观众的需求,因而尤其适用于当今斯诺克视 频。

为实现上述目的,按照本发明的一个方面,提供了一种斯诺克比 赛视频事件检测与语义标注方法,通过对视频内在的各个模态信息的 利用,并结合斯诺克的领域知识,实现斯诺克比赛视频的事件检测和 语义标注,包括以下步骤:

(1)对全台面镜头中的比分条信息进行提取,具体包括以下子 步骤:

(1-1)使用全台面镜头检测算法进行全台面镜头检测;

(1-2)根据比分条的位置特点及文字的边缘特征确定出比分条 的精确位置;

(1-3)根据相邻比分条区域图像之差对当前击球球员指示符进 行定位;

(1-4)利用比分条与当前击球球员指示符的位置信息,进一步 分割出比分条中的各个信息字段;

(1-5)使用光学字符识别技术对分割出的信息字段进行文字识 别;

(1-6)针对识别过程中球员名可能出现的错误,将识别结果与 官方球员数据库进行模糊匹配,以获得准确的球员名;

(1-7)去除比分条信息序列中的冗余信息。

(2)通过使用隐马尔可夫模型对正式对局过程中的音频流进行 音频分类,定位出掌声、笑声和叹息声三类对事件检测有价值的音频 类型。

(3)使用回放镜头检测算法进行回放镜头的检测。

(4)通过文字、音频、视频三种模态信息的融合,并结合斯诺 克的领域知识,使用相应的算法对各类语义事件进行检测及标注,具 体包括以下子步骤:

(4-1)从比分条信息变化序列推断事件;

(4-2)根据比分条信息序列推断回放镜头的事件类型;

(4-3)结合音频分类结果与其他两个模态的信息检测事件。

总体而言,按照本发明的上述技术构思与现有技术相比,主要具 备以下的技术优点:

(1)提出了一种可靠的全台面镜头检测方法;

(2)在全台面镜头检测的基础上,提出了比分条的定位与其中 各个信息字段的提取方法;

(3)实现了对以下斯诺克事件的检测与标注:局、单杆高分、 防守大战、长考、犯规、精彩进球、精彩安全球、失误和有趣事件。 对于局、单杆高分、防守大战、长考和犯规五类事件实现了完美的检 测效果,精彩进球与精彩安全球事件也达到了较高的检测性能;

(4)提出的检测方法可自适应于不同分辨率的视频。

附图说明

图1为本发明提供的一种斯诺克比赛视频事件检测与语义标注方 法的总体流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合 附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描 述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

图1为本发明一种斯诺克比赛视频事件检测与语义标注方法的总 体流程示意图,主要包括四个阶段:比分条信息提取阶段,包括全台 面镜头检测、比分条定位、当前击球球员指示符定位、字段分割与文 字识别;音频分类阶段,使用隐马尔可夫模型进行音频分类;回放镜 头检测阶段,使用回放镜头检测算法检测回放镜头;融合多模态信息 的事件检测阶段,分别从利用比分条信息、结合比分条信息与回放镜 头、结合音频分类结果与其他两个模态的信息三个角度来进行事件检 测。具体包括如下步骤:

(1)比分条信息提取

全台面镜头检测步骤如下:

步骤1:对于某一视频帧,根据颜色特征提取台面区域;

步骤2:对台面区域图像进行闭操作处理,去除可能造成干扰的 小物体;

步骤3:使用边缘检测算法检测边缘;

步骤4:使用霍夫变换检测直线,对位置相近的直线仅保留其中 一条;

步骤5:根据是否同时满足以下两个条件判断该视频帧是否为全 台面镜头:

条件1:直线条数为4;

条件2:4条直线的坐标(θ,ρ)满足以下位置要求:

直线1:θ=π/2±π/60,ImgHeight*0.03<ρ<ImgHeight*0.3;

直线2:θ=π/2±π/60,ImgHeight*0.6<ρ<ImgHeight*0.9;

直线3:θ=π/12±π/18,ImgHeight*0.1<ρ<ImgHeight*0.4;

直线4:θ=11π/12±π/18,ImgHeight*-0.9<ρ<ImgHeight*-0.5。

其中,ImgHeight为视频帧的高度。

对于检测出的全台面镜头,比分条定位步骤如下:

步骤1:计算出桌面梯形区域的4条边对应的4条直线中下方直线 与左右两条直线的交点,左交点记为P1,右交点记为P2。

步骤2:计算P1与视频帧左边界的距离以及P2与视频帧右边界的 距离,取较小距离对应的点作为确定比分条大致区域的基准点P。

步骤3:按视频帧高度的0.08倍计算比分条大致区域的高度,记 为H。

步骤4:根据桌面梯形区域的上下两条边对应的直线计算出梯形 高度,作为桌面区域的高度,记为TH。

步骤5:找到位于P点正下方距离P点TH*0.03的点Q。

步骤6:计算出点Q关于视频帧中垂线的镜像点Q’。

步骤7:计算Q与Q’的水平距离,即为比分条大致区域的宽度, 记为W。

步骤8:以点Q为原点,取出台面区域正下方宽为W,高为H的矩 形区域,即得到比分条的大致区域。

步骤9:将比分条大致区域的图像作灰度化处理。

步骤10:对该灰度图像使用边缘检测算法检测边缘。

步骤11:使用宽度为0.3*H(H为比分条大致区域的高度),高度 为1的横条形结构元先后对边缘图像进行腐蚀和膨胀操作,得到水平 长直线所在位置对应的图像,然后将边缘图像与该图像作差,即得到 去除水平长直线后的边缘图像。

步骤12:使用Sobel算子分别计算水平与垂直方向上图像的梯度 强度,并将这两个分量相加。

步骤13:计算出梯度强度图像在各行上像素值之和、各行上像素 值之和的平均值Mean以及各行上像素值之和的最大值Max。

步骤14:如果各行上像素值之和的均值小于10*W(W为大致比 分条区域的宽度),就认为不存在比分条,不需要再进行后续检测; 否则,则认为存在比分条。

步骤15:对于比分条存在的情况,以0.7*Max为阈值,对于在梯 度强度图像中像素值之和大于该阈值的行则归入最终的比分条定位 结果中,这样就得到了比分条在原视频帧中精确的水平位置范围。

步骤16:从整个比赛视频中取50个比分条位置的样本,每个样本 包含三个值:比分条左上角在原视频帧中水平方向的坐标、垂直方向 的坐标以及比分条的高度,对这三个值分别在所有样本中取统计中位 数作为最终的比分条位置。

当前击球球员指示符的定位步骤如下:

步骤1:从前往后对斯诺克视频每隔1秒取一次样本帧,如果该样 本帧是全台面镜头并且包含比分条,则取出比分条区域的图像,然后 将其转换为灰度图像,每次得到灰度图像之后,与前一样本帧的比分 条灰度图像在对应位置按灰度值求差,如果差值小于0,则置为0。

步骤2:初始化一个大小与比分条宽度(列数)相同的布尔型数 组A,全部元素置为false。

步骤3:统计差图像中左侧30%区域及右侧30%区域(排除可能 的比分变化对指示符定位的影响)中每一列的灰度值情况,该列中只 要出现一次灰度值大于40的像素值,则将A中对应列位置的元素置为 true。

步骤4:找到A中第一个值为true的元素的下标i与最后一个值为 true的元素下标j,计算w=j-i+1,w即为检测出的指示符的宽度。如果 w大于比分条的高度,或者小于比分条高度的0.2倍,则不合法,忽略 当前的差图像,继续检测下一个样本帧;否则,检测到指示符在比分 条横向方向中的位置(起始位置i与结束位置j),根据指示符总是在关 于比分条中垂线对称的位置来回变化的特点,可以很容易计算出指示 符在比分条另一侧出现的位置。

比分条字段分割步骤如下:

步骤1:使用全台面镜头检测算法检查视频帧是否为全台面镜头, 对于非全台面镜头,直接忽略;对于全台面镜头,使用已经得到的比 分条位置信息从原视频帧中取出比分条区域内的图像。

步骤2:将比分条图像作灰度化处理。

步骤3:使用Canny边缘检测算法提取图像边缘。

步骤4:去除边缘图像中水平方向的长直线。

步骤5:去除由包围比分的方框造成的竖直边缘线。由于这些竖 直边缘线常常与比分条图像的上下边缘相接,通过在比分条的第一行 与最后一行像素中扫描边缘像素点,然后以该点为起始点使用漫水填 充算法即可去除大部分的竖直边缘线。

步骤6:为了增强文字区域的像素值强度,便于后续的分割操作, 使用Sobel算子分别计算水平与竖直方向上图像的梯度强度,并将这 两个方向上的梯度强度相加,得到梯度强度图像。

步骤7:计算出梯度强度图像在各行上像素值之和及各行上像素 值之和的平均值Mean,如果Mean小于10*W(W为比分条区域的宽度), 就认为该大致比分条区域中不存在比分条,不需要再继续进行检测; 否则认为该大致比分条区域中存在比分条,可以进行后续的分割处理。

步骤8:计算出梯度强度图像在各列上像素值之和,记为S[i],1 ≤i≤比分条宽度。

步骤9:利用当前击球球员指示符在比分条两侧的位置,分别计 算比分条左右两侧位于指示符区间内的S[i]值之和,如果两者之差大 于较小值的3倍,则值较大的那个值对应的一侧的球员当前拥有击球 权,将该信息记录在本视频帧的比分条信息记录中。随后,将S中左 右指示符区间内的元素值置为0。

步骤10:为了消除噪声对后续文字分割的影响,将S中值小于 0.5*Mean的值置为0,并且将S中宽度小于0.3倍的比分条高度的数据 全部置为0。

步骤11:从S的中间位置开始,分别向左右两侧检测文字目标所 处的位置。这里文字目标指S中连续的非零值组成的块,并且间隔小 于0.1倍的比分条高度的块被认为属于同一块。为了处理某些赛事视 频比分条中出现的球员所属国籍的国旗(并不需要提取出球员国籍信 息),当分别向左右两侧扫描到第4块时,若其宽度小于1.5倍的比分 条高度且能继续扫描到宽度更大的块,则将后面的块作为球员名字段 所在位置。

文字识别步骤如下:

步骤1:根据各字段的位置,从原比分条中取出包含各字段的子 图像。为了防止比分条上下边缘对文字识别可能造成的影响,子图像 中并不包括原比分条中的上下部分边缘,边缘的高度均为比分条高度 的0.1倍。

步骤2:为了提高OCR的识别精度,对各子图像使用大津法(Otsu's method)进行自适应阈值的二值化处理。

步骤3:按照斯诺克电视转播的惯例,比分条中的总局数由两侧 的括号所包围,为了准确识别总局数,需要去除这些括号。取二值化 后的总局数图像的正中间一行,分别从两侧向中间搜寻前景色(统计 整个图片中两种灰度值所占的比例,占比较小的灰度值即为前景色, 本例中前景色为白色),对遇到的第一个前景色元素,以该元素位置 为起始点使用漫水填充算法以背景色进行填充,即可去掉总局数两侧 的括号。

步骤4:使用开源OCR引擎Tesseract对各个字段的子图像进行光 学字符识别。

球员名模糊匹配步骤如下:

步骤1:从世界台联的官方网站的球员页面

(http://www.worldsnooker.com/players/)抓取完整的球员名列表,记 为PlayerList,同时记录下各个球员的国籍。

步骤2:初始化扩展球员名单为空,记为ExtendedPlayerList。

步骤3:对于PlayerList中的每个球员名,判断其是否是中国籍球 员,若是,则扩展为“姓氏名字”、“姓氏首字母.名字”、“姓氏”及 “名字”四项;否则,扩展为“姓氏名字”、“姓氏首字母.名字”及 “姓氏”三项。然后,将扩展后的球员名统一转为大写形式插入到 ExtendedPlayerList中。

步骤4:当得到10条比分条信息记录后(每条记录中都包含各自 独立识别出的球员名),取这些记录中出现次数最多的球员名作为候 选球员名(包括球员1及球员2的候选球员名),并统一转为大写形式。 将两个候选球员名分别与扩展球员名中的每一条记录进行相似度的 计算,取相似度最高的记录作为模糊匹配结果。

(2)音频分类

该步骤使用隐马尔可夫模型(HiddenMarkovModel,HMM)对 正式对局过程中的音频信息进行分类,分为以下八种音频类型:纯掌 声、带解说声的掌声、笑声、回放镜头中的击球声、击球声、叹息声、 安静声和解说声。

音频模型的训练步骤如下:

步骤1:从各种有代表性的斯诺克比赛视频(包含不同赛事、不 同语言的解说)中收集大量音频训练样本(每个样本长度为2秒)并 进行人工音频类型标注;

步骤2:对每类音频样本,分别按以下步骤训练出对应的HMM模 型:

步骤2.1:对每个2秒的音频片段进行分帧,帧长为512,帧移为 256。

步骤2.2:对每个音频帧分别进行特征提取,得到26维的特征向 量,其中包含:

(1)1维的短时平均能量;

(2)1维的短时平均过零率;

(3)12维的梅尔频率倒谱系数(Mel-FrequencyCepstral Coefficients,MFCC);

(4)12维的MFCC差分系数。

其中,MFCC是基于人耳的听觉特性所提出来的音频特征,MFCC 差分系数是将静态的MFCC特征作一阶与二阶差分所得到的动态特 征。这样每个音频片段得到观察值序列,即26维的向量。

步骤2.3:使用Baum-Welch算法在不同的隐状态数目下进行模型 训练,得到不同隐状态数目下该音频类型对应的HMM模型。

使用已经训练好的各个音频类型的模型对斯诺克视频中的音频 流进行分类的步骤如下:

步骤1:加载已经训练好的各个HMM音频模型。

步骤2:从目标视频中提取音频部分。

步骤3:将音频按2秒进行分段,相邻两段之间重合1秒。

步骤4:对每个分段进行分帧之后对每个音频帧进行特征提取, 得到观测序列。

步骤5:分别用每个音频类型的HMM对每个音频片段使用前向算 法计算对数似然值,取似然值最高的那个HMM对应的音频类型作为 该音频片段的类型,即完成该段音频的分类。

步骤6:对每个音频分段逐一进行分类,得到整个视频在每一秒 处的音频类型。

步骤7:对整个视频的音频分类结果序列进行处理,仅保留四类 有价值的音频类型记录,并将纯掌声与带解说声的掌声统一标记为掌 声。

(3)回放镜头检测

该步骤可以采用现有方法,如文献“HuangQ,HuJ,HuW,etal.A reliablelogoandreplaydetectorforsportsvideo.in:Proceedingsofthe 2007IEEEInternationalConferenceonMultimediaandExpo.Beijing: IEEE,2007,1695~1698”中描述的方法。

(4)融合多模态信息的事件检测

该步骤包括以下子步骤:

(4-1)从比分条信息变化序列推断事件

该步骤包括以下子步骤:

(4-1-1)根据相邻比分条信息记录检测简单事件

根据相邻比分条信息记录之间的变化,结合斯诺克的比赛规则, 可以推断出得分、“失误或安全球”和犯规三类简单的事件。设前后 两条比分记录分别记为FormerRecord、LatterRecord,每个比分记录的 击球权、球员1分数、球员2分数、球员1局分、球员2局分、总局数各 个字段分别记为turn、score1、score2、frameScore1、frameScore2、 bestFrames,其中turn字段取值为1或2,表示球员1或球员2拥有击球 权。以点号“.”分隔比分记录名与相应的记录属性,例如前一条比 分记录的球员1比分字段记FormerRecord.score1(后文中若引用某条 比分记录及其字段,均遵循此约定)。这里,使用“==”作为等号,以 便和后文的赋值号“=”相区别。各类简单事件的判定依据如下:

1.得分事件

(a)球员1得分

1≤LatterRecord.score1-FormerRecord.score1≤8

LatterRecord.score2==FormerRecord.score2

LatterRecord.turn==FormerRecord.turn

LatterRecord.turn==1

(b)球员2得分

1≤LatterRecord.score2-FormerRecord.score2≤8

LatterRecord.score1==FormerRecord.score1

LatterRecord.turn==FormerRecord.turn

LatterRecord.turn==2

2.“失误或安全球”事件

(a)球员1失误或安全球

LatterRecord.score1==FormerRecord.score1

LatterRecord.score2==FormerRecord.score2

FormerRecord.turn==1

LatterRecord.turn==2

(b)球员2失误或安全球

LatterRecord.score1==FormerRecord.score1

LatterRecord.score2==FormerRecord.score2

FormerRecord.turn==2

LatterRecord.turn==1

3.犯规事件

(a)球员1犯规

LatterRecord.score1==FormerRecord.score1

4≤LatterRecord.score2-FormerRecord.score2≤7 FormerRecord.turn==1

LatterRecord==2

(b)球员2犯规

LatterRecord.score2==FormerRecord.score2

4≤LatterRecord.score1-FormerRecord.score1≤7

FormerRecord.turn==2

LatterRecord==1

对于犯规事件在原视频中的开始时刻与结束时刻,根据斯诺克比 赛的特点,将开始时刻设置为更新后的比分记录对应的时刻之前10 秒,结束时刻设置为比分更新之后2秒。

(4-1-2)局事件检测

局事件主要通过比分条中局比分和当局比分的变化来检测,检测 算法步骤如下:

步骤1:判断比分记录的总条数是否小于2,若小于2,则退出算 法;否则继续下一步。

步骤2:初始化一条空的比分记录FormerRecord及局起始帧号 Start。

步骤3:从完整比分序列中取出下一条比分记录Record,如已无 记录可取,转步骤5;如果Record是第一条记录,则 FormerRecord=Record(这里“=”表示赋值,后文遵循此约定), Start=Record.frameId(这条比分记录对应的视频帧号);否则转步骤4。

步骤4:如果Record中的局分与FormerRecord中的局分完全相同, 则FormerRecord=Record,转步骤3;否则,新建局事件Frame,其各 个字段按以下规则确定:

开始时刻=Start;

结束时刻=FormerRecord.frameId;

球员1的当局比分=FormerRecord.score1;

球员2的当局比分=FormerRecord.score2;

该局开始前的球员1的局分=FormerRecord.frameScore1;

该局开始前的球员2的局分=FormerRecord.frameScore2;

该局结束后的球员1的局分=Record.frameScore1;

该局结束后的球员2的局分=Record.frameScore2;

当前局数=FormerRecord.frameScore1+ FormerRecord.frameScore2+1;

当FormerRecord.frameScore1==总局数/2且 FormerRecord.frameScore2≠总局数/2时,赛点标志为球员1;当 FormerRecord.frameScore1≠总局数/2且FormerRecord.frameScore2== 总局数/2时,赛点标志为球员2;当FormerRecord.frameScore1==总局 数/2且FormerRecord.frameScore2==总局数/2时,赛点标志为双赛点。

保存该局事件之后,令FormerRecord=Record,转步骤3。

步骤5:对于比分序列中最后一条记录LastRecord,如果 LastRecord对应的视频帧号与Start之差对应的视频时长大于1分钟,则 新建局事件,该局即为该视频所包含的最后一局,各字段按如下规则 确定:

开始时刻=Start;

结束时刻=LastRecord.frameId;

球员1的当局比分=LastRecord.score1;

球员2的当局比分=LastRecord.score2;

该局开始前的球员1的局分=LastRecord.frameScore1;

该局开始前的球员2的局分=LastRecord.frameScore2;

如果LastRecord.score1>LastRecord.score2,则该局结束后的球员1 的局分=LastRecord.frameScore1+1;否则该局结束后的球员1的局分 =LastRecord.frameScore1;

如果LastRecord.score2>LastRecord.score1,则该局结束后的球员2 的局分=LastRecord.frameScore2+1;否则该局结束后的球员2的局分 =LastRecord.frameScore2;

当前局数=LastRecord.frameScore1+LastRecord.frameScore2+1;

当LastRecord.frameScore1==总局数/2且LastRecord.frameScore2 ≠总局数/2时,赛点标志为球员1;当LastRecord.frameScore1≠总局 数/2且LastRecord.frameScore2==总局数/2时,赛点标志为球员2;当 LastRecord.frameScore1==总局数/2且LastRecord.frameScore2==总局 数/2时,赛点标志为双赛点。

(4-1-3)单杆高分事件检测

单杆高分事件主要依据比分条中得分与击球权的变化来检测,检 测算法步骤如下:

步骤1:判断比分记录的总条数是否小于2,若小于2,则退出算 法;否则继续下一步。

步骤2:设定单杆高分事件的高分阈值Threshold=50,初始化一条 空的比分记录FormerRecord,初始化事件起始时刻Start,初始化高分 记录Score=0。

步骤3:从完整比分序列中取出下一条比分记录Record,如已无 记录可取,转0。如果Record是第一条记录,则FormerRecord=Record, Start=Record.frameId(这条比分记录对应的视频帧号);否则转步骤4。

步骤4:如果在Record中局分相对于FormerRecord发生了增长, 并且Score>Threshold,则新建单杆高分事件,各字段按以下规则设置:

高分分数=Score;

开始时刻=Start;

结束时刻=FormerRecord.frameId;

击出该高分的球员=FormerRecord.turn。

保存该事件之后,Start=Record.frameId,FormerRecord=Record, 转0;如果局分未发生变化,比分增加,但击球权未变化,则将比分 增加的一方的所增加的分数累加至Score中,FormerRecord=Record, 转0;如果局分未变化,比分也未变化,而击球权发生交换,若Score> Threshold,则新建单杆高分事件,规则如0中所示, Start=Record.frameId,FormerRecord=Record,转0;如果局分未变化, 比分增加且击球权交换,若这时Score>Threshold,则新建单杆高分事 件,规则如0中所示,Start=Record.frameId,FormerRecord=Record, 转0。

步骤5:如果Score>Threshold,则取比分序列中最后一条记录 LastRecord,新建单杆高分事件,规则如下:

高分分数=Score;

开始时刻=Start;

结束时刻=LastRecord.frameId;

击出该高分的球员=LastRecord.turn。

(4-1-4)防守大战事件检测

防守大战事件通过双方在一段时间内(如5分钟)未能得分(犯 规造成的对方比分增加除外)、击球权不断交换这一特征来进行判断, 检测算法步骤如下:

步骤1:判断比分记录的总条数是否小于2,若小于2,则退出算 法;否则继续下一步。

步骤2:设置防守大战的时间长度阈值Threshold,大于该长度的 防守过程才被记录为防守大战事件,初始化事件开始时刻Start,并初 始化一条空的比分记录FormerRecord。

步骤3:从完整比分序列中取出下一条比分记录Record,如已无 记录可取,则防守大战检测结束,退出算法;否则根据以下情况进行 处理:

如果Record是第一条记录,则Start=Record.frameId, FormerRecord=Record,转0;

如果Record中局分与FormerRecord相比发生变化,则 Start=Record.frameId,FormerRecord=Record,转0;

如果Reocrd中比分与FormerRecord相比未变化,而击球权交换, 说明处于防守中,FormerRecord=Record,转0;

如果Record相较上一记录比分变化且击球权变化,这时通过犯规 事件的检测方法判断是否有球员犯规,若出现犯规,则仍处于防守大 战中,FormerRecord=Record,转0;若没有球员犯规,说明是正常得 分,防守大战结束,判断这时Record.frameId与Start之差对应的时间 是否大于5分钟,若满足,则按以下规则新建犯规事件:

开始时刻=Start;

结束时刻=FormerRecord.frameId。

保存事件后,Start=Record.frameId,FormerRecord=Record,转0;

如果Record与FormerRecord比分不同,但未交换击球权,说明是 正常得分,防守大战结束,判断这时Record.frameId与Start之差对应 的时间是否大于5分钟,若满足,则按以下规则新建犯规事件:

开始时刻=Start;

结束时刻=FormerRecord.frameId;

保存事件后,Start=Record.frameId,FormerRecord=Record,转0。

(4-1-5)长考事件检测

长考事件(球员陷入长时间思考的状态)依据比分条信息序列中 处于同一局范围内相邻记录的时间间隔来判定,该时间间隔就是球员 当时击球所用的时间,这里将击球时间大于80秒的情况判定为长考事 件,长考事件的开始时刻与结束时刻分别对应于击球前后的比分条记 录的时刻,长考事件涉及的球员就是前一条比分条记录中正在击球的 球员。

(4-2)推断回放镜头的事件类型

本步骤使用以下步骤推断回放镜头所属的事件类型:

步骤1:根据该回放镜头的开始时刻与结束时刻,检查该时间范 围是否在已经检测到的局事件范围内,若在范围内则继续步骤2;否 则忽略该回放镜头。

步骤2:确定回放镜头的开始时刻对应的视频帧号n。

步骤3:在比分序列中找到n之后的一条记录,记为LatterRecord。

步骤4:找到LatterRecord的前一条比分记录,记为FormerRecord。

步骤5:根据FormerRecord与LatterRecord判定事件类型和涉及的 球员:若为得分,则事件类型是精彩进球;若失误或安全球,则将其 作为临时事件暂时予以记录;若犯规,则忽略。

(4-3)结合音频分类结果与其他两个模态的信息进行事件检测

在每个局事件时间范围内,分别从每局球的开始时刻开始遍历音 频特征序列,对遇到的各种不同的音频类型分别进行事件的判定。根 据音频信息的出现时刻确定更新前后的比分记录并判断事件类型的 过程如下:

步骤1:将以秒为单位的音频特征出现时刻转换为视频对应的帧 号n。

步骤2:在比分序列中找到两条比分记录(Record1、Record2), 分别使它们的帧号满足Record1.frameNum≤n≤Record2.frameNum。

步骤3:如果Record1.frameNum==n,则LatterRecord=Record1, 转步骤7。

步骤4:如果Record2.frameNum==n,则LatterRecord=Record2, 转步骤7。

步骤5:Record1.frameNum<n<Record2.frameNum,分别计算n与 前后两个比分序列之间的距离d1、d2。

步骤6:如果d1<d2且d1对应的秒数小于2秒,则LatterRecord=r1, 否则LatterRecord=Record2。

步骤7:找到LatterRecord的前一条比分记录FormerRecord。

步骤8:根据FormerRecord与LatterRecord判定事件类型(得分、 犯规、“失误或安全球”)。如果音频类型为掌声,统计掌声的持续时 间。长度小于3秒的掌声常常是误检的结果,予以忽略;对于长度大 于或等于3秒的情况,将掌声的时长(单位为秒)作为该事件的精彩 度评分。对于掌声,前面检测出的事件类型一定只有两种情况:得分 和“失误或安全球”。如果是得分,那么可以得到精彩进球事件;如 果是“失误或安全球”,则断定该事件一定是精彩安全球。精彩进球 事件与精彩安全球事件的开始与结束时刻设为掌声的开始时刻前10 秒至后2秒。当音频类型是叹息声时,通过前后比分的变化检测出的 事件类型如果是“失误或安全球”,则事件类型一定是失误,其开始 时刻与结束时刻取为叹息声开始时刻的前10秒至后2秒。笑声是一类 特殊的音频信息,笑声的出现预示着有趣的事件。同样,为了降低误 检率,只对持续时间大于或等于3秒的笑声进行处理。由于斯诺克比 赛中的笑声并不一定是由球员击球所引起,所以没必要结合比分条记 录进行事件判定,可以直接取笑声开始时刻的前10秒至后2秒作为有 趣事件列入本系统最终检测出的事件之一。

步骤9:对于每个“失误或安全球”事件,将事件开始时刻的前 5秒至事件的结束时刻作为音频特征检查的范围,在该范围内,如果 出现了掌声(长度在3秒及以上),则该事件的类型一定是安全球; 若没有出现掌声,那么该事件就归为失误事件。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号