首页 理论教育现有纹理基元学习方法的优化

现有纹理基元学习方法的优化

【摘要】:例如,对于一个7×7像素的图像块,把所有像素的灰度值排成一列,构成一个49维的列向量,将其作为纹理基元的学习对象,最终学习到的每个纹理基元也是一个49维的列向量,可见,VZ-Joint算法中49维的图像块向量相当于VZ-MR8算法中的局部MR8响应特征。总体来说,将VZ-MR8算法和VZ-Joint算法相比,这两种纹理基元学习方法各有优劣之处,主要体现在以下几个方面。

纹理图像最显著的特点就是存在纹理基元,这种纹理基元通常表现为局部的图像特征,不同形态的纹理基元按照不同的规则重复出现,就形成了丰富多彩的纹理图像。基于纹理基元学习的纹理图像特征提取和识别方法就是将纹理图像中的纹理基元作为研究对象,通过对纹理基元的结构特征(如方形、圆形、星形等)和分布规律进行描述,将其作为整个纹理图像的特征表示,最后将该特征描述子送入分类器(最近邻分类器或SVM等),根据某种距离测度来实现纹理图像的识别。

为了提取纹理图像中不同形态和尺寸的纹理基元特征,受计算机视觉领域中“视觉词袋(Bag of Visual Words, BoVW)”模型的启发,可将不同形态和尺寸的纹理基元视为不同的视觉单词(Visual Words),利用字典学习的方法学习一组具有代表性的纹理基元,再用这些纹理基元来描述纹理图像的特征。在这种思想框架下,一些学者提出了基于纹理基元学习的纹理图像特征提取和识别方法,该方法的基本思路如下:首先,利用带类别标签的训练样本学习一组具有代表性的纹理基元,并用这些纹理基元构建一个纹理基元字典,这个纹理基元字典能够描述所涉及纹理图像的全部特征;其次,用这个纹理基元字典对原始的纹理图像或从原始纹理图像中提取的更高级特征进行编码,从而获得一个纹理基元编码图像;最后,计算纹理基元编码图像的统计特征(如可选择纹理基元编码图像的直方图特征,该方法不但计算简单、高效,而且对图像的旋转等因素具有稳健性),并将该纹理基元编码图像的统计特征作为原始纹理图像的特征描述子,送入分类器,以实现纹理图像的识别。

在传统的纹理基元学习方法中,最具代表性的是英国牛津大学的Varma和Zisserman提出的VZ-MR8方法[45]和VZ-Joint方法[46],这两种方法提取的纹理图像特征都具有较好的鉴别能力,能够取得较高的纹理图像识别精度,是字典学习方法在纹理图像特征提取和识别领域的成功应用。

在VZ-MR8方法[45]中,为了获得纹理基元的学习对象,作者先设计了一组滤波器,该滤波器组包含3个尺度和6方向的边缘滤波器(Edge Filter)和杆状滤波器(Bar Filter),还有一个高斯滤波器和一个LoG滤波器,共计38个滤波器。图2-2展示了该滤波器组的空域特性,其中边缘滤波器和杆状滤波器用于提取不同尺度和方向的图像特征,高斯滤波器和LoG滤波器用于提取各向同性的图像特征。

图2-2 VZ-MR8算法采用的滤波器组

在设计了一个滤波器组(共含有38个不同尺度和方向的滤波器)之后,可利用这组滤波器对原始的纹理图像进行卷积操作,每个滤波器输出一个滤波响应图像,从而获得38个滤波后的纹理图像。接下来,在每个尺度上对不同方向的边缘滤波图像和杆状滤波图像分别取最大值,因为滤波器组一共有3个尺度,所以跨尺度取最大值可获得3个尺度的边缘滤波最大图像和3个尺度的杆状滤波最大图像,再加上一个高斯滤波图像和一个LoG滤波图像,则一共有8个最大滤波图像,即8个最大响应(Maximum Response 8,MR8)图像,这也是VZ-MR8算法的名称由来。由于这8个最大响应图像具有相同的长宽度,最后把这8个相同尺寸的最大响应图像重叠放置,则每个像素位置对应一个8维的向量,则8个最大响应图像在同一位置的值构成一个8维的特征向量,这个8维的特征向量就作为VZ-MR8算法中用于学习纹理基元的潜在对象。因此,VZ-MR8算法首先提取所有训练样本在每个位置的8维特征向量,将其作为纹理基元的学习对象,然后利用非监督学习算法(K-均值聚类算法)从每个纹理类别学习一组纹理基元,用这些学习到的纹理基元代表每类样本的核心特征,最后把学习到的所有类别纹理图像的纹理基元进行合并,从而构建一个纹理基元字典。图2-3描述了利用预先构造的滤波器组建立纹理基元字典的过程,该纹理基元字典中的纹理基元互不相同,能够描述所有纹理样本图像的鉴别性特征,可用于原始纹理图像的纹理基元编码和类别判定。

图2-3 利用滤波法和K-均值聚类构建纹理基元字典

在建立纹理基元字典之后,根据纹理基元特征和原始纹理图像MR8局部特征的相似度,从这个纹理基元字典中挑选最相似的纹理基元对原始纹理图像的MR8局部特征进行编码,从而获得一个纹理基元编码图像,最后计算这个纹理基元编码图像的直方图,该直方图描述了纹理基元编码图像中不同类型纹理基元的出现频率,可将该纹理基元直方图作为原始纹理图像的特征描述子,并送入分类器,以实现纹理图像的识别。图2-4展示了利用滤波器组提取局部MR8特征,然后利用纹理基元字典对MR8特征进行编码,最后提取一个样本图像的纹理基元直方图的过程。

图2-4 提取一个样本图像的纹理基元直方图特征

随后,Varma和Zisserman对纹理基元学习方法开展进一步研究,并发现不采用滤波方法,而是直接利用图像局部区域的灰度联合分布来学习纹理基元也能获得较高的纹理识别精度,在此基础上,他们提出了VZ-Joint算法[46]。和VZ-MR8算法的最大区别是,VZ-Joint算法不再使用MR8滤波器组进行滤波,而是直接从整个图像的不同图像块(Image Patch)中学习纹理基元,因此避免了MR8滤波器组的设计过程,以及原始纹理图像和38个滤波器的卷积计算过程。例如,对于一个7×7像素的图像块,把所有像素的灰度值排成一列,构成一个49维的列向量,将其作为纹理基元的学习对象,最终学习到的每个纹理基元也是一个49维的列向量,可见,VZ-Joint算法中49维的图像块向量相当于VZ-MR8算法中的局部MR8响应特征。笔者在标准纹理图像数据库上开展的实验结果表明,VZ-Joint算法能获得比VZMR8算法略高的纹理识别精度。

总体来说,将VZ-MR8算法和VZ-Joint算法相比,这两种纹理基元学习方法各有优劣之处,主要体现在以下几个方面。

(1)在识别精度方面,VZ-Joint算法的纹理识别精度比VZ-MR8算法略高,并且VZ-Joint算法不需要设计MR8滤波器组,其实现原理更加简单。

(2)在实时性方面,VZ-MR8算法的速度更快,而VZ-Joint算法的计算量更大,实时性大幅降低。这是因为VZ-MR8算法中每个纹理基元的维数是8维,而VZ-Joint算法中纹理基元的维数显著增大。例如,如果VZ-Joint算法选择7×7像素的图像块作为纹理基元的学习对象,则每个纹理基元的维数为7×7=49维,这使纹理基元字典的学习过程和纹理图像的编码过程所需的计算量大大增加,因为在上述过程中需要将大规模的49维的向量进行比较,其对应的计算量非常大,从而导致VZ-Joint算法的实时性大幅下降,所以必须先对VZ-Joint算法中潜在的纹理基元学习对象采取进一步的降维操作,然后才能用于纹理基元字典的学习和对原始纹理图像进行纹理基元编码。同时,需要说明的是,虽然VZ-Joint算法避免了VZ-MR8算法中的滤波器组卷积滤波过程,即在局部特征提取这个环节上减少了计算量,但和大规模的49维向量的K-均值聚类算法和纹理基元图像编码相比,滤波器组卷积滤波的计算量要小得多,即VZ-Joint算法减少的计算量远小于增加的计算量,因此VZ-Joint算法整体的计算量仍然是显著增加了。

(3)在旋转不变性方面,VZ-MR8算法具有旋转不变性,这是通过对同一尺度上不同方向的滤波响应取最大值来实现的,即不论原始图像如何旋转,其滤波响应的最大值是不变的;而VZ-Joint算法本身不具有旋转不变性,因为VZ-Joint算法中每个图像块的像素是按列排序的,当原始图像发生旋转时,每个图像块的像素排序顺序也会发生改变,从而生成不同的纹理基元学习对象和编码对象。因此,要使VZ-Joint算法获得旋转不变性,必须增加其他相关的处理措施,但这会使VZ-Joint算法的计算负担进一步增大。

除了传统的VZ-MR8算法和VZ-Joint算法,最近Xie等[88]提出了一种新的基于纹理基元学习的纹理图像特征提取和识别方法,即纹理基元编码生成的统计特征(Texton Encoding Induced Statistical Features, TEISF)方法,该方法使基于纹理基元学习方法的纹理图像识别精度获得了显著的提高。该方法借鉴了VZ-MR8算法的设计思路,即采用与VZ-MR8算法相同的滤波器组对纹理图像进行滤波来获得局部特征,并采用相同的8维最大响应特征向量作为纹理基元的学习对象。和传统的纹理基元学习方法相比,TEISF方法的主要贡献表现在以下几个方面:①利用L2范数正则化的最小二乘方法来学习纹理基元字典,这种纹理基元的学习策略比基于L0范数或L1范数最小化的稀疏编码方法具有更高的实时性,获得了比L0范数或L1范数最小化方法更高的纹理基元字典学习速度;②传统的纹理基元学习方法在对原始图像或从原始图像提取的局部特征进行纹理基元编码时,通常是将纹理基元字典中最相似的纹理基元的序号作为图像中对应局部特征的编码标记,即一个局部区域图像用一位序号进行编码,但TEISF算法在对纹理图像进行编码时,不再使用单一的纹理基元序号,而是用一个p维的向量来对每个像素进行标记,p维向量中的值可为小数,体现了纹理基元字典中每个纹理基元对描述当前像素所在区域特征的不同贡献值,这使对纹理基元编码系数的表示比单一的序号更加精确,从而提高了对纹理图像特征的描述能力;③利用纹理基元编码生成的统计特征,即同时使用纹理基元的编码系数和编码残差作为纹理图像的最终特征描述子,并用于纹理图像的识别。和传统的VZ-MR8算法、VZ-Joint算法相比,最近提出的TEISF方法所提取的纹理特征具有更强的鉴别能力,显著提高了纹理图像的识别精度,这得益于更加复杂的纹理基元学习算法、纹理图像编码算法和纹理图像特征描述方法,这些方法能够捕获更加丰富的纹理特征,但与此同时,这些复杂算法的引入也使TEISF算法的计算量大大增加,实时性降低。

综合来看,无论是传统的VZ-MR8算法和VZ-Joint算法,还是最近提出的TEISF算法,它们都能够根据纹理图像数据集的特点自动学习到具有针对性的纹理基元字典,在纹理图像的识别精度、实时性和旋转不变性等方面各有优劣。其中,在纹理图像的识别精度方面,TEISF算法的识别精度最高;但在实时性方面,这三种方法都存在不小的提升空间,这是因为纹理基元字典的学习过程和对图像的编码过程非常耗时,需要对大规模的潜在学习对象(如VZ-MR8算法中的8维MR8特征向量、VZ-Joint算法中的49维局部图像块像素向量、TEISF算法中的8维MR8向量和p维编码向量)进行对比分析,这导致所有的纹理基元学习类方法都存在实时性不高的问题。因此,本章对纹理基元学习方法开展进一步的研究,以便设计出更好的基于纹理基元学习的纹理图像特征提取和识别方法,在保留纹理基元自动学习能力这个优点的前提下,进一步提高基于纹理基元学习方法的纹理图像识别精度和实时性。