大数跨境

技术| 我写了一个程序,我难过的时候,电脑会自动给我发猫猫的照片

技术| 我写了一个程序,我难过的时候,电脑会自动给我发猫猫的照片 河北镌远网络科技有限公司
2022-03-02
1
导读:最近,有个名叫Andrew Healey的博主就在博客上分享了自己做的一个项目,只要他在电脑前露出了伤心难过的表情,电脑就会立马给他发送猫猫的照片,雪中送炭不过如此了。
点击 “蓝字” 关注我们吧!


作者 | 文摘菌

排版 | 河北镌远网络科技科技有限公司

图片 | 本文部分图片来源于网络,侵删

来源 | 大数据文摘

近几年,国内外让人糟心的事情太多了,而每次看到此类糟心的事情,都会去朋友家吸猫,吸着吸着,就会神清气爽。


最近我猜发现吸猫会被治愈的事情,是有案例证实的。

去年有一对日本的夫妇在推特上分享了自己的生活窍门:生气的时候就暂停存档,先吸猫平复心情再说,如图:

甚至有很多网友认为,吸猫的举动实惠推进世界和平的。


不过吸猫再好,也不可上瘾啊。

今年1月份就有一名女子因为吸猫的原因患上了“鹦鹉热”,而且得了此症状的人,大都是因为无意之间吸入了鸟类干燥粪便中的衣原体。

那么在心情不好的时候,应该如何正常的吸猫呢?

最近,有个名叫Andrew Healey的博主在博客上分享了自产的项目,只要在电脑前露出伤心难过的表情,电脑屏幕前就会立马出现猫猫的照片,以下是效果图:

不卖关子了,很多人都等不及了啊,快来带大家看看这个项目怎么完成的啊。


“科学”吸猫

首先我们需要设置痛苦的表情,给电脑传达伤心的信号。

开源的vladmandic/human是Healey在面部表情识别这块的选择,其中API是提供来获取情绪的方式。

复制

['sad', 'angry', 'disgust', 'fear', 'neutral', 'happy', 'surprise']

“好”与“坏”是他对情绪的简单化区别,系统给情绪的评分,总分在-1(非常差)和1(非常好)之间。

由于打喷嚏会影响随意触发系统的启动,所以Healey加入了3秒追踪平均值来评估情绪的好坏。

下图是调试控制台中显示的情绪分数:

当识别到坏情绪的时候,电脑会发送一张猫猫照片,然后会进入5秒的待机时间,等5秒以后,电脑系统才会开启正常的运作。

Healey将所有前端代码写在一个index.html原型文件中,主循环以30-40 FPS的速度运行。

复制

function main() {
const config = { backend: 'webgl' }
const human = new Human.Human(config)
async function detectVideo() {
// `inputVideo` is a video of a webcam stream
const result = await human.detect(inputVideo)
// `result` contains an array of faces along with emotion weights
handleResult(result)
requestAnimationFrame(detectVideo)
}
detectVideo()
}

第一步完成了,接下来我们要让电脑给我们发送猫猫照片。

在这里,Healey使用的是Pushover,该程序目前在程序员家庭自动化项目中还挺受欢迎的。

复制

r = requests.post(
   "https://api.pushover.net/1/messages.json",
   data={
       "token": token,
       "user": user,
       "message": f"{cat_name} needs your attention.",
   },
   files={"attachment": (f"{cat_name}", open(cat_picture, "rb"), "image/jpeg")},
)

随后,Healey将两个API粘合在一起以获取消息数据。随机名称来自网站randomuser。

网站地址:https://randomuser.me/api/

随机猫猫照片:https://api.thecatapi.com/v1/images/search

实际上,获得照片后还需要调整图像大小,因为Cat API致力于提供高分辨率的照片,通常能有5MB。

以下就是最终得到这个函数的方式:

复制

def shrink_cat(path):
   image = Image.open(path)
   image.thumbnail((400, 400))
   image.save(path)

Healey使用PythonSimpleHTTPRequestHandler来提供静态文件,这与one-liner提供文件时运行的服务器相同python -m http.server。

Healey的计划是不为此运行后端,虽然这仍然是一个可以实现的目标,但他发现用Python编写API粘合代码更快。当他意识到还需要一个API路由来处理“send cat”时,他正要安装Flask,但似乎可以......通过添加这个 hack 继续使用这个简单的服务器:

复制

class HttpRequestHandler(http.server.SimpleHTTPRequestHandler):

   # future employers, please look away
   # while I override this function
   def translate_path(self, path):
       if path == "/web/cat.json":
           send_cat()

       return super().translate_path(path)


超越地域和文化,AI识别16种面部表情

说到面部识别,此前Nature就发表了一篇论文,证实了人类情感表达跨越地域和文化边界的普遍性。

论文链接:https://www.nature.com/articles/s41586-020-3037-7

一般来说,人类面部有43块不同的肌肉,这些肌肉可以被激活在眼睛、鼻子、嘴巴、下巴、下巴和眉毛周围,从而做出数千种不同的表情。

为了研究这些表情,加州大学伯克利分校和谷歌的研究人员使用被称为“深度神经网络”的机器学习技术,分析了YouTube上约600万个视频片段中的面部表情,这些视频来自北美、中美、南美、非洲、欧洲、中东和亚洲的144个国家。

同时,研究人员还创建了一个在线互动地图,展示了该算法如何跟踪与16种情绪相关的面部表情变化,包括娱乐、愤怒、敬畏、专注、困惑、蔑视、满足、欲望、失望、怀疑、得意、兴趣、痛苦、悲伤、惊讶和胜利。

研究人员还发现,无论身处世界各地,这16种面部表情都出现在类似的情境中。每个人都倾向于以类似的方式欢呼、哭泣、集中注意力和庆祝,没有一群人会因受惊而微笑、耸肩或因高兴而皱眉。

也就是说,我们用来表达情绪反应的70%的表情是跨文化共享的。

所以,不要担心电脑看不懂你的表情,难过的时候你就难过给它看,然后好好吸猫放松一下~

love&peace!

相关报道:

https://healeycodes.com/when-im-sad-my-computer-sends-me-a-cathttps://twitter.com/NEKOLAND13/status/1442795503859613697


END



*转载/商务合作

请后台回复对应关键词

推荐阅读

科普| 未来学家预测2099年内的世界将发生的变化

点击 “在看” ,一起贺新春吧!

【声明】内容源于网络
0
0
河北镌远网络科技有限公司
河北镌远网络科技有限公司是一家集人才、经验、技术于一体的,提供全面系统集成解决方案的专业IT服务商。公司致力于为各个行业的业务信息化提供软件和通用解决方案、系统架构,系统管理和数据安全服务、以及IT咨询规划、系统集成与系统服务等专业化服务。
内容 0
粉丝 0
河北镌远网络科技有限公司 河北镌远网络科技有限公司是一家集人才、经验、技术于一体的,提供全面系统集成解决方案的专业IT服务商。公司致力于为各个行业的业务信息化提供软件和通用解决方案、系统架构,系统管理和数据安全服务、以及IT咨询规划、系统集成与系统服务等专业化服务。
总阅读0
粉丝0
内容0