
比赛状态检测和轨迹融合
背景技术:1.多个相机被用于捕捉场景中的活动,并且使得终端用户能够观看场景并且在整个场景中进行完全360度的移动。例如,多个相机可用于捕捉体育比赛,并且终端用户可以在整个比赛场地上自由移动。终端用户也可以从虚拟相机观看比赛。
附图说明
2.图1包括比赛状态监视器和沉浸式观看模块;
3.图2是图示出比赛场地的框图;
4.图3是图示出将一个比赛回合解析为多个状态的框图;
5.图4是图示出带有美式橄榄球比赛中的进攻的状态和阶段的时间线的框图;
6.图5是比赛状态转变图;
7.图6a是多个轨迹的图示;
8.图6b是融合轨迹的图示;
9.图7是用于比赛状态检测的方法的过程流程图;
10.图8是多相机球定位方法的过程流程图的图示;
11.图9是图示出用于球位置融合的方法的过程流程图;
12.图10是用于结合球位置融合的比赛状态检测的方法的过程流程图;
13.图11是图示出比赛状态检测和轨迹融合的框图;并且
14.图12是示出存储用于比赛状态检测和轨迹融合的代码的计算机可读介质的框图。
15.相同的数字在本公开和附图各处始终被用于提及相似的组件和特征。100系列的数字指代最初出现于图1中的特征;200系列的数字指代最初出现于图2中的特征;等等依此类推。
具体实施方式
16.体育赛事和其他竞赛经常被广播,供终端用户娱乐。这些比赛可被以各种格式渲染。例如,比赛可以被渲染为二维视频或三维视频。可以使用定位在整个比赛场地周围的一个或多个高分辨率相机来捕捉比赛。多个相机可以捕捉包括比赛场地在内的整个三维体积空间。在实施例中,相机系统可以包括多个超高分辨率相机来进行体积捕捉。终端用户可以观看比赛的动作,并且在捕捉的体积中自由移动。此外,终端用户可以从虚拟相机观看比赛,该虚拟相机通过在三维体积空间中跟随球或特定选手来跟随场地内的动作。提供这样的沉浸式体验可能一部分是基于对球和选手的自动实时高准确度跟踪。此外,如本文描述的系统还自动跟踪球,并且在比赛进行期间实时检测高光时刻。通过这种方式,向终端用户实时提供沉浸式媒体体验。
17.本技术经由若干个模块来实现比赛状态检测。这些模块可以基于比赛状态被启用或禁用。就本文使用的而言,比赛状态可以指比赛的特定状态。比赛的状态可以对应于特定的比赛回合、比赛期间的特定中断时间、特殊打法、加时赛、比分、持球的球队、不持球的球
队、比赛时钟、比赛回合期间剩余的时间、或者这些的任何组合。通过这种机制,可以监视比赛状态,并且动态地配置计算模块来提供一种高效且节约(cast-saving)的系统。此外,本技术使得能够在比赛期间检测球,包括在球是可见的和不可见的时候。如果球是可见的,则使用直接物体检测算法。否则,可以基于持球选手的位置来检测球位置。可以从持球选手的位置推断球位置,并且根据融合算法将其与其他球位置相融合。
18.就本文使用的而言,比赛(game)可以指根据一组规则的某种形式的游戏。可以为休闲、娱乐或成就而打比赛。比赛可以有观看比赛的一群观众。观众可以被称为终端用户。比赛可以是竞争性的,并且被组织成使得对立的个人或团队竞争取胜。胜利是指第一个人或第一团队被承认为战胜了其他个人或团队。胜利也可能导致个人或团队达到或确保一项成就。经常,比赛是在某个场地、球场、竞技场内或者指定用于打比赛的其他一些区域上进行的。指定用于打比赛的区域通常包括标记、门柱、网等等,以促进比赛的进行。为了易于描述,使用足球来描述本技术。然而,根据本技术可以使用任何比赛。
19.图1是比赛状态检测的使用的框图。在实施例中,可以根据比赛状态来监视比赛的状态。基于比赛状态,各种模块可被用来在比赛内实现沉浸式媒体体验。在一些情况下,沉浸式媒体体验是实时提供的。或者,沉浸式媒体体验可以是对先前比赛的重放。在本文描述的沉浸式媒体体验中,终端用户可以在比赛场地内完全360度自由移动地跟随球和选手。
20.图1包括比赛状态监视器102和沉浸式观看模块104。比赛状态监视器可包括球和选手跟踪模块110和比赛状态检测模块112。比赛状态监视器102可以向沉浸式观看模块104提供诸如球位置、选手位置和比赛状态之类的信息。如图所示,来自球和选手跟踪模块110的信息可以被比赛状态检测模块112使用。如下所述,球的移动或选手的移动可能导致比赛进入多个状态中的一个状态。因此,可以基于球、选手的特定位置以及应用于球、选手的动作来确定比赛的状态。在块110处的球和选手跟踪中,可以通过首先调整图像的大小来检测球。然后,该图像可被分割成多个限界框和类别概率。单个卷积网络可以同时预测多个限界框和多个框的类别概率。每个限界框可以与一物体相关联。可以使用完整的图像来训练单个卷积网络。在一些情况下,训练图像可以是与特定体育运动相关联的图像。在实施例中,球是相对较小的。例如,当被渲染时,球在1k图像中可能是大约20个像素。从而,可以使用小的限界框来跟踪球。球和选手跟踪模块使用检测相对微小的球的深度卷积神经网络(convolutional neural network,cnn)技术。在实施例中,可以在多相机框架中基于你只用看一次(you only look once,yolo)方案来检测球。
21.在块110,选手检测和跟踪可以根据各种模式基于选手在比赛场地内的布局而发生。选手检测和跟踪也可以根据各种模式基于选手在比赛场地内的移动而发生。每个选手检测模式为不同的目的而为不同的性能建模。例如,“快速”选手检测和跟踪模式使用简单但快速的模型来检测选手,而精细选手检测和跟踪模式使用复杂、准确的模型来检测帧中的选手。在比赛状态监视器102中,快速模式被用来快速找到选手,并且快速知道有多少选手在比赛场地内以及他们的布局。在一些情况下,如果比赛场地内的选手的数目不正确,则比赛可能处于中断状态。如果选手处于被识别为比赛布局的位置内,则比赛可能处于比赛开始状态。例如,在美式橄榄球中,列队成开球阵型可能表明状态是比赛的开始或下半场比赛的开始。列队成弃踢回攻阵型可能表明发生了易手。此外,两只球队沿着争球线列队表明进攻的开始。在实施例中,比赛状态可以由选手的特定阵型或套组来指示。
22.比赛状态监视器102可以向沉浸式观看模块104提供诸如球位置或轨迹、选手位置或轨迹和比赛状态之类的信息或者这些的任何组合。在实施例中,沉浸式观看模块104能够实现比赛的沉浸式体验。沉浸式观看模块104包括预先选手检测和跟踪模块120。预先选手检测和跟踪模块可以在考虑到帧中的遮挡和多个选手的情况下实现对选手的高度准确的检测和跟踪。球队分类模块122可用于将比赛场地内的每个选手指派到特定的球队。在实施例中,球队分类模块122使得每个球队的选手能够被分组在一起,以便进一步渲染或处理。轨迹优化模块124对比赛期间发生的各种轨迹进行优化。例如,轨迹优化模块124可以优化由高级选手检测和跟踪模块120发现的或者由比赛状态监视器102提供的轨迹。具体地,轨迹优化模块可以在选手被从视野中遮挡的情况下推断出选手轨迹的各种部分。轨迹优化模块124也可以优化球的轨迹。
23.多相机跟踪模块126可用于跟踪球。具体地,多相机跟踪模块126可以基于先前在每个单一相机中对球的检测来跟踪2d球。然后,多相机跟踪模块126用多相机立体图像建立独特的3d球位置。姿态球检测模块128可以在球被选手持有时用姿态情境模型来检测球。当球被选手持有时,可能很难直接检测到球。通常,球被握在选手的手中或在身体附近被抱着。从而,选手在持球时呈现出一些特殊的姿态特性。姿态-球情境可以被确定,并且被用于在特殊姿态的情境中找到球。此外,球衣号码识别模块130可以识别每个选手的球衣号码。球衣识别模块在比赛期间提供带有球队信息的独特选手身份。给定球衣号码和球队信息,可以确定关于选手的各种信息,例如姓名、年龄、角色和比赛历史,等等。
24.通过使用从高分辨率相机获得的图像,沉浸式观看模块104能够使终端用户沉浸在体育赛事或比赛的三维重现中。在实施例中,终端用户能够从比赛场地内的任何一点观看比赛过程。终端用户还能够在比赛场地内的任何一点观看完整的360
°
的比赛。从而,在实施例中,终端用户可以从任何选手的角度来体验比赛过程。可以经由体积捕捉方法来捕捉比赛。例如,可以使用三十八台5k超高清相机来记录比赛镜头,这些相机捕捉数据的高度、宽度和深度以产生体素(具有体积的像素)。从而,根据本技术的相机系统可包括多个超高分辨率相机来捕捉整个比赛场地。在捕捉比赛内容之后,大量的数据被处理,并且完全体积化的三维人或物体的所有视点被重现。这个信息可用于以多视角三维格式渲染虚拟环境,这使得用户能够从任何角度和视角体验捕捉的场景,并且能提供真正的六个自由度。
25.为了易于描述,使用美式橄榄球比赛作为示例来描述本技术。在实施例中,本文描述的美式橄榄球可以是由国家橄榄球联盟(national football league,nfl)进行的。一般而言,足球描述的是这样一类比赛:其中球在各种时间被踢出,最终进球得分。足球可包括例如英式足球、橄榄球、拉格比足球。美式橄榄球可能是橄榄球的一个变种。虽然描述的是美式橄榄球,但本技术可适用于具有多个状态和阶段的任何事件。根据本文描述的技术,终端用户可以在各种状态和阶段中沉浸在该事件中。
26.图2是图示出比赛场地200的框图。比赛场地200可以是美式橄榄球场。美式橄榄球场是矩形的,长度为120码,宽度为53 1/3码。沿着比赛场地200的周边的线202和204可以被称为边线。沿着比赛场地200的周边的线206和208可以被称为端线。球门线210和212分别位于距离端线206和208的10码处,以形成端区218a和218b。从一条球门线210到另一条球门线212,每隔5码标记有码线。散列标记214可以是短的平行线,在每条码线之间以一码的增量出现。门柱220a和220b可位于每条端线206和208的中心。此外,可以用表示拥有该场地的球
队的标识和其他徽记216来装饰比赛场地。
27.比赛场地200包括比赛场地每一端的端区218a和218b。在比赛期间,第一球队被指定为进攻方,第二球队被指定为防守方。比赛期间使用的球是椭圆球体或长球体。通常,进攻方控制球,而防守方不控制球。进攻方尝试通过跑动或传球将球沿着矩形场地的长度推进,而防守方则同时尝试阻止进攻方将球沿着场地的长度推进。防守方也可以尝试取得对球的控制。如果防守方在一个比赛回合期间从进攻方夺走球,则这可被称为拦截。根据本技术,拦截可以是一种比赛状态。
28.一般而言,为了开始一个回合的比赛,对立的球队以特定的格局、阵型或套型列队。一个比赛回合可以被称为一次进攻。在每一次进攻期间,进攻方都有机会执行一个打法来沿着场地推进。为了开始一场比赛,进攻方和防守方根据各种方案沿着争球线列队。例如,进攻方将列队成一个阵型,以尝试突破防守方,将球朝着球门线210/212推进。如果进攻方能够将球推进过球门线210/212,并且进入端区218a/218b,则进攻方将获得触地得分,并且被授予分数。在触地得分之后,进攻方也会得到一次尝试来获得分数。在实施例中,触地得分可以是一种比赛状态。
29.比赛可以从开球开始,此时由踢球的球队将球踢给接球的球队。在开球期间,开球之后将被认为是进攻方的球队是接球球队,而踢球球队通常将被认为是防守方。开球之后,进攻方必须在四次进攻中在前场把球推进至少10码,否则,进攻方就把橄榄球交给防守方。如果进攻方成功将球推进十码或更多,则新的一组四次进攻将被给予进攻方来用于将球再推进十码。每次进攻可被认为是一种比赛状态。此外,每一节也可以是一种比赛状态。一般而言,将球推进到对方球队的端区中或将球踢过对方球队的门柱的球队会得到分数。比赛结束时得分最多的球队获胜。在一次进攻期间还有若干种可以执行的特殊打法,包括但不限于弃踢回攻、射门得分和加分尝试。这些特殊打法也可以被认为是比赛的状态。
30.一场美式橄榄球比赛大约持续四个小时,包括所有没有比赛发生的中断时间。在一些情况下,四个小时中大约有一半时间包括活跃的比赛,而另一半时间是某种中断。就本文使用的而言,中断可以指球队暂停、官方暂停、商业暂停、受伤暂停、中场休息、易手之后的过渡期间的时间,等等。在实施例中,确定比赛状态使得能够应用不同的模块来获得更准确的选手/球的位置。在中断期间,一些模块可以被绕过以节省处理成本、时间和功率。在中断期间,比赛状态是静态的,不要求任何更新。在实施例中,可以基于球和选手的位置来检测比赛状态。具体地,选手和球检测算法可以与基于选手/球位置和运动的有限状态机(finite state machine,fsm)状态检测一起被实现。可以确定美式橄榄球比赛的不同状态,并且基于该状态来应用球位置算法。本技术还包括一种融合方法,以获得最终的、高度准确的球轨迹。在实施例中,可以生成来自虚拟相机的视图,该视图通过在三维空间中跟随球或特定选手的移动轨迹来跟随场上的动作。
31.图3是图示出将一个比赛回合300解析为多个状态的框图。一般而言,比赛开始于块302,具有状态0。在状态0中,一个比赛回合或整个比赛被初始化。例如,发生开球,以初始化美式橄榄球比赛的开始。在块304,比赛开始,此时第一选手获得球的控制权并且与第二选手交换球。在第一选手和第二选手之间的交换中,球可以被第一选手直接放到第二选手的手中。或者,第一选手可以将球扔出几码到第二选手。因此,在块306,图示了阶段1。在图3的示例中,阶段1被图示为飞行操作。然而,阶段1也可以是交换操作。
32.在块308,描述了状态2。在状态2期间,第二选手可以接收球并且做出关于比赛的决定。具体地,第二选手可以决定将球沿着场地推进。或者,第二选手可以将球递给附近的第三选手,这样附近的第三选手可以将球沿着场地推进。第二选手也可以把球传给远处的第三选手,该第三选手在沿着场地的几码远外,以便将球沿着场地推进。在块310,阶段2表示球从第二选手到第三选手的移动。
33.在块312,第三选手从第二选手接过球。经常,第三选手将尝试通过持球和沿着场地跑动来将球在场地上推进得更远。因此,在块314,发生了阶段3,此时球被握持着并且被第三选手沿着场地推进。虽然没有图示,但根据比赛规则,阶段306、310和314可以被重复许多次以达到不同的比赛状态。例如,在美式橄榄球中,在第三选手从第二选手获得球之后(其中第二选手是四分卫,第一选手是中锋),该选手可能被禁止进一步向前场抛球。然而,可以在比赛场地中向后传球,以便另一选手可以尝试通过跑动将球沿着场地推进。该比赛回合可结束于块316。在块316,图示了状态4。在状态4中,当前比赛回合的球在比赛场地内的地面上或者球在比赛场地外。
34.在图3的示例中,可以基于球的运动来定义比赛的三个阶段,第一阶段306,其中球从状态1转变到状态2。图示了第二阶段310,其中球从状态2转变到状态3,并且图示了第三阶段314,其中球被选手控制。在一些比赛中,球可以由能够引导球的轨迹的选手控制。在美式橄榄球的示例中,球可以由在前场推进球的持球选手(ball holding player,bhp)控制。在另一个示例中,球可以由一个用手、脚或其任何组合来运球的选手控制。从而,球可能被控球选手的手、脚或身体遮挡,而不总是可见的。
35.在阶段1 306和阶段2 310中,球一般是可见的或被部分遮挡的,并且可以经由物体检测和跟踪算法通过专门的努力被直接检测到。然而,在阶段3 314中,球是由选手持有的,可能遭受严重的遮挡而不可见。因此,当球和控球选手一起时,球可能无法被直接检测到。如果控球选手的位置是已知的,那么可以估计出球的大致位置。根据本技术,可以通过球的运动和位置来确定比赛状态。在实施例中,比赛状态可以基于完整比赛中的球检测和跟踪,并且比赛状态可以基于跟踪控球选手阶段3。在获得球的两条运动轨迹之后(首先经由球检测和跟踪,然后经由控球选手),这些轨迹被融合在一起,以推断出球跟踪的最终的独特而平滑的轨迹。虽然一场比赛已经被概括地描述为一系列的状态和阶段,但每个状态和阶段都可以根据特定的比赛规则而被重复。在一些情况下,四分卫(qb)会直接进攻到端区,而不是把球传给其他选手,尤其是在端区比赛附近。在这些情况下,在进攻期间可能只有阶段1。
36.图3的示意图并不打算表明示例比赛回合300要包括图3中所示的所有状态和阶段。更确切地说,可以使用更少的或者图3中没有图示的额外状态和阶段(例如,选手、配置、动作、比赛的终止,等等)来实现示例比赛回合300。
37.一般而言,比赛的状态可以指在比赛期间发生的事件。阶段一般而言可以指在比赛期间发生的动作,其中动作是由比赛期间使用的球或其他物体的运动或不运动来定义的。比赛的各种阶段经常由在体育场馆内的操作员手动标注比赛状态。然而,由于部署了许多体育场馆,人工标注是不可扩展的,同时也是不准确的。也可以经由来自第三方的数据来确定比赛状态,例如,文本字幕数据。然而,在比赛的时间戳和字幕数据的时间戳之间经常存在严重的延迟。而且,字幕数据是由人手动输入和标注的。传统上,推断运动状态可以从
传感器数据来推断。然而,传感器经常需要准确的校准以确保准确的跟踪。比赛和传感器之间经常存在同步问题,并且传感器也经常会出现错位。最后,广播数据可被用于确定比赛状态,包括视频和音频,例如场景分类、哨声或者评论员的兴奋讲话,等等。然而,广播数据需要额外的数据资源,并且通常不能被用于实时制作。所有这些解决方案经常会引入不必要的延迟。此外,为了检测球,从物体检测的角度来看,传统的解决方案包括一般物体检测和小尺寸物体检测。由于这些光学方法对于球跟踪的质量较差,可以使用rfid方法。然而,这些方法并不能为球提供准确和实时的三维位置。
38.本技术使用现有的视频数据来检测比赛状态,以促进比赛分析,它是轻量级的并且以低延迟的方式实时运行。本技术不使用第三方数据或额外的传感器。在实施例中,如果球是可见的,则使用直接物体检测算法。否则,找到持球选手,并且从持球选手的路径来推断球的位置。可以经由融合算法来组合多条轨迹。
39.图4是图示出带有美式橄榄球比赛中的进攻的状态和阶段的时间线400的框图。进攻是美式比赛中的一个事件,在此期间,进攻方可以执行一个打法。进攻方被给予特定数目的进攻,以将球朝着对手的端区推进十码或更多码。如果进攻方未能在规定数目的进攻内将球推进十码,球就会被移交给对手。球的移交可以通过将球弃踢给对手来实现,这将导致对手在离期望的端区更远的地方开始比赛。因此,一场比赛可能由几组进攻组成。
40.在一次进攻内,沿时间线400的若干个点可能有各种状态。时间线400包括状态402、状态404、状态406、状态408、状态410、和状态412。在状态402,比赛开始。在状态402和状态404之间发生的时间段中,发生了阶段420。在阶段420,球可以被放在地面上。在美式橄榄球中,球可以由中锋放在地面上。在状态404,选手是静态的,以初始化一次打法,这开始于中锋发球时。在发球(snap)期间,中锋将球后传给四分卫。在状态404和状态406之间发生的时间段中,发生了阶段422。在阶段422,球可能处于低飞状态。低飞状态可以是例如在相对较近的两个选手之间进行的短距离抛球。基于特定的进攻方案,发球可能是将在中锋的两腿之间的球传给四分卫。在散弹枪阵型中,四分卫可能定位在中锋后面几码的地方。在这样的阵型中,球在低飞阶段中被投出几码给四分卫。
41.在状态406,四分卫接到球。比赛进程可以基于四分卫作出的决定而沿着几条路径进行。四分卫可以将球交给或抛给相对较近的选手。四分卫也可以保留球并自己向前跑以推进球。另外,四分卫可以选择向前场将球传给合格的接球者。虽然已对于在四分卫接收发球之后美式橄榄球比赛中的打法描述了特定选项,但本技术并不限于特定的比赛进程。
42.四分卫在状态406处接住发球之后球的阶段的选项一般可被划分为涵盖各种场景的两个阶段。在阶段424,球处于跑动阶段。这里,球仍然在四分卫那里,或者被投给合格的选手。一旦合格的选手接收到球,该合格选手就可以被称为持球选手。在这个阶段中,选手带球跑动,直到比赛对于该次进攻终止为止。比赛可如下所述对于一次进攻终止。注意,四分卫可以保留球,开始跑动,并且被指定为持球选手。
43.或者,在阶段426,四分卫可以保留球而不尝试将球沿着场地推进。在这种场景中,四分卫可以位于一个口袋内。该口袋由同一球队的成员形成,以在四分卫在前场定位合格的接球者时在四分卫周围形成一个保护区域。移动该口袋会使得四分卫能够有额外的时间来定位到合格的接球者,并且也有助于四分卫避免被擒抱。擒抱是指在一次进攻期间,防守方将四分卫击倒,从而比赛对于该次特定进攻终止。从而,在阶段426,可能会出现四分卫在
原地轻微慢跑的情况。在一些情况下,这可能被称为“在口袋周围跳舞”。
44.在状态408,四分卫可以将球传给合格的前场接球者。在美式橄榄球中,合格的前场接球者必须在争球线以外的特定码数处。在阶段428,球在空中处于高飞位置。在状态410下,球被合格的接球者接住,合格的接球者在其接住球之后被称为持球选手。如果合格的接球者在状态410成功接住了球,那么球就可以进入阶段430。在阶段430,持球选手在接球之后尝试将球向前场推进额外的码数。从而,在阶段430,球处于跑动阶段中。在这个阶段中,持球选手带球跑动,直到比赛对于该次进攻终止为止。在实施例中,持球选手可以根据美式橄榄球的规则,通过把球扔给其他选手来创建额外的阶段(未图示)。
45.当持球选手被裁判宣布倒地,或者持球选手离开比赛场地时,比赛结束或死亡。当持球选手到达对方球队的端区时,比赛也可终止。到达对方球队的端区会导致得分。比赛的结束也是进攻的结束。如果持球选手倒地,无论是中锋、四分卫还是任何其他选手,则比赛也可以在任何阶段期间的任何时间结束。不完全传球也可能导致进攻的结束。不完全传球是指传球出界,或者被接球者掉落或因其他原因未被接住。
46.图4的示意图并不打算表明示例时间线400要包括图4中所示的所有状态和阶段。更确切地说,可以使用更少的或者图4中没有图示的额外状态和阶段(例如,选手、配置、动作、比赛的终止,等等)来实现示例时间线400。
47.本技术可以使用不同的算法来基于球位置和选手位置来计算比赛状态。在不同的状态中,可以使用不同的算法来维持准确性。例如,从比赛开始直到持球选手接住球,直接球跟踪算法效果很好,因为它是可见的,没有太多的遮挡。然而,当球被选手(qb或bhp)持有时,直接球跟踪算法可能就不那么有效了,因为球是部分或完全不可见的。从而,对选手进行跟踪以推断球的位置。
48.从选手跟踪的角度来看,在比赛中(从开始到结束)期间,选手的数目是有限的,并且计算复杂度也是有限的。然而,在中断时,可能有许多不受控制的情况。例如,在中断期间,可能有许多人在比赛场地上,这导致处理的时间更长,并且可能对实时流媒体过程造成风险。因此,本技术包括一种更快的轻量级选手检测模块,以快速找到场上的选手,同时具有适当的准确性。
49.图5是比赛状态转变图500。如图5所示,有限状态机(finite-state-machine,fsm)可被用于检测比赛状态。在fsm中,定义了五个动作、五个状态以及若干个转变条件。动作的定义是基于球和选手运动信息的。在图5的示例中,球位置算法和更快的轻量级选手跟踪算法被执行以找到球和选手位置。球和选手位置可被用于检测比赛状态。下面描述动作定义以及动作检测技术。这里图示和描述的动作、阶段和状态可以经由硬件、软件或其任何组合来实现。有限状态机可以将球位置、球轨迹、选手位置、选手轨迹或者其任何组合中的至少一个作为输入。有限状态机输出比赛的状态或阶段。状态包括状态502、504、506、508和510。动作包括动作520、动作522、动作524、动作526和动作528。转变条件包括条件530、条件532、条件534和条件536。
50.在状态502,状态“s0:null”是代表fsm启动的入口空状态。在动作520,动作“a0:球是静态的并且在地上”发生。从而,在动作520,球和大多数选手几乎是静态的。此外,在动作520,选手们站成两条平行线,开始一个比赛回合。在状态504,状态是“s1:开始”。从而,在状态504,正常比赛开始。在动作522,动作“a1:移动”发生。在动作522,球在低空间中以低速度
移动,与后来在比赛期间可能发生的高空间高速度形成对比。在块530,图示了转变条件。转变条件530是球的运动是超过阈值的某个前场运动。在实施例中,前场运动可以是沿着xz平面中的y轴。就本文使用的而言,转变条件可指球的运动或方向的变化。转变条件也可以指停止球的运动。例如,在球被发给四分卫之后,四分卫于是可以通过发起向前场传球给接球者或者将球递给跑卫来改变球的运动。阈值可被应用于球的运动或方向,以创建转变条件。
51.在状态506,状态“s2:qb传球”发生。在状态506,四分卫拥有球并且将确定比赛将如何进行。在块532,转变条件532发生。在转变条件532,球以大于阈值th的速度移动。当球以大于阈值th的速度移动时,动作524“a2:球在高空间飞行”可能发生。动作524代表从四分卫到潜在持球选手的长距离传球。或者,取决于所执行的特定打法,转变条件532可能是四分卫和附近选手之间的球的交换。在这个场景中,动作524可能是“交换”或低飞投球。在转变条件534,球从状态524改变路线。具体地,该转变条件是球的方向改变,其中球在y轴上的运动小于阈值th。当球在y轴上的运动小于阈值th时,状态508发生。注意,在状态506,如果动作526发生,则进入状态510“s4:结束”。在状态510,球或持球选手被击倒。在状态510,球也可能超出比赛场地,并且这个比赛回合结束。
52.在状态508,状态“s3:bhp接球”发生。在状态508,球已被从四分卫转移到另一个选手。从四分卫那里获得球权的选手被称为持球选手(bhp)。在实施例中,在状态506(s2)和状态508(s3),球可能飞得很高。在这些状态期间,基于球和选手的位置,可以识别持球选手,然后基于所识别的持球选手对球进行跟踪。在动作526,动作“a3:球在球场从外到内,或者在地上”发生。在动作526,球落地或者在比赛场地外。在动作526,通常球由选手持有并且不能被直接定位。然而,可以基于持球选手的号码和运动来确定球的位置。
53.注意,在状态508发生的持球选手的指定可以跟踪在状态506的四分卫持球之后获得球的控制权的任何选手。例如,当对方球队的选手成为持球选手时,状态508也可能发生。这可能发生在例如进攻方允许拦截或以其他方式将球移交给防守方时。此外,虽然状态508提到持球选手“接球”,但持球选手可以通过任何数目的方式来获得球权。例如,持球选手可以经由四分卫和选手之间的抛球、投球或其他短距离交换来获得球。持球选手可以在四分卫失误或其他丢球之后获得球。例如,与四分卫同一球队的持球选手可以在四分卫失误或其他丢球之后收回球。对方球队的持球选手也可以在四分卫失误或其他失球之后收回球。
54.虽然有限状态机500没有图示,但如果比赛场地上的选手数目大于阈值(比如50人),并且运动缓慢,则这可能是该比赛回合的结束提示。在比赛回合结束时,可能会发生动作528“a4:不属于上述5个动作的其他动作”。一旦动作528发生,有限状态机就可以在动作528后发生了n个帧之后进入状态502。以这种方式,当比赛打法在各比赛回合之间转变时,在预先确定的时间长度之后进入空状态。
55.在实施例中,有限状态机的状态可以基于比赛的比赛规则。例如,在美式橄榄球中,进攻方的特定选手被识别为是在一次进攻开始时持球的第一名选手。在表明比赛开始的球的运动之后,根据比赛规则,限制下一个特定的事件发生。因此,比赛的状态可以由美式橄榄球的特定比赛规则来规定。此外,可以根据美式橄榄球的特定比赛规则所规定的球运动规则来限制球的运动所发生的阶段。
56.因此,可以通过添加状态、去除状态、修改状态、添加使得能够进入某个状态的阶段、删除使得能够进入某个状态的阶段、添加状态的退出条件、删除状态的退出条件或者这
些的任何组合,来修改状态机。此外,可以通过添加一个或多个转变条件、删除一个或多个转变条件、修改现有的转变条件或者这些的任何组合来修改有限状态机。以这种方式,可以根据美式橄榄球比赛的状态/阶段来配置有限状态机。此外,可以根据nfl颁布的规则,按照美式橄榄球比赛的阶段来配置有限状态机。有限状态机可被配置为根据产生球位置和选手位置的跟踪算法在预定义的状态之间转变。有限状态机转变到某个状态代表比赛的进展。
57.图5的示意图并不打算表明示例有限状态机500要包括图5中所示的所有状态和阶段。更确切地说,可以使用更少的或者图5中没有图示的额外状态和阶段(例如,选手、配置、动作、比赛的终止,等等)来实现示例时间线500。
58.如上所述,体育赛事的各种状态取决于比赛用球的位置。在实施例中,可以根据在线球移动轨迹融合来跟踪球。具体地,本技术使得光学解决方案能够获得准确的球轨迹。大多数现有的解决方案使用传感器/激光雷达/等等设备,并且需要额外的同步/对准计算,其准确度较低。因此,本技术引入了比赛的各种不同状态,并且使用如上所述的多种定位算法来跟踪球。可以使用在线融合技术来获得准确的球轨迹。在实施例中,可以在整个完整比赛期间执行球检测和跟踪,并且只要球遭受部分遮挡,就执行持球选手球跟踪。
59.本文描述的融合技术可被“在线”执行,这意味着球位置融合模块可以实时执行。从而,融合模块可以立即处理输入数据。在实施例中,可以缓冲几帧,以便由融合模块处理。因此,在索引k的帧中确定了球和持球选手位置之后,融合模块处理数据并且立即返回输出(融合轨迹)。与“离线”模式相比这是实时的,在离线模式中使用了大量的帧缓冲,造成了长期的延迟。
60.如上文概括所述,本技术可以依靠体育场馆中的38个分辨率为5120x3072的物理相机,并且在比赛之前和比赛期间进行校准。可以选择相机的子集,例如从三十八个相机中选择十八个相机,以覆盖整个比赛场地,并且确保比赛场地中的每个像素都被至少三个相机捕捉,以达到球定位的目的。这里的球移动轨迹融合的输入是来自十八个相机(5120x3072)的实时视频流,每秒30帧(fps),并且输出是实时3d球位置(世界坐标的x,y,z)。在不同场景中,选择的相机子集可能是不同的。例如,取决于比赛场地周围的结构,使用较小或较大的相机子集,每个位置可由至少三个相机捕捉。总的来说,为实时三维球位置选择相机子集是在准确性和性能之间,其中性能包括处理的速度。选择所有的相机使得能够获得准确的球位置结果。然而,使用所有相机会导致更多的数据处理,最终会使用更多的计算资源,由此导致球的渲染速度会更慢。如果使用能够充分覆盖整个比赛场地的相机子集,那么本技术的准确性可能与使用所有相机时的场景相似。然而,使用的计算资源更少。
61.图6a是多个轨迹600a的图示。具体地,轨迹600a包括球跟踪轨迹和持球选手跟踪轨迹。在图6a的示例中,球在一比赛回合期间可以从位置602开始,并且在比赛回合结束时在位置604结束。从位置602到位置604的线606代表球在该比赛回合期间的地面真实轨迹。在实施例中,球是可见的,并且可以使用可见球跟踪来进行跟踪,如多个x 608所指示。多个x 608图示了经由可见球跟踪计算出的球的各种位置。多个方框610图示了作为持球选手的估计跟踪的球的位置。
62.在比赛开始时,球是可见的,并且可以根据一般球检测算法来被找到。第一轨迹片段可以由一般球检测算法生成。轨迹片段是根据本文描述的任何球检测算法生成的球轨迹的一部分。在实施例中,在一般球检测算法期间发生的轨迹片段——其中球在一定时间段
中是可见的——可被称为主轨迹片段。通常,主轨迹片段发生在这个阶段“阶段1”和“阶段2”之间。在阶段“阶段3”,对于球的轨迹可能既有球跟踪也有bhp跟踪。然而,由于阻挡、选手聚集在一起、快速运动之类的原因,阶段3的跟踪结果经常是不准确的。在阶段3,通常,球轨迹之一是准确的,并且接近地面真实轨迹。这些轨迹包括稳定的球原始(来自球跟踪的结果)跟踪或者持球选手跟踪(从bhp跟踪估计的球位置)。如图所示,在球检测跟踪和持球选手跟踪(如图所示,x和方块)的每一者中有许多孤立的离群点散布在场地中,在融合期间它们要被解决。为了便于描述,根据直接球跟踪算法和持球选手跟踪算法的球位置都是在xz平面中二维图示的。然而,根据本技术的球轨迹融合可以在三个维度上发生,从而将高度纳入轨迹跟踪中。
63.在实施例中,可以基于历史数据来建立运动模型。通常,球运动是连续的,像一条抛物线。可以通过使用六态卡尔曼滤波器估计运动来估计球运动。球的状态x可被定义如下:
64.x=(x,y,z,δx,δy,δz)
65.在球的这个状态中,考虑了球沿着三个轴x、y和z在三个维度上的位置和速度。线性运动模型可被用来预测球在下一帧中的位置(从而预测球的状态x),如下:
66.xk=ax
k-1
+w
k-1
67.yk=hxk+vk68.其中,
[0069][0070]
其中a是从时间(k-1)转变到时间k的状态转变矩阵。例如,x_k=1*x_(k-1)+δx,意味着x在时间k的位置是时间k-1的位置加上其速度(本示例中使用的x与上述公式中的x不同)。此外,h是大小为6x6的对角眼矩阵,wk是过程噪声变量,并且vk是观测噪声变量。具体地,h是观察模型,同时将状态空间映射到观察空间。
[0071]
在实施例中,如果预测的球位置靠近最近的检测实例,则检测结果被合并到主轨迹片段中。否则,如果连续失败数目小于一定的帧,则将预测结果用作当前球位置。如果连续失败计数大于一定的帧,则创建新的轨迹片段。在实施例中,连续失败计数可以是任何失败次数,例如五次。参考图9进一步描述这些技术。
[0072]
图6b是融合轨迹620的图示。该融合轨迹是来自球跟踪和bhp跟踪的轨迹的组合的结果,如参考图6b所述。融合轨迹结果620包括使用与图6a相同的比赛数据的球跟踪、bhp跟踪、融合和地面真实结果。
[0073]
图7是用于比赛状态检测的方法700的过程流程图。在块702,确定多个比赛状态。在块704,确定多个比赛动作。在实施例中,可以从比赛规则得出比赛状态和比赛动作。可以如下面图8-图12中所述那样来确定球位置。在块706,有限状态机被配置为基于球信息和选手信息来确定比赛的状态。响应于比赛状态,各种计算模块可以被启用或禁用以降低功率
和计算复杂度。在块708,可以基于有限状态机的输出来确定模块的配置。
[0074]
在实施例中,球和选手位置是用多相机体系结构中的球和选手检测和跟踪算法来获得的。球和选手的移动轨迹可以被获得并被用于配置有限状态机,以对比赛模式进行建模,并且检测比赛状态。一旦获得了比赛状态,计算模块就可以根据系统配置被启用或禁用,以节省成本和功率。同样,虽然美式橄榄球在此被用作示例,但本技术也适用于其他体育运动。这些体育运动可包括例如英式足球(足球)和篮球。
[0075]
实现如本文所述的准确和实时的低时延比赛状态检测使得能够进行复杂的球跟踪,例如在美式橄榄球比赛期间发生的球跟踪。具体地,如本文所述的球跟踪在比赛的不同阶段启用正确的算法。此外,通过经由比赛状态检测来识别出有太多人出现在比赛场地上的中断时间,本技术可以在正常比赛期间而不在中断期间智能地运行选手跟踪算法。这保证了真正的跟踪,同时使得能够大大节省计算资源。在实施例中,如本文所述的球位置算法可被用于创建虚拟相机流,其中虚拟相机可经由球跟踪来始终跟随比赛中的动作。
[0076]
图8是多相机球定位方法800的过程流程图的图示。方法800包括多相机球检测与跟踪方法806、比赛状态检测方法810、多相机选手检测和跟踪方法808、持球选手检测方法814、持球选手跟踪方法816、持球选手和球位置估计方法818、以及球位置融合方法820。参考图9进一步描述球位置融合方法。
[0077]
在块802,可以从相机阵列获得多个图像。在块804,初始化球位置算法。在实施例中,球位置算法的初始化设置持球选手检测标志等于真。在实施例中,持球选手检测标志用于确定球是否被场上的选手控制。例如,在美式橄榄球进攻开始时,被称为中锋的选手控制着地面上的球,此时四分卫听得见在进攻期间要执行的打法。
[0078]
在块806,执行多相机球检测和跟踪。同时,在块808,执行多相机选手检测。再次参考块806,在多相机球检测和跟踪期间,多个算法可被用于检测和跟踪球,如上所述。在实施例中,在块806,可以用多相机方案检测球。一旦检测到球,就在局部范围中对其进行跟踪,以加速每个单一相机中的定位过程。可以在多相机框架中建立三维球位置,因为所有的相机都被很好地校准并且被外极约束(epipolar constraint)所限制。有了外极/多相机约束,就可以去除误报,并且找到唯一正确的球。外极约束使得二维和三维位置之间的转换成为可能。换句话说,世界坐标中的一个3d点可以投影到不同的2d相机上,并且3d物体的投影位置应当满足某种关系。例如,如果3d物体位置和每个相机的投影矩阵是已知的,那么物体的2d投影位置就可被确定。另外,如果相机参数和每个相机中的2d位置是已知的,那么物体的3d位置就可被确定。此外,就本文使用的而言,误报指的是一些相机中的错误检测。在每个单相机检测中,有正确检测和/或错误检测。错误检测意味着检测到的物体不是球,但检测器将其标记为球。使用单个相机很难确定球检测是否是错误的。在多相机约束下,假球通常不会在单相机视图中被检测到。因此,在单相机球检测中可以消除或去除误报检测。
[0079]
再次参考块806,多相机球检测和跟踪模块的输出是[frmno,x,y,z],其中“frmno”是与特定帧相对应的时间戳,并且“x,y,z”是世界坐标系中的三维球位置。在块806,当球在空中飞行时(如阶段2中那样),球检测准确度相当高。然而,如果球被选手持有,那么在块806,球检测准确度会降低。在示例中,块806处的球检测和跟踪可以如图1的块110处所述那样发生。
[0080]
在块806处确定的球位置和选手跟踪可以在块810被发送到比赛状态检测模块。块
810处的比赛状态检测模块可以与图1的比赛状态检测模块112相同。利用来自模块1块806的球位置,可以确定比赛状态,以及状态切换的时刻。在阶段1和阶段2中,直接球检测的输出在块806是可靠的。然而,在阶段3中,球被选手挡住了,并且由于不可见而不能被检测到。从而,为了进一步完善对球的跟踪,比赛状态检测可被用于在块812确定持球选手重检测标志的状态。来自块810的比赛状态检测信息也可以在块820被发送到球位置融合模块。
[0081]
在块808,执行多相机选手检测。在块808,检测比赛场地中的所有相机中的所有选手,并且可以跨相机和时间关联选手的id。对于选手而言,可以经由每个相机中的限界框来确定选手的位置。在块812,确定持球选手重检测标志是否等于真。如果持球选手重检测标志等于真,则过程流程继续到块814,在这里检测持球选手。如果持球选手重检测标志不等于真,则过程流程继续到块816,在这里发生持球选手跟踪。以这种方式,持球选手重检测标志表明同一持球选手控制着球。因此,在块816跟踪同一持球选手。然而,如果持球选手重检测标志被设置为真,则这表明球的控制权已被转移到另一个选手。因此,在块814,检测持球选手。
[0082]
在块814,发生持球选手检测。在美式橄榄球的示例中,当选手尝试接住球时,选手的姿态与比赛期间出现的其他姿态不同。可以基于这个姿态来确定选手接到球的时刻。以这种方式,识别一个选手接到球的时刻,并且采用选手跟踪来推断球位置。在持球选手检测模块814中,首先获得每个选手的位置,并且提取二维人类姿态并将其用于建立三维骨架,以确定该选手是否接住了球(这个选手为bhp目标)。在实施例中,可以使用回归法来检测在球周围的特定范围中具有最高置信度的持球选手。
[0083]
在块816,发生持球选手跟踪。在块816,执行单人跟踪以在每个相机中跟踪人的移动轨迹。然后在所有相机上建立三维脚中心。一旦得到持球选手的脚的三维位置,则基于持球选手的脚的位置假定球位置至少高0.5米。虽然这是一个粗略的估计,但对于相机引擎而言,其准确性是足够的。在块816,持球选手跟踪的输出是每一帧的[frmno,x,y,z]。
[0084]
在块818,确定持球选手位置和跟踪信息以及对球位置的估计。在块820,持球选手位置和跟踪信息以及对球位置的估计被传输到球位置融合模块。球轨迹融合可以如参考图9所描述那样发生。在块820处对球位置融合的输入是来自球检测与跟踪模块806和bhp检测与跟踪模块814/816的两个球移动轨迹,并且输出是在块822来自融合的连续轨迹的当前帧的球位置。详细流程图在图9中示出。
[0085]
从而,球位置融合模块将比赛状态、持球选手和球位置估计作为输入,并且输出球的轨迹。在实施例中,该轨迹是球在整个比赛场地上的三维轨迹。在块824,获得下一帧。在块826,确定是否已经达到了视频的结束。如果没有达到视频的结束,则过程流程返回到块804,在这里持球选手检测标志被设置为真。如果已经达到了视频的结束,那么过程流程继续到块828,在这里过程结束。
[0086]
这个过程流程图并不打算表明要以任何特定顺序执行示例过程800的块,或者在每一种情况中都要包括所有的块。另外,取决于具体实现方式的细节,在示例过程800内可包括任何数目的未示出的额外块。
[0087]
图9是图示出用于球位置融合的方法900的过程流程图。在实施例中,方法904球位置融合的输入是从球检测和跟踪模块和持球选手检测和跟踪模块获得的一个或多个球移动轨迹。方法或球位置融合的输出是来自融合的连续轨迹的当前帧的球位置。在实施例中,
球位置融合的输出是每一帧的特定球位置,其中在帧序列中的球位置中生成使用的连续轨迹。
[0088]
在块902,球位置融合开始。在块904,识别主轨迹片段。在实施例中,主轨迹片段是一系列帧的最长轨迹片段。在块906,获得三维球位置。在实施例中,可以从球检测模块和持球选手检测模块获得三维球位置。在块908,基于历史球位置数据预测当前帧内的球位置。在块910,识别从输入到主轨迹的最近球位置。在块912,确定预测的球位置和离输入的最近球位置之间的距离。如果该距离小于阈值,则过程流程继续到块914。如果该距离大于阈值,则过程流程继续到块916。以这种方式,如果从两个轨迹的输入获得的球位置离预测位置足够远,那么跟踪和球可能被遮挡或以某种方式不可见。在块916,确定轨迹失败,并且将失败计数递增。在块918,确定失败计数是否小于第二阈值。如果失败计数小于第二阈值,则过程流程继续到块920。在块920,中间球位置被设置为等于预测球位置。以这种方式,随机的离群数据点不会导致创建新的轨迹片段。相反,轨迹片段继续使用预测的位置。然而,如果失败计数不小于第二阈值,则过程流程继续到块922。在这种场景中,失败的数据点的数目大于第二阈值,这表明来自预测的一系列球位置。因此,在块922,创建新的轨迹片段,并且过程流程继续到块924。
[0089]
如果在块912,离输入最近的球位置和预测的球位置之间的距离小于第一阈值,则过程流程继续到块914。在块914,失败计数被清除并被设置为零。在块926,中间球位置被设置为等于离两个输入轨迹最近的球位置。以这种方式,离两个轨迹最近的球位置被用于表示球在帧中的位置。在块928,中间球位置被合并到主轨迹片段中。
[0090]
在块924,对轨迹片段集合进行过滤。就本文使用的而言,轨迹片段指的是短的轨迹。如果轨迹片段太短而不能被合并到长轨迹中,则它可被认为是错误的轨迹并且被从轨迹片段集合中去除或过滤掉。在块930,中间球位置被输出为当前帧的结果球位置。在块930,获得下一帧。在块934,确定是否达到了视频的结束。如果还没有达到视频的结束,则过程流程返回到块906。如果已达到了视频的结束,则过程流程继续到块936。在块936,球位置融合方法结束。如本文所述的轨迹融合与直接球跟踪和推断持球选手跟踪相比,能够增大轨迹准确性。
[0091]
这个过程流程图并不打算表明要以任何特定顺序执行示例过程900的块,或者在每一种情况中都要包括所有的块。另外,取决于具体实现方式的细节,在示例过程900内可包括任何数目的未示出的额外块。
[0092]
图10是用于结合球位置融合的比赛状态检测的方法1000的过程流程图。在块1002,确定帧的球信息。在实施例中,执行跟踪算法以获得多相机体系结构中的球位置。可以如下面图9和图10中描述的那样来确定球位置。在块1004,确定选手信息。在实施例中,可以经由轻量级跟踪算法来确定选手信息。在块1006,有限状态机被配置为基于球信息和选手信息来确定比赛的状态。响应于比赛状态,各种计算模块可以被启用或禁用,以降低功率和计算复杂度。
[0093]
这个过程流程图并不打算表明要以任何特定顺序执行示例过程1000的块,或者在每一种情况中都要包括所有的块。另外,取决于具体实现方式的细节,在示例过程1000内可包括任何数目的未示出的额外块。
[0094]
如本文所述,本技术使得一种有效的轨迹融合方法能够组合两个输入轨迹。如本
文所述的美式橄榄球比赛状态解析算法调用正确的球跟踪算法,并且融合所有算法的结果以输出球位置。在融合期间,执行一种高效和高准确度的球检测方法来检测空中的球。基于球检测结果,整个比赛被解析为几个逻辑阶段。对比赛的解析使得能够开发适当的算法针对每个阶段来定位球。
[0095]
根据本技术的机制可被用于通过合并新的数据来生成轨迹片段。最终轨迹片段的生成不会导致延迟,以获得平稳的结果。可以建立运动模型来预测下一帧的球位置,以满足低时延要求,以使得终端用户能够获得沉浸式的观看体验。利用球检测、持球选手跟踪和轨迹融合方法,本技术可以在整个比赛过程中找到球位置,无论球是可见的还是不可见的。当球被遮挡或以其他方式部分可观看时,例如当它被选手持有时,球可能是不可见的。
[0096]
如本文所述,球是比赛的焦点,并且许多事件/行为/策略都是基于球位置的。显然,球位置是体育分析系统中的一个基本和关键的ip。根据本技术的球检测使得能够开发出高光检测中的冻结时候、实时路径控制、高质量三维球渲染、比赛战术和表现统计,等等。
[0097]
与现有的方法相比,本技术不依赖于昂贵的光学捕捉相机系统,或者额外的传感器。本技术可以在整场比赛中以非常高的准确度和性能定位小的快速的比赛焦点。具体地,本技术使用多相机光学系统来在美式橄榄球比赛中以高且稳健的准确度定位球。大多数现有的解决方案使用传感器/激光雷达/等等,有额外的设备和同步/对准工作,而且准确度不是很高。
[0098]
现在参考图11,示出了图示出比赛状态检测和轨迹融合的框图。计算设备1100可以是例如膝上型计算机、桌面型计算机、平板计算机、移动设备、或者可穿戴设备,等等。在一些示例中,计算设备1100可以是智能相机或数字安全监控相机。计算设备1100可包括被配置为执行存储的指令的中央处理单元(central processing unit,cpu)1102,以及存储可被cpu1102执行的指令的存储器设备1104。cpu 1102可通过总线1106耦合到存储器设备1104。此外,cpu 1102可以是单核处理器、多核处理器、计算集群、或者任何数目的其他配置。此外,计算设备1100可包括多于一个cpu 1102。在一些示例中,cpu 1102可以是具有多核处理器体系结构的片上系统(system-on-chip,soc)。在一些示例中,cpu 1102可以是用于图像处理的专用数字信号处理器(digital signal processor,dsp)。存储器设备1104可包括随机访问存储器(random access memory,ram)、只读存储器(read only memory,rom)、闪存、或者任何其他适当的存储器系统。例如,存储器设备1104可包括动态随机访问存储器(dynamic random-access memory,dram)。
[0099]
计算设备1100还可包括图形处理单元(graphics processing unit,gpu)1108。如图所示,cpu 1102可通过总线1106耦合到gpu 1108。gpu 1108可被配置为在计算设备1100内执行任何数目的图形操作。例如,gpu1108可被配置为渲染或操纵图形图像、图形帧、视频等等,以被显示给计算设备1100的观看者。
[0100]
cpu 1102也可通过总线1106连接到输入/输出(i/o)设备接口1110,该接口被配置为将计算设备1100连接到一个或多个i/o设备1112。i/o设备1112可包括例如键盘和指点设备,其中指点设备可包括触摸板或者触摸屏,等等。i/o设备1112可以是计算设备1100的内置组件,或者可以是从外部连接到计算设备1100的设备。在一些示例中,存储器1104可以通过直接存储器访问(direct memory access,dma)与i/o设备1112进行通信耦合。
[0101]
cpu 1102也可通过总线1106链接到显示接口1114,该接口被配置为将计算设备
1100连接到显示设备1116。显示设备1116可包括作为计算设备1100的内置组件的显示屏幕。显示设备1116还可包括在计算设备1110内部或者从外部连接到计算设备1100的计算机监视器、电视或者投影仪,等等。显示设备1116还可包括头戴式显示器。
[0102]
计算设备1100还包括存储设备1118。存储设备1118是物理存储器,例如硬盘驱动器、光驱动器、拇指驱动器、驱动器的阵列、固态驱动器、或者这些的任何组合。存储设备1118也可包括远程存储驱动器。
[0103]
计算设备1100还可包括网络接口控制器(network interface controller,nic)1120。nic 1120可被配置为通过总线1106将计算设备1100连接到网络1122。网络1122可以是广域网(wide area network,wan)、局域网(local area network,lan)或者因特网,等等。在一些示例中,该设备可以通过无线技术与其他设备通信。例如,该设备可以经由无线局域网连接与其他设备通信。在一些示例中,该设备可以经由或类似技术与其他设备连接和通信。
[0104]
计算设备1100还包括沉浸式观看管理器1124。沉浸式观看管理器1124可被配置为使得能够从任何角度360
°
观看体育赛事。具体地,由多个相机捕捉的图像可以被处理,从而使得终端用户事实上能够体验比赛场地内的任何位置。具体地,终端用户可以在比赛中建立一视点,而不考虑用于捕捉体育赛事的图像的特定相相机置。沉浸式观看管理器1124包括球和选手跟踪器1126。球和选手跟踪器1126可以类似于图1的球和选手跟踪模块110和/或图8的球检测和跟踪806。沉浸式观看管理器还包括比赛状态检测器1128。比赛状态检测器1128可以类似于图1的比赛状态检测模块112和/或图8的比赛状态检测模块810。最后,沉浸式观看管理器还包括球轨迹融合控制器1130。球轨迹融合控制器1130可以实现球位置融合,如在图8的块820或图9的方法900处所述。
[0105]
图11的框图并不打算表明计算设备1100要包括图11中所示的所有组件。更确切地说,计算设备1100可包括更少的组件或者图11中没有图示的额外组件,例如,额外的缓冲器、额外的处理器,等等。取决于具体实现方式的细节,计算设备1100可包括图11中没有示出的任何数目的额外组件。此外,沉浸式观看管理器1124、球和选手跟踪器1126、比赛状态检测器1128或者球轨迹融合控制器1130的任何功能可以部分或全部在硬件和/或在处理器1102中实现。例如,功能可利用专用集成电路来实现,用在处理器1102中实现的逻辑来实现,或者在任何其他设备中实现。例如,沉浸式观看管理器1124的功能可以用专用集成电路、在处理器中实现的逻辑、在专门的图形处理单元(例如gpu 1108)中实现的逻辑来实现,或者在任何其他设备中实现。
[0106]
图12是示出存储用于比赛状态检测和轨迹融合的代码的计算机可读介质1200的框图。计算机可读介质1200可被处理器1202通过计算机总线1204访问。此外,计算机可读介质1200可包括被配置为引导处理器1202执行本文描述的方法的代码。在一些实施例中,计算机可读介质1200可以是非暂态计算机可读介质。在一些示例中,计算机可读介质1200可以是存储介质。
[0107]
本文论述的各种软件组件可被存储在一个或多个计算机可读介质1200上,如图12中所示。例如,跟踪模块1206可以被配置为跟踪球和选手。比赛状态模块1208可以被配置为确定比赛状态。轨迹融合模块1210可以被配置为在比赛期间融合球的两个轨迹。在实施例中,跟踪可以在比赛进行期间被反复进行,直到达到比赛的结束为止。
[0108]
图12的框图并不打算表明计算机可读介质1200要包括图12中所示的所有组件。另外,取决于具体实现方式的细节,计算机可读介质1200可包括图12中没有示出的任何数目的额外组件。
[0109]
示例
[0110]
示例1是一种用于比赛状态检测的系统。该系统包括跟踪器,用于基于来自多个相机的图像获得球位置和选手位置;融合控制器,用于组合经由所述球位置检测到的多个轨迹以获得融合轨迹;以及有限状态机,被配置为对比赛模式进行建模,其中经由作为所述有限状态机的输入的所述球位置、所述选手位置和所述融合轨迹来确定比赛状态,所述有限状态机包括:多个状态,其中所述多个状态中的每个状态是所述比赛期间的事件发生;以及多个阶段,其中每个阶段对应于从第一状态到第二状态发生的动作。
[0111]
示例2包括如示例1所述的系统,包括或不包括可选的特征。在这个示例中,至少一个模块基于由所述有限状态机确定的所述比赛的状态而被禁用。
[0112]
示例3包括如示例1至2中的任何一项所述的系统,包括或不包括可选的特征。在这个示例中,所述系统包括多个转变条件,其中所述转变条件指示出所述多个阶段中的至少一个阶段的结束。
[0113]
示例4包括如示例1至3中的任何一项所述的系统,包括或不包括可选的特征。在这个示例中,所述跟踪器在整个所述比赛期间经由直接球检测来获得所述球位置,并且所述跟踪器在持球选手持有球的情况下经由持球选手跟踪来获得所述球位置。
[0114]
示例5包括如示例1至4中的任何一项所述的系统,包括或不包括可选的特征。在这个示例中,所述融合控制器基于与预测的球轨迹的比较来组合所述多个轨迹。
[0115]
示例6包括如示例1至5中的任何一项所述的系统,包括或不包括可选的特征。在这个示例中,用于获得所述球位置的跟踪的类型是基于所述有限状态机的状态的。
[0116]
示例7包括如示例1至6中的任何一项所述的系统,包括或不包括可选的特征。在这个示例中,响应于经由光学方案的准确球检测,所述跟踪器基于检测到的球的位置来跟踪所述球。
[0117]
示例8包括如示例1至7中的任何一项所述的系统,包括或不包括可选的特征。在这个示例中,响应于在球检测期间对球的部分或完全遮挡,所述跟踪器基于由持球选手持有的球的推断位置来跟踪所述球。
[0118]
示例9包括如示例1至8中的任何一项所述的系统,包括或不包括可选的特征。在这个示例中,所述选手位置是基于在每个相机视图中应用到所述选手的限界框来确定的。
[0119]
示例10包括如示例1至9中的任何一项所述的系统,包括或不包括可选的特征。在这个示例中,所述多个状态是基于所述比赛的比赛规则的。
[0120]
示例11是一种用于比赛状态检测的方法。所述方法包括基于来自多个相机的图像获得球位置和选手位置;组合经由所述球位置检测到的多个轨迹以获得融合轨迹;并且对比赛模式进行建模,其中,经由作为有限状态机的输入的所述球位置、所述选手位置和所述融合轨迹来确定比赛状态,所述有限状态机包括:多个状态,其中所述多个状态中的每个状态是所述比赛期间的事件发生;以及多个阶段,其中每个阶段对应于从第一状态到第二状态发生的动作。
[0121]
示例12包括如示例11所述的方法,包括或不包括可选的特征。在这个示例中,至少
一个模块基于由所述有限状态机确定的所述比赛的状态而被禁用。
[0122]
示例13包括如示例11至12中的任何一项所述的方法。包括或不包括可选的特征。在这个示例中,所述方法包括多个转变条件,其中所述转变条件指示出所述多个阶段中的至少一个阶段的结束。
[0123]
示例14包括如示例11至13中的任何一项所述的方法。包括或不包括可选的特征。在这个示例中,所述跟踪器在整个所述比赛期间经由直接球检测来获得所述球位置,并且所述跟踪器在持球选手持有球的情况下经由持球选手跟踪来获得所述球位置。
[0124]
示例15包括如示例11至14中的任何一项所述的方法。包括或不包括可选的特征。在这个示例中,所述融合控制器基于与预测的球轨迹的比较来组合所述多个轨迹。
[0125]
示例16包括如示例11至15中的任何一项所述的方法。包括或不包括可选的特征。在这个示例中,用于获得所述球位置的跟踪的类型是基于所述有限状态机的状态的。
[0126]
示例17包括如示例11至16中的任何一项所述的方法。包括或不包括可选的特征。在这个示例中,响应于经由光学方案的准确球检测,所述跟踪器基于检测到的球的位置来跟踪所述球。
[0127]
示例18包括如示例11至17中的任何一项所述的方法。包括或不包括可选的特征。在这个示例中,响应于在球检测期间对球的部分或完全遮挡,所述跟踪器基于由持球选手持有的球的推断位置来跟踪所述球。
[0128]
示例19包括如示例11至18中的任何一项所述的方法。包括或不包括可选的特征。在这个示例中,所述选手位置是基于在每个相机视图中应用到所述选手的限界框来确定的。
[0129]
示例20包括如示例11至19中的任何一项所述的方法。包括或不包括可选的特征。在这个示例中,所述多个状态是基于所述比赛的比赛规则的。
[0130]
示例21是至少一个非暂态计算机可读介质。所述计算机可读介质包括指令,所述指令指挥所述处理器基于来自多个相机的图像获得球位置和选手位置;组合经由所述球位置检测到的多个轨迹以获得融合轨迹;并且对比赛模式进行建模,其中,经由作为有限状态机的输入的所述球位置、所述选手位置和所述融合轨迹来确定比赛状态,所述有限状态机包括:多个状态,其中所述多个状态中的每个状态是所述比赛期间的事件发生;以及多个阶段,其中每个阶段对应于从第一状态到第二状态发生的动作。
[0131]
示例22包括如示例21所述的计算机可读介质,包括或不包括可选的特征。在这个示例中,至少一个模块基于由所述有限状态机确定的所述比赛的状态而被禁用。
[0132]
示例23包括如示例21至22中的任何一项所述的计算机可读介质,包括或不包括可选的特征。在这个示例中,所述计算机可读介质包括多个转变条件,其中所述转变条件指示出所述多个阶段中的至少一个阶段的结束。
[0133]
示例24包括如示例21至23中的任何一项所述的计算机可读介质,包括或不包括可选的特征。在这个示例中,所述跟踪器在整个所述比赛期间经由直接球检测来获得所述球位置,并且所述跟踪器在持球选手持有球的情况下经由持球选手跟踪来获得所述球位置。
[0134]
示例25包括如示例21至24中的任何一项所述的计算机可读介质,包括或不包括可选的特征。在这个示例中,所述融合控制器基于与预测的球轨迹的比较来组合所述多个轨迹。
[0135]
在一个或多个特定方面中不需要包括本文描述和图示的所有组件、特征、结构、特性,等等。如果说明书陈述例如“可”、“可能”、“可以”或者“能够”包括某一组件、特征、结构或特性,那么并不是要求要包括该特定组件、特征、结构或特性。如果说明书或权利要求提及“一”元素,那么并不意味着只有一个该元素。如果说明书或权利要求提及“一额外”元素,那么并不排除有多于一个额外元素。
[0136]
要注意,虽然已参考特定实现方式描述了一些方面,但根据一些方面,其他实现方式是可能的。此外,不需要按图示和描述的特定方式来布置附图中图示和/或本文描述的电路元件或其他特征的布置和/或顺序。根据一些方面,许多其他布置是可能的。
[0137]
在附图中示出的每个系统中,元素在一些情况下可各自具有相同的标号或不同的标号以暗示出所表示的元素可以是不同的和/或相似的。然而,元素可灵活到足以具有不同的实现方式并且与本文示出或描述的一些或所有系统一起工作。附图中示出的各种元素可以是相同或不同的。哪一个被称为第一元素以及哪一个被称为第二元素,是任意的。
[0138]
要理解,上述示例的细节可在一个或多个方面中的任何地方被使用。例如,上文描述的计算设备的所有可选特征也可对本文描述的方法或计算机可读介质的任一者实现。此外,虽然流程图和/或状态图在本文中可能已被用于描述一些方面,但本技术并不限于这些图或者本文的相应描述。例如,流程不需要按与本文图示和描述的顺序完全相同的顺序移动经过每个图示的方框或状态。
[0139]
本技术不限于本文列出的特定细节。事实上,受益于本公开的本领域技术人员将会明白,在本技术的范围内,可做出不同于前述描述和附图的许多其他变化。因此,限定本技术的范围的是所附权利要求,包括对其的任何修改。