[2016] 微软的 Emotion API 在 TGS2016 上评选出最佳伴侣 [评测]

目录
大家好,
我是Mandai,Wild团队负责开发工作的成员。
妻子让我帮忙修整南瓜的边角,因为她要做炖南瓜,所以我很久以来第一次修南瓜边。我真的
需要好好学习一下日本料理的精细技艺。
今天我想用微软的Emotion API,所以一直在找素材,但手头上唯一合适的图片就是2016东京电玩展(TGS2016)的展台模型照片。所以,
我想举办一个“2016年度回顾!TGS2016最佳展台模型大赛”!
准备使用 Microsoft 帐户访问 Emotion API
要使用 Emotion API,您需要一个 API 密钥。首先,Microsoft 认知服务获取 Emotion API 的使用说明
点击右上角的“我的账户”链接进入登录界面。
- 微软帐户
- GitHub 帐户
- LinkedIn账号
看来您可以使用这三种方法中的一种登录。
我一开始很疑惑为什么LinkedIn会出现在这里,后来才想起来它已经被微软收购了。
成功登录后,点击右上角“退出登录”旁边的“免费开始使用”,即可启用您想要使用的 API。
这次,我们将启用 Emotion API。
勾选“产品名称”为“Emotion”的复选框,并在底部勾选“我同意 Microsoft 认知服务条款和 Microsoft 隐私声明”。
然后,只需点击“订阅”即可。
屏幕将切换显示当前已启用 API 的列表。
截至 2016 年 12 月 27 日,Emotion API 目前处于预览阶段,每月可免费使用 30,000 次。
其定价结构与 GCP 的 Vision API 略有不同,但每月可免费使用 1,000 个单位。
这里的“单位”可能有点令人困惑,但它指的是分析项的数量。例如,执行人脸识别算作 1 个单位;执行文本识别算作另一个单位;您可以从单张图像中获取多个项目的数据。
更详细地说,Vision API 的特点在于其信息量更大。
即使仅进行人脸识别,它也能获取详细信息,包括面部特征的位置,这些信息可能对后续处理很有用。
回到正题,启用 Emotion API 后,您需要获取一个 API 密钥。
启用 API 后会激活两个 API 密钥,因此您可以使用其中任何一个。
API 密钥是列表“密钥”部分中用“X”隐藏的密钥,您可以点击“显示”复制它,或者点击“复制”链接复制它。
一旦你成功获取了 API 密钥,你的工作就完成了!
如果你想尝试一下,curl 似乎是一个不错的选择。
如果你有Linux环境,可以使用curl快速进行测试。
Emotion API 文档包含以 JSON 格式发送 Internet 上文件的 URL 的示例,但这次我们将尝试直接从 curl 发送本地二进制文件。
curl -v -X POST "https://api.projectoxford.ai/emotion/v1.0/recognize" \ -H "Content-Type: application/octet-stream" \ -H "Ocp-Apim-Subscription-Key: [API Key]" \ --data-binary "@[/path/to/image]"
直接发送文件:
- 将 Content-Type 设置为“application/octet-stream”
- --data-binary 选项,图像路径
进入
如果收到响应编号 200 和类似以下的 JSON 数据,则表示操作成功。
(为了便于阅读,使用了换行符和制表符进行格式化,但实际上数据只有一行。)
[ { "faceRectangle":{ "height":184, "left":223, "top":217, "width":184 }, "scores":{ "anger":2.41070044E-08, "contempt":4.531843E-06, "disgust":7.3893716E-07, "fear":1.44139625E-08, "happiness":0.9999242, "neutral":6.80201556E-05, "sadness":3.14932123E-07, "surprise":2.19046137E-06 } } ]
如果你能走到这一步,你一定会玩得很开心。
用 PHP 重写
获取到的分析数据可以进行处理,用于创建和显示网页,以及进行许多其他有趣的操作。
这次,我想尝试将分析数据存入数据库,所以我将用 PHP 重写这段代码。
也就是说,只需要实现上面的命令即可。
$url = 'https://api.projectoxford.ai/emotion/v1.0/recognize'; $subscription_key = '您的 API 密钥'; $path = '/path/to/image'; $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_HTTPHEADER => [ 'Content-Type: application/octet-stream', 'Ocp-Apim-Subscription-Key: '. $subscription_key, ], CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HEADER => true, CURLOPT_VERBOSE => true, CURLOPT_POSTFIELDS => file_get_contents($path), ]); $res = curl_exec($ch);
接下来,您可以创建一个文件列表并循环遍历该列表来分析大量图像。
但是,请记住每分钟最多只能循环 20 次,因此您需要使用 sleep 或类似函数来调整循环时间。
我尝试分析了大约 200 张图像,结果不错。
由于重复使用该工具会因使用次数限制而造成浪费,因此最好将获取的数据存储在数据库中。
现在我们已经掌握了所有数据,是时候进行回顾了!
我觉得自己已经创作了很多作品,正打算收尾,但结果发现,决定第一名的最重要评判环节还没有结束!
分析的数据包括每种面部表情所包含的情绪及其程度。
情绪分类如下:
- 愤怒
- 鄙视
- 厌恶
- 害怕
- 幸福
- 中性的
- 悲伤
- 惊喜
此分类为2016年12月27日的预览版本,未来可能会有所调整。
此外,数据格式也可能更改为完全不兼容的格式。
此外,这些数据以总和等于 1 的方式提供。
换句话说,您可以将每个数字乘以 100 视为百分比,其中 100% 为总和。
在上述情绪中,“幸福感”似乎是唯一与本次评估相关的,因此我们将以此数据作为评估的基础。
(不过,由于分析到此为止已经完成,可以说评估也已经结束了。)
令人震惊的结果……然后……
或许是因为工作关系,她习惯了微笑,所以她的幸福感得分很高,这使得评判变得困难。
原因是,有 21 条数据只包含幸福感!
换句话说,“100% 幸福”。
我非常想表彰所有取得这些分数的同伴。
然而,有一个人格外引人注目,他出现在六张照片中,每张照片都展现出百分之百的快乐。
我感到非常荣幸。
就是这张图!!!
我们一共五个人,我站在中间。
《五连者》中的红色战士。
他就像《漂流者》里的碇谷长介。
基纽,来自基纽特战队。
换句话说,就是这样。
你应该在中心位置。
太棒了,
我深受感动。
希望明年能在游戏节目上见到你。
就这样。
谁说会有大奖?
然而,
尽管有那么多优秀的作品,却有一幅画面深深地触动了我。
这就是图片。
当然,得分是100%的幸福感。
数据不会说谎。
你难道不是来自异界的人吗?
然而,即使有人说我偏袒自己的家人,我对这个决定也毫不后悔。
我穿着从IIJ借来的小红帽服装,这张照片是在第二天开始前拍的。
前一天站了一整天,我肯定很累了,但我依然笑容灿烂。
也许这笑容对我的工作有所帮助吧。
作为参与者之一,我被这个结果深深打动,所以我想把大奖颁给这张照片。
太好了,一切都顺利解决了!
最后,我想以一张特等奖获得者的特写照片作为结尾。
那是你吗?
就这样。
0




