背景技术
用于上肢和下肢的常规矫正产品,诸如,肘支架、臂支架、前臂-手腕支架、前臂-手腕-拇指支架、前臂-手腕-手部支架、膝盖支架、踝关节支架等,可以通过零售展示来销售。矫正产品可以包括提供某种引导的封装,诸如,由矫正产品提供的足弓支撑类型的描述。然而,如果用户不知晓需要多少足弓支撑,这种类型的引导是没有帮助的。这种不确定性可能导致在顾客最终找到满足顾客需要的矫正产品之前,顾客购买多个矫正产品。
存在使用用户的全身扫描来生成用户的三维模型的设备。这些设备出于若干原因是有问题的。首先,扫描可能是不准确的,因为用户左右移动并且可能不能够精确地控制用户的定位。其次,用于使用户转身以便得到全身扫描而采用的步骤可能如此复杂,以致于用户在接收推荐之前被激怒和/或放弃。再次,为了支持全身扫描,设备的尺寸可能如此大,使得设备可能不适合安放在零售商的商店中。类似地,用于执行全身扫描的设备的硬件的成本可能过于昂贵。
发明内容
实施例总的来说涉及为用户生成矫正产品推荐。在一些实施例中,为用户生成矫正产品推荐的方法包括从用户接收交互,所述交互包括用户身体的一个或多个四肢区域的标识,所述一个或多个四肢区域与一个或多个矫正产品的选择有关。提供屏幕上的线索和交互以便辅助于所述一个或多个四肢区域相对于一个或多个成像传感器的定位。从所述一个或多个成像传感器接收扫描数据。基于扫描数据生成所述一个或多个四肢区域的模型,包括估计所述一个或多个四肢区域的一个或多个完整周长。基于与用户相关联的一个或多个因素和所述一个或多个四肢区域的模型与多个矫正产品的比较来标识一个或多个矫正产品。提供包括所述一个或多个矫正产品的推荐。
扫描数据可以包括用户正面的图像,并且估计所述一个或多个四肢区域的所述一个或多个完整周长可以包括确定不可从图像看见的所述一个或多个四肢区域的形状。所述一个或多个因素可以包括用户的体重指数。提供屏幕上的线索和交互可以包括从所述一个或多个成像传感器接收扫描数据,其中扫描数据是包括膝盖的腿部的扫描数据,确定腿部是否正确,响应于确定腿部正确而确定膝盖是否可见,以及响应于膝盖可见而确定腿部是否处于第一位置中。如果腿部不正确,膝盖不可见或者腿部处于第二位置中,则可以指示用户做出修改。由于服装遮挡膝盖的部分,所以膝盖可能不可见。为用户提供推荐可以包括将推荐发电子邮件给用户的电子邮件地址。
生成模型可以包括执行云-点分割以便将扫描数据划分为点群簇,标识用于每一个点群簇的点群簇图心,基于点群簇图心而标识腿部中的关节的位置,基于关节的位置而生成腿部的二维深度图,基于该二维深度图而生成腿部的点云,从该点云确定对应于腿部的一个或多个点的一个或多个部分周长,以及基于所述一个或多个部分周长而确定所述一个或多个完整周长。所述一个或多个完整周长可以具有卵形形状。
在一些实施例中,自助服务终端(kiosk)包括显示器,所述显示器配置为从用户接收交互,所述交互包括用户身体的一个或多个四肢区域的标识,所述一个或多个四肢区域与一个或多个矫正产品的选择有关,并且所述显示器配置为提供屏幕上的线索和交互以便辅助于用户的脚部在脚垫和抬升的脚部平台中的一个或多个上相对于一个或多个成像传感器的定位。自助服务终端还可以包括脚垫,所述脚垫配置为感测用户脚部的压力。自助服务终端还可以包括减少或者防止用户脚部的旋转运动的抬升的脚部平台。自助服务终端还可以包括配置为捕获用户的扫描数据的一个或多个成像传感器。自助服务终端还可以包括耦合到存储器的一个或多个处理器、存储在存储器上并且配置为基于扫描数据而生成所述一个或多个四肢区域的模型的建模引擎(所述模型包括所述一个或多个四肢区域的一个或多个估计的卵形形状)、以及产品用户界面模型,所述产品用户界面模型存储在存储器上并且配置为基于所述一个或多个四肢区域的模型和与多个矫正产品相关联的参数的比较而标识用于用户的所述一个或多个矫正产品,其中显示器向用户提供包括所述一个或多个矫正产品的推荐。
其它方面可以包括对应的方法、系统、装置和计算机程序产品。
以下描述的系统和方法有利地提供了准确的扫描数据,因为用户被约束在特定位置并且利用方便使用的系统引导用户完成该过程。接下来,因为扫描数据全部从面向前方的用户捕获,所以该过程是简单且快速的。另一个优点包括:因为成像传感器从一个方向捕获扫描数据,所以自助服务终端是可以适合安放在零售商店中的合理尺寸。最后,自助服务终端使用现成的低成本硬件,其减少了自助服务终端的总体价格。
附图说明
通过示例的方式而非限制的方式,在随附附图的各图中图示本公开,其中使用相似的附图标记来指代相似的元件。
图1图示了配置为生成矫正产品推荐的示例自助服务终端。
图2图示了生成矫正产品推荐的示例系统的框图。
图3图示了生成矫正产品推荐的示例计算设备的框图。
图4是生成矫正产品推荐的示例方法的流程图。
图5是为用户提供屏幕上的线索和交互以便辅助于扫描一个或多个四肢区域的示例方法的流程图。
图6是生成所述一个或多个四肢区域的模型的示例方法的流程图。
图7是为推荐针对膝盖的矫正产品而估计的周长的示例图形表示。
具体实施方式
尽管本文通过示例和实施例的方式描述了方法、装置和计算机可读介质,但是本领域技术人员认识到,用于生成矫正产品推荐的方法、装置和计算机可读介质不限于所描述的实施例或附图。应当理解到,附图和描述不意图限于所公开的特定形式。相反地,意图是涵盖落入随附权利要求的精神和范围内的所有修改、等同方案和可替换方案。本文中使用的任何标题仅用于组织目的,而不意在限制描述或权利要求的范围。如本文中所使用的,词语“可以”以准许的含义(即,意味着具有倾向)而非强制的含义(即,意味着必须)而使用。类似地,词语“包括”、“包含”和“含有”意味着包括而不限于。
如相关技术领域中的技术人员所领会的,出于向个体提供改进的合身或舒适或结构支撑的目的,矫正产品可以放置在脚部下方,或者鞋具、服装或其它覆盖物内部,或者直接放置在主要承重关节(诸如,踝关节、膝盖、下背、肩膀、颈部、肘部)以及其它关节区域四肢之上。矫正产品的示例包括鞋垫;脚部缓冲物;脚跟垫;踝关节支架、绷带和胶带;膝盖支架、绷带和胶带;腕部支架、绷带和胶带等。顾客可能想要快速地且准确地标识用于其各个物理属性的恰当矫正产品。例如,产品可能需要具有结合个人的重量、高度或其它整形质量的规格恰当的支撑、尺寸、角度特性和功能性。相应地,使矫正产品可用于顾客的零售商将想要能够向顾客提供这样的整形或个性定制服务,而不必雇佣具有所有可能的产品和物理属性的专业训练和/或知识的人员。
示例自助服务终端
图1图示了配置为生成矫正产品推荐的示例自助服务终端100。所图示的自助服务终端100包括脚垫110、抬升的脚部平台115、成像传感器120、显示器125和搁架130。本领域普通技术人员将认识到,在图1中图示的项目中的许多项目可以是可选的,诸如搁架。在图1和其余各图中,在附图标记(例如,“115a”)之后的字母表示对具有该特定附图标记的元件的引用。文本中没有紧随字母的附图标记(例如“115”)表示对具有该附图标记的元件的实施例的引用。
脚垫110可以包括一个或多个压力传感器,所述一个或多个压力传感器检测已经踏上脚垫110的用户以及用户脚部的压力点。脚垫110还可以配置为传输由自助服务终端应用使用的数据以便确定用户脚部的特性,包括脚长、脚部几何形状等。脚垫110可以传输由自助服务终端应用使用的数据以便确定放置在脚垫110上的一个或多个脚部的接触宽度和接触长度。如下文所讨论的,接触宽度和接触长度可以用于估计用户脚部的足弓测量结果。脚垫可以配置为确定用户的特性,包括用户的重量。脚垫可以具有脚部的轮廓或者用于脚部的凹入区域以便有利地约束用户的位置,使得扫描数据是准确的。在一些实施例中,脚垫110将用户定位为距下部成像传感器120a大约42英寸。
提供抬升的脚部平台115以便促进感兴趣的所述一个或多个四肢区域在所述一个或多个成像传感器120的视场内的定位,或者允许宽视场成像系统优先化对感兴趣的恰当四肢和/或关节的分析。抬升的脚部平台115可以通过机械措施而静止或可移动,以便提供针对感兴趣的四肢区域相对于所述一个或多个成像传感器120的视场的定位的精细调谐。例如,抬升的脚部平台115可以被提供为:在用户将脚部放置于抬升的脚部平台115上之后,踝关节定位在下部成像传感器120a的视场内。可替换地,可以提供多个平台,或者平台可以通过手动或机械措施而具有可调节的高度,其中机械措施由自助服务终端应用控制,并且精细调谐调节是基于感兴趣的四肢区域的模型。
在所图示的实施例中,抬升的脚部平台115包括塑料覆盖物中的凹陷,所述凹陷将用户引导在抬升的脚部平台115上的恰当位置中。抬升的脚部平台115可以包括用于左脚的左凹陷、用于右脚的右凹陷以及用于脚部的中心凹陷,所述中心凹陷对应于适合于矫正产品的腿部。例如,如果用户看起来是接收用于针对用户左踝关节的踝关节支架的推荐,用户可以将用户的左踝关节放置在中心凹陷中。自助服务终端100可以包括一个或多个成像传感器120。所述一个或多个成像传感器120可以是在一个或多个模式中操作的深度感测相机(例如,Microsoft Kinect V2),包括红外成像、距离成像、超声成像、或者本领域中已知的使用反向散射数据来确定所瞄准的区域的相对距离和特性的任何其它机制。例如,成像传感器120可以测量用于使激光脉冲离开每一个成像传感器120并且反射回到焦平面阵列上的飞行时间。成像传感器120可以生成扫描数据,所述扫描数据表示二维(2D)图像,每一个二维(2D)图像是感兴趣的一个或多个四肢的矢状切片。由所述一个或多个成像传感器120捕获的扫描数据可以由自助服务终端应用使用以便确定用户的一个或多个四肢的模型。
所述一个或多个成像传感器120可以配置为在需要时枢转或回转以便将感兴趣的四肢包括在其视场中。所述一个或多个成像传感器可以进一步定位在任何位置处,使得可以通过要求用户从所述一个或多个成像传感器120移动回来或者朝向所述一个或多个成像传感器120移动而将感兴趣的四肢区域放置在其视场中。可以向所述一个或多个成像传感器120提供宽视场和/或所述一个或多个成像传感器120可以配置为机械地枢转或回转以便涵盖相对于其初始位置的不同视场。
在该实施例中,自助服务终端100包括下部成像传感器120a和上部成像传感器120b。下部成像传感器120a可以定位在相对于潜在用户群体的平均膝盖高度(或者针对四肢的不同的感兴趣区域的平均高度/位置)的位置处,使得下肢的膝盖或其它相关区域处于下部成像传感器120a的视场内。在一些实施例中,下部成像传感器120a可以处于相对于潜在用户群体的平均骨盆高度的固定位置处。下部成像传感器120a可以定位为捕获用户125的下肢(诸如,用户的腰部、膝盖、踝关节、脚部等)的扫描数据。
上部成像传感器120b可以定位在用户125的头部上方的位置处。上部成像传感器120b可以捕获用户125的上肢(诸如,用户的颈部、胸部、肘部、腕部等)的扫描数据。上部成像传感器120b可以用于确定用户的高度。
在一些实施例中,下部成像传感器120a和上部成像传感器120b中的每一个可以独立地操作以便向自助服务终端应用203提供输入,或者作为成像传感器120的组合进行操作以便从作为多个输入源的相对于感兴趣的一个或多个四肢区域的不同有利点向自助服务终端应用203提供多个输入。成像传感器120中的一个或多个可以配置用于辅助用户在脚垫110上恰当地取向的目的。可替换地,脚垫110可以包括检测用户是否在脚垫110上恰当地取向的压力点。
自助服务终端100可以包括显示器125,所述显示器125配置为向用户呈现视觉线索、交互、指示、图像、图像传感器馈送、四肢模型和用户输入请求。在一些实施例中,显示器125可以是电容式触摸接口,或者如本领域中已知的既能够显示内容又能够接收用户输入的其它设备,诸如触摸屏显示器。在一些实施例中,显示器125可以执行语音识别,并且基于一系列音频命令与用户交互。也可以使用其它输入机制,例如,可以使用键盘、鼠标、触笔、非接触式手势控制、或者其它类似的接口设备。显示器可以配置为从用户请求信息,指示用户移动到某些位置中,以及向用户推荐一个或多个矫正产品。
自助服务终端100可以包括保持矫正产品的搁架130。在一些实施例中,自助服务终端100测量用户的一个或多个四肢,并且生成可以存储在自助服务终端100的搁架130中的矫正产品推荐。显示器125可以包括所推荐的矫正产品的标记,诸如,矫正产品的图片、矫正产品的型号、彩色符号、货架位置等。用户然后可以容易地定位将提供最佳计算的合身度并且依照用户的物理属性(如基于所提供和/或检测的输入来计算的)而支持用户的需要的矫正产品。
可替换地,矫正产品可以从自助服务终端100分发。例如,自助服务终端100可以配置为自动售货机。所销售的矫正产品可以是预制作的矫正品,并且候选矫正产品的集合可以是具有变化属性的预制作的矫正品的不同模型的集合,所述变化属性诸如矫正产品的类型、尺寸、足弓支持等级、足弓指数、缓冲等级(例如,泡沫密度、所使用的缓冲材料等)等。所提供的模型的范围可以被选择为解决需要矫正产品的常见条件,并且是在适合潜在用户群体并提供用于潜在用户群体的适当支持等级所需要的尺寸和模型的范围中。
在一些实施例中,诸如,在用户的物理属性对应于在零售位置处不可见的矫正产品或者没有处于适用于特定用户位置的那些集合内的矫正产品的情况下,显示器125可以包括用于从不同源获取矫正产品的信息,例如,自助服务终端100可以访问网络以便请求依照用户的物理属性制作相符的矫正产品,以便标识可获得该特定矫正产品的其它销售位置,或者以便将所推荐的矫正产品的细节发电子邮件给用户。
示例系统
图2图示了为用户生成矫正产品推荐的示例系统200的框图。所图示的系统200包括自助服务终端服务器201、自助服务终端100、第三方服务器210和网络205。
自助服务终端201可以包括处理器、存储器和网络通信能力。在一些实施例中,服务器201是硬件服务器201。服务器201经由信号线202可通信地耦合到网络205。信号线202可以是有线连接,诸如,以太网、同轴线缆、光纤线缆等,或者是无线连接,诸如,Wi-Fi、蓝牙或其它无线技术。
在一些实施例中,自助服务终端服务器201经由网络205向自助服务终端100发送数据以及从自助服务终端100接收数据。自助服务终端服务器201可以包括自助服务终端应用203a和数据库299。自助服务终端服务器201可以从存储在自助服务终端100上的自助服务终端应用203b接收请求以便执行某种附加处理。例如,在一些实施例中,自助服务终端服务器201上的自助服务终端应用203a接收针对用户225的测量结果,并且生成用户225的一个或多个四肢区域的模型。自助服务终端应用203a可以从数据库299接收包括一个或多个模板模型的模板数据,并且将用户225的测量结果与模板数据相比较以便生成用于用户225的模型。在一些实施例中,自助服务终端应用203a可以包括模板数据并且执行与模板数据的比较。
自助服务终端100包括自助服务终端应用203b,所述自助服务终端应用203b可以是配置为生成用于用户225的矫正产品推荐的代码和例程。在一些实施例中,自助服务终端应用203b可以使用硬件来加以实现,所述硬件包括现场可编程门阵列(FPGA)或专用集成电路(ASIC)。在一些实施例中,自助服务终端应用203b可以使用硬件和软件的组合来加以实现。在所图示的实施例中,自助服务终端100经由信号线208耦合到网络205。信号线208可以是有线连接,诸如,以太网、同轴线缆、光纤线缆等,或者是无线连接,诸如,Wi-Fi、蓝牙或其它无线技术。作为示例的方式而使用图1中的自助服务终端100和用户225。尽管图1图示了一个自助服务终端100和一个用户225,但是本公开适用于具有一个或多个自助服务终端100和一个或多个用户125的系统架构。
第三方服务器210可以包括处理器、存储器和网络通信能力。第三方服务器210可以配置为发送去往以及来自自助服务终端100和/或自助服务终端服务器201的数据。例如,第三方服务器210可以包括应用,所述应用配置为确定一个或多个物理仓库或者其它自助服务终端100中的矫正产品的库存。在另一个示例中,第三方服务器210可以包括应用,所述应用配置为订购用于用户225的自定义矫正产品。第三方服务器210可以经由信号线204与网络205通信。
在所图示的实现中,系统200的实体经由网络205可通信地耦合。网络205可以是常规类型,无线的或者有线的,并且可以具有众多不同配置,包括星形配置、令牌环配置或者其它配置。此外,网络205可以包括局域网(LAN)、广域网(WAN)(例如,因特网)和/或多个设备可以跨其通信的其它互连数据路径。在一些实施例中,网络205可以是点对点网络。网络205还可以耦合到或者包括电信网络的部分以用于以各种各样不同的通信协议发送数据。在一些实施例中,网络205包括Bluetooth®通信网络或者蜂窝通信网络以用于发送和接收数据,包括经由短消息服务(SMS)、多媒体消息服务(MMS)、超文本传输协议(HTTP)、直接数据连接、无线应用协议(WAP)、电子邮件等。尽管图2图示了耦合到自助服务终端100、自助服务终端服务器201和第三方服务器210的一个网络205,但是在实践中,一个或多个网络205可以耦合到这些实体。
示例计算设备
图3图示了生成矫正产品推荐的示例计算设备300的框图。计算设备300可以是自助服务终端服务器201或者自助服务终端100。尽管自助服务终端应用203的组件被图示为包括在单个计算设备300上,但是本领域普通技术人员将认识到,自助服务终端应用203可以部分地存储在第一计算设备300(例如,自助服务终端服务器201)上并且部分地存储在第二计算设备300(例如,自助服务终端100)上。计算设备300可以包括处理器335、存储器337、通信单元339、一个或多个成像传感器120、显示器125和存储设备343。在其中自助服务终端应用203存储于自助服务终端服务器201上的实施例中,可以不包括这些组件中的一些,诸如,成像传感器120和显示器125。计算设备300的组件可以通过总线320可通信地耦合。
处理器335包括算术逻辑单元、微处理器、通用控制器或者某种其它处理器阵列以便执行计算并且向显示设备提供指令。处理器335处理数据,并且可以包括各种计算架构,包括复杂指令集计算机(CISC)架构、简约指令集计算机(RISC)架构或者实现指令集的组合的架构。尽管图3包括单个处理器335,但是可以包括多个处理器235。其它处理器、操作系统、传感器、显示器和物理配置可以是计算设备300的部分。处理器335耦合到总线320以用于经由信号线322与其它组件通信。
存储器337存储可以由处理器335执行的指令和/或存储数据。指令可以包括用于执行本文描述的技术的代码。存储器337可以是动态随机访问存储器(DRAM)设备、静态RAM或者某种其它存储器设备。在一些实施例中,存储器337还包括非易失性存储器,诸如(SRAM)设备或闪速存储器,或者类似的永久性存储设备和介质,包括硬盘驱动、软盘驱动、压缩盘只读存储器(CD-ROM)设备、DVD-ROM设备、DVD-RAM设备、DVD-RW设备、闪速存储器设备、或者用于在更永久性的基础上存储信息的某种其它大容量存储设备。存储器337包括配置为执行自助服务终端应用203的代码和例程,所述自助服务终端应用203在下文更加详细地描述。存储器337耦合到总线320以用于经由信号线324与其它组件通信。
取决于自助服务终端应用203可以存储在哪里,通信单元339向自助服务终端100和服务器201中的至少一个传输数据以及从自助服务终端100和服务器201中的至少一个接收数据。在一些实施例中,通信单元339包括用于直接物理连接到网络205或者到另一个通信信道的端口。例如,取决于自助服务终端应用230可以存储在哪里,通信单元339包括通用串行总线(USB)、安全数字(SD)、类别5线缆(CAT-5)或者用于与自助服务终端100或服务器201的有线通信的类似端口。在一些实施例中,通信单元339包括无线收发器以用于使用一个或多个无线通信方法与自助服务终端100、服务器201或其它通信信道交换数据,所述一个或多个无线通信方法包括IEEE 802.11、IEEE 802.16、Bluetooth®或者另一个适当的无线通信方法。通信单元339耦合到总线320以用于经由信号线326与其它组件通信。
在一些实施例中,通信单元339包括蜂窝通信收发器以用于通过蜂窝通信网络发送和接收数据,包括经由短消息服务(SMS)、多媒体消息服务(MMS)、超文本转移协议(HTTP)、直接数据连接、WAP、电子邮件或者另一种适当类型的电子通信。在一些实施例中,通信单元339包括有线端口和无线收发器。通信单元339还提供去往网络205的其它常规连接以用于使用标准网络协议来分发文件和/或媒体对象,所述标准网络协议包括但不限于UDP、TCP/IP、HTTP、HTTPS、SMTP、SPDY、QUIC等。
成像传感器120可以是配置为捕获扫描数据的深度传感器,所述扫描数据被传输给自助服务终端应用203。成像传感器120的附加细节可以在上文参照图1找到。成像传感器120经由信号线328耦合到总线320。
显示器125可以包括配置为显示从自助服务终端应用203接收的图形数据的硬件。例如,显示器125可以渲染图形以便显示用户界面,所述用户界面配置为显示矫正产品推荐。显示器125耦合到总线320以用于经由信号线330与其它组件通信。
可以作为计算设备300的部分而包括向用户提供信息的其它硬件组件。例如,计算设备300可以包括用于音频接口的扬声器或者其它类型的非显示输出设备。在一些实施例中,诸如,在计算设备300是服务器201的情况下,显示器125可以是可选的。在一些实施例中,计算设备300可以不包括所有组件。在一些实施例中,计算设备300可以包括此处没有列出的其它组件,例如,传感器、电池等。
存储设备343可以是存储数据的非暂时性计算机可读存储介质,所述数据提供本文描述的功能性。在计算设备300是服务器201的实施例中,存储设备343可以包括图1中的数据库199。存储设备343可以是DRAM设备、SRAM设备、闪速存储器或者某种其它存储器设备。在一些实施例中,存储设备343还包括非易失性存储器或者类似的永久性存储设备和介质,包括硬盘驱动、软盘驱动、CD-ROM设备、DVD-ROM设备、DVD-RAM设备、DVD-RW设备、闪速存储器设备、或者用于在永久性基础上存储信息的某种其它大容量存储设备。存储设备343耦合到总线320以用于经由信号线332与其它组件通信。
在图3中图示的所图示的实现中,自助服务终端应用203包括用户界面模块302、建模引擎304和产品模块306。其它模块和/或配置是可能的。
用户界面模块302可以配置为向用户提供信息以及从用户接收信息。在一些实施例中,用户界面模块302可以是指令集,所述指令集由处理器335执行以便提供下文描述的功能性,以用于向用户提供信息以及从用户接收信息。在一些实施例中,用户界面模块302可以存储在计算设备300的存储器337中,并且可以由处理器335访问和执行。
在一些实施例中,用户界面模块302生成用户界面以便与用户交互。用户界面可以显示涉及多个阶段的数据。例如,所述阶段可以包括介绍阶段、关于用户阶段、关于关注区域阶段、扫描阶段和产品推荐阶段。介绍阶段可以包括默认屏幕,所述默认屏幕描述自助服务终端的目的以及用于推荐一个或多个矫正产品的技术。
用于介绍阶段的用户界面可以包括用于作为市场化或广告推广机制而捕获用户的注意力的目的的信息。例如,用户界面模块302可以从一个或多个图像传感器120接收扫描数据并且生成用户的全身图像,在所述全身图像上可以叠覆一个或多个矫正产品。
用于介绍阶段的用户界面可以包括开始按钮以便移动至另一阶段。用户界面还可以包括用户移除用户的鞋子的请求。关于用户阶段可以包括请求关于用户的信息的用户界面,所述关于用户的信息诸如,用户的性别以及用户衣服的标识。用户衣服的标识可以随后在程序中使用以便提供更具体的指示,诸如,“请卷起你的裤腿以便暴露你的膝盖”或者“请卷起你的裙子以便暴露你的膝盖”。
用户界面模块302还可以生成要求用户标识感兴趣的一个或多个四肢区域的用户界面。例如,用户界面可以包括身体的图示以及用户选择该图示上用户所关注的身体区域的指示。在一些实施例中,用户界面模块302可以要求用户输入用户的高度和重量。
关于关注区域阶段可以包括请求关于感兴趣的一个或多个四肢区域的信息的用户界面。例如,询问可以包括与感兴趣的所述一个或多个四肢区域相关联的征兆以及有多频繁地使用感兴趣的所述一个或多个四肢区域。用户界面可以包括关于与感兴趣的所述一个或多个四肢区域相关联的问题是否源自于受伤、与该问题相关的疼痛等级、以及拉伸所述一个或多个四肢的能力、舒适度参数、是否存在肿胀、用户的活动等级以及用户可能在佩戴一个或多个矫正产品时执行什么活动的询问。如果与感兴趣的所述一个或多个四肢区域相关联的问题源自于受伤,用户界面可以包括跟进询问,诸如,与受伤相关联的时长以及受伤是否复发。
可以调整询问以适应于四肢区域的类型。例如,如果感兴趣的四肢区域是脚部,询问可以是关于由用户使用的鞋具的类型、用户是否已经尝试不同类型的鞋垫等。如果感兴趣的四肢区域是踝关节或膝盖,询问可以包括冲击等级的澄清。
扫描阶段可以包括为用户提供扫描指示的用户界面。例如,指示可以包括要求用户移除用户的鞋子(例如,如果之前没有这样做的话)、如果用户正穿着覆盖所述一个或多个四肢的服装则暴露所述一个或多个四肢、以及踏上脚垫或抬升的脚部平台。因为服装可以防止建模引擎304确定用户膝盖的位置和/或外推出感兴趣的四肢的真实物理属性,所以重要的是用户移除覆盖膝盖的任何服装。
在一些实施例中,扫描阶段可以包括教学视频的显示。教学视频可以包括为用户展示如何卷起用户的裤子以便使用户膝盖不受阻挡的视频、展示如何踏上脚垫或抬升的脚部平台的视频、以及展示如何从脚垫或抬升的脚部平台走下来的视频。在一些实施例中,基于与用户相关联的问题,教学视频可以包括不同的版本。例如,如果用户在将其脚部恰当地定位于抬升的脚部平台的中心凹陷中方面有困难,用户界面模块302可以生成视频以便为用户展示如何将其脚部定位于中心凹陷中。在一些实施例中,教学视频可以取决于用户的性别或年龄而不同。在一些实施例中,在扫描阶段期间,用户界面模块302可以生成用户扫描数据的三维(3D)模型。
在一些实施例中,用户界面模块302可以从一个或多个成像传感器120接收扫描数据,并且生成用户的实时图像或视频以便在自助服务终端上或者相对于自助服务终端的恰当定位方面辅助用户。用户界面模块302可以生成用户界面,所述用户界面包括预写入的脚本以便在脚垫和/或抬升的脚部平台上取向他或她自己方面辅助用户。
产品推荐阶段可以包括提供关于所述一个或多个矫正产品的扫描结果和详细信息的用户界面。例如,扫描结果可以包括用户腿部的点云和/或用户足部中的压力点的彩色图。用户界面还可以提供去往在线产品购买网站的链接和/或用于使用户向他或她自己发送关于所述一个或多个矫正产品的电子邮件的选项。
建模引擎304可以配置为生成模型。在一些实施例中,建模引擎304可以是由处理器335可执行以生成模型的指令集。在一些实施例中,建模引擎304可以存储在计算设备300的存储器337中,并且可以由处理器335可访问和可执行。
建模引擎304可以基于用户输入和/或传感器数据来确定关于用户的信息。例如,建模引擎304可以基于如由上部成像传感器确定的用户高度以及如由脚垫确定的用户重量来确定用户的体重指数(BMI)。可替换地,用户可以经由用户界面提供BMI或者用户的高度和重量。BMI可以由产品模块308用作选择向用户所推荐的矫正产品时的因素。建模引擎304可以基于从脚部图接收的传感器数据来确定用户的脚部尺寸。建模引擎304可以基于扫描数据确定踝关节宽度和膝盖宽度。在一些实施例中,建模引擎304基于扫描数据确定用于部分周长的宽度。例如,在感兴趣的四肢区域是膝盖的情况下,建模引擎304确定膝盖上方五英寸、膝盖上方三英寸、膝盖上方七英寸、膝盖处、膝盖下方三英寸、膝盖下方五英寸以及膝盖下方七英寸的膝盖宽度。在另一个示例中,在感兴趣的四肢区域是踝关节的情况下,建模引擎304确定踝骨(即,踝关节骨头)上方三英寸、踝骨上方一英寸、踝骨处、踝骨下方一英寸以及踝骨下方三英寸的踝关节宽度。
在一些实施例中,建模引擎304从一个或多个图像传感器120接收扫描数据,并且确定扫描数据是否可使用,或者用户是否需要做出修改。建模引擎304可以生成三维模型,诸如,腿部的点云,并且将点云与模板模型相比较。在一些实施例中,点云还用于生成如下文所讨论的模型。在一些实施例中,建模引擎304作为生成模型的部分而生成不同的点云。
在一些实施例中,建模引擎304接收扫描数据,并且从扫描数据生成腿部的点云。建模引擎304可以使用点云来确定是否正扫描正确的腿部。例如,建模引擎304可以基于点云与模板模型的比较而确定腿部是左腿还是右腿。如果所标识的腿部不同于用户标识为具有感兴趣的一个或多个四肢区域的腿部,则建模引擎304可以指示用户界面模块302通知用户使用的是错误腿部。
建模引擎304可以使用点云来确定膝盖是否可见。例如,建模引擎304可以基于以下来确定用户是否正穿着具有褶皱的衣服,所述褶皱干扰测量膝盖:腿部轮廓中的间隙、腿部轮廓中的非规则尖峰、轮廓梯度超出阈值和/或轮廓长度在最小可能的长度以下或者超出针对腿部上的该位置所限定的最大长度。如果膝盖不可见,或者衣服不足够平滑或贴身,则建模引擎304可以指示用户卷起用户裤腿或者执行其它校正动作。在一些实施例中,建模引擎304基于颜色、图案、非规则形状、用户输入或者非规则倾斜来确定膝盖是否可见。
建模引擎304可以使用点云来确定腿部是否处于可接受的位置中。例如,建模引擎304可以比较点云与模板模型以便确定腿部是否处于可接受的位置中。如果腿部处在不可接受的位置中,则建模引擎304可以确定将校正该问题的修改。例如,建模引擎304可以指示用户界面模块302做出改变,诸如,向右倾、向左倾、向前倾或者向后倾。
建模引擎304可以生成一个或多个四肢区域的模型。在一些实施例中,建模引擎304执行点-云分割以便将扫描数据划分为作为点群簇而已知的感兴趣区。感兴趣区可以包括左脚、右脚、大体膝盖区域、大体臀部区域和大体踝关节区域。对于每一个点群簇,建模引擎可以标识点群簇图心,并且基于点群簇图心,标识腿部中的关节和骨骼骨头的位置。在一些实施例中,建模引擎可以通过估计骨骼骨头的位置之间的基本上垂直的线来标识关节。
建模引擎304可以基于腿部中的关节的位置而从扫描数据生成腿部的二维(2D)深度图。在一些实施例中,2D深度图可以是2D彩色图,所述2D彩色图在离散位置处用不同颜色图示腿部的不同深度。2D彩色图有利地图示了当腿部弯曲时腿部的曲率的表示。2D彩色图可以用于确定腿部的位置以便确保可复制的测量位置。
建模引擎304可以从2D深度图生成腿部的点云,其中,点云表示形成腿部的三维(3D)非结构化点。
建模引擎304可以从3D扫描确定对应于腿部的一个或多个点的一个或多个部分周长。部分周长是部分轮廓,所述部分轮廓可以包括从扫描数据可见的完整周长的部分。确定多个部分周长的一个优点在于,在膝盖上方确定的多个部分周长可以用于解释误导性数据,诸如,用户衣服中的褶皱。在一些实施例中,在矫正产品用于膝盖的情况下,建模引擎304可以确定高达膝盖上方五英寸的三个部分周长以及膝盖下方五英寸的三个部分周长。例如,建模引擎304可以确定膝盖上方七英寸、膝盖上方五英寸、膝盖上方三英寸、膝盖处、膝盖下方三英寸、膝盖下方五英寸以及膝盖下方七英寸的部分周长。在一些实施例中,在矫正产品用于踝关节的情况下,建模引擎304可以确定高达踝关节骨头上方三英寸的一个部分周长、高达踝关节骨头上方一英寸的一个部分周长、以及踝关节骨头处的一个部分周长。例如,建模引擎304可以确定踝骨上方三英寸、踝骨上方一英寸、踝骨处、踝骨下方一英寸和踝骨下方三英寸的部分周长。
建模引擎304可以基于所述一个或多个部分周长来确定一个或多个完整周长。完整周长是可以包括周长的所有点的完整轮廓,其中确定在部分周长中缺失的点。例如,建模引擎304可以使用回归相关来估计部分周长的缺失点。所述一个或多个完整周长可以具有卵形形状。
在一些实施例中,建模引擎304修剪点云以便将膝盖标识为点云的中部区域。建模引擎304可以通过分析更小子区段中的数据来进一步细化点云以便估计完整周长。在一些实施例中,建模引擎304基于骨骼骨头的位置之间的线的斜率以及周长的整形来确定是否分析更小子区段。建模引擎304还可以基于比较点云与模板模型以及标识异常值来从点云移除噪声。
建模引擎304通过基于腿部形状的模板模型和周长的位置对后侧的形状进行镜像来确定所述一个或多个完整周长。例如,如果部分周长是在膝盖下方,则建模引擎304可以估计细长形状以便生成完整周长。
产品模块306可以配置为标识用于用户的一个或多个矫正产品。在一些实施例中,产品模块306可以是由处理器335可执行以便标识用于用户的所述一个或多个矫正产品的指令集。在一些实施例中,产品模块306可以存储在计算设备300的存储器337中,并且可以由处理器335可访问和可执行。
产品模块306可以使用不同因素来标识用于用户的一个或多个矫正产品。例如,在四肢区域是膝盖的情况下,产品模块306可以使用用户的膝盖下方五英寸处的完整周长以及用户的BMI来标识所述一个或多个矫正产品。在另一个示例中,在四肢区域是踝关节的情况下,产品模块306可以使用接触宽度、接触长度和所估计的足弓测量结果来标识所述一个或多个矫正产品。其它因素在确定要推荐的矫正产品方面是可能的,诸如,用于膝盖和/或踝关节的附加完整周长。
在一些实施例中,用于膝盖的矫正产品可以被归类为超小的、小的、小宽度的、中等的、中等宽度的、大的以及大宽度的。在一些实施例中,矫正产品可以进一步被分类为三个产品家族,其中小的包括超小的、小的和小宽度的;中等的包括中等的和中等宽度的;并且大的包括大的和大宽度的。产品模块306可以使用如由世界卫生组织限定的以下BMI类别:非常严重地体重过轻、严重地体重过轻、体重过轻、正常、体重过重、肥胖分类I、肥胖分类II和肥胖分类III。
产品模块306可以基于膝盖下方五英寸处的完整周长的测量结果来确定用户属于小、中等和大的产品家族中的一个。如果在对应产品家族中仅有一个产品可获得(例如,针对大的产品家族仅包括大产品,或者仅大产品有库存),则产品模块306可以推荐该单个产品(例如,大产品)。如果在产品家族中可获得两个产品,如果用户处于肥胖BMI类别之一中,则产品模块306可以推荐产品家族中的两个产品中的较大者(例如,如果针对大的产品家族具有可获得的大的和大宽度的,则推荐大宽度的)。如果用户不处于肥胖BMI类别之一中,则产品模块306可以推荐产品类别中的两个产品中的较大者。
如果用户体重过重或者肥胖,并且产品模块306推荐来自小产品家族的产品或者产品推荐不大可能,则以下选项可以是可获得的。如果顾客体重过重,则产品模块306可以推荐小宽度产品。如果用户处于肥胖分类I或肥胖分类II中,则产品模块306可以推荐中等产品。如果用户处于肥胖类别III中,则产品模块306可以推荐中等宽度产品。
对于在前面两个段落中提及的选项,如果针对单个产品的推荐中的三个适用于用户,则产品模块306推荐该产品。否则,可以生成新的扫描数据,可以生成新的模型,并且产品模块306可以执行前面两个段落中的步骤,直至标识出针对单个产品的三个推荐,并且产品模块306可以推荐该产品。生成新的扫描数据和新的模型对于校正变化可以是有利的,诸如,用户在扫描期间轻微地移动。在一些实现中,在三次与五次之间扫描用户以便标识所述一个或多个矫正产品。
在一些实施例中,针对踝关节的矫正产品可以被归类为小的、小宽度的、中等的、中等宽度的以及大的。产品模块306可以通过分配自然数产品推荐来标识范围中的一个或多个矫正产品。自然数产品推荐可以是从1到5的值,其中小对应于1,小宽度对应于2,中等对应于3,中等宽度对应于4,并且大对应于5。
产品模块306可以使用多项式回归计算而基于自然数产品推荐值来确定浮点产品推荐值。产品模块306可以使用多项式回归计算而基于接触宽度值来确定用于用户的足弓测量结果,其中来自多项式回归计算的所得值用于确定基于接触宽度的浮点产品推荐值。足弓测量结果还可以是基于使用线性回归计算的接触长度值,其中来自多项式回归计算的所得值用于确定基于接触长度的浮点产品推荐值。
产品模块306可以通过使用利用权重的加权平均计算以及使所得值取整到最接近的自然数而确定自然数产品推荐。例如,权重可以包括:自然数产品推荐权重0.3、浮点产品推荐权重1.0、基于接触长度的浮点产品推荐权重0.3、以及基于接触宽度的浮点产品推荐权重0.3。如果所得自然数推荐值超过5,可以将该值设定为5。如果自然数推荐值小于1,可以将该值设定为1。
产品模块306可以基于将自然数推荐值映射为与矫正产品尺寸相关联的整数而确定要推荐的矫正产品。例如,如果自然数推荐值是3,则产品模块306推荐中等尺寸。
产品模块306可以指示用户界面模块302显示关于矫正产品的信息,如上文更加详细地讨论的。
示例方法
图4是生成矫正产品推荐的示例方法400的流程图。方法400可以由自助服务终端服务器201、自助服务终端100或者自助服务终端服务器201和自助服务终端100的组合实现在图2中所图示的自助服务终端应用203中。
在框402处,从用户接收交互,包括与一个或多个矫正产品的选择有关的用户身体的一个或多个四肢区域的标识。在框404处,提供屏幕上的线索和交互以便辅助于所述一个或多个四肢区域相对于一个或多个图像传感器的定位。在框406处,从所述一个或多个图像传感器接收扫描数据。在框408处,基于扫描数据生成所述一个或多个四肢区域的模型,包括估计所述一个或多个四肢区域的一个或多个完整周长。在框410处,基于与用户相关联的一个或多个因素和所述一个或多个四肢区域的模型与多个矫正产品的比较而为用户标识一个或多个矫正产品。在框412处,提供包括所述一个或多个矫正产品的推荐。尽管以特定次序图示了框402到412,但是在具有中间步骤的情况下,其它次序是可能的。在一些实施例中,可以增加、跳过或者组合一些框。
图5是为用户提供屏幕上的线索和交互以便辅助于扫描一个或多个四肢区域的示例方法500的流程图。方法500可以由自助服务终端服务器201、自助服务终端100或者自助服务终端服务器201和自助服务终端100的组合实现在图2中所图示的自助服务终端应用203中。
在框502处,显示卷起裤子的第一视频。在框504处,显示踏上自助服务终端中的一个或多个立足处的第二视频。在框506处,接收来自所述一个或多个图像传感器的扫描数据,其中扫描数据包括含有膝盖的腿部。在框508处,确定腿部是否正确。如果腿部正确,方法500进行到框510。在框510处,确定膝盖是否可见。如果膝盖可见,方法500进行到框512。在框512处,确定腿部是否处于可接受的位置中。如果腿部处于可接受的位置中,显示走下来的第三视频。如果腿部不正确,膝盖不可见和/或腿部没有处于可接受的位置中,方法500进行到框514。在框514处,指示用户做出修改。尽管以特定次序图示了框502到516,但是在具有中间步骤的情况下,其它次序是可能的。在一些实施例中,可以增加、跳过或组合一些框。
图6是生成所述一个或多个四肢区域的模型的示例方法600的流程图。方法600可以由自助服务终端服务器201、自助服务终端100或者自助服务终端服务器201和自助服务终端100的组合实现在图2中所图示的自助服务终端应用203中。
在框602处,执行点-云分割以便将扫描数据划分为点群簇。在框604处,针对每一个点群簇标识点群簇图心。在框606处,基于点群簇图心而针对腿部中的每一个关节标识位置。在框608处,基于腿部中的关节的位置来生成腿部的2D深度图。在框610处,基于2D深度图生成腿部的点云。在框612处,从点云确定对应于腿部的一个或多个点的一个或多个部分周长。在框614处,基于所述一个或多个部分周长来确定一个或多个完整周长。尽管以特定次序图示了框602到614,但是在具有中间步骤的情况下,其它次序是可能的。在一些实施例中,可以增加、跳过或组合一些框。
动画的示例图形表示
图7是为了推荐针对膝盖的矫正产品而估计的周长的示例图形表示700。在该示例中,建模引擎304生成用于推荐针对膝盖的矫正产品的周长和用于推荐针对踝关节的矫正产品的周长。对于膝盖,建模引擎304生成用于膝盖上方七英寸、膝盖上方五英寸、膝盖上方三英寸、膝盖处、膝盖下方三英寸、以及膝盖下方五英寸的周长。对于踝关节,建模引擎304生成踝关节骨头上方三英寸、踝关节骨头上方一英寸和踝关节骨头处的周长。
利用实线和虚线图示了周长。实线表示以上参照图6描述的部分周长。虚线表示在建模引擎304确定完整周长时填入的缺失点。
在以上描述中,出于解释的目的,阐述众多具体细节以便提供对说明书的透彻理解。然而,本领域技术人员将显而易见的是,本公开可以在没有这些具体细节的情况下实践。在一些实例中,以框图形式示出结构和设备以便避免使描述模糊不清。例如,可以在上文主要参照用户界面和特定硬件来描述实施例。然而,实施例可以适用于可以接收数据和命令的任何类型的计算设备,以及提供服务的任何外围设备。
在说明书中对“一些实施例”或“一些实例”的引用意味着结合所述实施例或实例描述的特定特征、结构或特性可以包括在描述的至少一个实现中。短语“在一些实施例中”在说明书中各种地方的出现未必全部都是指相同的实施例。
依据对计算机存储器内的数据位的操作的算法和符号表示呈现了以上详细描述的一些部分。这些算法描述和表示是由数据处理领域中的技术人员使用以便向本领域其他技术人员最有效地传达其工作本质的措施。在此处并且一般地将算法设想为引起期望结果的自相一致的步骤序列。步骤是要求对物理量的物理操控的那些。尽管未必如此,但是通常,这些量采取能够被存储、转移、组合、比较和以其它方式操控的电气或磁性数据的形式。大部分出于常用的原因,有时候已经证实为方便的是,将这些数据称为位、值、元素、符号、字符、项、数字等。
然而,应当谨记于心的是,所有这些和类似的术语要与适当的物理量相关联,并且只是应用于这些量的便捷标签。除非以其它方式特别地陈述,否则如从以下讨论显而易见,领会到的是,遍及描述,利用包括“处理”或“计算”或“核算”或“确定”或“显示”等的术语的讨论指的是将表示为计算机系统的寄存器和存储器内的物理(电子)量的数据操控和变换成类似地表示为计算机系统存储器或寄存器或其它这样的信息存储、传输或显示设备内的物理量的其它数据的计算机系统或者类似的电子计算设备的动作和过程。
说明书的实施例还可以涉及一种用于执行上文所述方法的一个或多个步骤的处理器。处理器可以是由存储在计算机中的计算机程序选择性地激活或重新配置的专用处理器。这样的计算机程序可以存储在非暂时性计算机可读存储介质中,包括但不限于任何类型的盘,包括软盘、光盘、ROM、CD-ROM、磁盘、RAM、EPROM、EEPROM、磁性或光学卡、闪速存储器(包括具有非易失性存储器的USB密钥)、或者适用于存储电子指令的任何类型的介质,每一个都耦合到计算机系统总线。
说明书可以采取一些完全硬件的实施例、一些完全软件的实施例、或者包含硬件和软件元件二者的一些实施例的形式。在一些实施例中,说明书以软件实现,所述软件包括但不限于固件、常驻软件、微代码等。
此外,描述可以采取从计算机可用或计算机可读介质可访问的计算机程序产品的形式,提供用于由计算机或任何指令执行系统使用或者与计算机或任何指令执行系统结合使用的程序代码。出于该描述的目的,计算机可用或者计算机可读的介质可以是可以包含、存储、通信、传播或者运输所述程序以用于由指令执行系统、装置或设备使用或者与指令执行系统、装置或设备结合使用的任何装置。
适用于存储或执行程序代码的数据处理系统将包括通过系统总线直接地或间接地耦合到存储器元件的至少一个处理器。存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、块状存储装置、以及提供至少一些程序代码的临时存储的高速缓存器存储器,以便减少在执行期间必须从块状存储装置检索代码的次数。
在以上讨论的系统收集个人信息的情况下,系统为用户提供机会以便控制程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户偏好或用户的当前位置的信息),或者控制是否和/或如何从可能与用户更有关的服务器接收内容。此外,可以在存储或使用某些数据之前以一个或多个方式处置所述某些数据,使得个人可标识的信息被移除。例如,可以处置用户的身份,使得不可以针对该用户确定个人可标识的信息,或者用户的地理位置可以是其中获取位置信息的一般化地方(诸如,到城市、邮政编码或者国家一级),使得不能确定用户的特定位置。因而,用户可以控制如何收集关于用户和由服务器使用的信息。