技术领域
[0001] 本公开内容总体上涉及从电子图像提取特征,并且更具体地涉及利用基于模型的算法和数据驱动的算法两者对电子图像进行特征提取的技术。
相关背景技术
[0002] 本部分提供与本公开内容有关的背景信息,其不一定是现有技术。
[0003] 特征提取为许多图像处理任务例如图像分类和对象识别等提供基础。传统的特征提取技术可以分类为基于模型的方法、数据驱动的方法或基于模型的方法和数据驱动的方法的某种组合。基于模型的特征提取方法通常利用通过训练图像而获得的规则来将特征映射至未知图像中的对象。数据驱动的特征提取方法通常利用相对大量的训练图像,根据这些训练图像来得出特征至对象的映射示例。组合或“混合”方法利用规则以及特征至对象的映射示例的组合。
[0004] 本公开内容提供一种特征提取技术,其利用基于模型的方法和数据驱动的方法两者来在例如图像分类和对象识别中获得改善了的性能。
具体实施方式
[0018] 现将参考附图更加充分地描述示例实施方式。
[0019] 现参考图1,示出了表示根据本公开内容的一些实施方式的示例特征提取架构10的框图。特征提取架构10提供一种用于对至少一个电子图像40进行特征提取以获得与在电子图像40中示出的一个或更多个对象映射或配准的一组特征50。示例特征提取架构10包括边缘选择11、边缘合并(pooling)12、颜色及纹理片13、稀疏正则化14、部件选择15、部件合并16以及有监督学习17。边缘选择11和边缘合并12构成用于特征提取的基于模型的算法20的一部分,而颜色及纹理片13构成用于特征提取的数据驱动的算法30。下面将更加充分地描述特征提取架构10的每个要素。
[0020] 现参考图2,示出了将进行特征提取的示例电子图像40。电子图像40包括对象45的表示,其在该示例中为正在水上航行的帆船。特征提取可以从电子图像40检测能够映射(配准)至对象45的各种特征(边缘、颜色、纹理等)。然后可以将这些特征与未知图像中的特征进行比较以对未知图像中的未知对象进行检测和分类。
[0021] 现参考图3,示出了根据本公开内容的各种实施方式的示例特征提取技术100。应当理解,特征提取技术100可以由适当地配置的计算机或其他计算设备来进行,诸如图4所示的示例特征提取技术200。在步骤102,获得电子图像40。电子图像40是可以任意数量种方式获得的数字图像,例如,从电子存储介质(数据库、硬盘、闪存存储器设备等)获得、从数字摄像机和/或从数字扫描仪获得。电子图像40可以包括技术100会将特征配准至其的对象45的表示(诸如图2所示的帆船)。对于将用来训练用于图像分类、对象识别等的技术的电子图像40,可以由用户对对象45进行分类。在图2所示的电子图像40的说明示例中,用户可以将对象45分类为“帆船”、“小船”、“船舶”/或其他恰当的分类。
[0022] 在步骤104对电子图像40执行边缘检测算法以获得与对象45对应的第一组边缘。在步骤104可以利用各种边缘检测算法中的任意一种。仅作为示例,在本公开内容的各种实施方式中,可以利用Gabor滤波器来获得第一组边缘。在这些示例中,电子图像40被转换为灰度值图像“I”。可以使用以下等式应用不同大小的Gabor滤波器作为卷积核以处理灰度值图像I:
[0023] 其中
[0024] x0=xcosθ+ysinθ且y0=-xsinθ+ycosθ
[0025] 其中,γ是宽高比、θ是取向(取值0°、45°、90°和135°),σ是有效宽度,λ是波长并且Fs(x,y)是由Gabor滤波器在位置(x,y)处形成的2D矩阵的值。由Gabor滤波器产生的矩阵大小(s×s)范围为以两个像素为间隔从7×7像素至37×37像素。根据以下等式通过电子图像40与多个Gabor滤波器的二维卷积(“conv2”)来产生边缘检测算法的输出(即,第一组边缘):
[0026] 其中
[0027] iF=(ib×ns+is)×nf+if
[0028] 其中, 是第一组边缘,并且nb、ns、和nf是代表频带数量、尺度数量和滤波器数量。
[0029] 本技术行进至步骤106,其中,对第一组边缘进行边缘合并算法以获得与对象45对应的第二组边缘。进行边缘合并算法以从第一组边缘丢弃噪声边缘和冗余边缘。因此,一旦将这样的噪声/冗余边缘去除,第二组边缘的数量小于第一组边缘的数量。在各种实施方式中,边缘合并算法利用MAX运算以根据第一组边缘获得第二组边缘。仅作为示例,MAX运算可以利用以下等式:
[0030]
[0031] 其中,(xm,ym)代表位置(x,y)处的边缘检测结果并且 是第二组边缘。可以在相同取向的相同空间近邻内在两个尺度上进行MAX运算。
[0032] 对电子图像40进行采样以获得边缘片组(步骤108)、颜色片组(步骤110)和纹理片组(步骤112)。“片”是在电子图像40的特定位置处以多个分辨率并且沿4个取向采样的像素区域。在图2中示出了来自电子图像40的示例片47-1、47-2和47-3。如果已经采样了足够的来自对象45的代表性片,则可以充分地表达对象45。在步骤114,选择来自于边缘片组、颜色片组和纹理片组的片组。这些步骤108、110、112和114与图1所示的特征提取架构10的稀疏正则化14相对应。在稀疏正则化14中,用于特征提取的基于模型的算法20和数据驱动的算法30被合并。
[0033] 在步骤108、110和112可以利用各种采样技术中的任意一种或更多种技术来分别获得边缘片组、颜色片组和纹理片组。仅作为示例,边缘片可以是从第二组边缘采样的任意数量个像素。颜色片可以按照各种分辨率(粗糙、中等、精细等等)来采样并且可以包括任意量的颜色信息特征,包括但不限于颜色、颜色直方图、颜色均值(在H、S和V通道)、颜色方差(在H、S和V通道)以及如延伸及扩展等形状特征。纹理片可以被采样并且可以包括任意量的纹理信息,包括但不限于结构、尺度、取向以及如延伸及扩展等形状特征。
[0034] 在各种实施方式中,基于贪心算法来选择片组,该贪心算法使用欧几里得距离从边缘片组、颜色片组和纹理片组中的每个片中选择片子组以获得该片组(步骤114)。仅作为示例,如果该片组包括z个片,可以随机地或通过任意其他技术来选择z个片中的第一片,并且可以基于距先前片的欧几里得距离来选择每个后续片(上至并包括第z片)(即,第二片基于第一片,第三片基于第二片,等等)。一般而言,在各种实施方式中,步骤114基于距第i片的欧几里得距离来选择要位于该片组内的第i+1片。
[0035] 在一些实施方式中,可以通过确定以下片来选择每个片(除第一片外):(1)其还没有位于该片组中;以及(2)按照欧几里得距离,其距离紧接在前的片“最远”。即,一般而言,如果第i片与第i+1片之间的欧几里得距离大于或等于第i片与还没有位于该片组内的所有其他片之间的距离,则步骤114将该第i+1片选到该片组内。
[0036] 该技术继续至步骤116,其中,对该片组进行部件选择算法以获得第一组部件。第一组部件中的每个部件可以描述对象45的比边缘片、颜色片和纹理片更大的区域。在一些实施方式中,通过对从用于训练该技术的多个电子图像40-1、40-2…40-n中获得的片组中的每个片中所选择的片进行检查来获得第一组部件。如果所选择的片足够频繁地出现在片组内,则这些片可以被选为表示对象45的部件。进行该检查的一种方式是,对于正在被检查的每个训练图像,尝试将其片组与用于先前分析的训练图像的所有存储的片组进行匹配。
[0037] 在一些实施方式中,可以基于以下等式来从片组选择部件:
[0038]
[0039] 其中,β是调谐锐度, 是片组中的片之一, 是 的变换,其中所有取向被合并以适合 的大小。在该示例中,获得每个原型片的图像的nb个测量。因此,该部件选择步骤所做出的测量的总数是片组中的片的数量(np)乘以频带的数量(np×nb)。
[0040] 在步骤118,对第一组部件进行部件合并算法以获得第二组部件。进行部件合并算法以从第一组部件丢弃噪声部件和冗余部件。因此,一旦这样的噪声/冗余部件被去除,第二组部件的数量将会小于第一组部件的数量。类似于上述边缘合并算法(步骤106),部件合并算法可以利用MAX运算来根据第一组部件获得第二组部件。
[0041] 在一些实施方式中,第一组部件中的每个部件被分成4个(或任意数量个)子部件,即,与第一组部件中的每个部件相对应的矩阵被分成4个(或任意数量个)子矩阵。可以对这些子部件进行MAX运算,其提供对与部件有关的信息(例如,空间信息)的保持力的提高。
[0042] 该技术继续至步骤120,其中,第二组部件被配准(或映射)至对象45。可以基于第二组部件与用于训练该技术的多个电子图像40-1、40-2…40-n中对象45的采样部件的匹配度来进行该配准(或映射)。仅作为示例,可以通过有监督学习如支持向量机(SVM)等来进行第二组部件至对象45的配准。
[0043] 示例技术100的优点之一是其处理大规模数据组的可伸缩性的便利。通过上述技术100提取的特征彼此独立。因此,可以在分布式计算环境中进行这些所提取的特征的分析和应用。此外,作为附加片,获得部件和其他信息(例如,通过获得和分析附加训练图像),这些片、部件和信息可以简单地添加至片组、部件组等以提高该技术的性能。
[0044] 现参考图4和图5,示出了根据本公开内容的各种实施方式的示例特征提取技术200。特征提取技术200包括边缘检测模块202,其例如通过上面关于技术步骤104描述的一种或更多种技术来确定与电子图像40的对象45相对应的第一组边缘。边缘检测模块
202向边缘合并模块204输出第一组边缘。边缘合并模块204根据第一组边缘确定第二组边缘。边缘合并模块204可以进行各种边缘合并算法中的任意算法,包括但不限于上面关于步骤106讨论的那些算法。
[0045] 片采样模块206从边缘合并模块204接收第二组边缘,以及用于训练技术200的多个电子图像40-1、40-2…40-n。如图5所示,片采样模块206包括颜色片采样模块270、纹理片采样模块280和边缘片采样模块290。为了便于说明,在图5中,箭头205指示来自边缘合并模块204的第二组边缘的输入,以及至片采样模块208中的多个电子图像40-1、40-2…40-n的输入。颜色片采样模块270基于第二组边缘从电子图像40-1、40-2…40-n采样颜色片组。类似地,纹理片采样模块280基于第二组边缘从电子图像40-1、40-2…40-n采样纹理片组,并且边缘片采样模块290基于第二组边缘从电子图像40-1、40-2…40-n采样边缘片组。颜色片组、纹理片组和边缘片组然后被提供给片选择模块208。
[0046] 片选择模块208例如通过上面关于步骤114描述的任意技术/算法来从边缘片组、颜色片组和纹理片组选择片组。该片组然后被提供给部件选择模块210,其基于该片组确定第一组部件。上述部件选择的任意技术(步骤116)可以被部件选择模块210用于确定第一组部件。
[0047] 部件合并模块212从部件选择模块210接收第一组部件,并且基于第一组部件确定第二组部件(例如,通过上面关于步骤118描述的任意技术)。部件合并模块212向对象配准模块214输出第二组部件,如上所述,对象配准模块214将第二组部件配准至对象45。将第二组部件关联到对象45的配准信息可以被存储在电子存储介质如数据库250上以便将来使用。数据库250可以操作连接至计算设备260(个人计算机、服务器、服务器阵列等等)以使得计算设备260可以利用存储在数据库250上的配准信息和其他信息以例如提供用于未知图像的图像分类和对象识别。此外,本领域技术人员应当理解,尽管将特征提取技术200与计算设备260分离地示出,但是特征提取技术200可以全部或部分地与计算设备
260集成。
[0048] 提供示例实施方式以使得本公开内容会较透彻并且会充分地将范围传达给本领域技术人员。提出大量的具体细节如具体部件、设备和技术的示例以提供对本公开内容的实施方式的透彻理解。本领域技术人员应当理解,具体细节不需要被采用,示例实施方式可以以不同的形式来体现并且也不应该被解释为限制本公开内容的范围。在一些示例实施方式中,不对熟知的过程、熟知的设备结构和熟知的技术进行详细的描述。
[0049] 本文所使用的术语仅出于描述具体示例实施方式的目的而无意为限制性。如在本文中所使用的,除非上下文清楚地另外指出,否则单数形式“a”、“an”和“the”可能意图也包括复数形式。词语“和/或”包括关联列举项中的一个或更多个项的任意或全部组合。词语“包括(comprises)”、“包括(comprising)”、“包括(including)”和“具有(having)”为包括性,因此指所陈述的特征、整体、步骤、操作、要素和/或部件的存在,但不排除一个或更多个其他特征、整体、步骤、操作、要素、部件和/或其组的存在或附加。除非具体地确定为执行次序,否则本文所描述的技术步骤、处理和操作不应被解释为必需地要求按照所讨论或示出的具体次序来进行上述技术步骤、处理和操作的执行。还应当理解,可以采用附加或替代步骤。
[0050] 尽管在本文中可以使用词语第一、第二、第三等来描述各种要素、部件、区域、层和/或段,但是这些要素、部件、区域、层和/或段不应当受这些词语的限制。这些词语可以仅用于将一个要素、部件、区域、层或段与另一个区域、层或段区分开。除非通过上下文清楚地指出,否则词语如“第一”、“第二”和其他数字词语当在本文中使用时不暗示顺序或次序。因此,在不偏离示例实施方式的教示的情况下,下面所讨论的第一要素、部件、区域、层或段可以被称为第二要素、部件、区域、层或段。
[0051] 如本文所述使用的,词语“模块”可以指、作为其一部分或包括专用集成电路(ASIC);电子电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享、专用或组)或通过联网集群或数据中心中的处理器和存储器的分布式网络来执行的处理;提供所描述的功能的其他适合部件;或上述模块中的一些或所有模块的组合,如在片上系统中。词语“模块”可以包括存储由一个或更多个处理器执行的代码的存储器(共享、专用或组)。
[0052] 如上面所使用的,词语“代码”可以包括软件、固件、字节码和/或微码,并且可以指程序、例程、功能、类和/或对象。如上面所使用的,词语“共享”意味着可使用单个(共享)处理器执行来自多个模块的一些或所有代码。此外,可以通过单个(共享)存储器存储来自多个模块的一些或所有代码。如上面所使用的,词语“组”意味着可以使用处理器组来执行来自单个模块的一些或所有代码。此外,可以使用存储器组来存储来自单个模块的一些或所有代码。
[0053] 本文所描述的技术可以通过由一个或更多个处理器执行的一个或更多个计算机程序来实施。计算机程序包括存储在非瞬态有形计算机可读介质上的处理器可执行指令。计算机程序还可以包括所存储的数据。非瞬态有形计算机可读介质的非限制性示例为非易失性存储器、磁性存储器和光存储器。
[0054] 上述描述的一些部分从对信息的操作的算法和符号表示方面展现本文所描述的技术。这些算法描述和表示是由在数据处理领域中的技术人员用于最有效地将其工作的实质传达给本领域技术人员的手段。当功能性地或逻辑性地进行描述时,这些操作应当被理解为通过计算机程序来实施。此外,在不失一般性的情况下,有时也证明了将这些操作布置称为模块或通过功能性名称是方便的。
[0055] 如根据上述讨论很明显的,除非另外具体陈述,否则应当理解,贯穿本说明书,利用如“处理”、“计算(computing)”、“计算(calculating)”、“确定”或“显示”等词语的讨论指计算机系统或类似电子计算设备的动作和处理,上述计算机系统或类似电子计算设备对在计算机系统存储器或寄存器或其他信息存储、传输或显示设备内被表示为物理(电子)量的数据进行操作和转换。
[0056] 所描述的技术的某些方面包括在本文中以算法形式描述的处理步骤和指令。应当注意,所描述的处理步骤和指令可以用软件、固件或硬件来体现,并且当用软件来体现时,可以被下载以贮存在由实时网络操作系统所使用的不同平台上或从上述不同平台上操作。
[0057] 本公开内容还涉及用于执行本文的操作的装置。该装置可以为所要求的目的而具体地构建,或可以包括由存储在能够由计算机访问的计算机可读介质上的计算机程序选择性激活或重新配置的通用计算机。这样的计算机程序可以存储在有形计算机可读存储介质中,例如但不限于包括软盘、光盘、CD-ROM、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光学卡、专用集成电路(ASIC)的任何类型的盘,或适于存储电子指令的任何类型的介质,并且其中每个都被耦合至计算机系统总线。此外,本说明书所提到的计算机可以包括单个处理器或可以是采用用于提高的计算能力的多处理器设计的架构。
[0058] 本文所提出的算法和操作并非固有地与任何具体计算机或其他装置有关。各种通用系统也可以和根据本文教示的程序一起使用,或者可以证明便于构建更加专用的设备来执行所要求的技术步骤。用于各种这些系统的所需结构以及等同变型对本领域技术人员是明显的。此外,没有参考任何具体的编程语言来描述本公开内容。应当理解,可以使用各种编程语言来实施本文所描述的本公开内容的教示,并且对具体语言的任何引用用于对本公开内容的实现和最佳模式的公开。
[0059] 本公开内容很好地适于众多拓扑上的多种计算机网络系统。在该领域内,大网络的配置和管理包括在网络如因特网上通信耦接至不同计算机和存储设备的存储设备和计算机。
[0060] 为了说明和描述的目的提供了关于实施方式的前述描述。其无意为排他性或限制本公开内容。具体实施方式的各个要素和特征一般不限于该具体实施方式,但是当适用时为可互换的并且可以用于所选择的实施方式,即使没有特别示出或描述也是如此。上述要素或特征还可以许多方式来变化。这种变型不应认为背离本公开内容,并且所有这种修改意图被包括在本公开内容的范围内。