阅读更多



人们的朋友圈又被刷屏了,这次走红的是一个名为“how-old.net”黄颜色网站,当用户把个人照片上传后,它就能够测算出照片人物的性别和年龄。

在网站上线几个小时之内,这个系统已经测试了超过 21 万张图片,而在几天之后的现在,究竟有多少人用过它已经很难统计了。有媒体称,在 Facebook 上,搜索 Howoldnet 有超过一百万个结果,在 Twitter 上相关推文的数量也已经接近百万。

这个网站给大家带来了很多乐趣,比如测试结果与拍照的光线、发型、角度、妆容等都或多或少有关系,因此人们总是不断上传一些新的照片,力图让自己在这个网站上能够显得“年轻”一些。甚至有用户调侃说,“我觉得这是最会聊天的工具,因为它通常会帮你减龄。”

原来,这个让很多人着魔的网站来自微软。

就 在上周的微软开发者大会上,微软宣布了Project Oxford,这是一个能够帮助开发人员创建智能应用的REST API与SDK开发包。简单来说,Project Oxford是一系列能够智能解析数据并且能让你应用变得更加“聪明”的服务,它提供的REST API以及SDK,可使开发人员能够利用微软的自然数据解析算法功能,为其解决方案添加智能服务。



现在,微软的提供的API包括以下几个:

  • 脸部API——微软先进的基于云的脸部识别算法,可用来检测和识别图片中的人脸。
  • 视觉API——视觉API是一组先进的图像处理算法,可基于视觉内容返回信息,并生成图像。
  • 语音API——语音API提供最先进的算法处理语音。使用这些API,开发人员可以很容易地为他们的应用添加语音操控功能。在某些情况下,这些API还能够实现实时交互。


智能语言理解服务——智能语言理解服务(LUIS)为向应用中添加语言理解功能提供了一个快速有效的途径。

看到这里,也许你就该明白了。没错,朋友圈疯传的这个识别年龄的黄色框框正是基于Project Oxford所提供的脸部API。

Eason Wang是一位来自必应的高级工程师,他直接参与了这个项目的开发。他表示,坦白来讲这个小小的网站能够获得如此多的关注和广为流传,对他来说是个很大的惊喜。他解答人们都很想知道的问题:how-old.net网站到底是怎么从照片中判断出人们的年龄的。

他 表示,过去几年,在必应的图像搜索中,我们已经建立了一个最佳的图像理解能力,它被应用在必应以及微软其他的一些产品中。现在这个能力开发给了所有的开发 者。为了能够让这种能力能够应用在任意一个应用中,你可以简单地称其为API,并且能够在JSON格式中找到所有的必要信息,你甚至在Microsoft Project Oxford Home这个网页中上传照片。

它在几秒钟之内就能完成数据备份,其中脸部五官的坐标、性别、年龄信息都包括在内。而这个脸部API只是Project Oxford开放许多功能的其中之一,还有许多其他的核心功能的API来授权创新方案,而how-old.net只是其中的一个案例。

how- old.net主要是靠三个技术来完成的,它们分别是人脸检测、性别分类和年龄检测。其中人脸检测是其他两个技术的基础,而年龄检测和性别检测,它们只是 在机器学习的过程中解决了分类的问题。这个涉及到人脸特征的画像、收集可学习的数据,建立一个分类模型以及模型优化。

微软网站上也解释,该软件分析人们脸上的27个点得出结论。这些“地标式”的点是脸部的关键节点,比如瞳孔,眼角或鼻子——它们会随着年龄而发生明显的变化。除了这些关键节点,还有刚刚在上面提到的一些因素也会影响到年龄的测算,比如浓妆会让人显得更老。

现在微软声称该网站目前还处于优化阶段,每张照片的分析结果后面都附带免责声明。最后值得一提的是,how-old.net网站表示它并不会保存你所上传的任何照片。
  • 大小: 217.8 KB
  • 大小: 151.2 KB
来自: 腾讯科技
11
0
评论 共 1 条 请登录后发表评论
1 楼 oliviatian 2015-07-09 14:21
How Old是基于FaceAPI开发的, 有对FaceAPI感兴趣的,推荐大家一个FaceAPI的资料大全:http://fanface.chinacloudapp.cn/  都是中文的哦

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 正则表达式 运算符优先级介绍

    正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。 相同优先级的从左到右进行运算,不同优先级的运算先高后低。下表从最高到最低说明了各种正则表达式运算符的优先级顺序: 运算符 描述 \ 转义符 (), (?:), (?=), [] 圆括号和方括号 *, +, ?, {n}, {n,}, {n,m} 限定符 ^, $, \任何元字符、任何字符 定位点和序列(即:位置和顺序) | 替换,”或”操作 字符具有高于替换运算符的优先级,使得”m|food”匹配”m”或”food”。若要匹配”mood”或”food”,请使用括号创建子表达式,从而产生

  • VBS基础篇 - 运算符(1) - 运算符优先级

      VBScript 有一套完整的运算符,包括算术运算符、字符串运算符、关系运算符和逻辑运算符。      运算符优先级 运算符优先级:在一个表达式中进行多个运算时,每一部分都会按预先确定的顺序进行计算求解。 括号可改变优先级的顺序,强制优先处理括号内部部分。括号内的操作总是比括号外的操作先被执行。 但是在括号内,仍保持正常的运算符优先级。 具体优先级顺序如下图所示:    ...

  • VBScript基础教程之六VBScript运算符

    VBScript 有一套完整的运算符,包括算术运算符、比较运算符、连接运算符和逻辑运算符。 运算符优先级 当表达式包含多个运算符时,将按预定顺序计算每一部分,这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序,强制首先计算表达式的某些部分。运算时,总是先执行括号中的运算符,然后再执行括号外的运算符。但是,在括号中仍遵循标准运算符优先级。 当表达式包含多种运算符时,首先...

  • 正则表达式优先级

    正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。下表从最高到最低说明了各种正则表达式运算符的优先级顺序:运算符说明/转义符(), (?:), (?=), []括号和中括号*, +, ?, {n}, {n,}, {n,m}限定符^, $, /anymetacharacter, anycharacter定

  • 使用正则表达式对数字字符串字段排序

    我们在给含有数字的字符串字段进行排序时,常常会遇到一个尴尬的情况,用简单的order by无法给这些字段完整的排序,如以下查询效果,不符合我们的预期: select * from tb1 order by name...

  • 正则表达式的优先级顺序

     在构造正则表达式之后,就可以象数学表达式一样来求值,也就是说,可以从左至右并按照一个优先级顺序来求值。下表从最高优先级到最低优先级列出各种正则表达式操作符的优先级顺序:操作符描述/转义符(), (?:), (?=), []圆括号和方括号*, +, ?, {n}, {n,}, {n,m}限定符^, $, /anymetac

  • 正则表达式 - 运算符优先级

    正则表达式 - 运算符优先级 正则表达式从左到右进行计算,并遵循优先级顺序,这与算术表达式非常类似。 相同优先级的从左到右进行运算,不同优先级的运算先高后低。下表从最高到最低说明了各种正则表达式运算符的优先级顺序: 运算符 描述 \ 转义符 (), (?:), (?=), [] 圆括号和方括号 *, +, ?

  • 微软的正则表达式教程(一):正则表达式简介

    认识正则表达式 如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。 请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 data?.dat 的模式可以找到下述文件: data1.dat data2.dat datax.dat dataN

  • 正则表达式简介(微软篇)

    关于正则表达式:正则表达式简介(微软篇)之一正则表达式<br/><br/>如果原来没有使用过正则表达式,那么可能对这个术语和概念会不太熟悉。不过,它们并不是您想象的那么新奇。<br/><br/>请回想一下在硬盘上是如何查找文件的。您肯定会使用 ? 和 * 字符来帮助查找您正寻找的文件。? 字符匹配文件名中的单个字符,而 * 则匹配一个或多个字符。一个如 'data?.dat' 的模式可以找到下述文件:<br/><br/>data1.dat<br/><br/>data2.dat<br/><br/>datax.dat<br/><br/>dataN.dat

  • 正则表达式匹配排列

    <br />前几天有位同事问到这方面的问题,当前首先想到的是用平衡组,不过平衡组的例了主要用于匹配嵌套的Html标签,在网上查了一下,也没这方面的资料,不过这个问题最终还是通过平衡组解决了<br />先来看全排列了,假如有元素A,B,C,由这三个元素组成的组成的全排列为ABC,ACB,BAC,BCA,CAB,CBA六种,显然用[A-C]{3}这样的正则表达式是不对的,因为这样会匹配像AAA, ABB这样的排列,当然你可以通过或运算符将所有的排列列出来,正则表达式如下(ABC|ACB|BAC|BCA|CAB|

  • 正则表达式语法和优先权顺序

    正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。这里有一些可能会遇到的正则表达式示例: JScript VBScript

  • 正则表达式总结(二)重复

    一句话:当重复后加一个?号,即表示为懒惰匹配,默认为贪婪匹配 贪婪与懒惰 当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出

  • 微软的正则表达式教程(三):字符匹配

    普通字符 普通字符由所有那些未显式指定为元字符的打印和非打印字符组成。这包括所有的大写和小写字母字符,所有数字,所有标点符号以及一些符号。 最简单的正则表达式是一个单独的普通字符,可以匹配所搜索字符串中的该字符本身。例如,单字符模式 A 可以匹配所搜索字符串中任何位置出现的字母 A。这里有一些单字符正则表达式模式的示例:/a/ /7/ /M/ 等价的 VBScript 单字符正则表达式为

  • 排列组合+正则表达式

    一、排列组合 1.排列 代码演示: import itertools from collections import Iterable """ 概念:从n个不同的元素中取出m【m &lt;= n】个元素,按照一定的顺序排成一列,排列【Arragement】 当m=n时,全排列【Permutation】 1 2 3 4 取出3个 123 234 134 143 132 321 。。。 ...

  • 正则表达式之匹配顺序问题

    因为正则表达式特别适合那些针对有特定语法结构的文本,我们经常用它来解析文本。尽管如此,正则表达下在这个情况下可能会失效:用一个单一的正则表达式来匹配某个文本中的多个数据,而这些数据之间的顺序又有可能会调整而无法预知。因为正则表达式进行匹配时,匹配是按照从前往后进行匹配的,是有顺序的。这时候使用正则表达式来进行文本的匹配就可能会导致在某些时候匹配失败。尽管有时候我们可以使用条件匹配或试探匹配来避免这

  • 正则表达式元字符及优先级

    一、元字符 在正则表达式中,有一些特殊的字符,例如‘* ?’等,他们有特殊的意义,‘*’代表出现0至多次,‘?’代表1次或0次,称他们为元字符。 如下: 字符 描述 \ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个 向后引用、或一个八进制转义符。例如,'n' 匹配字符 "n"。'\n' 匹配一个换行符。序列 '\\' 匹配 "\" 而 "\(" 则匹配 "("。 ^ 匹

Global site tag (gtag.js) - Google Analytics