设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

SSI—开源的人类行为分析解决方案

2015-2-3 00:28| 发布者: joejoe0332| 查看: 5676| 评论: 0|原作者: BreakingBad, 无若|来自: OSchina

摘要: 随着直观而自然的人机交互的崛起, 声音, 手势, 模仿(mimics) 等人类行为的自动检测和分析, 将在下一代接口中扮演重要角色. 本文介绍的人类行为分析(SSI), 是一个时实分析人类行为的框架. SSI 支持各种传感器, 过滤器 ...


  在 SSI 中, 跟数据流相对应的是事件. 跟具有持续性的数据流不同, 事件的产生是异步的, 且有明确的开始和结束. 我们修改下前面的例子, 加入一个活动检测器, 让频谱图只在有声音信号的时候才显示, 以此解释下事件的特点. 


  首先, 我们需要添加两个组件. 一个转换器(AudioActivity), 用来计算音量大小(method=0“), 和将阈值(threshold=0.1“)以下的数据置零. 另一个是 consumer (ZeroEventSender), 用来获取信号中非零的数据. 如果检测到这些数据, 而且时长超过 1 秒 (mindur=1.0“), 事件就会触发. 事件的标识符由事件名称和触发事件的对象名称组成:<event>@<sender>. 在本例中, 选项 ename 和 sname 用来设置事件标识符 activity@audio.

1
2
3
4
<!-- ACTIVITY DETECTION --><transformer create="ssi_feature_AudioActivity" method="0" threshold="0.1">
        <input pin="audio" frame="0.01s" delta="0.015s"/>
        <output pin="activity"/></transformer><consumer create="ssi_consumer_ZeroEventSender" mindur="1.0" maxdur="5.0" sname="audio" ename="activity">
        <input pin="activity" frame="0.1s"/></consumer>

  

  我们现在可以把频谱的显示, 由原来的连续显示, 改成由事件触发. 所以, 要把属性 frame 换成 listen=activity@audio. 同时把图形的长度设为 0 (size=0), 这样就可以在事件触发的时候自动调整图形的长度.

1
2
<consumer create="ssi_consumer_SignalPainter" name="spectrogram" size="0" type="1">
        <input pin="spect" listen="activity@audio" /></consumer>


  要把框架里面当前所有的事件都列出来, 我们需要一个 EventMonitor 对象. 由于它只跟事件互动, 与consumer, 或转换器无关, 所以要放在 <object>里面. 通过 <listen> 我们可以指定要接受哪个事件. 设置属性 address=@ 和 span=10000“, 可以显示过去 10 秒内的任意事件.

1
2
<object create="ssi_listener_EventMonitor" mpos="400,300,400,300">
        <listen address="@" span="10000"/></object>


  新管道的输出结果如下. 包含连续的原始音频信号图表和活动信号(左上). 图表的下面是由事件触发的频谱图, 显示的是最新一次活动事件的数据 (18.2s – 19.4s). 也就是监控器中最顶上那一行记录 (右下). 此外还有最新 3 个事件. 由于活动事件不包含其他元数据, 所以占用的空间是 0 字节. 如果是分类事件就会包含类名和概率值.

图 9: 本例中, 通过活动检测驱动频谱显示 (看原始音频信号和频谱中间那张图). 每过一段时间, 就会触发一次事件, 由此驱动频谱的显示. 在命令行窗口中列出的是已经触发过的事件.


多模式喜悦程序检测

  我们现在将(注意力)转移至更复杂的应用程序 – 多模式喜悦程序检测。 我们要关注的系统是欧洲计划的一部分(FP7) ILHAIRE (把笑合并到人类的虚拟交互中去(Incorporating Laughter into Human Avatar Interactions): 研究和实验, 可以看 http://www.ilhaire.eu/)。它结合了两个传感器的输入,一个麦克风和一个照相机, 来实时检测用户的喜悦水平。 在这篇文章中,我们通过视觉和听觉的暗示来指示出喜悦,并定义喜悦是一个积极的感情场景,例如微笑和狂笑。基于频率和强度的暗示,喜悦的程度就可以被确定下来。

图10:喜悦程度的更多暗示来自用户的展示(输入),这样系统就会有更高的输出。


  微调检测模型的训练数据记录在 3~4 个正在聊天的用户的 session 中, 每个 session 的寿命大概是 1.5 小时. 记录期间, 用户的装备有耳麦,Kinect 和 HD 相机. 要同时给 4 个用户记录数据, 就要进行设置, 包括由网络同步 pc 机. 要在分布在网络中的几台机器中保持管道, 就要通过同步创建多个用户的多模式(multi-modal). 在这个例子中, SSI 捕捉到的原始数据每分钟高达 4.78 GB, 包括音频数据, Kinect 对身体, 脸部的跟踪数据, 以及 HD 视频流.


  下列管道代码的作用是, 连接到音频和 Kinect 传感器, 并把捕捉到的信号存到磁盘中. 注意, 音频流数据和 Kinect 的 rgb 视频数据混合放在一个文件中. 因此要将音频包含在 <xinput> 中. 还有就是要在文件的顶部配置<framework> , 指定在端口 1234 等待同步信号.

1
2
3
4
5
6
7
8
9
10
11
<!-- SYNCHRONIZATION --><framework sync="true" sport="1234" slisten="true"/><!-- AUDIO SENSOR --><sensor create="ssi_sensor_Audio" option="audio" scale="true">
        <provider channel="audio" pin="audio"/></sensor><!-- KINECT SENSOR --><sensor create="ssi_sensor_MicrosoftKinect">
        <provider channel="rgb" pin="kinect_rgb"/>
        <provider channel="au" pin="kinect_au"/>
        <provider channel="face" pin="kinect_face"/></sensor><!-- STORAGE --><consumer create="ssi_consumer_FFMPEGWriter" url="rgb.mp4">
        <input pin="kinect_rgb" frame="1"/>
        <xinput size="1">
                <input pin="audio"/>
        </xinput></consumer><consumer create="ssi_consumer_FileWriter" path="au">
        <input pin="kinect_au" frame="5"/></consumer><consumer create="ssi_consumer_FileWriter" path="face">
        <input pin="kinect_face" frame="5"/></consumer>


  根据音频和视频的内容, 评估者(rater)要标注出音频和视频中有笑声或笑容表的地方. 然后, 从原始数据中把特征信息提取出来, 并根据标注的数据给这些特征打上标签. 而打上标签的特征则作为学习阶段的输入数据, 用来分离特征空间(feature space), 以此给各类标签做出适当的分离. 如, 用来衡量嘴角扩张的特征, 可能跟微笑表情有关. 因此, 可以用来当作喜悦的指标. 由于复杂的识别任务不存在明确的映射关系, 所以解决的办法也不只一个. SSI 自带了几个效果不错的学习算法, 如 K-Nearest Neighbours, Gaussian Mixture Models, 和 Support Vector Machines. 这些算法属于 SSI 机器学习库的一部分, 允许其他工具以最佳的方式模拟管道, 并根据期望的识别精度评估模型.

图 11: 人工标注的喜悦表情用来训练每个模式的检测模型.



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部