3.1 特征提取简述
如果要设计一个识别不同种类对象的系统,首先必须确定应测量的对象有哪些特征,以便产生描述参数,这些参数值组成了每个对象的特征向量,对象和特征之间是一一对应的。也就是说,只有适当地选取特征,才能很好地识别对象。但是,几乎没有解析方法能够指导特征的选取,在很多情况下,特征都是人工选取的,效率低[1]。
良好的特征应具有可分性、可靠性、独立性、数量少等特点。
(1)可分性。对于不同类别的对象,它们的特征应具有明显的差异。例如,对于人和猴子,尾巴是一个很好的特征;对于樱桃和桃子,水果的直径是一个很好的特征。
(2)可靠性。同类对象的特征值应比较相近。例如,对于苹果,其颜色在成熟的苹果与未成熟的苹果之间差别较大,尽管它们都属于苹果类,因此,颜色是一个不好的特征。
(3)独立性。所用的各特征之间应彼此不相关。例如,水果的直径与重量属于高度相关的特征。因为这两个特征基本反映了水果的大小,所以,描述水果大小时,一般不将直径和重量作为单独的特征使用。
(4)数量少。模式识别系统的复杂度随系统的维数(特征的个数)迅速增加。尤其重要的是,训练数据和测试结果的样本数量随特征的数量增加呈指数增长,导致分类器的设计和选择困难,分类能力下降,特别是在训练集大小有限的情况下。
就图像模式识别而言,其在进行匹配识别或分类器分类识别时,判断的依据是图像特征。可用提取的特征表示整幅图像的内容。图像特征有如下几种类型。
(1)边缘是组成两个图像区域之间边界(或边缘)的像素。一般一个边缘的形状可以是任意的,还可能包括交叉点。在实践中,边缘一般被定义为图像中拥有大的梯度的点组成的子集。一些常用的算法还会把梯度高的点联系起来构成一个更完善的边缘描述。这些算法也可能对边缘提出一些限制,局部地看,边缘是一维结构。
(2)角是图像中点似的特征,在局部它有两维结构。早期的算法首先进行边缘检测,然后通过分析边缘的走向来寻找边缘的突然转向(角)。后来发展的算法不再需要边缘检测这个步骤,而可以直接在图像梯度中寻找具有大曲率的区域。这样有时可以在图像中本来没有角的地方发现具有同角一样特征的区域。
(3)区域用来描述图像中的区域性的结构,但区域也可能仅由一个像素组成,因此,许多区域检测也可以用来检测角。一个区域监测器可检测图像中一个对于角监测器来说太平滑的区域。可以把区域检测想象成将一幅图像缩小,然后在缩小的图像上进行角检测。
(4)长条形的物体称为脊。在实践中,脊被看作代表对称轴的一维曲线。此外,局部针对每个脊像素有一个脊宽度,从灰梯度图像中提取脊要比提取边缘、角和区域困难。在空中摄影时,往往使用脊检测来分辨道路;在医学图像中,脊被用来分辨血管。
一般而言,特征提取指从原始数据中自动构造新特征。通常,得到的原始数据(如音频、图像、文本等)使用列表数据表示,其原始特征集通常可达数百万维。对于如此高的维数,将它减小以利于建模,就是特征提取需要做的事情。特征提取的方法因具体领域不同而不同。对于列表数据,可以使用主成分分析(Principal Component Analysis,PCA)、线性判别分析(Linear Discriminant Analysis,LDA)、典型相关分析(Canonical Correlation Analysis,CCA)等方法进行降维,提取重要的特征表示。对于图像、音频数据,特征提取的定义有两个层次:一是指使用计算机提取图像中属于特征性的信息;二是指使用计算机提取图像信息,并决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集属于孤立的点、连续的曲线或连续的区域。
特征选择是从大量特征中选取有用的特征。通常经过特征提取步骤得到的特征量依然较大,在大量特征中,需要识别哪些特征有利于提高模型质量。一般从3个方面进行考虑:①特征与待解决问题的相关性;②特征对模型精度的影响;③特征彼此间存在的冗余性。从这3个方面考虑后,将一些不必要的特征从特征集中去除,将得到一个更优质的特征集。一些通用的方法包括:①使用卡方检验获得特征与待解决问题间的相关性;②使用决策树选取分类、回归精度高的特征;③使用皮尔逊相关系数检验特征间的相关性,去除冗余性。
特征提取和特征选择的目的是减小特征集中的属性(或者称为特征)的数目,去除冗余,但两者所采用的方法不同。
特征提取的方法主要通过属性间的关系,如组合不同的属性得到新的属性,这样就改变了原来的特征空间;而特征选择的方法则从原始特征集中选出子集,没有更改原始的特征空间。
特征构造指手动从原始特征集中构造出新的特征。原始特征集中存在的部分模式、结构上的信息,需要由人进行总结提取。对应于自动特征提取,特征构造可以称为人工特征提取,其效果和效率主要依赖于从业人员的经验、直觉,同时可以借助一些统计工具、指标进行探索性的提取。
特征学习指从原始特征集中自动识别和使用特征。特征处理是建模过程中很棘手的问题。目前,主要借助深度学习的思路,使用自编码或受限玻尔兹曼机来进行特征提取。总体来说,特征工程如何做,取决于具体的数据和业务;其做得好不好,则直接关系到模型的输出效果。
常见的图像特征提取算法主要分为3类:①基于颜色特征,如颜色直方图、颜色集、颜色矩、颜色聚合向量等;②基于纹理特征,如Tamura纹理特征、自回归纹理模型、Gabor变换、小波变换、MPEG7边缘直方图等;③基于形状特征,如傅里叶形状描述符、不变矩、小波轮廓描述符等。