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

目录
大家好,
我是开发团队野生队的成员 Mandai。
我妻子让我把南瓜的边角修整一下,因为她要做炖南瓜,所以我好久没修南瓜边了,这次就先修了。我
得好好学学日本料理的精细手法。
今天我想用微软的Emotion API,所以一直在找素材,但找到的看起来可能有用的图片只有2016年东京电玩展(以下简称TGS2016)上那些宠物的图片。
所以,我想举办一个“回顾2016!TGS2016最佳宠物评选”活动!
准备使用 Microsoft 帐户访问 Emotion API
要访问 Emotion API,您需要一个 API 密钥,因此请先Microsoft Cognitive Services使用 Emotion API
点击右上角的“我的账户”链接进入登录界面。
- 微软帐户
- GitHub 帐户
- LinkedIn账号
看来你可以用这三个账号登录。
我之前一直纳闷LinkedIn存在的意义,但现在想想,它后来被微软收购了。
成功登录后,点击右上角“退出登录”旁边的“免费开始使用”,即可启用您想要使用的 API。
这次,我们将启用 Emotion API。
勾选“产品名称”为“Emotion”的复选框,并在底部勾选“我同意 Microsoft 认知服务条款和 Microsoft 隐私声明”。
然后,点击“订阅”,即可开始使用。
屏幕将切换显示当前已启用 API 的列表。
截至 2016 年 12 月 27 日,Emotion API 处于预览阶段,每月可免费使用高达 30,000 次。
其定价结构与 GCP 的 Vision API 略有不同,但同样提供每月 1,000 个单位的免费额度。
这里的“单位”可能有点令人困惑,它指的是一个分析项。例如,一个单位用于人脸识别,另一个单位用于文本识别。这样,您就可以从单张图像中获取多个分析项的数据。
更深入地来看,视觉 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



