当前位置: 首页 > news >正文

机器学习笔记 - 模式识别之图像特征提取和特征选择的基本方法总结

一、概述

        从模式识别角度来讲,视觉信息的特征获取是机器视觉的一个关键环节。一个机器视觉与模式识别系统的成败,首先取决于其所利用的特征能否较好地反映将要研究的分类问题。如果数据被很好地表达成了特征,通常线性模型就能达到满意的分类效果。因此,对于模式识别系统的创建,特征的选择和提取是需要优先考虑的。

        仅从图像角度来看,图像特征的提取和选择是图像处理过程中非常重要的环节,对后续的图像分类有重要影响,图像数据具有样本少、维数高的特点。为了从图像中提取有用的信息,有必要对图像特征进行降维处理。特征提取和特征选择是最有效的降维方法。目的是获得反映数据本质结构并具有较高识别率的特征子空间。

        以下的总结均是针对传统方式进行图像的提取和选择,不过在很多场景下使用基于深度学习的预训练的CNN模型做为图像特征提取器可能是更好的选择。

二、原始特征提取

1、图像的基本特征

        图像的基本特征主要分为颜色特征、形状特征、纹理特征、空间关系要素等。

        对应以上特征较常见的图像特征提取算法主要分为3类:

        ①基于颜色特征,如颜色直方图、颜色集、颜色矩、颜色聚合向量等;

        ②基于纹理特征,如Tamura纹理特征、自回归纹理模型、Gabor变换、小波变换、MPEG7边缘直方图等;

        ③基于形状特征,如傅里叶形状描述符、不变矩、小波轮廓描述符等。

        就图像模式识别而言,其在进行匹配识别或分类器分类识别时,判断的依据是图像特征。可用提取的特征表示整幅图像的内容。图像特征有如下几种类型。

        (1)边缘:组成两个图像区域之间边界(或边缘)的像素。

        (2)角:图像中点似的特征,在局部它有两维结构。

        (3)区域:用来描述图像中的区域性的结构,但区域也可能仅由一个像素组成,因此,许多区域检测也可以用来检测角。

        (4)长条形的物体称为脊。在实践中,脊被看作代表对称轴的一维曲线。在空中摄影时,往往使用脊检测来分辨道路;在医学图像中,脊被用来分辨血管。

2、基于颜色特征的提取方法

        颜色直方图

        颜色集是颜色直方图的近似值,将图像表示为颜色索引的二进制集

        颜色时刻,表示图像中的任何颜色分布及其时刻

        颜色聚集向量

        颜色相关图

        颜色特征是一种全局特征,用于描述与图像或图像区域对应的场景的表面属性。由于颜色对图像或图像区域的方向和大小的变化不敏感,因此颜色特征无法很好地捕捉图像中对象的局部特征。此外,当仅使用颜色特征进行查询时,如果数据库很大,通常会检索到许多不必要的图像。颜色直方图是表达颜色特征最常用的方法。它的优点是不受图像旋转和平移变化的影响。此外,它不受归一化帮助的图像比例变化的影响。基本缺点是它不表示色彩空间分布信息。

3、基于纹理特征的提取方法

        基于统计的灰度共生矩阵与能谱函数方法

        几何方法,例如基于图像基元的结构化方法

        模型法,基于图像的构造模型,以模型参数为纹理特征,典型方法是随场模型法

        信号处理方法,例如小波变换

        纹理特征也是一种全局特征,它又描述了场景对应图像或图像区域的表面属性。纹理特征作为一种统计特征,通常对旋转是不变的,并且具有很强的抗噪点能力。但是,纹理只是物体表面的特征,不能完全反映物体的本质属性。因此,仅使用纹理特征无法获得高级图像内容,纹理特征的另一个明显缺点是,当图像的分辨率发生变化时,计算出的纹理可能会有很大的偏差。

4、基于形状特征的提取方法

        基于边界的,如霍夫变换、傅里叶变换等。

        基于区域,例如弯矩不变量、几何矩特征、转动惯量等。

        其他方法如有限元法、旋转函数和小波描述符等。

        基于形状特征的检索方法可以有效地利用图像中感兴趣的目标进行检索,但仍然存在一些问题,如目标变形时检索结果不可靠,许多形状特征只描述目标局部特征对目标的全面描述具有较高的时间和空间要求。

5、基于空间关系的特征提取方法

        空间关系是指图像中分割的多个对象之间的相互空间位置或相对方向关系。这些关系可分为连接/邻接关系、重叠/重叠关系和包含/包含关系。提取图像空间关系特征有两种方法:一种方法是先自动分割图像,划分图像中包含的对象或颜色区域,然后根据这些区域提取图像特征,并建立索引;另一种方法是简单地将图像均匀地划分为几个常规子块,然后为每个图像子块提取特征,并构建索引。

        使用空间关系特征可以增强描述和区分图像内容的能力,但空间关系特征通常对图像或对象的旋转、反演和比例变化敏感。此外,在实际应用中,仅使用空间信息往往是不够的,无法有效、准确地表达场景信息。

6、总结

        上述特征提取方法是对图像特征的初步获取,每种方法都有优点和缺点。针对不同的实际问题,可以选择合适的图像特征提取方法。但有时只使用单个特征进行图像检索或匹配,结果的准确率不高。为了提高精度,有人提出了一种多特征融合图像检索或匹配技术。

三、特征提取

        对于最初获取的图像特征,维数可能仍然很大,并且可能包含某些不相关或冗余的特征。这里的特征提取是指从最初得到的原始特征中,通过一定的数学运算得到一组新特征,也称为特征变换,可以有效地降低特征空间的维数,消除特征之间可能的相关性。减少要素中的无用信息。

1、特征提取的基本方法

        线性方法:如主成分分析 (PCA)、线性判别分析 (LDA)、多维缩放 (MDS)

        非线性方法:如核方法(KPCA,KDA),流模式学习

2、主成分分析

        PCA方法是通过从一组特征中求解最优正交变换来获得一组彼此之间方差最大的新特征。重要性排序,选择前几个主成分。使用较少的主成分表示数据可以实现特征的降维并消除数据中的噪声。该算法不考虑样本的类别信息,是一种无监督方法。

3、线性判别法

        该方法的基本思想是将高维数据样本投影到最佳判别向量空间中,以达到提取分类信息和压缩特征空间维数的效果。内部距离最小,即样本数据在此空间中具有最好的可分离性。费雪线性判别分析是最具代表性的LDA方法。

4、多维缩放法

        MDS是一种非常经典的数据映射方法,它根据样本之间的距离关系或相异关系生成样本在低维空间中的表示。MDS 分为两种类型:公制和非公制。度量MDS将样本之间的距离关系或相异关系视为定量度量,并尽可能将这种度量关系保持在低维空间中;非度量型MDS将样本之间的距离关系或相异关系视为定性关系,只需要在低维空间中保持这种关系的顺序即可。

5、核主成分分析

        该方法对样本进行非线性变换,通过在变换空间中进行主成分分析,实现原始空间中的非线性主成分分析。根据可重现希尔伯特空间的性质,变换空间中的协方差矩阵可以由原始空间中的核函数操作,从而绕过复杂的非线性变换。内核方法为不同的问题选择适当的内核函数类型。不同的核函数类型反映了对数据分布的不同假设,也可以看作是对数据引入了非线性距离度量。

6、基于流型学习的方法

        基本思想是通过局部距离定义非线性距离度量,当样本分布密集时可以实现各种复杂的非线性距离度量。具体方法有:

        等体积特征图(IsoMap)--欧氏距离累积

        局部线性嵌入(LLE)--最近邻样本的线性重建

        拉普拉斯特征图(LE)--样本间的邻域选择和相似性表达式

        其他改进的算法

四、特征选择

        如果要设计一个识别不同种类对象的系统,首先必须确定应测量的对象有哪些特征,以便产生描述参数,这些参数值组成了每个对象的特征向量,对象和特征之间是一一对应的。也就是说,只有适当地选取特征,才能很好地识别对象。但是,几乎没有解析方法能够指导特征的选取,在很多情况下,特征都是人工选取的,效率低。

        特征选择也是降低特征空间维数的基本方法,即通过计算从给定的特征集中选择能够有效识别目标的最小特征子集。与特征提取最本质的区别在于,特征提取主要是从原始特征空间到新特征空间的转换。从特征中提取的子特征将失去对类别原始主观意义的特定解释,而特征选择可以保持对该特征空间的特定解释。

        一种最为暴力的的特征选择方法是这样执行的:首先对每种可能由N个特征组合的子集训练分类器,再用各类别的测试样本进行测试,统计分类器的错分率;然后根据这些错分率计算分类器总的性能指标;最后选择一个具有最佳性能指标的特征组合。除了一些非常简单的模式识别问题,使用这种方法的最大问题自然是计算量大。因此,在多数实用问题中,这种蛮干的方法是行不通的,必须使用一种开销较小的方法来达到同样的目标。

1、特征选择的基本步骤

        生成候选特征子集(搜索策略)

        子集评估(评估标准)

        停止标准

        结果验证

2、特征选择方法

        按分类不同的搜索策略和评估标准,特征选择方法可分为以下几类:

        按搜索策略划分:

        1、基于全局优化的分支和绑定方法

        此方法是一种自上而下的方法,它从包括所有候选特征开始,然后逐渐删除未选择的特征。它有一个回溯过程,可以考虑所有可能的组合。

        它的基本思想是:尝试将所有可能的特征组合构建成树结构,并根据特定的规则搜索树,使搜索过程能够尽早达到最优解,而无需遍历整个树。要做到这一点,需要要求标准对特征是单调的,并且在处理高维数据时,算法的复杂性很高,因此很难被广泛应用。

        2、基于启发式搜索的方法

        在很多情况下,即使采用分支和绑定法,全局优化方法的计算可能仍然非常大,因此提出了一些基于启发式搜索的次优选择算法:个体最优特征组合、序列前向选择(SFS)和广义SFS(GSFS)、序列后向选择(SBS)和广义SBS(GSFS)、增加l到r选择和广义增加l到r选择方法, 浮动搜索方法和浮动广义向后选择方法(FGSBS)等。

        3、随机搜索方法

        该方法在计算中将特征选择问题与遗传算法、模拟退火算法、粒子群优化算法、随机森林或随机重采样过程相结合,以概率推理和采样过程为算法基础,基于分类估计的有效性。,在算法运行过程中为每个特征分配一定的权重,然后根据给定或自适应阈值评估特征的重要性。例如,浮雕及其扩展算法是一种典型的随机搜索方法,它根据权重选择特征。它可以有效地去除不相关的特征,但不能去除多余的特征,并且只能用于两类分类问题。

        根据评估标准:

        特征选择方法根据是否独立于后续学习算法,可分为过滤器、包装器和嵌入式三种类型。滤波方法独立于学习算法,直接利用训练数据的统计特征来评估特征。Wrapper 方法使用学习算法的训练准确性来评估特征子集。嵌入式方法结合了筛选器和包装器方法。

        1、过滤方式

        滤波式特征选择方法一般采用评价标准,使特征与类别之间的相关性最大化,特征之间的相关性最小化。该方法可以快速消除许多不相关的噪声特征,减小优化特征子集的搜索规模,计算效率高,通用性好,可作为特征的前置滤波器。但是,当特征与分类器密切相关时,该方法不能保证选择最优特征子集,即使可以找到满足条件的最优子集,计算尺度也比较大。根据评估功能,可分为四类:

        基于距离测量

        常用的距离度量有:欧几里得距离、闵可夫斯基距离、切比切夫距离和平方距离等。

        Relief及其扩展算法ReliefF和RRelidfF,分支和绑定以及BFF算法都是基于距离测量的特征选择算法。

        基于信息指标

        常用信息指标:信息增益和互信息,信息增益:可以有效选择关键特征,消除不相关的特征;互信息:描述两个随机变量之间相互依存的强度,常用算法如下:

        基于互信息的MIFS算法

        基于最小冗余最大相关性(mRMR)的方法

        基于互信息的快速滤波算法FCBF

        基于条件互信息的CMIM算法

        基于动态互信息的特征选择算法

        由于信息熵理论不需要假设数据分布已知,因此它可以定量形式测量特征之间的不确定性程度,并且可以有效地测量特征之间的非线性关系。基于信息测量的特征选择算法成为近年来的研究课题。热点,已经提出了许多基于信息论的改进算法。

        基于依赖性度量

        该方法使用一些统计相关系数,如皮尔逊相关系数、费舍尔得分、方差得分、t检验、秩和检验或希尔伯特-施密特依赖准则等来衡量特征对类可分离性的重要性。有人提出了一种基于稀疏表示的特征选择方法,并在人脸图像聚类实验中取得了良好的效果。

        基于一致性度量

        该方法的思想是找到与整个集合具有相同区分能力的最小子集,并尽可能保留原始特征的区分能力。它具有单调、快速、去除冗余和不相关的特征以及处理噪声的优点,但它对噪声数据敏感,仅适用于处理离散特征。

        典型的算法包括焦点、LVF 等。

        2、包装器方法

        最后采用Wrapper方法构建基于所选子集的分类模型,将特征选择算法作为学习算法的组成部分,直接将训练结果的准确性作为特征重要性的评价标准。该方法在速度上比Filter方法慢,但其选择的优化特征子集的大小相对较小,非常有利于关键特征的识别;同时,其准确率相对较高,但其泛化能力较差,耗时复杂度较高。

        目前,关于包装器方法的研究很多。例如:

        Hsu等人使用决策树进行特征选择,并使用遗传算法找到一组特征子集,使决策树的分类错误率最小化。

        蒋等人将费舍尔判别分析与遗传算法相结合,识别化学失效过程中的关键变量,效果也不错。

        Guyon等利用支持向量机的分类性能来衡量特征的重要性,最终构造出分类性能更高的分类器。

        Krzysztof提出了一种基于相互关系对偶策略的包装器特征选择方法FFSR(快速特征子集排序),该方法以特征子集为评价单元,子集收敛能力为评价标准。

        戴平等人提出了一种基于SVM的快速特征选择方法

        3、嵌入式方式

        针对过滤器和包装器方法的优缺点,提出了一种嵌入式方法的特征选择方法。该方法采用滤波方法,最初去除不相关或噪声特征,仅保留少量特征,以减小后续搜索规模。然后,使用Wrapper方法进一步优化和选择分类特征子集,具有最高的精度。例如,Li GZ等首先使用互信息度量和随机重采样技术来获取前k个重要特征,然后使用SVM构建分类器。

五、总结

        要从图像中提取特征,首先,根据具体问题,判断所选图像的特征,例如颜色或纹理。针对不同的特征选择特定的提取方法,例如基于颜色特征的常用颜色直方图或基于纹理的灰度共生矩阵和小波变换。这是提取图像原始特征的第一步。由于原始特征可能具有高维性,或者包含大量冗余特征和不相关特征,后续算法的计算复杂度将变得非常高,因此进行进一步的特征提取和特征选择,以提取样本中最相关的特征并降低数据维数并消除不相关和冗余的特征。

        统计学意义上的特征提取是通过对获得的原始特征进行线性或非线性变换,获得数量较少、表现能力较强的新特征。常用的线性变换包括 PCA、LDA 和 MDS,非线性变换包括 KPCA、流学习等。有时基本特征提取方法由于自身的局限性或在某些特定问题上不能满足要求而需要改进。例如,PCA不考虑样本类别,因此获得的低维空间对于判别分类不是最优的;当样本类内的分布为高斯分布且协方差相同时,LDA可以得到最优的线性判别分析变换矩阵,但现实世界中类内分布的复杂度远远超过高斯分布;在MDS方法中定义目标函数,并选择适当的优化方法来最小化目标函数;KPCA方法中核函数的选择和核函数的参数设置等,都需要根据具体情况进行选择和设置;对于流型学习中的各种方法,当样本分布相对稀疏时,相邻样本之间距离的测量可能会有很大的偏差。

        特征提取技术很难解释新特征和样本类别之间的相互关系,但了解这种相互关系在某些领域很重要,因此在这种情况下特征选择更有效。特征选择是指从原始特征中选择最少的特征,使所选特征与类别的相关性最大,特征之间的相关性最小。根据评价标准是否取决于具体的学习算法,特征选择算法分为三种方法:过滤器、包装器和嵌入。Filter 方法根据数据的固有结构特征选择最相关的要素。该方法主要选择样本距离和相关性的测量标准。直接取决于学习算法准确性的Wrapper方法主要是学习算法的选择,通常选择SVM作为评价标准。嵌入式方法将特征选择视为学习算法的一个子系统。该算法的计算复杂度介于包装器和过滤器方法之间。所选特征比 Filter 方法更准确,但需要与新设计的算法相结合。

        最后,为了获得特征子集的选择策略,在高维样本空间中评估和测试所有候选子集是不切实际的。最优特征选择算法-分支和绑定方法不仅对准则标准有要求,而且计算量大,因此提出了一种基于启发式的次优选择算法,也可以使用一些群体智能随机搜索算法,如GA、PSO、SAA,可以更好地提高搜索效率。

相关文章:

  • APP应用渗透测试思路
  • 微信小程序框架
  • 网络编程 udp/ip协议 c/s模型
  • 【数据结构】C语言实现链表(单链表部分)
  • JAVA练习8
  • 聊聊最适合程序员的画图工具
  • JAVA数据结构篇--12理解LinkedHashSetTreeSet
  • DR_CAN基尔霍夫电路题解法【自留用】
  • 21级数据结构考前模拟题
  • 剑指offer----C语言版----第六天
  • Qt音视频开发08-ffmpeg内核优化(极速打开/超时回调/实时响应)
  • 网络安全一哥的奇安信发布了全球高级可持续威胁年度报告 值得学习
  • 13---SpringBoot整合JWT,实现登录和拦截
  • 4366. 上课睡觉
  • vue后台系统管理项目-echarts柱状图实现订单统计
  • angular2 简述
  • angular2开源库收集
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Eureka 2.0 开源流产,真的对你影响很大吗?
  • Java IO学习笔记一
  • JavaScript函数式编程(一)
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • JDK 6和JDK 7中的substring()方法
  • PAT A1120
  • React Transition Group -- Transition 组件
  • SQLServer之索引简介
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 产品三维模型在线预览
  • 番外篇1:在Windows环境下安装JDK
  • 欢迎参加第二届中国游戏开发者大会
  • 京东美团研发面经
  • 聊聊flink的BlobWriter
  • 让你的分享飞起来——极光推出社会化分享组件
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • python最赚钱的4个方向,你最心动的是哪个?
  • ​渐进式Web应用PWA的未来
  • # 数论-逆元
  • #define
  • #NOIP 2014#Day.2 T3 解方程
  • (MATLAB)第五章-矩阵运算
  • (Matlab)使用竞争神经网络实现数据聚类
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (十五)使用Nexus创建Maven私服
  • (译)计算距离、方位和更多经纬度之间的点
  • (转)ABI是什么
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET Core 网络数据采集 -- 使用AngleSharp做html解析
  • .NET 的静态构造函数是否线程安全?答案是肯定的!
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET连接数据库方式
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • [2018-01-08] Python强化周的第一天