写点什么

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:0648536
用户头像

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

关注

评论 1 条评论

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

如何在本地部署多个Tomcat服务

Java 程序员 后端

如何用RabbitMQ实现延迟队列

Java 程序员 后端

学生管理系统架构设计文档

唐敏

「架构实战营」

字节跳动Java面试题精选——算法与数据结构「跳槽面试必备」

Java 程序员 后端

好好编程-物流项目04【Mybatis逆向工程】

Java 程序员 后端

通过程序来介绍Node.js 的几个文件读写和事件监听API

Regan Yue

nodejs js Node 11月日更

解决:http: TLS handshake error from *

liuzhen007

11月日更

字节面试官:你觉得HTTPS能防止重放攻击吗?

Java 程序员 后端

学会IDEA REST Client后就可以丢掉postman了

Java 程序员 后端

好好编程-物流项目07【SpringMVC整合】

Java 程序员 后端

【Promise 源码学习】第四篇 - 翻译并理解 Promise A+ 规范

Brave

源码 Promise 11月日更

如何给网关设计一款专属的权限控制「责任链设计模式」

Java 程序员 后端

JavaScript 中对象处理之Object.freeze 与 Object.seal

devpoint

JavaScript Object 11月日更

进击的Java(三)

ES_her0

11月日更

好险!一入职就遇到MySQL这么大Bug!差点背锅走人!

Java 程序员 后端

如何设计一个高性能Elasticsearch mapping

Java 程序员 后端

如何调优 Java 垃圾收集

Java 程序员 后端

040022-week3-design

InfoQ_70156470130f

如何让Kafka在保证高性能、高吞吐的同时通过各种机制来保证高可用性?

Java 程序员 后端

字节后端开发3+4面,终于拿到秋招第一个offer

Java 程序员 后端

奉劝那些想把编程学好的学弟学妹们!呕心沥血,袒露心声,掏心掏肺

Java 程序员 后端

Go语言,垃圾回收、三色标记原理,终于能跟面试官扯皮了!

微客鸟窝

垃圾回收 Go 语言 11月日更

女生适合学编程吗?

Java 程序员 后端

字节跳动武汉招聘2000人,这套JAVA面试题被刷爆了

Java 程序员 后端

学会5位大牛撰写756页大规模Linux集群架构实践PDF,成功入职华为

Java 程序员 后端

好好编程-物流项目13【登录认证-shiro实现】

Java 程序员 后端

如何封装原生的-Java-NIO-以及扩展?详细到让你分分钟搞定Netty

Java 程序员 后端

字节后端开发3+4面,终于拿到秋招第一个offer(1)

Java 程序员 后端

好好编程-物流项目01【搭建maven工程】

Java 程序员 后端

如何给网关设计一款专属的权限控制「责任链设计模式」(1)

Java 程序员 后端

如何设计一个高可用系统?简单总结了10来种方法,今天全部告诉你们!

Java 程序员 后端

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