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

根据立体相机的手部姿势估计的制作方法

2022-04-25 05:01:48 来源:中国专利 TAG:

truth three-dimensional hand pose annotations)构成的大规模合成数据集。本公开内容的一个方面描述了用于根据立体相机估计三维手部姿势的系统。尽管下面对系统的描述涉及立体相机,但是系统可以被配置成使用一个或更多个相机。
16.系统从立体相机接收成对的手部姿势的图像。在一些示例中,系统可以接收图像的序列(例如,具有多个图像帧的视频)。系统裁剪每个图像的包括手的部分。例如,系统去除图像的不包括手的部分,使得经裁剪的图像主要由表示手的像素构成。系统可以分析单个图像中的多个手部姿势。例如,系统可以裁剪图像内的每个手部。因此,单个图像可以被裁剪成多个图像,其中,每个经裁剪的图像包含手部姿势。
17.系统通过使用被训练成识别手部内的关节位置的神经网络来分析经裁剪的图像。在一些示例中,系统执行裁剪操作以确保不向神经网络提供具有很少手部像素或没有手部像素的不相关图像数据。
18.在一些示例中,系统还基于关节位置来识别三维手部位置。例如,系统可以将关节位置与关节位置的预定义数据集进行比较,以识别3d手部姿势。图1是示出根据一些示例实施方式的示例系统100的框图,该示例系统100被配置成自动执行三维手部姿势估计。系统100包括一个或更多个客户端设备,例如客户端设备102。客户端设备102包括但不限于移动电话、台式计算机、膝上型计算机、便携式数字助理(pda)、智能电话、平板电脑、超级本、上网本、膝上型计算机、多处理器系统、基于微处理器的或可编程的消费电子产品、游戏机、机顶盒、车载计算机或者用户可以利用以访问系统100的任何其他通信设备。在一些实施方式中,客户端设备102包括显示模块(未示出)以显示信息(例如,以用户界面的形式)。在另一实施方式中,客户端设备102包括触摸屏、加速度计、陀螺仪、相机、麦克风、全球定位系统(gps)设备、可穿戴设备等中的一个或更多个。客户端设备102可以是用于捕获成对的立体图像的用户设备。例如,客户端设备102可以用于使用所捕获的成对立体图像来识别三维手部姿势。
19.例如,客户端设备102是想要使用耦接至客户端设备102的立体相机来捕获成对图像的给定用户的设备。用户使用三维手部姿势的立体相机捕获成对的图像。服务器系统114接收图像并识别三维手部姿势。
20.在一些示例中,所识别的三维手部姿势使客户端设备102执行预定的动作。例如,在识别3d手部姿势时,可以提示客户端设备102捕获图像、修改捕获的图像(例如,对捕获的图像进行注释)、实时地或接近实时地对图像进行注释、经由一个或更多个应用(例如,第三方应用108、客户端应用110)来发送消息、或者在一个或更多个应用(例如,第三方应用108、客户端应用110)内导航菜单。所识别的3d手部姿势可以可选地用于使用客户端设备102与增强现实(ar)体验进行交互。应当理解,上面列出的示例不意图作为示例的限制性列表。
21.一个或更多个用户可以是人、机器或与客户端设备102交互的其他装置。在示例实施方式中,用户可以不是系统100的一部分,但是可以经由客户端设备102或其他装置与系统100交互。例如,用户可以向客户端设备102提供输入(例如,触摸屏输入或字母数字输入),并且该输入可以经由网络112被传送至系统100中的其他实体(例如,第三方服务器104、服务器系统114等)。在这种情况下,系统100中的其他实体响应于接收到来自用户的输入,可以经由网络104向客户端设备102传送要呈现给用户的信息。以这种方式,用户使用客户端设备102与系统100中的各种实体交互。
22.系统100还包括网络112。网络112的一个或更多个部分可以是自组织网络(ad hoc network)、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、因特网的一部分、公共交换电话网络(pstn)的一部分、蜂窝电话网络、无线网络、wifi网络、wimax网络、其它类型的网络、或者两个或更多个这样的网络的组合。
23.客户端设备102可以经由web客户端106(例如,浏览器)或者一个或更多个客户端应用110访问由系统100中的其他实体提供的各种数据和应用。客户端设备102可以包括一个或更多个客户端应用110(也被称为“app”),例如但不限于web浏览器、消息应用、电子邮件(email)应用、电子商务站点应用、地图绘制或位置应用等。
24.在一些实施方式中,一个或更多个客户端应用110被包括在客户端设备110中的给定客户端设备110中,并且被配置成在本地提供用户界面和功能中的至少一些功能,其中客户端应用110被配置成,为了本地不可获得的数据处理能力,在根据需要的基础上与系统100中的其他实体(例如,第三方服务器104、服务器系统114等)通信。相反,一个或更多个客户端应用110可能不被包括在客户端设备102中,于是客户端设备102可以使用其web浏览器来访问托管在系统100中的其他实体(例如,第三方服务器104、服务器系统114等)上的一个或更多个应用。
25.服务器系统114经由网络112(例如,因特网或广域网(wan))向一个或更多个第三方服务器104和一个或更多个客户端设备102提供服务器端功能。服务器系统114包括可以与一个或更多个数据库126通信地耦接的应用程序接口(api)服务器118、web服务器120和手部姿势估计系统122。一个或更多个数据库126可以是存储以下内容的存储设备:与服务器系统114的用户有关的数据、与服务器系统114相关联的应用、云服务、用户数据等。一个或更多个数据库126还可以存储与第三方服务器104、第三方应用108、客户端设备102、客户端应用110、用户等有关的信息。在一个示例中,一个或更多个数据库126可以是基于云的存储装置。
26.根据一些示例实施方式,服务器系统114可以是云计算环境。在一个示例实施方式中,服务器系统114以及与服务器系统114相关联的任何服务器可以与基于云的应用相关联。
27.服务器系统114包括手部姿势估计系统122。手部姿势估计系统122可以包括一个或更多个服务器并且可以与基于云的应用相关联。手部姿势估计系统122可以从数据库126获得立体图像。在一些示例中,手部姿势估计系统122可以使用客户端设备102捕获立体图像。手部姿势估计系统122分析在立体图像中捕获的三维手部姿势,并且基于手部内的关节位置来识别手部姿势。下面结合图3提供手部姿势估计系统122的细节。
28.系统100还包括一个或更多个第三方服务器104。一个或更多个第三方服务器104可以包括一个或更多个第三方应用108。在第三方服务器104上执行的一个或更多个第三方应用108可以经由api服务器118提供的编程式接口经由api服务器118与服务器系统114交互。例如,一个或更多个第三方应用108可以经由api服务器118请求并利用来自服务器系统114的信息,以支持由第三方托管的网站或由第三方托管的应用上的一个或更多个特征或功能。第三方应用108例如可以提供被服务器系统114中的相关功能和数据所支持的软件版本分析功能。
29.图2是根据一些示例实施方式的手部姿势估计系统122的框图。手部姿势估计系统122被示出为包括全部被配置成彼此通信(例如,经由总线、共享存储器、或开关)的预处理系统202、机器学习系统204和后处理系统206。这些系统中的任何一个或更多个可以使用一个或更多个处理器来实现(例如,通过配置这样的一个或更多个处理器以执行针对该系统描述的功能,并且因此可以包括一个或更多个处理器)。
30.所描述的系统中的任何一个或更多个可以单独使用硬件(例如,机器的一个或更多个处理器)或者硬件和软件的组合来实现。例如,手部姿势估计系统122的所描述的任何系统可以在物理上包括被配置成执行本文中针对该系统所描述的操作的一个或更多个处理器(例如,机器的一个或更多个处理器的子集)的布置。作为另一示例,手部姿势估计系统122的任何系统可以包括软件、硬件或两者,其配置(例如,机器的一个或更多个处理器当中的)一个或更多个处理器的布置以执行本文中针对该系统所描述的操作。因此,手部姿势估计系统122的不同系统可以包括并且配置这样的处理器的不同布置,或者在不同时间点包括并且配置这样的处理器的单个布置。此外,手部姿势估计系统122的任何两个或更多个系统可以组合成单个系统,并且本文中针对单个系统所描述的功能可以在多个系统之间细分。此外,根据各种示例实施方式,在本文中被描述为在单个机器、数据库或设备内实现的系统可以跨多个机器、数据库或设备分布。
31.在一个示例中,预处理系统202从立体相机接收成对的图像。预处理系统202识别每一个图像内包含手部的区域。预处理系统202还裁剪每个图像内包含手部的区域。每个图像可能包含多个手部。预处理系统202裁剪包含手部的图像内的每个区域。在一些示例中,预处理系统202使用跟踪系统来识别手部在每个图像内的位置。在一些示例中,预处理系统202使用对前一帧中手部的位置的估计来生成对于相继帧的手部位置的估计。例如,预处理系统202可以提示手部姿势估计系统122的用户将他或她的手放在初始化位置。初始化位置可以被指定为在用户设备的图形用户界面上显示的有界区域。预处理系统202可以请求用户将他或她的手放在有界区域内。预处理系统202可以使用手在初始化位置中的位置来估计手在相继图像帧中的位置。
32.在一些示例中,机器学习系统204被配置成使用手部内的关节位置来识别三维手部姿势。在一些示例中,机器学习系统204计算相对于预处理系统202所生成的经裁剪图像的关节位置坐标。例如,预处理系统202将经裁剪的图像提供给机器学习系统204,以确保不向机器学习系统204提供具有很少手部像素或没有手部像素的不相关图像数据。在一些示例中,机器学习系统204生成用于训练神经网络的合成数据集。经训练的神经网络被部署在客户端设备上以执行实时三维手部姿势估计。下面关于图3描述关于机器学习系统204的更多细节。
33.在一个示例中,后处理系统206取得由机器学习系统204计算的手部中的关节位置坐标。后处理系统206转换由机器学习系统204计算的关节位置坐标来估计三维世界空间中的关节位置坐标。在一些示例中,后处理系统206通过将相对于经裁剪图像的第一组关节位置坐标转换为相对于图像的未裁剪版本(例如,接收到的立体图像)的第三组关节位置坐标,来对先前计算的关节位置坐标进行反规范化(denormalize)。后处理系统206还转换第三组关节位置坐标以估计世界空间中的关节位置坐标。因此,后处理系统206取得相对于经裁剪图像的手部中的关节位置坐标,并且将关节位置坐标转换到三维世界空间。在一些示
例中,世界空间中的关节位置坐标以毫米表示。在一些示例中,相对于经裁剪图像和未裁剪图像的关节位置坐标由像素位置(例如,图像空间)来表示。
34.图3示出了根据一些示例实施方式的机器学习系统204。机器学习系统204包括新3d手部姿势数据模块308、机器学习技术训练模块304、经训练的机器学习技术模块306、新3d手部姿势数据模块308和3d手部姿势预测模块310。
35.在一些实现方式中,机器学习系统204的一些模块可以在服务器系统114上实现,而其他模块可以在第三方服务器104上实现。在一些实现方式中,机器学习系统204的全部模块在服务器系统114上或在第三方服务器104上实现。在这样的情况下,服务器系统114基于实现的模块将信息传送至第三方服务器104,反之亦然。
36.手部姿势训练数据模块302由机器学习系统204生成。在一些示例中,手部姿势训练数据模块302可以包括合成数据集。例如,手部姿势训练数据模块302可以在虚拟立体相机上渲染各种手部姿势。每个手部姿势图像与真实标记(ground truth label)(例如,手部中的关节位置)相关联。手部姿势训练数据模块302可以将渲染的手部姿势图像中的每一个及其对应的真实标记存储在一个或更多个数据库126中。手部姿势训练数据模块302可以通过使用具有不同肤色、手部形状的手部和各种手势来使其数据集多样化。
37.机器学习技术训练模块304被训练成通过建立手部姿势图像与手部姿势训练数据模块302所提供的对应真实标记(例如,手部中的关节位置)之间的关系来估计手部内的关节位置。
38.机器学习是使计算机在不被明确编程的情况下能够学习的研究领域。机器学习探索算法——在本文也被称为工具——的研究和构造,所述算法可以根据现有数据进行学习并且做出关于新数据的预测。这样的机器学习工具通过根据示例训练数据构建模型来进行操作,以便做出数据驱动的预测或被表达为输出或评估的决策。尽管示例实施方式是关于一些机器学习工具呈现的,但是本文中呈现的原理可以应用于其他机器学习工具。在一些示例实施方式中,可以使用不同的机器学习工具。例如,可以使用逻辑回归(lr)、朴素贝叶斯、随机森林(rf)、神经网络(nn)、矩阵分解和支持向量机(svm)工具来预测给定财产的待定天数(a days to pending amount for a given property)。
39.机器学习算法利用特征来分析数据以生成评估。特征是被观察的现象的单独可测量属性。特征的概念与诸如线性回归的统计技术中使用的说明变量的概念有关。选择信息丰富的、区分性的和独立的特征对于模式识别、分类和回归中的mlp的有效操作是重要的。特征可以具有不同的类型,例如数字特征、字符串和图形。
40.机器学习算法利用训练数据来发现影响结果或评估的所识别特征之间的相关性。在一些示例实施方式中,训练数据包括已标记数据,该已标记数据是针对一个或更多个识别的特征和一个或更多个结果(例如,待定天数)的已知数据。
41.一旦收集并处理了训练数据,就可以使用机器学习技术来构建机器学习技术训练模块304。机器学习技术训练模型以根据馈送到模型中的数据做出预测(例如,用户在给定话语中说了什么;名词是人、地点还是事物;明天的天气如何)。在学习阶段期间,针对输入的训练数据集开发模型,以优化模型,以针对给定输入正确地预测输出。一般地,学习阶段可以是有监督的、半监督的或无监督的——这些表示对应于训练输入提供“正确”输出的降低水平。在有监督学习阶段,所有输出均被提供给模型,并且模型旨在开发出将输入映射到
输出的一般规则或算法。相比之下,在无监督学习阶段,没有针对输入提供期望的输出,使得模型可以开发其自己的规则来发现训练数据集内的关系。在半监督学习阶段,提供不完全标记的训练集,其中,对于训练数据集,一些输出是已知的,而一些输出是未知的。
42.模型可以针对训练数据集运行若干个时期(epoch)(例如,迭代),其中训练数据集被重复馈送到模型中以改进其结果。例如,在监督学习阶段,开发模型以针对给定的一组输入预测输出,并且在若干个时期内对模型进行评估,以针对训练数据集的最大数目的输入,更可靠地提供被指定为对应于给定输入的输出。在另一示例中,对于无监督学习阶段,开发模型以将数据集聚类为n个组,并且在若干个时期内关于以下方面对模型进行评估:模型如何一致地将给定输入放到给定组中,以及模型如何可靠地跨每个时期产生n个期望的聚类。
43.一旦运行了一个时期,就对模型进行评估,并且调整模型的变量的值,以尝试以迭代方式更好地改进模型。在各个方面,评估对假阴性有偏差、对假阳性有偏差、或关于模型的总体准确度有均匀的偏差。取决于所使用的机器学习技术,可以通过若干方式调整这些值。例如,在遗传或进化算法中,在预测期望的输出方面最成功的模型的值被用于开发供模型在后续时期期间使用的值,这可能包括随机变化/突变以提供另外的数据点。本领域普通技术人员熟悉可以与本公开内容一起应用的若干其他机器学习算法,包括线性回归、随机森林、决策树学习、神经网络、深度神经网络等。
44.每个模型在若干个时期内通过改变一个或更多个变量的值来开发规则或算法,其中该一个或更多个变量影响输入以更接近地映射到期望的结果,但是由于训练数据集可能变化并且优选地非常大,因此可能无法实现完美的准确度和精度。因此,可以将构成学习阶段的多个时期设置为给定数目的试验或固定的时间/计算预算,或者当给定模型的准确度足够高或足够低或达到准确度平台区时,可以在达到该数目/预算之前终止构成学习阶段的多个时期。例如,如果训练阶段被设计成运行n个时期并且产生具有至少95%准确度的模型,并且这样的模型是在第n个时期之前产生的,则学习阶段可能提早结束,并且使用满足最终目标准确度阈值的所产生的模型。类似地,如果给定模型足够不准确以满足随机机会阈值(例如,在针对给定输入确定真/假输出时该模型仅是55%准确),则该模型的学习阶段可以较早终止,尽管学习阶段中的其他模型可以继续训练。类似地,当给定模型跨多个时期继续在其结果中提供类似的准确度或波动时——已经达到性能平台区——给定模型的学习阶段可以在达到时期数目/计算预算之前终止。
45.一旦完成了学习阶段,模型就被最终确定。在一些示例实施方式中,对照测试标准来评估最终确定的模型。在第一示例中,包括针对其输入的已知输出的测试数据集被馈送到最终确定的模型中,以确定模型在处理尚未被训练的数据时的准确度。在第二示例中,可以使用假阳性率或假阴性率来在最终确定之后评估模型。在第三示例中,使用数据聚类之间的图(delineation)来选择以下模型:该模型针对其数据的聚类产生最清晰的边界。
46.在一些实施方式中,机器学习技术训练模块304被训练成基于一个或更多个特征(例如,从手部姿势训练数据模块302接收的训练数据)来估计手部内的关节位置。在一些实施方式中,机器学习系统204可以周期性地(例如,每周、每月、每年)训练机器学习技术训练模块304。
47.在被训练之后,机器学习技术训练模块304被提供给经训练的机器学习技术模块306。经训练的机器学习技术模块306被配置成从新3d手部姿势数据模块308接收新的三维
手部姿势图像数据。例如,新3d手部姿势数据模块308接收由用户捕获的包含手部姿势的成对立体图像。新3d手部姿势数据模块308指示经训练的机器学习技术模块306将经训练的机器学习技术应用于新3d手部姿势数据模块308所提供的成对立体图像。经训练的机器学习技术模块306基于新3d手部姿势数据模块308所提供的手部的成对立体图像来提供对手部内的关节位置的估计。
48.在一些示例中,经训练的机器学习技术模块306将估计的手部内的关节位置提供给3d手部姿势预测模块310。3d手部姿势预测模块310可以基于估计的关节位置来确定三维手部姿势的类型。
49.图4示出了用于自动识别三维手部姿势的过程402、404和406的流程图。过程可以以计算机可读指令来实现,以用于被一个或更多个处理器执行,使得过程的操作可以部分地或全部地由服务器系统114的功能部件执行。因此,下面参照服务器系统114通过示例的方式描述过程。然而,在其他实施方式中,过程的操作中的至少一些可以部署在各种其他硬件配置上。因此,过程不意图限于服务器系统114,并且可以全部地或部分地由任何其他部件来实现。
50.在操作402处,手部姿势估计系统122从相机接收成对图像。在一些示例中,相机是立体相机。成对图像包括手部的第一视图和第二视图。在一些示例中,手部的第一视图复制手部的左眼视图,手部的第二视图复制手部的右眼视图。在一些示例中,立体相机中的每个相机可以被配置在与左眼视点和右眼视点不同的位置。手部的第一视图包括第一视图内的手部的第一位置,手部的第二视图包括第二视图内的手部的第二位置。手部的第一位置和第二位置可以是水平或竖直不同的。例如,出现在第一视图中的水平坐标p处的单个关节位置可以存在于第二视图中的第二水平坐标p-3。在一些示例中,在可穿戴客户端设备102(例如,具有安装在左右太阳穴上的相机的头戴式图像捕获设备)上执行操作402。
51.在操作404处,手部姿势估计系统122生成多组关节位置坐标。在一些示例中,手部姿势估计系统122识别第一组关节位置坐标,并且使用第一组关节位置坐标生成第二组关节位置坐标。下面结合图5描述操作404的其他细节。
52.在操作406中,手部姿势估计系统122基于多组关节位置坐标来识别3d手部姿势。手部姿势估计系统122可以将识别的关节位置与关节位置的预定义数据集进行比较。例如,手部姿势估计系统122可以基于手部内的关节位置来确定手部姿势是“竖起大拇指”姿势。
53.图5是示出用于生成多组关节位置坐标的示例方法的流程图。在一些示例中,操作502、504和506可以作为操作404的一部分来执行。在一些示例中,可以针对成对的立体图像中的每个图像执行502、504和506。在操作502中,手部姿势估计系统122使用一个或更多个处理器裁剪给定图像的包括手部的部分。操作502可以由上面关于图2所描述的预处理系统202来执行。
54.在操作504中,手部姿势估计系统122使用神经网络识别给定图像的经裁剪部分中的第一组关节位置坐标。在一些示例中,第一组关节位置坐标表示手部姿势在图像空间中的关节位置。图像空间可以是指图像中的像素位置。例如,第一组关节位置坐标可以用经裁剪图像中的像素位置来表示。经裁剪图像中的像素位置可以使用笛卡尔坐标系来表示。
55.在一些示例中,神经网络是卷积神经网络,其分别计算在成对图像中的每个图像之间在不同关节上的二维关节位置估计和视差。神经网络可以针对立体图像对中的每个图
像计算特征图,并且组合来自两个图像的特征以获得相对视差。相对视差是指立体图像对的第一图像和第二图像中的两个对应点(例如,关节位置)之间的距离。操作504可以由上面关于图2所描述的机器学习系统204来执行。
56.在操作506中,手部姿势估计系统122使用第一组关节位置坐标生成第二组关节位置坐标。在一些示例中,第二组关节位置坐标表示手部姿势在物理空间(例如,世界空间)中的关节位置。世界空间可以使用毫米来测量。例如,第二组关节位置坐标可以在实际物理空间中用毫米来表示。物理空间可以使用笛卡尔坐标系来表示。在一些示例中,操作506由后处理系统206执行。
57.在一个示例中,将第一组关节位置坐标转换为第三组关节位置坐标。可以相对于图像的未裁剪版本(例如,接收的立体图像)计算第三组关节位置坐标。随后可以将相对于图像的未裁剪版本的第三组关节位置坐标转换为第二组关节位置坐标。
58.图6是根据一些示例实施方式的三维手部姿势的立体图像对的图示。在一些示例中,立体图像对由具有安装在左右太阳穴上的相机的头戴式图像捕获设备捕获。手部姿势估计系统122分析捕获的图像并且识别手部中的关节位置。手部姿势估计系统122还使用识别的手部关节位置识别三维手部姿势。
59.图7是机器700的图形表示,在该机器700中可以执行使机器700执行本文中所讨论的任何一种或更多种方法的指令708(例如,软件、程序、应用、小程序、app或其他可执行代码)。例如,指令708可以使机器700执行本文中所描述的任何一种或更多种方法。指令708将通用的、未编程的机器700转换成被编程为以所描述的方式执行所描述和示出的功能的特定机器700。机器700可以作为独立设备操作,或者可以耦接(例如,联网)至其他机器。在联网部署中,机器700可以在服务器-客户端网络环境中以服务器机器或客户端机器的能力进行操作,或者在对等(或分布式)网络环境中作为对等机器进行操作。机器700可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、pda、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如,智能手表)、智能家居设备(例如,智能家用电器)、其他智能设备、web设备、网络路由器、网络交换机、网络桥接器、或能够顺序地或以其他方式执行指令708的任何机器,该指令708指定机器700要采取的动作。此外,虽然仅示出了单个机器700,但是术语“机器”还应当被视为包括单独地或联合地执行指令708以执行本文中讨论的任何一种或更多种方法的机器的集合。
60.机器700可以包括处理器702、存储器704和i/o部件742,处理器702、存储器704和i/o部件742可以被配置成经由总线744彼此通信。在示例实施方式中,处理器702(例如,中央处理单元(cpu)、简化指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、asic、射频集成电路(rfic)、其它处理器或其任何合适的组合)可以包括例如执行指令708的处理器706和处理器710。术语“处理器”旨在包括多核处理器,该多核处理器可以包括可以同时执行指令的两个或更多个独立处理器(有时被称为“核”)。尽管图7示出了多个处理器702,但是机器700可以包括具有单个核的单个处理器、具有多个核的单个处理器(例如,多核处理器)、多个具有单个核的处理器、多个具有多个核的处理器、或其任何组合。
61.存储器704包括主存储器712、静态存储器714以及存储单元716,其均可由处理器702经由总线744访问。主存储器704、静态存储器714和存储单元716存储实现本文中所描述
的任一种或更多种方法或功能的指令708。指令708在其由机器700执行期间还可以完全地或部分地驻留在主存储器712内、在静态存储器714内、在存储单元716内的机器可读介质718内、在处理器702中的至少之一内(例如,在处理器的高速缓存存储器内)或者在其任何合适的组合内。
62.i/o部件742可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量结果等的各种部件。在特定机器中包括的特定i/o部件742将取决于机器的类型。例如,诸如移动电话的便携式机器可以包括触摸输入设备或其他这样的输入机构,而无头(headless)服务器机器可能不包括这样的触摸输入设备。应当认识到,i/o部件742可以包括图7中未示出的许多其他部件。在各种示例实施方式中,i/o部件742可以包括输出部件728和输入部件730。输出部件728可以包括视觉部件(例如,诸如等离子显示板(pdp)的显示器、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、声学部件(例如,扬声器)、触觉部件(例如,振动马达、阻力机构)、其他信号发生器等。输入部件730可以包括字母数字输入部件(例如,键盘、被配置成接收字母数字输入的触摸屏、光电键盘或其他字母数字输入部件)、基于点的输入部件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其它指示仪器)、触感输入部件(例如,物理按钮、提供触摸的位置和/或力或触摸姿势的触摸屏或其他触感输入部件)、音频输入部件(例如,麦克风)等。
63.在其他示例实施方式中,i/o部件742可以包括生物计量部件732、运动部件734、环境部件736或定位部件738以及各种其他部件。例如,生物计量部件732包括用于检测表达(例如,手部表达、面部表达、声音表达、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、出汗或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的部件。运动部件734包括加速度传感器部件(例如,加速计)、重力传感器部件、旋转传感器部件(例如,陀螺仪)等。环境部件736包括例如照明传感器部件(例如,光度计)、温度传感器部件(例如,检测环境温度的一个或更多个温度计)、湿度传感器部件、压力传感器部件(例如,气压计)、声音传感器部件(例如,检测背景噪声的一个或更多个麦克风)、接近传感器部件(例如,检测附近对象的红外传感器)、气体传感器(例如,用于检测危险气体的浓度以确保安全或者用于测量大气中的污染物的气体检测传感器)、或可以提供与周围物理环境对应的指示、测量结果或信号的其他部件。定位部件738包括位置传感器部件(例如,gps接收器部件)、海拔传感器部件(例如,检测气压的高度计或气压计,根据气压可以得到海拔)、取向传感器部件(例如,磁力计)等。
64.可以使用各种技术来实现通信。i/o部件742还包括通信部件740,该通信部件742可操作成分别经由耦接724和耦接726将机器700耦接至网络720或设备722。例如,通信部件740可以包括与网络720对接的网络接口部件或其它合适的设备。在其他示例中,通信部件740可以包括有线通信部件、无线通信部件、蜂窝通信部件、近场通信(nfc)部件、部件(例如,低能耗)、部件、以及用于经由其他形式提供通信的其他通信部件。设备722可以是其它机器或各种外围设备中的任何外围设备(例如,经由usb耦接的外围设备)。
65.此外,通信部件740可以检测标识符,或者包括可操作为检测标识符的部件。例如,通信部件740可以包括射频识别(rfid)标签阅读器部件、nfc智能标签检测部件、光学阅读
器部件(例如,用于检测诸如通用产品码(upc)条形码的一维条形码、诸如快速响应(qr)码的多维条形码、aztec码、data matrix、dataglyph、maxicode、pdf417、ultra code、ucc rss-2d条形码以及其他光学码的光学传感器)、或声学检测部件(例如,用于识别被标记的音频信号的麦克风)。另外,可以经由通信部件740得到各种信息,例如经由因特网协议(ip)地理位置的定位、经由信号三角测量的定位、经由检测nfc信标信号的定位等,该nfc信标信号可以指示特定位置。
66.各种存储器(例如,存储器704、主存储器712、静态存储器714和/或处理器702的存储器)和/或存储单元716可以存储由本文中所描述的任何一个或更多个方法或功能实现或使用的一组或更多组指令和数据结构(例如,软件)。这些指令(例如,指令708)在被处理器702执行时使各种操作实现所公开的实施方式。
67.可以经由网络接口设备(例如,通信部件740中包括的网络接口部件)使用传输介质并且使用许多公知的传输协议中的任何一种传输协议(例如,超文本传输协议(http))通过网络720来发送或接收指令708。类似地,可以经由耦接726(例如,对等耦接)使用传输介质向设备722发送或接收指令708。
68.图8是示出可以安装在本文中所描述的设备中的任何一个或更多个上的软件架构804的框图800。软件架构804由诸如包括处理器820、存储器826和i/o部件838的机器802的硬件来支持。在该示例中,软件架构804可以被概念化为层的堆栈,其中每个层提供特定功能。软件架构804包括诸如操作系统812、库810、框架808和应用806的层。在操作上,应用806通过软件堆栈来调用api调用850,并且响应于api调用850接收消息852。
69.操作系统812管理硬件资源并且提供公共服务。操作系统812包括例如内核814、服务816和驱动器822。内核814充当硬件层与其他软件层之间的抽象层。例如,内核814提供存储器管理、处理器管理(例如,调度)、部件管理、联网和安全设置以及其他功能。服务816可以为其他软件层提供其他公共服务。驱动器822负责控制底层硬件或与底层硬件对接。例如,驱动器822可以包括显示驱动器、相机驱动器、括显示驱动器、相机驱动器、或低功耗驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电源管理驱动器等。
70.库810提供由应用806使用的低级公共基础设施。库810可以包括系统库818(例如,c标准库),系统库818提供诸如存储器分配功能、字符串操纵功能、数学功能等的功能。另外,库810可以包括api库824,例如媒体库(例如,用于支持各种媒体格式的呈现和操纵的库,该媒体格式例如是运动图像专家组-4(mpeg4)、高级视频编码(h.264或avc)、运动图像专家组层-3(mp3)、高级音频编码(aac)、自适应多速率(amr)音频编解码器、联合图像专家组(jpeg或jpg)或便携式网络图形(png))、图形库(例如,用于在显示器上的图形内容中以二维(2d)和三维(3d)进行渲染的opengl框架)、数据库库(例如,提供各种关系数据库功能的sqlite)、web库(例如,提供网页浏览功能的浏览器引擎)等。库810还可以包括各种其他库828,以向应用806提供许多其他api。
71.框架808提供由应用806使用的高级公共基础设施。例如,框架808提供各种图形用户界面(gui)功能、高级资源管理和高级位置服务。框架808可以提供可以由应用806使用的广泛的其他api,其中一些api可以特定于特定操作系统或平台。
72.在示例实施方式中,应用806可以包括主页应用836、联系人应用830、浏览器应用832、书籍阅读器应用834、位置应用842、媒体应用844、消息应用846、游戏应用848、以及诸如第三方应用840的各种其他应用。应用806是执行程序中所限定的功能的程序。可以采用各种编程语言来创建以各种方式构造的应用806中的一个或更多个,编程语言例如是面向对象的编程语言(例如,objective-c、java或c )或过程编程语言(例如,c语言或汇编语言)。在特定示例中,第三方应用840(例如,由特定平台的供应商以外的实体使用android
tm
或ios
tm
软件开发工具包(sdk)开发的应用)可以是在诸如ios
tm
、android
tm
、的移动操作系统或其它移动操作系统上运行的移动软件。在该示例中,第三方应用840可以调用由操作系统812提供的api调用850以有助于本文中所描述的功能。
再多了解一些

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

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

相关文献