写点什么

EmoPy:一个用于面部表情识别的开源工具包

  • 2018-11-26
  • 本文字数:1682 字

    阅读完需:约 6 分钟

EmoPy:一个用于面部表情识别的开源工具包

Angelica Perez 在最近的一篇 ThoughtWorks 博客中分享了一个新开源项目的相关信息,这个项目旨在提供交互式电影体验。该项目就是 EmoPy,专注于面部表情识别(FER)。利用所提供的工具包,开发者可以根据传递给服务的图像准确预测情绪。


Perez 将 FER 定义为“一个更广泛的计算机视觉领域的图像分类问题”。计算机视觉是一个热门话题,它吸引了许多大型云提供商的投资,从而实现通过公共 API 自主访问这些机器学习模型。但挑战在于,这些服务背后的模型和算法并没有公开提供,访问高质量数据集也很困难。Perez 解释了 EmoPy 的不同之处:


我们的目标是扩大公众对这一关键新兴技术的接触,因为目前的开发通常在商业上是对外封闭的。我们欢迎外界多提问题,也欢迎来自开源开发社区的源代码贡献,希望 EmoPy 能为开发者的项目提供帮助。


获得 FER 训练模型是非常重要的,常用的一套标准的情绪分类包括:


1、生气


2、厌恶


3、恐惧


4、快乐


5、悲伤


6、惊讶


7、中性(平静)



EmoPY 工具包是 ThoughtWorks Arts 项目的一部分,ThoughtWorks Arts 旨在孵化艺术家关于社会和技术的项目。ThoughtWorks 团队支持常驻艺术家 Karen Palmer 创作了一个叫 RIOT 的交互式电影体验。


RIOT 将观众放置在屏幕前,给他们看一个有争议的视频。这些视频是根据包括抢劫者和防暴警察在内的暴乱情况剪辑制作的。我们用网络摄像头记录和分析观众的面部表情,并将其加载到 EmoPy 中。



EmoPy 是受 Hongying Meng 博士的研究启发,从零开始创建的。EmoPy 的核心要求包括:


  • 神经网络结构包括依次向对方提供输出的层。这些结构的性能在很大程度上取决于组成神经网络结构的层的选择和排序。

  • 选择数据集非常重要,因为图像库越大,模型的准确性和可概括性就越高。如今,可用的公共数据集并不多。EmoPy 还可以利用微软 FER2013 和扩展的 Cohn-Kanade 数据集。FER2013 数据集包含了 35000 多种面部表情,涵盖了七种情绪类别,包括愤怒、厌恶、恐惧、快乐、悲伤、惊讶和平静。Cohn-Kanade 数据集包含的是面部表情序列,而不是静态图像,这些序列展现了面部表情之间的转换。Cohn-Kanade 数据集包含 327 个序列。



  • 训练过程是 ThoughtWorks 团队下一步要考虑的问题。该过程包括神经网络和选定数据集的训练。数据集分为两部分:训练集和验证集。这个过程包括:

  • 训练集中的图像被用来训练神经网络,在神经网络中,情绪预测是基于加权和参数进行评估的。

  • 然后神经网络将预测的情绪和真实的情绪进行比较,计算出损失值。

  • 这个损失值将被用于调整神经网络的权重。这个迭代过程可以使预测模型变得更加智能和准确。

  • 验证集用于测试经过训练的神经网络。对 Thoughtworks 团队来说,拥有两个不同的数据集是非常重要的。通过使用与训练集不同的图像集,他们能够更客观地评价模型。使用这种方法还可以防止“过度拟合”,即“当神经网络能够从训练样本中很好地学习模式时,反而会导致神经网络在给定新样本时无法推广学习”。当发生过度拟合时,训练集的准确率远高于验证集。

  • 测量性能是 EmoPy 的最终要求。ThoughtWorks 团队试图测试出,在基于训练集和验证集预测情绪时,结构的准确性如何?在获得的结果中,ConvolutionINN 模型性能最好。在厌恶、快乐和惊讶等情绪集中,神经网络能够从 10 张从未见过的图片中正确预测 9 张。虽然厌恶、快乐和惊讶的准确率很高,但其他情绪的准确率并没有那么高。分类错误是有可能出现的,尤其针对恐惧这一情绪,就很容易分类错误。处理这些错误分类的最佳方法是使用尽可能大的数据集。


EmoPy 项目正在积极寻找贡献者。无论你是想为项目做出贡献,还是只是使用它,我们的项目团队都无限制的许可,使它尽可能地提供给最广泛的受众。


项目地址:


https://www.thoughtworks.com/insights/blog/emopy-machine-learning-toolkit-emotional-expression


查看英文原文:


https://www.infoq.com/news/2018/10/EmoPy-Computer-Vision

活动推荐


12 月 7 日北京 ArchSummit 全球架构师峰会上,来自 Google、Netflix、BAT、滴滴、美团 等公司技术讲师齐聚一堂,共同分享“微服务、金融技术、前端黑科技、智能运维等相关经验与实践。详情点击 https://bj2018.archsummit.com/schedule


2018-11-26 16:0648319
用户头像

发布了 21 篇内容, 共 13.7 次阅读, 收获喜欢 14 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

Android面试题之Listview篇,2021Android面试心得

android 程序员 移动开发

Android面试:来说一说Context吧,Android中的Context跟Java有什么区别

android 程序员 移动开发

Android高工面试(难度:四星(1),真的太香了

android 程序员 移动开发

Android高工面试:用Glide加载Gif导致的卡顿,说一下你的优化思路

android 程序员 移动开发

BAT常见Android面试20题详解,小白看完都会了

android 程序员 移动开发

Android面试必问:Handler、Bitmap(1),kotlin数据库框架

android 程序员 移动开发

Android面试必问:Handler、Bitmap,android插件化开源

android 程序员 移动开发

【设计模式】第十一篇 - 装饰模式 - 孙悟空的六神装

Brave

设计模式 装饰模式 11月日更

Android:手把手教你实现在XML中配置网易云歌手详情滑动效果

android 程序员 移动开发

Android面试必备!爆火超全的《Android性能优化全方面解析

android 程序员 移动开发

Android题集四大组件之Content provider、BroadcastReceiver

android 程序员 移动开发

BATJ面霸:程序员可是要改变世界呀!阿里巴巴3面(1),flutter下载文件

android 程序员 移动开发

Android高速下载器实现思路——单个任务的提速与优化,flutter二维码扫描

android 程序员 移动开发

Android:2021大厂直通车面试宝典,为你的offer保驾护航

android 程序员 移动开发

Android:这是一份全面&详细的-热修复-学习指南,含泪狂刷Android基础面试118题

android 程序员 移动开发

RabbitMQ详解——RabbitMQ服务端执行逻辑(三)

AiDaddy

RabbitMQ 服务端执行逻辑

Android高工面试(难度:四星,Android开发三年月薪才12K

android 程序员 移动开发

ARouter系列2:源码分析,移动端跨平台开发

android 程序员 移动开发

SAP云平台运行环境Cloud Foundry和Neo的区别

汪子熙

云平台 SAP 11月日更

Android面试抱佛脚:进程间通讯学习,从Binder使用看起

android 程序员 移动开发

Android面试题之Java基础篇,安卓rxjava使用

android 程序员 移动开发

ARouter源码详解,androidjni开发流程

android 程序员 移动开发

ASM插桩--多线程运行监测,2021Android大厂面试经验分享

android 程序员 移动开发

BATJ面霸:程序员可是要改变世界呀!阿里巴巴3面,移动客户端开发岗面试题

android 程序员 移动开发

【LeetCode】最长定差子序列Java题解

Albert

算法 LeetCode 11月日更

Android高工:细说 Android 多线程,探究原理知其所以然

android 程序员 移动开发

英特尔与腾讯以全方位合作 开启云数智时代新征程

科技新消息

Android:知道类加载过程面试还是卡壳?干货总结,安卓运行内存监控

android 程序员 移动开发

AOP与OOP有什么区别,谈谈AOP的原理是什么,腾讯T2大牛亲自讲解

android 程序员 移动开发

BindService的生命周期分析【我读源码你不读,我吃螃蟹你吃土(1)

android 程序员 移动开发

Android:这是一份全面&详细的-热修复-学习指南(1),统统给你解决

android 程序员 移动开发

EmoPy:一个用于面部表情识别的开源工具包_AI&大模型_Kent Weare_InfoQ精选文章