作者:Johannes Wagner, Florian Lingenfelser, Elisabeth André Affiliation: Lab for Human Centered Computing (HCM), University of Augsburg, Germany 介绍 随着直观而自然的人机交互的崛起, 声音, 手势, 模仿(mimics) 等人类行为的自动检测和分析, 将在下一代接口中扮演重要角色. 本文介绍的人类行为分析(SSI), 是一个时实分析人类行为的框架. SSI 支持各种传感器, 过滤器,特色算法. 此外,还支持机器学习和模式识别工具. 鼓励开发者使用 SSI 的 C++ API 添加新组件, 同时也向前端用户提供 XML 接口, 用于创建文本编辑器用的管道(pipelines). SSI 遵守 GPL 协议, 可以到 openssi.net 免费下载. 关键特性人类行为分析(SSI) 框架提供了实时记录,分析和认知人类行为的工具集,诸如手势,模仿(mimic) 点头,和情感对话。让一个基于区块的设计管道(patch-based design pipeline)从自动化组件中获取设置,允许平行,并从多个输入设备中获取同步的传感器数据。尤其是,在它的整个产品线(full length)里,还提供了图形接口,帮助用户收集他们自己训练的语料库,来获得私人化的模型,SSI提供了这些机器学习的管道(pipeline)。 除了大量的内置组件,SSI还一直鼓励用户去提供新的功能(函数)来扩展出有用的工具。 对没有经验的用户,(他们)提供了一个易于使用的XML编辑器用来绘制和运行这些管道(pipelines),并不需要特殊的编程技巧。 SSI是用C++写的,并且充分利用了计算机系统中的多个CPU。 SSI 特点:
此外, SSI 还有各种流行传感器和信号处理用的类库, 如: e-Health Sensor Shield, IOM biofeedback system (Wild Divine), MicrosoftKinect, TheEyeTribe, Wii Remote Control, ARTKplus, FFMpeg, OpenCV, WEKA, Torch, DSPFilters, Fubi, Praat, OpenSmile, LibSox, 和 EmoVoice. 请到我们网站 下载 SSI. 图 1: SSI 个各种功能概要图. 框架概述SSI 是一个时实利用多种传感器作为输入信号, 支持识别系统开发的开源项目[1]. 因此, 他提供各种过滤器和特殊算法处理捕获到的信号. 同时, 也提供各种工具, 用于完成完整的机器学习管道任务(machine learning pipeline). 主要面对两类用户: 给开发者提供 C++-API, 鼓励他们开发自己的组件, 同时前端用户可以用现有的组件, 以 XML 格式定义识别管道(recognition pipelines). 由于社交行为可以通过不同方式表达, 如: 脸部, 声音, 姿势等, 需要多个传感器才能获取一副完整的互动画面. 所以, 要将各种设备的原始信号流同步, 并且统一处理, 才能合成有用的信息. 因此, 不论是波形信号, 心跳信号, 还是视频图像信号, 我们都要一个架构对它们统一处理. 图 2: SSI 支持的各种传感器的示例图. 传感器的原始信号, 需要经过几个处理过程, 把有用的信息分离出来. 因此, SSI 自带了很多过滤器, 特殊算法, 用来处理各种音频, 视频, 生理信号. 把一系列处理模块放在一起, 既能让开发者快速搭建复杂的处理管道, 又不需要过多的关心实现的细节. 像缓存, 同步这些问题, 由框架自动处理. 由于各种处理模块, 分配在不同的线程中, 所以每个处理过程, 都有自己单独设置长度的窗口. 图 3:每个并行处理的信号流都有量身定做长度的窗口.
人与人之间的交流不像机器那么精准, 存在许多差异, 不确定和歧义。所以, 我们需要用概率模型识别和分析这些行为。为此, SSI 集成了各种机器学习管道, 包括: 预处理, 特征提取(feature extraction), 和在线实时分类/结合(fusion)。特色提取的作用是从信号中提取出关键的特征数据 – 只保留分类用到的那部分关键信息. 而分类的作用是将特征向量转换成离散的状态或连续的数值. 至于是用统计分类法,还是用动态分类法, 则取决于提取出来的是单一特征向量, 还是多个长度不一致的特征数据. SSI 框架中包含了这两种方法的例子。 图 4: 支持统计和动态分类法。 为了解决人与人之间交流存在的歧义, 我们需要将各种渠道提取出来的信息合并. SSI 能在不同层进行信息合并. 可以在数据层, 如,通过色彩优化纵深信息. 或在特征层, 将多个渠道提取出来的特征数据合并成单一向量. 也可能是决策层, 合并各种识别器得出的概率. 后几种合并, 都要求合成的信息能及时呈现. 如果是因为临时的偏差, 而无法做到这一点(如: 出现在语音指令后面的手势), 那合并就要在事件层进行. 由信息的类别决定, 他们在哪一层合并. 图 5: 在特征, 决策和事件层的合并. |