具有松弛对准的支付卡OCR转让专利

申请号 : CN201811396830.5

文献号 : CN110110717A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王晓航法尔汉·沙姆西雅科夫·奥科施泰因桑吉夫·库马尔亨利·阿兰·罗利马库斯·昆塔纳·米切尔德布拉·利恩·雷佩宁亚历山德罗·比萨科贾斯汀·沙伊纳里昂·帕姆杰夫·休伯

申请人 : 谷歌有限责任公司

摘要 :

公开了具有松弛对准的支付卡OCR。利用松弛对准来提取金融卡信息包括一种用来接收卡的图像(205)的方法,在图像的位置中确定一个或多个边缘取景区域,以及识别一个或多个边缘取景区域中的线(210)。该方法进一步识别由所识别的线的外延的交叉而形成的一个或多个四边形,确定一个或多个四边形的纵横比,以及比较所确定的四边形的纵横比和期望纵横比(215)。该方法随后识别匹配期望纵横比的四边形(220)以及对修正的模型执行光学字符辨识算法(230)。对图像中的多个卡执行类似的方法。对每个卡的分析结果进行比较以改善数据的准确性。

权利要求 :

1.一种用于提取金融卡信息的计算机实现方法,包括:由一个或多个计算设备将预期纵横比与数据库中的多个卡类型中的每一个相关联,所述卡类型具有不同的预期纵横比;

由所述一个或多个计算设备识别一个或多个四边形,所述一个或多个四边形是由卡的图像中的所识别的线的外延的交叉所形成;

由所述一个或多个计算设备调整所述一个或多个四边形的透视,直到所述一个或多个四边形是前平行的;

由所述一个或多个计算设备确定所调整的一个或多个四边形中的每个四边形的纵横比;

由所述一个或多个计算设备将所调整的一个或多个四边形中的每个四边形的所确定的纵横比与和所述卡相关联的特定卡类型的预期纵横比进行比较,以识别与所述预期纵横比相匹配的特定四边形作为优选卡边界;

由所述一个或多个计算设备将所述图像剪裁为仅有所述特定四边形的包括账户信息的部分;以及由所述一个或多个计算设备对包括所述账户信息的所述特定四边形的所剪裁的部分执行执行光学字符辨识算法。

2.根据1所述的方法,还包括:

由所述一个或多个计算设备确定包括所述账户信息的所述特定四边形内的位置,所述位置至少部分地基于所述特定卡类型;以及由所述一个或多个计算设备仅对所确定的位置执行执行所述光学字符辨识算法。

3.根据1所述的方法,还包括:由所述一个或多个计算设备将所述图像转换为灰度图。

4.根据1所述的方法,还包括:

由所述一个或多个计算设备检测所述图像中的模糊;以及由所述一个或多个计算设备执行配置动作,以从所述图像中去除所述模糊。

5.根据1所述的方法,其中,所述卡包括信用卡、借记卡、身份证、积分卡、或通行卡。

6.一种计算机程序产品,包括:

非暂时性计算机可读存储设备,具有包含在其上的计算机可执行程序指令,所述计算机可执行程序指令当由计算机执行时使所述计算机提取金融卡信息,所述计算机可执行程序指令包括:用于将预期纵横比与数据库中的多个卡类型中的每一个相关联的计算机可执行程序指令;

用于识别一个或多个四边形的计算机可执行程序指令,所述一个或多个四边形是由卡的图像中的所识别的线的外延的交叉所形成;

用于确定所述多个四边形中的每个四边形的纵横比的计算机可执行程指令;

用于将所述多个四边形中的每个四边形的所确定的纵横比与和所述卡相关联的特定卡类型的预期纵横比进行比较以识别与所述预期纵横比相匹配的特定四边形作为优选卡边界的计算机可执行程序指令;

用于将所述图像剪裁为仅有所述特定四边形的包括账户信息的部分的计算机可执行程序指令;以及用于对包括所述账户信息的所述特定四边形的所剪裁的部分执行执行光学字符辨识算法的计算机可执行程序指令。

7.根据6所述的计算机程序产品,所述计算机可执行程序指令还包括:用于在三维中对由所述特定四边形包围的所述图像的区域建模的计算机程序指令。

8.根据6所述的计算机程序产品,还包括用于将所述图像转换为灰度图的计算机程序指令。

9.根据6所述的计算机程序产品,所述计算机可执行程序指令还包括:用于检测所述图像中的模糊的计算机程序指令;和用于执行配置动作以从所述图像中去除所述模糊的计算机程序指令。

10.根据6所述的计算机程序产品,其中,所述卡包括信用卡、借记卡、身份证、积分卡、或通行卡。

11.根据6所述的计算机程序产品,所述计算机可执行程序指令还包括:用于确定包括所述账户信息的所述特定四边形内的位置的计算机程序指令,所述位置至少部分地基于所述特定卡类型;

用于仅对所确定的位置执行所述光学字符辨识算法的计算机程序指令。

12.一种用于提取金融卡信息的系统,包括:存储设备;以及

通信地耦合到所述存储设备的处理器,其中所述处理器执行存储在所述存储设备中的应用代码指令以使所述系统:将预期纵横比与数据库中的多个卡类型中的每一个相关联;

将与卡图像中的卡边缘相关联的一个或多个四边形中的每个四边形的所确定的纵横比与和所述卡相关联的特定卡类型的预期纵横比进行比较,以识别与所述预期纵横比相匹配的特定四边形;

将所述卡图像剪裁为仅有所述特定四边形的包括账户信息的部分;以及对包括所述账户信息的所述特定四边形的所剪裁的部分执行执行光学字符辨识。

13.根据12所述的系统,所述处理器执行存储在所述存储设备中的另外的应用代码指令,以使所述系统:在三维中对由所述特定四边形包围的所述图像的区域建模。

14.根据12所述的系统,所述处理器执行存储在所述存储设备中的另外的应用代码指令,以使所述系统将所述图像转换为灰度图。

15.根据12所述的系统,所述处理器执行存储在所述存储设备中的另外的应用代码指令,以使所述系统:检测所述图像中的模糊;以及

执行配置动作,以从所述图像中去除所述模糊。

16.根据12所述的系统,其中,所述卡包括信用卡、借记卡、身份证、积分卡、或通行卡。

17.根据12所述的系统,所述处理器执行存储在所述存储设备中的另外的应用代码指令,以使所述系统:确定包括所述账户信息的所述特定四边形内的位置,所述位置至少部分地基于所述特定卡类型;

仅对所确定的位置执行执行所述光学字符辨识算法。

说明书 :

具有松弛对准的支付卡OCR

[0001] 本申请是分案申请,原案的申请号是201480046438.1,申请日是2014年6月30日,发明名称是“具有松弛对准的支付卡OCR”。
[0002] 相关申请
[0003] 本专利申请要求2013年6月30日提交的题为“Extracting Card Data From Multiple Cards”的美国专利申请No.13/931,966以及2013年12月12日提交的题为“Payment Card OCR with Relaxed Alignment”的美国专利申请No.14/104,901的优先权,二者要求2013年6月30日提交的题为“Payment Card OCR with Relaxed Alignment”的美国临时申请No.61/841,390的优先权。上面所述的专利申请的全部内容在此通过引用全部并入本文。

技术领域

[0004] 这里公开的技术关于提取金融卡信息,更具体地关于允许用户计算设备利用松弛对准而从一个卡或者从多个卡提取金融卡信息。

背景技术

[0005] 当消费者进行在线购物或者使用移动用户计算设备购物时,消费者通常被迫将信用卡信息键入到用户计算设备中以进行支付。由于移动设备上的小屏幕尺寸和键盘界面,这样的键入通常麻烦且容易出错。用户可以使用诸如信用卡、借记卡、储值卡以及其他卡的许多不同卡来购物。对于试图在移动设备上处理移动支付来进行多种交易的商家来说,信息键入难度倍增。
[0006] 用于从支付卡获得支付信息的当前应用需要在扫描中对卡的精确定位。典型地,在用户计算设备的用户界面上呈现一个框。用户需要精确地把卡与框对齐以允许用户计算设备身份证。
[0007] 用户还可能想要将信息从积分卡、身份证、通行卡、和其他合适卡输入到用户计算设备中。

发明内容

[0008] 本公开的技术包括用于利用松弛对准来提取金融卡信息的计算机实现的方法、计算机程序产品和系统。预测候选报价的有效性包括一种用来接收卡的图像的方法;在图像的位置中确定一个或多个边缘取景区域;识别一个或多个边缘取景区域中的线;识别由所识别的线的外延的交叉而形成的一个或多个四边形;确定一个或多个四边形的纵横比;比较所确定的四边形的纵横比和期望纵横比;识别匹配期望纵横比的四边形;在三维中对所识别的四边形所包围的图像的区域进行建模;修正三维模型;以及对经修正的模型执行光学字符辨识算法。对图像中的多个卡执行类似的方法。对每个卡的分析结果进行比较以改善数据的准确性。
[0009] 在考虑到下面的图示示例实施例的具体实施方式后,示例实施例的这些和其他方面、目标、特征、和优点对于本领域普通技术人员来说将变得明显。

附图说明

[0010] 图1是根据这里公开的技术的某示例实施例的、描绘用于利用松卡对准来提取金融账户信息以及用于从多个卡提取金融账户信息的系统的框图。
[0011] 图2是根据某示例实施例的、描绘用于利用松卡对准来提取金融账户信息的方法的块流程图。
[0012] 图3是根据某示例实施例的、描绘用于检测四边缘取景区域中的边缘的方法的块流程图。
[0013] 图4是根据某示例实施例的、描绘用于执行几何验证的方法的块流程图。
[0014] 图5是根据某示例实施例的、描绘用于从多个卡提取金融账户信息的方法的块流程图。
[0015] 图6是根据某示例实施例的显示四边缘取景区域的用户计算设备的图示。
[0016] 图7是根据某示例实施例的显示四边缘取景区域的用户计算设备以及所显示的金融卡的图像的图示。
[0017] 图8是根据某示例实施例的表示所识别的金融卡的边缘的线的图示。
[0018] 图9是根据某示例实施例的表示所识别的金融卡的边缘的线所形成的四边形的图示。
[0019] 图10是根据某示例实施例的显示多个卡的用户计算设备的图示。
[0020] 图11是根据某示例实施例的、描绘计算机器和模块的框图。

具体实施方式

[0021] 概览
[0022] 这里的实施例提供了计算机实现的技术,用于允许用户设备利用松弛对准提取金融卡信息。利用松弛对准来提取金融卡信息包括使用光学字符辨识(“OCR”)应用来检测四个单个卡边缘中的每个。四个卡边缘位于四个松边缘取景区域。OCR应用识别四个区域中的强边缘候选线并且利用这些线形成四边形。四边形尺寸被针对期望卡尺寸进行验证并且识别最可能的卡边缘。OCR应用执行图像的透视变换以调整卡的图像为“前平行”朝向。OCR处理可以被限制到金融卡的区域,金融信息被期望位于此。
[0023] 在整个说明书中,一般术语“卡”将被用于表示诸如磁条卡的任何类型的物理卡用具。在示例实施例中,由“卡”所表示的不同类型的卡可以包括信用卡、借记卡、储值卡、积分卡、身份证或者表示用户的账户或其上其他信息的任何其他合适卡。
[0024] 当进行交易时,诸如购物、凭票进入、会员签到或者其他合适交易时,用户可以采用卡。用户可以获得卡信息以便于将卡所表示的账户输入到计算设备的数字钱包应用模块或者用于其他数字账户的目的。卡通常是塑料卡,在卡上包含账户信息和其他数据。在许多卡实施例中,顾客名、有效期、和卡号物理凸印在卡上。凸印的信息从卡的正面和背面都可看见,尽管凸印的信息通常在卡背面是反转的。
[0025] 用户可能想要将来自卡的信息输入到用户计算设备中或者其他计算设备中,例如以进行在线购物、以利用移动计算设备或其他计算设备进行购物、以添加信息到计算设备上的钱包应用,或者出于任何其他合适理由。在示例中,用户想要使用移动计算设备来使用在移动计算设备上执行的数字钱包应用模块进行购物交易。数字钱包应用模块可能需要特定用户支付账户的细节的输入来利用特定用户支付账户进行交易或者建立账户。由于移动设备上的小的屏幕尺寸和键盘界面,这样的输入会麻烦且对于手工输入来说容易出错。此外,商业系统可能需要捕捉卡信息来进行交易或用于其他目的。
[0026] 除了账户标识符之外,卡的正面通常包含卡的发行者的徽标、用户或发行者所选择的图片、描述用户账户的类型或状态的其他文本、安全码、以及诸如全息图或徽章的其他市场和安全元素。用户名、卡的有效期、以及诸如信用卡号的账户标识符,可以凸印在卡的正面,使得信息从卡的正面突出。
[0027] 用户采用移动电话、数码相机、或其他用户计算设备来捕捉与用户想要输入到用户计算设备中的账户相关联的卡的图像。
[0028] 用户计算设备上的OCR应用接收卡的图像。图像可以从用户计算设备的相机模块(诸如移动电话上的相机)获得。图像可以从耦合到用户计算设备的扫描仪或任何其他合适的数字成像设备获得。图像可以从由用户计算设备拍摄的视频获得。图像可以由用户计算设备上的OCR应用从用户计算设备上的存储位置、从远程存储位置、或从任何合适位置来访问。能够提供图像的所有源将在此被称为“相机”。
[0029] OCR应用的功能可以由任何合适模块、硬件、软件或操作在用户计算设备上的应用来执行。OCR应用的一些或所有功能可以由远程服务器或其他计算设备来执行。
[0030] 图像在用户计算设备的用户界面上被呈现为金融卡的现场视频图像。OCR应用可以隔离且存储来自相机的视频的一个或多个图像。例如,用户可以将用户计算设备的相机功能悬停在金融卡上并且观察金融卡在用户计算设备的用户界面上的表示。
[0031] OCR应用对图像执行模糊检测。OCR应用、相机模块、或用户计算设备可以识别图像模糊、过亮、过暗或者以阻止获得高分辨率图像的方式而模糊。OCR应用,或用户计算设备或相机的其他功能,可以调整图像捕捉方法以减少图像中的模糊。例如,OCR应用可以引导相机调整金融卡上的聚焦。在另一示例中,OCR应用可以引导用户将相机移动到距离金融卡更近或更远。在另一示例中,OCR应用可以执行数字图像操纵以去除模糊。可以利用校正模糊图像的任何其他合适方法。
[0032] OCR应用可以可选地将图像转换为灰度图。金融卡通常包含图片、徽标、设计、图标、名字、全息图、或者在卡表面上的其他美术品。由OCR应用将图像转换成灰度图在一些环境中可以使得边缘位置更加可辨认。转换为灰度图,或者其他合适图像操纵,可以在OCR处理的任何其他时间发生。例如,灰度图转换可以在边缘检测之后发生。
[0033] OCR应用识别每个边缘取景区域中的边缘。OCR应用寻找每个边缘取景区域中的区别于区域中平均噪声水平的一个或多个线。OCR应用可以定位卡的边缘,但是还可以定位在卡上印刷的线、在卡所位于的表面上的线、或者图像中的其他线。在某些环境中,卡的边缘不是图像中最显著的线。因此,OCR应用捕捉多条线以确保卡的边缘与其他线一起被识别。
[0034] OCR应用使用合适线检测软件或硬件来识别边缘取景区域中的线或边缘。线检测可以在用户计算设备上由OCR应用或另一合适模块来执行。在替选实施例中,边缘检测可以由诸如OCR系统服务器的远程计算设备来执行。如果没有检测到线,则图像可能被拒绝。如果检测到多条线,则OCR应用可能从检测到的线中或一组强边缘候选中识别最强的边缘候选。示例的线检测技术是霍夫变换(Hough transform)。可以利用任何合适技术。
[0035] 卡边缘候选线被合并到一系列交叉中。线,或线的外延,可以与其他线或其他线的外延交叉。线的相交形成交叉。OCR应用可以识别图像中所有线的交叉点。
[0036] 卡边缘交叉被合并到一系列四边形中。例如,OCR应用识别一起形成四边形的两个或四个交叉。OCR应用可以识别由候选交叉形成的多于一个的四边形。一些候选边缘线和交叉可以用于多个四边形中。在某些实施例中,需要四个交叉来形成候选四边形。
[0037] OCR应用还可以在三维(“3D”)空间中渲染卡的图像以修正四边形的形状。OCR应用可以操纵图像以在图像中产生四边形和卡的3D模型以允许图像与不同视角再次对准。3D模型可以由OCR应用或另一计算设备通过图像的数字操纵来创建。
[0038] 在替选实施例中,卡不被渲染为3D。变换函数被应用到卡图像以计算前平面图像。经计算的图像稍后在处理中用于执行对图像的透视变换。
[0039] OCR应用通过将图像中的卡带到前平行视角而修正图像中的卡。OCR应用调整图像的视角直到最可能的四边形与相机前平行。
[0040] OCR应用识别图像中最接近复制期望卡的形状的四边形。在某些实施例中,这个四边形的识别在从检测到的线中检测到四边形之后立即发生。也就是,最接近复制期望卡的形状的四边形在图像在3D空间中渲染、变换到前平面图像、或被施加透视变换之前被识别。
[0041] 如果图像中的卡是信用卡,则OCR应用访问与期望信用卡的纵横比相关联的信息。期望形状可以从存储在用户计算设备或另一合适位置的卡形状数据库中获得。例如,信用卡、驾驶证、积分卡、和其他卡通常满足用于卡的纵横比的工业标准。工业标准可以存储在OCR应用中或可由OCR应用访问的位置。
[0042] OCR应用可以比较候选四边形与期望卡的纵横比。OCR应用可以比较由图像的3D渲染产生的不同视角中的候选四边形。也就是,OCR应用可以比较每个四边形的不同视角,直到特定视角中的特定四边形产生匹配期望纵横比的纵横比。
[0043] OCR应用可以配置来自要被识别为卡的最佳渲染的四边形所需的期望纵横比的阈值变量。在另一示例中,OCR应用选择产生与期望卡的纵横比的最接近匹配的特定视角中的特定四边形。如果没有四边形匹配期望卡的纵横比,则图像可能被拒绝。
[0044] OCR应用隔离卡的图像。OCR应用可以使用形成所识别的四边形的边缘作为卡的边缘并且剪裁图片以仅显示和处理该卡。
[0045] OCR应用可以剪裁图像以只显示来自卡的所需信息。例如,如果图像中的卡是信用卡,则OCR应用访问与期望信用卡的账户号的位置相关联的信息。期望位置可以从存储在用户计算设备上或另一合适位置的卡布局的数据库中获得。例如,信用卡、驾驶证、积分卡、和其他卡通常满足用于数据位置和卡的布局的工业标准。工业标准可以存储在OCR应用中或可由OCR应用访问的位置。
[0046] OCR应用采用OCR算法或其他计算机实现的处理来确定卡信息。例如,OCR应用可以使用OCR程序来分析卡的图像或剪裁的图像来提取信用卡的金融账户号。所提取的号可以被呈现给用户以验证、存储在OCR应用中、传送到远程计算机、存储在数字钱包应用模块中、或者以任何合适方式使用。诸如用户名、有效期、安全码、或者任何合适信息的其他信息,也可以从图像中提取。
[0047] 在另一示例中,用户同时扫描多个卡的图像。例如,用户可以布置多个卡在诸如桌子上的平坦表面上。用户可以将相机悬停在卡上并且捕捉图像中所有卡的图像。在另一示例中,用户可以用相机在卡上扫描,直到每个卡的图像都已被捕捉。
[0048] OCR应用检测卡的边缘。OCR应用以与之前所述相似的方式识别来自图像的线或边缘。例如,OCR应用可以识别与多个卡相对应的单个图像中的许多线。线的交叉被识别。来自单个图像中的多个卡的每个的线和交叉将在图像框内的多个位置形成多个四边形。
[0049] 如这里所述,OCR应用确定形成四边形的边缘并且在3D中渲染图像。OCR应用对包括所有四边形的图像执行3D建模,或者OCR应用隔离每个四边形的图像为分立的图像。也就是,OCR应用可以隔离每个建议的四边形并且复制每个建议的四边形为分立的图像。
[0050] 如这里所述,OCR应用执行透视变换以针对卡识别匹配期望纵横比的四边形。满足期望纵横比的四边形可以被隔离为分立的图像以供分析。在替选示例中,卡图像被保持在单个图像上。
[0051] 在另一示例中,在卡的扫描中捕捉卡的图像。OCR应用可以从多个角度和帧捕捉视频或一系列图像。如这里所述,OCR应用可以分析多个图像并且捕捉线和四边形。如这里所述,OCR应用可以以3D对图像建模并且产生可能卡的图像。
[0052] OCR应用基于所述的方法隔离每个卡的图像。如这里所述,OCR应用可选地剪裁卡数据区域。如这里所述,OCR应用识别金融账户信息。
[0053] OCR应用比较来自每个卡的所提取的金融账户信息以确定差别和共性。例如,OCR应用可以比较与每个卡相关联的用户名以搜索提取错误。在这个示例中,OCR应用可以确定从图像中提取的用户的名字在4个情况中的3个中是相同的。OCR应用可以确定不同的所提取的用户名可能具有错误。OCR应用可以再次分析不同图像、请求用户输入、或者修改所提取的名字。
[0054] 示例系统架构
[0055] 现在转到附图,其中,在所有附图中,类似的附图标记表示相似(但不必相同)的元素,详细描述了示例实施例。
[0056] 图1是根据某些示例实施例的、描绘用于利用松弛对准来提取金融账户信息并且用于从多个卡中提取金融账户信息的系统的框图。如图1中所描绘,系统100包括被配置为经由一个或多个网络105互相通信的网络计算设备110、120、140、和170。在一些实施例中,与设备相关联的用户必须安装应用和/或进行特征选择以获得这里所述的技术的优点。
[0057] 每个网络105包括有线或无线电信装置,通过其网络设备(包括设备110、120、140、和170)可以交换数据。例如,每个网络105可以包括局域网(“LAN”)、广域网(“WAN”)、内联网、互联网、移动电话网络、或者其任何组合。在示例实施例的全部讨论中,应该理解,术语“数据”和“信息”这里可以被互换使用以指代文本、图像、音频、视频、或可以存在于基于计算机的环境中的任何其他形式的信息。
[0058] 每个网络计算设备110、120、140、和170包括具有能够在网络105上发射和接收数据的通信模块的设备。例如,每个网络设备110、120、140、和170可以包括服务器、桌面计算机、膝上型计算机、平板计算机、具有一个或多个嵌入其中和/或与之耦合的处理器的电视、智能电话、手持计算机、个人数字助理(“PDA”)或任何其他有线或无线的、处理器驱动的设备。在图1中描绘的示例实施例中,网络设备110、120、140和170分别由终端用户或消费者、OCR系统操作者、支付处理系统操作者、和卡发行者操作者操作。在某些实施例中,各种操作者可能必需下载应用、激活应用的特征、和/或以其他方式使得应用能够采用这里所述的特征。
[0059] 用户101可以使用通信应用112,其可以是例如web浏览器应用或单机应用,用来经由分布式网络105观看、下载、上传或者访问文档或网页。网络105包括有线或无线电信系统或设备,由此网络设备(包括设备110、120、140、和1 70)可以交换数据。例如,网络105可以包括局域网(“LAN”)、广域网(“WAN”)、内联网、互联网、存储区域网(SAN)、个域网(PAN)、城域网(MAN)、无线局域网(WLAN)、虚拟专用网(VPN)、蜂窝或其他移动通信网络、蓝牙、NFC或其任何组合或便利信号、数据、和/或消息的通信的任何其他适当架构或系统。
[0060] 用户计算设备110可以利用通信模块112来与OCR系统120的web服务器124或其他服务器通信。通信模块112可以允许设备经由网络105以外的技术通信。示例可以包括蜂窝网络、无线电网络、或者其他通信网络。
[0061] 用户计算设备110可以包括数字钱包应用模块111。数字钱包应用模块111可以包含可以利用来帮助用户101完成购买的处理的任何应用、硬件、软件或用户设备110。数字钱包应用模块111可以与通信应用112交互或者可以被实现为通信应用112的伴随应用。作为伴随应用,数字钱包应用模块111在通信应用112内执行。也就是,数字钱包应用模块111可以是嵌入到通信应用112中的应用程序。
[0062] 用户设备110可以可以包括光学字符辨识(“OCR”)应用115。OCR应用115可以与通信应用112交互或者被实现为通信应用112的伴随应用并且在通信应用112内执行。在示例实施例中,OCR应用115可以附加地或者可替选地被实现为数字钱包应用模块111的伴随应用并且在数字钱包应用模块111内执行。OCR应用115可以利用在数字钱包应用111中可以打开或者在通信应用112中可以打开的软件界面。界面可以允许用户101配置OCR应用115和报价提供者系统150上的用户账户。
[0063] OCR应用115可以用来分析卡并且从卡中提取信息或其他数据。OCR系统120或者开发OCR算法或其他方法的其他系统可以包括计算机可读程序指令的集合,例如,使用JavaScript,其使得OCR系统120能够与OCR应用115交互。
[0064] 说明书中描述的由OCR应用115执行的任何功能可以由支付处理系统140、OCR系统120、用户计算设备110、商业系统(未图示)或任何其他合适硬件或软件系统或应用来执行。
[0065] 用户设备110包括可由OCR应用115和通信应用112访问的数据存储单元113。示例数据存储单元113可以包括一个或多个有形计算机可读介质。数据存储单元113可以存储在用户设备110上或者可以逻辑上耦合到用户设备110。例如,数据存储单元113可以包括板上闪存存储器和/或一个或多个可移动存储卡或可移动闪存存储器。
[0066] 用户设备110可以包括相机114。相机可以是用户计算设备110的用于获得数字图像的任何模块或功能。相机114可以在用户计算设备110的板上或者以任何形式逻辑连接到用户计算设备110。相机114可以能够获得单独的图像或视频扫描。任何其他合适图像捕捉设备可以由相机114来表示。
[0067] 支付处理计算系统140包括可由web服务器144访问的数据存储单元147。示例数据存储单元147可以包括一个或多个有形计算机可读存储设备。支付处理系统140可操作进行用户101和商业系统(未图示)之间的支付。支付处理系统140进一步可操作用于管理用户101的支付账户、保持数据库以存储商业系统和用户101的交易、验证交易、以及其他合适功能。
[0068] 用户101可以使用支付处理系统140上的web服务器144来经由网站(未图示)和通信网络105观看、注册、下载、上传或访问支付处理系统140。用户101将一个或多个注册的金融卡账户(包括银行账户借记卡、信用卡、礼品卡、积分卡、优惠券、报价、预付报价、商店奖励卡、或者可以用来进行购物或兑现增值服务的其他类型的金融账户)与用户101的支付账户关联起来。
[0069] 诸如银行或其他机构的卡的发行者,可以是被注册的金融账户的发行者。例如,卡的发行者可以是信用卡发行者、借记卡发行者、储值卡发行者、提供账户的金融机构、或者任何其他金融账户提供者。支付处理系统140还可以用作用户相关联的金融账户的发行者。用户101的注册信息保存在支付处理系统140的数据存储单元147中并且可由web服务器144访问。卡发行者利用卡发行者计算系统170发行卡、管理用户账户、并且执行任何其他合适功能。卡发行者系统170可以可替选地发行卡用于识别、访问、验证、售票、或者用于任何合适用途的卡。卡发行者利用网络服务器174来开发或存储卡102程序、保持用户账户、提供卡
102给用户101、或者任何其他合适功能。
[0070] OCR计算系统120利用OCR系统web服务器124,OCR系统网络服务器124操作产生、管理、存储、或保持OCR算法、方法、处理或服务的系统。OCR系统web服务器124可以代表计算机实现的系统,OCR系统120可利用其来提供OCR服务给用户计算设备110、商业或者任何合适部分。OCR系统web服务器124可以与一个或多个支付处理系统140、用户设备110或者其他计算设备经由任何可用技术通信。这些技术可以包括,但将不限于,经由网络105的互联网连接、电子邮件、文本、即时消息传递、或者其他合适通信技术。OCR系统120可以包括可由OCR系统120的web服务器124访问的数据存储单元127。数据存储单元127可以包括一个或多个有形计算机可读存储设备。
[0071] 说明书中被描述为由OCR系统120所执行的任何功能可以由OCR应用115、用户计算设备110、或任何其他合适硬件或软件系统或应用来执行。
[0072] 用户101可以在进行诸如购物、凭票进入、会员签到、或其他合适交易的交易时采用卡102。用户101可以获得卡信息以便将卡102所表示的账户输入到计算设备110的数字钱包应用模块111或者用于其他数字账户用途。卡102通常是塑料卡,在卡102上包含账户信息和其他数据。在许多卡102实施例中,顾客名、有效期、和卡号物理地凸印在卡102上。凸印的信息可以从卡102的正面和背面看见,尽管凸印信息通常在卡102的背面是反转的。
[0073] 将认识到,所示的网络连接是示例性的,可以使用在计算机和设备之间建立通信链路的其他装置。而且,从本公开获益的本领域普通技术人员将认识到,图1中所示的用户设备110、OCR系统120、支付处理系统140、和卡发行者系统170可以具有若干其他合适计算机系统配置的任何一种。例如,被实现为移动电话或手持计算机的用户设备110可以不包括上述的所有部件。
[0074] 示例处理
[0075] 下面关于示例操作环境100的组件来描述图2至图5中所图示的示例方法。图2至图5的示例方法还可以利用其他系统以及在其他环境中执行。
[0076] 图2是根据某些示例实施例的、描绘用于利用松卡102对准来提取金融账户信息的方法200的块流程图。
[0077] 参看图1和2,在块205中,用户设备110上的光学字符辨识(“OCR”)应用115获得卡102的数字扫描。用户101采用移动电话、数码相机、或其他用户计算设备110来捕捉与用户
101想要输入到用户计算设备110中的账户相关联的卡102的图像。
[0078] 用户计算设备110上的OCR应用115接收卡102的图像。图像可以从用户计算设备110的相机模块(诸如移动电话上的相机114)来获得。图像可以从耦合到用户计算设备110的扫描仪或者任何其他合适数字成像设备来获得。图像可以由用户计算设备110上的OCR应用115从用户计算设备110上的存储位置、从远程存储位置、或者从任何合适位置来访问。能够提供图像的所有源将在这里被称为“相机”114。
[0079] OCR应用115的功能可以由任何合适模块、硬件、软件、或操作在用户计算设备110上的应用来执行。OCR应用115的一些或全部功能可以由远程服务器或其他计算设备来执行。
[0080] 图像在用户计算设备110的用户界面上被呈现为卡的现场视频图像。OCR应用115可以隔离并存储来自相机114的视频流的一个或多个图像。例如,用户101可以将用户计算设备110的相机114功能悬停在卡102上方并且观察用户计算设备110的用户界面上的卡的表现。
[0081] 在块210中,OCR应用115检测四个边缘取景区域中的卡102的边缘。边缘取景区域在图6和7中图示。
[0082] 图6描绘了根据某些示例实施例的、显示四个边缘取景区域610的用户计算设备110的图示。图6中的用户计算设备110是移动智能电话。用户计算设备110包括用户界面屏幕605。在图示中,用户101已经打开OCR应用115且准备在屏幕605上显示卡102的图像。在图示中,四个边缘取景区域610示出在屏幕605上。边缘取景区域610可能对于用户101来说在屏幕605上不可见。在示例中,边缘取景区域610是四边形区域,位于标准信用卡的纵横比所指示的布置中。如果卡102是不同的形状,则边缘取景区域610的形状可以由此更改。
[0083] 边缘取景区域610位于屏幕605可能包含卡边缘的区域中。在示例中,边缘取景区域610被示出为位于与屏幕边缘接近的区域中。基于屏幕的尺寸和其他系统限制,边缘取景区域610的尺寸可能包含卡102的边缘。边缘取景区域610的尺寸和位置可以基于提供给用户101来在图像中定位卡102的指令。在示例中,OCR应用115指示用户101定位相机114,使得卡102几乎填满屏幕。用户界面可以提供显示以向用户101提供怎样在相机前定位卡102的示例。任何合适准则可以用来指定边缘取景区域610的尺寸和位置。
[0084] 图7是根据某些示例实施例的、显示四个边缘取景区域610的用户计算设备的图示和所显示的金融卡102的图像。用户计算设备110显示卡102的图像,在图像上叠加了边缘取景区域610。卡102在前平行于相机114以外的位置上对准,但卡102的边缘每个都主要在边缘取景区域610中。用户101可以将卡101放置在诸如桌上的平坦表面上,将相机114悬停在卡102上方。卡102显示在用户计算设备110的屏幕605上。用户101可以被请求以确保边缘位于边缘取景区域610。边缘取景区域610的尺寸和位置使得用户101不需要精确定位卡102。只要用户101将卡102定位在宽松的边缘取景区域610中,OCR应用115就能够进行数据提取。
在示例中,边缘取景区域610未显示在屏幕605上。如这里所述,用户101可以被请求以任何合适方式将卡102定位在显示器上。
[0085] 在图3的方法210中更加详细地描述块210的方法的细节。
[0086] 图3是根据某些示例实施例的、描绘用于检测在计算设备的用户界面上显示的四个边缘取景区域中的卡边缘的方法的块流程图。
[0087] 在块305中,OCR应用115对图像执行模糊检测。OCR应用115、相机114模块、或者用户计算设备110可以识别图像模糊、过亮、过暗、或者以阻止获得高分辨率图像的方式而模糊。OCR应用115,或者用户计算设备110或相机114的其他功能,可以调整图像捕捉方法以减少图像中的模糊。例如,COR应用115可以引导相机114调整金融卡上的聚焦。在另一示例中,OCR应用115可以引导用户101移动相机114更接近或更远离金融卡。在另一示例中,OCR应用115可以执行数字图像操纵以去除模糊。可以利用校正模糊图像的任何其他合适方法。
[0088] 在块310中,OCR应用115可以可选地将图像转换为灰度图。金融卡通常在卡102的表面上包含图片、徽标、设计、图标、名字、全息图以及其他美术品。通过OCR应用115将图像转换为灰度图,在某些环境下可以使得边缘位置更加可辨别。转换到灰度图,或者其他合适图像操纵,可以发生在OCR处理的任何其他时间。例如,灰度图转换可以发生在边缘检测之后。
[0089] 在块315中,OCR应用115识别每个边缘取景区域中的边缘。OCR应用115找到每个边缘取景区域中的区别于区域中平均噪声水平的一个或多个线。OCR应用115可以定位卡102的边缘,但也可以定位在卡102上印刷的线、在卡102所位于的表面上的线、或者图像中的其他线。在某些环境中,卡102的边缘不是图像中最显著的线。因此,OCR应用115捕捉多条线来确保卡102的边缘与其他线一起被识别。
[0090] 边缘检测处理是数学方法集合,其旨在识别数字图像在其处的图像亮度剧烈变化或具有不连续性的点。图像亮度在其处变化的点通常被组织为一组边缘。典型的边缘可以是卡102和卡下方的表面之间的边界。与之对照,线可以是在未改变背景上的不同颜色的少量像素,诸如卡102上的卡美术品的部分。对于线,可以在线的每一侧存在一个边缘。一旦OCR应用115计算边缘强度的测量(通常是梯度幅值),应用阈值来决定是否存在边缘。阈值越低,将检测到越多的边缘,且结果将更加易受噪声以及在图像中检测不相关特征的边缘的影响。相反地,高阈值可能错失微小的边缘,或者导致碎片边缘。
[0091] OCR应用115在边缘取景区域中使用任何合适线检测软件或硬件来识别线或边缘。线检测可以由OCR应用115或另一合适模块针对用户计算设备110来执行。在替选实施例中,边缘检测可以由远程计算设备(诸如图像已被传递到其的OCR系统服务器124)来执行。如果没有检测到适当的线,则图像可能被拒绝。
[0092] 图8是根据某些示例实施例的表示所识别的卡102的边缘的线的图示。卡102被示出,其中边缘被识别为线805。线805被示出为外延的。线805可以经由外延而延伸到屏幕605的边界或者任何合适的边界。卡102被利用松定位而示出。也就是,卡102没有被定位于与相机114前平行的位置。尽管是松定位,边缘取景区域610在每个区域中找到边缘805。
[0093] 返回到图3,在块320中,OCR应用115提取强线候选。如果检测到多个线,则OCR应用115可以从所检测到的线或一组强边缘候选中识别最强的边缘候选。最强的线候选可以是最区别于背景噪声的线,或者可以由任何合适准则来识别。从块320,方法310返回到图2中的块215。
[0094] 返回到图2,在块215中,OCR应用115执行几何验证来在图像中隔离卡。块215的细节在图4的方法215中更详细描述。
[0095] 图4是根据某些示例实施例的、描绘用于执行几何验证的方法的块流程图。
[0096] 在块405中,卡边缘候选线被合并到一系列交叉。线或线的外延可以与其他线或其他线的外延相交。线的相交形成交叉。OCR应用115可以识别图像中所有线的交叉点。
[0097] 在块410中,卡边缘交叉被合并到一系列四边形。例如,OCR应用115识别一起可以外延以形成四边形的两个或四个交叉。OCR应用115可以识别由候选交叉形成的多于一个的四边形。一些候选边缘线和交叉可以用于多个四边形中。示例交叉和四边形在图9中图示。
[0098] 图9是根据某些示例实施例的表示所识别的卡的边缘的线805所形成的四边形905的图示。如图3中所述,线805被OCR应用115所识别。如块405中所述,交叉910被OCR应用115所识别。如块410中所述,四边形905被OCR应用115所识别。例如,在识别强边缘候选805之后,OCR应用识别线805的交叉910。交叉910的位置被分析,且四边形缘905可以被建模,其中交叉910被建模为四边形905的拐角。
[0099] 返回图4,在块415中,OCR应用115还可以在三维(“3D”)空间中渲染卡102的图像以修正四边形的形状。OCR应用115可以操纵图像以产生四边形和图像中的卡的3D模型以允许图像与不同视角重新对准。3D模型可以由OCR应用115或另一计算设备通过图像的数字操纵而创建。
[0100] 通过开发对象的任何三维表面的数学表示来创建3D模型。产品被称为3D模型。3D模型可以通过被称为3D渲染的过程而被显示为二维图像。
[0101] 当创建3D模型时,OCR应用115不能确定线上哪个点与来自单个图像的图像点相对应。如果两个图像可用,则3D点的位置可以被发现为两个投射线的交叉。该处理被称为三角测量。如果OCR应用115从相机114获得多个图像,则可以根据对图像上许多点的三角测量而创建详细的3D模型。点的三角测量允许OCR应用115确定二维图像中每个点的深度。一旦创建了多个深度映射,OCR应用115将这些映射组合以通过计算深度并投射出相机114而创建最终网。
[0102] 3D模型可以被旋转、缩放、或者以任何方式操纵以允许OCR应用115观看卡102的视角,该视角对于二维图像的观看者来说是不可用的。
[0103] 在替选实施例中,卡没有被渲染为3D。对卡图像应用变换函数以计算前平面图像。计算出的图像稍后在处理中被用于执行对图像的透视变换。
[0104] 在块420中,OCR应用115通过将图像中的卡带到前平行视角而修正图像中的卡。OCR应用115调整图像的视角直到最可能的四边形前平行于相机114。
[0105] 例如,OCR应用115识别图像中最接近复制期望卡102的形状的四边形。如果图像中的卡102是信用卡,则OCR应用115访问与期望信用卡的纵横比相关联的信息。期望形状可以从存储在用户计算设备110上或另一合适位置的卡形状数据库中获得。例如,信用卡、驾驶证、积分卡、和其他卡通常满足对卡的纵横比的工业标准。工业标准可以存储在OCR应用115中或者可由OCR应用115访问的位置。
[0106] 在块425中,OCR应用115识别满足期望卡形状的四边形。OCR应用115可以比较候选四边形与期望卡的纵横比。OCR应用115可以比较由图像的3D渲染而产生的不同视角处的候选四边形。也就是,OCR应用115可以比较每个四边形的不同视角,直到特定视角中的特定四边形产生了匹配期望纵横比的纵横比。如果OCR应用115识别满足期望卡形状的多于一个的四边形,则这里所述的处理可以针对每个这样的四边形而执行。
[0107] 在特定实施例中,块425在块410后立即进行。也就是,在如块415和420中所述,图像在3D空间中被渲染、转换为前平面图像、或者被应用透视变换之前,最接近复制期望卡形状的四边形被识别。
[0108] OCR应用115可以根据要被识别为卡的最佳渲染的四边形所需的期望纵横比来配置阈值变量。在另一示例中,OCR应用115选择产生最接近匹配期望卡的纵横比的特定视角中的特定四边形。如果没有四边形匹配期望卡的纵横比,图像可能被拒绝。
[0109] 从块425,方法215返回到图2的块220。
[0110] 返回图2,在块220中,OCR应用115隔离卡102的图像。OCR应用115可以使用形成所识别的四边形的边缘作为卡102的边缘并且剪裁图片以只显示和处理卡。
[0111] 在块225中,OCR应用115可以剪裁图像以只显示来自卡102的所需信息。例如,如果图像中的卡102是信用卡,则OCR应用115访问与信用卡的账户号的所期望位置相关联的信息。所期望位置可以从存储在用户计算设备110上或另一合适位置的卡布局的数据库中获得。信用卡、驾驶证、积分卡、和其他卡通常满足用于数据位置和卡布局的工业标准或特定发行者标准。标准可以存储在OCR应用115中或可由OCR应用115访问的位置。在特定环境中,数据位置可以由卡102的发行者提供。
[0112] 在块230中,OCR应用115执行OCR算法或其他计算机实现的处理来确定卡信息。例如,OCR应用115可以使用OCR算法来分析卡或剪裁卡的图像以提取信用卡的金融账户号。所提取的号可以被呈现给用户101以用于验证、存储在OCR应用115中、传送到远程计算机、存储在数字钱包应用模块111中、或者以任何合适方式使用。诸如用户名、有效期、安全码、或者任何合适信息的其他信息,也可以从图像中提取出来。
[0113] 图5是根据某些示例实施例的、描绘用于从多个卡中提取金融账户信息的方法的块流程图。
[0114] 在图5的块505中,用户101同时扫描多个卡102的图像。例如,用户101可以将多个卡102布置在诸如桌子上的平坦表面上。用户101可以将相机114悬停在卡102上方并且在图像中捕捉所有卡102的图像。在另一示例中,用户101可以用相机在卡102上扫描,直到捕捉到每个卡102的图像。
[0115] 图10是根据某些示例实施例的、显示多个卡102的用户计算设备110的图示。在图示中,用户计算设备110的屏幕605显示四个卡102的图像。例如,四个卡102放置在平坦表面上且相机114用来获得包含全部四个卡102的图像。图示中的卡102包括四种不同类型的卡102。卡1005图示了由银行A发行的信用卡。卡1010图示了由银行B发行的信用卡。卡1015图示了由商店A发行的积分卡。卡1020图示了由银行C发行的储值卡。
[0116] 返回图5,在块510中,OCR应用115检测多个卡102的边缘。OCR应用115可以以与之前在图3的方法210中描述相似的方式从图像中识别线或边缘,包括边缘区域610中的边缘(参见图6)和不在边缘区域中的边缘。在块510中,OCR应用可以将之前结合图2和3所述的块210的方法或者类似方法应用到多个卡。例如,与多个卡102相对应的单个图像中的许多线被识别。在识别线之后,线的交叉被定位。在单一图像中来自多个卡102中每个的线和交叉将在图像的框内形成多个位置中的多个四边形。
[0117] 在块215中,OCR应用115识别四边形、渲染3D中的图像、执行透视变换为修正卡102、以及确定满足期望卡形状的四边形,如之前参考图4所述的方法215中详细描述的。OCR应用115针对包括所有四边形的图像执行3D建模或者OCR应用115可以隔离每个提议的四边形并且将每个提议的四边形复制为分立的图像。满足期望纵横比的四边形可以被隔离为分别的图像以用于分析。在替选示例中,卡图像在单个图像上保留。
[0118] 在另一示例中,卡102的图像在卡102的扫描中被捕捉。OCR应用115可以从多个角度和帧捕捉视频或一系列图像。如这里所述,OCR应用115可以分析多个图像并捕捉线、交叉、和四边形。如这里所述,OCR应用115可以在3D中对图像建模并且产生可能卡的图像。
[0119] 在块520中,OCR应用115隔离每个卡102的图像。可以从边缘和交叉识别多个四边形作为可能的卡102。基于对纵横比的分析、3D模型和任何合适的分析,多个识别的四边形可以被确定为是多个卡102的可能的边界。OCR应用115可以使用形成所识别的四边形的边缘和交叉作为卡102的边界并且剪裁图片以显示和处理多个卡。
[0120] 在块225中,OCR应用115可以剪裁图像从而只显示来自每个卡102的所需信息,如图2中块225中详细所述。
[0121] 在块230中,OCR应用115识别金融账户信息,如图2的块230中所述。
[0122] 在块535中,OCR应用115比较从每个卡102提取的金融账户信息以确定差别和共性。例如,OCR应用115可以比较与每个卡102相关联的用户101的名字以搜索提取错误。在此示例中,OCR应用115可以确定从图像中提取的用户101的名字在4个情况中的3个中都相同。
[0123] 在块540中,OCR应用115确定不同的所提取的用户名可能具有错误或者名字匹配所有卡。OCR应用115可以再次分析不同的图像以确定结果是否一致。此外或替选地,OCR应用115请求用户101输入以确定用户信息是否正确。例如,如果两个卡产生不同的信息,则OCR应用115可以呈现选项给用户101以校正两个卡102之一。在一些环境中,不同的用户信息可能都要被校正,尽管用户信息可能会不同。例如,一个卡可以用John Smith作为用户名而另一卡用J.A.Smith作为用户名。在某些实施例中,OCR应用115可以只比较用户信息的一部分,诸如用户101的姓,以允许不同的格式。在某些实施例中,OCR应用115可以改正与卡102上的用户信息不同的所提取的用户信息。
[0124] 其他示例实施例
[0125] 图11描绘根据特定实施例的计算机器2000和模块2050。计算机器2000可以对应于任何各种计算机、服务器、移动设备、嵌入式系统或这里呈现的计算系统。模块2050可以包括一个或多个硬件或软件元素,被配置为便利计算机器2000执行这里呈现的各种方法和处理功能。计算机器2000可以包括诸如处理器2010、系统总线2020、系统存储器2030、存储介质2040、输入/输出接口2060和用于同网络2080通信的网络接口2070的各种内部或所附组件。
[0126] 计算机器2000可以被实现为常规计算机系统、嵌入式控制器、膝上型计算机、服务器、移动设备、智能电话、机顶盒、自助售货机、车辆信息系统、与电视相关联的一个或多个处理器、定制机器、任何其他硬件平台、或者其任何组合或多样性。计算机器2000可以是被配置成使用经由数据网络或总线系统互连的多个计算机器工作的分布式系统。
[0127] 处理器2010可以被配置成执行代码或指令以执行这里所述的操作和功能、管理请求流和地址映射,以及执行计算和生成命令。处理器2010可以被配置成监视和控制计算机器2000中的组件的操作。处理器2010可以是通用处理器、处理器核心、多处理器、可再配置处理器、微控制器、数字信号处理器(“DSP”)、专用集成电路(“ASIC”)、图形处理单元(“GPU”)、现场可编程门阵列(“FPGA”)、可编程逻辑器件(“PLD”)、控制器、状态机、门控逻辑、离散硬件组件、任何其他处理单元、或者其任何组合或多样性。处理器2010可以是单个处理单元、多个处理单元、单个处理核心、多个处理核心、专用处理核心、协同处理器、或者其任何组合。根据特定实施例,处理器2010连同计算机器2000的其他组件可以是在一个或多个计算机器内执行的虚拟化的计算机器。
[0128] 系统存储器2030可以包括非易失性存储器,诸如只读存储器(“ROM”)、可编程只读存储器(“PROM”)、可擦除可编程只读存储器(“EPROM”)、闪存、或者具有或不具有施加的电力且能够存储程序指令或数据的任何其他设备。系统存储器2030还可以包括易失性存储器,诸如随机存取存储器(“RAM”)、静态随机存取存储器(“SRAM”)、动态随机存取存储器(“DRAM”)和同步动态随机存取存储器(“SDRAM”)。其他类型的RAM还可以用于实现系统存储器2030。系统存储器2030可以使用单个存储器模块或多个存储器模块来实现。尽管系统存储器2030被描绘为计算机器2000的一部分,本领域技术人员将认识到,系统存储器2030可以与计算机器2000分离而不偏离主题技术的范围。还应该认识到,系统存储器2030可以包括诸如存储介质2040的非易失性存储设备,或者结合其而操作。
[0129] 存储介质2040可以包括硬盘、软盘、压缩盘只读存储器(“CD-ROM”)、数字通用盘(“DVD”)、蓝光盘、磁带、闪存、其他非易失性存储设备、固态驱动器(“SSD”)、任何磁存储设备、任何光存储设备、任何电存储设备、任何半导体存储设备、任何基于实体的存储设备、任何其他数据存储设备、或者其任何组合或多样性。存储介质2040可以存储一个或多个操作系统、应用程序和诸如模块2050的程序模块、数据或任何其他信息。存储介质2040可以是计算机器2000的一部分或连接到计算机器2000。存储介质2040还可以是诸如服务器、数据库服务器、云存储、连接网络的存储器等等的与计算机器2000通信的一个或多个其他计算机器的一部分。
[0130] 模块2050可以包括一个或多个硬件或软件元素,被配置成便利计算机器2000来执行这里呈现的各种方法和处理功能。模块2050可以包括与系统存储器2030、存储介质2040或二者都相关联的存储作为软件或固件的一个或多个指令序列。存储介质2040可以由此表示机器或计算机可读介质的示例,在其上可以存储有指令或代码以便由处理器2010执行。机器或计算机可读介质可以通常指的是用于提供指令给处理器2010的任何媒介或介质。这样的与模块2050相关联的机器或计算机可读介质可以包括计算机软件产品。应该认识到,包括模块2050的计算机软件产品还可以与经由网络2080、任何信号承载媒介、或任何其他通信或递送技术来递送模块2050给计算机器2000的一个或多个处理或方法相关联。模块
2050还可以包括硬件电路或用于配置硬件电路的信息,诸如微代码或用于FPGA或其他PLD的配置信息。
[0131] 输入/输出(“I/O”)接口2060可以被配置为耦合到一个或多个外部设备,以从一个或多个外部设备接收数据,以及发送数据到这一个或多个外部设备。这样的外部设备连同各种内部设备一起还被称为外围设备。I/O接口2060可以包括电和物理双重连接,用于可操作地将各种外围设备耦合到计算机器2000或处理器2010。I/O接口2060可以被配置成在外围设备、计算机器2000或处理器2010之间传送数据、地址和控制信号。I/O接口2060可以被配置成实现任何标准接口,诸如小型计算机系统接口(“SCSI”)、串行附连的SCSI(“SAS”)、光纤通道、外围组件互连(“PCI”)、PCIexpress(PCIe)、串行总线、并行总线、先进技术连接(“ATA”)、串行ATA(“SATA”)、通用串行总线(“USB”)、Thunderbolt、FireWire、各种视频总线等。I/O接口2060可以被配置成只实现一个接口或总线技术。可替选地,I/O接口2060可以被配置成实现多个接口或总线技术。I/O接口2060可以被配置成系统总线2020的一部分、全部,或者结合其而操作。I/O接口2060可以包括一个或多个缓冲器,用于缓冲一个或多个外部设备、内部设备、计算机器2000或处理器2010之间的传输。
[0132] I/O接口2060可以将计算机器2000耦合到各种输入设备,包括鼠标、触摸屏、扫描仪、电子数字转换器、传感器、接收机、触摸板、轨迹球、相机、麦克风、键盘、任何其他指示设备、或者其任何组合。I/O接口2060可以将计算机器2000耦合到各种输出设备,包括视频显示器、扬声器、打印机、投影仪、触觉反馈设备、自动控制、机器人组件、致动器、电机、风扇、螺线管、阀门、泵、发射器、信号发射器、光源等等。
[0133] 计算机器2000可以使用通过网络接口2070到跨越网络2080的一个或多个其他系统或计算机器的逻辑连接而操作在联网环境中。网络2080可以包括广域网(WAN)、局域网(LAN)、内联网、互联网、无线接入网络、有线网络、移动网络、电话网络、光学网络、或者其组合。网络2080可以是任何拓扑的分组交换、电路交换、以及可以使用任何通信协议。网络2080内的通信链路可以包括诸如光纤电缆、自由空间光学、波导、电导器、无线链接、天线、射频通信等等的各种数字或模拟通信介质。
[0134] 处理器2010可以通过系统总线2020连接到计算机器2000的其他元件或者这里讨论的各种外围设备。应该认识到,系统总线2020可以在处理器2010内部,在处理器2010外部,或二者都有。根据某些实施例,处理器2010、计算机器2000的其他元件或者这里讨论的各种外围中任何一个可以被集成到诸如片上系统(“SOC”)、封装上系统(“SOP”)或者ASIC设备的单个设备中。
[0135] 在这里所讨论的系统收集有关用户的个人信息,或者利用个人信息的情形中,可以向用户提供机会或选项来控制程序或装置是否收集用户信息(例如,有关用户社交网络、社交行为或活动、职业、用户的偏好或用户的当前位置的信息),或者控制是否和/或怎样从内容服务器接收可以与用户更相关的内容。此外,某些数据在其被存储或使用之前可以以一个或多个方式来对待,使得个人可识别的信息被去除。例如,用户的身份可以被处理,使得没有个人可识别信息可以被确定用户用户,或者用户的地理位置可以被一般化,由此可获得位置信息(诸如概括至城市、ZIP码或国家级),使得用户的特定位置不被确定。这样,用户可以具有对怎样收集有关用户的信息以及由内容服务器使用信息的控制。
[0136] 实施例可以包括计算机程序,其实现这里描述和图示的功能,其中,计算机程序在包括存储在机器可读媒介的指令和执行指令的处理器的计算机系统中实现。但是,应该显然的是,可以存在许多不同方式来在计算机编程中实现实施例,且实施例不应该理解为限定为任何一组计算机程序指令。而且,本领域编程人员将能够写出这样的计算机程序来基于所附流程图和申请文本中的相关联描述而实现所公开的实施例的实施例。因此,不考虑充分理解怎样做出和使用实施例所必需的特定程序代码指令集合的公开。进而,本领域技术人员将认识到,这里描述的实施例的一个或多个方面可以由硬件、软件或其组合来执行,如可以在一个或多个计算系统中实现的那样。而且,对由计算机执行的动作的任何引用不应该被理解为由单个计算机执行,因为多于一个的计算机可以执行该动作。
[0137] 这里描述的示例实施例可以通过执行这里所述的方法和处理功能的计算机硬件和软件来使用。这里所述的系统、方法、和过程可以在可编程计算机、计算机可执行软件、或数字电路中实现。软件可以存储在计算机可读介质上。例如,计算机可读介质可以包括软盘、RAM、ROM、硬盘、可移动介质、闪存、记忆棒、光介质、磁光介质、CD-ROM等等。数字电路可以包括集成电路、门阵列、构造模块逻辑、现场可编程门阵列(FPGA)等等。
[0138] 之前所呈现的实施例中所述的示例系统、方法、和动作是说明性的,并且,在替选实施例中,某些动作可以以不同次序、相互并行、整体忽略和/或在不同示例实施例之间组合来执行,和/或某些附加动作可以被执行,而不偏离各种实施例中的范围和精神。因此,这样的可替选实施例包括在这里所要求保护的发明中。
[0139] 尽管上面已经详细描述了特定实施例,该描述仅仅用于说明目的。因此,应该认识到,上述许多方面不希望作为必需或重要元素,除非明确陈述。除了上述这些之外,示例实施例的所公开方面的修改或与之对应的等同部件或动作,可以由从本公开受益的本领域普通技术人员做出,而不偏离所附权利要求中所限定的实施例的精神和范围,该范围应符合最宽解释,从而包含这样的修改和等同结构。