首页> 中国专利> 采用部分至完整片段检测的快速目标检测系统及方法

采用部分至完整片段检测的快速目标检测系统及方法

摘要

本发明涉及采用部分至完整片段检测的快速目标检测系统及方法。处理器可:将表示图像的第一图像片段的图像特征的图像矢量与表示数据库图像的一个或多个数据库图像片段的图像特征的一个或多个数据库矢量比较;基于图像矢量与一个或多个数据库矢量的比较来确定数据库矢量的第一匹配数据库矢量,其在数据库矢量中最接近地描述由图像矢量表示的第一图像特征;利用数据结构并结合第一匹配数据库矢量及一个或多个以前匹配的数据库矢量来确定第二数据库矢量(包括第一匹配数据库矢量及一个或多个以前匹配的数据库矢量且在数据库矢量中最接近地描述含第一图像片段的第二图像片段);基于第二数据库矢量来确定目标特征并将表示目标特征的数据输出给用户。

著录项

  • 公开/公告号CN103198328A

    专利类型发明专利

  • 公开/公告日2013-07-10

    原文格式PDF

  • 申请/专利号CN201210353567.8

  • 发明设计人 A.巴希尔勒;D.勒维;

    申请日2012-09-21

  • 分类号G06K9/64;G06F17/30;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人陶梅

  • 地址 美国密执安州

  • 入库时间 2024-02-19 19:15:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-24

    授权

    授权

  • 2013-08-07

    实质审查的生效 IPC(主分类):G06K9/64 申请日:20120921

    实质审查的生效

  • 2013-07-10

    公开

    公开

说明书

技术领域

本发明涉及利用例如描述图像特征的矢量、图像数据库、数据结构和其它信息对图像中的目标进行检测。

背景技术

基于计算机的目标检测系统及方法应用于许多不同用途,包括例如车辆主动安全特征、智能监控系统、和其它用途。目标检测可以应用于例如车辆主动安全特征中,用以对非常靠近车辆的目标中的特征进行检测、识别和分类。例如,车辆行进碰撞报警(FCA)系统可以利用目标检测系统来判断在车辆前方或后方的物体或人(例如,儿童、行人、或其他物体)是否会给车辆造成碰撞威胁。例如,目标检测系统可以评估行人所站立的位姿或朝向,从而判断例如是否该行人正在向车辆移动。

目标检测系统可以通过对由计算机成像装置(诸如摄像机)所捕获图像的部分与图像部分的数据库进行比较从而对图像中的目标进行分类或检测,而检测目标。为了对两个图像部分进行比较,目标检测系统可以计算出一个或多个多维矢量、直方图表示、或者表示或描述图像特征或图像特征部分的其它形式的数据。可以对表示2幅或更多幅图像中的每个图像或者2幅或更多幅图像的部分的矢量进行比较,从而判断这些图像是否相互匹配或类似。为了对图像(例如,检测图像中的人或物体)、部分图像或图像的一部分进行分类,可以对该图像与图像或图像部分的大数据库进行比较,从而确定最接近的匹配。图像比较过程可能会要求具备强大的计算能力,这取决于该图像的尺寸及数据库中的图像数量。对图像进行比较从而检测图像中的目标或特征的更快及更高效的方法,可以提升目标检测系统的功能和效率。

发明内容

在一些实施例中,处理器可以对表示图像的第一图像片段的图像特征的图像矢量与表示数据库图像的一个或多个数据库图像片段的图像特征的一个或多个数据库矢量进行比较。处理器可以基于图像矢量与一个或多个数据库矢量的比较,而确定数据库矢量中的第一匹配数据库矢量,该第一匹配数据库矢量在数据库矢量中最接近地描述由所述图像矢量所表示的第一图像特征。处理器可以利用数据结构并结合第一匹配数据库矢量以及一个或多个以前匹配的数据库矢量来确定第二数据库矢量,该第二数据库矢量包括第一匹配数据库矢量以及一个或多个以前匹配的数据库矢量并且在数据库矢量中最接近地描述包括第一图像片段的第二图像片段。处理器可以基于第二数据库矢量来确定目标特征,并将表示目标特征的数据输出给用户。

本发明还涉及以下技术方案。

方案1. 一种方法,包括:

利用处理器对表示图像的第一图像片段的图像特征的图像矢量与表示数据库图像的一个或多个数据库图像片段的图像特征的一个或多个数据库矢量进行比较;

利用所述处理器基于所述图像矢量与所述一个或多个数据库矢量的所述比较而确定所述数据库矢量中的第一匹配数据库矢量,所述第一匹配数据库矢量在所述数据库矢量中最接近地描述由所述图像矢量所表示的图像特征;以及

通过所述处理器利用数据结构并结合所述第一匹配数据库矢量以及一个或多个以前匹配的数据库矢量而确定第二数据库矢量,所述第二数据库矢量包括所述第一匹配数据库矢量以及所述一个或多个以前匹配的数据库矢量并且在所述数据库矢量中最接近地描述包括所述第一图像片段的第二图像片段。

方案2. 如方案1所述的方法,其中,利用处理器对表示图像的图像片段的图像特征的图像矢量与表示数据库图像的一个或多个数据库图像片段的图像特征的一个或多个数据库矢量进行比较包括:计算所述图像矢量与所述一个或多个数据库矢量之间的距离。

方案3. 如方案1所述的方法,其中,所述图像的所述片段包括所述图像的空间单元,并且所述数据库图像的所述片段包括所述数据库图像的空间单元。

方案4. 如方案1所述的方法,其中,所述数据结构包括与所述一个或多个数据库矢量相关联的一个或多个代码字索引。

方案5. 如方案1所述的方法,其中,所述数据结构包括从所述第一数据库矢量到所述第二数据库矢量的一个或多个指针。

方案6. 如方案1所述的方法,其中,通过所述处理器利用所述数据结构并结合所述第一匹配数据库矢量以及所述一个或多个以前匹配的数据库矢量来确定第二数据库矢量,所述第二数据库矢量包括所述第一匹配数据库矢量以及所述一个或多个以前匹配的数据库矢量并且在所述数据库矢量中最接近地描述包括所述第一图像片段的第二图像片段,包括:

利用所述处理器确定从与所述第一匹配数据库矢量相关联的代码字索引到所述第二数据库矢量的代码字索引的指针。

方案7. 如方案1所述的方法,包括:

利用所述处理器基于所述第二数据库矢量确定目标特征;以及

将表示所述目标特征的数据输出给用户。

方案8. 一种系统,包括:

存储图像信息的数据库结构;

处理器,所述处理器是用于:

       将表示图像的第一图像片段的图像特征的图像矢量与表示数据库图像的一个或多个数据库图像片段的图像特征的一个或多个数据库矢量进行比较;

       基于所述图像矢量与所述一个或多个数据库矢量的比较而确定所述数据库矢量中的第一匹配数据库矢量,所述第一匹配数据库矢量在所述数据库矢量中最接近地描述由所述图像矢量所表示的第一图像特征;以及

       通过所述处理器利用数据结构并结合所述第一匹配数据库矢量以及一个或多个以前匹配的数据库矢量而确定第二数据库矢量,所述第二数据库矢量包括所述第一匹配数据库矢量以及所述一个或多个以前匹配的数据库矢量并且在所述数据库矢量中最接近地描述包括所述第一图像片段的第二图像片段。

方案9. 如方案8所述的系统,其中,为了将表示图像的图像片段的图像特征的图像矢量与表示数据库图像的一个或多个数据库图像片段的图像特征的一个或多个数据库矢量进行比较,所述处理器将计算所述图像矢量与所述一个或多个数据库矢量之间的距离。

方案10. 如方案8所述的系统,其中,所述图像的所述片段包括所述图像的空间单元并且所述数据库图像的所述片段包括所述数据库图像的空间单元。

方案11. 如方案8所述的系统,其中,所述数据结构包括与所述一个或多个数据库矢量相关联的一个或多个代码字索引。

方案12. 如方案8所述的系统,其中,所述第一数据库矢量包括数据库子部分矢量,所述第二数据库矢量包括数据库完整矢量。

方案13. 如方案8所述的系统,其中,为了利用数据结构并结合所述第一匹配数据库矢量以及所述一个或多个以前匹配的数据库矢量确定第二数据库矢量,所述第二数据库矢量包括所述第一匹配数据库矢量以及所述一个或多个以前匹配的数据库矢量并且在所述数据库矢量中最接近地描述包括所述第一图像片段的第二图像片段,所述处理器将:

确定从与所述第一匹配数据库矢量相关联的代码字索引到所述第二数据库矢量的代码字索引的指针。

方案14. 如方案8所述的系统,其中,所述处理器将:

基于所述第二数据库矢量来确定目标特征;以及

将表示所述目标特征的数据输出给用户。

方案15. 一种方法,包括:

由控制器生成描述图像阵列的图像特点的图像代码字;

由所述控制器发现描述数据库图像阵列的图像特点的代码字的数据库中的哪个第一数据库代码字在数据库代码字中最接近地匹配所述图像代码字;以及

由所述控制器利用所述第一数据库代码字以及一个或多个以前匹配的数据库代码字并结合数据结构而发现描述数据库图像阵列的图像特点的代码字的数据库中的第二数据库代码字,所述第二数据库代码字在数据库代码字中最接近地匹配所述第一数据库代码字以及所述一个或多个以前匹配的数据库代码字。

方案16. 如方案15所述的方法,其中,所述数据结构包括哈希表。

方案17. 如方案15所述的方法,其中,由所述控制器利用所述第一数据库代码字以及一个或多个以前匹配的数据库代码字并结合数据结构而发现描述数据库图像阵列的图像特点的代码字的数据库中的第二数据库代码字,所述第二数据库代码字在数据库代码字中最接近地匹配所述第一数据库代码字以及所述一个或多个以前匹配的数据库代码字,包括:

由所述控制器发现从与所述第一数据库代码字相关联的代码字索引到与所述第二数据库代码字相关联的代码字索引的指针。

方案18. 如方案15所述的方法,包括:显示与所述第二数据库代码字相关的图像。

方案19. 如方案15所述的方法,其中,所述数据结构包括与所述一个或多个数据库矢量相关联的代码字索引的字典。

方案20. 如方案15所述的方法,其中,所述图像特点包括梯度方向。

附图说明

在本说明书的结论部分,特别地指出被看作是本发明的主题并明确地请求保护。然而,通过参考以下的详细说明并阅读附图,可以最佳地理解本发明的操作的组织和方法以及本发明的目的、特征和优点。

图1是根据本发明一个实施例的目标检测系统的示意图。

图2是根据本发明一个实施例的对划分成空间单元和空间单元阵列的图像与一个或多个数据库图像进行比较的示意图。

图3是根据本发明一个实施例的图像中的空间单元阵列的矢量表示的示意图。

图4是根据本发明一个实施例的将完整图像划分成为子部分图像的方法的示意图。

图5是根据本发明一个实施例的数据结构系统的示意图。

图6是根据本发明一个实施例的描述特征检测方法的目标检测系统的示意图,在所述方法中可以将一幅图像与多幅数据库图像进行比较。

图7是根据本发明一个实施例的方法的流程图。

应当理解的是,为了使说明简单和清楚的目的,附图中所示出的元件不必按比例绘制。例如,为了清楚起见,相对于其它元件,一些元件的尺寸可以被夸大。在各附图中可以重复使用附图标记来表示相应或类似的元件。此外,附图中绘出的一些方框可以合并入单个功能。

具体实施方式

在以下的详细说明中,为了提供对本发明的详尽理解,而描述了许多具体细节。然而,本领域技术人员将理解的是,可以在没有这些具体细节的情况下实施本发明。在其它情况下,对于众所周知的方法、步骤和构件未作详细描述,以免使本发明难以理解。

 除非另有具体说明,否则正如从下面的论述中可明了的,应理解的是在整个说明书中采用术语诸如“处理”、“运算”、“存储”、“确定”、“评估”、“计算”、“测量”、“提供”、“传输”等的论述是指计算机或计算系统或类似的电子计算装置的操作和/或过程,其对计算系统的寄存器和/或存储器中的表示为物理(诸如电子)量的数据进行操作和/或将该数据转换成计算系统的存储器、寄存器或其它这种信息存储、传送或显示装置中的类似地表示为物理量的其它数据。

目标或特征检测系统和方法可以对2个或更多的图像片段或者部分进行比较,从而基于该比较对片段内的特征、特点、人、图形或物体进行分类、识别或检测。为了对图像内的特征进行分类,目标检测系统可以将图像划分成一个或多个区域,例如空间单元(spatial cell)或空间面元(spatial bin)。可以将这些空间单元布置成阵列、图像阵列、空间单元阵列(例如,空间单元的4 单元乘4单元(4×4)阵列、8×16阵列、或其它尺寸的阵列)、或者其它数据结构。术语“片段(fragment)”可以指代完整图像或者图像的一部分。例如,片段可以是空间单元、空间单元的阵列、图像的一部分、完整图像、或者图像的其它组元。

目标检测系统可以对一个或多个空间单元进行分析,从而计算出用数字或其它方式表示一个或多个空间单元内的图像特征或特点的多维矢量、高维矢量、代码字、或其它数据集。例如,可以用多维矢量或代码字(例如8维(8-D)矢量)来表示空间单元或者空间单元内的图像特征。例如,可以用多维矢量(例如,表示4单元×4单元阵列的128-D矢量)来表示空间单元的阵列,该多维矢量可以包括表示空间单元的阵列中所包含的空间单元的多维矢量。可以使用其它维数的代码字和矢量。

一个或多个矢量可以是例如尺度不变特征变换(SIFT)矢量、有序梯度直方图(HOG)矢量、和/或其它类型的矢量。多维矢量可以是片段(例如,空间单元或者空间单元的阵列)内的目标、特征或特点的表示、描述或近似描述。本文中使用的矢量、多维矢量或代码字可以是表示、描述和/或用数字表示片段的特点、特征通道(feature channel)、或特征(例如,梯度方向、明度、暗度、亮度、色调、颜色、纹理、梯度直方图、颜色直方图、灰度直方图、非线性变换、点态变换(pointwise transformation)、积分直方图、以及其它特征或特点)的数据元的有序列表。本文中使用的术语“代码字”可以等同于术语“矢量”、“多维矢量”及其它术语。然而,术语“代码字”可以不同于下述的术语“代码字索引”。

根据本发明的一些实施例,可以建立包括图像、部分图像或图像各部分在内的片段的数据库。一个或多个片段中的各片段可以包括或者表示目标,其可用于对捕获的图像进行分类。在学习操作期间,可以建立表示数据库片段(例如,图像、部分图像、或图像的各部分)或数据库中的其它信息的多维矢量、高维矢量、代码字、或其它数据集。由多维矢量所表示的数据库中的片段可以是例如下述对象的图像或图像的部分:具有不同位姿的不同年龄、尺寸和外形的人;在不同取向上的车辆;在不同取向上的车辆的部件;在不同取向上的物体;或者其它目标和特征。数据库片段可以是例如已被划分成一个或多个空间单元和/或空间单元阵列的图像部分。多维矢量可以表示一个或多个空间单元和/或阵列中的目标的特征。

根据一些实施例,可以用与目标检测系统相关联的计算机视觉传感器(例如,摄像机)来捕获图像或者以其它方式将图像输入至目标检测系统。可以通过将图像划分成一个或多个空间单元或空间面元来组织捕获的图像数据。例如,空间单元可以是图像内的10×10像素区、或者其它尺寸的区域。可以将空间单元布置成空间单元的阵列,例如一个阵列可以包括4×4网格的空间单元。可以使用其它尺寸的网格和阵列。空间单元的阵列可以与图像内的其它阵列重叠。因此,一个空间单元可以位于多个阵列中。

目标检测系统可以为各单元和/或单元阵列计算出多维矢量(例如,SIFT矢量、HOG矢量、或其它矢量)。在一个典型的目标检测系统中,可以对表示捕获图像的片段的各多维矢量与表示数据库片段的多个数据库多维矢量进行比较。在一些实施例中,系统可以利用近似最近邻数据结构(例如,哈希表、k维树(KD树)、局部敏感哈希(LSH)、或其它数据结构)对表示捕获图像片段的矢量与表示数据库片段的矢量进行比较。典型的目标检测系统可以基于该比较来确定在数据库矢量中数据库中的一个或多个矢量中的哪个矢量最类似或者最接近地匹配表示捕获图像的片段的多维矢量。因此,可以基于捕获图像的片段与数据库片段的类似度对捕获图像中的目标和特征进行识别或分类。

在本发明的一个实施例中,目标检测系统可以采用尺度不变特征变换(SIFT)目标或特征检测方法。SIFT方法可以将数据库图像和/或捕获图像的空间单元组织成空间单元的多个4×4阵列。目标检测系统可以计算多维矢量(例如,SIFT矢量)。SIFT矢量可以表示空间单元或空间单元阵列(例如,2×1阵列、2×2阵列、4×4 阵列、或其它尺寸的阵列)内的梯度方向或其它图像特征或特征通道。在一些实施例中,表示4×4阵列的SIFT矢量可以是128维(128-D)矢量、或者另一维数的矢量。目标检测系统可以对表示捕获或输入图像的片段的各SIFT矢量(例如,128-D矢量)与SIFT矢量(例如,多个128-D 矢量)的数据库进行比较,从而确定匹配或最接近的匹配。在一些实施例中,目标检测也可以确定在数据库SIFT矢量中哪个数据库SIFT矢量最接近地描述或匹配表示捕获或输入图像的片段的SIFT矢量中的信息。然而,对多个高维矢量进行比较可能会要求具备强大的计算能力并且会是低效率的。

在本发明的一个实施例中,目标检测系统可以采用目标检测的有序梯度直方图(HOG)方法。HOG矢量可以表示空间单元或空间单元阵列(例如,2×1阵列、2×2阵列、4×4阵列、或其它尺寸的阵列)内的梯度方向或其它图像特征或特征通道。目标检测的HOG方法可以将数据库和/或捕获图像的空间单元组织成例如空间单元的8×16阵列。采用HOG方法的目标检测系统可以利用与SIFT方法或其它目标检测方法中所采用方法相类似的方法对图像进行比较。

本发明的一些实施例可以使用SIFT矢量和HOG矢量;其它实施例可以采用其它技术。本发明的实施例包括将图像的一部分划分成空间单元网格并用矢量或代码字表示各空间单元或空间单元阵列的任何目标或特征检测方法。在一些实施例中,矢量或代码字可以表示各种类型的图像特征或者通道特征(例如,梯度方向、梯度直方图、颜色直方图、灰度直方图、非线性变换、点态变换、积分直方图、和其它特征)。

根据本发明的一个实施例,表示数据库图像中空间单元阵列的数据库完整矢量(例如,SIFT矢量、HOG 矢量、或其它类型的矢量)被分解成一定层次的数据库子部分或分矢量。在一个实施例中,描述或表示空间单元的4×4阵列的数据库完整矢量可以例如被分解成各自描述4×4阵列内的空间单元的2×4阵列的多个子部分矢量。描述2×4阵列的子部分矢量可以例如被分解成描述2×4阵列内的单元的2×2阵列的子部分矢量。子部分矢量可以重复地、反复地或另外地被分解直到计算出描述1×1阵列的多个子部分矢量,该多个子部分矢量共同地描述整个4×4阵列的所有空间单元、子部分或组元。

在一些实施例中,可以建立数据结构(例如,哈希表、k-d树、或其它数据结构)。数据结构(例如,哈希表、k-d树、或其它类型的数据结构)可以包括表示数据库片段的子部分矢量和完整矢量。数据结构也可以包括代码字索引、矢量索引或标签。例如,代码字索引可以与每个数据库子部分矢量(例如,表示1×1阵列的子部分矢量、表示2×2阵列的子部分矢量、表示2×4阵列的子部分矢量)和/或数据库完整矢量(例如,表示4×4阵列的矢量)关联。

在一些实施例中,数据结构可以包括从数据库子部分矢量的代码字索引到数据库完整矢量的代码字索引的指针(例如,索引叶(index leave)、指针集、或其它类型的数据),其中从所述完整矢量中分解出所述子部分矢量。在图像比较和目标检测期间,目标检测系统可以利用数据结构从表示较大子部分矢量(例如,表示2×1、2×2、或其它尺寸的子部分图像阵列的矢量)的分矢量的子部分矢量哈希(hash)到完整矢量(例如,表示4×4或者其它尺寸的完整图像阵列的矢量)。从子部分矢量哈希到完整矢量,或者部分到完整片段检测,可以提高根据本发明实施例的目标检测系统的速度和效率。

根据一些实施例,可以将输入或捕获的图像片段划分为多个重叠的空间单元阵列(例如,空间单元的4×4阵列)或片段。为了确定在数据库片段中最接近地匹配图像片段的数据库片段,可以对表示输入图像片段的空间单元的矢量(例如,图像空间单元矢量)与表示数据库空间单元片段的矢量(例如,数据库空间单元矢量)进行比较。可以利用近似最近邻数据结构(例如,KD树、LSH表、哈希表、或其它数据结构)对图像空间单元矢量与数据库空间单元矢量进行比较。基于该比较,可以确定数据库空间单元矢量中的哪个数据库空间单元矢量最接近地描述或匹配图像空间单元矢量。在一些实施例中,可利用指针或其它引用(reference)在数据库、数据结构和/或其它非暂时性信息存储介质中的各矢量、阵列和/或其它数据结构之间进行指示、引用和/或索引。可以使用从最接近地匹配数据库空间单元到表示包括最接近匹配数据库空间单元的数据库片段(例如,空间单元的1×2阵列)的矢量的指针或者其它引用。系统可以利用指针或其它引用来确定数据库片段中的哪个数据库片段(例如,空间单元的1×2阵列)最接近地匹配图像片段(例如,1×2阵列),该图像片段包括图像空间单元。系统可利用从表示数据库片段(例如,空间单元的1×2 阵列)的矢量到表示包括该数据库片段的数据库片段(例如,空间单元的2×2 阵列)的矢量的指针或者其它引用来确定数据库片段中哪个数据库片段(例如空间单元的2×2 阵列)最接近地匹配包括以前确定的图像片段(例如,1×2阵列)和图像空间单元的图像片段(例如,2×2阵列)。系统可以重复地利用指针或其它引用而在数据结构中从数据库片段索引到包括该数据库片段的数据库片段,从而确定表示在数据库片段中最接近地匹配输入图像片段中的空间单元阵列的数据库片段(例如,空间单元的4×4阵列)的矢量。因此,系统可以重复地利用指针或其它引用来确定数据库片段中哪个数据库片段最接近地匹配包括较小的以前匹配的图像片段在内的较大图像片段。

根据一些实施例,可以对表示一个或多个重叠图像片段(例如,空间单元的阵列)的图像矢量与数据库片段矢量进行比较。当前评估的图像片段(例如,4×4空间单元阵列)可以例如仅包括一个以前未评估的空间单元。当前评估的图像片段中的其它单元可以例如在以前比较操作中当把与当前评估的图像片段重叠的以前评估的图像片段与数据库图像片段进行比较时已与数据库片段匹配。可以将以前未被评估的空间单元与数据库片段进行比较,从而确定最接近匹配数据库片段。可以确定最接近匹配数据库片段的代码字索引。可以确定与匹配当前评估的图像空间单元的数据库片段空间单元相邻的数据库空间单元片段的代码字索引。可以从以前的比较操作(例如,用于检测与当前评估的图像片段重叠的图像片段中的目标的比较操作)中了解相邻的数据库空间单元片段的代码字索引。可以使用与在数据库片段中最接近地匹配当前评估的图像空间单元的数据库片段相关联的代码字索引、以及与在数据库片段中最接近地匹配当前评估的图像空间单元的数据库片段相邻的数据库片段相关联的代码字索引。可以利用代码字索引并结合数据结构中的指针或者其它引用来确定最接近匹配2×1数据库片段图像阵列。可以利用与表示最接近匹配2×1数据库图像阵列的数据库片段相关联的代码字索引、以及与最接近匹配2×1子部分阵列相邻的2×1数据库图像阵列的代码字索引并结合指针或其它引用来确定最接近匹配2×2子部分阵列。系统可以重复地利用代码字索引和指针来确定匹配当前评估的图像片段(例如,4×4空间单元阵列)的4×4数据库图像阵列。类似的系统和/或过程也可以用于不同尺寸的图像、阵列、子部分阵列、和空间单元。

图1是根据本发明一个实施例的目标检测系统的示意图。目标检测系统100可以包括一个或多个计算机视觉传感器10(例如,摄像机、视频摄像机、数字摄像机、图像传感器或者其它图像采集装置)。计算机视觉传感器10可以捕获包括一个或多个目标和/或特征的图像。也可以通过例如从另一计算机、数据库或者其它系统中下载,而以另外的方式将图像输入系统100。目标检测系统100可以包括一个或多个处理器或控制器20、存储器30、长期存储装置40、输入装置或输入区50、以及输出装置或输出区60。输入装置或输入区50可以是例如触摸屏、电容式输入装置、键盘、传声器、指示设备、钮、开关、或者其它装置。输出装置或输出区50可以是例如显示器、屏幕、音频设备(例如,扬声器或头戴式收话器)、或者其它装置。输入装置或输入区50以及输出装置或输出区60可以合并入例如可以是系统100的一部分的触摸屏显示器和输入装置。

系统100可以包含一个或多个数据库70,数据库70可以包括例如描述片段、空间单元或空间单元阵列的矢量90(例如,SIFT 矢量、HOG矢量、或者其它类型的矢量)、子部分矢量、完整矢量和/或代码字、以及图像的数据库。在一些实施例中,数据库70或者其它存储结构或装置可以包含数据结构80。数据结构80可以包括或者可以是一个或多个哈希表82、k-d树、或其它类型的数据结构。数据结构80可以包括代码字索引84、代码字索引之间的指针86、矢量指针、以及其它信息或数据的列表或者字典。数据库70可以全部或部分地存储在存储器30、长期存储装置40中的一个或两个、或者另一装置中。

处理器或控制器20可以是例如:中央处理单元(CPU)、芯片或者任何合适的运算或计算装置。处理器或控制器 20可以包括多个处理器,并且可以包括通用处理器和/或专用处理器(例如 图形处理芯片)。处理器20可以执行例如存储在存储器30或长期存储装置40中的代码或指令,从而实施本发明的实施例。

存储器30可以是或者可以包括例如:随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储(SD-RAM)、双倍数据速率(DDR)内存芯片、闪速存储器、易失性存储器、非易失性存储器、高速缓冲存储器、缓冲器、短期记忆单元、长期记忆单元、或者其它合适的记忆单元或存储单元。存储器30可以是或者可以包括多个记忆单元。

长期存储装置40可以是或者可以包括例如:硬盘驱动器、软盘驱动器、光盘(CD)驱动器、可记录CD(CD-R)驱动器、通用串行总线(USB)装置、或者其它合适的可移除和/或固定的存储单元,并且可以包括多个这种单元或者这种单元的组合。

图2是根据本发明一个实施例的对划分成空间单元和空间单元阵列的图像与一个或多个数据库图像进行比较的示意图。典型的目标检测系统100可以捕获或者以其它方式获得图像120。系统100可以将图像120划分成一个或多个区域、空间单元、或者空间面元130和/或一个或多个区域阵列、空间面元阵列、或空间单元阵列140。一个或多个阵列140(例如,4×4阵列)可以包括一个或多个空间单元130(例如,4×4阵列中的16个空间面元)。图像120可以包含多个阵列,阵列140可以相互重叠。一个或多个空间单元120可以各自被包括在一个或多个阵列140中,或者是一个或多个阵列140的一部分。例如,图像120中的空间单元150可以被包括在图像120的三个或更多的不同或单独的阵列140中。阵列140和空间单元130可以被称为片段,并且可以用一个或多个矢量或代码字进行描述或表示。

目标检测系统100可以包含片段的数据库,片段包括图像、图像的各部分、或者部分图像110。数据库图像110(例如存储在数据库70中)可以包括例如以下对象的图像、这种图像的部分、以及其它图像或图像部分:有不同位姿、朝向、移动、动作和形态的人;有不同取向、形态和视点的物体。数据库图像110可以各自被标示、引用、或者以其它方式与描述图像中的人、物体或内容的描述符、分类器、或者其它信息或元数据关联。 

系统100可把数据库图像110划分成一个或多个空间单元130 以及/或者一个或多个阵列。数据库图像110可以包含一个或多个阵列,这些阵列可以相互重叠。一个或多个空间单元可以被包括在一个或多个阵列中或者是一个或多个阵列的一部分。数据库图像阵列和空间单元可以被称为数据库片段,并且可以利用一个或多个多维矢量来描述或表示。

根据一些实施例,系统100可以将图像120、图像空间单元阵列140或图像空间单元130与一个或多个数据库图像110、数据库图像中的空间单元阵列或数据库图像中的空间单元进行比较。系统100可以利用比较过程来对图像120、图像空间单元阵列140或图像空间单元130内的目标或特征进行检测或分类。

图3是根据本发明一个实施例的目标检测系统的示意图,该图描述了图像中的空间单元阵列的矢量表示。目标检测系统100可以将图像200(例如,数据库图像130、捕获的图像120、或其它图像)划分成一个或多个空间单元或面元210和/或一个或多个阵列220。各阵列可以包括多个空间单元210,一个或多个空间单元210可以被包括在一个或多个阵列220中。各空间单元210和各阵列220可以由一个或多个代码字或者多维矢量230(例如,SIFT矢量、HOG 矢量、或其它类型的矢量)描述或表示。在一个实施例中,表示或描述空间单元210的矢量230可以是8维(8-D)矢量。在一个实施例中,表示4×4阵列的矢量230可以是128-D矢量。可以使用表示和/或描述其它尺寸的片段、空间单元阵列和/或空间单元的其它尺寸的矢量。

根据一些实施例,矢量230或者矢量 230的组元或分量可以表示片段(例如,图像200、空间单元210、或空间单元阵列220)的特征。矢量230可以是表示、描述和/或用数字表示图像、片段、空间单元阵列、空间单元或像素的特征(例如,明度、暗度、亮度、色调、颜色、纹理、或者其它图像特征)的数据元的有序列表。在一些实施例中,数据元的有序列表可以表示图像、片段、空间单元阵列、空间单元或像素内的不同取向(例如,水平方向、竖直方向、对角线方向等)的相对强度。在一些实施例中,可以用图像的片段、单元阵列、空间单元和/或像素内的预定方向(例如,水平方向、竖直方向、或对角线方向)上从亮到暗及从暗到亮的亮度梯度的直方图,来表示不同取向的相对强度。在一些实施例中,矢量中的数据元表示图像、片段、空间单元阵列、空间单元或像素内的亮度梯度、颜色、色调、纹理、或其它图像特点、图像特点的特征和/或梯度的直方图。

图4是根据本发明一个实施例的目标检测系统的示意图。目标检测系统100的数据库(例如数据库70中的矢量90)可以包括一个或多个完整图像阵列300。系统100可以利用数据库完整图像阵列300对捕获或输入的图像进行分类或归类。可以用数据库完整矢量(例如,SIFT矢量、HOG矢量或者其它类型的矢量)来表示或描述数据库完整图像阵列300。系统100可以把表示完整图像阵列300的数据库完整矢量分解成一定层次的表示或描述数据库完整图像阵列300的一个或多个子部分阵列310的分量或数据库子部分矢量。在一个实施例中,数据库完整图像阵列300可以是4×4 阵列,子部分阵列310可以是2×4 阵列。系统100可以把描述子部分阵列310的一个或多个数据库子部分矢量分解成描述子部分阵列320的一个或多个矢量或片段。子部分阵列320可以是例如2×2阵列。系统100可以将描述子部分阵列320的一个或多个数据库子部分矢量分解成描述子部分阵列330的一个或多个数据库子部分矢量。子部分阵列330可以是例如1×1阵列。子部分阵列330、子部分阵列320、和子部分阵列310可以全部从完整图像阵列300中分解。应当理解的是,以上实例中的阵列和子阵列尺寸涉及与本发明的一个实例。然而,本发明可以一般化从而适用于任意尺寸或维数的图像阵列。

图5是根据本发明一个实施例的数据结构系统的示意图。在一些实施例中,数据结构400(例如,哈希表410、k维树、或其它数据结构)可以由系统100所建立并且/或者存储在系统100中。数据结构400(例如,哈希表410、k维树、或其它类型的数据结构)可以包括在代码字索引的字典中的一个或多个代码字索引420或标签。各代码字索引420可以例如与表示子部分阵列(例如,子部分阵列310、子部分阵列320、子部分阵列330)的数据库子部分矢量440(例如,子部分数据库矢量)和/或表示完整阵列(例如,完整图像阵列300)的数据库完整矢量450(例如,完整数据库矢量)中的一个相关联。可以在建立图像数据库时、在把图像加入到数据库中时、或者在另一时间,形成或定义代码字索引的字典。

在一些实施例中,表示完整图像阵列的矢量450(例如,完整数据库矢量)可以包括数据库子部分矢量440(例如,子部分数据库矢量),数据库子部分矢量440描述由数据库完整矢量450分解出的子部分阵列(例如,子部分阵列310、子部分阵列320、子部分阵列330)。因此,在一些实施例中,表示完整图像阵列(例如,完整图像阵列300)的数据库完整矢量450可以与跟分矢量相同或类似的代码字索引420相关联,其中所述分矢量表示被包括在完整图像阵列300中的子部分阵列440(例如,子部分阵列310、子部分阵列320、子部分阵列330)。

根据一些实施例,数据结构400可以包括:从描述数据库子部分阵列的数据库子部分矢量440映射或指向至其它数据库子部分矢量440和/或数据库完整矢量450的指针430、引用、或者其它数据。在一些实施例中,数据结构400可以包括从与一个矢量440相关联的一个或多个代码字索引420映射或指向至与另一个矢量450相关联的一个或多个代码字索引420的指针430、引用、或者其它数据。数据结构400可以包括例如从与描述数据库子部分阵列(例如,子部分阵列320、子部分阵列310)的数据库子部分矢量440相关联的代码字索引 420到与描述完整图像阵列(例如,完整图像阵列300)的数据库完整矢量450相关联的代码字索引420的指针430,子部分阵列矢量440是从所述完整图像阵列分解出的。 

在一些实施例中,数据库完整矢量450可以包括一个或多个子部分矢量440。因此,子部分矢量440可以被直接包括在一个或多个完整矢量450的分量中或者是一个或多个完整矢量450的分量。然而,在一些实施例中,可以将子部分矢量440归一化,并且归一化的子部分矢量440可以被包括在一个或多个完整矢量450的分量中或者是一个或多个完整矢量450的分量。在一些实施例中,子部分矢量440可以不被包括在完整矢量450中。

系统100可以利用数据结构400、代码字索引420和/或指针430而快速且高效率地确定描述完整图像阵列(例如,完整图像阵列300)和子部分图像阵列(例如,图像阵列320和/或图像阵列310)的矢量,其中描述子部分图像阵列(例如,图像阵列310、图像阵列320和/或图像330)的矢量是从所述子部分图像阵列分解出的。系统100可以利用数据结构400从子部分图像阵列哈希到完整图像阵列。

图6是根据本发明一个实施例的目标检测系统的示意图。目标检测系统100可以将图像500与一个或多个数据库图像550或数据库图像片段550进行比较,从而对图像500中的目标进行分类或识别。系统100可以将图像500划分成空间单元570的一个或多个片段或阵列(例如,阵列510、阵列 520、阵列530、和阵列540)。可以利用一个或多个多维矢量或代码字来表示或描述所述一个或多个阵列及空间单元。

描述图像阵列(例如,阵列510、阵列520、阵列530、和阵列540)的矢量可以包括大量的数据。例如,矢量可以具有许多维数。阵列510可以是例如4×4阵列,描述阵列510的矢量可以是例如128-D矢量。为了提高目标检测过程中的速度和效率,系统100可以把描述阵列510的一个或多个矢量分解成描述阵列510的片段、部分或子部分、和/或阵列510内的空间单元570的矢量。描述阵列510的矢量可以是例如128-D矢量,并且可以被分解成描述阵列510的各部分和/或阵列510中的空间单元570的一个或多个64-D、32-D、16-D和8-D矢量。

系统100可以将表示图像(例如,图像阵列510、图像阵列520、图像阵列530、图像阵列540和其它图像阵列)中的阵列的矢量与表示数据库图像阵列的矢量(例如,子部分数据库矢量和完整数据库矢量)进行比较。在一些实施例中,系统100可以对由描述阵列510的矢量或片段所分解出的分解或子部分矢量或片段与描述数据库图像的子部分阵列(例如,子部分阵列310、子部分阵列320、或子部分阵列330)的矢量(例如,子部分数据库矢量)进行比较。系统100可以例如确定哪个描述数据库图像阵列、数据库图像阵列子部分、或数据库图像阵列550中的空间单元的矢量最接近地匹配描述图像阵列510、阵列510的子部分、或图像阵列500中的空间单元的矢量。

在一些实施例中,系统100可以确定在数据库矢量中哪个描述数据库图像阵列550、数据库图像阵列550的子部分、或者数据库图像阵列550中的空间单元的数据库矢量最接近地描述由描述图像阵列510、阵列510的子部分、或者图像阵列500中的空间单元的矢量所描述的图像特征。在各数据库矢量中一数据库矢量可以最接近地描述一图像特征,如果与由其它数据库矢量所表示的任何其它图像特征相比由该数据库矢量所表示的图像特征更类似于该图像特征的话。

在一些实施例中,系统100可以通过测量代码字之间的距离来确定在数据库代码字中哪个数据库代码字或矢量最接近地匹配图像代码字。系统100可以通过例如测量或计算在描述阵列510、或阵列510的子部分的矢量或代码字与描述数据库图像片段或阵列550 或数据库图像片段或阵列550的子部分的一个或多个矢量或代码字之间的距离(例如,欧几里得距离、或者其它差分计算),而确定或发现一个或多个最接近匹配。系统100 可以例如通过计算描述图像特征的代码字与描述数据库图像阵列的图像特征的多个代码字中每个之间的差,而发现描述数据库图像阵列的图像特征的多个代码字中的哪个代码字最接近地匹配描述图像特征的代码字。与描述图像特征的代码字之间距离最小的、描述数据库图像阵列的图像特征的代码字可以是最接近地匹配数据库代码字(例如,描述数据库图像阵列的图像特征的代码字)。在一些实施例中,系统100可以通过确定哪个数据库代码字在数值上最类似于图像代码字,而确定在数据库代码字中最接近地匹配图像代码字的数据库代码字。可以利用其它计算方法对两个矢量进行比较。可以采用除计算距离以外的方法来确定匹配或者最接近匹配。

在一些实施例中,系统100可以对相同维数的矢量进行比较,例如可以将表示捕获图像的子部分的8-D矢量与表示数据库图像子部分阵列的8-D矢量进行比较。在一些实施例中,可以对具有一定尺寸或维数的矢量与具有相同尺寸或维数的矢量或者具有不同尺寸或维数的矢量进行比较。

根据一些实施例,系统100可以对表示图像阵列510(例如,1×1 单元阵列)的空间单元的矢量(例如,图像矢量)与表示相同维数的数据库图像子部分阵列550(例如,表示1×1阵列的数据库图像子部分阵列550)的一个或多个矢量(例如,子部分数据库矢量)进行比较。基于该比较,系统100可以确定在数据库子部分阵列中哪个数据库子部分阵列550最接近地描述或匹配图像阵列510的空间单元的图像特点或特征。然后,系统100可以确定对应于或者描述该最接近地描述或匹配数据库子部分矢量(例如,表示1×1阵列的数据库子部分矢量)的代码字索引420。系统100可以用代码字索引420、指针 430、和/或数据结构400(例如,哈希表82、k-d树、或其它数据结构)来确定最接近描述、匹配或以其它方式类似的表示更高维数的数据库子部分阵列的数据库子部分矢量(例如,表示2×1单元的16-D矢量)。系统100可以重复地使用代码字索引420、指针430和/或数据结构400(例如,哈希表410、k-d树、或其它数据结构)来确定最接近匹配或者类似的表示更大数据库图像子部分图像阵列(例如,2×2、4×2、4×4、和其它尺寸的单元阵列)的更高维数矢量(例如,32-D、64-D和128-D矢量),其中子部分数据库矢量是由所述更大数据库图像子部分图像阵列分解而来。例如,利用此方法,系统100可以通过对从128-D完整数据库矢量分解出的8-D子部分数据库矢量进行比较并且进行哈希(hashing),而快速地将由128-D矢量所表示的4×4图像阵列510与由128-D矢量所表示的4×4 数据库图像阵列550进行匹配。可以使用其它方法,并且可以对由其它尺寸的矢量所表示的其它尺寸的图像阵列进行匹配。

根据一些实施例,系统100 可以将表示一个或多个重叠图像阵列(例如,图像阵列510、图像阵列520和图像阵列530、图像阵列540)的图像矢量与表示数据库图像阵列 550的数据库子部分或完整矢量进行比较。系统100可以例如对图像阵列540与数据库图像阵列550进行比较。例如,图像阵列540可以仅包括一个以前未被评估的空间单元560。图像阵列540中的其它单元可以例如在以前的比较操作中把图像阵列510、图像阵列520和图像阵列530与数据库图像阵列550进行比较时,已经与数据库图像阵列550进行了比较。系统100可以将空间单元560与子部分数据库图像阵列550进行比较以确定最接近匹配子部分数据库图像阵列550。系统100可以确定表示最接近匹配子部分数据库阵列550的数据库子部分矢量的代码字索引420。系统100可以确定表示与单元560相邻的空间单元(例如,相邻的空间单元580)的数据库子部分矢量的代码字索引420,该代码字索引420可以从以前的比较操作(例如,用于检测目标图像阵列530的比较操作)中获知。例如,系统100可以利用与表示最接近匹配子部分阵列550的数据库子部分矢量相关联的代码字索引420以及与匹配相邻空间单元580的子部分数据库矢量相关联的代码字索引420并结合数据结构400中的指针430来确定最接近匹配2×1数据库子部分图像阵列590。最接近匹配2×1数据库子部分图像阵列590可以包括空间单元560和相邻的空间单元580。系统100可以利用与表示最接近匹配2×1数据库子部分图像阵列590的数据库子部分矢量相关联的代码字索引以及与最接近匹配2×1子部分阵列相邻的2×1子部分数据库图像阵列的代码字索引,并结合数据结构400中的指针430,来确定最接近匹配2×2子部分阵列 592。最接近匹配2×2 子部分阵列592可以包括2×1子部分数据库图像阵列590以及与子部分阵列590相邻的2×1子部分数据库图像阵列。系统100可以重复这个部分到完整片段检测的过程来确定或评估匹配图像阵列540的4×4数据库图像阵列。因此,系统可以重复地利用代码字索引之间的指针来确定在数据库图像阵列中哪个数据库图像阵列最接近地匹配包括较小的以前匹配的图像片段的较大图像片段。类似的过程也可以用于不同尺寸的阵列、子部分阵列、空间单元、和图像。

然后,系统100可以把与矢量或代码字(例如,第二矢量或者第三代码字)相关联的图像或目标特征显示给用户。目标特征可以是例如:处于特定位姿的人、车辆的图像、树的图像、或其它目标。可以在例如输出装置60(例如,视频显示屏)上将目标特征或图像显示或输出给用户。

应当理解的是,涉及到表示4×4图像阵列(例如,图像阵列520、图像阵列530、图像阵列540)的矢量的上述实例可以被一般化而适用于表示任何尺寸的图像阵列的矢量(例如表示8×16空间单元阵列的HOG矢量、或者表示各种尺寸图像阵列的其它类型和维数的矢量)。

图7是根据本发明的一个实施例的方法的流程图。

在操作600中,处理器(例如,图1的处理器20)可以将表示图像的图像片段的第一图像特征(例如,梯度方向)的图像矢量(例如,图3的矢量 230)与表示数据库图像的一个或多个数据库图像片段的图像特征的一个或多个数据库矢量(例如,图4的子部分阵列330)进行比较。处理器可以通过测量矢量之间的距离(例如,欧几里得距离)而对图像矢量与一个或多个数据库矢量进行比较。

在操作610中,处理器可以基于图像矢量与一个或多个数据库矢量的比较来确定数据库矢量中的第一匹配数据库矢量(例如图4的数据库子部分矢量 440),该第一匹配数据库矢量在数据库矢量中最接近地描述由图像矢量所表示的图像特征。

在操作620中,处理器可以利用数据结构(例如,图5的数据结构400)并结合第一匹配数据库矢量以及一个或多个以前匹配的数据库矢量来确定第二数据库矢量(例如,图4的数据库完整矢量450),该第二数据库矢量包括第一匹配数据库矢量(例如图4的数据库子部分矢量440)以及一个或多个以前匹配的数据库矢量,并且在数据库矢量中最接近地描述包括第一图像片段的第二图像片段。在一些实施例中,数据结构可以包括哈希表(例如,图5的哈希表410)、代码字索引(例如,图5的代码字索引420)、和/或指针(例如,图5的指针430)。

在操作630中,处理器可以基于第二数据库矢量(例如,数据库完整矢量450)来确定目标特征并且将表示目标特征的数据输出给用户。输出给用户的数据可以是例如如下提示:在图像中发现目标(例如人的图像)。可以在显示屏(例如,图1的输出装置60)、音响报警装置、灯或其它形式的显示装置上将数据显示给用户。

可以采用其它操作或者其它系列的操作。

本发明的实施例可以包括执行本文中所描述操作的设备。这种设备可以特别地为期望的目的而制造,或者可以包括选择性地被存储在计算机中的计算机程序激活或再配置的计算机或处理器。这种计算机程序可以存储在计算机可读或处理器可读非暂时性存储介质、任何类型的盘(包括软盘、光盘、CD-ROM、磁-光盘)、只读存储器(ROM)、随机存取存储器(RAM)、电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、或者适于存储电子指令的任何其它类型的介质中。应当理解的是,多种编程语言可用于实施本文中所描述的本发明教导。本发明的实施例可以包括一物件,例如非暂时性计算机或处理器可读非暂时性存储介质,例如编码、包括或存储指令(例如计算机可执行指令)的存储器、盘驱动器、或USB 闪速存储器,所述指令当被处理器或控制器执行时使处理器或控制器执行本文中所公开的方法。所述指令可以使处理器或控制器执行实施本文中所公开方法的过程。

本文中公开了不同的实施例。某些实施例的特征可以与其它实施例的特征相结合;因此某些实施例可以是多个实施例的特征的组合。前面为了说明和描述的目的,已给出了对本发明实施例的描述。并非意图是详尽无遗的或者将本发明限制在所公开的精确形式。本领域技术人员应理解的是,根据以上教导许多修改、变更、替换、变化及等同物是可能的。因此,应该理解的是所附权利要求意图覆盖落在本发明的真实精神内的所有这种修改和变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号