使用社交数据的面部识别的制作方法

文档序号:6442227阅读:202来源:国知局
专利名称:使用社交数据的面部识别的制作方法
使用社交数据的面部识别
背景技术
面部识别技术一般通过从照片中提取面部并将所提取的面部与已知面部进行比较来运作。通过这种比较,也许有可能确定是否所提取的面部属于与已知面部相同的一个人。如果发现所提取的面部与任何一个已知面部是足够相似的,则得出所提取的面部属于与已知面部相同的一个人的结论。虽然视觉面部识别技术或许能够在某些环境中识别面部,但是在许多情况中,视觉面部识别技术不足以正确地识别面部。图像可能具有差的质量,从而使得面部的特征难以辨别。属于不同人员的两个面部可能看起来彼此相似,并且视觉面部识别处理可能猜测错误的面部。因而,视觉面部识别在一些情况中可能无法独自正确地识别面部。

发明内容
面部识别可以使用视觉技术和社交网络数据来执行。社交网络数据的使用可以基于这样的观察,即,人们一般倾向于拍摄他们认识的人的照片并且与他们认识的人一起出现在照片中。因而,社交网络数据可以用于确定人们彼此具有什么联系(利用为了保护所涉及的各方的隐私而获得的适当许可)。这种人员联系的知识可以随后用于帮助确定谁出现在照片中。为了识别照片中的面部(我们将之称为“面部A”),面部A可以被视觉分析,以创建面部A的特征的数字表示。即,面部A的物理特征可以被量化,并且可以创建表示面部特征的量化的矢量。该矢量的各方面随后可以被转换成文本串,从而产生代表面部A的一个或多个文本串。此外,从社交事实中导出的文本串也可以被添加到这些文本串上。例如,如果面部A是从被“Bob (鲍勃)”上传的照片中提取的,并且该照片已被标记为包含“Joe (乔)” 和“Susan (苏珊)”,那么这些名字也是可以被添加到照片的表示上的文本。因此,如果代表面部的视觉外观的字符串是“eruiuwe”、“dkruiwl”和“dkrudkt”,那么代表面部A的视觉和社交方面的文本可以是“eruiuwe dkruiwl dkrudkt Bob Joe Susan”。一旦存在代表面部A的文本,则可以使用那个文本来索引面部A,并且稍后在搜索中可以使用该索引条目。因而,假设新的照片包含未识别的面部(“面部B”)。面部B的视觉分析可以产生一个矢量,并且将那个矢量转换成文本可以产生包括“eruiuwe” (这是代表面部A的视觉外观的字符串之一)的一组字符串。此外,还可能知道该照片是由Susan上传的。因此,文本搜索可以使用查询“eruiuwe Susan”来执行。由于先前段落中描述的面部A利用字符串“eruiuwe”和“Susan”进行索引,所以面部A将作为对于面部B的潜在匹配而出现在文本搜索结果中。由于该搜索基于代表该面部的视觉外观的文本项并且也基于代表该面部的社交上下文(social context)的文本项,所以搜索结果中该面部的识别可以基于视觉和社交考虑二者。有关面部B是否与面部A相匹配的实际决策可以取决于匹配的强度以及是否其他被索引的面部是更强的匹配。这样一来,普通的文本搜索技术可以用于执行面部匹配。在一个示例中,上述技术可以用于搜索特定人员的照片。在另一个示例中,上面的技术可以用于建议出现在照片中的面部的身份,以便辅助用户标记这些照片。提供这个发明内容部分来以简化形式介绍下面在详细描述部分中进一步描述的概念的选择。这个发明内容部分既不打算标识所请求保护主题的关键特征或基本特征,也不打算用于限制所请求保护主题的范围。


图I是其中可以分析和索引面部的示例系统的框图。图2是其中面部可以利用其视觉和社交特性来索引的示例处理的流程图。图3是其中利用视觉和社交标准进行索引的面部可以用于提供结果的示例处理的流程图。图4是可以与这里描述的主题的实现方式结合使用的示例组件的框图。
具体实施例方式面部识别技术允许自动识别出现在照片中的人员。通常,面部识别技术依靠面部的视觉分析。为了执行这种类型的分析,从照片中提取构成面部的照片区域,并将这个区域规范化为特定大小。该面部随后被分析,以量化该面部的特定方面。之后,创建包含这些参量的矢量,其中该矢量代表该面部。通过为若干面部创建矢量,有可能使用矢量比较技术来比较面部的相似度。随后可以作出有关两个面部如何相似的判断,并且这些判断可以用于各种应用。例如,想在照片中辨认Joe的系统可能保持Joe的面部的标准图像(canonical image),并且可以采用矢量的形式来量化那个面部。然后,其他图像中的面部能够通过为那些图像创建矢量以及比较这些矢量的相似度而与Joe的面部进行比较。之后,与Joe的面部的标准图像足够相似的面部可以被认为是Joe的图像。但是,仅仅基于视觉分析的面部识别具有其限制。时常从存在模糊、照明受阻等问题的不完美图像中提取面部。一些人看起来彼此相似,因此面部特征的量化可能导致类似的矢量用于两个不同人员的面部。此外,在使用视觉机制时,将面部明确地识别为属于Joe 的能力取决于有关Joe的面部的数据(例如,新图像可以与之相比较的Joe的标准图像)的存在性。在一些情况中,那个信息并不存在。或者即使原始信息确实存在,它也可能没有被提取成可用形式。这里描述的主题使用社交数据来增强视觉面部识别技术。人们用来互动的社交网络和其他系统提供丰富的能够用于识别照片中的面部的数据。这样的数据的使用可以基于这样的观察,即,如果人员A和B相互认识,那么与两个随机的不相关的互不认识的人员将一起出现在照片中的情况相比,更有可能A将与B —起出现在照片中。类似地,如果A认识 B,那么更有可能A将出现在由B拍摄的照片、由B上传的照片或包含由B输入的一个或多个标签的照片中。因而,有关人们彼此交互的数据可以用于确定在人员之间存在什么关系, 并且这个数据可以用于帮助识别照片中的面部。(为了维护和尊重人们的隐私期望,有关人员的信息的使用可以依照适当许可和/或披露来使用)。除了使用有关谁上传照片或谁出现在照片中的信息之外,也可以使用有关照片的附加信息。例如,如果两张照片在同一相簿中,那么与针对两张随机选择的照片的情况相比,可能更有可能同一个人出现在这些照片中。此外,如果两张照片是在几乎相同的时间和地点拍摄的话,那么与针对两张随机选择的照片的情况相比,可能更有可能在这些照片中具有共同的面部。使用社交网络和/或交互数据来识别面部的一种方式是使得面部的视觉特征以及围绕面部的社交上下文是文本可搜索的。在创建代表面部特征的矢量时,可以创建一个或多个基于该矢量的文本串。这些文本串可以通过“位置敏感散列(locality sensitive hash)”来创建,以致彼此相似的面部具有往往生成相似的文本串集合的矢量。相反,彼此相异的面部往往生成相异的文本串集合。因而,如果Joe面部的照片被分析,那么代表Joe的面部特征的量化的矢量可能是η维矢量〈12. O, 5.6,15.2,…〉。从这个矢量中生成的文本串集合可能是“eruiuwe dkruiwl dkrudkt”。这些特定字母序列在英语中没有特别的意义,但是它们具有可以在以后辅助搜索面部的少量属性(1)它们采用文本的形式,这使得它们通过正常的基于文本的索弓I与搜索(text-based index-and-search)技术是可索引且可搜索的,以及(2)这些字符串可以采用这样的方式来创建,即在视觉上彼此相似的两个面部将生成相似的字符串集合。(将明白“文本串”并不限于自然语言中的字符串或使用自然语言的字母数字表或符号的字符串;相反,文本串可以指任何的能够使用文本搜索技术来搜索的数据)。此外,有关面部的任何已知的社交上下文也可以采用文本串的形式来表示。例如,如果Joe面部的照片是从由“Bob”上传的照片中提取的,并且该照片已被标记成也包含“Susan”的图像,而且该照片是由“Mary (玛丽)”用电子邮件发送的,那么这些名字也是可以被添加到该照片的表示上的文本。因而,表示照片的字符串可能是“eruiuwe dkruiwl dkrudkt Bob Susan Mary Joe”,其代表(通过前三项)视觉上已知的有关面部的内容并且也代表(通过后四项)社交上已知的有关面部的内容。(假设该面部已被明确地识别为Joe的面部,Joe的名字可以被包括在这个列表中;但是,理论上,即便没有识别面部,也将有可能创建代表有关该面部的已知内容的文本串。如果知道面部是从Bob上传的、包含Susan并由Mary用电子邮件发送的照片中提取的话,即使还不知道什么人属于那个面部,这也提供有关该面部的相关信息)。注意上述示例显示用于索引照片的所有数据以无差别的方式被级联在一起。然而,也有可能指定用于给定数据片的字段。例如,以上示例中的前三个文本串可以被指定为“视觉信息”字段的一部分。Bob可以被列在“上传者(uploaded-by)”字段中。Susan可以被列在“出现在图像中(appears-in-image)”字段中。诸如此类。识别每一个数据片的重要性(significance)可以辅助搜索策略,例如,如果特定搜索策略认为 Susan与Joe—起出现在照片中是更为重要的而Bob拍摄该照片是不太重要的,那么可以设计利用这些字段的搜索策略。一旦创建了描述面部的视觉特征和社交上下文的适当字符串,面部可以存储在利用这些字符串索引的数据库中。利用这些字符串对面部进行的索引使得该面部是文本可搜索的。即,如果分析碰巧与数据库中的某面部相似的未识别面部,那么该面部的视觉分析可能往往产生与数据库中的面部相关联的一些相同的字符串。此外,如果未识别的面部来自类似的社交上下文(例如,如果包含未识别面部的照片也是由Bob上传的),那么这个社交上下文也将类似于与数据库中的已知照片相关联的字符串。例如,如果新的照片包含产生视觉字符串“dkruiwl”(与在先前段落的示例中已知与Joe的面部相关联的字符串之一相同) 的面部,并且该照片是由Bob上传的,那么可以对照已知的索引照片的数据库来评价查询 "dkruiwl Bob”。数据库中的面部匹配的项越多(无论那些项是基于视觉还是基于社交上下文的字符串),该面部的分数就将越高。面部的分数越高,就越有可能具有高分的面部与形成该查询基础的未知面部相匹配。虽然基于视觉的字符串可以采用任何方式来创建,但是创建字符串的一种方式是编码特定矢量位于若干边界平面(bounding plane)中的哪一侧边的二元决策。例如,如果代表面部的矢量是G1, a2,…,an>,那么可以基于诸如a7〈3、a13>6. 2等等的决策点来创建假定10个布尔值。在已经创建了所有10个值时,结果可以是比特序列(例如,0110001010), 其中O代表假,而I代表真。这个比特串可以采用任何适当的方式进行文本编码,从而产生文本串。可以使用若干边界平面集合,以致每一个边界平面集合生成特定的字符串。如果用于创建量化面部特征的矢量的技术是有效的,那么相似的面部将有可能位于矢量空间中的相似位置。位于矢量空间中的相似位置上的矢量有可能位于若干边界平面中的相同侧边上,从而产生至少一些相同的字符串。在将面部存入数据库并已经利用字符串(基于视觉和基于社交二者的字符串)进行索引时,数据库可以被查询以支持各种应用。在一个示例中,数据库可以被查询,以搜索特定人的照片。在另一个示例中,数据库可以被查询,以查找与照片中的未知面部相匹配的面部,以便提议用于那个面部的标签。现在转到附图,图I显示其中可以分析和索引面部的示例系统。照片存储设备102 包含照片104的集合。例如,照片存储设备可以是位于照片共享站点或社交网站上的照片数据库,或者可以是位于本地或共享硬盘驱动器上的照片文件的集合。照片爬行器(crawler) 106是从照片存储设备102接收照片104并分析照片以便从照片104中提取面部的组件。例如,照片爬行器106可以采用访问照片存储设备102中的照片的软件的形式存在,但是也能够采用任何适当的形式存在。如下所述,除了接收照片本身之外,照片爬行器106还可以执行和/或便于对于照片进行的各种分析。当照片爬行器106从照片104中提取面部时,照片爬行器106将面部108的图像提供给面部分类器110。面部分类器110是量化图像中的面部特征并创建代表面部特征的量化的矢量112的组件(例如,软件组件)。因而,每一个面部可以利用诸如〈&1,a2,…,an> 之类的η维矢量来表示。面部分类器110可以将这个矢量112反向提供给照片爬行器106。当照片爬行器接收到矢量112时,它可以将矢量112提供给矢量分析器114。矢量分析器114可以是基于矢量来创建字符串的软件组件。参考上面的讨论,矢量分析器114 可以保持若干边界平面集合,并且可以基于特定矢量相对于边界平面所在的位置来创建字符串,例如,通过创建用于边界平面集合的布尔值,并且随后将布尔值编码成文本的形式, 如上所述。因而,矢量分析器114可以创建字符串116,并且可以将这些字符串反向提供给照片爬行器106。照片爬行器106随后具有代表面部的视觉外观的一个或多个字符串的集

口 ο照片搜索器106也可以接收涉及照片的社交数据118。(如上所述,社交数据118 可以依照适当的许可和/或披露来使用,以便维护和尊重人们的隐私期望)。社交数据118 可以包括各种组件。这些组件的示例包括谁和谁是朋友(方框120)、谁属于相同的网络(方框122)、谁与谁具有工作关系(方框124)、谁拍摄(或上传或标记)谁的照片(方框126)、知道哪些人是一起出现在照片中(方框128)、谁给谁发送电子邮件(方框130)或任何其他适当的信息。
这个社交数据118可以被提供给照片爬行器106。照片爬行器随后可以使用字符串116和社交数据118来创建有关面部的已知内容的文本表示132。“有关面部的已知内容 (what is known about a face)”可以包括有关面部的视觉信息(如利用字符串116所表示的)以及有关面部的社交上下文信息(如利用社交数据118所表示的)。因而,文本表示132 可以包含代表面部特征134的文本以及代表社交上下文136的文本。在搜索索引数据库138中可以对每一个面部(和/或包含一个或多个面部的每张照片)编制索引。因而,对每一个面部来说,搜索索引数据库138可以包含与面部相关联的字符串(基于视觉的字符串和基于社交的字符串二者)。该索引可以将这些字符串与特定的面部和/或照片相关联,从而使得面部和/或照片基于其视觉和社交特性二者而是文本可搜索的。因而,如果想查找具有特定视觉特性的面部,那么可以对表示某些视觉特性的一个或多个字符串执行文本搜索。(例如,如果在新照片中已检测和分析了面部,并且想搜索数据库以明白哪些照片与那个面部相匹配,则这样的搜索可能出现)。或者,如果想查找在特定社交上下文中出现的面部,那么可以对如同“Bob”、“Susan”等等代表社交上下文的项执行文本搜索。在一个示例中,在搜索中使用两种类型的字符串,从而允许基于文本的搜索引擎查找与社交和视觉标准二者特别相关的面部。图2显示其中面部可以利用其视觉和社交特性来索引的示例处理。在转到图2的描述之前,注意这里包含的流程图(在图2中和在图3中)参考图I所示的组件、通过示例来描述,但是这些处理可以在任何系统中完成,并且不限于图I所示的情景。此外,图2-3 中的每一个流程图显示其中如利用连接方框的线条所示、利用特定的顺序来完成处理的各个阶段的示例,但是这些图中显示的各个阶段能够以任何的顺序或以任何的组合或子组合来执行。至图2的处理的输入包括面部202。面部202可以利用任何适当的机制来提供。 例如,面部202可以出现在包含对象、背景、一个或多个面部等等的照片中,并且可以使用已知的处理从那个照片中进行提取。或者,面部202的图像可以利用手动机制来提供(例如,用户控制图形程序中的剪贴功能)。面部202可以在大小、颜色平衡等方面被规范化,以便于面部202的分析。面部202随后可以被分类(在204)。例如,面部202的分类可以利用面部分类器 110 (如图I所示)来执行。面部202的分类可以包括面部202的各种可量度特征的分析, 例如,面部的垂直-水平维度之比、耳朵(或鼻子或眼睛)相对于面部的其他部分的大小、出现在面部中的颜色的评估(例如,头发、眼睛、嘴唇等等)或可以被量化的面部的任何其他方面。一旦量化了面部202的这些方面,可以使用这些参量本身(在206)来创建矢量112 (其第一次在图I中引入)。该矢量的特定特性以及矢量中的每一个分量的重要性可以取决于正在使用的特定面部分类方案。然而,无论使用的方案如何,源自面部分类处理的矢量112 都可能包含有关面部的足够信息,以致视觉上相似的面部将具有相似的矢量,而在视觉上彼此相差很大的面部将具有不同的矢量。在208,基于矢量的文本串可以被创建。如上所述,文本表示可以包含字符串的集合,其中每一个字符串是一个或多个平面侧边决策(side-of-plane decision)的集合的编码。空间2310显示如何可以作出这些平面侧边决策的示例。为了说明,示例空间210被显示为三维空间。在实际的空间分类方案中,该矢量可以具有若干打分量,其中这些分量与一样多的维度相对应。例如,如果面部利用矢量〈a” a2,…,a5(l>来表示,那么该面部被表示在50维空间中。但是,为了说明,所显示的三维空间210将演示可以如何使用平面侧边决策。在空间210中,显示两个平面212和214。点216代表特定矢量在空间210中的位置。因而,如果空间210是所有可能面部的空间,并且如果矢量112 (其代表面部202)被映射到点216,那么点216代表面部202在空间210中的位置。虽然空间210中的每一个点具有它自己的确切位置,但是为了将面部分类为相似的或不同的,有可能建立等价类别。相交平面212和214将空间210分成四个区域,其中每一个区域是一个等价类别。因而,为了确定点216在什么类别,可以询问点216是处于平面212之上还是平面212之下以及它是位于平面214的左侧还是右侧。(在实际的实现方式中,这些决策将通过数学方式作出,例如,如果平面212和214分别在4和2与X和z轴相交,那么在平面212 “之上”可以被定义为z>4,而在平面214的“右侧”可以被定义为x>2)。因而,点216的位置可以利用布尔阵列{真,真}来描述,即,“在平面212之上”=真,以及“在平面214的右侧”=真。如果想像一个50维空间,其中在该空间中每一个集合的平面侧边决策包含假定10个决策,那么每一个决策集合的结果将是10个布尔值的集合。这些值可以数字地进行编码(例如,被编码为O和1),并且数字编码的布尔值阵列随后能够被文本编码,以产生字符串。这个字符串实际上代表对于给定的平面侧边决策集合而言特定的面部落入哪一个等价类别。如果具有假设三个平面侧边决策的集合,那么能够产生三个单独的布尔阵列,这些阵列随后将被编码成三个单独的字符串。每一个字符串代表该面部在给出不同的平面侧边决策集合的情况下落入哪一个等价类别。如果两个面部具有共同的单个字符串,那么依照一个平面侧边决策集合,它们位于相同的等价类别中。如果两个面部具有三个共同的字符串,那么它们位于依照三个平面侧边决策集合的相同的等价类别中(这表明与这些面部仅仅具有一个共同字符串的情况相比,这些面部可能是更加彼此相似的)。将明白在此上下文中,“平面”指的是η维空间中的(η-i)维表面。在图2所示的示例中,该空间是三维的,因此“平面”正好是熟悉的二维表面。但是,在较高维数空间中, “平面”能够实际上被描述为超平面,例如,在50维空间中,边界“平面”将实际上是49维超平面。但是,为了简化这里的描述,我们将参考边界“平面”、“平面侧边决策”等等,并且将明白“平面”指的是二维表面,但是其并不局限于此。特别地,这里的权利要求可能指的是 “平面”和“平面侧边”决策,并且将明白这样的“平面”指的是任何的能够将空间分成区域的几何对象,并且具体地是二维表面,但是并不局限于此。虽然可以采用任何方式来创建基于矢量的文本串,但在一个示例中,文本串创建方法包括位置敏感散列218。当使用位置敏感散列218时,在空间上彼此接近的矢量有可能具有相似的字符串,而在空间中彼此远离的矢量有可能具有不同的字符串。即,在位置敏感散列中,从不同矢量产生的字符串的相似度与这些矢量的邻近度是正相关的。无论用于创建字符串的技术如何,在220显示所创建的实际字符串的示例。在这个示例中,被创建来表示面部的视觉外观的字符串包括“ eruiuwe ”、“ dkruiwl ”以及 “dkrudkt”。与基于面部的视觉外观的字符串一起,可以包括社交数据118。如上所述,社交数据可以基于诸如谁上传了照片、谁与谁一起出现在照片中、谁在照片中标记了谁、是否照片中的人员出现在彼此的联系人列表中等等的事实。(如上所述,这样的信息可以依照适当的许可和/或披露来使用,以便保护人们对于其信息的隐私期望)。因而,对于指定的面部,如果知道包含该面部的照片是由Joe上传的、该面部在照片中被Bob标记、并且Susan也出现在该照片中,那么字符串“Joe”、“Bob”和“Susan”可能与该面部相关联。因而,在将该面部输入搜索索引数据库138时,该面部可能与字符串“eruiuwe”、“dkruiwl”、“dkrudkt”、 “Joe”、“Bob”以及“Susan”相关联(在222)。类似地,如果确定某个人的联系人列表(或某一其他类型的列表)对于该照片提供相关的社交上下文,那么该列表中的名字(依照上文暗指的适当的隐私披露/许可)可以被扩展到字段中,以便可以利用这些名字来为该照片编制索引。图3显示其中利用视觉和社交标准进行索引的面部可以用于提供结果的示例处理。在302,这些面部被索引。可以使用上面结合图I和2描述的系统和技术来执行这个索引,但是能够采用任何适当的方式来执行该索引。在304,可以接收对于满足一定标准的面部的请求。该标准可以是视觉和/或社交的。该请求可以采用任何方式产生。该请求可以产生的一种示例方式是通过提议标记新的面部(方框306)。因而,如果新的照片被上传并且尚未标记的面部出现在该照片中,那么可以识别有关该面部的视觉和/或社交事实。视觉事实可以是代表面部的视觉外观的矢量和 /或代表有关那个矢量的平面侧边决策的字符串(如上所述)。社交事实可以从照片或从围绕照片上传的环境(例如,谁出现在照片中,谁上传了照片,谁标记了照片中的其他人等等) 中导出。有关该面部的这些视觉和社交事实可以用于查找为该面部所提议的身份(例如,通过查找好像是同一个人并且其身份是已知的面部)。请求可以产生的另一示例方式是查找指定人的照片(方框308)。因而,如果未识别的面部出现在照片中,那么能够试图查找同一个人的其他面部。无论请求产生的方式怎样,都可以基于请求来形成文本查询(在310)。因而,如果已从照片中提取面部,并且如果目标是查找可能是与那个面部相同的人,那么可以创建从有关该面部的视觉和社交事实二者中导出的字符串,并且可以基于那些字符串来形成查询。因而,如果面部的视觉元素利用字符串“eruiuwe”、“dkruiwl ”和“dkrudkt ”来表示, 并且面部的社交元素利用“Joe”、“Bob”和“Susan”来表示,那么可以形成查询“eruiuwe dkruiwl dkrudkt Joe Bob Susan”。取决于将如何评估文本查询,不同的变异是可能的。在一个示例中,如果任一查询项与某个结果相关联,那么可以认为那个结果与该查询相匹配, 因此仅与字符串“dkrudkt”相关联的面部将与上面的查询相匹配。在另一示例中,除非另有规定,否则所有的项可以被假定是结合的。因而,为了允许面部在它具有一些与查询共同的视觉和社交特征时与该查询相匹配,该查询可以被形成为“(eruiuwe OR dkruiwl OR dkrudkt) AND (Joe OR Bob OR Susan)”。在另一个示例中,可以规定加权,以致能够将该查询的某些特定方面(例如,视觉方面)比其他方面更重地加权。因而,如果查询处理系统允许显性加权(explicit weighting),那么该查询可以被形成为“2. 5*(eruiuwe OR dkruiwl OR dkrudkt) AND I. 0* (Joe OR Bob OR Susan) ”,从而表明视觉特征之一上的匹配的重要性是社交特征上的匹配的2. 5倍。(或者,特定特征的加权可以被构建在查询处理器的记分算法中,而不是使得加权是显性的)。
在312,使用查询,可以对索引的面部/照片执行文本搜索。在314,基于查询的结果可以被接收。在一个示例中,这些结果可以是排名次序,以致似乎与查询相匹配的结果紧邻结果的顶部出现,而与该查询不太匹配的结果出现在底部附近。因而,在上面的示例中, 与许多搜索项(或许多重加权的搜索项)相关联的面部可能排在顶部附近,而与较少的搜索项相关联的面部则可能排在底部附近。在一个示例中,结果的排名可以通过后查询动作 (post-query action)来完成。因而,可以执行文本搜索,以识别满足该查询的照片,但是在这些结果之中,结果的实际排名可以通过该查询与每一个结果之间的矢量比较来完成。例如,可以创建矢量来代表查询中的项以及每一个搜索结果的频率,并且这些结果可以按照结果的矢量与查询矢量之间余弦的递减顺序进行排名(尽管其他类型的矢量比较也是可能的)。在另一个示例中,结果的排名可以基于该查询中有多少个字符串与用于索引照片的字符串相匹配,例如,与该查询中较大数量的字符串相匹配的照片可以接收到比与较少数量的字符串相匹配的照片更高的排名。在316,基于这些结果,可以采取切实的行动。例如,这些结果可以用于提议用于照片中尚未识别的面部的标签(方框318)。这样的提议可以通过确定在结果中排名高的哪些面部与已知人员相关联并提供允许用户从已知人员的那个列表中选择用于尚且未知的面部的标签的菜单来运作。人员的列表可以按照排名的顺序来呈现,以致与高排名的搜索结果相关联的人员将在与较低排名的搜索结果相关联的人员之前进行呈现。作为在316执行的行动的另一个示例,似乎与未识别面部相匹配的照片可以被显示给用户(在320)。例如,如果新的照片包含未识别的面部,那么可以从那个面部获得视觉和社交特征,并将这些特征编码到文本串中。这些文本字符串随后可以在查询中进行使用, 以搜索已知面部的数据库。基于查询中的社交和视觉标准二者,能够从数据库中检索可能是与未识别面部相同的面部,并且可以将其显示给用户。用户随后可以被要求确认是否检索到的面部是与未识别面部相同的一个人。一般来说,在316采取的行动可以基于这些结果之中特定面部的包括和/或基于那个面部在这些结果内的排名。图4显示其中可以部署这里描述的主题的各方面的示例环境。计算机400包括一个或多个处理器402和一个或多个数据记忆组件404。一个或多个处理器402通常是微处理器,诸如在个人台式计算机或膝上型计算机、服务器、手持计算机或另一类型的计算设备中找到的微处理器。一个或多个数据记忆组件404是能够或短期或长期存储数据的组件。一个或多个数据记忆组件404的示例包括硬盘、可移动盘(包括光盘和磁盘)、易失性和非易失性随机存取存储器(RAM)、只读存储器(ROM)、闪存、磁带等等。一个或多个数据记忆组件是计算机可读存储媒体的示例。计算机400可以包括显示器412或者与显示器412相关联,其中显示器可以是阴极射线管(CRT)监视器、液晶显示器 (IXD)监视器或任何其他类型的监视器。软件可以存储在一个或多个数据记忆组件404中,并且可以运行在一个或多个处理器402上。这样的软件的示例是视觉和/或社交面部处理软件406,其可以实现上面结合图1-3描述的一些或所有的功能,但是任何类型的软件都能够被使用。例如,软件406可以通过一个或多个组件来实现,其中这一个或多个组件可以是分布式系统中的组件、单独的文件、单独的功能、单独的对象、单独的代码行等等。其中程序被存储在硬盘上、被加载到 RAM中并被运行在一个或多个计算机的处理器上的计算机(例如,个人计算机、服务器计算机、手持计算机等等)代表图4中描绘的情景,但是这里描述的主题并不限于这个示例。这里描述的主题能够被实现为存储在一个或多个数据记忆组件404中并运行在一个或多个处理器402上的软件。作为另一个示例,该主题能够被实现为存储在一个或多个计算机可读存储媒体中的指令。诸如光盘或磁盘之类的有形媒体是存储媒体的示例。这些指令可以存在于非临时媒体上。这样的指令当由计算机或其他机器运行时可以导致计算机或其他机器执行方法的一个或多个动作。执行这些动作的指令可以存储在一个介质上, 或者可以被展开在多个媒体上,以致这些指令可能一起出现在一个或多个计算机可读存储媒体上,而不管所有的这些指令是否正好在同一介质上。注意作为对比,在其上“存储”信号的媒体(其可以被称为“存储媒体”)与包含或发送传播信号的媒体之间是存在区别的。 DVD、闪存、磁盘等等是存储媒体的示例。另一方面,信号瞬时存在于其上的线路或光纤是短暂信号媒体的示例。此外,这里描述的任何动作(无论是否在图中显示)可以作为方法的一部分由处理器(例如,一个或多个处理器402)来执行。因而,如果在这里描述动作A、B和C,那么可以执行包括动作A、B和C的方法。此外,如果在这里描述动作A、B和C,那么可以执行包括使用处理器来执行动作A、B和C的方法。在一个示例环境中,计算机400可以通过网络408通信地连接到一个或多个其他设备。在结构上与计算机400相类似的计算机410是可以连接到计算机400的设备的示例, 但是其他类型的设备也可以如此进行连接。虽然采用特定于结构特征和/或方法论的行为的语言描述了本主题,但是将明白在所附的权利要求书中定义的主题不一定限于上述的具体特征或动作。相反,上述的具体特征和动作被披露为实现这些权利要求的示例形式。
权利要求
1.一种基于视觉和社交数据来索引面部的方法,该方法包括分析(204)第一面部(202)的图像,以产生量化所述第一面部(202)的特征的矢量 (112);创建(208)表示所述矢量(112)的一个或多个第一文本串(220);获得与所述第一面部(202)出现在其中的第一照片有关的社交数据(118);将所述第一面部(202)与所述一个或多个第一文本串(220)以及所述社交数据(118) 相关联;以及将所述第一面部与所述一个或多个第一文本串(220 )以及所述社交数据(118 )相关联存储在数据库(138)中。
2.权利要求I的方法,其中所述一个或多个第一文本串的所述创建包括使用位置敏感散列,其生成文本串,以致为矢量生成的文本串的相似度与所述矢量的邻近度正相关。
3.权利要求I的方法,其中所述一个或多个第一文本串的所述创建包括在所述矢量存在于其中的空间中定义第一平面集合;确定所述矢量位于所述平面中的每一个平面的哪一侧边;和在文本串中编码所述矢量位于所述平面中的每一个平面的哪一侧边,所述文本串是所述一个或多个第一文本串之一。
4.权利要求3的方法,进一步包括定义多个平面集合,所述第一平面集合是所述多个平面集合之一;以及基于对于所述多个平面集合中的每一个平面集合的平面侧边决策,创建单独的文本串。
5.权利要求I的方法,其中所述社交数据包括谁已上传了所述第一照片,其中所述第一面部在所述数据库中利用所述一个或多个第一文本串和利用已上传所述第一照片的人员的名字来索引。
6.权利要求I的方法,其中所述动作进一步包括接收第二面部的图像;基于所述第二面部的视觉外观,创建一个或多个第二文本串;从所述第二面部出现在其中的第二照片中获得社交数据;创建包括所述一个或多个第二文本串和所述社交数据的文本查询;基于所述查询,获得包括所述第一面部的结果的集合,其中在所述结果中包括所述第一面部是以利用在所述查询中的项进行索引的所述第一面部为基础的;以及基于所述结果,执行动作。
7.一种计算机可读介质,其具有计算机可执行指令来执行权利要求1-6之中任一权利要求的方法。
8.一种用于基于视觉和社交数据来识别第一面部的系统,该系统包括存储器(404);处理器(402);数据库(138),其存储面部(202),其中所述面部利用代表所述面部(202)的视觉特性的文本串(220)并且也利用与所述面部(202)相关的社交数据(118)来索引;和面部处理组件(406),其接收所述第一面部的图像、创建表示所述第一面部的视觉外观的矢量(112)、创建表示所述矢量(112)的一个或多个文本串(220)、获得与所述第一面部出现在其中的照片相关的社交数据(118)、形成包括所述一个或多个文本串(220)与所述社交数据(118)的查询(310)、从所述数据库(138)中获得基于所述查询(304)的结果以及基于所述结果采取行动(316),其中所述结果包括第二面部。
9.权利要求8的系统,其中所述行动包括提议与所述第二面部相关联的身份作为所述第一面部的标签,或者指示所述第二面部属于与所述第一面部相同的一个人。
10.权利要求8的系统,其中从与从所述面部的视觉特性中导出的矢量有关的平面侧边决策中导出在所述数据库中用于索引所述面部的所述文本串。
全文摘要
可以使用视觉和社交标准来索引和识别面部。在一个示例中,面部的视觉特征被量化,并且这些特征的量化以矢量来表示。矢量的各方面随后以文本串的形式来表示。围绕面部的社交上下文也以文本串的形式来表示。这些文本串即基于视觉的字符串和/或基于社交的字符串二者与面部相关联,并且被存储在索引中。这些字符串与面部的相关联性随后可以使得该面部在其视觉和社交特征方面是文本可搜索的。对这些视觉和/或社交特征的搜索可以用于协助识别新的面部的图像或提议标签,以便用户应用于照片。
文档编号G06F17/30GK102609434SQ201110429238
公开日2012年7月25日 申请日期2011年12月20日 优先权日2010年12月20日
发明者B.多德森, C.韦布斯特, D.尼科尔斯, J.斯卡里亚 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1