用于图像分析的方法和系统的制作方法
【专利摘要】本发明公开了一种用于处理图像的方法。所述方法包括:识别出图像中的一组关键点;对于该组当中的每一个关键点:a)计算包括多个数组元素的相应的描述符数组,其中每一个数组元素存储由该关键点的邻域内的所述图像的对应子区段的相应的颜色梯度直方图所取得的数值;b)通过对所述描述符数组的至少一部分进行压缩生成至少一个已压缩描述符数组,所述压缩是通过利用包括多个码字(CW)的码本(CBK)进行矢量量化而实现的。
【专利说明】用于图像分析的方法和系统
[0001] 发明背景
【技术领域】
[0002] 本发明涉及图像分析领域。
【背景技术】
[0003] 在图像分析领域内,一种常见的操作是对两幅图像进行比较,以便在全部两幅图 像包括相同场景或相同对象的至少一部分的情况下找到存在于二者之间的关系。
[0004] 在多种应用当中,图像比较对于以下应用极为重要:校准属于一个多摄影机系统 的各台视频摄影机,评估在一次视频拍摄的两帧之间发生的运动,以及辨识出图像(例如 图片)内的对象。后一种应用现在由于特别被设计成采用在所谓的视觉搜索引擎中的对象 辨识算法的近来发展正变得越来越重要,所述视觉搜索引擎即从一幅图片开始能够识别出 其中所描绘的(多个)对象并且给出与所识别出的(多个)对象有关的信息的自动化服务。 这种类型的已知的服务的实例包括Google Goggles、Nokia Point&Find以及kooaba Smart Visuals。对象辨识应用通常把描绘将要辨识的对象的第一图像(术语称作"查询图像") 与分别描绘对应的已知对象的多幅模型图像进行比较;这样允许在查询图像中所描绘的对 象与模型图像中所描绘的对象之间进行比较。
[0005] 模型图像通常被设置在适当的模型数据库中。举例来说,在在线购物情形中利用 对象辨识的情况下,每一幅模型图像对应于由在线商店提供的一个项目(例如书封面、DVD 封面和/或CD封面的图片)。包括在此类数据库中的模型图像的数目相当多;举例来说, 在线购物服务的模型数据库可以包括几百万幅不同的模型图像。
[0006] 在两幅图像之间实施比较操作的一种非常高效的方式是在第一图像中选择一个 点集合(术语称作"关键点"),并且随后把所述集合当中的每一个关键点与第二图像中的 相应关键点进行匹配。关于必须将第一图像中的哪一点作为关键点的选择有利地是通过提 取出所述图像的围绕该点本身的区域的局部特征来实施的,比如点提取尺度、所述区域的 特权指向(privileged orientation)以及所谓的"描述符"。在图像分析领域内,关键点的 描述符是描述以该关键点为中心的图像区域(其被称作贴片)的亮度梯度的数学运算符, 其中此类贴片的指向是根据该贴片本身的主要亮度梯度。
[0007] 在 David G. Lowe 的"Distinctive images features from scale-invariant keypoints (来自尺度不变关键点的独特图像特征)"(International Journal of computer vision, 2004年)中提出了尺度不变特征变换(SIFT)描述符;简而言之,为了允 许进行可靠的图像辨识,在生成SIFT描述符时考虑到以下情况:即使在图像尺度、噪声和 照明发生改变的情况下,提取自图像的对应于每一个关键点的局部特征仍然应当是可检测 的。因此,SIFT描述符对于均匀尺度、指向是不变的,并且对于仿射失真和照明改变是部分 地不变的。
[0008] SIFT描述符是相当强有力的工具,其允许选择关键点以用于进行准确的图像比 较。但是这一准确性只有在使用相当大量的数据的情况下才能实现;举例来说,典型的 SIFT描述符是128数据字节的数组。由于每一幅图像中的关键点的数目相对较多(例如对 于标准的VGA图片是1000-1500个关键点),并且由于每一个关键点与相应的SIFT描述符 相关联,因此将要处理的数据总量可能变得过大从而无法被高效地管理。
[0009] 这一缺陷在所述情形涉及使用移动终端的情况下更加恶化(例如对于从通过智 能电话的摄影机拍摄的图片中提取的对象进行识别)。实际上,由于为了实施图像分析而将 实施的操作相当复杂并且在计算负荷方面需求较高,因此在这种情况下,大多数操作通常 在服务器侧实施;为了具有对于实施所述分析所需要的所有信息,服务器需要从移动终端 接收所需要的全部数据,其中包括对应于所有关键点的SIFT描述符。因此,将从终端传送 到服务器的数据量可能变得过大从而无法保证所述服务的良好效率。
[0010] 根据本领域内已知的一种解决方案,比如由Google Goggles采用的解决方案,通 过直接从移动终端向服务器传送图像而非描述符在根本上解决了这一缺陷。实际上,由于 关键点的数目相当多,因此相应的SIFT描述符的数据量可能超出标准VGA图片本身的尺寸 (以字节计)。
【发明内容】
[0011] 申请人:已经发现,本领域内已知的方法效率不高,其仍然要求管理大量数据,从而 限制系统的可伸缩性和总体性能。
[0012] 申请人:解决了关于如何在将要处理的数据量方面改进这些方法的问题。
[0013] 具体来说, 申请人:解决了关于提供一种需要管理更少数据量的用于处理图像的方 法的问题。
[0014] 申请人:已经发现,前面的问题通过压缩码本矩阵得以解决,这是通过对码本矩阵 进行因式分解并且截断从所述因式分解得到的矩阵实现的。本发明的一个方面涉及一种用 于处理图像的方法,其包括:
[0015] 识别出图像中的一组关键点;
[0016] 对于该组当中的每一个关键点:
[0017] a)计算包括多个数组元素的相应的描述符数组,其中每一个数组元素存储由该关 键点的邻域内的所述图像的对应子区段的相应的颜色梯度直方图所取得的数值;
[0018] b)通过对所述描述符数组的至少一部分进行压缩生成至少一个已压缩描述符数 组,所述压缩是通过利用包括多个码字的码本进行矢量量化而实现的;
[0019] 利用所述一组关键点当中的各个关键点的所述至少一个已压缩描述符数组来分 析图像,其中所述方法还包括:
[0020] 压缩码本,所述压缩码本包括:
[0021] 生成码本矩阵,所述码本矩阵的每一行是该码本的一个码字;
[0022] 对码本矩阵进行因式分解以便获得至少第一矩阵和第二矩阵的乘积,第二矩阵的 各个项目的能量随着该矩阵的列索引的增大总体上是不增大的;
[0023] 通过从中去除第一数目的最后各列而截断第一矩阵;
[0024] 通过从中去除第一数目的最后各列和第一数目的最后各行而截断第二矩阵;
[0025] 生成对应于截断后的第一矩阵与截断后的第二矩阵的乘积的另一个第一矩阵;
[0026] 对另一个第一矩阵的每一个项目进行量化,其中利用相应数目的量化水平对属于 另一个第一矩阵的一列的每一个项目进行量化,其中所述相应数目低于或等于被用来对属 于在前的一列的各个项目进行量化的量化水平的数目;
[0027] 生成另一个第二矩阵,其中另一个第二矩阵当中的每一个项目对应于另一个第一 矩阵当中的一个项目,所述另一个第二矩阵当中的每一个项目是关联到另一个第一矩阵当 中的相应的已量化项目所采取的量化水平的索引;
[0028] 通过把另一个第二矩阵的所述索引记忆在存储器单元中来存储码本。
[0029] 根据本发明的一个实施例,第一矩阵(U)是规格化正交矩阵,第二矩阵(S)是对角 矩阵,其各个对角项目对应于码本矩阵(C)的各个奇异值,属于第二矩阵的一列(最后一列 除外)的每一个对角项目高于属于后一列的项目。
[0030] 根据本发明的一个实施例,至少第一矩阵(U)与第二矩阵(S)的所述乘积还包括 第三矩阵(V)的转置,第三矩阵(V)是规格化正交矩阵,
[0031] 并且其中所述方法还包括:
[0032] 通过从中去除第一数目的最后各列而截断所述第三矩阵;
[0033] 把截断后的第三矩阵存储在存储器单元中。
[0034] 根据本发明的一个实施例,所述截断第一、第二和第三矩阵还包括:
[0035] 计算第二矩阵的能量;
[0036] 当记忆在存储器单元中时设定对应于由另一个第二矩阵的所有已量化项目占据 的存储器空间的第一目标数值;
[0037] 对于第二矩阵的每一个对角项目,计算对应于第一目标数值乘以该项目的能量与 第二矩阵的能量之间的比值的对应的分配数值;
[0038] 将每一个分配数值取整到一个整数值;以及
[0039] 将第一数目设定到码本矩阵的列数减去第二矩阵的更高列索引,其中对于所述更 高列索引,与属于第二矩阵的由该列索引标识的该列的对角项目相对应的已取整分配数值 高于一定阈值。
[0040] 根据本发明的一个实施例,对于另一个第一矩阵的每一个项目的所述量化还包 括,对于另一个第一矩阵的每一列,把用于对另一个第一矩阵的所述列当中的每一个项目 进行量化的量化水平的相应数目设定到2的乘方,所述乘方的次数是与属于第二矩阵的其 列索引与另一个第一矩阵的所述列相同的一列的对角项目相对应的已取整分配数值。
[0041] 根据本发明的一个实施例,所述方法还包括:
[0042] 选择数据类型;
[0043] 通过一定系数对截断后的第三矩阵当中的每一个项目进行缩放,所述系数对应于 可以利用所选数据类型表示的最高数值与截断后的第三矩阵的各个项目的绝对值当中的 最高绝对值之间的比值;以及
[0044] 利用所选数据类型表示截断后的第三矩阵的每一个经过缩放的项目,所述存储码 本还包括将利用所选数据类型表示的截断后的第三矩阵的各个经过缩放的项目记忆在存 储器单元中。
[0045] 根据本发明的一个实施例,所述生成另一个第一矩阵包括将截断后的第一矩阵乘 以截断后的第二矩阵,并且随后将所得到的矩阵的每一个项目乘以所述系数。
[0046] 根据本发明的一个实施例,对码本矩阵的所述因式分解包括利用奇异值分解。
[0047] 根据本发明的一个实施例,所述方法还包括,在将码本矩阵因式分解成至少第一 和第二矩阵的乘积之前,计算从码本矩阵的所有各行的平均值获得的平均数组并且随后 从码本矩阵的每一行减去该平均数组,所述存储码本还包括将平均数组记忆在存储器单元 中。
[0048] 本发明的另一方面提供一种用于处理包括一组关键点的图像的系统。所述系统被 配置成实施以下操作:
[0049] 对于该组当中的每一个关键点:
[0050] a)计算包括多个数组元素的相应的描述符数组,其中每一个数组元素存储由该关 键点的邻域内的所述图像的对应子区段的相应的颜色梯度直方图所取得的数值;
[0051] b)通过对所述描述符数组的至少一部分进行压缩生成至少一个已压缩描述符数 组,所述压缩是通过利用包括多个码字的码本进行矢量量化而实现的;
[0052] 利用所述一组关键点当中的各个关键点的所述至少一个已压缩描述符数组来分 析图像,其中所述方法还包括:
[0053] 压缩码本,所述压缩码本包括:
[0054] 生成码本矩阵,所述码本矩阵的每一行是该码本的一个码字;
[0055] 对码本矩阵进行因式分解以便获得至少第一矩阵和第二矩阵的乘积,第二矩阵的 各个项目的能量随着该矩阵的列索引的增大总体上是不增大的;
[0056] 通过从中去除第一数目的最后各列而截断第一矩阵;
[0057] 通过从中去除第一数目的最后各列和第一数目的最后各行而截断第二矩阵;
[0058] 生成对应于截断后的第一矩阵与截断后的第二矩阵的乘积的另一个第一矩阵;
[0059] 对另一个第一矩阵的每一个项目进行量化,其中利用相应数目的量化水平对属于 另一个第一矩阵的一列的每一个项目进行量化,其中所述相应数目低于或等于被用来对属 于在前的一列的各个项目进行量化的量化水平的数目;
[0060] 生成另一个第二矩阵,其中另一个第二矩阵当中的每一个项目对应于另一个第一 矩阵当中的一个项目,所述另一个第二矩阵当中的每一个项目是关联到另一个第一矩阵当 中的相应的已量化项目所采取的量化水平的索引;
[0061] 通过把另一个第二矩阵的所述索引记忆在存储器单元中来存储码本。
[0062] 本发明的另一方面提供一种软件程序产品,其包括被配置成实施根据第一方面或 者其任何实施例的方法的代码部分。
【专利附图】
【附图说明】
[0063] 通过后面将结合附图阅读的对于一些示例性和非限制性实施例的描述,本发明的 前述和其他特征和优点将变得显而易见,其中:
[0064] 图1以方框图的形式示出了根据本发明的一个实施例的提取规程,所述提取规程 旨在从查询图像中提取出最优关键点集合并且生成已压缩描述符集合;
[0065] 图2A-2F是根据本发明的一些示例性实施例的关键点的相应的所选局部特征的 统计分布;
[0066] 图2G是根据图1的提取规程处理的示例性图片;
[0067] 图3A示出了 SIFT类型的示例性描述符;
[0068] 图3B示出了图3A的描述符的示例性描述符数组;
[0069] 图4A示出了根据本领域内已知的一种解决方案的示例性描述符数组压缩;
[0070] 图4B示出了根据本领域内已知的另一种解决方案的示例性描述符数组压缩;
[0071] 图5示出了根据本发明的一个实施例的各个相关族(correlation families)中 的描述符的子直方图的设置;
[0072] 图6A-6D示出了如何根据本发明的示例性实施例来压缩描述符数组;
[0073] 图7A示出了关键点KP的示例性分布;
[0074] 图7B示出了如何能够在查询图像上叠加格栅以用于量化图7A的关键点的坐标;
[0075] 图7C是通过把图7B的格栅叠加在图7A的关键点KP的集合上而获得的直方图的 示例性图形描绘;
[0076] 图7D标识出完全由不包括任何关键点的单元形成的图7B的格栅的各列和各行;
[0077] 图7E示出了秩1支持(rank-1 support)上的示例性直方图;
[0078] 图7F示出了对应于图7E的秩1支持上的直方图的直方图映射图;
[0079] 图8A示出了字直方图的一个实例;
[0080] 图8B示出了直方图映射图的一个实例;
[0081] 图9以方框图的形式示出了根据本发明的一个实施例的匹配规程,所述匹配规程 旨在实施两幅图像之间的比较;
[0082] 图10以方框图的形式示出了根据本发明的一个实施例的取回规程,所述取回规 程旨在从模型数据库取回描绘在查询图像中所描绘的相同对象/场景的模型图像;
[0083] 图11是示出了根据本发明的一个实施例的码本压缩规程的各个主要阶段的流程 图;
[0084] 图12是示出了根据本发明的一个实施例的用于选择将被使用在码本压缩规程中 的一些参数值的方法的各个主要阶段的流程图;
[0085] 图13A-13G示出了基于未压缩码本和基于已压缩码本的图像比较系统的性能。
【具体实施方式】
[0086] 提取规程(图1)
[0087] 图1以方框图的形式示出了根据本发明的一个实施例的在后文中被称作"提取规 程"并且通过附图标记100标识出的规程,其旨在处理输入图像以便获得最优关键点集合并 且生成相应的描述符集合。所述关键点和描述符随后将被利用于图像分析目的。在后面的 描述中,"图像分析"和"分析图像"的一般表达法意图包括将一幅图像与至少一幅其他图像 进行比较的所有操作。这些操作可以在多种应用中实施,比如在对象辨识应用中实施,以及 在用于从多幅不同图片开始创建单一全景图片的应用中实施。
[0088] 正如后面将描述的那样,根据本发明的一个实施例的提取规程还提供选择最优关 键点子集并且压缩所述关键点的描述符,从而大大改进后续规程的效率。
[0089] 在本节中描述的提取规程100的各个步骤可以由适当的处理单元实施,其结构和 功能取决于其所针对的具体应用领域。举例来说,每一个处理单元可以是专门被设计成实 施所述方法的一个或多个步骤的硬件单元。此外,所述方法的各个步骤可以在相应的指令 集合的控制下由可编程机器(例如计算机)实施。
[0090] 关键点提取(阶段110)
[0091] 提取规程100的第一阶段110提供接收查询图像115并且从中提取关键点KP的 第一集合,其中的每一个关键点与标识该关键点KP在查询图像115内的位置的相应的一对 空间坐标C相关联。
[0092] 这一操作可以通过利用已知的高斯差分(DoG)关键点提取算法来实施;但是类似 的考虑在采用不同的关键点提取算法的情况下同样适用,比如黑塞行列式(DoH)关键点提 取算法。参照DoG关键点提取算法,在不同尺度下的一个序列中将查询图像115与高斯滤 波器卷积。随后在所述序列中的跟对邻近的高斯模糊图像之间实施差分操作。随后将关键 点KP选择成在多个尺度下具有高斯差分(DoG)的最大/最小值的点。具体来说,将DoG图 像中的每一个像素与其相同尺度下的八个邻居进行比较,并且与每一个相邻尺度(即所述 序列中的后一尺度和前一尺度)下的九个相邻像素进行比较。如果所述像素值是所有比较 的像素当中的最大值或最小值,则将该点考虑为候选关键点KP。
[0093] 阶段110还提供基于局部图像亮度梯度方向将每一个关键点KP指派给一个或多 个指向。举例来说,形成具有多个片元(bin)的指向直方图,其中每一个片元覆盖相应的度 数区间。通过其梯度量值以及经过高斯加权的循环窗口对添加到一个直方图片元的相邻窗 口中的每一个样本进行加权。所得到的直方图中的峰值对应于主导指向。一旦直方图被 填满,就把对应于最高峰值和处于最高峰值的80%内的局部峰值的指向指派给所述关键点 KP。在指派了多个指向的情况下,对于每一个附加指向创建与原始关键点具有相同位置和 尺度的附加关键点KP。
[0094] 因此在阶段110结束时生成关键点KP的集合,并且连同相应的坐标C、提取关键点 的尺度S、其主导指向0以及峰值P,即对应于该关键点的DoG的绝对值(从而表明其对比 度)。
[0095] 描述符生成(阶段120)
[0096] 后面的阶段120提供处理查询图像115以便对于每一个关键点KP计算相应的描 述符D。在所讨论的实例中,在阶段120处计算的描述符D是SIFT类型的描述符。提取关 键点KP的方式是为了确保对于图像位置、尺度和旋转没有变化,而计算SIFD描述符D的方 式则是为了具有高度独特性并且对于照明和视点是部分地不变的。具体来说,对于每一个 关键点KP在一个4x4格栅上计算由16个子直方图构成的一个集合,所述格栅以该关键点 KP为中心并且其指向是根据该关键点KP的主导指向。每一个子直方图包括8个片元,每一 个片元对应于关于所述主导指向成一定角度η* π /4(n = 0,1,... 7)的指向;一个子直方 图的每一个片元的频率与沿着由该片元标识的方向考虑的对应于该子直方图的格栅单元 (其在后文中被称作子区段)的亮度梯度成比例。这样的指向直方图的数值被设置在一个 数组中,从而形成关键点KP的描述符D。由于存在分别具有8个片元的4x4 = 16个子直方 图,因此描述符D是具有128个项目的数组。
[0097] 本发明的概念同样适用于在包括不同数目的单元的格栅上和/或对于每个直方 图的不同数目的片元计算SIFT描述符的情况。
[0098] 此外,虽然在所讨论的实例中提到了 SIFT类型的描述符,但是类似的考虑同样适 用于采用不同类型的描述符的情况,比如加速鲁棒特征(SURF)和指向梯度直方图(H0G)或 者可能还有其他情况。此外,虽然在前面提到并且将在后面提到包括与亮度梯度有关的数 据的描述符,但是类似的考虑同样适用于考虑不同参数的梯度的情况。实际上,正如本领域 技术人员所熟知的那样,亮度仅仅是颜色的其中一项物理属性。因此,虽然亮度被确定为 对于图像分析目的将考虑的最佳(即最鲁棒的)物理属性,但是还可以考虑不同类型的描 述符,其中例如包括与色度梯度、饱和度梯度或者甚至颜色(其同时包括亮度、饱和度和色 度)梯度有关的数据。
[0099] 如前所述,实施图像分析操作涉及管理相当大量的数据:实际上,每一个关键点 KP与多项局部特征(其在后文中由附图标记LFkp全局标识)相关联,其中包括坐标C、尺 度S、主导指向0和峰值P,以及由包括128个项目的数组形成的相应的描述符D。为此目 的,为了减少将要管理(例如将要记忆和/或传送)的数据总量,根据本发明的一个实施例 的提取规程100提供两方面的便利,也就是说:
[0100] 1)通过(从图像比较角度)选择最具相关性的关键点KP而减少先前生成的关键 点KP的数目,以便获得关键点KP的最优子集SUB ;以及
[0101] 2)适当地压缩坐标C和描述符D。
[0102] 提取规程100的阶段130旨在选择最优子集SUB,阶段140旨在压缩描述符D,并 且阶段150旨在压缩坐标C。
[0103] 选择关键点的最优子集(阶段130)
[0104] 根据本发明的一个实施例,通过以下步骤来实施对于最优子集SUB的选择:对于 查询图像115的每一个关键点KP的至少一项局部特征LFkp (坐标C、尺度S、主导指向0、峰 值P和描述符D)计算至少一项相应的特征相关性概率FRP,基于其局部特征LFkp的特征相 关性概率FRP根据关键点相关性概率KRP对各个关键点KP进行排序,并且随后选择具有最 高关键点相关性概率KRP的关键点KP。
[0105] 根据本发明的一个实施例,通过利用相应的参考统计分布Rsd来计算一般关键点 KP的每一项局部特征LFkp的特征相关性概率FRP,其中所述参考统计分布Rsd是在基准图 像数据库上实施统计评估之后预先确定的。
[0106] 参考统计分布Rsd反映出对于图像分析目的被认为是有用的关键点KP的局部特 征LFkp的统计行为。
[0107] 举例来说,在对象辨识规程的情况中,基准图像数据库是包括多个图像对的数据 库,其中每一个图像对由描绘相同对象/场景的两幅图片构成。根据本发明的一个实施例, 参考统计分布是以如下方式生成的。
[0108] 首先从基准数据库的所有图像中提取出关键点。随后对于所提出的所有关键点的 一项或更多项所选局部特征实施第一统计分析,从而生成所述所选局部特征的第一统计分 布。一项局部特征的每一项第一统计分布被设置成直方图的形式,这是通过对于从基准数 据库的各幅图像中提取出的全部关键点当中的其所述局部特征的数值落在多个预定义局 部特征数值区间(片元)内的关键点的数目(关键点频率)进行计数而获得的。随后对于 每一个图像对,将一幅图片的关键点与另一幅图片的关键点进行匹配。利用图像比较规程 (比如基于图像特征匹配的各种已知的图像比较规程当中的任一种)来处理此类关键点之 间的匹配,以便识别出哪一项匹配是正确的(正常值)以及哪一项是错误的(异常值)。随 后对先前所考虑的一项或多项相同特征实施第二统计分析,以便生成将被用于计算特征相 关性概率FRP的参考统计分布Rsd。此时,生成参考统计分布Rsd是通过对于每一个片元计 算属于正常值并且其相应的局部特征的数值落在所述片元内的关键点的数目与其相应的 局部特征的数值落在相同片元内的关键点的总数(属于正常值以及属于异常值的关键点) 之间的比值来实施的。 申请人:观察到,第一统计分布与参考统计分布Rsd彼此相当不同。由 于参考统计分布Rsd是在考虑到涉及正确特征匹配(正常值)的关键点的情况下生成的, 因此 申请人:发现,这样的统计分布是对于图像分析目的具有相关性并且特别适合于高效地 采用在图像比较规程中的关键点(在后文中被称作"相关关键点")的统计行为的良好代 表。
[0109] 图2A-2F示出了根据本发明的一些示例性实施例的关键点KP的相应的所选局部 特征LFkp的一些统计分布Rsd。具体来说,图2A-2F的统计分布Rsd是从特别针对对象辨 识应用设置的基准数据库当中的图像生成的。如果将考虑不同的图像分析应用,比如从多 幅不同图片开始创建单一全景图片,则所述基准的图像(从而还有所得到的统计分布Rsd) 将是不同的。
[0110] 图2A是与关键点KP的坐标C有关的统计分布Rsd。相应的直方图的每一个片元 代表一般关键点KP与图像中心的距离(以像素计)。在所讨论的实例中,所考虑的图像属 于VGA类型(即具有640x480的分辨率),因此所述中心对应于坐标(320, 240)。根据图2A 中不出的直方图,具有最1?关键点KP频率的片兀是对应于图像中心的片兀。这意味着关键 点KP越靠近中心,该关键点KP是相关关键点的概率就越高;随着与中心的距离增大,直方 图频率趋向单调减小。这可以很容易通过以下事实来解释:当对某一对象拍照时,所述对 象很有可能被取景在图片的中心。必须认识到,在这种情况中,直方图的各个片元并不全部 具有相同的宽度;这是由于每一个片元的宽度是为了计算很少的片元而由(标量和/或矢 量)量化器适当地确定的,从而避免发生过度拟合(overfitting)现象。本发明的想法同样 适用于采用(标量和/或矢量)均匀量化的情况,也就是说直方图的所有片元都具有相同 的宽度。
[0111] 图2B是与关键点KP的主导指向0有关的统计分布Rsd。相应的直方图的每一个 片元代表一般关键点KP关于水平线(其对应于0弧度)的主导方向的角度(以弧度计)。 根据图2B中示出的直方图,具有最高关键点KP频率的片元是对应于与水平指向平行或垂 直的指向(即对应于η/2、0、_ π/2、-π)的片元。这意味着关键点KP的指向与接近所述 指向的其中之一,该关键点ΚΡ是相关关键点的概率就越高。这可以很容易通过以下事实来 解释:当对某一对象拍照时,所述对象很有可能被取景成主要平行于和/或垂直于水平线 延伸。在本例中,各个片元的宽度同样通过量化器确定。
[0112] 图2C是与关键点ΚΡ的峰值Ρ有关的统计分布Rsd。相应的直方图的每一个片元 代表一般关键点KP与各个相邻关键点当中的最相似点之间的对比度。根据图2C中示出的 直方图,具有最1?关键点KP频率的片兀是对应于最1?峰值的片兀。这意味着关键点KP的 对比度越高,该关键点KP是相关关键点的概率就越高;随着对比度增大,直方图频率趋向 单调增大。这可以很容易通过以下事实来解释:图片的具有高对比度的点很容易辨识和识 另IJ。在本例中,各个片元的宽度同样通过量化器确定。
[0113] 图2D是与关键点KP的尺度S有关的统计分布Rsd。相应的直方图的每一个片元 代表可以提取关键点KP的特定尺度S。根据图2D中示出的直方图,具有最高关键点KP频 率的片元对应于中-低尺度。在本例中,各个片元的宽度同样通过量化器确定。
[0114] 图2E是与关键点KP的描述符D有关的第一统计分布Rsd。在本例中,相应的直 方图是三维的,其中的每一个片元对应于该一般关键点KP的描述符D的两个参数(即描述 符D的均值(X轴)和方差(y轴))的区间值。更大的频率值由更大直径的圆圈表示。均 值和方差被一同考虑以形成相同的直方图,这是因为其彼此关联。根据这样的直方图,由更 大的圆圈代表的具有最高关键点KP频率的片元是对应于最高均值和最低方差的片元。这 可以通过以下事实来解释:关键点KP的描述符D的均值越高,对应于该关键点KP的亮度梯 度就越高,并且关键点KP的描述符D的方差越低,影响该关键点KP的多余噪声就越低。
[0115] 图2F是与关键点KP的描述符D有关的第二统计分布Rsd。在本例中,每一个片元 对应于某一关键点KP的描述符D与相同图像的其他关键点KP的描述符D之间的特定最大 距离。例如可以基于描述符之间的欧氏距离来计算所述最大距离。还可以设想到其他已知 的方法,比如利用对称化Kullback-Leibler发散度。
[0116] 回到图1,根据本发明的一个实施例,提取规程100的阶段130提供对于在阶段 110处提取的每一个关键点KP计算:
[0117] 从与所述关键点KP的坐标C有关的统计分布Rsd获得的第一特征相关性概率 FRP1。检查对应于所述分布的直方图以便识别出其拟合所述关键点KP的坐标C的片元;随 后将特征相关性概率FRP1设定成等于所识别出的片元的关键点频率。
[0118] 从与所述关键点KP的主导指向0有关的统计分布Rsd获得的第二特征相关性概 率FRP2。检查对应于所述分布的直方图以便识别出其拟合所述关键点KP的主导指向0的 片元;随后将特征相关性概率FRP2设定成等于所识别出的片元的关键点频率。
[0119] 从与所述关键点KP的峰值P有关的统计分布Rsd获得的第三特征相关性概率 FRP3。检查对应于所述分布的直方图以便识别出其拟合所述关键点KP的峰值P的片元;随 后将特征相关性概率FRP3设定成等于所识别出的片元的关键点频率。
[0120] 从与所述关键点KP的尺度S有关的统计分布Rsd获得的第四特征相关性概率 FRP4。检查对应于所述分布的直方图以便识别出其拟合所述关键点KP的尺度S的片元;随 后将特征相关性概率FRP4设定成等于所识别出的片元的关键点频率。
[0121] 从与所述关键点KP的描述符D的均值和方差有关的统计分布Rsd获得的第五特 征相关性概率FRP5。检查对应于所述分布的直方图以便识别出其拟合所述关键点KP的描 述符D的各个元素的均值和方差的片元;随后将特征相关性概率FRP5设定成等于所识别出 的片元的关键点频率。
[0122] 从与所述关键点KP的描述符D和其他关键点KP的描述符D之间的最大距离(例 如欧氏距离)有关的统计分布Rsd获得的第六特征相关性概率FRP6。检查对应于所述分布 的直方图以便识别出其拟合所述距离的片元;随后将特征相关性概率FRP6设定成等于所 识别出的片元的关键点频率。
[0123] 因此,对于每一个关键点KP,通过其各项局部特征的至少其中一项特征相关性概 率FRP或者其间的组合获得关键点相关性概率KRP。举例来说,从假设各项特征相关性概率 FRP彼此独立开始,通过将其相应的特征相关性概率FRP彼此相乘来计算一般关键点KP的 关键点相关性概率KRP。通常来说,被用来计算关键点相关性概率KRP的不同的特征相关性 概率FRP的数目越高,通过采用这种方法所能获得的结果就越好。通过考虑用于视觉搜索 应用的SIFT描述符的实例,优选的是对于计算关键点相关性概率所考虑的特征相关性概 率至少包括对应于尺度、峰值以及与中心的距离的那些特征相关性概率。
[0124] 图2G是其中通过相应的圆点标识出多个关键点的示例性图片,其中每一个圆点 的直径与该关键点的相关性特征KRP成比例。
[0125] -旦计算出在阶段110中提取的所有关键点KP的关键点相关性概率KRP,根据关 键点相关性概率KRP的降序将所述关键点KP排序在一个序列中。随后通过从所述已排序 序列中取得排在前面的一定数目(基于将要管理的数据量的所期望的减少)的关键点KP 形成最优子集SUB。属于最优子集SUB的所选关键点KP最终结果是在阶段110中提取出的 全部关键点KP当中的(从图像比较角度)最具相关性的关键点KP。通过这种方式,以智能 且高效的方式实施了数据总量减少,其中仅考虑相关的关键点KP并且丢弃了不太有用的 那些关键点KP。
[0126] 应当强调的是,虽然根据前面描述的本发明的实施例对于最优关键点子集的选择 提供了利用相应的统计分布Rsd来计算每一项特征相关性概率,其中所述相应的统计分布 Rsd是通过对于其每一个片元计算其相应局部特征的数值落在所述片元内的关键点正常值 与其相应局部特征的数值落在相同片元内的关键点总数之间的比值而获得的,但是在采用 通过不同的甚至是人工的方法获得的不同的统计上等效的统计分布的情况下,本发明的想 法同样适用。在后面的描述中,如果两项统计分布允许从相同的关键点集合开始获得相似 的特征相关性概率,则认为所述两项统计分布在统计上彼此等效。
[0127] 描述符的压缩(阶段140)
[0128] 根据本发明的一个实施例,通过利用数目减少的优化码本,通过矢量量化实施描 述符D的压缩。
[0129] 图3A示出了对应于一般关键点KP的SIFT类型的示例性描述符D (被选择成最优 子集SUB的一部分的在图1的提取规程100的阶段130处生成的其中一个描述符D)。如前 所述,描述符D包括十六个子直方图shi (i = 1,2, ...,16),其中的每一个子直方图示出了 靠近该关键点ΚΡ的图像的对应子区段的亮度梯度沿着八个方向如何分布。具体来说,每一 个子直方图shi与对应于一个4x4格栅的16单元的其中之一的子区段相关联,所述格栅以 关键点KP位置为中心并且其指向是根据关键点KP的主导指向0 ;每一个子直方图shi包 括八个片元,每一个片元对应于关于主导指向0具有一定角度η* π /4 (η = 0,1,... 7)的指 向。
[0130] 如图3Β中所示,描述符D的所有指向直方图shi的数值被设置在一个相应的描述 符数组中,其在图中由附图标记DA标识。描述符数组DA包括十六个元素ai(i = 1,2,..., 16),其中的每一个存储由相应的子直方图shi (i = 1,2, ...,16)采取的数值;每一个元素 ai又包括八个对应的项目,每一个项目存储对应于该子直方图shi的八个片元当中的对应 的一个的频率值。因此,每一个描述符数组DA包括16*8 = 128个项目。通过考虑在SIFT 描述符D中典型的频率值的范围可以是从0到255,因此描述符数组DA的每一个项目可以 利用一个字节来表示;因此描述符数组DA的存储器占用等于128字节。因此,再次参照图 1的提取规程100,对应于属于所选最优子集SUB的各个关键点KP的所有描述符D的数据 量(以字节计)等于128乘以最优子集SUB当中的关键点KP的数目。
[0131] 为了减少这一数据量,通过矢量量化来压缩对应于所述描述符D的描述符数组 DA。
[0132] 正如本领域技术人员所熟知的那样,通过利用矢量量化压缩由n个元素形成的数 据数组(η元组)提供把所述数据数组可能采取的所有可能的η元组数值的集合联合量化 成包括较少数目的η元组数值(其数值甚至可以不同于将被量化的集合当中的数值)的精 简集合。由于精简集合包括较少数目的η元组数值,因此其需要较少存储空间。形成精简 集合的η元组数值也被称作"码字"。每一个码字与所述数组可能采取的不同η元组数值 的相应集合相关联。数据数组的各个η元组数值与码字之间的关联关系通过相应的码本确 定。
[0133] 特别参照描述符数组DA,其包括分别又由八个项目形成的16个元素 ai,每一个项 目具有从〇到255的数值范围,描述符数组DA可以取得数目N= 256128个不同的16元组 数值。通过利用矢量量化应用压缩,利用码本的数目为Nl < N个码字来近似所述N个不同 的16元组数值。所述码本确定每一个码字与描述符数组DA的16元组数值的相应集合之 间的关联关系。因此,码本的每一个码字是一个16元组数值,其被用来"近似"描述符数组 DA的16元组数值的相应集合。矢量量化是有损的数据压缩,可以通过被称作失真的参数来 测量其准确度。所述失真例如可以被计算为码本的一般码字与通过该码字近似的所述数组 的η元组数值的集合之间的欧氏距离。即使在利用不同的方法计算失真时,类似的考虑同 样适用。广泛来说,在任何情况下码本当中的码字的数目Ν1越高,压缩的失真就越低。
[0134] 正如本领域技术人员所熟知的那样,码本当中的码字的生成通常是通过在训练数 据库上实施统计操作(其也被称作训练操作)而实施的,所述训练数据库包括数目非常多 的训练数组的总集。特别参照描述符数组DA,训练数据库可以包括几百万个训练描述符数 组,其中每一个训练描述符数组是描述符数组DA可以采取的N = 256128个可能的16元组 数值的其中之一。
[0135] 根据图4Α中示出的解决方案,利用包括Ν1个16元组数值码字CWj(j = 1, 2,...N1)的单一码本CBK对整个描述符数组DA进行压缩。因此,对于N1个不同的码字 CWj,标识所述码字所需的最小比特数目等于l〇g 2Nl。如前所述,生成所述单一码本CBK的 N1个不同的码字CWj是通过对多个训练描述符数组实施训练操作来实施的,其中每一个训 练描述符数组是描述符数组DA可以采取的N = 256128可能的16元组数值的其中之一。
[0136] 为了把压缩失真保持在充分地减小的阈值以下从而不会损害后续的图像分析操 作的结果,所需的码字数目N1可能变得非常高。具有由数目过多的N1个码字形成的码本 在不同的角度下是不利的。实际上,将被用于生成码字的训练数组的数目将变得过多,并且 处理时间将变得过长。此外,为了通过利用码本实施压缩操作,形成所述码本的全部N1个 码字必须被记忆在某处,从而占用不可忽略的数量的存储空间。后一项缺陷相当关键,这是 因为对于图像分析应用所采用的硬件(例如图形处理单元GPU)可能不会配备有如此大容 量的存储器。
[0137] 参照图4B,为了在不增加失真的情况下减少将要管理的码字CWj的总数,可以将 描述符数组DA细分成多个子数组SDAk(k = 1,2,...),其中每一个子数组包括描述符数组 DA的对应数目mk个元素 ai,并且随后利用包括N2个mk元组数值码字CWj (j = 1,2,. . . N2) 的对应码本CBKk对每一个子数组SDAk进行单独压缩。
[0138] 在图4B所示出的实例中,描述符数组DA被细分成四个子数组SDAk(k = 1,2, 3, 4),每一个子数组包括描述符数组DA的mk = 4个元素ai :
[0139] 第一子数组SDA1由元素序列al、a2、a3、a4形成;
[0140] 第二子数组SDA2由元素序列a5、a6、a7、a8形成;
[0141] 第三子数组SDA3由元素序列a9、al0、all、al2形成;以及
[0142] 第四子数组SDA4由元素序列al3、al4、al5、al6形成。
[0143] 利用包括N2个4元组数值码字CWj (j = 1,2,. . . N2)的对应码本CBKy (y = k)实 施对于每一个子数组SDAk的压缩。因此,对于4*N2个不同的码字CWj,标识所有码字所需 的最小比特数目等于4*log 2N2。虽然在所考虑的情况中每一个子数组SDAk已利用包括相 同数目的N2个码字CWj的码本CBKy被压缩,但是在每一个子像素SDAk利用对应的不同数 目的码字CWj被压缩的情况中,类似的考虑同样适用。
[0144] 在图4B所示出的情况中,生成每一个码本CBKy的N2个不同码字CWj是通过在训 练描述符数组的对应子集上实施训练操作而实施的。码本CBKk的训练描述符数组的每一 个子集对应于四个子数组SDAk的其中之一,并且可以通过从被用来生成图4A的单一码本 CBK的每一个训练描述符数组中仅考虑其对应于子数组SDAk的部分来获得。举例来说,为 了生成码本CBK1,只采用被用来生成图4A的单一码本CBK的16元组训练描述符数组当中 的前四个元素al、a2、a3、a4。
[0145] 与图4a的情况相比,其中利用由具有描述符数组DA本身的相同维度(16个元素) 的码字CWj形成的单一码本CBK对整个描述符数组DA进行压缩,通过使用由具有其(较 小)维度mk的子数组SDAk (例如mk =个元素)的码字CWj形成的码本CBKy,允许对于相 同数目的码字CWj获得更低的失真。
[0146] 在固定码字CWj的总数的情况下,描述符数组DA被细分成的子数组SDAk的数目 越多,失真就越低,但是与此同时,标识所有码字CWj所需的最小比特数目就越高。
[0147] 根据本发明的一个实施例,出于压缩目的将描述符数组DA细分成子数组SDAk是 通过考虑到发生在描述符数组DA的各个元素ai之间的相关关系而实施的。
[0148] 正如前面参照图3A和3B所描述的那样,描述符数组DA的每一个元素ai存储由 与一个对应子区段相关联的子直方图shi取得的数值,该子区段又对应于以对应于该描述 符数组DA的关键点KP为中心的4x4格栅的一个单元。
[0149] 根据图5中示出的本发明的一个实施例,在对大量描述符数组DA实施统计行为分 析(例如利用训练数据库当中的训练描述符数组)之后,发现一般关键点KP的各个子直方 图shi可以被设置在相关族CFx(x = 1,2, 3,4)中,其中每一个相关族CFx包括具有相似的 统计行为(即具有片元频率的相似趋向)的相关子直方图shi的一个集合。举例来说,属 于相同的相关族CFx的两个子直方图shi在相同(或相似)片元处可以具有相似数目的频 率峰值。
[0150] 被采用来形成相关族CFx的统计行为分析表明,在固定将被用于压缩描述符数组 DA的码字CWj的最大数目的情况下,如果相关族CFx中的子直方图shi的设置发生改变(通 过将子直方图shi指派到不同的相关族CFx),则最终得到的失真也相应地改变。因此,通过 考虑所有可能的子直方图shi细分当中的对应于最低失真的子直方图shi细分来形成相关 族 CFx。
[0151] 在实施了这样的统计行为分析之后还发现,两个子直方图shi的统计行为之间的 相关取决于两个主要参数,也就是关联到各个子直方图Shi的子区段与关键点KP的距离以 及其主导指向。
[0152] 参照图5,关键点ΚΡ的十六个子直方图shi被设置在四个相关族中,也就是说:
[0153] 包括子直方图shl、sh4、shl3和shl6的第一相关族CF1 ;
[0154] 包括子直方图sh2、sh3、shl4和shl5的第二相关族CF2 ;
[0155] 包括子直方图sh5、sh8、sh9和shl2的第三相关族CF3 ;以及
[0156] 包括子直方图sh6、sh7、shlO和shll的第四相关族CF4。
[0157] 根据本发明的一个实施例,有利地利用前面标识出的相关族CFx,以便利用数目减 少的优化码本CBKy来压缩描述符数组DA。在实施描述符数组DA到子数组SDAk中的细分 时使得至少两个子数组SDAk具有相同的全局(也就是说考虑到其所有元素)统计行为;通 过这种方式有可能使用单一码本CBKy来压缩多于一个子数组SDAk。为此目的,在实施描 述符数组DA的细分时使得获得一组(多组)子数组SDAk,其中对于每一组,在该组当中的 所有子数组SDAk中占据相同位置的各个元素ai属于相同的相关族CFx。因此,可以有利 地利用相同的相应码本CBKy压缩属于同一组的所有子数组SDAk,所述相应码本CBKy的码 字CWj是通过从被用来生成图4A的单一码本CBK的每一个训练描述符数组当中仅仅考虑 其属于所述一组当中的各个子数组SDAk的元素ai所属的相关族CFx的元素而获得的。
[0158] 根据图6A中示出的本发明的一个示例性实施例,描述符数组DA被细分成四个子 数组SDA1-SDA4,其被设置在单一组中。因此,所有子数组SDAk都利用相同的码本CBK1压 缩。具体来说:
[0159] 第一子数组SDA1由兀素序列al、a2、a6、a5形成;
[0160] 第二子数组SDA2由元素序列a4、a3、a7、a8形成;
[0161] 第三子数组SDA3由元素序列al6、al5、all、al2形成;并且
[0162] 第四子数组SDA4由元素序列al3、al4、alO、a9形成。
[0163] 在这种情况中:
[0164] 每一个子数组SDAk的第一元素ai属于第一相关族CFi ;
[0165] 每一个子数组SDAk的第二元素ai属于第二相关族CF2 ;
[0166] 每一个子数组SDAk的第三元素ai属于第四相关族CF4 ;并且
[0167] 每一个子数组SDAk的第四元素ai属于第三相关族CF3。
[0168] 用于压缩一般的子数组SDA1-SDA4的码本CBK1包括N3个码字CWj,其中每一个码 字CWj具有属于第一相关族CF1的第一兀素、属于第二相关族CF2的第二兀素、属于第四相 关族CF4的第三元素以及属于第三相关族CF3的第四元素。
[0169] 对于N3个不同的码字CWj,标识出所有码字所需要的最小比特数目等于 4* (log2N3)。
[0170] 根据图6B中示出的本发明的另一个示例性实施例,描述符数组DA被细分成两个 子数组SDA1、SDA2,其被设置在单一组中。因此,所有子数组SDAk都利用相同的码本CBK1 压缩。具体来说:
[0171] 第一子数组SDA1由兀素序列al、a2、a3、a4、a5、a6、a7、a8形成;并且
[0172] 第二子数组 SDA2 由元素序列 al3、al4、al5、al6、a9、al0、all、al2 形成。
[0173] 在这种情况中:
[0174] 每一个子数组SDAk的第一和第四元素ai属于第一相关族CF1 ;
[0175] 每一个子数组SDAk的第二和第三元素ai属于第二相关族CF2 ;
[0176] 每一个子数组SDAk的第五和第八元素ai属于第三相关族CF3 ;并且
[0177] 每一个子数组SDAk的第六和第七元素ai属于第四相关族CF4。
[0178] 用于压缩一般的子数组SDA1、SDA2的码本CBK1包括N4个码字CWj,其中每一个 码字CWj具有属于第一相关族CF1的第一和第四兀素、属于第二相关族CF2的第二和第三 元素、属于第三相关族CF3的第五和第八元素以及属于第三相关族CF3的第六和第七元素。
[0179] 对于Μ个不同的码字CWj,标识出所有码字所需要的最小比特数目等于 2*(log2N4)。
[0180] 根据图6C中示出的本发明的另一个示例性实施例,描述符数组DA被细分成六 个子数组SDA1-SDA6,其中四个(SDA1-SDA4)被设置在第一组中,另外两个(SDA5、SDA6) 被设置在第二组中。因此,子数组SDA1-SDA4利用相同的第一码本CBK1压缩,而子数组 SDA5-SDA6则利用相同的第二码本CBK2压缩。具体来说:
[0181] 第一子数组SDA1由元素序列a5、al、a2形成;
[0182] 第二子数组SDA2由元素序列a8、a4、a3形成;
[0183] 第三子数组SDA3由元素序列a9、al3、al4形成;
[0184] 第四子数组SDA4由元素序列al2、al6、al5形成;
[0185] 第五子数组SDA5由元素序列a6、a7形成;并且
[0186] 第六子数组SDA6由元素序列alO、all形成。
[0187] 在这种情况中:
[0188] 第一组当中的每一个子数组SDA1-SDA4的第一元素ai属于第三相关族CF3 ;
[0189] 第一组当中的每一个子数组SDA1-SDA4的第二元素ai属于第一相关族CF1 ;
[0190] 第一组当中的每一个子数组SDA1-SDA4的第三元素ai属于第二相关族CF2 ;并且
[0191] 第二组当中的每一个子数组SDA5-SDA6的第一和第二元素ai属于第四相关族 CF4。
[0192] 用于压缩属于第一组的一般子数组SDA1-SDA4的码本CBK1包括N5个码字CWj,其 中每一个码字CWj具有属于第三相关族CF3的第一元素、属于第一相关族CF1的第二元素 以及属于第二相关族CF2的第三元素。用于压缩属于第二组的一般子数组SDA5-SDA6的码 本CBK2包括N6个码字CWj,其中每一个码字CWj具有属于第四相关族CF4的第一和第二元 素。
[0193] 对于N5+N6个不同的码字CWj,标识出所有码字所需要的最小比特数目等于 4* (log2N5) +2* (log2N6)。
[0194] 根据图6D中示出的本发明的另一个示例性实施例,描述符数组DA被细分成八 个子数组SDA1-SDA8,其中四个(SDA1-SDA4)被设置在第一组中,另外四个(SDA5-SDA8) 被设置在第二组中。因此,子数组SDA1-SDA4利用相同的第一码本CBK1压缩,而子数组 SDA5-SDA8则利用相同的第二码本CBK2压缩。具体来说:
[0195] 第一子数组SDA1由元素序列a5、al形成;
[0196] 第二子数组SDA2由元素序列a8、a4形成;
[0197] 第三子数组SDA3由元素序列a9、al3形成;
[0198] 第四子数组SDA4由元素序列al2、al6形成;
[0199] 第五子数组SDA5由元素序列a6、a2形成;
[0200] 第六子数组SDA6由元素序列a7、a3形成;
[0201] 第七子数组SDA7由元素序列alO、al4形成;并且
[0202] 第八子数组SDA8由元素序列all、al5形成。
[0203] 在这种情况中:
[0204] 第一组当中的每一个子数组SDA1-SDA4的第一元素ai属于第三相关族CF3 ;
[0205] 第一组当中的每一个子数组SDA1-SDA4的第二元素ai属于第一相关族CF1 ;
[0206] 第二组当中的每一个子数组SDA5-SDA8的第一元素ai属于第四相关族CF4 ;并且
[0207] 第二组当中的每一个子数组SDA5-SDA8的第二元素ai属于第二相关族CF2。
[0208] 用于压缩属于第一组的一般子数组SDA1-SDA4的码本CBK1包括N7个码字CWj,其 中每一个码字CWj具有属于第三相关族CF3的第一元素以及属于第一相关族CF1的第二元 素。用于压缩属于第二组的一般子数组SDA5-SDA8的码本CBK2包括N8个码字CWj,其中每 一个码字CWj具有属于第四相关族CF4的第一元素以及属于第二相关族CF2的第二元素。
[0209] 因此,对于N7+N8个不同的码字CWj,标识出所有码字所需要的最小比特数目等于 4* (log2N7) +4* (log2N8)。
[0210] 很自然的是,本发明的想法同样适用于细分成不同数目的子数组以及/或者不同 数目的码本。此外,虽然在这里的描述中提到了在包括4x4个单元的格栅上计算并且每个 直方图具有八个片元的SIF描述符的压缩,但是在单元数目和/或每个直方图的片元数目 不同以及考虑其他类型的描述符的情况下,类似的考虑同样适用。
[0211] 与已知的解决方案相比,对于相同的压缩失真,将描述符数组DA细分成各个子数 组SDAk和对于多于一个子数组SDAk采用相同码本CBKy的组合使用允许大大减少对于存 储被用来压缩描述符数组DA的(多个)码本CBKy所需要的存储器空间。这是一个很大的 优点,因为正如前面所提到的那样,对于图像分析应用所采用的硬件(例如图形处理单元) 可能不会配备如此大容量的存储器。通过将描述符数组DA细分成各个子数组SDAk和对于 多于一个子数组SDAk采用相同码本CBKy的组合使用所给出的另一个优点在于,用于生成 (多个)码本CBKy的训练规程最终更快。
[0212] 在提取规程100 (参见图1)的阶段140中对于所接收到的描述符D实施的压缩 操作的结果是生成相应的已压缩描述符数组CDA,其近似由对应的描述符数组DA取得的数 值。更具体来说,对于被用来压缩描述符数组DA的每一个码本CBKy,该码本CBKy的每一个 码字CWj由相应的压缩索引Cy标识;如果码本CBKy由一定数目的N个不同的码字CWj形 成,则压缩索引Cy由至少log 2N个比特形成。对于已被细分成子数组SDAk的一个集合的 描述符数组DA,相应的已压缩描述符数组CDA包括对应于该集合当中的每一个子数组SDAk 的压缩索引Cy,其中每一个压缩索引Cy标识出被用来近似所述子数组SDAk的码本CBKy的 码字CWj。
[0213] 坐标的压缩(阶段150)
[0214] 根据本发明的一个实施例,通过压缩属于在提取规程100(参见图1)的阶段130 处计算的最优子集SUB的各个关键点KP的坐标C,进一步减少了对于实施图像分析操作而 将要管理(例如将要记忆和/或传送)的数据量。
[0215] 图7A示出了对应于查询图像115的二维空间内的最优子集SUB当中的关键点KP 的示例性分布;每一个关键点ΚΡ与标识该关键点ΚΡ在查询图像115内的位置的相应的一 对空间坐标C相关联。
[0216] 首先,对子集SUB的所有关键点ΚΡ的坐标C进行量化。为此目的,将一个nxm格栅 叠加在查询图像115上。在图7B所示出的实例中,所述格栅具有η = 10行和m= 15列。
[0217] 随后生成二维直方图,这是通过对于所述格栅的每一个单元(其对应于直方图的 一个片元)对位于其中的关键点KP的数目进行计数。图7C是通过把图7B的格栅叠加在图 7A的关键点KP的集合上而获得的直方图的示例性图形描绘。在图7C的图形描绘中,其中 不存在关键点KP的单元用黑色表示,而包括至少一个关键点KP的单元则用灰色表示。在 所讨论的实例中(其中包括最多数目的关键点的单元包括两个关键点),包括单一关键点 KP的单元用深灰色表示,而包括两个关键点KP的单元则用较浅的灰色表示。
[0218] 从关键点计数获得的直方图具有大量其频率等于零的片元,也就是说相应的单元 不包括任何关键点KP (图7C中描绘的黑色单元)。
[0219] 在压缩表示直方图的数据时可以有利地考虑到,其对应于零频率片元的各个部分 仅提供关于其相应的单元不包括任何关键点的信息。
[0220] 为此,可以有利地去除所述格栅的完全由不包括任何关键点KP的单元形成的各 行和各列。但是由于去除这样的各行和/或各列将改动各个关键点KP的绝对和相对位置, 因此应当记录关于不存在关键点KP的所有各行和各列的位置的指示(包括对应于将被去 除的各行和/或各列的位置)。
[0221] 为此,通过以下方式定义两个数组r和c :
[0222] 数组r是对于所述格栅的每一行包括一个元素的数组,其中如果格栅的相应单元 不包括任何关键点KP,则该数组当中的一般元素被设定到第一数值(例如0),并且如果格 栅的相应单元包括至少一个关键点KP,则其被设定到第二数值(例如1);以及
[0223] 数组c是对于所述格栅的每一列包括一个元素的数组,其中如果格栅的相应单元 不包括任何关键点KP,则该数组当中的一般元素被设定到第一数值(例如0),并且如果格 栅的相应单元包括至少一个关键点KP,则其被设定到第二数值(例如1)。
[0224] 一旦生成了数组r和c,下一步骤提供识别完全由不包括任何关键点KP的单元形 成的各行和/或各列。参照所讨论的实例,在图7D中用黑色描绘出这样的各行和各列。
[0225] 随后去除所述格栅的完全由不包括任何关键点KP的单元形成的各行和/或各列, 并且紧缩所得到的格栅部分以便填充通过所述去除而留下的空白空间。因此,在所得到的 (紧缩)格栅中(其被称作秩1支持),所有各行和所有各列都包括其中包括至少一个关键 点KP的至少一个单元。在图7E中示出了对应于所讨论的实例的秩1支持上的直方图。
[0226] 从该直方图中可以提取出两项不同的信息:
[0227] 1)包括至少一个关键点KP的秩1支持的各个单元的位置;以及
[0228] 2)对于在点1)处识别出的秩1支持的每一个单元还有包括在其中的关键点KP的 数目。
[0229] 有利的是,正如 S. Tsai、D. Chen、G. Takacs、V. Chandrasekhar、J. P. Singh 和 B.Girod 在 "Location coding for mobile image retrieval (用于移动图像取回的位置 编码)"(Proc.Int. Mobile Multimedia Conference (MobiMedia),2009 年)中所提出的那 样,可以利用所谓的"直方图映射图"提取出对应于点1)的信息,对应于点2)的信息则可 以被设置在所谓的"直方图计数"中。
[0230] 直方图映射图是秩1支持上的直方图的二维映射,其标识出具有等于或高于1的 频率的片元。在图7F中示出了对应于图7E的秩1支持上的直方图的直方图映射图。
[0231] 直方图映射图可以利用相应的矩阵来表示,如果秩1支持的相应单元不包括任何 关键点KP,则其一般元素等于0,如果秩1支持的相应单元包括至少一个关键点KP,则等于 1。图7F中示出的直方图映射图的矩阵是如下矩阵:
[0232]
【权利要求】
1. 一种用于处理图像的方法,包括: 识别出图像中的一组关键点; 对于该组当中的每一个关键点: a) 计算包括多个数组元素的相应的描述符数组,其中每一个数组元素存储由该关键点 的邻域内的所述图像的对应子区段的相应的颜色梯度直方图所取得的数值; b) 通过对所述描述符数组的至少一部分进行压缩生成至少一个已压缩描述符数组,所 述压缩是通过利用包括多个码字(CW)的码本(CBK)进行矢量量化而实现的; 利用所述一组关键点当中的各个关键点的所述至少一个已压缩描述符数组来分析图 像,其中所述方法还包括: 压缩码本,所述压缩码本包括: 生成码本矩阵(C),所述码本矩阵的每一行是该码本的码字; 对码本矩阵进行因式分解以便获得至少第一矩阵(U)和第二矩阵(S)的乘积,第二矩 阵的各个项目的能量随着该矩阵的列索引的增大总体上是不增大的; 通过从中去除第一数目的最后各列而截断第一矩阵; 通过从中去除第一数目的最后各列和第一数目的最后各行而截断第二矩阵; 生成对应于截断后的第一矩阵与截断后的第二矩阵的乘积的另一个第一矩阵(US'); 对另一个第一矩阵的每一个项目进行量化,其中利用相应数目的量化水平对属于另一 个第一矩阵的列的每一个项目进行量化,其中所述相应数目低于或等于被用来对属于在前 的列的各个项目进行量化的量化水平的数目; 生成另一个第二矩阵(X),其中另一个第二矩阵当中的每一个项目对应于另一个第一 矩阵当中的项目,所述另一个第二矩阵当中的每一个项目是关联到另一个第一矩阵当中的 相应的已量化项目所采取的量化水平的索引; 通过把另一个第二矩阵的所述索引记忆在存储器单元中来存储码本。
2. 根据权利要求1的方法,其中,第一矩阵(U)是规格化正交矩阵,第二矩阵(S)是对 角矩阵,其各个对角项目对应于码本矩阵(C)的各个奇异值,属于第二矩阵的除最后一列 之外的列的每一个对角项目高于属于后一列的项目。
3. 根据权利要求1或2的方法,其中,至少第一矩阵(U)与第二矩阵(S)的所述乘积还 包括第三矩阵(V)的转置,所述第三矩阵(V)是规格化正交矩阵, 并且其中所述方法还包括: 通过从中去除第一数目的最后各列而截断所述第三矩阵; 把截断后的第三矩阵存储在存储器单元中。
4. 根据权利要求3的方法,其中,所述截断第一、第二和第三矩阵还包括: 计算第二矩阵的能量; 当记忆在存储器单元中时设定对应于由另一个第二矩阵的所有已量化项目占据的存 储器空间的第一目标数值; 对于第二矩阵的每一个对角项目,计算对应于第一目标数值乘以该项目的能量与第二 矩阵的能量之间的比值的对应的分配数值; 将每一个分配数值取整到整数值;以及 将第一数目设定到码本矩阵的列数减去第二矩阵的更高列索引,其中对于所述更高列 索引,与属于第二矩阵的由该列索引标识的该列的对角项目相对应的已取整分配数值高于 阈值。
5. 根据权利要求4的方法,其中,对于另一个第一矩阵的每一个项目的所述量化还包 括: 对于另一个第一矩阵的每一列,把用于对另一个第一矩阵的所述列当中的每一个项目 进行量化的量化水平的相应数目设定到2的乘方,所述乘方的次数是与属于第二矩阵的其 列索引与另一个第一矩阵的所述列相同的列的对角项目相对应的已取整分配数值。
6. 根据任一在前权利要求的方法,还包括: 选择数据类型; 通过系数对截断后的第三矩阵当中的每一个项目进行缩放,所述系数对应于能够利用 所选数据类型表示的最高数值与截断后的第三矩阵的各个项目的绝对值当中的最高绝对 值之间的比值;以及 利用所选数据类型表示截断后的第三矩阵的每一个经过缩放的项目,所述存储码本还 包括将利用所选数据类型表示的截断后的第三矩阵的各个经过缩放的项目记忆在存储器 单元中。
7. 权利要求6的方法,其中,所述生成另一个第一矩阵包括将截断后的第一矩阵乘以 截断后的第二矩阵,并且随后将所得到的矩阵的每一个项目乘以所述系数。
8. 根据任一在前权利要求的方法,其中,对码本矩阵的所述因式分解包括利用奇异值 分解。
9. 根据任一在前权利要求的方法,其还包括: 在将码本矩阵因式分解成至少第一和第二矩阵的乘积之前,计算从码本矩阵的所有各 行的平均值获得的平均数组并且随后从码本矩阵的每一行减去该平均数组,所述存储码本 还包括将平均数组记忆在存储器单元中。
10. -种用于处理包括一组关键点的图像的系统,所述系统被配置成实施以下操作: 对于该组当中的每一个关键点: a) 计算包括多个数组元素的相应的描述符数组,其中每一个数组元素存储由该关键点 的邻域内的所述图像的对应子区段的相应的颜色梯度直方图所取得的数值; b) 通过对所述描述符数组的至少一部分进行压缩生成至少一个已压缩描述符数组,所 述压缩是通过利用包括多个码字(CW)的码本(CBK)进行矢量量化而实现的; 利用所述一组关键点当中的各个关键点的所述至少一个已压缩描述符数组来分析图 像,其中所述方法还包括: 压缩码本,所述压缩码本包括: 生成码本矩阵(C),所述码本矩阵的每一行是该码本的码字; 对码本矩阵进行因式分解以便获得至少第一矩阵(U)和第二矩阵(S)的乘积,第二矩 阵的各个项目的能量随着该矩阵的列索引的增大总体上是不增大的; 通过从中去除第一数目的最后各列而截断第一矩阵; 通过从中去除第一数目的最后各列和第一数目的最后各行而截断第二矩阵; 生成对应于截断后的第一矩阵与截断后的第二矩阵的乘积的另一个第一矩阵(US'); 对另一个第一矩阵的每一个项目进行量化,其中利用相应数目的量化水平对属于另一 个第一矩阵的列的每一个项目进行量化,其中所述相应数目低于或等于被用来对属于在前 的列的各个项目进行量化的量化水平的数目; 生成另一个第二矩阵(X),其中另一个第二矩阵当中的每一个项目对应于另一个第一 矩阵当中的项目,所述另一个第二矩阵当中的每一个项目是关联到另一个第一矩阵当中的 相应的已量化项目所采取的量化水平的索引; 通过把另一个第二矩阵的所述索引记忆在存储器单元中来存储码本。
【文档编号】G06T9/00GK104254877SQ201380021355
【公开日】2014年12月31日 申请日期:2013年4月19日 优先权日:2012年4月23日
【发明者】M·巴勒斯特里, G·弗兰希尼, S·莱普索伊 申请人:意大利电信股份公司