【学术】厉害了我的哥,国外技术大咖仿造了谷歌的Arts &Culture,找到古代的“你”

当我激动的室友第一次向我展示肖像搜索功能时,我对结果感到很惊讶(也觉得有点受侮辱)。对于那些不熟悉它的人来说,谷歌Arts & Culture的这一功能让你可以在谷歌的数字化艺术收藏中找到与你提交的自拍相似的艺术品。

在我看来,这是非常了不起的一件作品:

17世纪的翻版的我

多亏了大量的开源工具和库,在一个下午的时间内,可以创建一些奇妙又具有一定功能的东西。

初步计划

首先,找一些面部识别服务器。Kairos提供了一个免费的API,一旦在该API中输入图像的url,它就会提供一连串的信息:

  • Kairos地址:https://www.kairos.com/

通用输入图像

Returned JSON data (some image info removed for length){"images":
  [{"faces":
    [{"attributes":
      {"age":40,
      "asian":0.00539,
      "black":0.00032,
      "gender":{
        "femaleConfidence":0.00002
        "maleConfidence":0.99998,
        "type":"M"},
      "glasses":"None",
      "hispanic":0.04204,
      "lips":"Apart",
      "other":0.01249,
      "white":0.93976}    
    }]
  }]
}

Kairos还允许将被标记的图像加入到数据库中,当未标记的图像被传递给API时,它将返回数据库中最相似的图像的标签。

虽然这是为了识别已经注册过的人,但它可以执行艺术识别任务(当它的相似性阈值设置得足够低时)。

为了找到合适的图片,我仔细研究了我试图模仿的服务(谷歌Arts & Culture),从谷歌Arts & Culture网站获得艺术品的url。如果我花了4个多小时的时间来做这件事,我可能会花时间给每件艺术品贴上一个独特的id,这个id与数据库中的图像、艺术品名称和艺术家联系在一起,以提供一个全面和轻松的用户体验。但我并没有这样做。

所以每个作品的标签都是简单的url,所以用户可以被重定向到与他们自拍匹配的艺术作品。

from flask import Flask, redirect
#Some function here, get a suitable image url as label
    return redirect(label)

服务器和托管

Flask提供了一个简单的选项,可以在使用python处理图像IO和进程的同时为用户提供一个网页。我不想在托管上花太长时间,我只是在本地运行这个站点。

Kairos需要一个公共图像url作为它的输入,所以要让我的站点在本地网络Ngrok之外显示,为我的本地主机提供一个安全通道。

下一个挑战是处理用户输入和API响应,同时继续为用户提供站点服务。为了处理异步事件,线程库可用于分离两个进程。

最后,是时候给网站提供朋友和家人的自拍照了,还有一些更普通的照片,结果如下所示:

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2018-02-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏python小白到大牛

python老司机带你玩玩炫酷的3D渲染,酷毙了!

自从学会了turtle模块后,画了不少简笔画。像小猪佩奇、哆啦A梦等等,但是这些依然不能让身边人感受到python的强大,依然是每次装逼必被打脸。就像你用tur...

44120
来自专栏张善友的专栏

CAP理论十二年回顾:"规则"变了

CAP理论断言任何基于网络的数据共享系统,最多只能满足数据一致性、可用性、分区容忍性三要素中的两个要素。但是通过显式处理分区情形,系统设计师可以做到优化数据一致...

30390
来自专栏GopherCoder

专栏:006:实战爬取博客

18020
来自专栏灯塔大数据

每周学点大数据 | No.77 众包算法实践——成为众包工人

编者按:灯塔大数据将每周持续推出《从零开始学大数据算法》的连载,本书为哈尔滨工业大学著名教授王宏志老师的扛鼎力作,以对话的形式深入浅出的从何为大数据说到大数据算...

476110
来自专栏Sorrower的专栏

GPU编程(二): GPU架构了解一下!

http://html.rhhz.net/tis/html/20150101.htm# http://hustcat.github.io/gpu-archit...

68920
来自专栏SDNLAB

软件定义光网络故障恢复与资源分配

前言 传统IP分组交换网使用域内路由协议(Interior Gateway Protocol,IGP)和域间路由协议(Border Gateway Protoc...

35190
来自专栏Linyb极客之路

对高并发流量控制的一点思考

在实际项目中,曾经遭遇过线上5W+QPS的峰值,也在压测状态下经历过10W+QPS的大流量请求,本篇博客的话题主要就是自己对高并发流量控制的一点思考。

11730
来自专栏微信公众号:Java团长

对高并发流量控制的一点思考

在实际项目中,曾经遭遇过线上5W+QPS的峰值,也在压测状态下经历过10W+QPS的大流量请求,本篇博客的话题主要就是自己对高并发流量控制的一点思考。

10510
来自专栏二进制文集

思维导图学 Maven

14920
来自专栏玉树芝兰

如何用Python提取中文关键词?

本文一步步为你演示,如何用Python从中文文本中提取关键词。如果你需要对长文“观其大略”,不妨尝试一下。

26320

扫码关注云+社区

领取腾讯云代金券