Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

情景智能平台:多模态一体化人工智能开源框架

编者按:如何构建能够实时感知、理解并在人类世界中行动的人工智能系统?事实上,要建立这样的系统需要组合和协调不同的人工智能技术,将多种人工智能技术(如机器学习、计算机视觉、语音识别、自然语言处理和对话管理等)结合在一起。最近,微软研究院推出的情景智能平台(Platform for Situated Intelligence)致力于提供完整的开发套件,能大大提高应用开发及相关研究的效率,或许在一定程度上推动了该问题的解决。本文编译自微软研究院博客文章 “Platform for Situated Intelligence: An open-source framework for multimodal, integrative AI”。

这些年,微软研究院的研究员们一直在研究如何构建能够实时感知、理解并在人类世界中行动的人工智能系统,并希望建立具有像与真人交谈或合作那样的交互体验的计算系统。相关的研究项目涉及到多个物理上的交互式应用程序的开发,包括作为个人助理的具有具体形象的对话机器人,在公司大楼里指路的机器人,以及识别出人们是要上电梯还是路过的智能电梯,等等。要想建立这样的系统需要组合和协调不同的人工智能技术来实现多模态的能力,也就是说,需要联合使用多途径,比如语音和视觉。研究员们在这一领域的不断努力凸显了创建综合人工智能系统所面对的挑战,即需要将多种人工智能技术(如机器学习计算机视觉语音识别自然语言处理和对话管理等)结合在一起。

图1:微软研究院研究团队开发的多模态交互系统,包括一个在大楼里指路的机器人和一个在办公室外充当私人助理的具有具体形象的对话机器人。中间图是机器人的视角。

无论是为实验构建原型系统的研究人员,还是为客户构建和部署端到端解决方案的行业开发人员,任何有开发使用多模态流数据经验和实时操作应用程序经验的人,都可以证明该工程技术的难度是巨大的。在延迟约束下,这些应用程序通常需要在异构的组件技术阵列上无缝地协调计算。但现有的编程结构和平台工具缺少关键的构造和基元,比如时间的表示和推断、同步和数据融合的能力。对于这些应用程序,传统用于时态数据可视化和分析的工具无法使用,抑或这些工具并没有被紧密地集成到开发周期中。这就导致研发人员的大部分工作(和代码)都花在了调试和创建用于日志记录、监视、理解底层问题和应用程序性能的自定义基础工具上,而不是创建应用程序本身。

为了应对这些挑战,并为该领域的开发、实验和研究奠定坚实的基础,微软研究院的研究员们建立了情景智能平台(Platform for Situated Intelligence),这是一个多模态集成人工智能系统的开源框架。该框架提供了一个为处理多模态数据流而量身定做的现代化平台、一套支持开发周期的丰富工具集以及促进快速原型设计和重用的组件开放生态系统。虽然情景智能平台是根据研究团队在物理环境下交互系统和机器人方面的经验建立的,但它的范围和影响明显更广:任何处理流、多传感器数据、结合多种人工智能技术、在延迟约束下运行的应用程序,都可以从该框架提供的功能中受益。

情景智能平台:https://www.microsoft.com/en-us/research/project/platform-situated-intelligence/

开源框架:http://www.github.com/Microsoft/psi

进一步观察情景智能平台

情景智能平台是一个基于.NET 标准的跨平台框架。总的来说,该框架保留了托管编程语言的功能和软件工程优势,比如类型安全性和内存管理,同时满足了多模态集成 AI 应用的特殊需求。

从一个较高的角度来看,使用情景智能平台构建的应用由在数据流上相互通信的组件图组成。组件可以封装传感器,如麦克风和相机;特定的人工智能技术,如语音识别器和物体检测器;或任何其他自定义的计算单位。这个组件图也被称为应用程序管道(pipeline),是由应用程序开发人员以编程方式构造的。

例如,在一个场景中,我们使用麦克风和摄像头来识别正在说话的人(这可能是较大的视听应用程序中的一小部分)。其中,音频流由语音活动检测器处理,摄像头中的图像通过唇动检测器分析。之后,语音源检测器组件将融合这些信号,进而识别说话者。下图显示了这个管道的结构,代码片段则说明了组件实例化和相互连接的容易程度:

// create pipeline

var p = Pipeline.Create();

// instantiate components

var microphone = new AudioSource(p);

var camera = new MediaSource(p);

// connect components
microphone.PipeTo(voiceActivityDetector);
camera.PipeTo(lipMovementDetector);
// run the pipeline
p.Run()

图2:有了情景智能平台,开发人员可以很容易地实例化和连接组件,以构建多模态集成 AI 系统的处理管道。上面展示了一个示例管道的结构和相应的代码。

情景智能平台的 GitHub 资源库包含了一个不断发展的组件生态系统,这些组件包括各种传感器,包括摄像头、麦克风和深度传感器等;同时也有处理技术,包括成像、音频、视觉、语音和语言处理技术等;还有用于运行机器学习模型和访问云服务(如微软 Azure 认知服务)的组件,等等。再加上前文所述的编写应用程序管道的简单性,这套现成的组件促进了再次利用,并支持快速原型设计。当然,该框架还允许开发人员轻松地编写和使用新组件。

用于理多通道流的基础设施

虽然基于组件的开发是一项重要的软件工程技术,但情景智能平台所提供的好处和优势远不止于此。该框架提供了一个运行时系统(runtime)和现代化的流基础平台,这些基础工具专门针对多模态集成AI应用程序的需求进行了定制和优化。

一旦创建了应用程序管道并调用了 Run() 方法,情景智能平台将负责运行管道。运行时系统在流上承载消息,并通过调度消息传递来编排组件的执行。在这个过程中,运行时系统利用了管道的并行性,其目标是在多核执行环境中高效使用 CPU 资源,同时在高负载下提供良好的性能降低。

图3:情景智能平台运行时在流上调度消息传递并协调组件的执行。

除了严格的性能要求外,当涉及到时间推理以及对数据同步和融合的支持时,多模态应用程序也有一组特定的需求。通常,组件可能需要同步或融合不同路径的数据流。在上述示例中,语音源检测器将来自语音活动检测器的结果与来自唇动检测器的结果进行融合。简单的方法是在消息到达融合组件时对它们进行配对。但是,如果语音活动检测器和唇动检测器组件拥有不同的延迟,则可能导致产生不正确的结果。因此,需要对数据流进行适当的协调,如对延迟进行统一。如果没有适当的工具对这些操作进行支持,那么就需要投入大量的开发工作来解决低级的同步和协调问题。

情景智能平台通过将时间作为底层流基础结构中的主要构造来解决这些挑战。组件创建的每个消息都带有一个包含其创建时间的包封。此外,包封包含一个原始时间,并由初始传感器组件进行分配,对应于与该消息相关的初始信号首次从现实世界进入管道的时间。当消息通过应用程序管道向下游流动时,此初始时间将随每个消息自动传播,从而使所有组件都能够知道延迟,也就是说,从消息的初始时间到它实际到达应用程序管道中的给定组件所经过的确切时间。

图4:管道中组件创建的每个消息不仅包含其创建时间,还包含由初始传感器分配并随每个消息传播的初始时间,使组件能够了解延迟并执行数据融合

初始时间为合适的同步和数据融合提供了基础。实际上,情景智能平台框架提供了一套功能强大的操作,用于融合、同步、插值、采样和窗口化,将底层的细节(如并发、缓冲和等待消息到达)抽象在一起,从而使开发人员能够专注于高级别的任务。

除了时间推理之外,多模态集成 AI 应用的另一个核心需求是对数据记录和实验的支持。多模态应用程序的开发通常是一个数据驱动的开发周期,在该周期中,数据被收集并用于调优和迭代地改进应用程序。情景智能平台中的流基础工具支持从底层开始的高吞吐量数据日志记录。运行时系统动态、自动地生成高效的序列化代码,将任何数据类型持久化到磁盘,从而最大限度地减少开发人员的工作。而持久性系统被设计为尽可能多、尽可能快地支持日志记录。

持久性系统还记录了每个单独消息的时间信息,从而支持管道重播场景。在开发复杂的集成应用程序时,必须通过一遍又一遍地“实时”运行来调优或调试应用程序,这通常是非常耗时和昂贵的。而使用情景智能平台,开发人员可以试验和执行管道,其中一些流会“重播”以前在磁盘上捕获的会话。用于数据融合和同步的流运算符则确保了结果的可重复性,并且管道可以以重播模式执行,这一方法与实时传感器数据运行时相同。

上面只是介绍了情景智能平台基础设施的几个核心概念和功能。该框架还提供了许多附加功能来处理流数据,比如一种用于操作通用数据流的丰富的流运算符语言,各种调节流量的控制和节流机制,自动数据克隆以确保并发执行环境中的组件隔离,支持构建结构依赖于流经管道数据的动态管道,以及当管道处于稳定状态时,用于最小化垃圾收集的共享内存机制和优化。

用于调试和可视化的工具

尽管与流数据一起工作的多模态集成 AI 应用需要特定的平台工具来高效运行,但它们更广泛的开发周期也有一些特定的需求,然而目前可用的通用软件工具还不能充分满足这些需求。调试、维护和开发通常是数据驱动的,且涉及运行应用程序、检查结果、诊断和微调的多次迭代。可视化各种组件在一段时间内生成的数据以及检查组件如何处理特定数据点的能力至关重要。对收集的数据进行分析和查询、对数据的注释和直接交互以及运行批量处理任务的能力则可以进一步加速开发。

该框架通过情景智能平台 Studio 解决了其中的几个需求,这是一个支持多模态、时态数据可视化、注释和处理的工具。下面的视频展示了该工具的实际应用。一名开发人员正在可视化通过样例应用程序收集的数据,其中 Azure Kinect 设备用于检测和识别用户所指向的对象。该样例应用程序确定了人的指向方向,将光线与深度图中的点云相交,再将交点投射回 RGB 相机,然后在其周围裁剪图像,并运行用于对象检测的云服务。该视频展示了应用程序生成的不同数据流的各种可视化工具。

通过使用情景智能平台 Studio,开发人员可以使用各种各样的可视化工具——从简单的数字流到音频、视频、3D 对象和直方图——在应用程序持久化的数据流上构建复杂的可视化。而且开发人员还可以很容易地浏览数据,检查数值,选择片段并以不同的速度播放片段。该可视化工具可以以多种方式配置,开发人员可以为自己的数据类型创建和添加定制的可视化器。该工具还允许在布局中轻松组合多个可视化工具,并且这些布局可以保存和共享。此外,数据可视化不仅可以基于保存在磁盘上的数据离线完成,还可以在应用程序运行时实时完成。而且可视化基础设施还允许开发人员在自己的应用程序中使用这些可视化工具。

情景智能平台 Studio 的其他特性:

  • 管道可视化:开发人员可以可视化并检查应用程序管道的结构及其随时间变化的行为。并且这个可视化可以进行配置,基于各种相关的统计数据为应用程序管道着色。例如,根据平均消息延迟,对流应用热图着色,从而可以揭示管道中哪些组件变慢,以及它们在什么时间变慢。

  • 数据注释:开发人员可以基于自定义注释模式构造时态注释。带注释的数据本身作为流保存,以支持各种半自动的数据标签和训练场景。

  • 数据处理:应用程序在一段时间内记录的多个会话可以组合成更大的数据集。该工具支持加载开发人员定义的批量处理任务,并在数据上执行这些任务,而且可以结合原始流可视化结果。对于非 UI 自动化,也可以通过命令工具使用这些数据处理功能。

在多模态、一体化的人工智能系统领域,有趣的研究和新颖、实用的应用有着巨大的潜力。近年来,利用数据驱动的方法所开发的更精确的感知技术已经取得了重大进展。然而,考虑到所涉及的挑战以及缺乏足够的基础设施平台和工具,将这些技术整合成能够感知、推理和应用到现实中的端到端智能系统的进展缓慢也就不足为奇了。正是为了加快这一进程,促进该领域更多的创新和研究,微软研究院才建立了情景智能平台,并将框架开源,且设计成了开放和可扩展的。欢迎学术界和工业界的同行来了解和使用情景智能平台,也欢迎大家提供宝贵的意见和建议。

微软研究院AI头条
微软研究院AI头条

专注科研19年,盛产黑科技

工程情景智能平台框架
相关数据
Microsoft机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

流数据技术

流数据是一组顺序、大量、快速、连续到达的数据序列,一般情况下,数据流可被视为一个随时间延续而无限增长的动态数据集合。应用于网络监控、传感器网络、航空航天、气象测控和金融服务等领域。

插值技术

数学的数值分析领域中,内插或称插值(英语:interpolation)是一种通过已知的、离散的数据点,在范围内推求新数据点的过程或方法。求解科学和工程的问题时,通常有许多数据点借由采样、实验等方法获得,这些数据可能代表了有限个数值函数,其中自变量的值。而根据这些数据,我们往往希望得到一个连续的函数(也就是曲线);或者更密集的离散方程与已知数据互相吻合,这个过程叫做拟合。

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

数据可视化技术

数据可视化被许多学科视为现代视觉传达的等价物。为了清晰有效地传递信息,数据可视化使用统计图形、图表、信息图和其他工具。数字数据可以使用点、线或条编码,以视觉传达定量消息。有效的可视化帮助用户对数据进行分析和推理。它使复杂的数据更容易理解和使用。用户可以根据特定的分析任务进行数据可视化,例如进行比较或理解因果关系,并且图形的设计原则(即,显示比较或显示因果关系)来进行可视化。表通常用于用户查找特定测量的地方,而各种类型的图表用于显示一个或多个变量的数据中的模式或关系。

数据融合技术

数据融合技术将来自多个传感器(信息源)的数据和相关数据的信息相结合,以实现比单独使用单个传感器(信息源)所能实现的更高的准确性和更具体的推论。

推荐文章
暂无评论
暂无评论~