动态创建个人化锻炼视频的系统和方法与流程

文档序号:17120895发布日期:2019-03-15 23:47阅读:245来源:国知局
动态创建个人化锻炼视频的系统和方法与流程

本申请要求2016年3月8日提交的题为“systemsandmethodsofdynamicallycreatingapersonalizedworkoutvideo”的美国临时专利申请62/305,062的权益。每个上述母案专利申请的全部内容以引用方式并入本文中。

本公开总体涉及计算机系统,并且更具体地,涉及用于为用户动态创建个人化锻炼视频的系统和方法。



背景技术:

私人教练对他们的客户在个人健身方面的指导和以其他方式建议通常是有效的,因为教练通常知识渊博,提供即时反馈,并提供问责制、动机、教育、营养信息或社团。然而,并非每个人都能负担得起私人教练(因为他们可能很昂贵,通常需要至少一方前往,并且对时间安排上有时间限制),私人教练并不总是与他们的客户在一起,并且私人教练可能缺乏知识。锻炼视频用于解决关于私人教练的一些问题。然而,许多锻炼视频具有不适合用户的静态内容。

存在用于对视频内容进行动态排序的计算机系统,诸如在youtubetm上存在“选择您自己的闯关”风格的在线视频。但是这类系统通常不太适合于在对锻炼的视频块进行动态排序的背景下出现的技术挑战。通常,教练基于客户在锻炼中的位置以及来自客户的关于锻炼的实时反馈来对锻炼进行排序。用于对视频进行动态排序的系统通常不能在如锻炼方案之类的更大的有序结构内动态地调整。

此外,用于对视频进行动态排序的现有计算机系统通常对用户反馈所体现的变化响应慢,并且不适合于具有相对有限的计算资源和网络带宽的设备,如许多移动设备。许多现有的视频传送系统使用高速缓存技术,这些高速缓存技术导致对变化响应较慢,例如关于接下来要显示哪个视频片段的变化。此类计算机系统还经常构建视频片段,构建视频片段的方式未针对压缩算法而调优,从而导致用于下载的文件较大并且响应较慢。因此,可能难以将那些系统转而用于更具延迟敏感性的使用案例,诸如在用户希望保持心率升高的锻炼中,顺序可能难以预测,并且用户更不愿意正在从远程服务器向本地缓冲器流式传输视频的下一个视频片段加载时在视频片段之间延迟。

实际上,许多用于对视频进行动态排序的现有系统不能基于与锻炼相关的标准来选择后续视频片段。现有系统通常为用户提供若干选择,但是这些选择通常涉及剧情线并且与适当的后续练习无关,特别是在给定了用户的简档和指示正在进行的会话的当前反馈的情况下。实际上,许多这类现有系统未被配置成在对视频片段进行排序时考虑与用户的先前会话,也未配置成响应于多维信号集(如简档中的属性和当前(例如,实时的,如在锻炼期间的)反馈)来调整片段。

此外,缺少用于基于用户简档自动构建锻炼的其它计算机系统(无论它们是否以视频序列或其它输出格式为目标)。通常,这类系统在计算机科学领域中被称为“维度的诅咒”。在许多情况下,这类系统将相对大的输入集(例如,年龄、身高、体重、目标、水平、肌肉重点、活动和日程安排数据,如每天锻炼的分钟数、每周的天数和周数)映射到锻炼序列中的练习集(也是从锻炼和锻炼属性的大集中选择的)。

因此,这些现有锻炼算法的配置空间通常非常大,这是因为可以组合这些输入的方式相对较多,并且可以通过相对大量的锻炼、工作周期和频率来构建相对大量的锻炼方式。简而言之,几乎有无数种方法可以配置算法来接受这些类型的输入并产生输出锻炼,但是这些不同的配置在输出质量上差别很大。因此,许多用于构建锻炼序列的现有计算机系统被配置成在该配置空间的固定次优区域中操作,例如依赖于不进行调整的硬编码规则,或者依赖于相对有限的可调整性,并且不考虑针对不同用户群体中的异常值需求。

人类教练通常利用启发式和直觉来引导这种用于构建锻炼的配置空间,具有不同程度的成功。然而,计算机通常不适合解决传统上需要人类直觉和判断的这些类型的问题。计算机趋向于传统地用在以明确且易于辨别的规则在输入与输出之间具有清楚映射的场景中。



技术实现要素:

以下是本技术的一些方面的非穷尽列举。在以下公开中描述了这些和其它方面。

一些方面包括基于锻炼期间的用户反馈动态地组成个性化锻炼视频的过程,该过程包括:用一个或多个处理器获得二维或更高维的锻炼视频块矩阵,其中每个锻炼视频块包含与锻炼例程的一部分有关的视频片段;并且锻炼视频块被配置成在锻炼例程视频中被组装成锻炼视频块序列;用一个或多个处理器获得多个用户简档,所述多个用户简档中的每个用户简档与相应用户的标识符相关联,并且所述多个用户简档中的每个用户简档与指示相应用户的锻炼偏好的偏好信息相关联;用一个或多个处理器经由网络从用户计算设备接收用户的标识符,并基于用户的标识符从多个用户简档中选择用户简档;用一个或多个处理器,基于锻炼视频块矩阵的维度和用户简档,构建要发送到用户计算设备的锻炼视频块序列的至少一部分,该序列包括至少两个锻炼视频块;用一个或多个处理器经由网络将序列的第一锻炼视频块发送到用户计算设备;用一个或多个处理器在开始发送第一锻炼视频块之后接收来自用户的的反馈,所述来自用户的的反馈指示对第一锻炼视频块的用户响应;用一个或多个处理器调整要发送给用户的视频块序列,其中调整包括:基于用户反馈从锻炼视频块矩阵中选择第二锻炼视频块;将第二锻炼视频块添加到要发送给用户的锻炼视频块序列中;以及用一个或多个处理器开始将第二锻炼视频块发送到用户计算设备。

一些方面包括一种有形的非暂时性机器可读介质,其存储指令,所述指令在由数据处理装置执行时,使得数据处理装置执行包括上述过程的操作。

一些方面包括一种系统、一个或多个传感器、一个或多个处理器和存储指令的存储器,所述指令在由处理器执行时,使得处理器实现上述过程的操作。

附图说明

当鉴于以下附图阅读本申请时,将更好地理解上述方面和本技术的其它方面,其中相同的数字表示相似或相同的元件:

图1是示出符合本技术中的一些技术的计算环境的示例的方框图,所述计算环境被配置成为用户动态创建个人化锻炼视频;

图2是示出根据一个或多个实施例的编码分层视频块分组的数据结构的示例的树图;

图3示出了根据一些实施例的描述给定视频块的属性的视频块数据结构的示例;

图4示出了根据一些实施例的用户反馈数据结构的示例;

图5示出了根据一个或多个实施例的用户简档数据结构的示例;

图6至图7示出了根据一些实施例的基于所评分的属性的视频选择伪代码例程的示例;

图8示出了根据一个或多个实施例的用于对视频片段进行排序的示例状态图;以及

图9示出了根据一个或多个实施例的用于为用户动态创建个人化锻炼视频的方法。

虽然本发明易于进行各种修改和替换形式,但是其特定实施例在附图中以示例的方式示出并且将在本文中详细描述。附图可能不按比例绘制。然而,应该理解,附图和对其的详细描述并非旨在将本发明限制于所公开的特定形式,而是相反,其意图是涵盖落入如所附权利要求所限定的本发明的精神和范围内的所有修改、等同和替换。

具体实施方式

为了解决本文描述的问题,申请人必须发明解决方案,并且在一些情况下同样重要的是找出在动态视频组成、机器学习和前端开发领域中被其他人忽略(或尚未预见)的问题。实际上,申请人希望强调找到这些问题的困难性,这些问题是初生的,并且如果动态练习内容行业的趋势像申请人所期望的那样继续的话将来会更加明显。此外,因为解决了多个问题,应该理解一些实施例是特定于问题的,并且并非所有实施例都解决了本文描述的传统系统的每个问题或者提供了本文描述的每个益处。也就是说,下面描述了解决这些问题的各种排列的改进处。

在一些实施例中,序列中视频块的选择基于锻炼流、用户在锻炼流中的位置以及实时反馈。例如,锻炼流可以指定低强度热身、高强度热身、腿部、胸部、背部、手臂、有氧运动、腿部、胸部、背部、手臂、有氧运动、腿部、胸部、背部、手臂、有氧运动和低强度的放松。在这些阶段中的每一个阶段内,其中每个阶段可以对应于视频块的选择,一些实施例可以基于实时反馈选择与阶段一致的视频块。例如,在手臂之后,用户可以经由本机应用指示他们过度疲劳,或者心率监测器可以指示心率高于阈值。作为响应,对于下一阶段,有氧运动,一些实施例可以选择比本来会选择的强度水平更低的强度水平,动态地选择视频块同时保持在流的界限内以得到针对他们的经验而定制的一致的锻炼序列。下面描述变体,其中使用梯度下降来训练模型,以基于如用户偏好、受伤处和先前用户反馈中的模式等选择后续的视频块、锻炼或锻炼计划。此外,一些实施例可以用服务器架构来实现这一点,所述服务器架构被设计成为相对大量的用户供应带宽密集型视频馈送。

在一些实施例中,本技术中的一些可以为私人教练提供类似于特定于领域的编程语言的东西,其在适应性和专家指导之间取得适当的平衡。在一些情况下,简单地向用户传达练习列表,甚至是专门为用户选择的列表,可能不会提供私人教练提供的一些价值,例如,私人教练通过在锻炼过程中调整锻炼或基于用户的变化的目标来提供的价值。另一方面,只需提供大量练习供用户自行慎重选择可能会使用户丧失私人教练提供的一些指导,私人教练在选择具有适当属性的适当训练序列方面提供所述指导以实现用户的目标。如上所述,锻炼和锻炼计划的设计空间相对较大,几乎有无限多种方式可以配置锻炼计划和相应的锻炼。一些实施例提供了相对简洁的方式来绘制通过该设计空间的自适应路径。为了这些目的和其它目的,一些实施例利用数据结构来组织与练习有关的内容,其方式是通过参数空间映射到这些自适应路径并支持相对有表现力且动态的锻炼配置。

在一些实施例中,可以在计划中组织锻炼,例如,用下面描述的技术根据用户的目标选择的计划。在一些实施例中,可以根据模板计划来安排计划,其中每个模板计划在计划的每个阶段包括多个锻炼选择标准。在一些情况下,标准可以指定参数,在每个阶段利用所述参数选择多个候选锻炼,诸如本文所述的锻炼模板,并且一些实施例可以基于各种标准(诸如用户的总体目标、用户对特定的重点领域表达的偏好或来自用户的反馈,例如指示已受伤或目标已改变)在这些候选中进行选择。锻炼重点的示例包括全身更健壮、瘦身、耐力、力量、核心和恢复。在一些情况下,计划的每个阶段可以具有与这些不同重点中的每一个相对应的多个锻炼模板,并且一些实施例可以在这些不同重点中进行选择以基于各种标准(包括其它重点被选中的频繁程度或用户表达的偏好)在候选中进行选择。

在一些实施例中,可以使用下面描述的技术用不同的候选锻炼来调整计划,通过所述技术定义和调整锻炼。因此,在一些情况下,计划和锻炼均可以在这样的意义上被部分地而不是完全地定义:每个可以指定候选序列,其中根据演进的用户简档基于个人化在该候选序列中进行选择。在一些实施例中,沿着这些相应序列的不同阶段(例如,锻炼和计划或锻炼中的练习)可以被概念化为图表中的节点。例如,每个锻炼可以对应于候选练习的图表,并且一些实施例可以通过图表选择路径,该路径对应于提供给用户的锻炼,其中基于反馈或用户简档信息在不同阶段进行选择。类似地,锻炼可以表示为计划图中的节点,并且一些实施例可以通过沿着图表的各个阶段选择锻炼来配置计划,以通过与计划相对应的候选锻炼图表绘制路径。在一些情况下,例如对应于不同用户目标的不同类型的计划可以具有不同图表,通过所述不同图表选择路径,在一些情况下有重叠图表。

图1示出了具有服务器108的计算环境100环境的示例,该服务器被配置成为用户动态地创建个人化锻炼视频(例如,使得定义锻炼的视频序列由于在锻炼期间获得的信息而改变)。在一些实施例中,如该示例中所示,计算环境100可以包括以下中的一个或多个:客户端计算平台102、一个或多个传感器104、一个或多个外部资源106、一个或多个个人化锻炼视频创建服务器108、一个或多个电子存储装置115或其它组件,其全部都经由网络110通信地耦合。

网络110可以包括互联网或其它网络,诸如局域网、蜂窝网络、内联网、近场通信、频率(rf)链路、bluetoothtm、wi-fitm或任何类型的有线或无线网络。这些示例不旨在是限制性的,并且本公开的范围包括实施例,在所述实施例中客户端计算平台102、一个或多个传感器104、一个或多个外部资源106、一个或多个个人化锻炼视频创建服务器108和一个或多个电子存储装置115经由某种其它通信介质可操作地链接的,这并不表示其它列举的示例是限制性的。

客户端计算平台102可以包括由机器可读指令配置以执行计算机程序组件的一个或多个处理器。计算机程序组件可以被配置成使与客户端计算平台102相关联的一个或多个用户能够与计算环境100、外部资源106、传感器104、电子存储装置115或个人化锻炼视频创建服务器108连接,或者向客户端计算平台102提供本文所属的其它功能。客户端计算平台102可以是台式计算机、膝上型计算机、手持式计算机、上网本、平板计算机、智能手机、智能手表、个人数字助理(pda)、蜂窝电话、个人计算机(pc)或其它计算平台。客户端计算平台102在本文中也称为客户端计算设备。

客户端计算平台102可以包括一个或多个物理接口。包括在客户端计算平台102中的物理接口可以被配置成在个人化锻炼视频创建服务器108(或计算环境100的其它组件)与客户端计算平台102的用户之间提供接口,用户可以通过该接口向个人化锻炼视频创建服务器108(或计算环境100的其它组件)提供信息或从其接收信息。这利于数据、视频、结果、报告、推荐或指令和其它可通信项目,“信息”的总体和单独示例,在用户与个人化锻炼视频创建服务器108(或计算环境100的其它组件)之间进行传送。

适合包括在客户端计算平台102的物理接口中的接口设备的示例包括以下中的一个或多个:小键盘、按钮、开关、键盘、旋钮、控制杆、显示屏、跟踪板、触摸屏(例如,力敏触摸屏)、扬声器、麦克风、指示灯、声音警报器、打印机或用户可通过其提供或接收信息的其它接口。应当理解,硬连线或无线的其它通信技术也被设想为客户端计算平台102的物理接口。因此,本公开将用于与个人化锻炼视频创建服务器108或计算环境100的其它组件进行信息通信的各种技术设想为客户端计算平台102的物理接口。在一些情况下,物理接口包括摄像头、麦克风或三维扫描仪(诸如飞行时间传感器或者被配置成测量视场中的深度的立体传感器)。

示出了一个客户端计算平台,但是实施例被配置成支持实质上更多并发会话,例如多于100个并发会话,并且在许多情况下支持多于1,000个,或多于10,000个并发会话。在这样的规模上,特别是对于像供应视频这种难以预测用户反馈和下一个要选择的视频的带宽密集型任务来说,期望下面描述的技术中的一些对于高质量的用户体验来说特别重要,所述技术用于动态地供应视频,其中在片段之间低延迟(但实施例不限于提供这些益处的系统,这并不意味着其它描述是限制性的)。为此,一些实施例可以在视频费用被中断的情况下并且在从一个视频转换到下一个视频之前将视频高速缓存在客户端设备上,例如在缓冲器中。此外,一些实施例可以在客户端设备上高速缓存备用视频片段(例如,初始阈值持续时间),并基于实时选择和用户反馈在这些片段之间进行选择,示出一个但不显示另一个,以提供对网络中断鲁棒的视频之间的低延迟转换。

许多计算机系统不太适合同时向相对大量的用户提供高带宽内容而在基于实时反馈选择的视频片段之间具有低延迟时间。为了解决这些问题,一些实施例可以使用被配置成支持相对高的并发性和相对低的存储器使用的网络服务器,例如nginx。为了利于高并发性,一些实施例可以包括异步、非阻塞、事件驱动的服务器,用于处理到用户设备的相对大量的并发连接。响应于连接或连接内的请求超过阈值,一些实施例可以启动新的工作进程。在一些实施例中,每个工作进程可以处理超过一千个连接。在一些实施例中,每个工作进程可以执行事件循环,在事件循环的每次迭代期间,该进程可以检查和处理事件,如网络套接字和端口上的用户请求或信息发布。一些实施例可以将对服务请求执行的工作与事件的分类和路由分开,以将相对慢的操作(如从存储装置中检索视频块)放置在与处理事件的线程或进程分离的线程或进程中。事件和异步活动可以经由延期回调函数连接,该延期回调函数在函数返回异步进程的结果后被调用。因此,在一些实施例中,可以异步处理事件,允许以非阻塞方式处理工作。在一些情况下,每个服务器(在软件意义上)可以在单线程中被执行,从而用该线程处理相对大量的连接,从而相对于其它计算机服务器在重负载时减少内存和cpu使用。也就是说,本文描述了许多不同的发明,并非所有实施例都使用这些技术。在一些情况下,网络服务器或应用程序接口服务器可以在网络110与多个计算设备之间进行连接,例如,在数据中心和内容传递网络中,据此实现所示服务器108的功能。

外部资源106可以包括个人化锻炼视频创建服务器108之外的信息源、主机或信息或服务提供方、参与计算环境100的外部实体(例如,云存储装置)或其它资源。在一些实施例中,本文属于外部资源106的一些或所有功能可以由计算环境100中包括的资源提供。

个人化锻炼视频创建服务器108可以包括电子存储装置115、一个或多个处理器112或其它组件。在一些情况下,服务器108的单个实例可以同时向多个用户供应个人化锻炼视频。在所示实施例中,机器可读指令被示为处理器112的组件以指示处理器执行那些指令(例如,用不同处理器执行不同指令),并且在一些实施例中,指令可以存储在与处理器112不同的计算机组件上,例如,在容纳处理器、存储器和存储装置的计算机的永久性存储装置或动态存储器中。在一些情况下,服务器108是被配置成与客户端侧网络浏览器或应用程序接口服务器连接的网络服务器,所述应用程序接口服务器可操作用于与客户端侧本机应用程序连接。个人化锻炼视频创建服务器108可以包括通信线路、组件或端口,以实现与网络或客户端计算平台102的信息交换。图1中的个人化锻炼视频创建服务器108的图示不旨在是限制性的,这并不暗示本文中的其它描述是限制性的。个人化锻炼视频创建服务器108可以包括多个硬件、软件或固件组件,所述多个硬件、软件或固件组件一起操作以提供本文中属于个人化锻炼视频创建服务器108的功能。例如,个人化锻炼视频创建服务器108可以由多个虚拟化计算实例实现,所述多个虚拟化计算实例在远程数据中心中执行,一起作为个人化锻炼视频创建服务器108来操作。

电子存储装置115(其还包括磁和光存储装置以及dram中的存储器内存储装置)可以被配置成存储锻炼视频块、与用户有关的信息、从传感器104接收的信息、从外部资源接收的信息、或从计算环境100内或外部接收的其它信息。电子存储装置115可以包括电子存储介质,该电子存储介质以电学方式(术语,本文通常用于包含磁性或光学存储的信息)存储信息。电子存储装置115的电子存储介质可以包括以下之一或两者:与服务器108一体地(即,基本上不可移除)提供的系统存储装置,或者经由例如端口(例如,usb端口、火线端口等)或驱动器(例如,磁盘驱动器等)可移除地连接到服务器108的可移除存储装置。电子存储装置115可以包括以下中的一个或多个:光学可读存储介质(例如,光盘等)、磁性可读存储介质(例如,磁带、磁性硬盘驱动器、软盘驱动器等)、基于电荷的存储介质(例如,eeprom、ram等)、固态存储介质(例如,闪存驱动器等)或其它电子可读存储介质。电子存储装置115可以包括一个或多个虚拟存储资源(例如,云存储装置、虚拟专用网络或其它虚拟存储资源)。电子存储装置115可以存储软件算法、由处理器112确定的信息、从客户端计算平台102、传感器104、外部资源106接收的信息、或使得个人化锻炼视频创建服务器108能够如本文所述发挥功能的其它信息。

处理器112可以被配置成在个人化锻炼视频创建服务器108中提供信息处理能力。这样,处理器112可以包括以下中的一个或多个:数字处理器、模拟处理器、设计成处理信息的数字电路、设计成处理信息的模拟电路、状态机或用于电子处理信息的其它机制。虽然处理器112在图1中示为单个实体,但这仅用于说明目的。在一些实施例中,处理器112可以包括一个或多个处理单元。处理单元可以物理地位于同一设备内,或者处理器112可以表示协同操作的多个设备的处理功能。处理单元112被示出为处理器112的不同模块,但是这不应被解读为暗示必须同时将每个模块的整个代码集加载到物理处理器的寄存器中。

处理器112可以由机器可读指令配置以执行一个或多个计算机程序组件。一个或多个计算机程序组件可以包括以下中的一个或多个:访问组件120、用户简档组件124、选择组件130、通信组件140、反馈组件150、标记组件160、组织组件170或其它组件。

所示出的组件被描绘为离散的功能块,但是实施例不限于其中如所示的那样组织本文描述的功能的系统。由每个组件提供的功能可以由与当前描绘所不同地组织的软件或硬件模块提供。例如,这样的软件或硬件可以混合、联合、复制、分解、分布(例如,在数据中心内或地理上),或以其它方式不同地组织。本文描述的功能可以由执行存储在有形的非暂时性机器可读介质上的代码的一个或多个计算机的一个或多个处理器提供。

访问组件120可以被配置成访问锻炼视频块的集合。在一些实施例中,锻炼视频块是包含锻炼的一部分、练习、瑜伽姿势、训练、热身、健美操、舞蹈、例程、演习、其它类型身体活动中的一个或多个或其任何组合的视频。在一些情况下,锻炼视频块可以包括针对心血管系统的身体活动的指令,加强肌肉,减轻体重,以帮助增强或保持身体康健或整体上健康和良好。锻炼视频块可以具有大约三分钟的持续时间,或者在一些情况下,具有某一定量如1分钟的整数倍,以利于动态组成。在一些情况下,锻炼视频块的持续时间可以少于三分钟。在一些情况下,锻炼视频块的持续时间可以超过三分钟。在一些实施例中,给定的单独锻炼视频块可以是可以提供给用户的最小视频片段。例如,单独锻炼视频块可以包括一个练习。

在一些情况下,每个视频块可以对应于存储器中的不同文件数据结构,例如,与其它视频块分开的windows媒体视频、mpeg-4视频、flash视频等。在一些情况下,视频可以被预压缩以利于在相对低带宽下相对快速地将视频分发给相对大量的用户。在没有无线局域网的情况下,对于蜂窝网络上的移动设备使用情况,带宽使用预计会特别具有挑战性。即使在具有不太先进的蜂窝数据网络的偏远地区旅行,用户也希望获得鲁棒的服务。例如,可以用高级音频编码(aac),并且在一些情况下通过检测和丢弃用户不可察觉的信号分量并通过标识和分组视频文件中的冗余信息,来压缩视频文件。为了利于前者,一些实施例可以用带通音频滤波器来丢弃更高和更低的音频频率,并根据空间频率对视频细节滤波,根据需要去除细节以满足压缩目标。为了利于后者,在一些情况下,可以相对于低信息背景(如均匀的白色背景)来记录视频,以增加每个帧的冗余部分,例如,均匀强度的白色像素。在一些情况下,对于每个视频块的超过50%或超过70%,每帧的超过50%或超过70%可以是均匀颜色、帧之间相同或两者。均匀的颜色可以减少视频区域中的熵并且利于压缩。也就是说,并非所有实施例都以这种方式采用压缩,因为描述了其它发明方面。

每个单独锻炼视频块可以包括与其它锻炼视频块中的练习不同的练习,或者可以包括与在其它锻炼视频块中的练习相同的练习(或该相同练习的变体),但是在不同的难度水平(例如,难、中、易,或等级1、2、3等)。在一些实施例中,视频块可以具有视频片段,诸如每分钟或利用视频内加书签的时间戳,并且一些实施例可以在这些片段结束时动态地终止视频,从而应用少于完整的视频块以更快速地适应用户反馈而不是等待整个视频。或者一些实施例可以在一个视频结束时或在接收到反馈后进行调整。

单独的数据结构可以提供对视频的属性的相对丰富的标记,并且当动态排序锻炼中的块时,可以使用所述标记在视频中进行选择。在一些实施例中,包括在单独锻炼视频块中的练习可以针对特定身体区域(例如,下半身、上半身、核心、手臂等)中的一个或多个,可以针对特定健身目标、特定生理功能(例如,呼吸等)或其它目标。下面描述的数据结构可以将每个视频块与这些参数相关联,并且在一些情况下,可以询问该数据结构以根据由另一数据结构和实时用户反馈指定的锻炼例程的一般参数来动态地选择视频和对视频进行排序。

在一些实施例中,锻炼视频块的集合可以包括锻炼视频块的多个分组(例如,分组可以是按照身体区域的、按照健身目标的、按照生理功能的或是其它分组。)可以通过将每个视频块文件的唯一标识符与对应于分组的值(例如,“上半身”或“腿部”的标签)相关联来表达分组。在一些实施例中,视频块可以与多个标签相关联以利于根据多个维度对视频进行智能排序。在一些情况下,提供视频块的分层分类,例如,将块指定为“上半身”、“胸部”、“低强度胸部”。属性还可以包括强度等级。在一些实施例中,身体区域分组(例如,下半身、上半身、核心、手臂等)可以包括被指定为具有不同锻炼强度(例如,难、中、易或等级1、2、3等)的多个锻炼视频块。图2示出了根据一个或多个实施例的不同视频块分组的示例200。锻炼视频块210可以被分组为系列220。系列220可以包括以某种方式彼此相关的块210(例如,具有不同强度的相同锻炼)。在一些情况下,系列220可以包括三个、五个、十个或更多个块210,每个块包含一个练习的变化(例如,沿着单个维度,如强度,或者沿着两个或更多个维度,如运动强度和范围)。可以对系列中的块进行排序,使得系列中的第一块(在这种情况下,第一块可以称为等级1)是最简单的练习版本,而顺序中的最后一块是最难的练习版本。身体康健状况差的用户可能会发现1级合适,而身体康健状况好的人会发现更高等级更合适。

可以按照块类型在视频块元数据数据结构内将系列220分组在一起。例如,如图2中所示,块类型组230可以是身体区域。在一些情况下,块类型组可以包括系列,在所述系列中块包含针对特定身体区域(例如,下半身、上半身、核心肌肉、腿部、手臂、背部等)的练习。例如,“下半身”组可能包含深蹲系列和弓步系列。

在一些实施例中,块类型组可以被分组成集。例如,如图2中所示,集240可以包括一个或多个块类型组230,每个块类型组230表示不同的身体区域(例如,“热身”集可以包括“下半身”、“上半身”、“背部”块类型组)。

在一些情况下,一组集240可被称为流250,其中流由集组成,在这些集中进行选择以组成用于完整锻炼的视频块。用户可以选择从头到尾播放流。用户可以选择流的长度。例如,全身流可以包括热身(1)、热身(2)、热身(3)、下半身、然后上半身、有氧运动、全身、核心、有氧运动、放松1和放松2。其它流的示例包括瘦身流、耐久流、强度流、核心流、恢复流或其它流。

或者在一些实施例中,图2的上部,流250和集240可以以第一数据结构编码,例如,至少部分地定义锻炼的序列的一数据结构,而下部(类型230、系列220和块210)可以以第二不同数据结构定义,该第二不同数据结构组织原子单元,通过该原子单元,第一数据结构通过参考第二数据结构部分地或完全地定义锻炼。

示出了三个块、三个系列和三个类型,但是预期商业上相关的实施例基本上每项包括更多个,其中每种类型中实质上更多个系列,并且每个系列中实质上更多个块。在一些情况下,块可以以多维矩阵布置,在矩阵的每个值处具有指向给定视频块文件的指针。矩阵的维度可以对应于视频块的属性,例如肌肉、肌肉组、强度、运动范围等。数据结构不需要被称为程序代码中的矩阵以用作矩阵,只要数据结构将每个视频块与可以对应于矩阵的维度的多个属性相关联。在一些情况下,维度可以包括图3中列出的那些维度。

在一些实施例中,矩阵的维度和视频块的其它属性可以定义参数空间,其中矩阵(或视频块(或对应的练习)属性)的每个维度对应于参数空间中的维度。在一些情况下,维度可以是标称的,例如,标识参与到视频中的沿着与身体部位对应的那些维度位于多个位置的身体部位,或者在一些情况下,维度可以是按顺序的,例如指示在给定指导者的情况下给定练习的更容易或更难版本。标称维度的其它示例包括指导者的身份、指导者的性别、在各个视频中使用的练习设备的实例等。

如图1中所示,在一些情况下,锻炼视频块可以位于电子存储装置115中。在一些情况下,锻炼视频块可以存储在位于计算环境100(例如,网站、网络平台、服务器、存储介质、云存储装置等)内部或外部一个或多个位置的锻炼视频块存储库中。在一些情况下,视频块可以存储在内容传送网络中,以利于从地理上更近的存储库中相对快速地访问视频。一些实施例可以给客户端计算设备发送指令以从这类内容传送网络检索指定的块。或者一些实施例可以将视频块高速缓存在用户设备上以用于对等视频分发,例如,用分布式哈希表来寻址视频块的比特流实现方式。在一些情况下,视频块的副本可以在云数据中心提供商的不同服务区域中被复制,并且一些实施例可以基于地理接近度、需求或可用容量从不同区域向客户端计算设备供应视频。一些实施例可以包括客户端计算设备与服务器108之间的反向代理服务器,其可操作以接收例如来自世界上任何地方的对给定互联网协议地址的网络请求,并且将该请求路由到例如选定的地理区域中的服务器108中的一个的实例。在一些情况下,反向代理服务器可以在存储器中维护网络地址转换表,该网络地址转换表将与跟给定计算设备的给定会话中的网络通信相关联的会话标识符映射到代理地址,使得反向代理可以针对给定的客户端计算设备将通信随着时间一致地路由到服务器108的相同实例。或者一些实施例可以用协议包装器分组(如tcp包装器)来包装所接收的网络分组,其中包装分组具有标识服务器地址作为收件人的首部,tcp包装器分组的有效载荷中所包装的tcp分组在首部的接收方字段中具有反向代理服务器地址。在一些情况下,反向代理服务器与服务器108之间的tcp连接可以是持久tcp连接,以在连接的持续时间内加速传送视频,并减少由于建立新连接而导致的延迟。

可以通过让锻炼指导者来到工作室记录练习组和系列的每个排列的视频和音频来形成视频块。通常,用户更喜欢从同一个指导者那里按顺序进行训练,可以为此功能提供全面的视频块集合。也就是说,一些实施例也可以由不同指导者的块组成锻炼视频流。访问组件120可以被配置成响应于来自用户、计算环境100内部或外部的组件的请求或其它请求来执行其功能中的一个或多个。访问组件120可以位于个人化锻炼视频创建服务器108内,在客户端计算平台102、传感器104内,或计算环境100内或外部的位置。

在一些实施例中,锻炼视频块可以包括由人类指导者(例如,教练、训练员、理疗师、脊椎按摩师、医疗保健提供者或给出锻炼指令的其他人)提供的指令。在一些情况下,指令可以由给出视频中的指令的人描述或演示,由不同于演示锻炼指令的人的人进行描述或其任何组合。在一些实施例中,锻炼视频块可以包括由机器生成的角色提供的指令,所述机器生成的角色被配置成描述或演示锻炼指令(例如,化身)。在一些实施例中,用户可以从化身列表中选择化身(例如,看起来像用户的化身或看起来像名人的化身等)。在一些实施例中,用户可以上传图像(他们自己的图像、其他人的图像,用于创建化身)。在一些情况下,锻炼视频块可以包括由人和机器生成的角色提供(描述或演示)的指令的组合。例如,视频可以显示描述锻炼的真人和执行锻炼的化身。在一些实施例中,同一组(例如,系列、块类型、集合、流或其它组)中的锻炼视频块可以由相同的指导者(人或机器生成的)提供。例如,用户可以为任何锻炼视频块选择任何特定指导者(每个指导者针对用户可用的所有锻炼会话提供指令)。在一些情况下,特定指导者(人类或机器生成的)可以提供特定的锻炼指令。例如,一些指导者可以仅针对特定的身体区域(例如,腿部、手臂等)、针对特定的难度等级、针对特定的锻炼类型(例如,热身、放松、有氧运动等)给出指令,或给出其它特定的锻炼指令。

在一些实施例中,用户简档组件124可以被配置成获得与计算环境100的用户相关联的一个或多个用户简档或用户其它信息。所述一个或多个用户简档或用户信息可以包括位于以下中的一个或多个的信息:客户端计算平台102、外部资源106、传感器104、存储装置115或计算环境100(例如,网站、网络平台、服务器、存储介质、云存储装置等)内或外部的其它位置。用户简档可以包括以下中的一个或多个:用户简档属性,例如,标识用户的信息(例如,用户名、号码、标识符或其它标识信息)、安全登录信息(例如,登录代码或密码)、帐户信息、订阅信息、健康信息、医疗信息(例如,病史、药物等)、生理信息(例如,身高、体重、年龄、性别等)、康健信息(例如,康健水平、康健成就等)、限制条件(例如,练习约束)、健身目标、生理信息、关系信息(例如,与计算环境100中的用户之间的关系相关的信息)、使用信息、人口统计信息、历史、与用户相关联的客户端计算平台,或与用户相关的其它信息。在一些实施例中,用户简档组件124可以被配置成访问网站、网络平台、服务器、存储介质或可以响应于来自用户的、计算环境100内或外部的组件的请求或其它请求从中访问、获得、检索或请求用户简档的其它位置。例如,可以访问用于健身追踪器、联网规模或联网健身设备的第三方api以检索用于增强简档的度量。简档可以包括关于特定练习和指导者的用户反馈,以及用户约束,如某些身体区域易受感染或受伤的指示。当自动组成锻炼时可以参考这些值,例如,实施例可以将受伤的身体区域与锻炼视频的身体区域匹配,并且作为响应选择相应的例如较低强度水平的视频块。

在一些实施例中,用户简档可以包括与用户的康健相关的信息。在一些情况下,用户的康健可以包括以下中的一个或多个:身体、心理、社交或情绪健康或康健。在一些实施例中,用户的康健可以是用户执行任务的能力的度量、用户在工作或休闲活动中有效且有效率地行使职责的能力的度量、或者其它身体属性的度量(例如,力量、耐力、力量、速度、平衡、协调等)。在一些实施例中,用户简档可以指示用户的康健水平(例如,康健、不康健等)。用户简档可以指示用户的个人表现(例如,马拉松时间、全速短跑时间、游泳时间、举重能力或其它个人表现)。在一些实施例中,用户简档可以指示身体约束。例如,用户简档可以包括受伤、练习约束、关于特定身体活动的医疗保健专业人员建议(例如,基于用户的健康状况)、或者用户可能具有的其它约束。在一些实施例中,用户简档可以包括与用户的健身目标有关的信息。例如,改进特定功能、技能或身体属性。在一些情况下,健身目标可以指示一般目标(例如,改善身体、心理、情绪康健等)。在一些情况下,时间范围可以与健身目标相关联(例如,我想在六个月内完成马拉松)。时间范围可以由用户、个人化锻炼视频创建服务器108或其组合来定义。在一些实施例中,个人化锻炼视频创建服务器108可以基于用户信息(例如,康健水平、年龄、健康状况等)推荐一个或多个时间范围。在一些情况下,用户简档可以包括用户偏好。例如,用户可以指示他喜欢或不喜欢的锻炼类型(例如,有氧运动、有氧健身等),或者不展示的运动类型(不展示弓步等)。在一些情况下,用户简档可以基于用户的偏好、约束、健身目标或其他用户简档属性来指示锻炼的排名。

在一些实施例中,用户简档组件124可以被配置成从计算环境100内或外部的其它信息源获得与用户有关的信息。在一些情况下,用户简档组件124可以被配置成从传感器104获得与用户相关的信息。传感器104可以被配置成将信息直接传输(例如,有线或无线)到访问组件120、用户简档组件124、个人化锻炼视频创建服务器108或计算环境100内或外部的其它组件,或者传感器可以与系统能访问的第三方服务器进行通信。在一些实施例中,例如,可以从作为外部资源106的一部分的远程定位数据库将信息传输到个人化锻炼视频创建服务器108。在一些实施例中,个人化锻炼视频创建服务器108可以通过向存储传感器信息的数据库或其它资源电子查询或请求信息并且作为响应接收信息,而从这些设备获得传感器信息。应该注意的是,这些示例或本文中的任何其它示例不是限制性的。

传感器104可以被配置成生成输出信号,所述输出信号传达了与用户相关的信息。在一些实施例中,传感器104可以包括视听传感器、活动传感器、生理传感器、生物传感器或其它传感器。这种传感器的示例可以包括心率传感器、血压传感器/监视器、体重计、运动传感器、光学传感器、生物传感器、视频传感器、音频传感器、颜色传感器、血糖监测器、血氧饱和度监测器(例如,脉搏血氧计)、水合监测器、皮肤/体温温度计、呼吸监测器、脑电图(eeg)电极、加速计、活动传感器/跟踪器、gps传感器或其它传感器。这些示例不应被视为限制。传感器104被配置成生成传达与用户有关的信息的各种输出信号,所述与用户有关的信息允许计算环境100如本文所述起作用。在一些实施例中,传感器104可以设置在计算环境100内或外部的多个位置。例如,传感器104可以在用户(例如,可穿戴设备)上,与客户端计算平台102耦合,位于用户使用的医疗设备中,定位为指向用户(例如,摄像机),或者位于计算环境100内或外部的其它位置。在一些实施例中,可以通过用户输入、用户选择、传感器输出或其它方法的组合获得与用户相关的信息。

从传感器104获得的与用户相关的信息可以包括从传感器104获得的生理信息、行为信息或其它信息。生理信息的示例可以包括心率、血压、体重、脉搏率、血液化学、血氧饱和度、血糖水平、水合信息、呼吸率、呼吸信息、皮肤/体温、大脑活动、身体运动或缺乏运动、活动持续时间信息、身体疼痛信息或其它生理信息。行为信息的示例可以包括用户举止、语音、外观、姿势、礼仪、态度或其它行为信息。在一些实施例中,可以基于来自传感器104的信息来更新用户简档信息。例如,可以周期性地更新用户简档信息,例如,用户简档组件124可以被配置成周期性地从传感器104获得信息并基于来自传感器104的信息更新用户简档信息。在一些情况下,用户可以设置从传感器的更新频率。在一些实施例中,可以响应于从传感器获得的信息的变化而动态地更新用户简档信息。

在一些实施例中,可以通过访问一个或多个社交媒体站点上的用户简档或用户的在线呈现(而不是询问用户问题,用户简档组件124可能能够提取有关用户行为、过去活动、偏好、用户对其它锻炼的评分、喜欢和不喜欢等的信息)来获得用户简档信息中的一些。该操作可以由用户简档组件124或计算环境100内或外部的其它组件来执行。用户简档组件124可以被配置成收集和存储从一个或多个社交媒体站点或从用户在线呈现(例如,在线查看或购买的产品、查看时间、评级、行为等)获得的关于用户的数据。

选择组件130可以被配置成从视频块集合中选择第一锻炼视频块。在一些情况下,第一视频块的选择可以基于以下中的一个或多个:用户简档信息、用户偏好、从传感器104获得的信息、锻炼视频块的分组(例如,身体区域)、锻炼强度水平、从计算环境100的其它组件获得的信息,或其任何组合。例如,可以基于用户的健身目标、用户的康健水平、练习约束、健康信息、医疗信息或其它用户简档属性(如上所述)中的一个或多个来选择第一锻炼视频。示例可以包括:对于简档指示用户想要加强他的上半身并且指示用户不喜欢跑步的用户,可以选择低强度上半身锻炼;或者对于简档指示某种类型的受伤或最近的医疗手术的用户,可以选择恢复性练习;对于简档指示高度康健的用户,可以选择高强度、快节奏的锻炼;等等。

在一些实施例中,可以基于来自用户或其他用户的评论、推荐或反馈来选择第一锻炼视频块。在一些情况下,与锻炼视频块相关联的评论是指由计算环境100的其他用户提供的评论或反馈,其描述他们作为计算环境100的用户的体验,或者他们关于锻炼视频块的反馈。在一些实施例中,对锻炼视频块的评论可以包括关于以下的评论:锻炼在实现特定目标方面的有效性、视频块的质量、与其它锻炼视频块的比较或与锻炼视频块相关的其它信息。例如,访问组件120可以被配置成经由网络110访问例如存储与锻炼视频块相关联的一个或多个评论的一个或多个数据库(例如,锻炼视频评论数据库)。锻炼视频评论数据库可以位于计算环境100内或外部。在一些情况下,用于用户评论的源可以包括来自以下的评论:电子商务站点(例如,应用程序商店等)、社交媒体站点(例如,facebooktm、twittertm等)、博客、在线评论网站、网页、电子邮件、文档、pdf、扫描文本或包含与锻炼视频块相关的评论的其它来源。在一些实施例中,与锻炼视频块相关联的评论可以包括锻炼视频块的评级(例如,星级、赞或贬、喜欢、不喜欢等)。

在一些实施例中,选择组件130可以被配置成分析从一个或多个用户简档、从传感器104、从评论数据库或其它信息获得的信息,并基于分析从视频块的集合中选择第一锻炼视频块。在一些情况下,对所获得的信息的分析可以包括将评论的内容与来自用户简档的信息或传感器信息进行比较。例如,选择组件130可以选择在与用户属于相同人口统计的一个或多个用户(具有与用户的评级历史相似的评级历史、相同的年龄、性别、身体属性等等的用户)中排名高的锻炼视频块。在一些实施例中,选择组件130可以选择在具有与用户相似的健身目标、相似的练习约束或其它相似性的一个或多个用户中排名高的锻炼视频块。

在一些实施例中,选择组件130可以被配置成基于从定位器(例如,gps)获得的用户的位置来选择第一视频块。在一些实施例中,定位器可以包括在传感器104、客户端计算平台102或计算环境100内或外部的其它组件中。例如,如果用户在公园附近,则选择组件130可以选择给出适合户外的锻炼指示(例如,包括跑步、短跑、跳跃等的锻炼)的锻炼视频块。另一示例,如果用户的位置指示用户在家,则选择组件可以选择更适合室内的锻炼(例如,不包括跑步、减肥或跳跃的锻炼)。

在一些实施例中,可以基于用户可用的设备来选择和动态配置锻炼。在一些情况下,用户可以指示例如在他们家中哪些设备可用,并且一些实施例可以选择锻炼视频,在所述锻炼视频中具有对于在视频块中使用所标识的设备的指示,作为那些视频块的参数。在一些情况下,视频块中的每一个可以指示所需设备、可选设备等(例如,在图3的数据结构中),并且一些实施例可以例如鉴于用户可用的设备(例如,符合所述设备施加的约束的)动态地构建锻炼视频。

在一些实施例中,当前描述的分布式应用程序(在客户端计算设备102和服务器108上执行)可以与各种锻炼设施整合,诸如健身房、瑜伽工作室、练习单车工作室等。在一些实施例中,服务器108可以在存储器中维护描述各种锻炼设施的记录,例如,记录指示锻炼设施的地理位置(例如,边界多边形、网格矩形或中心点和半径),以及健身房中用于锻炼的设备的清单,例如,台式压力机的数量、楼梯机的数量、下拉式下拉杆的数量等。在一些实施例中,这些记录还可以指示相应设施内的设备的位置。在一些实施例中,每件设备的每个实例可以与相关设备实例记录相关联,该相关设备实例记录指示其在设施中的位置、属性(名称、所支持的阻力范围、目标身体部位等)和使用统计。例如,使用统计的示例可以包括基于以下历史模式的概率:给定的设备在一天中的给定时间、一周中的给定日期以及一年中的给定月份期间处于使用中。在一些情况下,使用统计还可能指示使用的频率和使用的工作周期的统计,例如,指示平均用户在12月的周一下午1点于下午3点之间使用给定设备平均三分钟,标准偏差为30秒。

在一些实施例中,可以基于锻炼设施的这些记录动态地组成锻炼(例如,通过构建锻炼视频块的序列)。例如,在一些实施例中,在用户计算设备上执行的应用可以与用户设备的操作系统的地理定位框架对接,并且订阅指示用户计算设备已经跨越与健身设施相关联的地理围栏(或在地理围栏内)的事件。在检测到地理围栏的横越后,或者在观察到应用程序确定设备存在于地理围栏内后,一些实施例可以访问上述锻炼设施记录中的一个,例如,服务器端或客户端。在一些情况下,客户端用户计算设备可以向服务器发送具有例如与地理围栏相关联的健身设施的唯一标识符的指示,通过该标识符可以检索设施的记录。在其它情况下,用户的存在可以由用户从菜单选择设施或用他们的计算设备扫描无线码(例如,用他们的摄像头扫描qr码或用nfc传感器扫描nfc码)来指示。

在一些实施例中,锻炼可指定练习序列和所关联的视频,其中一些涉及锻炼设施处的各种设备。例如,用户计算设备可以发送指示设施的标识符的锻炼请求,一些实施例中可以访问用户的模板锻炼,例如,基于用户简档用下面描述的技术构建的模板锻炼。

然后,一些实施例可以选择与锻炼模板和锻炼设施处可用的设备一致的锻炼。在一些情况下,模板可以指定标准序列(例如,身体区域、强度水平、肌肉组、受伤约束等),按照所述标准序列选择每个视频块。在一些情况下,模板还可以指定适合于重新排序的序列的子集(例如,第一部分可以标识三个标准集,每个标准集可以以任何顺序被应用以选择三个相应的锻炼视频,接着是第二部分,所述第二部分标识五个这样的标准集,然后是第三部分,所述第三部分具有两个标准集,针对总计十个锻炼视频)。在一些情况下,在给定阶段满足标准的每个视频可以被称为候选视频,并且那些候选视频可以各自与锻炼设备相关联。在一些实施例中,在用户计算设备上执行的应用可以包括输入,通过该输入,用户可以指示给定的锻炼设备件正忙,并且一些实施例可以通过访问上述数据结构来动态地重组锻炼,例如通过前进到模板指示可以重新排序的部分中的下一个锻炼视频块(例如,选择上述第二部分中的五个中的不同一个),或者通过在满足该标准集的候选中选择替代锻炼视频块,因此,与用户的目标和锻炼模板一致。

例如,锻炼模板可以指示用户接下来将练习二头肌,并且系统可以标识满足标准的两个视频块,例如,一个描绘二头肌机器的使用,而一个描绘自由重量弯举练习。系统可以为用户选择视频块以在二头肌机器上练习二头肌并指示用户移动到机器。在到达后,用户可以指示二头肌机器正忙(例如,用户界面可以在练习之间向用户呈现两个输入,通过所述两个输入,他们指示他们何时到达以及下一站是否正忙)。然后,一些实施例可以取消该视频块并通过选择与模板的标准一致的替代来将另一视频块排队等候以用于弯举。在另一个示例中,二头肌练习可以是锻炼模板的一部分的一部分,所述锻炼模板指定肱二头肌和肱三头肌可以以任何顺序进行,并且一些实施例可以取而代之地选择肱三头肌练习并推迟二头肌练习。

在一些实施例中,标准集是搜索标准,或者在一些实施例中,标准集是过滤标准。过滤标准可以返回满足标准的响应,而不必指示响应量。搜索标准可以返回结果,所述结果指示标准与结果之间的对应强度。例如,标准集可以指定用于选择后续视频块的五个不同标准(例如,男性教练、上半身区域、高强度、膝受伤兼容、没有卧推设备),并且一些实施例可以标识满足那些标准中的至少一些标准的视频块,在一些情况下指示满足了多少标准,并且一些情况下用布尔值的加权和指示是否满足每个标准。因此,一些实施例可以根据搜索标准与视频块的各个属性之间的对应量来对视频块或其中的练习进行评分。一些实施例可以根据这些评分对练习或描述那些练习的视频块进行排名,并选择最高或最低排名的视频块,例如,取决于较高评分是否指示较高的对应性,反之亦然。在一些实施例中,可以在排名之前基于各种标准对评分进行加权,例如,基于用户上次观看视频块的时间、用户练习身体的区域、追求的健身重点等。此外,在一些情况下,可以基于用户先前针对涉及具有相同指导者的相同练习的视频块或相同身体组而提交的喜欢或不喜欢的量或其它评级来对评分进行加权。

在一些情况下,系统可以确定基于使用统计来重新排序而不是改变练习。例如,一些实施例可以比较与每个候选视频块相关联的练习设备的使用统计,并在确定所选候选具有低于阈值使用概率后选择候选视频块。在确定没有候选满足阈值(例如,大于、大于等于、小于,或小于等于,取决于度量是否被反转)后,一些实施例然后可以对锻炼重新排序。或者一些实施例可以选择与具有最高可用概率的设备相关联的下一个视频块。

因此,一些实施例可以相对快速地引导用户完成锻炼,同时仍然满足用户的目标并且适应锻炼设施的相对繁忙的部分。一些实施例可以基于设备的预测使用来预测性地构建锻炼序列。在一些情况下,锻炼设施可以提供应用程序界面,通过该应用程序界面可以查询锻炼设备以确定锻炼设备是否在使用中。例如,一些设施可以为锻炼设备提供传感器,通过所述传感器,设备在中央服务器处注册为处于使用中,该中央服务器经由api暴露数据。在一些情况下,可以在上面的选择中引用所报告的使用状态,而不是(或除了)使用概率。在一些情况下,实施例可以针对锻炼模板的剩余部分针对每个候选视频块中的每个锻炼设备查询api。基于响应,一些实施例可以确定难以访问的设备(例如,具有低于阈值的可用概率)未被使用并且推进与上述技术一致的锻炼视频块以选择下一视频并利用未使用的设备。或者在另一个示例中,一些实施例可以确定用户接下来要练习小腿肌肉,并且基于历史使用模式,选择特定小腿肌肉练习,该特定小腿肌肉锻炼使用在锻炼设施处在当前时间具有预测的低使用率的锻炼设备。

一些实施例可以在设施层面优化锻炼,例如,代表锻炼设施来优化锻炼,使得设施的用户当中的合并锻炼集被集体优化,以最大化设备使用,最小化与所安排的锻炼的偏差,最小化用户锻炼时间,或优化这些和其它因素的加权组合。一些实施例可以执行bin打包算法以在与可用候选一致的候选练习中进行选择,例如,一些实施例可以执行第一拟合算法。

在一些情况下,可以定期对设施进行批量选择。例如,一些实施例可以每分钟或根据某些其它频率来选择组。在每次迭代期间,为了形成批次,一些实施例可以收集针对与多个用户相对应的对下一个练习的请求集以及针对那些用户中的每个用户而言对下一练习的约束,如对允许重新排序的当前锻炼的每个剩余部分而言,针对每个用户的下一练习的候选列表。然后,一些实施例可以在该集合内用各种bin打包算法对组进行优化,例如,第一拟合算法、最佳拟合算法、下一拟合算法等。在一些实施例中,算法可以在给定批次内实现大量优化,例如,该算法可以使给定轮次的选择内在组当中所浪费的时间总量最小化。一些实施例可以重复该过程,例如,每30秒、每分钟、每两分钟,或根据一些其它频率。或者,一些实施例可以基于预期可以与若干候选下一练习之一一致的下一件设备,大量地为每个个体选择下一锻炼。

通信组件140可以被配置成将第一锻炼视频块发送到用户的用户设备(例如,客户端计算平台102)。在一些实施例中,通信组件140可以被配置成经由客户端计算平台102内的用户界面,经由电子邮件,经由文本消息,经由网站和或用其它通信形式进行通信。例如,在一些实施例中,通信组件140使用户界面显示所选锻炼视频块。在一些情况下,通信组件140可以被配置成传递与所选锻炼视频块有关的其它信息(例如,描述、评论、评级等)。在一些情况下,通信组件140可以被配置成向用户发送其它信息。例如,用户可以接收促销、健康提示、锻炼提示、提醒(例如,自上次锻炼以来已经“几天”)和/或其它信息。

可以使用各种技术来完成发送视频。在一些情况下,用传输控制协议(tcp)分组发送视频。或者在一些实施例中,可以使用其它格式来加速视频传送。通常,tcp分组与序列标识符一起发送,并且接收设备的操作系统的网络栈可以在将分组传递给在操作系统中注册的应用程序之前根据该序列标识符排列接收的分组以监视具有分组标头中的端口号的网络套接字。因此,延迟的分组通常可以防止其它分组到达,而不是仅仅丢弃帧,整个视频可以停止播放或缓冲。为了缓解该问题,一些实施例可以使用不同的第四层协议对分组进行编码,例如,在接收应用程序处理分组之前不要求所有分组按顺序放置的分组。在一些实施例中,视频分组可以以用户数据报协议分组(udp)发送,诸如用快速用户数据报协议(quic)。在一些实施例中,双协议可以用于不同类型的信息,例如,视频可以用udp发送,而反馈和其它内容可以经由tcp交换。

在一些实施例中,可以以相对高质量的高比特率格式获得每个视频块,并且可以以不同的比特率以不同的压缩级别对视频块的多个副本进行编码。一些实施例可以基于与给定用户计算设备的连接的带宽,例如基于先前视频块或帧序列的传送速率或基于前一个视频块或帧序列的分组丢失率,在给定视频块的这些候选副本中动态地进行选择。在一些情况下,可以通过在空间上、在颜色空间中、在时间上下采样或通过调整视频压缩算法来丢弃原始副本中的更多信息来改变比特率。在一些情况下,可以在给定锻炼期间动态地选择和发送不同的质量水平以适应可用带宽的变化。

反馈组件150可以被配置成从用户接收反馈。在一些实施例中,可以在开始发送第一锻炼视频块之后接收反馈。例如,用户可以在接收视频之前,在接收视频块但在播放视频块之前,在播放视频时或在播放视频后,提供关于第一锻炼视频块的反馈(例如,用户可以接受、拒绝、跳过、喜欢、不喜欢、更难、更容易或提供其它反馈)。在一些实施例中,用户可以将身体状况指示为反馈(例如,疲倦、疼痛等)。在一些实施例中,用户可以基于正在发送的锻炼视频块的描述来提供关于第一锻炼视频的反馈。锻炼视频块的描述可以包括锻炼的名称、锻炼步骤的描述、锻炼类型的描述、益处的描述以及描述锻炼的其它信息。在一些情况下,将锻炼视频块的描述在锻炼视频块之前发送给用户。在一些情况下,描述与锻炼视频块同时发送。

在一些实施例中,可以向用户呈现选项(或问题)以帮助他提供反馈。可以向用户呈现他可以选择以提供他的反馈的一个或多个选项。例如,用户可以选择“接受”、“拒绝”、“跳过”、“喜欢”、“不喜欢”、“更难”、“更容易”、“更喜欢这个”、“不喜欢这个”、从不喜欢这个”、“赞”、“贬”、“许多颗星”等中的一个或多个。作为选择一个或多个动作的结果,可以向用户呈现更多选项或问题以提供更具体的反馈。例如,可以询问用户他为什么不喜欢视频块,或者他为什么喜欢视频块,或者可以在多个视频块之间给予用户选择以间接地从用户获得反馈。

在一些实施例中,反馈组件150可以被配置成从传感器104接收反馈。例如,反馈可以是从传感器104接收的生理、行为、医疗或其它信息的形式。从传感器104接收的反馈的示例可以包括心率、脉搏率、血氧饱和度、呼吸率、呼吸信息、身体运动或缺乏运动、身体位置运动持续时间、身体疼痛信息或其它生理信息。行为信息的示例可以包括用户行为、语音、外观、姿势、礼仪、态度或其它行为信息。例如,从传感器104接收的反馈可以指示用户基于他的移动、身体位置、呼吸等正确地跟随方向。或者,反馈可以指示用户没有正确地跟随(例如,跌倒检测,或者用户呼吸沉重,心率过高等)。

在一些实施例中,选择组件130可以被配置成从锻炼视频块的集合中选择第二锻炼视频块。通信组件140可以被配置成开始发送所选第二锻炼视频块。可以基于第一锻炼视频块中的一个或多个,基于关于第一锻炼视频块的反馈,基于一个或多个用户简档属性,基于锻炼视频块的分组(例如,身体区域分组、锻炼类型分组等),基于锻炼强度水平,基于从计算环境100的其它组件获得的信息,或其任何组合来选择第二锻炼视频块。

例如,在一些实施例中,可以选择第二视频块作为锻炼组的一部分。例如,所选第一个视频块是上半身热身练习,第二视频块将是下半身热身练习,第三视频将是伸展练习。在此示例中,前三个视频来自相同的锻炼组“热身”。可以从相同组或不同的组(例如,有氧运动,放松等)中选择后续视频块。在一些实施例中,可以以相同或不同的强度水平从相同的身体区域组中选择第二锻炼视频。例如,第一视频块可以包括弓步,而第二视频块可以包括深蹲或哑铃弓步。在一些实施例中,第一视频块选自一个身体区域,而第二视频块选自另一个身体区域。

在一些实施例中,选择组件130可以被配置成基于来自传感器104的反馈来选择第二锻炼视频块。可以通过将传感器读数与目标值进行比较来选择第二锻炼视频块。在一些情况下,可以将传感器读数与在用户简档中表达的值、对应于健身目标的值、对应于锻炼方案的进展的值进行比较。例如,选择组件130可以基于心率读数与用户简档中的目标心率的比较来选择视频强度(例如,如果心率低于目标值则选择更快的锻炼,并且如果心率高于目标值则选择更慢的锻炼)。在另一示例中,可以基于用户对第一视频块的顺应性来选择第二视频块(例如,如果移动传感器检测到用户停止跟随视频,则可以为第二视频选择不同类型的锻炼)。例如,实施例可以参考锻炼流以标识接下来的练习类型,然后基于实时反馈(例如,在完成练习期间或几分钟内的反馈)在该类型锻炼内的视频块中进行选择。

在一些实施例中,通信组件140在第一锻炼视频块在用户设备上完成播放之前开始发送第二锻炼视频块。例如,一旦接收到与第一视频相关的反馈(例如,来自用户、传感器104,或如上关于与第一视频块相关的反馈所描述的其它源)。在一些情况下,可以在第一视频结束之前发送第二视频块,而不管接收到反馈。在一些情况下,如果接收到反馈指示不同的第二视频将更合适,则可以在播放之前(或在其开始播放之后)调用第二视频。在这种情况下,可以向用户发送不同的第二视频。在一些实施例中,通信组件140在第一视频完成播放之后开始发送第二视频块。在一些实施例中,可以在第一视频之后的预定时间段内发送第二视频块。例如,为用户提供时间来提供反馈或给予服务器108时间来处理来自传感器104或来自其它来源的反馈。在一些实施例中,直到用户选择播放第二视频才播放第二视频。在这种情况下,用户可以选择播放由选择组件130选择的视频,或者可以选择不同的动作(例如,跳过视频,向我显示不同的视频,或浏览视频块并选择他选择的视频),或者可以提供额外的反馈以指导选择组件130选择不同的视频。

在一些实施例中,一个或多个数据结构可用于组织计算环境100中的信息(例如,与用户、锻炼视频块、传感器有关的信息和/或与计算环境100的功能相关的其它信息)。可以使用的数据结构的示例包括链接、数组、关联数组、记录、变体数据结构或其它类型的数据结构。在一些实施例中,标记组件160可以被配置成将一个或多个属性附加到锻炼视频块。在一些情况下,属性可以基于用户与计算环境100的交互被附加到视频块,或者由系统管理员附加到视频块。由系统管理员提供的属性可以包括锻炼、解剖结构、铰链、受伤、成效或其它属性。例如,锻炼属性可以包括描述由教练在视频块中执行的锻炼或锻炼所需的设备的标识符。锻炼属性的示例可以包括:弓步、俯卧撑、波比、哑铃、壶铃等。解剖结构属性可以包括描述由在视频块中执行的练习影响的身体部位的标识符(例如,腿部、核心、脚、肩膀、上半身、下半身等)。教练属性包括描述教练和训练风格的标识符(例如,教练姓名、性别、训练风格或与教练相关的其它信息)。受伤属性包括描述可能受到练习和正在进行的运动正面或负面影响的损伤的标识符(例如,髌腱炎、小腿拉伤、acl撕裂等)。成效属性包括描述由正在执行的练习影响的健身目标的标识符(例如,平衡、力度、力量、耐力等)。图3示出了包括由系统管理员提供的属性的视频块数据结构的示例300。

基于用户与计算环境100的交互的属性可以基于用户提供的反馈(例如,接受、拒绝、跳过、喜欢、不喜欢、更难、更容易或者由用户提供的其它反馈)、来自传感器104的反馈、来自其他用户的反馈,以及与用户与计算环境100的交互相关的其它反馈。图4示出了反馈属性的示例400。

在一些实施例中,可以从在客户端计算设备上执行的本机应用程序获得反馈,以呈现视频,缓冲视频,并与服务器108通信以实现锻炼。在一些情况下,应用程序包括显示视频的用户界面。在一些实施例中,用户界面包括多个输入,当由用户选择时,使得指示用户输入的消息被发送回服务器108(或执行相应的例程客户端侧)。在一些实施例中,输入是覆盖在视频显示器上的屏幕的区域,如屏幕的触敏区域或屏幕的可点击区域,其映射到在相应区域中的用户输入后调用的相应事件处理程序。在一些情况下,对应的事件处理程序可以使客户端应用程序将消息发送回指示输入的服务器108。

在一些情况下,客户端应用程序可以从由提供客户端计算设备的操作系统的实体控制的服务器进行分发。在一些情况下,出于安全目的,应用程序的安装包可能包括签有操作系统提供商的凭据的安全证书。在一些情况下,客户端应用程序可能会接受其它形式的输入。例如,一些实施例可以监测客户端设备的麦克风以获得指示用户命令的音频输入。例如,一些实施例可以在客户端计算设备上执行例程,该例程可操作以检测来自麦克风的音频流中的唤醒字的发声。例如,一些实施例可以使用“您的教练”的唤醒词。(将音频识别限制在跟随唤醒字的序列期望在移动上下文中节省电池和带宽,但是实施例不限于提供这些益处的实现方式。)在一些实施例中,用户可以命令“您的教练更容易”或“您的教练更难”。在检测到唤醒字后,一些实施例可以从麦克风发送跟随音频流(例如,达阈值持续时间,或直到该流静默达阈值持续时间)到远程服务器以转录到文本,这可以经由网络返回到客户端应用程序或服务器1208。在一些情况下,一些实施例可以将文本与对应于不同用户输入的模式集(例如,正则表达式或n元语法)进行比较,并且在检测到匹配后,实现所请求的操作。因此,在一些实施例中,用户可以在不触摸鼠标或屏幕的情况下请求更容易或更难的锻炼视频。

在一些情况下,客户端计算设备可以包括摄像头或距离成像传感器,诸如飞行时间传感器、立体深度传感器、结构化光深度传感器等。在一些实施例中,在客户端计算设备上执行的应用程序可操作以接收图像序列(在一些情况下具有距传感器的距离和与每个像素相关联的颜色),如在视频中。在一些实施例中,在客户端计算设备上执行的应用程序可以对出现在图像序列中的姿势进行分类,或者将序列发送到远程服务器以进行分类。例如,一些实施例可以使用santos等人在hagr-d:anovelapproachforgesturerecognitionwithdepthmaps,sensors2015,15,28646-28664;doi:10.3390/s151128646中描述的技术对姿势进行分类。

在一些情况下,可以根据指示本文描述的各种输入来对姿势进行分类,例如,在视频片段之间重复地向下移动手掌可以指示降低强度的命令,反之亦然。在一些情况下,在客户端计算设备上执行的应用程序可以被配置成通过局域网将视频发送到同一局域网上的另一计算设备,诸如机顶盒或智能电视,并且视频可以在另一个设备上显示,其中移动设备具有上述摄像头和范围传感器,其定位成对用户成像并接收这些输入。

在一些情况下,可以基于正被显示的视频对姿势进行分类,例如,通过检测视频中的移动与用户的成像中感测的移动之间的差异量。一些实施例可以响应于这些差异而自动调整视频序列或使得显示指令。在一些情况下,每个视频可以与相应的姿势分类器相关联,并且该分类器可以在播放视频时被发送到用户计算设备(或以其它方式被访问,例如,针对先前存储的那些)。具有特定于练习的姿势分类器相对于必须另外区分练习的系统,期望产生更高的准确度分类。在一些情况下,姿势分类器可以被配置成输出指示用户锻炼的质量的各种评分,例如,视频中的移动与感测的移动之间的滞后量,视频中的移动频率与感测的移动频率,视频中的移动范围和感测的移动范围。在一些情况下,当捕获视频时,指导者可以遵从相同或相似的一组图像传感器,并且可以捕获带时间戳的姿势流(和相关参数)并将其与用户的那些进行比较。在一些实施例中,它们之间的差异或用户移动的参数可以用作本文描述的反馈类型中的一种。

在一些实施例中,锻炼设施中的设备可以包括相关的显示器,诸如平板计算机、计算机或智能电视,其安装到设备上(或邻近设备)的适当位置使得用户可以观看显示器(从而释放他们的手),并且在一些情况下,特定于健身房设备的显示器可以执行应用程序,所述应用程序被配置成从用户计算设备接收视频指令,使得那些显示器呈现经由用户计算设备获得的锻炼视频。在一些情况下,设备上与练习有关的视频可以被预先高速缓存并存储在设备安装的显示器的存储器中,或者在一些情况下,视频可以从用户计算设备流式传输到那些显示器,例如,用miracasttm、chromecasttm、webrtc或各种点对点协议,例如,经由局域wi-fi网络,例如,从本地高速缓存的视频中提取以减少带宽使用并相对于从远程服务器发送的视频降低延迟。或者在一些情况下,视频可以从远程服务器流式传输。在一些实施例中,锻炼设施还可以包括具有计算设备和所关联的显示器的信息亭,用户可以通过该信息亭输入他们的锻炼的属性,提供反馈或查看指令。

在一些实施例中,可以使用其它传感器来量化或质量化用户的练习。例如,一些实施例可以从与移动计算设备或可穿戴计算设备(例如,附接到用户的设备)相关联的惯性测量单元获得读数流,并提取指示练习质量的特征。例如,一些实施例可以执行动态时间扭曲算法以模拟匹配惯性测量单元读数流(例如,用来自陀螺仪或加速度计的三维或六维的时间戳加速度测量的序列)以从用于执行的练习中分类或提取特征,例如,测量这种练习中的运动范围,测量这种练习的频率等。一些实施例可以根据与该数据流匹配的模式对用户的形式和锻炼的重复进行分类或评分。在一些情况下,可以基于当前视频使用类似于其它地方描述的用于对图像中的姿势进行分类的技术下载或选择特定于锻炼的分类器或特征提取器,以减少算法的搜索空间并提高准确性。

在一些实施例中,可以经由可穿戴计算设备提供输入,或者可以经由可穿戴计算设备呈现视频或音频。例如,在一些情况下,可以在可穿戴计算设备(如智能手表)上输入音频输入或触摸输入。在一些情况下,该可穿戴计算设备可以与上述执行与服务器108连接的应用程序的用户计算设备的实例连接,或者在一些情况下,可穿戴计算设备可以用作用户计算设备。

一些实施例还可以包括与练习之外的事物有关的视频块。例如,一些实施例可以使用上述技术来推断特定习惯对用户有用并且选择提倡和关于那些习惯进行教育的视频。例如,一些实施例可以用视频块跟随锻炼,指示用户饮用64盎司的水,拉伸,以参与特定的营养专利实践。

如图1中所示,组织组件170可以被配置成通过使用属性评分对视频块进行排序。在一些实施例中,属性评分是视频块属性(如上所述)或用户简档属性(如上所述)中的一个或多个的函数。图5示出了组织组件170使用的用户简档属性的示例500。例如,在一些情况下,属性评分可以是锻炼属性、解剖结构属性、教练属性、受伤属性、成效属性、反馈属性或用户简档属性中的一个或多个的函数。如上所述,用户简档属性可以包括从传感器104接收的信息。在一些实施例中,可以基于视频块的属性评分并基于用户简档属性对视频块进行排名。例如,可以选择最高评分视频块以呈现给用户。图6至图7示出了基于评分属性的视频选择的示例600和700。

图8示出了视频块排序的示例状态图。在该示例的操作中,个人化锻炼视频创建服务器108通过首先访问他们的简档(由圆圈802表示)和简档属性来动态地创建用户的锻炼,该简档属性包括诸如自上次锻炼以来的时间和来自传感器(例如,穿戴式设备)的外部数据的信息。该交互由方形804表示。该检查的结果用于选择正确的第一块(由实心黑点806表示)以呈现给用户。在一些情况下,可以根据用下面描述的技术训练的监督机器学习模型来进行选择。一旦块处于活动状态,用户就可以执行多个操作或不操作,诸如“跳过”、“更难”、“更容易”或“完成”,这将确定它们通过系统的路径。来自每个决策点的线表示到下一块的可能路径(虚线808)或实际路径(实线810),其中中间线812是用户不采取行动的路径。由服务器108基于动作或用户的不操作做出的决定被存储,以便在稍后的时间被调用,例如,用于下面描述的训练设置。服务器108的目标是学习用户的属性和行为,使得用户的路径变得更加线性,指示系统正在改进其在那时为用户呈现最正确的块的能力。在一些情况下,选择可以包括非确定性输入,例如随机或伪随机值(如用线性移位寄存器确定的),并且可以基于其标识符的较低有效数字是否对应于(例如,最接近于)随机值来选择后续视频。在一些情况下,可以根据本文描述的技术选择候选后续视频块,并且在合格候选中的选择可以是非确定性的以使用户保持对例程感兴趣。

在一些实施例中,计算环境100的用户可以通过计算环境100或经由其它方式共享、请求共享或请求查看锻炼数据、表现、参与游戏或竞赛。计算环境100可以向用户提供来自另一用户设备的锻炼数据。例如,用户可以选择在他完成锻炼时将通知发送给其他人(计算环境100的用户或非用户)。这些通知可以经由计算环境100(对于其他用户)发送,或者经由电子邮件、文本、推特、facebook帖子或向其他人发送通知的其它方式发送。在一些实施例中,通知可以包括关于锻炼、表现、图片、视频等的信息。计算环境100的用户可以彼此挑战,相互评价,相互提供反馈,或参与其它社交交互。在一些实施例中,计算环境可以向用户提供与系统的其他用户的匿名比较。例如,基于表现、用户锻炼的时间、健康、体重减轻等相对于其他用户对用户进行排名。

图9示出了根据一个或多个实施例的用于为用户动态创建个人化锻炼视频的方法900。以下呈现的方法900的操作旨在是说明性的,这并不意味着上述讨论旨在是限制性的。在一些实施例中,方法900可以用未描述的一个或多个附加操作或没有所讨论的一个或多个操作来实现,这并不意味着任何其它组件限于所描述的特征。另外,方法900的操作在图9中示出并且在下面描述的顺序不旨在是限制性的,这并不意味着任何其它组件限于所描述的特征。

在一些实施例中,方法900的一个或多个实现方式可以在一个或多个物理处理设备中实现(例如,数字处理器、模拟处理器、设计用于处理信息的数字电路、设计用于处理信息的模拟电路、状态机或用于电子处理信息的其它机构)。一个或多个处理设备可以包括响应于电子地存储在一个或多个电子存储介质上的机器可读指令而执行方法900的一些或全部操作的一个或多个设备。一个或多个物理处理设备可以包括通过硬件、固件或软件配置的一个或多个设备,其被专门设计用于执行方法900的一个或多个操作。

如图9中所示,在方法900的操作902处,可以获得锻炼视频块的集合。该集合可以包括锻炼视频块的多个身体区域分组。个体身体区域分组可以包括被指定为具有不同锻炼强度的多个锻炼视频块。在一些实施例中,操作902可以由与访问组件120(在图1中示出并在本文描述)相同或相似的访问组件来执行。

在操作904处,可以从用户简档中检索用户简档属性。用户简档属性可以包括健身目标或练习约束。在一些实施例中,操作904可以由与访问组件120(在图1中示出并在本文描述)相同或相似的访问组件来执行。

在操作906处,可以从集合中选择第一锻炼视频块。可以基于健身目标或练习约束以及所选第一锻炼视频块的强度水平或身体区域分组来选择第一锻炼视频。在一些情况下,可以根据用下面描述的技术训练的监督机器学习模型来进行选择。在一些实施例中,操作906可以由与选择组件130(在图1中示出并在本文描述)相同或相似的选择组件来执行。

在操作908处,可以将第一锻炼视频块发送到用户的用户设备。在一些实施例中,操作908可以由与通信组件140(在图1中示出并在本文描述)相同或相似的通信组件来执行。

在操作910处,可以接收来自用户的指示用户对第一锻炼视频块的响应的反馈。可以在开始发送第一锻炼视频块之后接收反馈。在一些实施例中,操作910可以由与反馈组件150(在图1中示出并在本文描述)相同或相似的反馈组件来执行。

在操作912处,可以从集合中选择第二锻炼视频块。在一些情况下,可以更新会话记录以指示用户已经前进到锻炼流的下一阶段,例如,从腿部到背部。可以基于反馈、第二锻炼视频块的强度、锻炼流中的用户的当前状态以及第二视频块的身体区域分组来选择第二视频块。在一些实施例中,操作912可以由与选择组件130(在图1中示出并在本文描述)相同或相似的选择组件来执行。

在操作914处,可以开始将第二锻炼视频块发送到用户的用户设备。在一些实施例中,操作914可以由与通信组件140(在图1中示出并在本文描述)相同或相似的通信组件来执行。以反馈循环方式描述的操作910至914。

可以用各种技术来执行视频块的动态选择。在一些情况下,规则可以是硬编码的,并且可以根据根据用户简档中的信息和当前反馈执行那些规则的规则引擎来进行选择。在一些实施例中,可以训练机器学习模型以选择视频块。由于视频块选择的时间序列,一些实施例可以训练其它类型的模型,例如,隐马尔可夫模型或递归神经网络。

例如,可以训练第一模型以选择出现在块中的锻炼指导者。实施例可以要求用户对他们的锻炼指导者进行评级并将这些评级与用户的简档相关联。该数据可以用作训练设计。然后,实施例可以通过迭代地调整系数,确定模型描述训练设置的接近程度来确定模型的加权或系数,例如神经网络或决策树,然后期望在对应的方向上增加调整加权或系数。然后,所得模型可以接收当前用户的简档作为输入,并且基于训练的加权和系数,可以确定候选锻炼教练的评分或选择以基于训练数据标识用户的最佳拟合。

使用类似的技术,可以选择锻炼指导者的锻炼例程。同样,可以通过要求用户用不同的例程或锻炼流来评估他们的体验来训练模型,并且可以训练锻炼流模型。然后可以使用该模型来确定用户将体验的所选指导者的锻炼流。

类似的技术也可用于在流的每个阶段内选择锻炼块。在一些实施例中,可以要求用户对每个练习进行评级,并且用户的当前和紧接在前的反馈可以与评级一起形成训练设置。一旦经过训练,该模型可用于为提供类似实时反馈的其它类似位置的用户选择后续视频块。

一些实施例可以包括界面,通过该界面,私人教练可以增强用户对应用程序的体验。例如,一些用户可能相对不经常会见私人教练,如每月一次获得指导。在一些实施例中,私人教练可以在私人教练账户中登录该应用程序并提交要添加到给定用户账户的推荐。在一些情况下,这些推荐可以是对本文其它地方描述的加权的调整,通过该加权选择各种练习或者可以是锻炼的模板。在一些情况下,这些推荐也包括锻炼计划。然后,一些实施例可以根据提交的私人教练推荐来调整推荐的锻炼。在一些情况下,实施例可以收集关于锻炼功效的数据并将数据存储在用户的简档中。然后,一些实施例可以提供仪表板或其它用户界面,私人教练可以通过该仪表板查看那些度量并且用用户的锻炼方案诊断问题。在一些情况下,该过程可以周期性地重复,例如每月一次,使得用户受益于私人教练,但由于本系统添加的智能,需要与私人教练相对不频繁的接触。在一些实施例中,由教练查看的仪表板中的数据可以包括在本文其它地方描述的指示练习质量的数据,包括姿势分类、姿势特征检测、姿势评分、生物特征测量,如心率、脉搏血氧测定等。在一些情况下,从可穿戴设备提取数据,该数据包括指示训练和指示人生活的其它方面的数据,例如睡眠模式、体重、体脂百分比等。在一些情况下,数据可以由与用户相关联的其它传感器收集,例如,用户家中的物联网设备(例如,网络连接的秤和体脂传感器)和与用户相关联的可穿戴计算设备(例如,具有脉冲传感器、惯性测量单元和可操作以测量血氧水平的脉搏血氧计的智能手表)。

在一些实施例中,在确定用户在健身设施中后在用户计算设备上执行的应用程序可以在完成一个练习后自动暂停以给予用户转换到应用程序向用户指引的另一设备的时间。一些实施例可以包括输入,通过该输入,用户指示已经到达准备继续或输入的另一件设备,用户通过该输入指示在请求与用户的锻炼一致的不同视频块时使用另一件设备。

在一些实施例中,可以训练机器学习模型以基于用户的目标选择锻炼。例如,在一些情况下,训练设置可以包括先前用户设定的目标、那些用户的简档、那些用户的锻炼以及用户是否实现其目标的指示。一些实施例可以根据用户是否满足其所述目标来过滤训练设置。一些实施例可以根据简档来对用户进行聚类(例如,用基于密度的聚类算法,例如db-scan),以标识彼此相似的用户组,例如,具类似的简档并且已经发送了类似的目标。在一些情况下,一些实施例然后可以检测每个聚类内的锻炼的特征,例如,与满足聚类中的群体的目标相关联的所选锻炼中的模式。例如,对于每个聚类,实施例可以训练决策树以基于锻炼历史将用户分类为可能满足其目标。然后,一些实施例可以使用这些检测到的特征和聚类来为其他用户推荐锻炼。例如,一些实施例可以从给定用户接收锻炼请求,确定哪个聚类与该给定用户最匹配,然后为该用户选择包括在他们的锻炼内在该聚类中的用户中检测到的未来的锻炼。

在一些实施例中,可以通过对历史标记数据的训练设置(例如,用户评级和用户帐户的状态)执行机器学习算法来计算本文描述的加权或系数中的一些或全部。一些实施例可以执行梯度下降优化以降低错误率并选择适当的加权和阈值,诸如在过滤中使用的那些。在一些情况下,可以周期性地计算预测模型(例如,加权向量)作为批处理运行。一些实施例可以通过例如分配随机选择的权重来构建模型;计算模型描述历史数据的误差量和该误差的变化率,作为当前权重附近模型中权重的函数(例如,导数或局部斜率);并向下(或减少误差)方向增加权重。在一些情况下,可以迭代地重复这些步骤,直到迭代之间的误差变化小于阈值量,如果不是全局最小值,则指示至少局部最小值。为了减轻局部最小值的风险,一些实施例可以用多个初始随机值重复梯度下降优化以确认迭代收敛于可能的全局最小误差。其它实施例可以迭代地调整其它机器学习模型以减少误差函数,例如,用优化当前迭代的贪婪算法。所得训练模型(例如,权重或阈值的向量)可以存储在存储器中,并且稍后检索以应用于新计算的聚合估计的新计算。

在一些实施例中,可以通过用训练设置训练机器学习模型来为给定会话中的给定用户选择视频块。一些实施例可以从先前会话获得训练设置。训练设置中的每个记录可以包括给定会话的输入,包括:用户的简档、用户的先前锻炼(例如,视频块列表或其属性。训练设置中的每个记录可以包括基于输入在会话中呈现的视频块序列。并且每个记录可以包括来自用户的指示该会话中的锻炼成功的反馈:例如,视频块中的变化量(例如,请求增加或减少强度、不同练习或身体组、不同的持续时间、不同的频率、不同的指导者);来自上述传感器中的一个的生物反馈;或者用户是否在一段时间内坚持随后的锻炼(例如,他们至少在一周内返回进行另一次锻炼)。在一些情况下,一些实施例可以基于训练设置中的每个会话的这些因素中的一个或多个来计算反馈评分,例如,可以选择加权值组合或一个值作为唯一的度量。

在一些实施例中,可以训练递归神经网络以基于上面在训练设置中提到的输入类型来建议后续视频块。在一些实施例中,模型可以包括循环的感知器图,其中一些神经元的至少一些输出反馈到它们自身或者最终反馈到那些感知器中的其他感知器。一些实施例可以使用如上所述的用于梯度下降参数选择的技术,例如,用时间反向传播而用训练设置训练长短期存储器网络(lstm)。

在一些实施例中(例如,在反馈是不可微分的一些情况下),可以通过训练的离散隐马尔可夫模型(hmm)为给定会话中的给定用户选择视频块以基于训练设置中上面提到的输入类型建议后续视频块。例如,一些实施例可以用baum-welch算法或baldi-chaivin算法训练hmm。一些实施例可以通过将转移概率矩阵的值拟合到训练数据来推断不同练习(或先前练习的序列和多级hmm中的其它时变输入)之间的转移概率矩阵,例如,选择在解释训练数据时最大化转移概率矩阵的适应度测量的值。

在一些实施例中,可以在批处理中周期性地训练这些各种模型,例如每天、每周或每月。在一些实施例中,然后可以在选择视频块时访问模型。可以响应于各种信号选择下一个视频,例如,响应于确定正在播放的给定视频块达到阈值持续时间(如在视频块结束的20秒内),或者响应于事件处理程序接收用户反馈(例如,在从客户端计算设备接收到具有会话标识符和相关反馈值的消息后,如“喜欢”、“不喜欢”、“更容易”或“更难”。一些实施例然后可以将用户简档的当前状态和会话输入到上述模型中的一个,其可以输出用每个候选视频块选择的评分(例如,每个视频块有一个,或者每个视频块有一个受到由锻炼中的一个阶段施加的约束条件,如有一个指定下一个视频块应该与手臂或腿部相关或者比当前视频块具有更低强度或更高强度)。一些实施例然后可以选择具有由模型指示的最高评分的候选视频块,例如,神经网络中最强的感知器输出,或最高转换概率等。

在一些实施例中,可以针对锻炼的不同阶段训练不同的模型,例如,一个用于热身,一个用于锻炼的核心,一个用于放松;或者一个用于腿部,一个用于手臂,一个用于胸部等。或者一些实施例可以训练受不同约束的不同模型。例如,一些实施例可以训练受到膝伤的约束的模型,例如,选择对应于该条件的训练设置中的记录,并且基于医学专业人员关于什么是合适的候选的指令来手动约束候选输出。或者一些实施例可以针对不同的用户段训练(和访问以选择视频块)不同的模型,例如具有如性别、年龄范围、优选强度等特定属性的那些用户。

在一些实施例中,可以使用不同的初始条件(例如,任意选择的参数值,如随机选择的参数值)来训练模型。一些实施例可以将所产生的模型的适合度与不同的初始条件比较,并选择具有最佳适合度测量的候选模型。期望该方法可以降低模型在参数空间中优化到局部最小值的风险。

在一些实施例中,可以针对不同片段上的不同训练会话对一些训练数据进行分段。例如,训练数据的10%片段可用于训练模型10次(例如,具有不同的初始条件),并且可以比较所得模型。一些实施例可以选择候选中具有最高适合度的模型,如使用上述度量所测量。

在一些实施例中,可以保留一些训练数据以进行交叉验证。例如,一些实施例可以保留训练设置的10%并且不使用保留数据来训练上述模型。然后,一些实施例可以用训练模型计算保留数据的适合度的聚合度量,例如,使用上述度量,例如,给出一组输入的预测反馈评分与观察到的反馈评分之间的总误差量(例如,总均方根平均误差)。一些实施例可以丢弃比适应度阈值测量值更差的模型或者使警报呈现给技术人员。

已经参考视频描述了本技术,但是应当理解,对于其它形式的介质也可以考虑类似的方法。例如,一些实施例可以用本技术对用于锻炼的音频进行排序。一些实施例可以对用于虚拟现实显示的视频(或三维渲染)进行排序。在一些情况下,上述姿势分类技术可以应用于vr环境中,例如,基于手控制器或其它位置跟踪系统的位置。例如,一些实施例可以在练习中检测用户表格中的缺陷并选择通过其演示正确形式的视频或者显示文本或呈现音频,通过该文本或音频指示用户如何校正他们的形式。一些实施例可以发送锻炼的文本描述,例如,通过名称列出它们。

一些实施例可以提供健身俱乐部、教练和用户之间的各种形式的即时实时通信。一些实施例提供了一个健身俱乐部能够现场或经由记录用户计算设备上的消费来广播他们的课程或事件的能力,如上所述。在一些实施例中,与多个上述锻炼设施相关联的健身俱乐部可以在上述服务器的数据储存库中具有帐户。在一些实施例中,这样的服务器可以包括内容管理系统,其可操作以从健身俱乐部接收视频馈送或记录,并将那些视频流传输到用户计算设备。一些实施例可以记录来自用户计算设备的如上所述与视频流关联的信息,例如以更新用户简档。一些实施例可以为一个健身俱乐部提供现场广播他们的一些或所有课程以供在其它健身俱乐部消费的能力。在一些实施例中,一些实施例可以在用户订阅这类数据馈送或者指示他们已经向已经提供了这种订阅的健身俱乐部登记时选择性地提供对这类视频内容的访问。一些实施例可以经由课程范围的共享计算设备或者在个人用户计算设备上为课程参与者提供彼此通信的能力。例如,一些实施例可以包括发消息服务和相关的社交网络,用户可以经由文本、音频或视频进行通信。在一些情况下,可以将消息发送给整个班级或其中的某些参与者。

一些实施例可以提供关于针对用户的上述技术的各种改进。例如,一些实施例可以根据用户简档动态地选择和提供练习教程视频或音频文件。例如,一些实施例可以响应于指示不同受伤状态的不同用户而向不同用户显示不同的教程。例如,一些实施例可以向膝盖受伤的人显示与膝盖受伤的人不同的深蹲练习教程视频。此外,一些实施例可以为用户提供在有限的运动范围内在就座位置观看动态锻炼视频的能力,例如,用于在移动的交通运输设备中,例如在汽车、火车或飞机中消费。在一些情况下,用户可以经由用户计算设备输入这类约束条件,并且这类约束条件可以应用如上所述技术来根据受伤处(另一种形式的约束条件)选择锻炼。一些实施例还可以提供根据其它约束条件选择动态锻炼的能力。

一些实施例可以根据外部因素(例如温度、下雨、湿度等)动态地调整所选视频块或练习的强度。一些实施例可以订阅第三方天气api,并且周期性地或响应于请求,从第三方天气api摄取指示这些因素的数据。一些实施例可以响应于这些因素自动调整锻炼,例如,调整锻炼视频块选择。例如,一些实施例可响应于较高温度或湿度选择较不强烈的锻炼。此外,在一些情况下,像下雨一样的天气可以用作如上所述的约束,并且实施例可以根据这类约束来选择锻炼。

一些实施例可以被配置成建议食物或饮料供用户例如在锻炼之后或锻炼之间消费。例如,一些实施例可以基于用户的当前位置向特定杂货店存储地图,建议在那些杂货店可用的产品的交易,并且提供根据用户的锻炼目标和用户简档选择的食谱的购物清单。在一些情况下,可以动态地响应于用户在先前锻炼中的表现来进行选择。使用类似的技术,一些实施例可以在锻炼之后自动地建议各种形式的治疗,例如,例如响应于在锻炼期间提供的用户反馈指导用户在锻炼之后去找特定的按摩治疗师或运动医生。一些实施例可以维护具有这类提供者的地理位置的地理信息系统并基于用户简档距离来选择提供者和做出推荐,例如,基于接近(例如,在阈值距离或行进时间内)这类服务的提供者的用户位置。

一些实施例可以建议用户合作的教练或朋友。一些实施例可以根据各种标准对用户和教练进行聚类,例如,用户简档的属性,如目标或锻炼模式。例如,一些实施例可以将用户建模为特征向量,其中如锻炼目标、表现、定时和反馈的用户简档属性被映射到向量的标量。一些实施例可以用dbscan算法对向量进行聚类并建议配对。或者一些实施例可以基于向量空间中的欧几里德距离对配对进行排序,例如向用户建议五个最接近的其他用户或教练。

类似地,一些实施例可以建议具有用户的锻炼设备供用户锻炼使用。例如,一些实施例可以建议用户开始用哑铃训练。在一些实施例中,选择练习的上述技术也可用于选择锻炼设备。

在方框图中,所示组件被描绘为离散功能方框,但是实施例不限于其中如图所示组织本文描述的功能的系统。由每个组件提供的功能可以由与当前描述的组织不同的软件或硬件模块提供,例如,这类软件或硬件可以混合、组合、复制、分解、分布(例如,在数据中心内或在地理上),或以其它方式不同地组织。本文描述的功能可以由执行存储在有形的非暂时性机器可读介质上的代码的一个或多个计算机的一个或多个处理器提供。在一些情况下,虽然使用单数术语“介质”,但指令可以分布在与不同计算设备相关联的不同存储设备上,例如,每个计算设备具有不同的指令子集,与使用本文的单数术语“中等”一致的实现方式。在一些情况下,第三方内容传送网络可以托管通过网络传送的一些或所有信息,在这种情况下,在某种程度上,据说供应或以其它方式提供信息(例如,内容),可以通过发送指令从内容传送网络中检索该信息来提供该信息。

读者应该理解,本申请描述了几个发明。申请人不是将那些发明分成多个独立的专利申请,而是将这些发明归为单一的文件,因为它们的相关主题适用于申请过程中的经济效益。但是,这些发明的独特优点和方面不应该混为一谈。在一些情况下,实施例解决了本文所述的所有缺陷,但应理解,本发明是独立有用的,并且一些实施例仅解决这类问题的一部分或提供对于审查本发明的本领域技术人员显而易见的其它未提及的益处。由于成本约束,本文公开的一些发明可能目前未被要求保护,并且可以在后续申请中要求保护,诸如接续申请或通过修改本权利要求。类似地,由于空间约束,本文件的摘要和发明内容部分都不应被视为包含所有这类发明或这类发明的所有方面的综合列表。

应当理解,说明书和附图并非旨在将本发明限制于所公开的特定形式,而是相反,其目的是涵盖落入如所附权利要求所定义的本发明的精神和范围内的所有修改、等同和替代。鉴于本说明书,本发明各方面的进一步修改和替代实施例对于本领域技术人员而言将是显而易见的。因此,本说明书和附图仅被解释为说明性的,并且是为了教示本领域技术人员实施本发明的一般方式。应理解,本文所示和所述的本发明的形式将被视为实施例的实例。元件和材料可以代替本文所示和所述的元件和材料,可以颠倒或省略部件和过程,并且可以独立地利用本发明的某些特征,所有这些对于本领域技术人员来说在受益于本发明的本说明书之后都是显而易见的。在不脱离所附权利要求中描述的本发明的精神和范围的情况下,可以对本文描述的元件进行改变。本文使用的标题仅用于组织目的,并不意味着用于限制说明书的范围。

如在整个本申请中所使用,词语“可以”以允许的意义使用(即,意味着具有潜在的意义),而不是强制意义(即,意味着必须)。词语“包括”和“包含”等意味着包括但不限于。如在整个本申请中所使用,单数形式“一”、“一个”和“该”包括复数指示物,除非内容明确地另外指出。因此,例如,对“一个元件”或“一件元件”的引用包括两个或更多个元件的组合,但对一个或多个元件使用其它术语和短语,例如“一个或多个”。术语“或”除非另有说明,否则是非排它性的,即包含“和”以及“或”。描述条件关系的术语,例如“响应于x、y”、“在x、y后”、“如果x、y”、“当x、y”等,包含前因是必要的因果条件,前因是充分的因果条件,或者前因是后果的贡献因果条件的因果关系,例如“在条件y获得后发生状态x”是通用的“仅在y后发生x”和“在y和z后发生x”。这类条件关系不限于紧接前因获得的后果,因为某些后果可能被延迟,并且在条件陈述中,前因与其后果相关联,例如,前因与后续发生的可能性相关。将多个属性或函数映射到多个对象(例如,执行步骤a、b、c和d的一个或多个处理器)的陈述包含映射到所有这类对象的所有这类属性或函数和被映射到属性或函数的子集的属性或函数子集(例如,所有处理器各自执行步骤a至d,以及处理器1执行步骤a,处理器2执行步骤b和步骤c的一部分,并且处理器3执行步骤c和步骤d的一部分的情况),除非另有说明。此外,除非另有说明,否则一个值或动作“基于”另一个条件或值的陈述包括该条件或值是唯一因素的实例以及该条件或值是多个因素中的一个因素的实例。除非另有说明,否则某些集合的“每个”实例具有某些属性的陈述不应理解成排除较大集合的某些其它相同或相似构件不具有该属性的情况,即,每个不一定意味着每一个。除非明确指出,否则不应在理解关于所述步骤的序列的限制时加入权利要求中,例如,使用如“在执行x,执行y之后”之类的显式语言,与可能被不恰当地被认为暗示序列限制的语句相反,如“对项目执行x,对被x的项目执行y”用于使进行权利保护更具可读性而非指定序列。涉及“a、b和c中的至少z”等的陈述(例如,“a、b或c中的至少z”)是指所列类别(a、b和c)中的至少z并且每个类别中不需要至少z个单位。除非另外特别说明,否则从讨论中可以明显看出,应当理解,在整个说明书中,利用诸如“处理”、“计算”、“估算”、“确定”等术语的讨论是指特定装置的动作或过程,诸如专用计算机或类似的专用电子处理/计算设备。

在本专利中,某些美国专利、美国专利申请或其它材料(例如,文章)已通过引用方式并入。然而,这些美国专利、美国专利申请和其它材料的文本仅在这些材料与本文所述的陈述和附图之间不存在冲突的范围内通过引用方式并入。如果发生此类冲突,则以本文件的文本为准。

参考以下列举的实施例将更好地理解本技术:

1.一种为用户动态创建个人化锻炼视频的方法,所述方法包括:获得锻炼视频块的集合,所述集合包括所述锻炼视频块的多个身体区域分组,每个身体区域分组包括指定为具有不同锻炼强度的多个锻炼视频块,用一个或多个处理器从用户简档检索用户简档属性,所述用户简档属性包括健身目标或练习约束;用一个或多个处理器基于所述健身目标或练习约束以及所选第一锻炼视频块的强度水平或身体区域分组从所述集合中选择第一锻炼视频块;用一个或多个处理器将所述第一锻炼视频块发送给用户的用户设备;用一个或多个处理器在开始发送第一锻炼视频块之后接收来自用户的反馈,所述来自用户的反馈指示对所述第一锻炼视频块的用户响应;用一个或多个处理器基于所述反馈以及第二锻炼视频块的强度和第二视频块的身体区域分组从所述集合中选择第二锻炼视频块;以及用一个或多个处理器开始将所述第二锻炼视频块发送到所述用户设备。

2.根据实施例1所述的方法,其中选择所述第一锻炼视频和所述第二锻炼视频是基于集排序数据结构,所述集排序数据结构指定身体区域分组的列表和将要选择与所述身体区域分组对应的锻炼视频块的顺序。

3.根据实施例1至2中任一项所述的方法,其中开始发送所述第二锻炼视频块是在所述第一锻炼视频块在所述用户设备上完成播放之前执行的。

4.根据实施例1至3中任一项所述的方法,包括获得锻炼视频块的多个集合,每个的集合表征不同的锻炼指导者,并且基于用户对指导者的选择来选择锻炼视频块的集合。

5.根据实施例1至4中任一项所述的方法,包括:用一个或多个处理器将属性附加到视频块,视频块属性包括属性和反馈属性;用一个或多个处理器通过使用属性评分对所述视频块进行分类,所述属性评分是所述视频块属性以及所述用户简档属性的函数;并选择最高评分视频块来呈现给用户。

6.根据实施例5所述的方法,其中所述属性评分是从外部资源接收的与用户有关的信息的函数。

7.根据实施例1至6中任一项所述的方法,其中所述第二视频块的选择基于从一个或多个传感器接收的信息,所述一个或多个传感器被配置成生成传达与用户有关的信息的输出信号。

8.根据实施例1至7中任一项所述的方法,其中从一个类别中选择所述第一视频块,并且从另一个类别中选择所述第二视频块。

9.根据实施例1至8中任一项所述的方法,还包括向用户提供来自另一用户设备的锻炼数据。

10.一种基于锻炼期间的用户反馈动态地组成个性化锻炼视频的方法,所述方法包括:用一个或多个处理器获得锻炼视频块的二维或更高维矩阵,其中每个锻炼视频块包含与锻炼例程的一部分有关的视频片段;并且锻炼视频块被配置成在锻炼例程视频中被组装成锻炼视频块序列;用一个或多个处理器获得多个用户简档,所述多个用户简档中的每个用户简档与相应用户的标识符相关联,并且所述多个用户简档中的每个用户简档与指示所述相应用户的锻炼偏好的偏好信息相关联;用一个或多个处理器经由网络从用户计算设备接收用户的标识符,并基于所述用户的所述标识符从所述多个用户简档中选择用户简档;用一个或多个处理器基于锻炼视频块矩阵的维度和用户简档构建要发送到用户计算设备的锻炼视频块序列的至少一部分,所述序列包括至少两个锻炼视频块;用一个或多个处理器经由所述网络将所述序列的第一锻炼视频块发送到用户计算设备;用一个或多个处理器在开始发送所述第一锻炼视频块之后接收来自用户的的反馈,所述来自用户的反馈指示对所述第一锻炼视频块的用户响应;用一个或多个处理器调整要发送给用户的所述视频块序列,其中调整包括:基于用户反馈从锻炼视频块矩阵中选择第二锻炼视频块;将所述第二锻炼视频块添加到要发送给用户的所述锻炼视频块序列中;以及用一个或多个处理器开始将所述第二锻炼视频块发送到用户计算设备。

11.根据实施例10所述的方法,包括:响应于接收到用户反馈,从所述序列中移除先前确定的后续锻炼视频块,所移除的锻炼视频块至少部分地被缓冲在用户计算设备上;向用户计算设备发送指令以使所述移除的锻炼视频块从缓冲存储器中到期;以及选择具有比所述移除的锻炼视频块更低比特率的替换后续锻炼视频块的副本,以说明减少的时间用于在当前正在播放的锻炼视频块完成之前缓冲所述替换后续锻炼视频块。

12.根据实施例10至11中任一项所述的方法,其中所述第一视频块包括多个视频片段,并且其中所述方法包括:响应于接收到所述反馈,在所述第一视频块结束之前在多个片段中的一个结束时终止所述第一视频块的回放。

13.根据实施例10至12中任一项所述的方法,其中:每个锻炼视频块按照所述矩阵的维度与多个身体区域中的相应身体区域的标识符相关联;以及每个锻炼视频块按照所述矩阵的维度与指示所述锻炼视频块的强度的强度值相关联。

14.根据实施例10至13中任一个所述的方法,其中在所述第一锻炼视频块完成播放之前选择所述第二锻炼视频块。

15.根据实施例10至14中任一项所述的方法,其中获得所述矩阵包括:获得多个矩阵,每个矩阵与不同的锻炼指导者相关联;从用户接收对指导者的选择;以及基于用户选择从所述多个矩阵中选择所述矩阵。

16.根据实施例10至15中任一项所述的方法,包括:接收指示由脉搏血氧计感测的用户血氧水平的值;基于所选用户简档的两个或更多个属性确定血氧水平的阈值;以及确定所述值超过所述阈值并且作为响应确定选择第三锻炼视频块而不是先前确定的下一锻炼视频块。

17.根据实施例10至16中任一项所述的方法,包括:接收指示由加速度计感测的用户心率的值;接收指示由加速度计感测的用户呼吸率的值;确定评分满足阈值,所述评分基于指示心率的值和指示呼吸率的值的加权组合;以及响应于确定所述评分满足所述阈值,确定选择第三锻炼视频块而不是预定的第四锻炼视频块。

18.根据实施例10至17中任一项所述的方法,还包括:获得锻炼视频块的转移概率矩阵;以及基于用户反馈访问所述转移概率矩阵以选择所述第二锻炼视频块。

19.根据实施例10至18中任一项所述的方法,其中从所述锻炼视频块矩阵构建要发送到用户计算设备的锻炼视频块序列包括:在先前视频块在用户计算设备上完成播放之前,在用户计算设备上至少部分地高速缓存来自序列的预定的后续锻炼视频块;响应于用户反馈,基于用户反馈选择不同的后续锻炼视频块;以及在用户计算设备上高速缓存所述不同的后续锻炼视频块。

20.根据实施例10至19中任一项所述的方法,其中所述用户简档还与健身目标相关联,所述健身目标指示了用户表达想要实现的健身水平,其中操作还包括:

用一个或多个处理器接收用户的健身目标;

用一个或多个处理器关联用于实现健身目标的时间范围;以及

用一个或多个处理器基于在超过一个月的持续时间内的健身目标和所关联的时间范围构建多个锻炼视频块序列,其中所述多个序列包括多于四个的不同序列。

21.根据实施例10至20中任一项所述的方法,包括:用一个或多个处理器接收来自其他用户的反馈,所述来自其他用户的反馈指示所述其他用户对矩阵中的锻炼视频块的响应;以及用一个或多个处理器基于其他用户反馈构建锻炼视频块序列。

22.根据实施例10至21中任一项所述的方法,其中所述反馈包括对于用户不满意第一视频的指示,并且其中所述操作还包括针对用户从后续锻炼视频块的选择中排除所述第一视频。

23.根据实施例10至22中任一项所述的方法,包括:用一个或多个处理器构建要发送给用户的锻炼例程,其中构建锻炼例程包括:用一个或多个处理器基于用户简档选择两个或更多个锻炼视频块序列。

24.根据实施例23所述的方法,还包括:用一个或多个处理器响应于接收到用户反馈来调整所述锻炼例程的构建。

25.一种根据标准集序列来构造视频块以利于视频块序列的参数组成的方法,所述方法包括:用一个或多个处理器获得多个视频块,所述多个视频块描绘在整个三维或更多维的参数空间中系统地变化的内容,每个视频块具有30秒至30分钟的持续时间,所述多个视频块包括在每个维度中对应两个或更多个不同值的多于100个视频块;用一个或多个处理器构建多个视频块记录,每个视频块记录将指向所述视频块中的相应视频块的相应指针与所述相应视频块在所述参数空间中的坐标相关联;用一个或多个处理器获得多个标准集序列,每个标准集指定所述参数空间的不同子集,所述子集中的至少一些包括多个视频块;用一个或多个处理器接收对多块视频的请求,在所述多块视频中连续播放所述多个视频块中的多个视频块的子集;用一个或多个处理器选择所述标准集序列中的一个以服务所述请求;用一个或多个处理器,通过所选序列中的所述标准集进行迭代,并且在每次迭代时,针对在所选序列中的当前标准集:通过基于对应视频块记录确定所述多个视频块中的哪些视频块位于所述参数空间中满足当前标准的区域中来标识一个或多个候选视频块;选择所述候选视频块中的视频块;以及使所选视频块被发送到通信地耦合到显示器的远程计算设备,其中所选视频块在所述显示器中被显示。

26.根据实施例25所述的方法,其中:所述视频块描绘了执行练习的指导者;不同的视频块描绘了不同的指导者;不同的视频块描绘了不同的练习;所述多个标准序列部分地但不是完全地定义不同的锻炼,所述不同的锻炼包括由满足所述标准集的视频块序列中描绘的指导者中的一个或多个执行的不同练习中的至少一些。

27.根据实施例25至26中任一项所述的方法,其中:所述三维或更多维中的第一维对应于指导者,其中所述视频块在所述第一维中具有对应于五个或更多个不同指导者的五个或更多个不同值;所述三维或更多维中的第二维对应于练习,其中所述视频块在所述第二维中具有对应于十个或更多个不同练习的十个或更多个不同值;并且所述三维或更多维中的第三维对应于物理强度,其中所述视频块在所述第三维中具有对应于两个或更多个不同强度的两个或更多个不同值。

28.根据权利要求27所述的方法,其中:在所选序列中的给定标准集指定给定的指导者、给定的身体部位和给定的强度;并且针对给定标准集标识候选视频块包括标识由视频块记录指向的视频块,所述视频块记录指示所标识的视频块描绘了所述给定教练在所述给定强度下执行涉及所述给定身体部位的练习,其中针对所述给定标准选择多于两个候选视频块。

29.根据实施例25至28中任一项所述的方法,其中在所述候选视频块中选择视频块包括:从两个加速度计接收第一和第二测量流,所述两个加速度计被配置成测量计算设备在相对于所述计算设备的两个不同方向上的加速度;从两个或更多个流中提取特征,所述两个或更多个流指示由浏览至少一个视频块的用户执行的练习;以及根据所述提取的特征选择视频块。

30.根据实施例25至29中任一项所述的方法,其中在所述候选视频块中选择视频块包括:在来自麦克风的音频信号中检测由浏览给定视频块的用户发出的唤醒字;在检测到所述唤醒字之后,在来自所述麦克风的后续音频信号中检测用户发出的增加锻炼强度的请求;并且响应于检测到增加强度的所述请求:确定所述给定视频在所述三维或更多维度中的强度维度中的位置;并且从所述给定视频的所述位置沿强度增加的方向选择进一步沿所述强度维度的候选视频。

31.根据实施例25至30中任一项所述的方法,其中:所述参数空间的给定维度指示在所述视频块中使用的练习设备;在所述候选视频块中选择视频块包括:接收用户所在的锻炼设施的标识符;访问所述锻炼设施的练习设备清单;基于具有在所述锻炼设施的所述练习设备清单中的给定维度的值的所选视频块来选择候选视频块。

32.根据实施例31所述的方法,其中基于具有在所述锻炼设施的所述练习设备清单中的给定维度的值的所选视频块来选择候选视频块包括:基于历史使用情况估计与锻炼设施处的值相对应的练习设备处于使用中的概率;并确定所述概率小于阈值概率。

33.根据实施例31所述的方法,包括:在选择涉及给定类型的练习设备的视频块之后,从用户计算设备接收指示所述练习设备类型的实例处于使用中的信号;并且在确定不同的候选视频块具有在所述练习设备清单中的给定维度中的值之后,响应于接收到所述信号,选择所述不同的候选视频块。

34.根据实施例33所述的方法,包括:基于所述训练的机器学习模型选择视频块。

35.根据实施例33所述的方法,包括:基于所述训练的机器学习模型选择所述标准集序列。

36.根据实施例25至35中任一项所述的方法,其中:所述标准集序列中的给定序列包括多个部分,每个部分包括标准集的子集,所述标准集的子集被指定为允许在相应部分内重新排序。

37.根据实施例25至36中任一项所述的方法,其中:所述视频块中50%以上的帧是50%以上相同颜色的,以通过减少帧中未描绘指导者的部分中的熵来利于所述视频块的压缩。

38.根据实施例25至37中任一项所述的方法,其中:所述多个视频块在所述三维或更多维中的每一个维度中在相应范围上占据所述参数空间中的值的每个排列。

39.根据实施例25至38中任一项所述的方法,其中:所述三维或更多维中的给定维度以分层分类法组织,并且标准集中的至少一些标准通过标识所述分层分类法的非叶子和非根节点来指定多个视频块。

40.根据实施例25至39中任一项所述的方法,其中所述三维或更多维包括:至少两个标称维度;以及至少一个有序维度。

41.一种组成锻炼的方法,所述方法包括:用一个或多个处理器经由网络从用户计算设备接收对锻炼的请求,所述请求标识了存储在存储器中并与用户相关联的用户帐户;用一个或多个处理器响应于所述请求访问与用户账户相关联的健身计划和所请求的健身重点,其中:基于所述用户的健身目标选择健身计划;所述健身计划包括锻炼序列;所述用户账户指示所述健身计划的当前状态,包括所述锻炼序列中的下一个锻炼和对所述锻炼序列中的至少一些过去锻炼的至少一部分的先前用户反馈;所述锻炼序列中的未来锻炼部分地但不完全地由所述健身计划指定,并且每个未来锻炼对应于多个候选锻炼,每个所述候选锻炼部分地但不完全地指定多个练习;并且每个候选锻炼与不同的健身重点相关联;用一个或多个处理器,基于所述请求的健身重点和所述下一锻炼的所述候选锻炼的相应健身重点,在与用户账户相关联的健身计划的锻炼序列中从下一锻炼的候选锻炼中选择锻炼;用一个或多个处理器访问对所选锻炼中的练习的描述;并且用一个或多个处理器经由网络将对练习的描述提供给用户计算设备,以便按照至少部分地由所选工作指定的序列进行呈现。

42.根据实施例40所述的方法,其中:提供对练习的描述包括向用户计算设备提供音频文件序列或视频文件序列,每个文件具有在30秒到10分钟之间的相应播放时间并且每个对应于所选锻炼的不同部分;所选锻炼具有多于五个的练习;所述请求的健身重点对应于以下重点中的至少一个:全身、瘦身、耐力、力量、核心和恢复;锻炼序列中的下一锻炼的候选锻炼包括以下重点中的至少三个:全身、瘦身、耐力、力量、核心和恢复;所述请求在与用户计算设备的一次或多次交换中指定健身重点,用户计算设备经由网络传达所述请求;并且从服务器经由网络向在用户计算设备上执行的本机应用程序提供对练习的描述。

43.根据实施例41至42中任一项所述的方法,包括:在提供对练习的描述中的至少一些之前,将所选锻炼中仅被部分指定的至少一些练习完全指定,其中完全指定包括:对于给定的部分指定的练习,基于标准集确定候选练习集,所述标准集定义了所选锻炼中所述给定的部分指定的练习;并且从所述候选练习中选择练习以将所述给定的部分指定的练习转换为给定的完全指定的练习。

44.根据实施例43所述的方法,其中在所述候选练习中进行选择包括:对于每个候选练习,确定用户账户是否指示在所述候选练习上次呈现给用户之前或自所述候选练习上次呈现给用户以来经过的时间量内所述候选练习已经呈现给用户;并且基于所述用户简档是否指示在所选练习上次呈现给用户之前或者自所选练习上次呈现给用户以来经过的所述时间量内所选练习已经呈现给用户来选择练习。

45.根据实施例44所述的方法,包括:基于与标准集的对应性来对候选练习进行评分;基于自相应候选练习上次被呈现给用户以来经过的时间量来对至少一些评分加权;并且基于所加权的评分对候选练习进行排名;其中基于所选练习在排名中的位置来选择练习。

46.根据实施例43所述的方法,其中:所述用户帐户或请求指示身体部位受伤;所述候选练习与相应记录相关联,所述相应记录指示相应候选练习中使用的相应身体部位或如果受伤则阻止相应候选练习执行的相应身体部位;从候选练习中选择练习包括从候选练习中过滤那些具有相关记录的候选练习,所述相关记录指示由用户简档或请求指示的身体部位受伤。

47.根据实施例43所述的方法,其中:对锻炼序列中的至少一些过去锻炼的至少一部分的先前用户反馈包括对候选练习中的至少一些的反馈;并且从候选练习中选择练习包括基于对候选练习中至少一些的反馈来对候选练习中的至少一些进行排名。

48.根据实施例43所述的方法,其中:选择练习包括通过以下方式选择练习:基于受伤标准过滤候选练习;基于与所请求的健身重点或用户账户中的用户简档的对应性来对候选练习进行评分;基于用户对相应练习的反馈来给评分加权;基于相应的加权后的评分对所过滤的候选练习进行排名;并且基于排名来选择最高或最低排名的练习。

49.根据实施例41至48中任一项所述的方法,包括,对于所选练习中仅被部分指定的多个练习中的每一个:基于从所选锻炼中的相应部分指定来确定相应的多个候选练习;并且从所述相应的多个候选练习中选择相应的练习。

50.根据实施例41至49中任一项所述的方法,包括:针对所选锻炼中的多个练习中的每一个,基于由用户经由用户计算设备指定的当前优选强度水平来选择强度水平。

51.根据实施例41至50中任一项所述的方法,包括:标识包括由健身计划的当前部分指定的多个肌肉组的身体区域;访问存储器中的解剖结构的分层本体,以标识与所述标识的身体区域相对应的本体的分支,所述分支具有与所述身体区域中的身体部位相对应的下级节点;并且基于身体部位与候选练习之间的对应性确定候选练习。

52.根据实施例51所述的方法,包括:通过基于用户账户中的时间戳过滤多个候选身体区域来标识所述身体区域,所述时间戳指示上次练习候选身体区域的时间。

53.根据实施例51所述的方法,包括:过滤身体区域,所述身体区域包括所述分层本体中被所述请求或用户账户指示为受伤的身体部位。

54.根据实施例41至53中任一项所述的方法,其中:所选锻炼对应于候选练习的练习图表;并且所述方法包括基于历史上提供的用户反馈和在路径导航期间提供的用户反馈来确定通过所述候选练习图表的路径,其中所述路径上的所述图表中的节点对应于练习,所述练习的描述被提供给用户。

55.根据实施例41至54中任一个所述的方法,包括:基于用训练集训练的机器学习模型来确定所述计划,所述训练集包括多个训练记录,每个训练记录具有另一个用户简档的属性、另一个用户的健身目标、另一个用户的计划,以及指示另一个用户是否实现了其目标的数据。

58.根据实施例41至57中任一项所述的方法,包括:确定用户计算设备的地理位置;确定所述地理位置对应于锻炼设施,并且作为响应,访问所述锻炼设施处的锻炼设备清单;并且基于所述候选练习是否与所述清单内列举了在相应候选练习中使用的设备的相应记录相关联来从所选锻炼中过滤候选练习。

59.根据实施例58所述的方法,包括:基于所估计的所述清单中的健身设备类型处于使用中的概率以及从先前的健身设备类型到所述健身设备类型的距离来对候选练习中的至少一些进行排名或排序。

60.一种系统,包括:一个或多个计算机处理器;以及存储介质,所述存储介质存储机器可读指令,所述机器可读指令当由所述一个或多个处理器中的至少一些处理器执行时引起操作,所述操作包括:根据实施例1至59中任一项所述的步骤。

61.一种有形的非暂时性机器可读介质,所述机器可读介质存储指令,所述指令在由数据处理装置执行时使所述装置实施根据实施例1至59中任一项所述的操作。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1