一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用雷达速度数据和二维图像数据的组合对于三维物体的跟踪的制作方法

2022-08-28 06:27:35 来源:中国专利 TAG:

使用雷达速度数据和二维图像数据的组合对于三维物体的跟踪


背景技术:

1.本说明书涉及使用从不同图像传感器技术获得的数据来跟踪飞行中的物体,诸如高尔夫球。
2.用于利用传感器跟踪高尔夫击球的飞行的系统和方法包括发射监视、全飞行二维(2d)跟踪和全飞行三维(3d)跟踪。常用传感器类型是相机、多普勒雷达和相控阵雷达。发射监测方法基于测量一组参数,该组参数可以在高尔夫球杆的挥杆和球杆击球后球飞行的最初几英寸期间观察到。然后使用测量的参数来使用数学和物理建模推断预期的球飞行。
3.相反,全飞行3d跟踪系统的特征在于试图跟踪高尔夫击球的全飞行而不是从发射参数推断的设计。此外,从特定角度看,全飞行2d跟踪系统跟踪高尔夫击球的形状,但是将不产生3d信息,并且通常不能用于确定关键参数,诸如球行进的距离。最后,在美国专利公开no.2019-0111315-a2中描述了使用相机和多普勒雷达数据的组合的全飞行3d跟踪。


技术实现要素:

4.本说明书描述了涉及使用从相机和雷达传感器技术获得的数据来跟踪飞行中的物体(诸如高尔夫球)的技术,并且更具体地涉及使用相机和雷达数据的组合以及用于雷达数据的两部分模型的全飞行3d跟踪系统。
5.通常,本说明书中描述的主题的一个或多个方面可以体现在一个或多个方法中,该方法包括:获得飞行中的高尔夫球的二维图像数据,二维图像数据源自相机;使用二维图像数据对飞行中的高尔夫球的二维轨迹进行建模;获得飞行中的高尔夫球的雷达速度数据,雷达速度数据源自与相机相关联的雷达设备;使用雷达速度数据对飞行中的高尔夫球的速度进行建模,其中,对高尔夫球的速度进行建模包括将多项式函数拟合到雷达速度数据的第一部分并且将指数函数拟合到雷达速度数据的第二部分;将飞行中的高尔夫球的建模的速度与飞行中的高尔夫球的建模的二维轨迹进行组合以形成飞行中的高尔夫球的三维轨迹;以及输出飞行中的高尔夫球在三维空间中的三维轨迹以用于显示。这个方面的其它实施例包括对应的系统、装置和计算机程序产品。
6.一种系统可以包括:相机;雷达设备;以及计算机,其包括硬件处理器和与硬件处理器耦合的存储器,存储器编码指令,该指令被配置为使得硬件处理器执行根据本文的任何方法的操作。雷达设备可以是被设计成提供速度数据而不是距离数据的单天线多普勒雷达设备。相机和雷达设备可以彼此对准并且集成到共享传感器壳体中。系统可以包括广播相机。此外,非暂时性计算机可读介质可以编码指令,指令使与相机和雷达设备相关联的数据处理装置执行根据本文的任何方法的操作。
7.雷达设备可以被设计成提供飞行中的高尔夫球的雷达速度数据而不是距离数据,并且组合可以包括:通过对从高尔夫球的建模的速度获得的速度值进行积分来得出距高尔夫球的径向距离;以及计算高尔夫球在空间中的三维位置,计算包括使用径向距离来得出距高尔夫球的深度距离,以及使用从建模的二维轨迹获得的水平值和垂直值以及深度距离
来至少基于相机的焦距得出距高尔夫球的水平距离和垂直距离。
8.多项式函数可以是二次函数,并且使用雷达速度数据对飞行中的高尔夫球的速度进行建模可以包括使用用于雷达速度数据的前导部分的一个或多个加权模型。将多项式函数拟合到雷达速度数据的第一部分可以包括使用随机采样来排除雷达速度数据中的异常值。
9.使用雷达速度数据对飞行中的高尔夫球的速度进行建模可以包括:将指数函数拟合到雷达速度数据的初始值以形成雷达速度数据的指数模型;使用雷达速度数据的指数模型来识别雷达速度数据的与指数模型不匹配的第一部分;执行将多项式函数拟合到雷达速度数据的第二部分的一个或多个值和雷达速度数据的第一部分,以形成多项式模型,多项式模型拟合雷达速度数据的第一部分并且在雷达速度数据的第一部分和第二部分之间的过渡点处满足雷达速度数据的指数模型;以及在从雷达设备接收到雷达速度数据中的附加值时通过执行指数函数与雷达速度数据的第二部分的拟合来更新指数模型。
10.执行将多项式函数拟合到雷达速度数据的第二部分的一个或多个值和雷达速度数据的第一部分可以包括迭代地包括雷达速度数据的第二部分的一个或多个值中的更多值,直到在过渡点处达到多项式模型和指数模型之间的连续性的阈值水平。将指数函数拟合到雷达速度数据的初始值可以包括使用随机采样来排除雷达速度数据中的异常值,并且更新指数模型包括使用指数模型来排除附加值中的一个或更多个附加值以免被包括在雷达速度数据的第二部分中。
11.使用二维图像数据对飞行中的高尔夫球的二维轨迹进行建模可以包括:得出飞行中的高尔夫球的二维轨迹的初始版本;从组合接收飞行中的高尔夫球的三维轨迹的初始版本;根据与飞行中的高尔夫球相关联的物理世界条件扩展三维空间中的三维轨迹的初始版本,以得出超出三维轨迹的初始版本的至少一个三维位置;将至少一个三维位置投影到相机的二维图像平面中以定位二维区域;以及处理二维图像数据中的二维区域以扩展飞行中的高尔夫球的二维轨迹。
12.扩展三维空间中的三维迹线的初始版本可以包括:修改与飞行中的高尔夫球相关联的物理世界条件,以形成两个或更多个物理世界条件组;根据两个或更多个物理世界条件组对高尔夫球在三维空间中的飞行进行建模,以在三维空间中生成两个或更多个球飞行;将三维空间中的两个或更多个球飞行中的每一个球飞行投影到相机的二维图像平面中,以形成飞行中的高尔夫球的两个或更多个二维路径;将两个或更多个二维路径与对应于二维轨迹的初始版本的二维图像数据的至少一部分进行比较;以及基于比较,选择两个或更多个物理世界条件组中的一个用于扩展三维空间中的三维轨迹的初始版本。此外,使用二维图像数据对飞行中的高尔夫球的二维轨迹进行建模可以包括基于三维空间中的三维轨迹的初始版本的误差估计来确定二维区域的大小。
13.最后,系统和/或编码指令的方法和操作可以包括:从相机获得二维图像数据组;使用该二维图像数据组对飞行中的物体的二维轨迹进行建模;从与相机相关联的雷达设备获得雷达速度数据组;使用该雷达速度数据组来对飞行中的物体的速度进行建模;将飞行中的物体的速度的雷达模型与飞行中的物体的二维轨迹的光学模型进行组合,以形成飞行中的物体的三维轨迹;将飞行中的物体的三维轨迹的初始部分与表示三维中的典型高尔夫球发射的数据进行比较;以及当飞行中的物体的三维轨迹的初始部分与表示三维中的典型
高尔夫球发射的数据相差阈值量时,将飞行中的物体的三维轨迹识别为不是高尔夫球。
14.可以实现本说明书中描述的主题的各种实施例以实现以下优点中的一个或多个。从雷达设备的角度来看,雷达速度数据的更准确模型使得能够实现改进的雷达数据建模,并且因此实现使用雷达数据和2d图像数据两者对飞行中的物体的改进的混合跟踪。可以改善球发射检测的准确性和飞行中球跟踪的准确性。此外,雷达速度数据的更准确模型提供了对球飞行整体的更好理解,这可以改进用于每个球飞行的所获取和呈现的数据,例如,发射球速和发射角。
15.本说明书中描述的主题的一个或多个实施例的细节在附图和以下描述中阐述。本发明的其他特征、方面和优点将从描述、附图和权利要求中变得显而易见。
附图说明
16.图1a示出执行飞行中的高尔夫球的3d跟踪的系统的示例。
17.图1b和1c是表示使用相机和多普勒雷达设备的飞行中的高尔夫球的3d跟踪的图。
18.图2a是数据处理系统的示意图。
19.图2b是表示雷达数据处理的示例的图。
20.图3a是示出如可以在图1a至2b的系统中实现的执行飞行中的高尔夫球的3d跟踪的过程的示例的流程图。
21.图3b示出从靠近雷达设备但与雷达设备间隔开的位置的高尔夫球发射的示例。
22.图3c示出图3b的高尔夫球发射的径向速度曲线的示例。
23.图4a是示出使用雷达速度数据对飞行中的高尔夫球的速度进行建模的过程的示例的流程图。
24.图4b是示出将二次函数拟合到高尔夫球飞行的前导部分的过程的示例的流程图。
25.图5a是示出使用2d图像数据和来自2d图像数据与雷达速度数据的组合的初始3d轨迹来对飞行中的高尔夫球的2d轨迹进行建模的过程的示例的流程图。
26.图5b是示出扩展3d轨迹的当前版本以便于扩展高尔夫球飞行的2d轨迹的过程的示例的流程图。
27.各附图中的相似的附图标记和名称表示相似的元件。
具体实施方式
28.图1a示出执行飞行中的高尔夫球的3d跟踪的系统的示例。系统包括至少一个传感器单元110,其与一个或多个服务器计算机120、一个或多个个人计算机122或这些的组合通信地耦合。传感器单元110包括物体跟踪相机和雷达设备(例如,多普勒雷达设备)两者。相机和雷达设备可以彼此对准并且集成到共享传感器外壳中,如图所示(注意,对准不需要精确或者以任何方式校准,在一些实施方式中,因为雷达设备不需要用于确定任何方向信息,如以下进一步详细描述的)。另外,尽管在图1a中使用物理导线/电缆来表示,但是将理解,可以使用无线技术(诸如近场通信(nfc)、蓝牙、wifi和/或一种或多种移动电话技术)来实现传感器单元110与一个或多个计算机120、122之间的通信耦合。此外,在一些实施方式中,一个或多个计算机120、122中的一个或多个可以集成到传感器单元110中。
29.在图1a的示例中,相机和雷达设备被一起集成到与附加相机130相关联的公共传
感器单元110中,并且传感器单元110和附加相机130两者都被定向朝向高尔夫球员140,高尔夫球员140已经从起始位置150将高尔夫球155击中到洞或其他目标方向上的飞行路径中。附加相机130可以是电视(tv)相机,其适于产生用于实况传输或用于记录的信号。在一些实施方式中,传感器单元110与附加相机130位于同一位置并且机械地固定到附加相机130。在其他实施方式中,传感器单元110与附加相机130在相同的一般区域中,但是不是具体地附接到它。其它变化也是可能的,诸如下文进一步详述。
30.在这些各种实施方式中,不同类型的建模用于球飞行观察的不同部分,诸如球飞行的初始部分151和稍后部分152。雷达和光学跟踪的混合将基于相机的全飞行2d跟踪与来自雷达的数据组合以产生全飞行3d跟踪。用于tv生产的高尔夫球跟踪通常需要低等待时间,以允许生产者在球降落时交换到接球相机,同时仍获得从球的开始位置150的轨迹。因此,快速地和准确地检测球发射在tv高尔夫球跟踪的情况下是重要的,但是在其他情况下也是重要的,诸如高尔夫球在高尔夫练习场击中的3d跟踪。
31.在一些实施方式中,传感器单元110和高尔夫球155的初始位置150之间的距离145是所提供的信息(例如,已知高尔夫球155被击中的预定起始点,或作为一个或多个计算机120、122的输入而输入的距离参数)。在一些实施方式中,自动地确定距离145(例如,通过使用计算机化的物体分类在图像数据中识别高尔夫球员140,使用三角学和高尔夫球员140的已知或假定高度来计算距所识别的高尔夫球员140的距离,且将到高尔夫球员140的距离视为等于距高尔夫球155的初始位置150的距离145)。注意,距离145也可以用于给出球尺寸标准以辅助在由传感器单元110生成的图像数据中识别高尔夫球150。此外,在一些实施方式中,高尔夫球的起始位置150不被传感器单元110中的相机观察到,并且起始位置150必须通过球飞行的3d路径的向后推断来确定。
32.此外,系统可以被设计成将由传感器单元110记录的球位置转换成由附加相机130获得的视频数据中的对应位置,并且使用该转换,球的飞行路径的图形表示可以被覆盖到视频数据上以用于传输和/或记录。传感器单元110的相机的视图和附加相机130之间的这种转换可以使用单应技术来执行,诸如在r.hartley&a.zisserman的2004年3月的剑桥大学出版社的第2版的计算机视觉的多视图几何学(multiple view geometry in computer vision)所描述。此外,在一些实施方式中,本系统和技术与在2011年12月13日发布的标题为“system and methods for enhancing images in a video recording of a sports event(用于增强体育赛事的视频记录中的图像的系统和方法)”的美国专利no.8,077,917中描述的2d球飞行跟踪系统和技术组合,该专利通过引用结合于此。
33.在一些实施方式中,不包括附加相机130,并且使用传感器单元110确定的3d球位置可以用于扩充其他数据或媒体。例如,所确定的3d球位置可以用于在高尔夫球155的环境的3d计算机模型124内生成球的飞行路径的3d表示。该环境可以是高尔夫球员140所站在的实际物理环境(例如,特定高尔夫球场上的特定球洞)的表示,或者该环境可以是仅存在于计算机模型124中的虚拟环境。例如,飞行无人机126可以用于建立物理高尔夫球场的3d模型,其中该3d模型然后用作显示3d球跟踪数据的虚拟环境。
34.在任何情况下,传感器单元110内的物体跟踪相机和雷达设备提供数据,使用一个或多个计算机120、122将这些数据组合以提供高尔夫球155的3d飞行跟踪。来自该混合传感器110的数据与(例如,虚拟高尔夫球场的)预定义坐标系对准,使得输出数据可以在查看之
前与(例如,来自相机130的)其他数据组合。通常,需要确定传感器单元110的位置和方向。另外,当物体跟踪相机和雷达设备不共同放置在共同外壳110中时,还需要两个传感器之间的一些参考系对准,如下面进一步详细描述的。
35.图1b是表示产生(例如,用于高尔夫球155的2d飞行跟踪的)2d图像数据165的物体跟踪相机160(例如,基于单个cmos(互补金属氧化物半导体)的数字相机)的图。图1c是表示产生飞行中的高尔夫球155的雷达数据185的多普勒雷达设备180(例如,单天线连续波(cw)或线性调频多普勒雷达设备)的图,其中雷达数据185用于补充2d图像数据165以提供完整的3d跟踪系统,其可以进行高尔夫球的全飞行3d跟踪。
36.在一些实施方式中,相机160和雷达设备180彼此附接,使得它们两者在大致相同的方向上瞄准(例如,相机160和雷达设备180可以彼此对准并且集成到共同外壳中)。在其他实施方式中,相机160和雷达设备180不彼此附接,并且不需要雷达设备180的特定定向。例如,相机160的位置和目标可以是已知的(或者从相机160的观察中确定),并且假设雷达设备180相对于相机160的相对位置是已知的,则可以容易地组合数据流165、185。尽管如此,应注意,相机160和雷达设备180两者通常都向下对准预期的高尔夫击球的路线,使得与发射监视器方法相对照,相机160和雷达设备180中的每一个都有助于球的全飞行观察,其中,相机对准球并且垂直于高尔夫击球的预期路线(即,相机仅看到球飞行的小初始部分)。
37.此外,虽然不需要共同放置和对准,但是应当注意,共同放置和对准雷达设备180和相机160,使得它们具有彼此基本上相同的位置和定向,允许系统复杂度显著降低,因为相机160和雷达设备180可以被视为提供两个不同数据流165、185的单个位置中的单个传感器设备。此外,雷达设备180可以被构建为将其读数通信到相机160(雷达数据185例如通过短串行电缆去往相机160),并且相机160中的嵌入式电路可以被更新(例如通过为相机160写入新固件)以使得那些雷达读数通过与相机160相同的api(应用编程接口)和相同的物理电缆可用。这消除了具有来自相机 雷达单元110的第二数据路径的需要,这在高尔夫球生产中是相当大的益处,其中传感器110可以部署在距tv生产设施(分析计算机可以位于其中)的一英里或更远处。
38.来自相机160的2d图像数据165用于识别相机160的2d帧170中的高尔夫球的观察162、164、166。这些观察包括球在它被击中前的初始观察162,以及球在它被击中后的飞行中观察164、166。注意,为了易于描述,仅示出了两个飞行中观察,但是在实践中,当光学子系统跟踪2d帧170内的由相机160所看到的高尔夫球的2d飞行时,将存在球的许多飞行中观察。由于相机160的帧速率(例如,30帧每秒、60帧每秒、120帧每秒等),在单次高尔夫击球的2d跟踪过程期间,高尔夫球通常将在视频流165中被观察数百次。另外,在一些实施方式中,相机160包括一个或多个输入161,以接收设置和/或编程,从而配置相机160以用于给定系统中的操作。例如,在一些实施方式中,相机具有预定帧速率,其通过输入161可编程。
39.针对飞行中观察164、166,处理2d图像数据165以确定飞行中观察164、166的角度175。在该示例中,角度175(θ1和θ2)中的每一个是相机传感器中心与相机传感器上的球观察的位置之间的角度。使用针孔模型来观察相机160,传感器区域170是相机160的一部分,但是相机还包括位于传感器前方一个焦距处的虚拟“针孔”172(由相机160的镜头创建)。所有射线在它们击中传感器之前都穿过针孔172,并且角度175是特定射线与穿过针孔172并击中传感器中心的参考垂直射线之间的(3d中的)角度。因此,角度175是与飞行中的观察164、
166相关联的“观察射线”和传感器区域170的中心之间的角度,与由相机镜头创建的虚拟针孔172有关(相机160的焦距是从传感器平面170到针孔172的距离)。
40.可以使用其它角度。重点是2d图像跟踪子系统用于确定到球观察的角度,而不是使用雷达数据来确定这样的角度。这允许雷达设备180是简单得多的设备,潜在地包括仅提供速度信息的雷达设备(注意,仅速度雷达设备通常比提供距离信息的雷达设备更简单且更便宜)。在一些实施方式中,雷达设备180是相控阵雷达设备,但是即使在这样的情况下,也不依赖于相控阵雷达设备180来准确地测量到球的角度,这允许雷达设备180被小型化,并且天线阵列(当被使用时)不需要具有能够准确地测量角度的特定宽度和高度。由于系统的角分辨率由相机160提供,所以可以容易地检测关于球飞行的形状的细节,而无需使用更大和/或更复杂的雷达设备180。
41.在一些实施方式中,雷达设备180是仅提供速度数据185的单天线雷达设备(例如,不知道到物体的角度或距离的差拍传感器)。在一些实施方式中,雷达设备180是cw多普勒雷达设备。在一些实施方式中,雷达设备180提供距离数据185。在各种实施方式中,雷达设备180可以是脉冲雷达设备、调频连续波(fmcw)雷达设备、相控阵雷达设备等。在一些实施方式中,雷达设备180提供关于物体的角度数据185。
42.在一些实施方式中,通过每秒多次轮询雷达设备180来从雷达设备180收集数据185。此外,雷达设备180可以包括一个或多个输入181,以接收设置和/或编程来配置雷达设备180以在给定系统中操作。例如,可以通过输入181在雷达设备180中输入设置,使得设备180将报告每次测量的一个速度读数。作为另一个示例,当雷达设备180包括确定到球的角度的能力时,雷达设备180可以通过输入181被编程,以便控制角度信息的使用,以将雷达波束瞄准在正被跟踪的物体的方向上。注意,即使在这种情况下,用于确定3d位置的到球的角度仍将使用图像数据165来确定,因为该数据将提供更好的角分辨率。
43.雷达设备180通过在球飞行经过雷达设备180前面的空间190时提供球的测量182、184、186、188来检测球的飞行。如上所述,这些测量182、184、186、188可以包括速度测量或距离测量。在任一情况下,由于相机160的帧速率与雷达设备180的测量定时之间的差异,或者由于雷达设备180提供的数据185中的间隙,通常将不存在与相机观察164、166完全相同的时间可用的雷达数据。为了解决这个问题,可以对测量182、184、186、188使用插值技术以得出与相机观察164、166匹配的中间数据点194、196。
44.如将理解的,由于数据点194、196与相机观察164、166匹配,所以这些数据点194、196之间的时间198等于相机160的预定帧速率的倒数,其有助于两个数据流165、185的组合过程。在一些实施方式中,曲线拟合技术用于将雷达数据185推断至用于物体(例如,高尔夫球)的时间的连续函数192。通过将曲线拟合到数据并且当附加数据进入时潜在地更新该曲线拟合,可以通过将时间值插入到连续函数192中容易地获得任何时间点的雷达测量。此外,在一些实施方式中,除了根据雷达数据185构建球速的模型之外,还根据2d图像数据165构建球的2d路径的模型。
45.图2a是包括数据处理装置200的数据处理系统的示意图,该数据处理装置200可以被编程为客户端或服务器。数据处理设备200通过网络280与一个或多个计算机290连接。虽然在图2a中仅示出了一个计算机作为数据处理装置200,但是可以使用多个计算机。因此,图1a的计算机120、122中的一个或多个可以使用数据处理装置200来实现。
46.数据处理装置200包括各种软件模块,其可以分布在应用层和操作系统之间。这些可以包括可执行和/或可解释的软件程序或库,包括作为其中分析和组合相机和雷达数据的3d物体飞行跟踪系统操作的程序230,并且雷达数据使用两部分雷达模型来建模,如本文所述。所使用的软件模块的数量可以从一个实施方式到另一个实施方式而变化。此外,软件模块可以分布在通过一个或多个计算机网络或其他合适的通信网络连接的一个或多个数据处理装置上。
47.数据处理装置200还包括硬件或固件设备,其包括一个或多个硬件处理器212、一个或多个附加设备214、计算机可读介质216、通信接口218和一个或多个用户接口设备220。每个处理器212能够处理用于在数据处理装置200内执行的指令。在一些实施方式中,处理器212是单线程处理器或多线程处理器。每个处理器212能够处理存储在计算机可读介质216上或在存储设备(诸如附加设备214中的一个)上的指令。数据处理装置200使用其通信接口218,例如通过网络280,与一个或多个计算机290通信。因此,在各种实施方式中,所描述的过程可以并行或串行地在单核或多核计算机器上和/或在计算机集群/云等上运行。
48.用户接口设备220的示例包括显示器、触摸屏显示器、相机、雷达设备、扬声器、麦克风、触觉反馈设备、键盘和鼠标。数据处理装置200可以例如在计算机可读介质216或一个或多个附加设备214(例如软盘设备、硬盘设备、光盘设备、磁带设备和固态存储器设备中的一个或多个)上存储实现与本文描述的模块相关联的操作的指令。
49.为了获得雷达和相机数据,数据处理装置200包括一个或多个通信接口218,诸如用于以上结合图1a描述的有线或无线技术的接口。在一些实施方式中,数据处理装置200还包括相机160和雷达设备180(例如,集成到单个壳体110中),在这种情况下,相机160和雷达设备180还形成用于获得雷达和相机数据的结构的一部分。例如,在一些实施方式中,单个装置200包括单个相机160、单天线多普勒雷达设备180和计算机,该计算机被编程为检索、分析、内插(根据需要)以及混合相机和雷达数据,以在物体(例如,高尔夫球)在3d飞行跟踪装置200的前面飞行时形成该物体在三维空间中的三维位置信息。
50.当雷达数据仅提供球速时,由雷达设备所报告的球速将(由于多普勒效应的性质)不表示球通过空气的实际速度。而是,雷达数据将对应于球自身与雷达设备的距离的径向速度。设想在距雷达设备的某一距离r处的圆,并且当球沿着该圆的周界行进时,雷达设备将报告零径向速度,因为球本身没有距雷达设备的距离。然而,如果球在任何其它路径上行进,则距雷达设备的距离将改变,雷达多普勒频移将检测到该距离改变的速度,并且雷达设备将报告该径向速度。
51.图2b是表示雷达数据处理的示例的图。雷达天线260在特定时间与高尔夫球250相距距离265。使用雷达天线260获得的速度测量是径向速度232,但是这仅仅是球250的速度234沿着球轨迹236的径向分量。使用雷达天线260获得的速度测量不包括切向速度分量238。由于球的每个相机观察之间的时间是已知的(如上所述,其由相机帧速率确定),所以根据以下等式,每个观察的径向速度232可以用于确定球250和雷达设备(以及因此相机,例如当与雷达设备共同放置时)之间的距离对于球的每个新观察如何增加:
52.(1)rn=r
n-1
sn*dt,
53.其中rn是在观察n处距雷达的距离,sn是在观察n处的径向速度,并且dt是任何一对连续观察之间的时间。r0是球被撞击之前球和雷达之间的距离。r0优选在球被撞击之前被确
定,因为它通常是对球的第一观察的距离计算的输入。存在几种确定或估计该距离的可能方式。例如,相机和高尔夫球之间的距离在被使用之前可以手动测量并且将其输入到系统中,或者该距离可以通过观察到的球的尺寸和/或高尔夫球员在相机数据中确定。此外,为了便于解释,上面的等式(1)示例示出了线性插值,但是如将理解的,可以使用数据的指数和多项式插值。
54.一旦在给定观察下,雷达/相机与球250之间的距离r是已知的,例如,使用等式(1)和程序230中的迭代处理,球250的3d位置可以使用得出的径向距离265和相机观察的细节来确定,诸如通过使用程序230中的以下线性代数:
55.(2)zn=rn*cos(θn),
56.(3)xn=zn*dxn/f,以及
57.(4)yn=zn*dyn/f,
58.其中,n是观察数,f是相机光学器件的焦距(例如,以像素测量),θ是相机传感器中心和相机传感器上的球观察的位置之间的角度,dx是传感器上的球位置和传感器中心之间的水平偏移(例如,以像素为单位),并且dy是传感器上的球位置和传感器中心之间的垂直偏移(例如,以像素为单位)。注意,(xn,yn,zn)描述在观察数n处的球的3d位置,因此高尔夫球250的整个飞行可以在3d坐标中描述。在该示例中,坐标系将使其原点位于共同放置的雷达和相机处,z轴将指向相机的方向,x轴将是水平的从左到右,并且y轴将垂直于z轴而向下指向。取决于图像和相机在最终坐标系中的定向,其他布置也是可能的。例如,图像的原点可以在左上角,在这种情况下,y指向下而x指向右。然而,仅翻转y也将翻转系统的用手习惯,这可能引入给定实施方式的复杂化,例如,opengl已经z翻转而不是y(即,相机正向下看负z轴,并且y正向上指,并且x向右),并且虽然数学文献经常使用右手系统,但是一些代码,例如directx,可选地使用左手系统。
59.如将理解的,坐标系从上述针孔相机模型中推导。另外,在一些实施方式中,针对坐标系统选择不同于相机正指向的角度的特定方向。例如,如果轨迹数据将由诸如tv广播系统或虚拟游戏环境系统的另一系统使用,则重要的是建立对坐标系的方向以及它如何与真实世界相关的共同理解。这可以使用已知的坐标变换技术来实现。例如,可以对相机视图中的目标物体达成一致,并且该目标的方向然后可以用于定义坐标系的“北”。旋转坐标系以匹配所选择的目标可以涉及确定目标相对于相机中心在水平和垂直平面中的角度,然后旋转输出数据以补偿这些角度。假设相机系统的焦距和像素尺寸是已知的,则可以容易地从针孔相机模型推导目标角度。针对关于坐标系变换的附加细节,参见r.hartley&a.zisserman的2004年3月的剑桥大学出版社的第2版的计算机视觉的多视图几何学(multiple view geometry in computer vision)。
60.尽管上述示例集中于雷达设备仅测量速度的共同放置的相机和雷达,但是其他实施方式也是可能的。雷达设备180可以与用于2d跟踪的相机160分离。当雷达设备180和相机160不在同一点时,类似但稍微更复杂的计算用于混合雷达和相机数据,但使用本文描述的相同基本原理。注意,相机160和雷达设备180都应该被定位成使得它们有相当大的机会捕获球飞行的主要部分。实际上,传感器160、180都应定位在高尔夫球员附近,并且瞄准“沿高尔夫击球的线”向下。
61.当雷达设备180和相机160不在相同位置时,它们的数据可以如下组合。雷达数据
用于跟踪在每个时间点的雷达设备180和球之间的距离r。该信息可以被看作半径为r的3d球体,并且雷达指示该球位于该球体表面上的某处。同时,相机160跟踪相同的球,并且知道对于每个时间点的相机160和球之间的直线的角度(β和γ)。如果雷达设备180和相机160在3d空间中的位置都是已知的并且相机160指向的角度是已知的,则可以通过使用适当的数学计算得出雷达设备180周围的球体与相机160和球之间的直线之间的交点来得出球的3d位置。在一些情况下,该线将与球体相交两次,并且试探法可以用于确定两个相交中的哪个相交表示真实的球位置。
62.图3a是示出了如可以在图1a至2b的系统中实现的执行飞行中的高尔夫球的3d跟踪的过程的示例的流程图。(例如,通过数据处理装置200)获得302飞行中的高尔夫球的二维图像数据(例如,来自相机160)和雷达速度数据(例如,来自雷达设备180)。在一些实施方式中,直接从雷达设备接收雷达速度数据(例如,当雷达设备是输出速度数据的单天线多普勒雷达设备时)。在一些实施方式中,雷达设备提供除了速度数据之外的距离数据,并且速度数据可以从雷达设备输出提取。
63.(例如,通过数据处理装置200)分析所获得的数据以识别304高尔夫击球。在一些实施方式中,将雷达数据与一个或多个标准进行比较以识别高尔夫击球,诸如指示雷达时间序列仅可以在特定速度范围中开始的球速度标准,其对应于可能用于刚被击中的高尔夫球的速度范围(例如,22至112米/秒)。因此,可以容易地忽略以低速飞行的远距离高尔夫击球以及其它物体,诸如鸟和飞机。可以在一系列雷达测量中使用附加标准,因为这些测量实时被接收。例如,高尔夫击球的雷达测量系列应当具有随时间减小的速度,并且这一事实可以用于在雷达数据中识别高尔夫击球。
64.在一些实施方式中,多普勒雷达设备以固定速率提供雷达读数,其中一些可以是空读数,即,当雷达不跟踪任何东西时。除了考虑球速标准以排除未落入高尔夫球发射的合理范围内的速度读数之外,如上所述,可以考虑各种因素。来自同一高尔夫球的速度读数不应被看作是新发射,因此,在雷达数据中的验证的球发射之后继续到来的速度读数可以与该球发射的先前速度读数进行比较,并且虽然那些速度读数具有足够相似的径向速度,但是该数据可能是同一球发射的一部分。此外,在雷达在高尔夫球杆或在背景中飞行的另一球上拾取的情况下,应当小心,以允许在不是来自高尔夫球的若干其他雷达读数的中间的发射。
65.这可以通过为新发射寻找足够大的径向速度跳跃来实现。仅仅寻找径向速度的变化是不够的,因为可能存在两次连续的球发射,其中第一次发射的最后读数与第二次发射的初始发射速度匹配。在这种情况下,可以在最后接受的读数和潜在的发射之间的空读数的最小持续时间内进行检查。对于除了cw型雷达之外的雷达设备,可以比较每次测量报告单个物体速度(一次一个读数,连续地),时间上接近的多个(例如,五个或更多个)读数(例如,检查速度和/或空间接近度,取决于雷达设备是否提供距离信息)以检测球发射。因此,每次测量报告多个物体速度(和距离)的fmcw型雷达可以用于通过检查彼此足够接近的读数来检测球发射,在指定阈值内具有下降或倾斜的径向速度(取决于预期的前同步码效应)和增加的径向距离。
66.为了防止异常值生成假的球发射,可以将异常值拒绝连同与用于限制速度的减速和加速的雷达模型一起使用。注意,需要速度的加速来处理前导,如以下进一步详细描述
的。此外,应当注意,虽然在图3a中将高尔夫球的速度的建模308呈现为在检测到高尔夫击球之后发生,但是雷达数据的一个或多个模型用于识别304高尔夫击球并且之后跟踪高尔夫击球。因此,获得302图像数据和雷达数据可以是继续添加要由建模306、308和组合310使用的新数据的正在进行的过程。
67.在任何情况下,使用雷达速度数据的模型,可以检查每个雷达读数,以查看它是否是其相邻读数中的异常值(例如,每个读数距离先前读数最多每秒5米),并且如果大多数周围读数可以是相同模型的球发射的一部分,则雷达读数是可能的发射,否则可以丢弃雷达读数。可以丢弃孤立的读数;换句话说,雷达发射可能需要最小数量的附近匹配读数。注意,在识别发射时和在已经验证发射之后,可以使用各种类型的异常值拒绝;例如,与模型相距超过两个、三个或四个标准偏差的任何读数可被认为是异常值。
68.无论原始数据的来源如何,都应当对其进行过滤以避免破坏模型。当使用雷达光学混合器跟踪高尔夫球时,向两个模型中的任一个添加异常值可以导致提早失去球的跟踪,或仅产生错误的轨迹。为了产生与轨迹相关联的参数,诸如发射速度和角度,以及进位,需要精确的3d路径。因此,重要的是利用所有可用的数据,而不用异常值破坏它。错误位置中的单个异常值能够使任一模型偏离路线,并且这在所呈现的参数中将非常明显。
69.在理想情况下,球速应当随着t的增加而严格地减小,其中t是从发射时间开始的持续时间。但是,原始数据是噪声信号,因此,不是对球速标准进行这种直接检查,而是可以对下降趋势进行检查。例如,在发射后0和0.4秒之间,可以在十个均匀分布的样本上执行线性拟合,并且来自该线性拟合的线的斜率应当随着t的增加而减小。然而,由于异常值和/或不完美的前导,这并不总是可能的。因此,可以检查与线性拟合的标准偏差,如果在异常值拒绝后该偏差过大,则数据可能是假发射。
70.另外,虽然在雷达数据中仍然可以识别假球发射,但是这些将是相对罕见的,并且可以通过使用来自相机的图像数据来交叉检查球发射而防止引起问题。可以分析2d图像数据以识别高尔夫击球的相机观察。例如,可以(例如,使用物体分类器)实时处理流式相机数据165以识别视频流中的各种物体(例如,高尔夫球员和候选球),并且当跨一组视频帧的一系列候选球满足或超过用于高尔夫击球的一个或多个建立的标准时,可以识别304高尔夫击球。在一些实施方式中,分析涉及自动调整一个或多个阈值(例如,每像素的优化阈值)以最大化感兴趣物体(例如,看起来像高尔夫球的物体)的灵敏度以及实时过滤以使得能够在接收到高尔夫击球的所有2d图像数据之前识别高尔夫击球。此外,当在雷达数据中识别高尔夫击球时,可以发送信号以触发对在分析2d图像数据时使用的一个或多个标准的调整。在一些实施方式中,仅使用雷达读数识别潜在球发射,然后将这些潜在球发射的时间戳提供给光学跟踪部件,该光学跟踪部件然后可以应用其自身的球发射标准以确认球发射是真实的。关于进一步的细节,参见在2019年4月18日公布的标题为“system and method for three dimensional object tracking using combination of radar and image data(使用雷达与图像数据的组合的三维物体跟踪的系统与方法)”的美国专利公开no.2019-0111315,该专利申请通过引用结合于此。
71.使用2d图像数据对飞行中的高尔夫球的2d轨迹进行建模306。在一些实施方式中,模型完全是二维的,其中2d跟踪通过估计球应当在2d帧中的何处并且搜索2d观察的预期区域来工作。虽然这是有效的,但是一旦高尔夫球被投影到相机框架的图像平面上,就可能难
以对高尔夫球的飞行进行建模。因此,为了使2d跟踪正确地工作,应当适当地接受如果飞行完全以2d建模则允许下一次观察在哪里。此外,因为接受异常值2d观察可以导致问题,所以可以通过在搜索下一观察时施加更严格的限制来改进模型。在一些实施方式中,这通过以3d而不是2d来对飞行进行建模来实现,因为以3d来定义高尔夫击球的形状要容易得多,因此可以使模型好得多。下面结合图5a和5b提供关于这种实施方式的进一步细节。
72.此外,注意,球观察发生在不同的时刻,如由相机的帧速率和在一个或多个帧中对高尔夫球的(多个)潜在丢失检测所确定的。因此,球飞行的模型可以用于填充球观察之间的空白,从而在2d图像数据中限定高尔夫球的2d路径(或轨迹)。注意,这可以便于将2d图像数据与雷达数据进行组合,因为相机和雷达设备不一定以相同的速率产生数据。因此,不能保证2d观察具有相同时间点的匹配雷达读数。雷达和相机也不能保证观察高尔夫球的整个飞行。
73.通常,相机或雷达设备中的一个在另一个之前失去对球的跟踪,和/或在球飞行期间持续较短时间。因此,可以使用2d观察和雷达读数的模型。用于2d观察的模型被称为光学模型,并且用于雷达读数的模型被称为雷达模型。为了及时连接这两个模型,对于2d观察和雷达读数具有共同时间戳是有帮助的。为了得到这样的时间戳,需要相机产生帧所需的持续时间与雷达设备产生雷达读数所需的持续时间之间的精确差异。这个差异可以通过实验针对相机和雷达设备的特定组合推导。通常,雷达读数和相机的2d观察之间的定时应当同步,使得光学模型和雷达模型能够在共享的时间维度中操作。
74.使用雷达速度数据和第一和第二模型部分对飞行中的高尔夫球的速度进行建模308。如上所述,使用雷达天线260所获得的速度测量不包括切向速度分量238。因此,雷达模型对高尔夫球的径向速度而不是实际速度进行建模。因此,将高尔夫球的速度建模为下降指数函数的简单雷达模型相对于速度数据将不是完全准确的。
75.图3b示出了来自与雷达设备330相邻但与其隔开(例如,距离十米)的位置340的高尔夫球发射的示例。在图3b中,每个同心圆332表示围绕雷达设备330的半径的附加三米,并且高尔夫击球342表示来自位置340的以75m/s的初始球速和30m/s2的阻力的高尔夫球发射。如图所示,高尔夫击球342相对于雷达设备330的位置和方向意味着,即使高尔夫球在从位置340被击中之后立即以75m/s的速度行进,高尔夫球的径向速度(其沿着从高尔夫球到雷达设备330的视线的速度)几乎是零。因此,在球发射后的短持续时间内,由于飞行相对于雷达设备的位置的几何形状,高尔夫球的径向速度实际上快速增加。由于飞行相对于雷达设备的位置的几何形状,除了在发射之后的短持续时间之外,雷达速度数据表现得很像指数模型。
76.图3c示出了图3b的高尔夫球发射的径向速度曲线350的示例。在图3c中,x轴表示以秒为单位的时间,并且y轴表示以米/秒(m/s)为单位的径向速度。如图所示,在球飞行的第一个0.4秒内,在径向速度开始缓慢下降之前,径向速度快速增加。直接在发射之后,径向速度从指数函数的这种初始变化在此被称为前导,并且它对雷达模型的影响被称为前导效应。注意,在该示例中,前导持续约0.4秒,但是前导的长度将取决于发射位置和雷达设备的相对位置以及取决于高尔夫击球的方向而变化。当球靠近雷达时,前导效应是最明显的,并且在小于一秒之后通常是不显著的。
77.通常,每次高尔夫击球将具有生成一定量的前导效应的第一部分352和可以被建
模为指数曲线的第二部分354。因此,雷达模型可以从以下两个较简单模型构建:前导模型和指数模型。再次参考图3a,建模308高尔夫球的速度可以包括将多项式函数拟合到雷达速度数据的第一部分,并且将指数函数拟合到雷达速度数据的第二部分。在一些实施方式中,多项式函数是二次函数(二次多项式函数)。在一些实施方式中,使用更高次多项式拟合,只要足够的雷达读数可用。
78.为了将两个模型用作单个模型,应当得出从前导到指数模型的过渡点(也称为前导分割点)。当二次多项式用于建模每个高尔夫击球的前导时,模型的前导部分可能不能很好地拟合过渡点附近的雷达读数。因此,为了在两个模型之间获得更干净过渡,前导可以从指数模型“借用”几个雷达读数。注意,这种借用意味着来自第二部分的雷达读数用于形成前导模型,即使它们不是前导的一部分。在一些实施方式中,建模308包括使用用于雷达速度数据的前导部分的加权模型。使用加权模型作为前导模型对于得到到指数模型的干净过渡和强制更好拟合是有用的。
79.例如,加权模型可以是将雷达读数拟合到表示前导的(二次)函数的模型,以便(1)在过渡点处将前导模型与指数模型对准,以及(2)不仅使用过渡点附近的数据点,其通常将不产生可用函数。因此,加权模型(1)在靠近过渡点的数据点上放置更高值,以及(2)还在最早数据点上放置比较晚的数据点更高的值,因为这些影响前导的结果最大。因此,发射附近和过渡点附近的雷达读数的值大于这两者之间的数据点。加权拟合模型可以用于通过对这些数据点施加更多权重来实现这一点;因此,当产生拟合时,算法将优选使用这些雷达读数。这种加权拟合的示例是加权最小二乘法。下面结合图4a至4b提供关于对雷达速度数据进行建模的进一步细节。
80.将飞行中的高尔夫球的速度的雷达模型与飞行中的高尔夫球的二维轨迹的光学模型进行组合310,以形成飞行中的高尔夫球的三维轨迹。这可以涉及通过对从高尔夫球的速度的雷达模型获得的速度值进行积分来得出到高尔夫球的径向距离,并且计算高尔夫球在空间中的三维位置。该计算可以包括使用径向距离来得出距高尔夫球的深度距离,以及使用从光学模型获得的水平值和垂直值(角度或表示角度的数据)以及深度距离来至少基于相机的焦距来得出距高尔夫球的水平距离和垂直距离。
81.该过程可以根据射线和距离来理解。内部相机参数可以与2d像素坐标一起使用,以在相机的坐标系中产生穿过原点的3d射线。在一般情况下,该射线在距离雷达的任何给定距离处最多具有两个3d点。在简单情况下,其中相机和雷达被定位在相同位置,正好有两个这样的3d点,其中仅一个在相机的前面。因此,对于每个2d观察和距离对,存在单个可能的3d观察。如果忽略了相机镜头中的失真,则至少使用(内部)相机参数的芯片尺寸、焦距和像素尺寸。进一步的细节在上面结合等式(1)至(4)提供。此外,雷达设备不需要与相机共同放置。
82.输出312在3d空间中飞行的高尔夫球的3d轨迹以用于显示。这可以涉及将3d轨迹直接输出到显示设备,或者将3d轨迹发送到将显示关于3d轨迹的信息的另一计算机或过程。例如,3d轨迹数据可以被输出到一个或多个计算机120、122,以包括在高尔夫球飞行的tv广播中。作为另一示例,3d踪迹数据可以被输出到一个或多个计算机120、122以包括在虚拟环境中。虚拟环境可以是例如由无人机126生成的高尔夫球场的计算机模型,其可以作为tv广播的部分而显示,或作为模拟高尔夫游戏的部分而显示在高尔夫练习场设施处的显示
设备上,其中来自实际高尔夫击球的数据被集成到模拟高尔夫游戏中。此外,在一些情况下,模拟高尔夫游戏不需要与传统的高尔夫游戏匹配或包括传统高尔夫球场的任何模型。虚拟环境可以表示完全人工游戏世界,其中来自实际高尔夫击球的数据被集成到人工游戏世界的3d空间中。
83.此外,如上所述,获得302图像数据和雷达数据可以是继续添加要由建模306、308和组合310使用的新数据的正在进行中的过程。同样,输出312可以是在使用建模306、308和组合310来主动跟踪高尔夫击球的同时继续输出3d轨迹数据的正在进行中的过程。类似地,在高尔夫球发射被验证之前,由建模306、308和/或组合310操作生成的输出数据可以用作高尔夫击球发射检测304的输入,从而提高捕捉假球发射(不是高尔夫球的检测到的飞行中的物体)的能力。
84.例如,(通过获得302 2d图像数据和雷达数据,使用2d图像数据对飞行中的物体的2d轨迹进行建模306,使用雷达速度数据对飞行中的物体的速度可进行建模308,以及将物体的速度的雷达模型与物体的2d轨迹的光学模型进行组合310而产生的)3d轨迹的初始部分可以与球发射标准进行比较360。该球发射标准表示典型高尔夫球发射在三维中的一个或多个特征,因此与仅在来自相机的图像数据的2d空间中应用的球发射标准或应用于来自雷达设备的速度数据的球发射标准不同。如果3d轨迹的初始部分至少相差362阈值量,则这将飞行中的物体的3d轨迹识别为不是高尔夫球。因此,基于在3d空间中应用的标准,先前识别的球发射可以被拒绝作为高尔夫球发射,或者先前识别的球发射可以基于在3d空间中应用的标准被验证为高尔夫球发射。
85.例如,可以通过计算以下两条射线之间的角度来进行比较:第一射线r1,其由3d数据点p0和p1产生,以及第二射线r2,其由3d数据点p1和p2产生。其中,p0是发射位置,p1是发射后的x秒,p2是发射后的2x秒。如果r1和r2之间的角度超过y度,则轨迹不足够直以被认为是高尔夫击球,因此物体被识别为不是高尔夫球。如果r1和r2之间的角度小于或等于y度,则轨迹足够直以被认为是高尔夫击球,因此物体被识别为高尔夫球并且进一步被跟踪。在一些实施方式中,x被设置在0.2秒和0.25秒之间,并且y被设置在1度和5度之间。注意,x和y参数可以在适当的调谐和测试之后基于给定实施方式来设置。此外,这些值可以在接收到进一步的数据之后(诸如当来自更远(例如,来自高尔夫球场上的球道)的3d信息指示击球不长时)对于给定高尔夫击球改变,意味着可以有更大的角度来提早击球。
86.此外,如果已经确定了3d路径,则在两个观察值之间的内插或估计在任何给定时间点球应该在2d和3d中的何处的推断(例如,向后至发射位置)更容易进行。当发射位置已知时,使用确定的3d路径获得发射时间的良好估计也更简单,并且当计算发射速度时知道发射时间是重要的,因为球以大约每小时四十五英里每秒减速,因此二十二毫秒的发射时间错误导致大约每小时一英里的误差,即使对于球的飞行有了完美的理解。
87.除了使用来自过程操作306、308、310的输出数据来改进诸如以上所讨论的高尔夫击球检测304之外,来自过程操作302、306、308、310中的一个或多个的输出数据370可以用作输入来改进一个或多个其他过程操作302、306、308、310的功能。例如,2d球追踪器可以使用来自雷达设备的径向速度读数(而不是固定参数球速度)来形成3d中的球运动的快速估计,然后可以将其投影回相机的2d图像平面中以帮助识别球并且跟踪它在2d中的运动。下面结合图5b提供关于使用3d运动估计来执行2d跟踪的进一步细节,但是应当注意,不需要
为该雷达速度数据构造雷达读数的高级和精确模型以对2d跟踪器有用。
88.例如,雷达读数可以被积分以产生围绕雷达设备的球体,其中球应该位于表面上的某处,并且相机的投影矩阵可以用于将2d观察扩展到从相机扩展的射线中以产生其中射线与球体相交的3d观察。这些3d观察然后可以与3d中的球飞行的现有物理模型一起使用。注意,所使用的球体组将可能变化,因为积分应当在球飞行的发射时间开始。在其它实施方式中,雷达读数的高级和精确的模型用于确定在2d跟踪中使用的球的速度。
89.图4a是示出使用雷达速度数据对飞行中的高尔夫球的速度进行建模的过程的示例(即建模308的示例)的流程图。指数函数被拟合400到雷达速度数据的初始值以形成雷达速度数据的指数模型。将指数函数拟合400到雷达速度数据的初始值可以涉及使用随机采样来排除雷达速度数据中的异常值。例如,随机采样一致性(ransac)算法可以用于避免异常值并且帮助改进拟合。可以使用诸如试探法或硬编码异常值拒绝的其他异常值拒绝方法。而且,如果拟合产生不合理更大数量的异常值,例如,超过三分之一或超过一半的输入数据点,则可以拒绝拟合。
90.使用405雷达速度数据的这个(初始)指数模型以识别雷达速度数据的第一部分(其不匹配指数模型),即,以得出前导分割点。为了放置前导分割点,需要开始位置。可以使用指数拟合模型得出这样的位置,从足够远的后部开始,其不可能有前导。例如,在大多数实施方式中,前导效应在球发射之后0.5秒时可忽略,因此可以假定分割点在该时间之前出现。一旦得出初始指数模型,就将该模型向后扩展到前导,同时跟踪模型与下一点匹配得有多好。下面以表格形式示出了示例。
91.已匹配:0010001101111111索引:0123456789101112131415
92.表1
93.在表1中,如果指数拟合模型匹配雷达读数,则第一行包含1,否则包含0。第二行包含数据点索引。在这种情况下,简单地将前导分割点定义在大致索引6处,其中五分之一的雷达读数在之前与指数拟合模型匹配,并且十分之九在之后匹配。
94.一旦识别405了前导部分,就将多项式函数(例如,二次函数)拟合410到雷达速度数据的该第一部分,以形成拟合雷达速度数据的第一部分的多项式模型。拟合410还可以采用异常值拒绝,诸如随机采样以排除雷达速度数据中的异常值。例如,ransac算法可以用于构建410前导模型。可以使用诸如试探法或硬编码异常值拒绝的其他异常值拒绝方法。而且,如果拟合产生不合理更大数量的异常值,例如,超过三分之一或超过一半的输入数据点,则可以拒绝拟合。
95.此外,拟合410可以包括雷达速度数据的第二(指数)部分的一个或多个值以形成多项式模型,该多项式模型拟合雷达速度数据的第一部分并且还在雷达速度数据的第一部分和第二部分之间的过渡点处满足雷达速度数据的指数模型。在拟合410中使用来自雷达速度数据的第二(指数)部分的几个额外雷达读数有助于确保在前导分割点处的两个模型(多项式模型和指数模型)之间的紧密匹配。
96.然后,通过执行指数函数与雷达速度数据的第二部分的拟合来更新420指数模型,包括从雷达设备接收雷达速度数据中的附加值并且将其添加到第二部分。此外,在一些实施方式中,将指数函数拟合420到雷达速度数据的第二部分还包括使用随机采样来排除雷
达速度数据中的异常值。例如,ransac算法可以用于避免异常值并且帮助改进拟合。可以使用诸如试探法或硬编码异常值拒绝的其他异常值拒绝方法。而且,如果拟合产生不合理更大数量的异常值,例如,超过三分之一或超过一半的输入数据点,则可以拒绝拟合。在任何情况下,两个模型(多项式模型和指数模型)被组合以形成完整雷达模型。
97.此外,该完整雷达模型可以用于通过计算所添加的雷达读数的标准偏差来定义异常值是什么。使用标准偏差的倍数是定位异常值的快速方式;四的倍数使得假阳性非常不可能(约0.006%至4%的机会),三的倍数使得假阳性不可能(约0.3%至6.25%的机会),并且二的倍数使得假阳性稍微不可能(约5%至11.1%的机会)。这里,机会的范围取决于数据获得的正态分布与理想模型的正态分布的接近程度,并且实际上,切比雪夫不等式是机会的良好近似。注意,调整截止值允许仔细平衡拒绝正常值和接受异常值,并且使用两个到四个标准偏差作为截止值通常导致11.1%到4%的正常值被不正确地去除作为异常值。
98.标准偏差通常是非常小的数,因此具有该限制的下限是合理的;类似地,限制具有上限以避免跟随慢趋势,诸如到前导模型的过渡。对于被添加的未来点,该限制然后可以用于确定其是否匹配模型以及附近的雷达读数通常拒绝异常值。除了使用标准偏差检查异常值之外,过程可以在决定拟合是否可接受时检查异常值(被拒绝的数据点)的总数。例如,可以检查异常值的数量是否小于输入到拟合的所有数据点的一半或小于三分之一,并且还检查异常值的标准偏差以确定拟合有多好,并且因此是否接受它。
99.图4b是示出将二次函数拟合到高尔夫球飞行的前导部分的过程的示例(即拟合410的示例)的流程图。在该示例中,将多项式函数拟合到雷达速度数据的第二部分的一个或多个值和雷达速度数据的第一部分涉及迭代地包括雷达速度数据的第二部分的一个或多个值中的更多值,直到在过渡点处达到多项式模型和指数模型之间的连续性的阈值水平。另外,在一些情况下,由于前导可能远小于半秒长,所以在前导部分中可能没有足够的雷达读数单独建立多项式模型。因此,在一些实施方式中,可以在从雷达速度数据的第二部分借用任何数据点之前进行检查以查看是否存在足够数据点来构建前导模型。
100.为了创建前导模型,可以将一个或多个值从雷达速度数据的第二部分添加450到第一部分。二次函数可以拟合455到前导部分加所添加的数据值。在过渡点检查460两个雷达模型(二次模型和指数模型)之间的连续性,并且添加450更多数据值直到实现连续性的阈值水平。例如,可以比较由两个模型在过渡点处提供的标称值和一阶导数(斜率)以查看它们是否在彼此的阈值距离(s)内。在一些实施方式中,目标是单个“虚拟”函数,即c0和c1连续,即使其被建模为两个单独的函数。
101.例如,令e(t)为指数模型,p(t)为前导模型,并且t0为过渡点。然后,组合模型可以是f(t)={p(t)如果t《t0|e(t)如果t》=t0}。还假定e(t)和p(t)都是c0和c1连续。如果p(t0)=e(t0),则实现用于f的c0。但是为了避免f在t0处的尖锐边缘,还应当寻求c1连续性,这意味着p’(t0)=e’(t0),其中p’和e’分别是p和e的导数。但是由于这是两个完全不同的函数,因此对于连续性检查中的任何一个都不需要精确匹配。因此,对于ε0和ε1的足够小值,检查可以是|p(t0)-e(t0)|《ε0and|p’(t0)

e’(t0)|《ε1,其中不连续性不是那么可见。注意,更高阶的连续性检查也是可能的。连续性检查确保在两个模型之间将存在平滑的过渡。然后,输出465雷达速度数据的前导部分的二次模型,以便随后用于建模高尔夫球的全飞行。
102.图5a是示出使用2d图像数据对飞行中的高尔夫球的2d轨迹进行建模的过程的示
例(即建模306的示例)的流程图。在500中得出飞行中的高尔夫球的二维轨迹的初始版本。如上所述,这涉及识别下一帧的相机数据中的球观察。此外,注意,光学跟踪应当非常接受新球观察以适当工作,这增加了向光学模型添加异常值的风险。因此,在一些实施方式中,通过在定位异常值时避免光学模型而使用3d模型来检测异常值来改进用于光学跟踪的异常值拒绝,因为3d模型更好地描述了球如何移动。
103.因此,通过结合相机数据和雷达数据来接收505飞行中的高尔夫球的三维轨迹的初始版本。如上所述,当前雷达模型可以用于将2d球观察扩展到3d观察,并且这些3d观察然后形成3d路径的基础,其更容易使用简单3d模型扩展到未来。这种模型仅需要在未来的一秒的一小部分中是准确的,以定位下一个2d观察,这使得它较少受到物理世界条件例如风的影响。然而,在一些实施方式中,根据与飞行中的高尔夫球相关联的物理世界条件来扩展510三维空间中的三维轨迹的初始版本,以得出超出三维轨迹的初始版本的至少一个三维位置。
104.该至少一个三维位置被投影515到相机的二维图像平面中以定位二维区域。处理520二维图像数据中的二维区域,以扩展飞行中的高尔夫球的二维轨迹。注意,这可以包括基于三维空间中的三维轨迹的初始版本的误差的估计来确定二维区域的尺寸。由于球飞行在3d中被建模,所以该模型可以用于推断球应该在3d中的何处。但是由于该模型不是完美的,因此基于模型中的预期最大误差,使用建模位置周围的区域。所建模的位置及其误差产生3d形状,其可以使用相机的内部参数被投影到相机的图像平面中的2d区域中。注意,由于在这个阶段3d位置可以在相机的坐标系中,因此仅需要内部参数。然后,可以搜索2d形状以用于可能高尔夫球的2d观察。算法可以优选最接近建模位置的2d观察,并且由于不需要搜索每个图像帧的所有部分,所以可以减少图像处理时间。
105.图5b是示出扩展3d轨迹的当前版本以便于扩展高尔夫球飞行的2d轨迹的过程的示例(即扩展510、投影515和处理520的示例)的流程图。修改550与飞行中的高尔夫球相关联的物理世界条件以形成两个或更多个物理世界条件组。物理世界条件可以包括风速和风向、球旋转量、球旋转轴、温度、湿度等。注意,诸如风速和风向的一些物理世界条件可以具有由从高尔夫击球位置处的传感器接收到的数据所设置的初始值。
106.根据两个或更多个物理世界条件组对三维空间中的高尔夫球的飞行进行建模555,以生成三维空间中的两个或更多球飞行。这涉及使用物理建模器,其知道在给定一组物理世界条件的情况下球应该如何飞行通过空中。在三维空间中的两次或更多次球飞行中的每一次球飞行被投影560到相机的二维图像平面中,以形成飞行中的高尔夫球的两次或更多次二维路径。将两个或更多二维路径与对应于二维轨迹的初始版本的二维图像数据的至少一部分进行比较,并且(基于比较)选择两个或更多个物理世界条件组中的一个以用于在三维空间中扩展三维轨迹的初始版本。
107.注意,这里的选择不必是一个2d路径优于另一个的正式选择。相反,算法可以形成许多假设(关于物理世界条件的选项)并且继续处理所有现有假设直到它们由于输入数据而“失败”。注意,假设可以由于各种不同的原因而失败,但是如果在由给定假设提出的预期(推断)区域中没有观察到任何东西,则该假设将最终失败。此外,每种假设可以失败或产生进一步假设,并且大多数假设将最终失败并且通常留下用于球飞行的一个幸免最佳假设。
108.例如,每个假设可以使其2d投影被检查565以确定对于当前2d图像数据是否满足
用于发现球观察的标准。如果是,则获得570更多的2d图像数据和雷达速度数据,以用于基于该假设来在3d中建模555高尔夫球的飞行。如果不满足565用于给定假设的标准,则可以进行检查575以确定给定假设是否已失败。例如,如果对于最后四个图像帧中的给定假设没有发现球观察,则该假设已失败。在这种情况下,在算法进行到获得570更多2d图像数据和雷达速度数据之前,可以从两个或更多组物理世界条件中去除580该假设。注意,该过程也可以用于丢弃假发射;如果3d观察不能产生有效的3d轨迹,则可以将其作为假发射而丢弃。
109.如果给定假设没有被失败575,但是没有满足565标准,则可以修改550物理世界条件以试图改进3d球飞行的假设。注意,天气条件可能使得难以推断3d路径。因此,在多风天,提早对球失去跟踪对于确定飞行可能是灾难性的,并且因此同时检查关于各种物理世界条件(诸如不同的风速和风向,包括在球的飞行的不同部分期间这些风速和风向的变化)的许多不同的假设可以最大化系统准确跟踪球的能力。在一些实施方式中,相对于先前相机帧来改变和检查当前假设。在一些实施方式中,假设引发一个或多个新假设,因为当前假设在更多数据进入时可能表现得更好,而不是在更多数据进入之后被移除580。此外,在一些实施方式中,进行检查以确保假设的数量不会变得太高,否则计算机将不能处理它们。这对于较短路径是最重要的,因为不应该有许多持久的假设,例如,树叶、鸟、苍蝇或任何其它东西可以在任何时间点像高尔夫球在2d中那样移动,并且偶然地与合理的雷达读数一致,但是最终这些数据源中的任一个都应该使假设失败。因此,如果系统接收到形成超过一秒的合理的3d高尔夫球路径的2d观察和雷达读数,则其不太可能是除了真实高尔夫球之外的任何东西。
110.本说明书中描述的主题和功能操作的实施例可以在数字电子电路或计算机软件、固件或硬件中实现,其包括在本说明书中公开的结构及其结构等效形式,或它们中的一种或更多种的组合。本说明书中描述的主题的实施例可以使用在计算机可读介质上编码的计算机程序指令的一个或多个模块来实现,以由数据处理装置执行或控制其操作。计算机可读介质可以是制成品,诸如计算机系统中的硬盘驱动器或通过零售渠道销售的光盘,或者可以是嵌入式系统。计算机可读介质可以被单独获取并且随后用计算机程序指令的一个或多个模块编码,诸如通过在有线或无线网络上传送计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储设备或它们中的一个或多个的组合。
111.术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,作为示例,包括可编程处理器、计算机或多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、运行时环境的或构成其中一个或多个的组合的代码。此外,装置可以采用各种不同的计算模型基础设施,诸如网络服务、分布式计算和网格计算基础设施。
112.计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以以任何合适形式的编程语言编写,包括编译或解释语言、声明性或过程性语言,并且其可以以任何合适的形式部署,包括作为独立程序或作为模块、部件、子例程或适于在计算环境中使用的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在包含其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论程序的单个文件中或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。可
以部署计算机程序以在一个计算机或位于一个站点或分布在多个站点并通过通信网络互连的两个或更多个计算机上执行。
113.本说明书中描述的过程和逻辑流程可以通过一个或多个可编程处理器来执行,该一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能。过程和逻辑流程也可以由专用逻辑电路执行,并且该设备也可以实现为专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。
114.作为示例,适于执行计算机程序的处理器包括通用微处理器和专用微处理器,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或从两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括或可操作地联接到用于存储数据的一个或多个大容量存储设备(例如,磁、磁光盘或光盘),以从其接收数据或向其传输数据或两者。然而,计算机不必要具有这样的设备。此外,仅举几例,计算机可以嵌入另一设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏机、全球定位系统(gps)接收器或便携式存储设备(例如,通用串行总线(usb)闪存驱动器)。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,作为示例,包括半导体存储设备(例如,eprom(可擦除可编程只读存储器)、eeprom(电可擦除可编程只读存储器))和闪存设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及cd rom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或结合在专用逻辑电路中。
115.为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有:显示设备,例如lcd(液晶显示器)、oled(有机发光二极管)或其他监视器,以用于向用户显示信息;以及键盘和定点设备,例如,鼠标或轨迹球,用户可以通过它们向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
116.计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且通常通过通信网络进行交互。客户端和服务器的关系是通过在各自计算机上运行且彼此具有客户端-服务器关系的计算机程序而产生。本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端部件(例如,作为数据服务器),或者包括中间件部件(例如,应用服务器),或者包括前端部件(例如具有图形用户界面或web浏览器的客户端计算机,用户可以通过其与本说明书中描述的主题的实施例进行交互),或者一个或多个这样的后端部件、中间件部件或前端部件的任何组合。系统的部件可以通过任何形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网(例如,因特网)和对等网络(例如,ad hoc对等网络)。
117.虽然本说明书包含许多实施细节,但这些不应被解释为对本发明的范围或可要求保护的内容的限制,而是对本发明的特定实施例特有的特征的描述。在本说明书中在单独实施例的场境中描述的某些特征也可以在单个实施例中组合实施。相反,在单个实施例的场境中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实施。此外,尽管上文描述的特征可能被描述为在某些组合中起作用并且甚至最初是这样要求保护的,但在某些情况下,所要求保护的组合中的一个或多个特征可以从组合中删除,并且所要求
保护的组合可以针对子组合或子组合的变体。因此,除非另有明确说明,或者除非本领域普通技术人员的知识另有明确说明,否则上文描述的实施例的任何特征均可以与上文描述的实施例的任何其他特征组合。
118.类似地,虽然在附图中以特定顺序描绘了操作,但这不应被理解为要求以所示的特定顺序或按顺序执行这种操作或者执行所有所示操作以实现期望结果。在某些情况下,多任务和/或并行处理可能是有利的。此外,上文描述的实施例中各个系统部件的分离不应被理解为在所有实施例中都需要这种分离,而且应当理解,所描述的程序部件和系统通常可以一起集成在单个软件产品中或打包成多个软件产品。
119.因此,已经描述了本发明的特定实施例。其它实施例在以下权利要求的范围内。例如,以上描述集中于跟踪高尔夫击球,但是所描述的系统和技术也可应用于其他类型的物体飞行跟踪,诸如用于棒球或者飞碟击球,以及非体育应用。进一步,在一些实施方式中,跟踪“飞行中”的物体可以包括在物体弹回和/或沿地面滚动时跟踪物体。此外,可以以不同的顺序执行权利要求书中所述的动作,并且仍然实现期望的结果。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献