用于组织存储在移动计算设备上的照片的系统、方法和装置与流程

文档序号:11635297阅读:150来源:国知局
相关申请的交叉参考本申请要求转让给加利福尼亚州山景城的orbeus公司的2014年6月24日提交的标题为“用于组织存储在移动计算设备上的照片的系统、方法和装置(system,methodandapparatusfororganizingphotographsstoredonamobilecomputingdevice)”的第14/316,905号美国专利申请的权益和优先权,该专利申请以全文引用的方式并入本文中。本申请涉及转让给加利福尼亚州山景城的orbeus公司的2013年11月7日提交的标题为“用于场景识别的系统、方法和装置(system,methodandapparatusforscenerecognition)”的第14/074,594号美国专利申请,该专利申请以全文引用的方式并入本文中并且要求转让给加利福尼亚州山景城的orbeus公司的2012年11月9日提交的标题为“用于场景识别的系统、方法和装置(system,methodandapparatusforscenerecognition)”的第61/724,628号美国专利申请的优先权,该专利申请全文并入本文。本申请还涉及转让给加利福尼亚州山景城的orbeus公司的2013年11月7日提交的第14/074,615号美国专利申请,该专利申请以全文引用的方式并入本文中并且要求转让给加利福尼亚州山景城的orbeus公司的2013年6月20日提交的标题为“用于面部识别的系统、方法和装置(system,methodandapparatusforfacialrecognition)”的第61/837,210号美国专利申请的优先权,该专利申请全文并入本文。公开领域本公开涉及对存储在合并有数字相机的移动计算设备上的图像进行组织和分类。更确切地说,本公开涉及一种系统、方法和装置,其包括在合并有数字相机的移动计算设备上操作的软件,以及通过云服务进行操作以自动分类图像的软件。背景描述图像识别是由计算机执行的以分析和理解图像(诸如,相片或视频剪辑)的过程。图像一般由传感器(包括光敏相机)产生。每个图像包括大量(诸如,数百万)的像素。每个像素对应于图像中的具体位置。此外,每个像素通常对应于一个或多个光谱带中的光强度、物理测量(诸如,深度、声波或电磁波的吸收或反射)等。像素通常表示为颜色空间中的颜色元组。例如,在公知的红、绿和蓝(rgb)颜色空间中,每个颜色一般表示为具有三个值的元组。rgb元组的三个值表示红光、绿光和蓝光,它们加在一起以产生该rgb元组代表的颜色。除了描述像素的数据(诸如,颜色)之外,图像数据也可包括描述图像中的对象的信息。例如,图像中的人面部可以是正视图、30°的左视图或者45°的右视图。作为附加实例,图像中的对象是汽车,而不是房子或飞机。理解图像需要解开由图像数据表示的符号信息。已经开发出专业图像识别技术,以识别图像内的颜色、图案、人面部、车辆、飞机以及其他对象、符号、形式等。近年来,场景理解或识别也有所进展。场景是包括不止一个对象的现实世界周围或环境的视图。场景图像可包含各种类型的大量物理对象(诸如,人、车辆)。此外,场景中的单个对象与彼此或它们的环境交互或相关。例如,海滩度假村的照片可含有三个对象:天空、大海和海滩。作为附加实例,教室的场景一般含有桌子、椅子、学生和老师。场景理解在各种情形下可极其有利,诸如,交通监控、入侵检测、机器人开发、有针对性的广告等。面部识别是由计算机鉴定或核实数字图像(诸如,照片)或视频帧内的人的过程。面部检测和识别技术广泛用在例如机场、街道、建筑物入口、体育场、atm(自动出纳机)以及其他公共和私人环境。面部识别通常由在计算机上运行的分析并理解图像的软件程序或应用来执行。识别图像内的面部需要解开由图像数据表示的符号信息。已经开发出专业图像识别技术,以识别图像内的人面部。例如,一些面部识别算法通过从具有人面部的图像中提取特征来识别面部特征。该算法可分析眼睛、鼻子、嘴、下巴、耳朵等的相对位置、大小和形状。提取的特征随后用于通过匹配特征来鉴定图像中的面部。近年来,一般而言的图像识别且具体而言的面部和场景识别已有所进展。例如,已经开发出主成分分析(“pca”)算法、线性判别分析(“lda”)算法、留一交叉验证(“loocv”)算法、k-最近邻(“knn”)算法以及粒子滤波算法,并且将它们应用于面部和场景识别。这些示例算法的描述在crc出版社2009年出版的马斯兰(marsland)著作《机器学习:算法角度》(machinelearning,analgorithmicperspective)的第3、8、10、15章的第47到90、167到192、221到245、333到361页有更全面的描述,其以参考在此提交的材料的方式并入本文中。尽管近年来有所发展,但已证明面部识别和场景识别存在挑战性问题。挑战的核心是图像变化。例如,在相同的地点和时间,两个不同的相机通常会产生具有不同光强度和对象形状变化的两张照片,而这归因于相机本身的差异,诸如,镜头和传感器的变化。此外,单独对象之间的空间关系和交互具有无限数量的变化。另外,单个人的面部可投射到无限数量的不同图像中。当以与正视图相差超过20°的角拍摄面部图像时,现有面部识别技术就变得不太准确。作为附加实例,现有面部识别系统在处理面部表情变化方面无效。图像识别的传统方法是从输入图像中导出图像特征,并且将导出的图像特征与已知图像的图像特征进行比较。例如,面部识别的传统方法是从输入图像中导出面部特征,并且将导出的图像特征与已知图像的面部特征进行比较。比较结果指定输入图像与已知图像中的一个之间的匹配。识别面部或场景的传统方法一般会为了识别处理效率而牺牲匹配准确性,或反之亦然。人们手动创建相册,诸如,用于休假期间的特定停留、历史遗迹的周末参观或者家庭事件的相册。在现今的数字世界中,证明手动相册创建过程耗时且乏味。诸如智能电话和数字相机等数字设备通常具有较大存储大小。例如,32千兆字节(“gb”)存储卡允许用户拍摄数千张相片,并且记录数小时的视频。用户时常将他们的相片和视频上传到社交网站(诸如,facebook、twitter等)和内容托管网站(诸如,dropbox和picassa),以用于分享和随处访问。数字相机用户想要基于某些准则生成相册的自动系统和方法。此外,用户希望拥有用于识别他们的相片并且基于识别结果自动生成相册的系统和方法。考虑到对移动设备的更大依赖,用户现在通常在他们的移动设备上维护整个相片库。通过移动设备上可用的巨大且迅速增加的存储器,用户可将数千甚至数万张照片存储在移动设备上。考虑到此类大量照片,如果有可能的话,用户难以在照片的无组织集合中定位特定照片。所公开的系统、方法和装置的目标因此,本公开的目标是提供一种用于组织移动设备上的图像的系统、装置和方法。本公开的另一目标是提供一种用于基于云服务确定的类别来组织移动设备上的图像的系统、装置和方法。本公开的另一目标是提供一种用于允许用户定位存储在移动计算设备上的图像的系统、装置和方法。本公开的另一目标是提供一种用于允许用户使用搜索字符串来定位存储在移动计算设备上的图像的系统、装置和方法。本领域的一般技术人员将明白本公开的其他优点。然而,应理解,系统或方法可在没有实现所有枚举的优点时实践本公开,以及保护的公开内容由权利要求书定义。技术实现要素:一般而言,根据各种实施方案,本公开提供一种用于组织并且从存在于移动计算设备上的图像存储库中检索图像的图像组织系统。所述移动计算设备可以是例如智能电话、平板计算机或可佩戴计算机,所述移动计算设备包括处理器、存储设备、网络接口以及显示器。所述移动计算设备可与云计算平台相连接,所述云计算平台可包括一个或多个服务器以及数据库。所述移动计算设备包括图像存储库,例如,所述图像存储库可使用移动计算设备上的文件系统进行实施。所述移动计算设备还包括适于从所述图像存储库的图像中产生小尺度模型的第一软件。所述小尺度模型可以是例如缩略图或图像签名。所述小尺度模型一般将包括从中产生所述小尺度模型的所述图像的标记。所述小尺度模型随后从所述移动计算设备传输到所述云平台。所述云平台包括适于接收所述小尺度模型的第二软件。所述第二软件适于从所述小尺度模型中提取用于构建所述小尺度模型的所述图像的标记。所述第二软件进一步适于从与在所述图像内识别的场景类型和识别的任何面部对应的所述小尺度模型中产生标签列表。所述第二软件构建包,所述包包括生成的标签列表和提取的标记。所述包随后传输回到所述移动计算设备。在所述移动计算设备上操作的所述第一软件随后从所述包中提取所述标记和所述标签列表,并且将所述标签列表与所述标记在所述移动计算设备上的数据库中相关联。用户随后可使用在所述移动计算设备上操作的第三软件来搜索存储在所述图像存储库中的所述图像。具体而言,所述用户可提交搜索字符串,所述搜索字符串由自然语言处理器解析并且用来搜索所述移动计算设备上的所述数据库。所述自然语言处理器返回标签的有序列表,因此所述图像可按从最相关到最不相关的顺序显示。附图简述尽管权利要求书中特别指出本公开的特有特征,但通过参考结合构成本发明的一部分的附图进行的以下描述,可更好地理解本发明本身以及可实践和使用本发明的方式,其中类似参考编号指代若干视图中的类似部分,并且在附图中:图1是根据本公开构建的面部识别系统的简化框图;图2是描绘根据本公开的教示导出最终面部特征的过程的流程图;图3是描绘根据本公开的教示导出面部识别模型的过程的流程图;图4是描绘根据本公开的教示识别图像内的面部的过程的流程图;图5是描绘根据本公开的教示识别图像内的面部的过程的流程图;图6是描绘根据本公开的教示面部识别服务器计算机和客户计算机协作地识别图像内的面部的过程的时序图;图7是描绘根据本公开的教示面部识别服务器计算机和客户计算机协作地识别图像内的面部的过程的时序图;图8是描绘根据本公开的教示面部识别云计算机和云计算机协作地识别图像中的面部的过程的时序图;图9是描绘根据本公开的教示面部识别服务器计算机识别张贴在社交媒体联网网页上的相片内的面部的过程的时序图;图10是描绘根据本公开的教示面部识别计算机改善面部识别的迭代过程的流程图;图11a是描绘根据本公开的教示面部识别计算机从视频剪辑中导出面部识别模型的过程的流程图;图11b是描绘根据本公开的教示面部识别计算机识别视频剪辑中的面部的过程的流程图;图12是描绘根据本公开的教示面部识别计算机检测图像内的面部的过程的流程图;图13是描绘根据本公开的教示面部识别计算机确定面部图像内的面部特征位置的过程的流程图;图14是描绘根据本公开的教示面部识别计算机确定两个图像特征的相似度的过程的流程图;图15是根据本公开的教示客户计算机的透视图;图16是根据本公开构建的图像处理系统的简化框图;图17是描绘根据本公开的教示图像处理计算机识别图像的过程的流程图;图18a是描绘根据本公开的教示图像处理计算机确定图像的场景类型的过程的流程图;图18b是描绘根据本公开的教示图像处理计算机确定图像的场景类型的过程的流程图;图19是描绘根据本公开的教示图像处理计算机从已知图像集合中提取图像特征和权重的过程的流程图;图20是描绘根据本公开的教示图像处理计算机和客户计算机协作地识别场景图像的过程的时序图;图21是描绘根据本公开的教示图像处理计算机和客户计算机协作地识别场景图像的过程的时序图;图22是描绘根据本公开的教示图像处理计算机和云计算机协作地识别场景图像的过程的时序图;图23是描绘根据本公开的教示图像处理计算机识别张贴在社交媒体联网网页上的相片中的场景的过程的时序图;图24是描绘根据本公开的教示图像处理计算机识别托管在网络视频服务器上的视频剪辑中的场景的过程的时序图;图25是描绘根据本公开的教示图像处理计算机改善场景理解的迭代过程的流程图;图26是描绘根据本公开的教示图像处理计算机改善场景理解的迭代过程的流程图;图26是描绘根据本公开的教示图像处理计算机改善场景理解的迭代过程的流程图;图27是描绘根据本公开的教示图像处理计算机处理图像的标签的过程的流程图;图28是描绘根据本公开的教示图像处理计算机基于gps坐标来确定位置名称的过程的流程图;图29是描绘根据本公开的教示图像处理计算机对图像执行场景识别和面部识别的过程的流程图;图30是根据本公开的教示展示地图的两个样本截图,其中相片显示在地图上;图31是描绘根据本公开的教示图像处理计算机基于相片搜索结果生成相册的过程的流程图;图32是描绘根据本公开的教示图像处理计算机自动生成相册的过程的流程图;图33是实施所公开的图像组织系统的一部分的移动计算设备的系统图;图34是实施所公开的图像组织系统的一部分的云计算平台的系统图;图35a是在移动计算设备和云计算平台上操作以实施所公开的图像组织系统的一部分的软件部件的系统图;图35b是在移动计算设备上操作以实施所公开的图像组织系统的一部分的软件部件的系统图;图36a是在实施所公开的图像组织系统的一部分的移动计算设备上操作的过程的流程图;图36b是在实施所公开的图像组织系统的一部分的移动计算设备上操作的过程的流程图;图37是在实施所公开的图像组织系统的一部分的云计算平台上操作的过程的流程图;图38是描绘实施所公开的图像组织系统的一部分的移动计算设备和云计算平台的操作的时序图;图39是在实施所公开的图像组织系统的一部分的移动计算设备上操作的过程的流程图;图40a是在接受来自用户的自定义搜索字符串和区域标签的移动计算设备上操作的过程的流程图;以及图40b是在将自定义搜索字符串和区域标签存储在数据库中的云计算平台上操作的过程的流程图。详细描述转到附图,且具体而言,转到图1,示出用于识别或鉴定一个或多个图像内的面部的面部识别系统100。系统100包括耦接到数据库104的面部识别服务器计算机102,所述数据库存储图像、图像特征、识别面部模型(或简称模型)以及标识。标识(诸如,唯一编号或唯一名)鉴定人和/或人的面部。标识可由数据库104中的数据结构表示。计算机102包括一个或多个处理器,诸如,例如英特尔至强(intelxeon)处理器系列的变体中的任一个,或者amdopteron处理器系列的变体中的任一个。此外,计算机102包括一个或多个网络接口诸如例如千兆以太网接口、一定量的存储器以及一定量的存储设备诸如硬盘驱动器。在一个实施中,数据库104存储例如大量的图像、图像特征以及从图像中导出的模型。计算机102进一步耦接到广域网,诸如,互联网110。如本文所使用,图像特征表示图像的信息片段,并且通常是指应用于图像的操作(诸如,特征提取或特征检测)的结果。示例图像特征是颜色直方图特征、局部二值模式(“lbp”)特征、多尺度局部二值模式(“ms-lbp”)特征、方向梯度直方图(“hog”)以及尺度不变特征变换(“sift”)特征。通过互联网110,计算机102接收来自各个计算机的面部图像,诸如,由客户(本文中也称为用户)120使用的客户或消费者计算机122(可以是图15中示出的设备中的一个)。图15中的设备中的每个包括外壳、处理器、联网接口、显示屏、一定量的存储器(诸如,8gbram)以及一定量的存储设备。此外,设备1502和1504各自具有触摸面板。或者,计算机102通过直接链路来检索面部图像,诸如,高速通用串行总线(usb)链路。计算机102分析并理解所接收的图像,以识别图像内的面部。此外,计算机102检索或接收含有同一人的面部的视频剪辑或批量图像,以便训练图像识别模型(或简称模型)。此外,面部识别计算机102可通过互联网110接收来自其他计算机的图像,诸如,网络服务器112和114。例如,计算机122将面部图像诸如客户120的facebook档案照片(在本文中也可互换地称为相片和图片)的url(统一资源定位符)发送到计算机102。作为响应,计算机102从网络服务器112中检索由url指向的图像。作为附加实例,计算机102从网络服务器114请求含有帧或静止图像的集合(是指一个或多个)的视频剪辑。网络服务器114可以是由文件和存储托管服务(诸如dropbox)提供的任何服务器。在另一实施方案中,计算机102爬取网络服务器112和114,以检索图像,诸如,相片和视频剪辑。例如,用perl语言编写的程序可在计算机102上执行,以爬取客户120的facebook页面,从而检索图像。在一个实施中,客户120准许访问他的facebook或dropbox账户。在本教示的一个实施方案中,为了识别图像内的面部,面部识别计算机102执行所有面部识别步骤。在不同的实施中,使用客户-服务器方法执行面部识别。例如,当客户计算机122请求计算机102识别面部时,客户计算机122从图像中生成某些图像特征并且将生成的图像特征上传到计算机102。在这种情况下,计算机102在没有接收图像或生成上传的图像特征的情况下执行面部识别。或者,计算机122从数据库104中下载预定的图像特征和/或其他图像特征信息(直接下载或通过计算机102间接下载)。因此,为了识别图像中的面部,计算机122独立执行面部识别。在这种情况下,计算机122避免将图像或图像特征上传到计算机102上。在又一实施中,在云计算环境152中执行面部识别。云152可包括分布在不止一个地理区域(诸如,美国的东海岸和西海岸各州)上的大量且不同类型的计算设备。例如,不同的面部识别服务器106可由计算机122访问。服务器102和106提供并行的面部识别。服务器106访问存储图像、图像特征、模型、用户信息等的数据库108。数据库104、108可以是支持数据复制、备份、索引等的分布式数据库。在一个实施中,当物理图像是存储在数据库104外部的文件时,数据库104存储对图像的引用(诸如,物理路径和文件名)。在这种情况下,如本文所使用,数据库104仍被视作存储图像。作为附加实例,云152中的服务器154、工作站计算机156和台式计算机158的物理位置在不同的州或国家,并且与计算机102协作以识别面部图像。在又一实施中,服务器102和106都在负载平衡设备118的后面,所述负载平衡设备基于服务器102和106上的负载而在它们之间引导面部识别任务/请求。面部识别服务器上的负载被定义为例如服务器正在处置或处理的当前面部识别任务的数量。所述负载也可被定义为服务器的cpu(中央处理单元)负载。作为又一实例,负载平衡设备118随机选择用于处置面部识别请求的服务器。图2描绘面部识别计算机102导出最终面部特征的过程200。在202处,在计算机102上运行的软件应用从例如数据库104、客户计算机122或者网络服务器112或114中检索图像。检索的图像是过程200的输入图像。在204处,软件应用检测图像内的人面部。软件应用可利用多种技术来检测输入图像内的面部,诸如,基于知识的自顶向下方法、基于面部的不变特征的自底向上方法、模板匹配方法以及基于外貌的方法,如杨明轩(ming-hsuanyang)等人在2002年1月的《ieee模式分析与机器智能汇刊》第1期第24卷上的“检测图像中的人面部:调查(detectingfacesinimages:asurvey)”所述,其以参考在此提交的材料的方式并入本文中。在一个实施中,软件应用使用多阶段方法检测(在202处检索到的)图像内的面部,该方法在图12的1200处示出。现转到图12,在1202处,软件应用在图像上执行快速面部检测过程,以确定图像中是否存在面部。在一个实施中,快速面部检测过程1200基于特征的级联。快速面部检测方法的一个实例是级联检测过程,如保罗·维奥拉(paulviola)等人在2001年的ieee计算机学会视觉和模式识别会议2001第1卷上发表的“使用简单特征的优化级联的快速对象检测(rapidobjectdetectionusingaboostedcascadeofsimplefeatures)”所述,其以参考在此提交的材料的方式并入本文中。级联检测过程是使用简单特征的优化级联的快速面部检测方法。然而,快速面部检测过程以准确性为代价增加速度。因此,说明性实施采用多阶段检测方法。在1204处,软件应用确定1202处是否检测到面部。如果没有,那么在1206处,软件应用结束图像上的面部识别。否则,在1208处,软件应用使用深度学习过程来执行面部识别的第二阶段。诸如深度信念网络等深度学习过程或算法是尝试学习分层输入模型的机器学习方法。所述层对应于不同概念层次,其中从较低层次概念导出较高层次概念。各种深度学习算法在约书亚·本吉奥(yoshuabengio)在2009年的《机器学习的基础与趋势》第1期第2卷上发表的“用于ai的学习深度架构(learningdeeparchitecturesforai)”中进一步描述,其以参考在此提交的材料的方式并入本文中。在一个实施中,在将模型用于或应用于输入图像以确定图像中是否存在面部之前,先从含有面部的图像集合中训练出模型。为了从图像集合中训练模型,软件应用从图像集合中提取lbp特征。在替代实施方案中,从图像集合中提取不同图像特征或不同维数的lbp特征。随后将卷积深度信念网络中具有两层的深度学习算法应用于所提取的lbp特征,以学习新特征。随后将svm方法用于在所学习的新特征上训练模型。随后将训练的模型应用在来自图像的所学习的新特征上,以检测图像中的面部。例如,使用深度信念网络学习图像的新特征。在一个实施中,训练一个或两个模型。例如,可应用一个模型(在本文中也称为“是面部”模型),以确定图像中是否存在面部。如果匹配是面部模型,则在图像中检测到面部。作为附加实例,训练不同的模型(在本文中也称为“非面部”模型)并将它用来确定图像中是否不存在面部。在1210处,软件应用确定1208处是否检测到面部。如果没有,那么在1206处,软件应用结束这个图像上的面部识别。否则,在1212处,软件应用在图像上执行面部检测的第三阶段。首先从自训练图像的集合中提取的lbp特征中训练模型。在从图像中提取lbp特征之后,将模型应用于图像的lbp特征,以确定图像中是否存在面部。模型和lbp特征在本文中也分别称为第三阶段模型和特征。在1214处,软件应用检查1212处是否检测到面部。如果没有,那么在1206处,软件应用结束这个图像上的面部识别。否则,在1216处,软件应用鉴定并标记图像内含有所检测的面部的部分。在一个实施中,面部部分(在本文中也称为面部窗口)是矩形区域。在又一实施中,针对不同人的不同面部,面部窗口具有固定大小,诸如,100×100像素。在又一实施中,在1216处,软件应用鉴定所检测到的面部的中心点,诸如,面部窗口的中点。在1218处,软件应用表明图像中检测到或存在面部。回到图2,在输入图像内检测到面部之后,在206处,软件应用确定重要面部特征点,诸如,眼睛、鼻子、嘴、脸颊、下巴等的中点。此外,重要的面部特征点可包括例如面部的中点。在又一实施中,在206处,软件应用确定重要面部特征的尺寸,诸如,大小和轮廓。例如,在206处,软件应用确定左眼的顶部点、底部点、左点和右点。在一个实施中,每个点是相对于输入图像的一个角(诸如,左上角)的一对像素数。面部特征位置(是指面部特征点和/或尺寸)由如图13所示的过程1300确定。现在转到图13,在1302处,软件应用从源图像的集合中导出用于面部特征集合中的每个面部特征(诸如,眼睛、鼻子、嘴等)的lbp特征模板集合。在一个实施中,从源图像中导出一个或多个lbp特征。一个或多个lbp特征中的每个对应于面部特征。例如,从源图像内含有面部的左眼的图像区域(在本文中也称为lbp特征模板图像大小)诸如100×100中导出一只左眼lbp特征。用于面部特征的此类导出lbp特征在本文中统称为lbp特征模板。在1304处,软件应用计算用于lbp特征模板中的每个的卷积值(“p1”)。值p1表示对应面部特征(例如,诸如左眼)出现在源图像内的位置(m,n)的概率。在一个实施中,针对lbp特征模板ft,使用迭代过程计算对应值p1。令mt和nt表示lbp特征模板的lbp特征模板图像大小。此外,令(u,v)表示源图像内的像素的坐标或位置。(u,v)是从源图像的左上角测量到的。针对源图像内的每个图像区域(u,v)-(u+mt,v+nt),导出lbp特征fs。随后计算ft和fs的内积p(u,v)。p(u,v)被视作对应面部特征(诸如左眼)出现在源图像内的位置(u,v)的概率。可将值p(u,v)归一化。随后将(m,n)确定为argmax(p(u,v))。argmax代表最大的自变量。通常,面部特征(诸如,嘴或鼻子)与面部中心点(或不同面部点)的相对位置对多数面部而言是相同的。因此,每个面部特征具有对应的常见相对位置。在1306处,软件应用估计并确定在常见相对位置,检测到的面部中出现或存在对应面部特征的面部特征概率(“p2”)。一般而言,具有面部的图像中的某一面部特征的位置(m,n)遵循概率分布p2(m,n)。在概率分布p2(m,n)是二维高斯分布的情况下,存在面部特征的最可能位置是高斯分布的峰值所在的地方。这种二维高斯分布的均值和方差可基于面部图像的已知集合中的经验面部特征位置来建立。在1308处,针对检测到的面部中的每个面部特征,软件应用使用面部特征概率和对应lbp特征模板的卷积值中的每个来计算每个位置(m,n)的匹配分数。例如,匹配分数是p1(m,n)与p2(m,n)之积,即,p1×p2。在1310处,针对检测到的面部中的每个面部特征,软件应用确定最大面部特征匹配分数。在1312处,针对检测到的面部中的每个面部特征,软件应用通过选择与对应于最大匹配分数的lbp特征模板对应的面部特征位置来确定面部特征位置。在上述实例的情况下,将argmax(p1(m,n)*p2(m,n))作为对应面部特征的位置。回到图2,基于重要面部特征的确定点和/或尺寸,在208处,软件应用将面部分成数个面部特征部分,诸如,左眼、右眼和鼻子。在一个实施中,每个面部部分是固定大小的矩形或正方形区域,诸如,17×17像素。针对面部特征部分中的每个,在210处,软件应用提取图像特征的集合,诸如,lbp或hog特征。在210处可提取的另一图像特征是塔式变换域的扩展lbp(“plbp”)。通过将分层空间金字塔的lbp信息级联,plbp描述符考虑到纹理分辨率变化。plbp描述符对纹理表示有效。单个类型的图像特征时常不足以从图像中获取相关信息,或识别输入图像中的面部。事实上,从图像中提取两个或更多不同的图像特征。两个或更多不同的图像特征一般组织成一个单图像特征向量。在一个实施中,从面部特征部分中提取大量(诸如,十个或更多)的图像特征。例如,从面部特征部分中提取基于1×1像素单元和/或4×4像素单元的lbp特征。针对每个面部特征部分,在212处,软件应用将图像特征的集合连接成子部分特征。例如,将图像特征的集合连接成m×1或1×m向量,其中m是集合中的图像特征的数量。在214处,软件应用将所有面部特征部分的m×1或1×m向量连接成面部的完全特征。例如,在有n(正整数,诸如,六)个面部特征部分的情况下,完全特征是(n*m)×1向量或1×(n*m)向量。如本文中所使用,n*m代表整数n和m的乘积。在216处,软件应用对完全特征执行降维,以导出输入图像内的面部的最终特征。最终特征是完全特征的图像特征的子集。在一个实施中,在216处,软件应用将pca算法应用到完全特征,以选择图像特征的子集并且针对图像特征子集中的每个图像特征导出图像特征权重。图像特征权重对应于图像特征的子集,并且包括图像特征权重度量。pca是可以将固有地高维的数据集缩减到h维的简单方法,其中h是含有大多数的更高维数据的超平面的维数数量的估计值。数据集中的每个数据元素由协方差矩阵的本征向量的集合表示。根据本教示,图像特征的子集经过选择以适当表示完全特征的图像特征。在面部识别中,图像特征的子集中的图像特征中的一些可比其他图像特征更为显著。此外,本征值的集合因而表示图像特征权重度量,即,图像特征距离度量。pca在2004年戴维·巴伯(davidbarber)的“机器学习与模式识别主成分分析(machinelearningandpatternrecognitionprincipalcomponentanalysis)”中有所描述,其以参考在此提交的材料的方式并入本文中。从数学角度而言,可将pca应用到输入图像的大集合以导出图像特征距离度量的过程可表示如下:首先,计算输入数据的均值(m)和协方差矩阵(s):定位具有最大本征值的协方差矩阵(s)的本征向量e1、……、em。矩阵e=[e1,…,em]是使用包括它的列的最大本征向量构建的。每个较高阶数据点yμ的较低维表示可由下列等式确定:yμ=et×(xμ-m)在不同的实施中,软件应用将lda应用到完全特征上,以选择图像特征的子集并且导出对应的图像特征权重。在又一实施中,在218处,软件应用将最终特征和对应的图像特征权重存储到数据库104中。此外,在218处,软件应用通过将最终特征与鉴定输入图像中的面部的标识进行关联来对最终特征进行标识。在一个实施中,该关联由关系型数据库中的表中的记录表示。参考图3,示出由在服务器计算机102上运行的软件应用执行的模型训练过程300。在302处,软件应用检索含有已知人(诸如,客户120)的面部的不同图像的集合。例如,客户计算机122将图像集合上传到服务器102或云计算机154。作为附加实例,客户计算机122将指向托管在服务器112上的图像集合的url的集合上传到服务器102。服务器102随后从服务器112中检索图像的集合。针对检索到的图像中的每个,在304处,软件应用通过执行例如过程200的元素来提取最终特征。在306处,软件应用在最终特征的集合上执行一个或多个模型训练算法(诸如,svm),以导出用于面部识别的识别模型。识别模型更准确地表现面部。在308处,将识别模型存储在数据库104中。此外,在308处,软件应用将识别模型与标识(鉴定与识别模型相关联的面部的标识)之间的关联存储到数据库104中。换言之,在308处,软件应用对识别模型进行标识。在一个实施中,该关联由关系型数据库内的表中的记录表示。示例性模型训练算法是k-均值聚类、支持向量机(“svm”)、度量学习、深度学习以及其他算法。k-均值聚类将观察结果(即,本文中的模型)分成k(正整数)个群集,其中每个观察结果属于具有最近均值的群集。k-均值聚类的概念进一步由下列公式说明:观察结果的集合(x1、x2、……、xn)分成k个集合{s1、s2、……、sk}。k个集合经过确定以便将群集内平方和最小化。k-均值聚类方法通常在两个步骤:分配步骤和更新步骤之间以迭代方式执行。给定k个均值m1(1)、……、mk(1)的初始集,所述两个步骤如下所示:在这个步骤期间,每个xp恰好被分配到一个s(t)。下一步骤计算新均值,作为新群集中的观察结果的质心。在一个实施中,k均值聚类用来将面部分组并且移除错误的面部。例如,当客户120上传五十张(50)带有他面部的图像时,他可能错误地上传了例如三张(3)张带有另外某一人面部的图像。为了针对客户120的面部训练识别模型,在从上传的图像中训练识别模型时需要从五十张图像中移除三张错误的图像。作为附加实例,当客户120上传不同人的大量面部图像时,使用k均值聚类以基于这些图像中含有的面部将该大量图像分组。使用svm方法来训练或导出svm分类器。训练的svm分类器由svm决策函数、训练阈值以及其他训练参数鉴定。svm分类器与模型相关联并且对应于模型中的一个。svm分类器和对应的模型存储在数据库104中。机器学习算法诸如knn通常依赖距离度量来测量两个图像特征有多接近彼此。换言之,图像特征距离,诸如欧几里得距离,测量一个面部图像有多匹配另一预定面部图像。从距离度量学习过程中导出的学习度量可显著改善面部识别的性能和准确性。一个此类学习距离度量就是估计未知图像与已知图像的相似度的马氏距离。例如,马氏距离可用来测量输入面部图像有多匹配已知人的面部图像。给定一组值的均值的向量μ=(μ1,μ2,...,μn)t和协方差矩阵s,马氏距离由下列公式示出:各种马氏距离和距离度量学习方法在刘洋(liuyang)于2006年5月19日发表的“距离度量学习:综合调查(distancemetriclearning:acomprehensivesurvey)”中进一步描述,其以参考在此提交的材料的方式并入本文中。在一个实施中,使用如图14所示的深度学习过程1400来学习或导出马氏距离。转到图14,在1402处,由诸如服务器102等计算机执行的软件应用检索或接收两个图像特征x和y作为输入。例如,x和y是具有相同已知面部的两个不同图像的最终特征。在1404,基于多层深度信念网络,软件应用从输入特征x和y中导出新图像特征。在一个实施中,在1404处,深度信念网络的第一层使用特征x和y之间的差x–y。在第二层,使用特征x和y的积xy。在第三层,使用特征x和y的卷积。通过训练面部图像来训练多层深度信念网络的各层和神经元的权重。在深度学习过程结束时,导出核函数。换言之,核函数k(x,y)是深度学习过程的输出。上述马氏距离公式是核函数的一种形式。在1406处,使用模型训练算法,诸如svm方法,以在深度学习过程的输出k(x,y)上训练模型。随后将所训练的模型应用到两个输入图像特征x1和y1的深度学习处理的具体输出k(x1,y1),以确定所述两个输入图像特征是否得自相同面部,即,它们是否指明并表示相同面部。在图像的集合上执行模型训练过程,以导出用于某一面部的最终或识别模型。一旦模型可用,便将它用来识别图像内的面部。识别过程进一步参考图4说明,其中示出面部识别过程400。在402处,在服务器102上运行的软件应用检索图像,以用于面部识别。所述图像可接收自客户计算机122,或者是从服务器112和114中检索的。或者,所述图像是从数据库104中检索的。在又一实施中,在402处,检索一批图像以用于面部识别。在404处,软件应用从数据库104中检索模型的集合。所述模型是由例如模型训练过程300生成的。在406处,软件应用执行过程200,或者调用另一过程或软件应用来执行所述过程,以从所检索的图像中提取最终特征。在所检索的图像不含有面部的情况下,过程400在406处结束。在408处,软件应用将模型中的每个应用到最终特征,以生成比较分数的集合。换言之,模型在最终特征上操作,以生成或计算比较分数。在410处,软件应用从比较分数的集合中选择最高分数。对应于输出最高分数的模型的面部随后被识别为输入图像中的面部。换言之,在402处检索的输入图像中的面部被识别为由与最高分数对应或相关联的模型鉴定的面部。每个模型与自然人的面部相关联或用其进行标识。当输入图像中的面部被识别时,输入图像随后用鉴定所识别的面部的标识进行标识并且与其相关联。因此,对面部或含有面部的图像进行标识会将图像与具有最高分数的模型相关联的标识进行关联。该关联和具有所识别的面部的人的个人信息存储在数据库104中。在412处,软件应用使用与具有最高分数的模型相关联的标识对面部和所检索的图像进行标识。在一个实施中,每个标识和关联是关系型数据库内的表中的记录。回到410,所选择的最高分数可以是极低的分数。例如,在面部不同于与检索的模型相关联的面部的情况下,最高分数可能是较低分数。在这种情况下,在又一实施中,将最高分数与预定阈值进行比较。如果最高分数低于阈值,那么在414处,软件应用表明没有识别出所检索的图像中的面部。在又一实施中,在416处,软件应用检查用于面部识别的检索图像是否被正确识别并标识。例如,关于面部是否被正确识别,软件应用检索客户120的用户确认。如果正确识别,那么在418处,软件应用将最终特征和标识(是指面部和图像与潜在人之间的关联)存储到数据库104中。否则,在420处,软件应用从例如客户120检索将面部与潜在人进行关联的新标识。在418处,软件应用将最终特征、识别模型和新标识存储到数据库104中。存储的最终特征和标识随后由模型训练过程300用来改善和更新模型。参考图10示出说明性改进与校正过程1000。在1002处,软件应用检索具有已知人(诸如,客户120)的面部的输入图像。在1004处,软件应用在输入图像上执行面部识别,诸如,过程400。在1006处,软件应用确定是否正确识别面部,诸如,通过寻求客户120的确认。如果没有,那么在1008处,软件应用对输入图像进行标识并且将输入图像与客户120进行关联。在1010处,软件应用在输入图像上执行模型训练过程300,并且将导出的识别模型和标识存储到数据库104中。在又一实施中,软件应用在输入图像以及具有客户120的面部的其他已知图像上执行训练过程300。在正确识别面部的情况下,在1012处,软件应用也可对输入图像进行标识,并且任选地执行训练过程300,以增强用于客户120的识别模型。回到图4,面部识别过程400基于由过程300训练并生成的图像特征模型。模型训练过程300一般需要大量的计算资源,诸如,cpu周期和存储器。因此,过程300是相对耗时且资源昂贵的过程。在某些情况下,诸如实时面部识别,需要快速面部识别过程。在一个实施中,将分别在214和216处提取的最终特征和/或完全特征存储在数据库104中。参考图5示出使用最终特征或完全特征识别图像内的面部的过程500。在一个实施中,过程500由服务器102上运行的软件应用执行,并且利用公知的knn算法。在502处,软件应用从例如数据库104、客户计算机122或服务器112中检索具有面部的图像,以用于面部识别。在又一实施中,在502处,软件应用检索用于面部识别的一批图像。在504处,软件应用从数据库104中检索最终特征。或者,检索完全特征并且将其用于面部识别。最终特征中的每个对应于或鉴定已知的面部或人。换言之,对最终特征的每个进行标识。在一个实施方案中,只将最终特征用于面部识别。或者,只使用完全特征。在506,软件应用设置knn算法的整数k的值。在一个实施中,k的值是一(1)。在这种情况下,选择最近邻。换言之,将数据库104中的已知面部的最接近匹配选作在502处检索的图像中的识别面部。在508处,软件应用从图像中提取最终特征。在将完全特征用于面部识别的情况下,在510处,软件应用从图像中导出完全特征。在512处,软件应用执行knn算法,以选择所检索图像中的面部的k最近邻匹配面部。例如,基于所检索图像的最终特征与在504处检索的最终特征之间的图像特征距离来选择最近邻匹配。在一个实施中,图像特征距离从最小排名到最大;并且k个面部对应于前k个最小图像特征距离。例如,可被指定为排名分数。因此,分数越高表示匹配越接近。图像特征距离可以是欧几里得距离或马氏距离。在514处,软件应用对图像内的面部进行标识并且将面部与最近邻匹配面部进行关联。在516处,软件应用将由标识和关联表示的匹配存储到数据库104中。在本教示的替代实施方案中,在客户-服务器或云计算框架中执行面部过程400和500。现在参考图6和图7,分别以600和700示出两个基于客户-服务器面部识别过程。在602处,在客户计算机122上运行的客户软件应用从输入图像中提取完全特征的集合,以用于面部识别。输入图像从客户计算机122的存储设备上传到存储器。在又一实施中,在602处,客户软件应用从完全特征的集合中提取最终特征的集合。在604处,客户软件应用将图像特征上传到服务器102。在606处,在计算机102上运行的服务器软件应用接收来自客户计算机122的图像特征的集合。在608处,服务器软件应用执行过程400和/或500的元素,以识别输入图像内的面部。例如,在608处,服务器软件应用执行过程500的元素504、506、512、514、516,以识别面部。在512处,服务器软件应用将识别结果发送到客户计算机122。例如,结果可表明输入图像中没有人面部、在图像内没有识别出面部或者面部被识别为具体人的面部。在如参考图7所示的方法700说明的不同实施中,客户计算机122执行多数的处理,以便识别一个或多个输入图像内的面部。在702处,在客户计算机122上运行的客户软件应用将针对已知面部的最终特征或模型的请求发送到服务器计算机102。或者,客户软件应用请求不止一个数据类别。例如,客户软件应用请求已知面部的最终特征和模型。此外,客户软件应用可只请求某些人的此类数据。在704处,服务器软件应用接收请求,并且从数据库104中检索所请求的数据。在706处,服务器软件应用将所请求的数据发送到客户计算机122。在708处,客户软件应用从输入图像中提取例如最终特征,以用于面部识别。输入图像从客户计算机122的存储设备上传到存储器。在710处,客户软件应用执行过程400和/或500的元素,以识别输入图像内的面部。例如,在710处,客户软件应用执行过程500的元素504、506、512、514、516,以识别输入图像中的面部。面部识别过程400或500也可在云计算环境152中执行。图8中示出一个此类说明性实施。在802处,在面部识别服务器计算机102上运行的服务器软件应用将输入图像或输入图像的url发送到在云计算机154、156或158上运行的云软件应用。在804处,云软件应用执行过程400或500的一些或全部元素,以识别输入图像内的面部。在806处,云软件应用将识别结果返回到服务器软件应用。例如,结果可表明输入图像中没有人面部、在图像内没有识别出面部或者面部被识别为具体人的面部。或者,客户计算机122与云计算机154(诸如,云计算机154)通信并协作,以执行元素702、704、706、708、710,以用于识别图像或视频剪辑内的面部。在又一实施中,部署负载平衡机构并且将它用来在服务器计算机与云计算机之间分发面部识别请求。例如,实用工具监控每个服务器计算机和云计算机上的处理负担,并且选择处理负担较小的服务器计算机或云计算机来服务新的面部识别请求或任务。在又一实施中,模型训练过程300也在客户-服务器或云架构中执行。现在参考图9,示出面部识别计算机102识别由社交媒体联网服务器或文件存储服务器(诸如,服务器112或114)托管并提供的相片图像或视频剪辑中的面部的过程900的时序图。在902处,在客户计算机122上运行的客户软件应用发出针对托管在诸如facebook等社交媒体网站或诸如dropbox等文件存储托管站点上他的相片或视频剪辑进行面部识别的请求。在一个实施中,客户软件应用进一步将他的账户访问信息(诸如,登录凭证)提供到社交媒体网站或文件存储托管站点。在904处,在服务器计算机102上运行的服务器软件应用从服务器112中检索相片或视频剪辑。例如,服务器软件应用在服务器112上爬取与客户122相关联的网页,以检索相片。作为又一实例,服务器软件应用经由http(超文本传输协议)请求来请求相片或视频剪辑。在906处,服务器112将相片或视频剪辑返回到服务器102。在908处,服务器软件应用在检索的相片或视频剪辑上执行面部识别,诸如,通过执行过程300、400或500。例如,在执行过程300时,导出描述客户120的面部的模型或图像特征并且将其存储在数据库104中。在910处,服务器软件应用将识别结果或通知返回到客户软件应用。现在参考图11,示出从视频剪辑中导出面部识别模型的过程1100a。在1102处,在服务器102上运行的软件应用检索含有静止视频帧或图像的流或序列的视频剪辑,以用于面部识别。在1102处,应用进一步从视频剪辑中选择代表帧的集合或所有帧,以导出模型。在1104处,软件应用执行过程,诸如过程200,以检测面部并且从第一帧中导出面部的最终特征,例如,诸如所选择的帧集合的第一或第二帧。此外,在1104处,服务器应用鉴定含有所检测的面部的第一帧内的面部区域或窗口。例如,面部窗口是矩形或正方形形状。在1106处,针对所选择的帧的集合中的每个其他帧,服务器应用从对应于1104处所鉴定的面部窗口的图像区域中提取或导出最终特征。例如,在1104处所鉴定的面部窗口由像素坐标对(101,242)和(300,435)表示的情况下,在1106处,其他帧中的对应面部窗口中的每个由像素坐标对(101,242)和(300,435)限定。在又一实施中,面部窗口比1104处所鉴定的面部窗口大或小。例如,在1104处所鉴定的面部窗口由像素坐标对(101,242)和(300,435)表示的情况下,其他帧中的对应面部窗口中的每个由像素坐标对(91,232)和(310,445)限定。后两个像素坐标对限定比1104的面部区域更大的图像区域。在1108处,服务器应用在最终特征上执行模型训练,以导出所鉴定的面部的识别模型。在1110处,服务器应用将模型和表示具有所识别的面部的人的标识存储到数据库104中。参考图11示出识别视频剪辑中的面部的过程1100b。在1152处,在服务器102上运行的软件应用从例如数据库104中检索面部识别模型的集合。在一个实施中,应用还检索与所检索的模型相关联的标识。在1154处,应用检索含有静止视频帧或图像的流或序列的视频剪辑,以用于面部识别。在1156处,应用从视频剪辑中选择代表帧的集合。在1158处,使用所检索的模型,应用对所选择的帧中的每个执行面部识别过程,以识别面部。所识别的面部中的每个都对应于模型。另外,在1158处,针对所识别的面部中的每个,应用将面部与对应于所识别的面部的模型的相关联标识进行关联。在1160处,应用通过与所选择的帧相关联的标识之间具有最高频率的标识来标识视频剪辑中的面部。转到图16,示出用于理解场景图像的图像处理系统1600。在一个实施中,系统1600能够执行系统100的功能,且反之亦然。系统1600包括耦接到数据库1604的图像处理计算机1602,所述数据库存储图像(或对图像文件的引用)和图像特征。在一个实施中,数据库1604存储例如大量的图像以及从图像中导出的图像特征。此外,图像根据场景类型进行分类,诸如,海滩度假村或小河。计算机1602进一步耦接到广域网,诸如,互联网1610。通过互联网1610,计算机1602接收来自各个计算机的场景图像,诸如,由客户1620使用的客户(消费者或用户)计算机1622(可以是图15中示出的设备中的一个)。或者,计算机1602通过直接链路来检索场景图像,诸如,高速usb链路。计算机1602分析并理解所接收的场景图像,以确定图像的场景类型。此外,图像处理计算机1602可接收来自网络服务器1606和1608的图像。例如,计算机1622将场景图像(诸如,托管在网络服务器1606上的产品的广告图片)的url发送到计算机1602。作为响应,计算机1602从网络服务器1606中检索由url指向的图像。作为附加实例,计算机1602请求来自托管在网络服务器1608上的旅游网站的海滩度假村场景图像。在本教示的一个实施方案中,客户1620在他的计算机1622上载入社交联网网页。社交联网网页包括托管在社交媒体联网服务器1612上的相片的集合。当客户1620请求识别该相片集合内的场景时,计算机1602从社交媒体联网服务器1612中检索相片的集合,并且对相片执行场景理解。作为附加实例,当客户1620在他的计算机1622上观看托管在网络视频服务器1614上的视频剪辑时,她请求计算机1602识别视频剪辑中的场景类型。因此,计算机1602从网络视频服务器1614中检索视频帧的集合,并且对视频帧执行场景理解。在一个实施中,为了理解场景图像,图像处理计算机1602执行所有场景识别步骤。在不同的实施中,使用客户-服务器方法执行场景识别。例如,当计算机1622请求计算机1602理解场景图像时,计算机1622从场景图像中生成某些图像特征并且将生成的图像特征上传到计算机1602。在这种情况下,计算机1602在没有接收场景图像或生成上传的图像特征的情况下执行场景理解。或者,计算机1622从数据库1604中下载预定的图像特征和/或其他图像特征信息(直接下载或通过计算机1602间接下载)。因此,为了识别场景图像,计算机1622独立地执行图像识别。在这种情况下,计算机1622避免将图像或图像特征上传到计算机1602上。在又一实施中,在云计算环境1632下执行场景图像识别。云1632可包括分布在不止一个地理区域(诸如,美国的东海岸和西海岸各州)上的大量且不同类型的计算设备。例如,云1632中的服务器1634、工作站计算机1636和台式计算机1638的物理位置在不同的州或国家,并且与计算机1602协作以识别场景图像。图17描绘图像处理计算机1602分析并理解图像的过程1700。在1702处,在计算机1602上运行的软件应用通过网络(诸如,互联网1610)接收来自客户计算机1622的源场景图像,以用于场景识别。或者,软件应用接收来自不同联网设备(诸如,网络服务器1606或1608)的源场景图像。场景图像时常包括不同对象的多个图像。例如,日落图像可包括天空中发着光的太阳的图像和风景的图像。在这种情况下,可能需要分别对太阳和风景执行场景理解。因此,在1704处,软件应用确定是否将源图像分割成多个图像以用于场景识别。如果分割,那么在1706处,软件应用将源场景图像分割成多个图像。各种图像分割算法(诸如,归一化切割或者所属领域的一般技术人员已知的其他算法)可用来分割源场景图像。一种此类算法在麻省理工学院人工智能实验室(theartificialintelligencelaboratory,massachusettsinstituteoftechnology)的克里斯·斯托弗(chrisstauffer)、w.e.l.grimson格雷森姆(w.e.lgrimson)发表的“自适应背景混合模型的实时跟踪(adaptivebackgroundmixturemodelsforreal-timetracking)”中有所描述,其以参考在此提交的材料的方式并入本文中。归一化切割算法也在史健波(jianboshi)和杰腾德拉·马利克(jitendramalik)于2000年8月的《ieee模式分析与机器智能汇刊》第8期第22卷上发表的“归一化切割和图像分割(normalizedcutsandimagesegmentation)”中有所描述,其以参考在此提交的材料的方式并入本文中。例如,在源场景图像是海滩度假村图片的情况下,软件应用可应用背景减除算法,以将图片分成三个图像:天空图像、大海图像和海滩图像。各种背景减除算法在仲景(jingzhong)和斯坦·斯克拉罗夫(stansclaroff)在第九届ieee国际计算机视觉会议(iccv2003)会议记录第2卷集0-7695-1950-4/03上发表的“采用鲁棒卡尔曼滤波器对动态纹理背景的前景对象进行分割(segmentingforegroundobjectsfromadynamictexturedbackgroundviaarobustkalmanfilter)”;提莫·卡迪尔(timorkadir)、麦克尔·布莱迪(michaelbrady)在2001年的国际计算机视觉杂志45(2)第83到105页上发表的“显著性、尺度和图像描述(saliency,scaleandimagedescription)”;以及卡斯滕·罗瑟(carstenrother)、弗拉基米尔·柯尔莫戈洛夫(vladimirkolmogorov)、安德鲁·布雷克(andrewblake)在2004年的acm图形学汇刊(tog)上发表的“grabcut-使用迭代图割的交互式前景提取(grabcut-interactiveforegroundextractionusingiteratedgraphcuts)”中有所描述,其以参考在此提交的材料的方式并入本文中。随后,软件应用分析三个图像中的每个,以用于场景理解。在又一实施中,图像片段中的每个通过空间参数化过程而分成多个图像块。例如,多个图像块包括四(4)个、十六(16)个或二百五十六(256)个图像块。随后在分量图像块中的每个上执行场景理解方法。在1708处,软件应用选择多个图像中的一个作为输入图像,以用于场景理解。回到1704,如果软件应用确定将源场景图像作为单个图像进行分析和处理,那么在1710处,软件应用选择源场景图像作为输入图像以用于场景理解。在1712处,软件应用从数据库1604中检索距离度量。在一个实施方案中,距离度量表示图像特征的集合(或向量),并且包括对应于图像特征的集合的图像特征权重的集合。在一个实施中,从图像中提取大量(诸如,数千或更多)的图像特征。例如,从图像中提取基于1×1像素单元和/或4×4像素单元的lbp特征,以用于场景理解。作为附加实例,静态图像的估计深度限定图像中的对象的表面与捕获到图像的传感器之间的物理距离。三角测量是用来提取估计深度特征的公知技术。单个类型的图像特征时常不足以从图像中获取相关信息或者识别图像。事实上,从图像中提取两个或更多不同的图像特征。两个或更多不同的图像特征一般组织成一个单图像特征向量。所有可能的特征向量的集合构成特征空间。距离度量是从已知图像的集合中提取的。所述图像的集合用来找出输入图像的场景类型和/或匹配图像。所述图像的集合可存储在一个或多个数据库(诸如,数据库1604)中。在不同的实施中,所述图像的集合存储在云计算环境(诸如,云1632)中并且可访问。此外,所述图像的集合可包括大量的图像,诸如,例如两百万个图像。此外,所述图像的集合根据场景类型进行分类。在一个示例实施中,两百万个图像的集合分成数十个类别或类型,诸如,例如海滩、沙漠、花、食物、森林、室内、山、夜生活、海洋、公园、餐馆、河流、攀岩、雪景、郊区、日落、市区以及水。此外,场景图像可通过不止一个场景类型进行标识并且与之相关联。例如,海洋海滩场景图像具有海滩类型和海滨类型。图像的多个场景类型根据例如人类观察者提供的置信水平进行排序。距离度量的提取进一步参考如图19所示的训练过程1900示出。现在参考图19,在1902处,软件应用从数据库1604中检索图像集合。在一个实施中,图像集合根据场景类型进行分类。在1904处,软件应用从图像集合的每个图像中提取原始图像特征集合(诸如,颜色直方图和lbp图像特征)。每个原始图像特征集合含有相同数量的图像特征。另外,每个原始图像特征集合中的图像特征具有相同类型的图像特征。例如,原始图像特征集合中的各自第一图像特征具有相同类型的图像特征。作为附加实例,原始图像特征集合中的各自最后图像特征具有相同类型的图像特征。因此,原始图像特征集合在本文中被称为图像特征的对应集合。每个原始图像特征集合一般包括大量的特征。另外,多数的原始图像特征会引发昂贵的计算和/或在场景理解中无关紧要。因此,在1906处,软件应用执行降维过程以选择图像特征的子集,以用于场景识别。在一个实施中,在1906处,软件应用将pca算法应用到原始图像特征集合,以选择图像特征的对应子集并且针对图像特征子集中的每个图像特征导出图像特征权重。图像特征权重包括图像特征权重度量。在不同的实施中,软件应用将lda应用到原始图像特征的集合上,以选择图像特征的子集并且导出对应的图像特征权重。从所选择的图像特征的子集中导出的图像特征权重度量在本文中被称为模型。多个模型可从原始图像特征集合中导出。不同的模型通常由不同的图像特征子集和/或图像特征训练。因此,一些模型可比其他模型更准确地表示原始图像的集合。因此,在1908处,将交叉验证过程应用于图像集合以从多个模型中选择一个模型,以用于场景识别。交叉验证是用于评估不同模型的场景理解的结果的技术。交叉验证过程涉及将图像集合分成互补子集。场景理解模型从一个图像子集中导出,而图像的子集用于验证。例如,当在图像的集合上执行交叉验证过程时,第一模型下的场景识别准确性是百分之九十(90%),而第二模型下的场景识别准确性是百分之八十(80%)。在这种情况下,第一模型比第二模型更准确地表示原始图像集合,且因此优于第二模型被选择。在一个实施方案中,在1908处应用留一交叉验证算法。在1910处,软件应用将包括图像特征度量和图像特征子集的所选择模型存储到数据库1604中。在不同的实施中,训练过程1900中只导出一个模型。在这种情况下,训练过程1900中不执行步骤1908。回到图17,在1714处,软件应用从输入图像中提取与由距离度量表示的图像特征集合对应的输入图像特征的集合。如本文所使用,输入图像特征的集合被说成对应于距离度量。在1716处,软件应用针对根据图像场景类型分类的图像集合中的每个图像来检索(使用过程1900生成的)图像特征的集合。所检索的图像特征集合中的每个对应于由距离度量表示的图像特征的集合。在一个实施中,用于图像集合的所检索图像特征集合存储在数据库1604或云1632中。在1718处,使用距离度量,软件应用计算输入图像特征集合与图像集合的图像特征集合中的每个之间的图像特征距离。在一个实施中,两个图像特征集合之间的图像特征距离是两个图像特征向量之间的欧几里得距离,其中应用距离度量中包括的权重。在1720处,基于计算的图像特征距离,软件应用确定输入图像的场景类型,并且将场景类型到输入图像的分配写入到数据库1604中。此类确定过程参考图18a和图18b进一步示出。转到图18a,示出选择用于准确图像识别的图像子集的过程1800a。在一个实施中,软件应用利用knn算法来选择图像的子集。在1802处,软件应用设置整数k的值(诸如,五或十)。在1804处,软件应用选择1716处计算的k个最小图像特征距离,以及对应的k个图像。换言之,所选择的k个图像是前k个匹配,并且就计算的图像特征距离而言,最接近输入图像。在1806处,软件应用确定k个图像的场景类型(诸如,海滩度假村或山)。在1808处,软件应用检查k个图像是否具有相同场景图像类型。如果是的话,那么在1810处,软件应用将k个图像的场景类型分配到输入图像。否则,在1812处,软件应用应用例如自然语言处理技术以合并k个图像的场景类型,以生成更抽象的场景类型。例如,k个图像的一半具有海洋海滩类型而另一半具有湖滨类型,在1812处,软件应用生成海滨类型。自然语言处理在罗素(russell)于1995年在普林提斯·霍尔出版社(prenticehall)出版的“人工智能:一种现代方法(artificialintelligence,amodernapproach)”第23章691到719页中有所描述,其以参考在此提交的材料的方式并入本文中。在1814处,软件应用检查是否成功生成更抽象的场景类型。如果是的话,那么在1816处,软件应用将更抽象的场景类型分配到输入图像。在又一实施中,软件应用使用所生成的场景类型对k个图像中的每个进行标识。回到1814,在没有成功生成更抽象的场景类型的情况下,在1818处,软件应用针对每个确定的场景类型来计算k个图像中的图像的数量。在1820处,软件应用鉴定最大计算数量的图像所属的场景类型。在1822处,软件应用将鉴定的场景类型分配到输入图像。例如,在k是整数十(10),k个图像中的八个(8)具有场景类型森林并且k个图像中的另外两个(2)具有场景类型公园的情况下,最大计算数量的图像的场景类型是场景类型森林并且最大计算数量是八。在这种情况下,软件应用将场景类型森林分配到输入图像。在又一实施中,软件应用将置信水平分配到场景分配。例如,在上述实例中,使用场景类型森林正确标识输入图像的置信水平是百分之八十(80%)。或者,在1720处,软件应用通过执行如参考图18b所示的判别分类方法1800b来确定输入图像的场景类型。现在参考图18b,在1832处,针对存储在数据库1604中的每个场景类型,软件应用从多个图像中提取图像特征。例如,在1832处,处理海滩类型的一万个图像。每个此类图像的提取图像特征对应于由距离度量表示的图像特征集合。在1834处,软件应用在场景类型的提取图像特征和距离度量上执行机器学习以导出分类模型,诸如,公知的支持向量机(svm)。在不同的实施中,在图像训练过程期间由不同的软件应用执行1832和1834。在不同的实施中,在1720处,软件应用通过执行方法1800a和方法1800b的元素来确定输入图像的场景类型。例如,软件应用使用方法1800a来选择前k个匹配图像。之后,软件应用在匹配的前k个图像上执行方法1800b的一些元素,诸如,元素1836、1838、1840。在1836处,将导出的分类模型应用到输入图像特征,以生成匹配分数。在一个实施中,每个分数是输入图像与分类模型的潜在场景类型之间的匹配概率。在1838处,软件应用选择具有最高匹配分数的一些(诸如,八个或十二个)场景类型。在1840处,软件应用修剪所选择的场景类型,以确定输入图像的一个或多个场景类型。在一个实施方案中,软件应用执行自然语言处理技术,以鉴定输入图像的场景类型。在又一实施中,在将源场景图像分割成多个图像并且在多个图像中的每个上执行场景理解的情况下,软件应用分析多个图像中的每个的分配场景类型并且将场景类型分配到源场景图像。例如,在源场景图像分割成两个图像并且两个图像分别被识别为海洋图像和海滩图像的情况下,软件应用将源场景图像标识为海洋_海滩类型。在本教示的替代实施方案中,使用客户-服务器或云计算框架执行场景理解过程1700。现在参考图20和图21,分别以2000和2100示出两个基于客户-服务器的场景识别过程。在2002处,在计算机1622上运行的客户软件应用从输入图像中提取与在1714处提取的输入图像特征集合对应的图像特征集合。在2004处,客户软件应用将图像特征集合上传到在计算机1602上运行的服务器软件应用。在2006处,服务器软件应用通过执行例如过程1700的1712、1716、1718、1720来确定输入图像的一个或多个场景类型。在2008处,服务器软件应用将一个或多个场景类型发送到客户软件应用。在如参考图21所示的方法2100说明的不同实施中,客户计算机1622执行多数的处理,以便识别场景图像。在2102处,在客户计算机1622上运行的客户软件应用将针对存储在数据库1604中的已知图像的距离度量和图像特征集合的请求发送到图像处理计算机1602。图像特征集合中的每个对应于在1714处提取的输入图像特征集合。在2104处,在计算机1602上运行的服务器软件应用从数据库1604中检索距离度量和图像特征集合。在2106处,服务器软件应用将距离度量和图像特征集合返回到客户软件应用。在2108处,客户软件应用从输入图像中提取输入图像特征集合。在2110处,客户软件应用通过执行例如过程1700的1718、1720来确定输入图像的一个或多个场景类型。场景图像理解过程1700也可在云计算环境1632中执行。图22中示出一个说明性实施。在2202处,在图像处理计算机1602上运行的服务器软件应用将输入图像或输入图像的url发送到在云计算机1634上运行的云软件应用。在2204处,云软件应用执行过程1700的元素,以识别输入图像。在2206处,云软件应用将输入图像的确定场景类型返回到服务器软件应用。现在参考图23,示出计算机1602识别由社交媒体联网服务器1612提供的网页中所含有的相片图像中的场景的过程2300的时序图。在2302处,客户计算机1622发出针对来自社交媒体联网服务器1612的具有一张或多张相片的网页的请求。在2304处,服务器1612将所请求的网页发送到客户计算机1622。例如,当客户1620使用计算机1622访问facebook页面(诸如,主页)时,计算机1622将页面请求发送到facebook服务器。或者,在客户1620的成功验证和授权后,facebook服务器发回客户的主页。当客户1620请求计算机1602识别网页中所含有的相片中的场景时,客户1620例如点击网页上的url或互联网浏览器插件按钮。响应于用户请求,在2306处,客户计算机1622请求计算机1602识别相片中的场景。在一个实施中,请求2306包括相片的url。在不同的实施中,请求2306包括相片中的一个或多个。在2308处,计算机1602从服务器1612请求相片。在2310处,服务器1612返回所请求的相片。在2312处,计算机1602执行方法1700,以识别相片中的场景。在2314处,计算机1602将每张相片的匹配图像的识别场景类型和/或鉴定发送到客户计算机1622。参考图24,示出图示计算机1602识别网络视频剪辑中的一个或多个场景的过程2400的时序图。在2402处,计算机1622发送针对网络视频剪辑的请求(诸如,张贴在youtube.com服务器上的视频剪辑)。在2404处,网络视频服务器1614将视频剪辑的视频帧或视频剪辑的url返回到计算机1622。在url返回到计算机1622的情况下,计算机1622随后从网络视频服务器1614或该url指向的不同网络视频服务器请求视频剪辑的视频帧。在2406处,计算机1622请求计算机1602识别网络视频剪辑中的一个或多个场景。在一个实施中,请求2406包括url。在2408处,计算机1602从网络视频服务器1614请求一个或多个视频帧。在2410中,网络视频服务器1614将视频帧返回到计算机1602。在2412处,计算机1602在视频帧中的一个或多个上执行方法1700。在一个实施中,计算机1602将每个视频帧当作静态图像处理并且在多个视频帧(诸如,六个视频帧)上执行场景识别。在计算机1602识别已处理视频帧的一定百分比(诸如,百分之五十)中的场景类型的情况下,识别的场景类型被认为是视频帧的场景类型。此外,识别的场景类型与视频帧的索引范围相关联。在2414处,计算机1602将识别的场景类型发送到客户计算机1622。在又一实施中,数据库1604包括没有使用场景类型进行标识或分类的图像集合。此类未分类的图像可用来改善和提高场景理解。图25示出软件应用或不同应用程序在一个示例实施中使用pca算法改善在1712处检索的距离度量的迭代过程2500。在2502处,软件应用从例如数据库1604中检索未标识或未分配的图像,作为输入图像。在2504处,软件应用从输入图像中提取与在1712处检索的距离度量对应的图像特征集合。在2506处,软件应用使用距离度量和在2504处提取的图像特征集合来重建输入图像的图像特征。此类表示可表达如下:xμ≈m+eyμ在2508处,软件应用计算输入图像与在2506处构建的表示之间的重建误差。重建误差可表达如下:其中λm+1到λn表示在执行图4的过程1900以导出距离度量时丢弃的本征值。在2510处,软件应用检查重建误差是否低于预定阈值。如果是的话,那么在2512处,软件应用在输入图像上执行场景理解,并且在2514处,将识别的场景类型分配到输入图像。在又一实施中,在2516处,软件应用再次执行训练过程1900,其中输入图像作为标识图像。因此,生成改进的距离度量。回到2510,在重建误差不在预定阈值内的情况下,在2518处,软件应用检索输入图像的场景类型。例如,软件应用接收来自输入设备或数据源的输入图像的场景类型的指示。随后,在2514处,软件应用使用检索的场景类型对输入图像进行标识。参考图26示出替代的迭代场景理解过程2600。过程2600可由软件应用在一个或多个图像上执行,以优化场景理解。在2602处,软件应用检索具有已知场景类型的输入图像。在一个实施中,输入图像的已知场景类型由人类操作者提供。例如,人类操作者使用诸如键盘和显示屏等输入设备来输入或设置输入图像的已知场景类型。或者,从诸如数据库等数据源检索输入图像的已知场景类型。在2604处,软件应用对输入图像执行场景理解。在2606处,软件应用检查已知场景类型是否与识别的场景类型相同。如果是的话,那么软件应用过渡到2602,以检索下一输入图像。否则,在2608处,软件应用使用已知场景类型对输入图像进行标识。在2610处,软件应用使用以场景类型标识的输入图像再次执行训练过程1900。数字相片通常包括元数据(是指关于相片的数据)的集合。例如,数字相片包括以下元数据:标题;主题;作者;获取日期;版权;创建时间-拍摄相片的时间和日期;焦距(诸如,4mm);35mm焦距(诸如,33);相片的尺寸;水平分辨率;垂直分辨率;位深度(诸如,24);颜色表示(诸如,rgb);相机型号(诸如,iphone5);f-制光圈(f-stop);曝光时间;iso感光度;亮度;大小(诸如,2.08mb);gps(全球定位系统)纬度(诸如,42;8;3.00000000000426);gps经度(诸如,87;54;8.999999999912);以及gps海拔(诸如,198.36673773987206)。数字相片还可包括内嵌在相片中的一个或多个标签,作为元数据。标签描述并表明相片的特性。例如,“家庭”标签表明相片是家庭相片,“婚礼”标签表明相片是婚礼相片,“子集”标签表明相片是日落场景相片,“圣塔莫尼卡海滩”标签表明相片是在圣塔莫尼卡海滩拍摄的,等等。gps维度、经度和海拔也被称为地理标签(geotag),该地理标签确定相机的地理位置(或简称为地理位置(geolocation))并且通常是在拍摄相片时相片内的对象的地理位置。具有地理标签的相片或视频被说成加上地理标签。在不同的实施中,地理标签是内嵌在相片中的标签中的一个。图27以2700示出在服务器102、106、1602或1604上运行的服务器软件应用自动生成相片的相册(在本文中也称为智能相册)的过程。应注意,过程2700也可由云计算机执行,诸如,云计算机1634、1636、1638。当用户120上传相片的集合时,在2702处,服务器软件应用接收来自计算机122(诸如,iphone5)的一张或多张相片。上传可由用户120使用服务器102提供的网页界面或者计算机122上运行的移动软件应用来启动。或者,使用网页界面或移动软件应用,用户120提供指向托管在服务器112上的他的相片的url。在2702处,服务器软件应用随后从服务器112中检索相片。在2704处,服务器软件应用从每个接收或检索的相片中提取或检索元数据和标签。例如,使用计算机编程语言c#编写的软件程序代码片段可用来读取相片中的元数据和标签。任选地,在2706处,服务器软件应用将检索的相片的标签标准化。例如,将“黄昏”和“暮色”标签都改成“日落”。在2708处,服务器软件应用生成用于每张相片的附加标签。例如,位置标签是根据相片中的地理标签生成的。位置标签生成过程进一步参考图28以2800示出。在2802处,服务器软件应用将地理标签内的gps坐标发送到地图服务服务器(诸如,谷歌地图服务),从而请求对应于gps坐标的位置。例如,位置是“圣塔莫尼卡海滩”或“奥黑尔机场”。在2804处,服务器软件应用接收地图位置的名称。位置的名称随后被视作相片的位置标签。作为附加实例,在2708处,服务器软件应用基于在每张相片上执行的场景理解和/或面部识别的结果来生成标签。标签生成过程进一步参考图29以2900示出。在2902处,服务器软件应用在2702处所检索的每张相片上执行场景理解。例如,服务器软件应用执行过程1700、1800a和1800b的步骤,以确定每张相片的场景类型(诸如,海滩、日落等)。场景类型随后用作基础相片的附加标签(即,场景标签)。在又一实施中,相片创建时间用来帮助场景理解。例如,当确定相片的场景类型是海滩并且创建时间是下午5:00时,海滩和日落海滩都可以是相片的场景类型。作为附加实例,相同位置或结构的黄昏场景相片和日落场景相片可看起来非常接近。在这种情况下,相片创建时间帮助确定场景类型,即,黄昏场景或日落场景。为了进一步使用相片创建时间来帮助场景类型确定,在确定场景类型时考虑相片的创建时间的日期和地理位置。例如,在一年的不同季节,太阳在不同的时间从天空中消失不见。另外,针对不同位置,日落时间不同。地理位置可进一步以其他方式帮助场景理解。例如,大湖的相片和海的相片可看起来非常类似。在这种情况下,相片的地理位置用来将湖的相片与海洋的相片区分开。在又一实施中,在2904处,服务器软件应用执行面部识别,以识别面部并且确定每张相片内的个人的面部表情。在一个实施中,将不同的面部图像(诸如,微笑、生气等)视作不同类型的场景。服务器软件应用在每张相片上执行场景理解,以识别每张相片内的情绪。例如,服务器软件应用在具体面部表情或情绪的训练图像的集合上执行方法1900,以导出这种情绪的模型。针对每种类型的情绪,导出多个模型。随后通过执行方法1700,对照测试图像来应用多个模型。随后选择具有最大匹配或识别结果的模型并且将其与具体情绪进行关联。针对每个情绪执行此类过程。在2904处,服务器软件应用进一步将情绪标签添加到每张相片。例如,当对于相片而言,面部表情是微笑时,服务器软件应用将“微笑”标签添加到相片。“微笑”标签是面部表情或情绪类型标签。回到图27,作为又一实例,在2708处,服务器软件应用生成时间标签。例如,当相片的创建时间是7月4日或12月25日时,便生成“7月4日”标签或“圣诞节”标签。在一个实施中,所生成的标签没有写入到相片的文件中。或者,用附加标签修改相片文件。在又一实施中,在2710处,服务器软件应用检索由用户120输入的标签。例如,服务器软件应用提供允许用户120通过输入新标签来对相片加标签的网页界面。在2712处,服务器软件应用将每张相片的元数据和标签保存到数据库104中。应注意,服务器软件应用可不将每张相片的每个元数据片段写入到数据库104中。换言之,服务器软件应用可选择性地将相片元数据写入到数据库104中。在一个实施中,在2712处,服务器软件应用将对每张相片的引用保存到数据库104中,而相片是存储在与数据库104不同的存储设备中的物理文件。在这种情况下,数据库104维护每张相片的唯一标识符。唯一标识符用来定位数据库104内的对应相片的元数据和标签。在2714处,服务器软件应用基于标签和/或元数据来为每张相片编索引。在一个实施中,服务器软件应用使用由数据库104上运行的数据库管理软件提供的软件实用工具来为每张相片编索引。在2716处,服务器软件应用基于相片的地理标签将在2702处检索的相片显示在地图上。或者,在2716处,服务器软件应用基于相片的地理标签将在2702处检索的相片的子集显示在地图上。图30中以3002和3004示出所显示的相片的两个截图。用户120可使用地图上的放大和缩小控件,以显示某一地理区域内的相片。在相片已经上传并编索引之后,服务器软件应用允许用户120搜索他的相片,包括在2702处上传的相片。随后可从搜索结果(即,相片的列表)中生成相册。相册生成过程进一步参考图31以3100示出。在3102处,服务器软件应用检索搜索参数的集合,诸如,场景类型、面部表情、创建时间、不同标签等。参数是通过例如服务器软件应用或移动软件应用的网页界面输入的。在3104处,服务器软件应用制定搜索查询,并且请求数据库104执行搜索查询。作为响应,数据库104执行查询并且返回搜索结果的集合。在3106处,服务器软件应用接收搜索结果。在3108处,服务器软件应用将搜索结果显示在例如网页上。用某些元数据和/或标签显示搜索结果列表中的每张相片,并且以一定的大小(诸如,原始大小的一半)显示相片。用户120随后点击按钮以使用返回的相片创建相片相册。响应于点击,在3110处,服务器软件应用生成含有搜索结果的相册,并且将相册存储到数据库104中。例如,数据库104中的相册是含有相册中的每张相片的唯一标识符以及相册的标题和描述的数据结构。标题和描述由用户120输入,或者基于相片的元数据和标签自动生成。在又一实施中,在2702处上传相片之后,服务器软件应用或在服务器102上运行的后台进程自动生成包括所上传的相片中的一些的一个或多个相册。自动生成过程进一步参考图32以3200示出。在3202处,服务器软件应用检索所上传的相片的标签。在3204处,服务器软件应用确定标签的不同组合。例如,一个组合包括“海滩”、“日落”、“家庭休假”和“圣地亚哥海洋世界”标签。作为附加实例,组合基于标签类型,诸如,时间标签、位置标签等。每个组合是搜索参数的集合。在3206处,针对每个标签组合,服务器软件应用从例如所上传的相片或者各自含有组合中的所有标签的所上传相片和现有相片中选择相片(诸如,通过查询数据库104)。在不同的实施中,基于元数据(诸如,创建时间)和标签来选择相片。在3208处,服务器软件应用针对所选择相片的每个集合生成相册。相册中的每个包括例如可基于相册内的相片的元数据和标签生成的标题和/或概述。在3210处,服务器软件应用将相册存储到数据库104中。在又一实施中,服务器软件应用将一个或多个相册显示给用户120。针对每个显示的相册,也显示概述。另外,展示每个相册与代表性相片,或者相册内的相片的缩略图。图像组织系统本公开还涵盖图像组织系统。具体而言,使用上文公开的场景识别和面部识别技术,可自动对图像的集合加标签并编索引。例如,针对图像存储库中的每个图像,标签的列表和图像的标记可进行关联,诸如,由数据库记录进行关联。数据库记录随后可存储在数据库中,所述数据库可使用例如搜索字符串进行搜索。转到适用于图像组织系统的附图,图33描绘被构建成与所公开的图像组织系统一起使用的移动计算设备3300。移动计算设备3300可以是例如智能电话1502、平板计算机1504或者可佩戴计算机1510,所有这些都在图15中描绘。在示例性实施中,移动计算设备3300可包括耦接到显示器3304和输入设备3314的处理器3302。显示器3304可以是例如液晶显示器或有机发光二极管显示器。输入设备3314可以是例如触摸屏、触摸屏与一个或多个按钮的组合、触摸屏与键盘的组合或者触摸屏、键盘与单独指示设备的组合。移动计算设备3300也可包括:内部存储设备3310,诸如,flash存储器(但可使用其他类型的存储器);以及可移动存储设备3312,诸如,sd卡槽,其一般也包括flash存储器,但也可包括其他类型的存储器,诸如,旋转磁驱动器。此外,移动计算设备3300也可包括相机3308和网络接口3306。网络接口3306可以是无线联网接口,诸如,例如802.11或蜂窝无线电接口的变体中的一个。图34描绘包括虚拟化服务器3402和虚拟化数据库3404的云计算平台3400。虚拟化服务器3402一般包括许多物理服务器,所述物理服务器对利用它们的任何应用而言表现为单个服务器。虚拟化数据库3404类似地表现为使用虚拟化数据库3404的单个数据库。图35a描绘示出基于云的图像组织系统的主要软件部件的软件框图。移动计算设备3300包括在它的处理器3302上操作的各种部件和其他部件。通常由设备制造商或操作系统生产者实施的相机模块3502在用户的指导下创建图片,并且将图片存储在图像存储库3504中。图像存储库3504可实施为例如在移动计算设备3300的内部存储设备3310或可移动存储设备3312上实施的文件系统中的目录。预处理与分类部件3506生成图像存储库中的图像的小尺度模型。预处理与分类部件3506可以例如生成特定图像的缩略图。例如,4000×3000像素的图像可减小到240×180像素的图像,从而节省相当大的空间。另外,可以生成图像签名并且用作小尺度模型。图像签名可包括例如关于图像的特征的集合。这些特征可包括但不限于图像的颜色直方图、图像的lbp特征等。上文在描述场景识别和面部识别算法时论述了这些特征的更完整列表。此外,与图像相关联的任何地理标签信息以及日期和时间信息可与缩略图或图像签名一起传输。另外,在单独的实施方案中,与缩略图一起传输移动设备的标记,诸如,与移动设备的网络接口相关联的mac标识符,或者与移动设备相关联的所生成的通用唯一标识符(uuid)。预处理与分类部件3506可通过多个不同的方式激活。第一,预处理与分类部件3506可迭代通过在图像存储库3504中的所有图像。这通常例如在最初安装应用时发生或在用户的指导下发生。第二,预处理与分类部件3506可由用户激活。第三,当在图像存储库3504中检测到新图像时,可激活预处理与分类部件3506。第四,预处理与分类部件3506可定期激活,诸如,例如一天一次或者一小时一次。预处理与分类部件3506在小尺度模型创建时将它们传送到联网模块3508。联网模块3508也与自定义搜索项屏幕3507相连接。如下文所述,自定义搜索项屏幕3507接受自定义搜索项。联网模块3508随后将小尺度模型(或多个小尺度模型)传输到云平台3400,在所述云平台中,所述模型被在云平台3400上操作的联网模块3516接收。联网模块3516将小尺度模型传送到在虚拟化服务器3402上操作的图像解析器与识别器3518。图像解析器与识别器3518使用在本公开的先前部分中论述的算法,以生成描述小尺度模型的标签列表。图像解析器与识别器3518随后将标签列表和与所解析的小尺度模型对应的图像的标记传送回到联网模块3516,所述联网模块将标签列表和标记传输回到移动计算设备3300的联网模块3508。标签列表和标记随后从联网模块3508传送到预处理与分类模块3506,其中创建在数据库3510中将标签列表和标记相关联的记录。在所公开的图像组织系统的一个实施方案中,标签也与移动设备的标记一起存储在数据库3520中。这允许在多个设备上搜索图像存储库。转到图35b,描绘用于实施图像搜索功能的软件部件的软件框图。搜索屏幕3512接受来自用户的搜索字符串。搜索字符串3512提交到自然语言处理器3513,所述自然语言处理器产生提交到数据库接口3516的标签的分类列表。数据库接口3516随后返回在图像屏幕3514上描绘的图像列表。自然语言处理器3513可基于例如距离度量对标签列表进行分类。例如,搜索字符串“海滩上的狗”将产生以“狗”和“海滩”为标签的图像列表。然而,列表中分类在下面的图像将是以“狗”、或“海滩”、或甚至“猫”为标签的图像。猫被包括在内是因为操作者搜索一种类型的宠物,而如果移动计算设备上存在宠物类型的图片,诸如猫或金丝雀,那么它们也将返回。位置也可用作搜索字符串。例如,搜索字符串“波士顿”将返回以马萨诸塞州的波士顿范围内的位置为地理标签的所有图像。图36a描绘示出在小尺度模型传输到云平台3400之前由在移动计算设备3300上操作的预处理器与分类器3506执行的步骤的流程图。在步骤3602中,记录图像存储库内的新图像。在步骤3604中,对图像进行处理以产生小尺度模型,并且在步骤3606中,将小尺度模型传输到云平台3400。图36b描绘示出在接收来自云平台3400的小尺度模型之后由在移动计算设备3300上操作的预处理器与分类器3506执行的步骤的流程图。在步骤3612中,接收标签的列表和对应于图像的标记。在步骤3614中,创建将标签列表和标记进行关联的记录,并且在步骤3616中,将记录交付到数据库3510。用来在步骤3614中形成数据库记录的标签也可用作自动创建的相册。这些相册允许用户浏览图像存储库。例如,相册可基于在图像中发现的事物的类型而创建,即,标题为“狗”的相册将含有用户的图像存储库中带有狗的图片的所有图像。类似地,基于诸如“日落”或“自然”等场景类型可自动创建相册。也可基于地理标签信息创建相册,诸如,“底特律”相册或“旧金山”相册。此外,可根据日期和时间创建相册,诸如,“2013年6月21日”或者“2012年除夕的午夜”。图37描绘示出由在云计算平台3400上操作的图像解析器与识别器3518执行以生成描述与系统所解析的小尺度模型对应的图像的标签列表的步骤的流程图。在步骤3702中,接收小尺度模型。在步骤3704中,提取与小尺度模型对应的图像的标记,并且在步骤3706中,解析小尺度模型并使用上述方法识别图像特征。在步骤3708中,生成小尺度模型的标签列表。例如,背景中一群人在海滩上以及船的图片可将图片中的人的名字以及“海滩”和“船”作为标签。最后,在步骤3710中,将与所解析的小尺度模型对应的图像的标签列表和标记从云计算平台3400传输到移动计算设备3300。图38描绘移动计算设备3300与云计算平台3400之间的通信的时序图。在步骤3802中,对移动计算设备3300上的图像存储库中的图像进行处理,并且创建与图像对应的小尺度模型。在步骤3804中,将小尺度模型从移动计算设备3300传输到云平台3400。在步骤3806中,云平台3400接收小尺度模型。在步骤3808中,从小尺度模型中提取图像标记,并且在步骤3810中,使用解析与识别过程提取小尺度模型中的图像特征。在步骤3812中,将这些图像特征组合到包中,所述包包括标签列表和在步骤3808中提取的图像标记。在步骤3814中,将包括标签列表和图像标记的包从云平台3400传输到移动计算设备3300。在步骤3816中,接收包括标签列表和图像标记的包。在步骤3818中,创建将图像标记和标签列表进行关联的数据库记录,并且在步骤3820中,将数据记录交付到数据库。图39描绘可搜索移动计算设备上的图像存储库中的图像的过程的流程图。在步骤3902中,显示搜索屏幕。搜索屏幕允许用户输入搜索字符串,在步骤3904中接受所述搜索字符串。在步骤3906中,将搜索字符串提交到自然语言解析器3513。搜索字符串可以是单个字词,诸如,“狗”或者术语的组合,诸如,“狗和猫”。搜索字符串也可包括例如描述环境的术语,诸如“日落”或“自然”;描述特定类别的术语,诸如“动物”或“食物”;以及描述特定位置或日期以及时间段的术语。应注意,也可经由语音命令接受搜索屏幕,即,通过用户说出短语“狗和猫”。自然语言解析器3513接受搜索字符串并且返回数据库3510中存在的标签列表。自然语言解析器3513通过数据库3510中的标签术语进行训练。转到步骤3908,自然语言解析器返回标签的分类列表。在步骤3910中,将循环通过分类列表中的每个标签的循环实例化。在步骤3912中,基于标签列表中存在的标签来搜索数据库。在步骤3912中,针对与搜索的标签对应的图像来搜索数据库。在步骤3914中,进行检查以确定先前是否已建立与所搜索的标签匹配的规则。如果已建立与所搜索的标签匹配的规则,则在步骤3916中激活所述规则。在步骤3918中,将与所搜索的标签对应的图像添加到匹配集合。由于按照与分类标签列表的顺序对应的顺序添加匹配的图像(或这些图像的标记),因此,匹配集合中的图像也按照分类标签列表的顺序进行分类。随后执行过渡到步骤3920,其中进行检查以确定当前的标签是不是分类列表中的最后标签。如果不是,则执行转移到步骤3921,其中选择分类列表中的下一标签。返回到步骤3920,如果当前的标签是分类列表中的最后标签,那么执行过渡到步骤3922,其中退出过程。在上文,将步骤3914论述为对先前建立的规则进行检查。所公开的图像组织系统的这个特征允许系统的搜索和组织系统与用户的移动设备上的其他应用共享。这在所搜索的图像匹配特定类别时通过激活配置的规则来完成。例如,如果将所搜索的图像分类为名片,诸如商务名片,则可激活将商务名片与光学字符识别(ocr)应用共享的规则。类似地,如果将所搜索的图像分类为“狗”或“猫”,那么可激活询问用户她是否想要与爱宠物的朋友共享图像的规则。转到图40a,在步骤4002中,自定义搜索项屏幕3507接受来自用户的自定义搜索字符串以及应用到图像的区域标签。区域标签可应用于图像的任何部分,所述区域标签是由用户限定的地理区域。例如,自定义搜索字符串可以是例如“绒毛(fluffy)”,它可用来指代图像内的特定猫。在步骤4004中,由网络模块3508将自定义搜索字符串和区域标签传输到云服务器。转到图40b,在步骤4012中,网络模块3516接收自定义搜索字符串和区域标签。在步骤4014中,图像解析器与识别器3518将在步骤4016存储的数据库记录中的自定义搜索字符串和区域标签进行关联。一旦存储,当识别出以区域标签为标签的项时,图像解析器与识别器3518将返回自定义搜索字符串。因此,在已经用区域标签和自定义搜索字符串表示“绒毛”之后,如果提交她的图片,则将返回“绒毛”的标签。尽管已经将所公开的图像组织系统论述为在云配置中实施,但它也可完全在移动计算设备上实施。在此类实施中,图像解析器与识别器3518将在移动计算设备3300上实施。此外,将不需要联网模块3508和3516。另外,云计算部分将在单个帮助设备上实施,诸如,附加移动设备、本地服务器、无线路由器或甚至相关联的台式或膝上型计算机。显然,鉴于上述教示,本公开的很多附加更改和变化是可能的。因此,应了解,在所附权利要求书的范围内,可使用上文具体说明之外的其他方式来实践本公开。例如,数据库104可包括位于单个位置或在多个位置上分布的不止一个物理数据库。数据库104可以是关系型数据库,诸如,oracle数据库或microsoftsql数据库。或者,数据库104是nosql(不仅是sql)数据库或谷歌的bigtable数据库。在这种情况下,服务器102通过互联网110来访问数据库104。作为附加实例,可通过不同于互联网110的广域网来访问服务器102和106。作为又一实例,服务器1602和1612的功能可由不止一个物理服务器执行;并且数据库1604可包括不止一个物理数据库。尽管出于说明和描述的目的呈现了本公开的上述描述,但并不意图详细列举或者将本公开限于所公开的确切形式。所述描述经过选择以最佳地说明本教示的原理和这些原理的实际应用,以使得所属领域的技术人员能够在适于预期的特定用途的各种实施方案和各种更改中最好地利用本公开。本公开的范围意图不受说明书限制,而是由所附权利要求书限定。此外,尽管可呈现狭窄的权利要求,但应认识到,本发明的范围比权利要求书呈现的范围更广。更广的权利要求意图在要求本申请的优先权权益的一个或多个申请中提交。在上述描述和附图公开不在所附权利要求书的范围内的附加主题的情况下,附加发明并不专用于公众,并且保留提交一个或多个申请以要求此类附加发明的权利。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1