首页 / 专利库 / 物理 / 能量 / 用于体育视频识别的快速对象跟踪框架

用于体育视频识别的快速对象跟踪框架

阅读:0发布:2020-06-01

专利汇可以提供用于体育视频识别的快速对象跟踪框架专利检索,专利查询,专利分析的服务。并且本 发明 的各实施方式总体上涉及用于体育视频识别的快速对象 跟踪 框架 。具体地,提供和公开了一种用于体育视频中的对象跟踪的解决方案。确定是否在前一 视频 帧 中识别出对象的 位置 。如果在前一视频帧中识别出对象的位置,则基于对象在前一视频帧中的所识别的位置而在当前视频帧中识别对象的新的位置。基于对象在前一视频帧中的所识别的位置以及经训练的对象分类模型来识别对象的期望位置。确定新的位置是否与期望位置一致;如果新的位置与期望位置一致,则存储新的位置作为对象在当前帧中的位置。,下面是用于体育视频识别的快速对象跟踪框架专利的具体信息内容。

1.一种用于跟踪视频中的对象的计算机实现的方法,包括:
确定所述对象在所述视频的多个中的多个位置;以及
基于所述对象的所确定的多个位置来确定所述对象的轨迹;
还包括确定所述对象的与当前视频帧相关联的位置,其中确定所述对象的与所述当前视频帧相关联的所述位置包括:
从所述当前视频帧减去背景;其中从所述当前视频帧减去所述背景包括:将所述当前视频帧分割成多个面片;确定用于所述多个面片中的每个面片的动态性得分;以及对于所述多个面片中的每个面片,响应于所述面片的所述动态性得分在限值以下来确定所述面片是背景面片;
其中,确定所述对象的与所述当前视频帧相关联的所述位置还包括:
确定是否在前一视频帧中识别出所述对象的位置;以及
响应于确定在所述前一视频帧中识别出所述对象的所述位置;
基于所述对象在所述前一视频帧中的所识别的位置来识别所述对象在所述当前视频帧中的新的位置;
基于所述对象在所述前一视频帧中的所识别的位置以及对象分类模型来确定所述对象的期望位置;以及
确定所述新的位置是否与所述期望位置一致;以及
响应于确定所述新的位置与所述期望位置一致,存储所述新的位置作为所述对象的与所述当前视频帧相关联的所述位置。
2.根据权利要求1所述的计算机实现的方法,其中确定所述新的位置是否与所述期望位置一致包括:
基于所述对象在所述当前视频帧中的多个视觉特征以及由所述对象分类模型识别的对应的特征来计算用于所述当前视频帧的每个前景面片的得分;
将所述当前视频帧的所述前景面片的所述得分中的最高得分与门限相比较;以及响应于所述最高得分超过所述门限,记录具有所述最高得分的所述前景面片的位置。
3.根据权利要求1所述的计算机实现的方法,其中基于所述对象在所述前一视频帧中的所识别的位置来识别新的位置包括:
基于所述对象在所述前一视频帧中的所识别的位置来确定搜索窗口;以及使用所述搜索窗口来搜索所述对象在所述当前视频帧中的所述位置。
4.根据权利要求3所述的计算机实现的方法,其中使用所述搜索窗口来搜索所述对象在所述当前视频帧中的所述位置包括:
确定多个运动矢量,所述多个运动矢量对应于所述前一视频帧中的多个视觉特征以及所述当前视频帧中的视觉特征;
基于所述多个运动矢量来确定平均运动矢量;以及
基于所述平均运动矢量来确定所述对象的可能的位置。
5.根据权利要求4所述的计算机实现的方法,其中确定所述平均运动矢量包括:
确定所述多个运动矢量的子集的平均值,运动矢量的所述子集包括大于第一门限值并且小于第二门限值的运动矢量。
6.根据权利要求5所述的计算机实现的方法,其中所述第一门限是所述多个运动矢量的所述子集的第一四分位数的值,并且其中所述第二门限是所述多个运动矢量的所述子集的第三四分位数的值。
7.根据权利要求4所述的计算机实现的方法,其中使用所述搜索窗口来搜索所述对象在所述当前视频帧中的所述位置还包括:
基于所述对象的可能的位置以及所述对象在所述前一视频帧中的所识别的位置来确定补偿值;以及
通过将所述对象的所述可能的位置平移所述补偿值来确定所述对象的可信位置。
8.根据权利要求3所述的计算机实现的方法,其中确定所述对象的与所述当前视频帧相关联的所述位置还包括:
响应于确定所述新的位置与所述期望位置不一致:
通过增加所述搜索窗口的尺寸来确定新的搜索窗口;以及
使用所述新的搜索窗口来搜索所述对象在所述当前视频帧中的所述位置。
9.根据权利要求3所述的计算机实现的方法,其中确定所述对象的与所述当前视频帧相关联的所述位置还包括:
响应于确定没有在所述前一视频帧中识别出所述对象的所述位置:
通过增加所述搜索窗口的尺寸来确定新的搜索窗口;以及
使用所述新的搜索窗口来搜索所述对象在所述视频帧中的所述位置。
10.根据权利要求9所述的计算机实现的方法,其中所述搜索窗口增加4倍。
11.根据权利要求1所述的计算机实现的方法,其中确定所述多个面片中的面片的动态性得分包括:
通过确定所述当前视频帧的所述面片中的像素的红绿蓝(RGB)值与前一视频帧的对应面片中的像素的RGB值之间的平方差来确定第一动态性值;
通过确定所述当前视频帧的所述面片中的像素的RGB值与下一视频帧的对应面片中的像素的RGB值之间的平方差来确定第二动态性值;以及
基于所述第一动态性值和所述第二动态性值来确定所述动态性得分。
12.根据权利要求1所述的计算机实现的方法,还包括:
使所述对象的所述轨迹平滑,包括:
基于与所述多个帧相关联的所述多个位置中的每个位置与对应的预测位置之间的距离和速度以及所述预测位置的加速度来确定能量函数;以及
使所述能量函数最小化。
13.根据权利要求12所述的计算机实现的方法,其中所述能量函数是具有用于二阶项系数的对称五对矩阵以及用于一阶项系数的矢量的二次函数。
14.根据权利要求1所述的计算机实现的方法,还包括:
在被适配成捕获视频的设备的显示器上显示视觉覆盖
捕获由所述视觉覆盖引导的视频;以及
确定所述对象在初始视频帧中的初始位置,所述初始位置通过在由所述视觉覆盖定义的区域中搜索所述对象而被确定。
15.一种包括存储用于跟踪视频中的对象的指令的非暂态计算机可读介质的计算机存储介质,所述指令在由处理器执行时使得所述处理器:
确定所述对象在所述视频的多个帧中的多个位置;以及
基于所述对象的所确定的多个位置来确定所述对象的轨迹;
其中所述指令还使得所述处理器确定所述对象的与当前视频帧相关联的位置,其中确定所述对象的与所述当前视频帧相关联的所述位置还包括:
从所述当前视频帧减去背景,其中从所述当前视频帧减去所述背景包括:
将所述当前视频帧分割成多个面片;确定用于所述多个面片中的每个面片的动态性得分;以及对于所述多个面片中的每个面片,响应于所述面片的所述动态性得分在门限值以下来确定所述面片是背景面片;
其中确定所述对象的与所述当前视频帧相关联的所述位置还包括:
确定是否在前一视频帧中识别出所述对象的位置;以及
响应于确定在所述前一视频帧中识别出所述对象的所述位置:
基于所述对象在所述前一视频帧中的所识别的位置来识别所述对象在所述当前视频帧中的新的位置;
基于所述对象在所述前一视频帧中的所识别的位置以及对象分类模型来确定所述对象的期望位置;以及
确定所述新的位置是否与所述期望位置一致;以及
响应于确定所述新的位置与所述期望位置一致,存储所述新的位置作为所述对象的与所述当前视频帧相关联的所述位置。
16.根据权利要求15所述的计算机存储介质,其中确定所述新的位置是否与所述期望位置一致包括:
基于所述对象在所述当前视频帧中的多个视觉特征以及由所述对象分类模型识别的对应的特征来计算用于所述当前视频帧的每个前景面片的得分;
将所述当前视频帧的所述前景面片的所述得分中的最高得分与门限相比较;以及响应于所述最高得分超过所述门限,记录具有所述最高得分的所述前景面片的位置。
17.根据权利要求15所述的计算机存储介质,其中基于所述对象在所述前一视频帧中的所识别的位置来识别新的位置包括:
基于所述对象在所述前一视频帧中的所识别的位置来确定搜索窗口;以及使用所述搜索窗口来搜索所述对象在所述当前视频帧中的所述位置。
18.根据权利要求17所述的计算机存储介质,其中使用所述搜索窗口来搜索所述对象在所述当前视频帧中的所述位置包括:
确定多个运动矢量,所述多个运动矢量对应于所述前一视频帧中的多个视觉特征以及所述当前视频帧中的视觉特征;
基于所述多个运动矢量来确定平均运动矢量;以及
基于所述平均运动矢量来确定所述对象的可能的位置。
19.根据权利要求18所述的计算机存储介质,其中确定所述平均运动矢量包括:
确定所述多个运动矢量的子集的平均值,运动矢量的所述子集包括大于第一门限值并且小于第二门限值的运动矢量。
20.根据权利要求17所述的计算机存储介质,其中确定所述对象的与所述当前视频帧相关联的所述位置还包括:
响应于确定所述新的位置与所述期望位置不一致:
通过增加所述搜索窗口的尺寸来确定新的搜索窗口;以及
使用所述新的搜索窗口来搜索所述对象在所述当前视频帧中的所述位置。
21.根据权利要求17所述的计算机存储介质,其中确定所述对象的与所述当前视频帧相关联的所述位置还包括:
响应于确定没有在所述前一视频帧中识别出所述对象的所述位置:
通过增加所述搜索窗口的尺寸来确定新的搜索窗口;以及
使用所述新的搜索窗口来搜索所述对象在所述视频帧中的所述位置。
22.根据权利要求15所述的计算机存储介质,其中确定所述多个面片中的面片的动态性得分包括:
通过确定所述当前视频帧的所述面片中的像素的红绿蓝(RGB)值与前一视频帧的对应面片中的像素的RGB值之间的平方差来确定第一动态性值;
通过确定所述当前视频帧的所述面片中的像素的RGB值与下一视频帧的对应面片中的像素的RGB值之间的平方差来确定第二动态性值;以及
基于所述第一动态性值和所述第二动态性值来确定所述动态性得分。
23.根据权利要求15所述的计算机存储介质,其中所述指令还使得所述处理器:
使所述对象的所述轨迹平滑,包括:
基于与所述多个帧相关联的所述多个位置中的每个位置与对应的预测位置之间的距离和速度以及所述预测位置的加速度来确定能量函数;以及
使所述能量函数最小化。
24.根据权利要求23所述的计算机存储介质,其中所述能量函数是具有用于二阶项系数的对称五对角矩阵以及用于一阶项系数的矢量的二次函数。
25.根据权利要求15所述的计算机存储介质,其中所述指令还使得所述处理器:
在被适配成捕获视频的设备的显示器上显示视觉覆盖;
捕获由所述视觉覆盖引导的视频;以及
确定所述对象在初始视频帧中的初始位置,所述初始位置通过在由所述视觉覆盖定义的区域中搜索所述对象而被确定。

说明书全文

用于体育视频识别的快速对象跟踪框架

背景技术

[0001] 本发明总体上涉及数字内容处理,并且特别地涉及来自由移动计算设备捕获的视频的体育视频内容中的对象跟踪。
[0002] 运动对象(诸如高尔夫挥杆)的运动检测和跟踪广泛地用于增强运动员的表现。以高尔夫作为示例,高尔夫是一项通常需要对高尔夫球杆的运动进行良好控制的运动,并且对通过运动传感器检测到的高尔夫挥杆运动的精确分析能够增强高尔夫运动员的表现。增强运动员的运动表现的一个方式是通过跟踪运动员的快速运动的高尔夫球杆来分析运动数据。
[0003] 一些传统的捕获运动员的运动的系统使用能够捕获对象(诸如高尔夫球杆或棒球棒)的速度和/或加速度的另外的设备。替选地,基于执行运动的运动员的视频来执行对运动的分析。可以使用手持式设备来捕获体育视频。然而,用于手持式设备的对象跟踪的传统解决方案还面临实际上精确地跟踪感兴趣对象这一挑战,感兴趣对象通常非常快速地运动并且在体育视频中发生剧烈的变形。手持式设备时常具有有限的计算能存储器,并且因此对视频的分析可能花费不可接受地长的时间量。另外,由于视频尺寸的原因,手持式设备的用户可能不想向具有较大计算资源的不同计算设备传输视频。

发明内容

[0004] 本发明的实施例提供一种跟踪体育视频内容中的运动员的运动的解决方案。运动跟踪服务跟踪执行体育运动的运动员的运动并且显示所分析的数据以使得运动员能够确定运动的特性。
[0005] 公开了一种用于跟踪体育视频中的对象的计算机实现的方法。该方法的实施例包括确定是否在前一视频中识别出对象的位置。如果在前一视频帧中识别出对象的位置,则基于对象在前一视频帧中的所识别的位置而在当前视频帧中识别对象的新的位置。基于对象在前一视频帧中的所识别的位置以及经训练的对象分类模型来识别对象在当前视频帧中的期望位置。确定新的位置是否与期望位置一致,并且如果新的位置与期望位置一致,则存储新的位置作为对象在当前帧中的位置。
[0006] 另一方面提供了一种存储用于如以上所描述地跟踪体育视频中的对象的可执行计算机程序指令的非暂态计算机可读存储介质。说明书中所描述的特征和优点并非全部是包括性的,特别地,本领域普通技术人员鉴于附图、说明书和权利要求可以想到很多另外的特征和优点。另外,应当注意,说明书中所使用的语言在原理上被选择以用于可读性和指导目的,而非可能被选择以描绘或限制所公开的主题。

附图说明

[0007] 图1是根据一个实施例的用于跟踪体育视频内容中的对象的计算环境的框图
[0008] 图2是图示根据一个实施例的用于用作客户端设备的计算机的示例的框图;
[0009] 图3是根据一个实施例的运动跟踪引擎的框图;
[0010] 图4是图示根据一个实施例的用于体育视频中的对象跟踪的过程的示例性流程图
[0011] 图5A、图5B和图5C是图示根据一个实施例的用于跟踪体育视频中的对象的过程的示例性流程图;
[0012] 图6A是根据一个实施例的用于捕获高尔夫体育视频的视觉覆盖的示例性用户界面
[0013] 图6B是根据一个实施例的用于捕获棒球体育视频的视觉覆盖的示例性用户界面;
[0014] 图7A是根据一个实施例的在背景减除之后的示例性视频帧;
[0015] 图7B示出根据一个实施例的在背景减除之后的高尔夫视频帧的另一示例;
[0016] 图8A是根据一个实施例的高尔夫球杆的所跟踪的位置的示例性图;
[0017] 图8B是根据一个实施例的高尔夫球手的手部的所跟踪的位置的示例性图;
[0018] 图9A、图9B和图9C是根据一个实施例的用于呈现所跟踪的对象在高尔夫体育视频中的轨迹的示例性用户界面;
[0019] 图9D是根据一个实施例的用于呈现图9A-9C中所图示的高尔夫体育视频的统计的示例性用户界面;
[0020] 图10A、图10B和图10C是根据一个实施例的用于呈现所跟踪的对象在棒球体育视频中的轨迹的示例性用户界面;
[0021] 图10D是用于呈现图10A-10C中所图示的棒球体育视频的分析统计的示例性用户界面;以及
[0022] 图11A、图11B和图11C是根据一个实施例的用于呈现所跟踪的对象在另一棒球体育视频中的轨迹的示例性用户界面。
[0023] 附图仅出于说明目的描绘本发明的各种实施例。本领域技术人员根据以下讨论将很容易认识到,可以采用本文中所说明的结构和方法的替选实施例而没有偏离本文中所描述的本发明的原理。

具体实施方式

[0024] 系统概述
[0025] 提供了一种用于跟踪视频中的运动员的运动的解决方案。运动跟踪服务跟踪对象在体育视频中的运动并且分析所跟踪的对象。通过从体育视频减去背景信息来检测体育视频中的对象,并且使用经离线训练的对象分类模型(例如离线机器学习)来跟踪体育视频中的对象。分析体育视频的跟踪结果。以用户友好的方式向运动员提供对跟踪结果的分析。
[0026] 图1是根据一个实施例的用于跟踪体育视频内容中的对象的运动的计算环境100的框图。图1中所图示的实施例包括通过网络120连接到彼此的多个客户端设备110(例如110A、110B和110C)以及运动跟踪服务130。计算环境100的实施例可以具有连接到网络120的很多客户端设备110和运动数据设备130。同样,由图1的各种实体执行的功能在不同的实施例中可以不同。
[0027] 客户端设备110是由用户使用以执行诸如消费数字内容、执行软件应用、浏览网络120上由web服务器托管的网站、下载文件等功能的电子设备。例如,客户端设备110可以是媒体流设备、智能电话或者平板、笔记本或台式计算机。客户端设备110包括用户可以在其上查看视频或其他内容的显示设备和/或与这样的显示设备接口连接。另外,客户端设备
110提供用户界面(UI),诸如物理按钮和/或屏上按钮,用户使用其可以与客户端设备110交互以执行诸如查看、选择和消费数字内容(诸如运动指导视频)等功能。在一个实施例中,客户端设备110具有用于跟踪在由客户端设备110捕获的体育视频中的对象的对象跟踪引擎
300。下面参考图3进一步描述对象跟踪引擎300。
[0028] 对象跟踪服务130包括用于存储不同的体育视频内容和复杂性的大视频语料库的离线数据库132、用于存储由客户端设备110捕获的视频的视频数据库134、以及用于训练对象分类模型以对具有期望品质的体育视频分类的离线学习模136。离线学习模块136向客户端设备110提供经训练的模型以对由客户端设备110捕获的视频实时地分类。下面参考图3进一步描述离线学习模块136。
[0029] 在本公开内容中,“视频内容”、“数字内容”或“数字媒介内容”通常指代任何机器可读和机器可存储的工作。数字内容可以包括例如视频、音频或者视频和音频的组合。替选地,数字内容可以是静态图像,诸如JPEG或GIF文件或者文本文件。出于简化和描述一个实施例的目的,数字内容将称为“视频”、“视频文件”或“视频项目”,但是这一术语并非意在对能够分析的类型的数字内容的任何限制。
[0030] 网络120实现客户端设备110与对象跟踪服务130之间的通信。在一个实施例中,网络120包括因特网并且使用标准的通信技术和/或协议。在另一实施例中,实体可以使用定制的和/或专用的数据通信技术。
[0031] 计算系统架构
[0032] 使用一个或多个计算机来实现图1所示的实体。图2是根据一个实施例的用于用作对象跟踪服务130和/或客户端设备110的计算机200的高层框图。图示为被耦合到芯片组204的至少一个处理器202。也被耦合到芯片组204的是存储器206、存储设备208、键盘210、图形适配器212、指示设备214和网络适配器216。显示器218被耦合到图形适配器212。在一个实施例中,由存储器控制器集线器220和I/O控制器集线器222提供芯片组204的功能。在另一实施例中,存储器206被直接耦合到处理器202而非芯片组204。
[0033] 存储设备208是任何非暂态计算机可读存储介质,诸如硬盘驱动器、光盘只读存储器(CD-ROM)、DVD或固态存储器设备。存储器206保持由处理器202使用的指令和数据。指示设备214可以是鼠标轨迹球或其他类型的指示设备,并且结合键盘210使用以向计算机系统200中输入数据。图形适配器212在显示器218上显示图像和其他信息。网络适配器216将计算机系统200耦合到网络120。
[0034] 如本领域中所已知的,计算机200可以具有与图2所示的那些部件不同的和/或其他的部件。另外,计算机200可以缺少某些图示的部件。例如,用作对象跟踪服务130的计算机可以由一起连接成一个或多个分布式系统的多个刀片服务器形成并且缺少诸如键盘和显示器等部件。另外,存储设备208可以是计算机200的本地和/或远程设备(诸如包含在存储区域网(SAN)内)。
[0035] 如本领域中所已知的,计算机200被适配成执行用于提供本文中所描述的功能的计算机程序模块。如本文中所使用的,术语“模块”指代用以提供规定功能的计算机程序逻辑。因此,模块可以用硬件固件和/或软件来实现。在一个实施例中,程序模块存储在存储设备208上,加载到存储器206中,并且由处理器202来执行。
[0036] 图3是根据一个实施例的客户端设备110的对象跟踪引擎300的框图。对象跟踪引擎300分析由客户端设备110捕获的体育视频内容,跟踪体育视频中的对象并且向客户端设备110的用户输出对象的所跟踪的路径。在一个实施例中,对象跟踪引擎300具有视频获取模块310、背景减除模块320、初始识别模块330、跟踪模块340、重新识别模块350、分析模块360和数据输出模块370。运动跟踪引擎300的其他实施例可以具有不同的和/或另外的计算机模块。同样,由图3的各种实体执行的功能在不同的实施例中可以不同。
[0037] 体育视频获取
[0038] 视频获取模块310(例如智能手机的嵌入式数字相机)捕获执行体育运动的运动员的视频。比如,视频获取模块310捕获挥动高尔夫球杆或者挥动棒球棒的运动员的视频。所捕获的视频可以是任何类型或属性,因为视频获取模块310没有要求来自外部源(例如运动传感器)的任何其他类型的输入或反馈。注意,通过在得到视频的同时使相机运动最小化来期望得到视频的环境是静止的,并且假定对于每个应用而言特定的某些相机姿势。例如,为了检测高尔夫球手的高尔夫挥动,期望从高尔夫球手的侧面得到视频,因此视频示出在高尔夫球手面向前方时高尔夫球手面部的侧面。所有用于棒球和高尔夫球的视频应当从侧视图或正面得到。
[0039] 在一些实施例中,视频获取模块310在用户的移动设备(例如智能电话)上运行的视频捕获应用的显示上显示视觉覆盖,如图6A和图6B中所图示的。视觉覆盖引导客户端设备110的用户以某个相机姿势来得到运动员的视频。对于如图6A中所图示的高尔夫视频应用,使用覆盖图(例如用虚线表示的形状)来建议运动员的理想初始脚部(620A)以及球杆头部位置(610A),因此客户端设备的用户(630A)可以将高尔夫球手的脚部和球杆头部适配到覆盖中所示的对应位置中。图6A示出用户的实际头部位置(630A)与由覆盖建议的位置(640A)之间的间隙。图6B图示用于引导视频捕获应用捕获用户的棒球体育视频的视觉覆盖。在图6B的图示中,用户的实际身体位置与由覆盖建议的位置很好地对准。在一个实施例中,视觉覆盖是静态的,这可以帮助用户得到更稳定的视频用于更准确的对象跟踪。然而,视频获取模块310不期望来自视频的任何视觉线索(诸如具体的对象或背景),以允许在任何合理的环境中得到视频。
[0040] 在跟踪运动员的视频时使用视觉覆盖来引导用户改善了对象跟踪的效率和精度。视觉覆盖减小了初始可以定位某些对象的区域。比如,在记录高尔夫球杆挥动运动时,可以在减小的区域中而非在整个视频帧中搜索高尔夫球杆头部和运动员的手部在视频帧中的初始位置。使用视觉覆盖的减小的搜索区域也通过消除误报的概率仍然为非零的非常不可能的位置而改善了在视频帧中检测对象的精度。另外,可以控制对象的尺寸,因为用于对象跟踪的训练数据可以有意地具有类似的尺寸以减小检测的变化。
[0041] 所捕获的视频可以具有各种特性,例如帧速率分辨率、长度和编码格式。在一个实施例中,所捕获的视频具有很高的帧速率和/或很高的分辨率,以得到更精确和更精细的跟踪结果。例如,使用iPhone5s来得到视频,并且所捕获的视频具有720像素x1280像素的分辨率,其中帧速率为每秒钟120帧,并且所捕获的视频通常对于高尔夫持续5秒并且对于棒球持续3秒。
[0042] 体育视频中的背景减除
[0043] 由客户端设备110捕获的体育视频经常在体育视频的视频帧中包含背景。视频帧中的背景可以对于跟踪视频帧中的一个或多个感兴趣对象贡献噪声。通常,在没有关于要跟踪的感兴趣对象在视频帧中的潜在位置的任何先验知识的情况下,通过逐落滑动面片(patch)窗口来考虑整个帧。然而,考虑到整个视频帧在计算上很耗费资源(其与视频分辨率成比例)并且在视频帧中要检测的对象的期望实例很小的情况下效率很低。背景减除模块320从视频帧减去背景以增加对象检测的效率。在一个实施例中,背景减除模块320从视频的静态部分(也称为背景)提取视频中的动态移动的对象(也称为前景)。因为跟踪问题中的感兴趣对象具有高动态性,所以先于对象检测阶段的背景减除减小了要跟踪的对象的搜索空间并且增加了随后步骤中的检测速度和精度。
[0044] 可以将视频帧的区域的动态性理解为该区域随时间的变化的测量。在一个实施例中,将所捕获视频的每个视频帧分割成相同尺寸的面片网格,并且面片被逐面片而非逐像素标记。计算两个连续的视频帧之间的每个面片的动态性作为面片的每个像素的红绿蓝(RGB)值的平方差之和。在每个帧,面片的动态性的得分是当前视频帧和前一视频帧的面片的动态性值加上当前视频帧和下一视频帧的动态性值。当所有视频帧的每个面片具有动态性得分时,使得分在时间和空间上平滑以消除噪声面片。如果面片的动态性得分高于预定义的限,则确定面片是前景面片;如果面片的动态性得分低于门限,则确定面片是背景面片。背景减除模块320生成用于每个视频帧的输出,其包括面片的位置以及用以指示其每个面片是前景还是背景的用于帧的掩码。
[0045] 在一些实施例中,背景减除模块使用45MB或者更小的存储器而不管视频长度以及用于背景减除的视频帧的尺寸。通常,不需要针对整个视频帧进行背景减除,并且优选的是选择运动员站立在其中并且尺寸大于运动员的框区域来进行背景减除,诸如图7A中的蓝色框。这一方式可以减小存储器的使用以及耗时。这一过程可以占用1秒到10秒,这取决于诸如预定义的门限、面片尺寸、高斯滤波器尺寸以及标准偏差和时间一致滤波器尺寸等参数。图7A图示在背景减除之后的视频帧。图7A的视频帧示出玩高尔夫的个人,其中感兴趣对象包括高尔夫球杆头部710、白色背景730中的运动员的手部720。图7B示出在背景减除之后的高尔夫视频帧的另一示例,其中感兴趣对象(例如高尔夫球杆头部(740)、高尔夫球手的手部(750)和高尔夫球手的头部(760))在背景减除之后是可识别的。
[0046] 体育视频中的对象跟踪
[0047] 当视频被视频获取模块310获取并且被背景减除模块320减除时,对象跟踪引擎300对视频执行对象跟踪。在一个实施例中,对象跟踪处理具有三个阶段:由初始识别模块
330进行的初始识别、由跟踪模块340进行的帧平跟踪以及由重新识别模块350进行的重新识别。
[0048] 初始识别模块330基于经离线训练的对象分类模型来识别感兴趣对象(例如高尔夫球杆头部)在体育视频的帧中的位置。初始识别模块330使用在有可能要检测对象的帧的区域上滑动的搜索窗口。这一区域通常由视觉覆盖来确定。响应于这一当前帧中的面片被测试为感兴趣对象,初始识别模块330记录面片的位置以及包含感兴趣对象的帧的识别。另一方面,如果当前帧被测试为不包含感兴趣对象,则初始识别模块330按照时间顺序选择下一视频帧并且使用搜索窗口来搜索感兴趣对象。初始识别模块330可以在随后的视频帧中重复相同的或相似的过程直到识别出对象的位置。如果没有包含感兴趣对象的帧,则过程会认为视频中没有要跟踪的感兴趣对象。
[0049] 在单独的帧水平,对象跟踪引擎300选择帧内的小面片并且检查帧的这些面片是否包含感兴趣对象。跟踪模块340基于视频帧的一个或多个视频特征来搜索视频帧中的对象。在一个实施例中,跟踪模块340使用光流跟踪来确定在前一帧中的感兴趣对象的前一位置之后的感兴趣对象的可能的当前位置。注意,感兴趣对象的出现在体育视频中恒定地改变并且帧水平的对象的跟踪路径可以是不规则的,跟踪模块340可以使用中值滤波器和路径预测技术来增加感兴趣对象的所确定的可能位置的精度。
[0050] 中值滤波器是在两个时间上连续的视频帧(例如当前帧及其前一帧)之间的中值运动矢量,其中感兴趣对象有可能位于当前帧中。在一个实施例中,确定来自当前帧的每个特征的运动矢量以及来自前一视频帧的对应特征的运动矢量。对两个帧的所确定的运动矢量分类并且丢弃异常值。在一个实施例中,小于四分之一(小于第一四分位数)的矢量以及大于四分之三(大于第三四分位数)的矢量作为异常值被丢弃。认为其余矢量的中值是两个帧之间的可能的运动矢量。
[0051] 路径预测技术基于对象在前几个帧(如4个帧)中的位置来确定对象在当前视频帧中的预测位置;换言之,通常假定对象的路径很平滑。因此,期望当前帧中的对象在使用先前帧中的所识别的对象近似的预测路径上的位置处。预测技术可以基于被分析的感兴趣对象来使用不同的预测。比如,在分析高尔夫球杆或分析高尔夫球手的手部时使用不同的预测。在此,线性预测技术用于手部预测,三阶曲线预测技术用于高尔夫球杆预测。中值滤波器和路径预测技术与光流组合以得到感兴趣对象在当前帧中的最可能的位置。
[0052] 响应于跟踪模块340得到感兴趣对象的最可能的位置,重新识别模块350基于可能的对象的特征以及由图1中图示的离线学习模块136提供的经训练的对象分类模型来将视频帧中的这一最可能的对象重新识别为实际对象。在一个实施例中,重新识别模块350使用作为视觉特征的梯度的特征描述符(诸如梯度直方图(HoG))来表达被分析的帧的面片的有意义的特征和区别特征。由于对象的形状比对象的颜色在不同的视频中更一致,所以HoG在体育视频内容应用中表现优异。在一个实施例中,重新识别模块350选择63x63像素大小的面片,其被分为9个可能的梯度方位的9x9个像素单元,以被计算来提取1296个元素的HoG矢量。
[0053] 重新识别模块350基于其HoG特征和经离线训练的对象分类模型来计算最可能的对象面片的得分。为了简化描述,得分被称为重新识别得分。重新识别模块350然后确定得分是否大于门限。如果得分大于门限,则重新识别模块350认为最可能的对象是当前帧中的感兴趣对象。否则,认为通过光流、中值滤波器和预测获得的最可能的对象不是感兴趣对象。
[0054] 响应于认为最可能的对象不是感兴趣对象,重新识别模块350使用尺寸比感兴趣对象的尺寸大的窗口并且在该窗口中搜索感兴趣对象。在一个实施例中,搜索窗口被设置为是对象尺寸的几倍,例如两倍。另外,搜索窗口的中心保持与最可能的对象相同。重新识别模块350计算搜索窗口中的每个滑动面片的得分以获得最高得分。下一步骤是检查最高得分是否大于门限。如果最高得分大于门限,则认为对应的面片是感兴趣对象。否则,认为当前帧中不存在感兴趣对象。比如,感兴趣对象可能被运动员的身体遮挡。由于可以对搜索窗口中的每个滑动面片执行重新识别,所以在一个实施例中,重新识别模块350使用来自背景减除的二进制掩码来细化搜索窗口。
[0055] 为了响应于认为当前帧中没有感兴趣对象来处理下一帧,重新识别模块350可以将搜索窗口设置为大于先前在当前帧中所设置的大小,例如是可信对象的大小的四倍,并且在下一帧中重复重新识别过程。
[0056] 重新识别模块350使用经训练的对象分类模型(例如由图1中图示的离线学习模块136训练的模型)来确定面片是否是视频帧中的感兴趣对象。离线学习模块136通过存储在离线数据库132中的训练视频来训练对象分类模型。离线学习模块136向对象跟踪引擎300提供经训练的模型用于实时对象跟踪。
[0057] 在一个实施例中,离线学习模型136可以使用具有径向基函数(RBF)内核的支持矢量机(SVM)。在其他实施例中,可以取而代之使用诸如平缓adaboost(GentleBoost)之类的其他方法。SVM是一种求解可以用于分类未标注数据的两种数据之间的边界的监督学习方法。可以通过使下面在等式(1)中定义的函数最小化来求解边界。
[0058]
[0059] 参数w和b描述线性边界,xi是矢量形式的训练样本,yi是其相应的标签。第一项最小化边缘,边缘是边界与被训练的数据之间的距离,第二项最小化分类误差,分类误差是实际标签与使用边界的预测标签之间的差异,并且第三项是正则化项,其以与边界的距离测量误差有多远。
[0060] 可以使用RBF内核来创建非线性边界。比如,由下面的等式(2)给出RBF内核:
[0061]
[0062] 因此,使用RBF内核,将等式(1)重写为:
[0063]
[0064] subject to:0≤αi≤C,i=1,...,n
[0065]
[0066] 换言之,使用具有以下两个参数的RBF内核使等式(1)中所描述的SVM解最大化:(1)中的C和(2)中的γ。在一个实施例中,分别使用值1.0和值0.2用于参数C和γ。
[0067] 如果取而代之使用GentleBoost方法,则GentleBoost的性能取决于弱学习器的数目以及回归树的深度,其可以使用单独的参数被选择。弱学习器可以是比随机分类数据表现更好的任何分类器。例如,可以使用回归树作为弱学习器,其基于训练样本的单个元素xi对给定数据分类。在一个实施例中,使用300个弱学习器以及最大深度为4的回归树。
[0068] 用于平滑后的对象轨迹的视频分析
[0069] 体育视频中的所跟踪的对象位置可能由于各种因素(例如从捕获体育视频的相机的微秒的不可靠的运动)而非常嘈杂。分析模块360使感兴趣对象的所检测轨迹随时间平滑。例如,所跟踪对象的初始轨迹包括离散点,并且平滑后的轨迹可以创建对象的连续轨迹以用于更精细的分析。
[0070] 在一个实施例中,分析模块360将对象的轨迹的特性表示为能量函数,能量函数测量相应的所观察和预测的点之间的距离和速度以及所预测的点的加速度。使能量函数最小化以获得平滑后的轨迹。通过使用距离、速度的所选择的系数来最小化能量函数,分析模块360可以获得对象轨迹的最优曲线。在一些实施例中,能量函数表示为具有用于展开的能量函数的二阶项系数的对称五对角矩阵以及用于展开的能量函数的一阶项系数的矢量的二次函数。在一个实施例中,能量函数的Hessian是对称正定的并且具有所选择的常量。因此,可以通过计算能量函数的最小平方来确定能量函数的最小化,这减小了用于平滑过程的计算时间和存储器存储要求。
[0071] 图8A图示在视频帧中捕获的高尔夫挥动运动中的高尔夫球杆的示例性跟踪轨迹,图8B图示高尔夫挥动运动中的运动员的手部的示例性跟踪轨迹。图8A和图8B的水平轴以像素的数目来表示对象的轨迹的宽度,图8A和图8B的垂直轴以像素的数目来表示对象的轨迹的长度。如图8A和图8B中所图示的,跟踪轨迹可能包括毛刺和/或丢失的点。在平滑跟踪轨迹之后,去除毛刺并且向经平滑的轨迹添加丢失的点。
[0072] 数据输出模块370以用户友好的方式向客户端设备的用户输出分析。图9A、图9B和图9C是根据一个实施例的用于呈现高尔夫体育视频中的跟踪对象的轨迹的示例性用户界面。例如,图9A图示用于显示被跟踪的高尔夫球手的手部920A以及高尔夫球杆头部910A的用户界面UI。图9B和图9C示出随时间在不同位置处的所跟踪的高尔夫球手的手部和高尔夫球杆头部。图9D是用于呈现图9A-9C中图示的高尔夫体育视频的分析统计的示例性用户界面。图10A、10B和10C是根据一个实施例的用于呈现棒球体育视频中随时间的所跟踪的棒球棒的轨迹的示例性用户界面。图10D是用于呈现图10A-10C中图示的棒球体育视频的分析统计的示例性用户界面。图11A、图11B和图11C是根据一个实施例的用于呈现另一棒球体育视频中的跟踪对象的轨迹的示例性用户界面。
[0073] 对象跟踪的示例性流程图
[0074] 图4图示根据一个实施例的用于体育视频中的对象跟踪的步骤。在用户使用他的/她的智能电话捕获体育视频时,在例如智能手机等客户端设备的屏幕上显示410视觉覆盖。视觉覆盖通过提供稳定的相机位置和优选的相机姿势来帮助用户在视频捕获期间对准运动员。在一些实施例中,针对不同类型的体育运动显示不同的视觉覆盖。比如,使用一个视觉覆盖用于高尔夫球杆挥动,并且针对棒球棒挥动显示不同的视觉覆盖。
[0075] 使用视频获取模块310记录420执行体育运动的运动员的视频。在一些实施例中,使用高分辨率和高帧速率来记录视频。比如,使用每分钟120帧的帧速率以及1280x720像素的分辨率来记录视频。视频的长度可以取决于被记录的体育运动的类型。在一些实施例中,记录4秒或更短的视频。在一些实施例中,在记录视频之前,显示倒数计秒以使运动员排队以在记录开始之后执行体育运动。
[0076] 在所记录的视频上跟踪430一个或多个对象的位置。图5A、图5B和图5C图示用于跟踪对象的位置的示例性步骤。通过分析模块360分析440对象的跟踪位置。通过数据输出模块370显示450所分析的跟踪位置。在一些实施例中,数据输出模块370显示如图9A-9D以及图10A-10D中图示的用户界面。
[0077] 图5A、图5B和图5C是图示根据一个实施例的用于在体育视频中跟踪对象的过程的示例性流程图。例如,图5A图示根据实施例的用于跟踪对象在体育视频中的位置的步骤。初始识别模块识别501在体育视频的初始视频帧(例如第一帧)中被跟踪对象的初始位置。在步骤503选择按照时间顺序的下一随后视频帧。确定505在前一帧中是否识别出对象。如果在前一帧中识别出对象,则通过跟踪模块340基于对象在前一视频帧中的位置来跟踪507对象的位置,并且认为对象是可信的对象。
[0078] 图5B图示用于跟踪对象位置的图5A中的步骤507的子步骤。跟踪模块340跟踪502感兴趣对象的对象流。比如,确定前一视频帧与当前视频帧之间的运动矢量。然后过滤504运动矢量并且认为其余矢量的中值是这两个帧之间的可能的运动矢量。最后,基于对象在前一视频帧中的所识别的位置来预测506对象的路径。
[0079] 再参考图5A,跟踪模块340确定509由离线学习模块136提供的经训练的对象分类模型引导的对象的期望位置。确定511期望位置是否与由经训练的模型预测的对象的跟踪位置一致。如果期望位置与对象的跟踪位置一致,则跟踪模块340存储519所识别的位置。否则,如果期望位置与对象的跟踪位置不一致,或者如果在前一视频帧中没有识别出对象的位置,则重新识别模块350重新识别515对象在当前帧中的位置。
[0080] 在一些实施例中,在对象位置的重新识别515之前,背景减除模块320去除当前视频帧的背景。图5C图示根据一个实施例的用于重新识别对象位置的子步骤。重新识别模块350设置搜索窗口,例如在对象的期望位置与由经训练的模型预测的对象的跟踪位置不一致的情况下将搜索窗口设置为可信对象的尺寸的两倍。在一些实施例中,如果在前一视频帧中没有识别出对象,则将用于重新识别的搜索窗口增加4倍。例如使用来自背景减除的二进制掩码来细化524搜索窗口以用于提高跟踪效率,并且使用经训练的对象分类模型来确定对象的位置。
[0081] 再参考图5A,在重新识别对象的位置之后,重新识别模块350确定517期望位置是否与重新识别的对象一致。如果期望位置与重新识别的位置一致,则存储419所识别的位置作为实际对象。否则,如果期望位置与重新识别的位置不一致,则针对当前帧不存储任何位置,并且重新识别模块350在体育视频的随后帧中重复521位置的识别过程。如果没有用于跟踪的更多视频帧,则分析模块360向体育视频的感兴趣对象的跟踪位置应用523平滑函数以生成跟踪对象的经平滑的轨迹。数据输出模块370以如图9A-9D以及图10A-10D中图示的用户友好方式向用户呈现分析结果。
[0082] 总括
[0083] 已经出于说明的目的呈现了对本发明实施例的以上描述;其并非意在穷尽或将本发明限于所公开的精确形式。相关领域技术人员可以理解,很多修改和变化鉴于以上公开内容都是可能的。
[0084] 本描述的一些部分以对信息的操作的算法和语法表示来描述本发明的实施例。这些算法描述和表示通常由技术人员在数据处理领域中使用,以向本领域其他技术人员高效地传达他们工作的实质。这些操作当在功能上、计算上或逻辑上被描述时被理解为用计算机程序、等同的电气电路、微代码等来实现。另外,还证明,有时将这些操作布置称为模块是方便的而不失一般性。所描述的操作及其相关联的模块可以被包含在软件、固件、硬件或其任意组合中。
[0085] 本文中所描述的步骤、操作或过程中的任何步骤、操作或过程可以用一个或多个硬件或软件模块单独地或结合其他设备被执行或实现。在一个实施例中,软件模块用包括包含计算机程序代码的计算机可读介质的计算机程序产品来实现,计算机程序代码可以由计算机处理器来执行,以用于执行所描述的步骤、操作或过程中的任何或全部步骤、操作或过程。
[0086] 本发明的实施例还可以涉及用于执行本文中的操作的装置。这一装置可以特别地被构造用于所要求的目的,和/或其可以包括通过计算机中所存储的计算机程序来被选择性地激活或重新配置的通用计算设备。这样的计算机程序可以存储在非暂态、有形计算机可读存储介质或者可以被耦合到计算机系统总线的适合用于存储电子指令的任何类型的介质中。另外,在说明书中被提及的任何计算系统可以包括单个处理器,或者可以是为了增加计算能力而采用多处理器设计的架构。
[0087] 本发明的实施例还可以涉及由本文中所描述的计算过程产生的产品。这样的产品可以包括由计算过程产生的信息,其中该信息存储在非暂态、有形计算机可读存储介质上并且可以包括本文中所描述的计算机程序产品或其他数据组合的任何实施例。
[0088] 最后,本说明书中所使用的语言原理上出于可读性和指导性目的被选择,并且其可以没有被选择为描绘或限制发明主题。因此,其意在本发明的范围不受这一详细描述的限制,而是受在基于此申请上发布的任何权利要求的限制。因此,本发明实施例的公开内容意在说明而非限制本发明的范围,本发明的范围在以下权利要求中给出。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈