模式识别中进行匹配识别或者分类器分类识别时,判断的依据就是图像特征。用提取的特征表示整幅图像内容,根据特征匹配或者分类图像目标。

常见的特征提取算法主要分为以下3类:

  • 基于颜色特征:如颜色直方图、颜色集、颜色矩、颜色聚合向量等;
  • 基于纹理特征:如Tamura纹理特征、自回归纹理模型、Gabor变换、小波变换、MPEG7边缘直方图等;
  • 基于形状特征:如傅立叶形状描述符、不变矩、小波轮廓描述符等;

LBP特征提取算法

LBP(Local Binary Patterns,局部二值模式)是提取局部特征作为判别依据的,一种有效的纹理描述算子,度量和提取图像局部的纹理信息,它具有旋转不变性和灰度不变性等显著的优点,对光照具有不变性。用于纹理特征提取。而且,提取的特征是图像的局部的纹理特征。有多种改进型,LBP结合BP神经网络已经用于人脸识别等领域。

灰度不变性:指的是光照变化是否会对描述产生影响。以上面的8邻域来说,光照变化很难改变中心像素点的灰度值与周围8个像素的大小关系。因为光照是一种区域性质的变化,而不是单像素性质的变化。

1、LBP特征描述

LBP的基本思想是定义于像素的8邻域中(3x3的窗口), 以中心像素的灰度值为阈值, 将周围8 个像素的值与其比较, 如果周围的像素值小于中心像素的灰度值, 该像素位置就被标记为0, 否则标记为1。这样3x3的邻域内的八个点经过比较能够产生8位二进制数(通常转换为十进制,即LBP码,共256种),每个像素得到一个二进制组合, 即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。

2、LBP的改进版本:

(1)圆形LBP算子

基本的 LBP算子的最大缺陷在于它只覆盖了一个固定半径范围内的小区域,这显然不能满足不同尺寸和频率纹理的需要。为了适应不同尺寸的纹理特征,达到灰度和旋转不变性的要求。将 3×3邻域扩展到任意邻域,并用圆形邻域代替了正方形邻域,改进后的 LBP 算子允许在半径为 R的圆形邻域内有任意多个像素点。从而得到了诸如半径为R的圆形区域内含有P个采样点的LBP算子。

(2)LBP旋转不变模式

从 LBP 的定义可以看出,LBP 算子是灰度不变的,但却不是旋转不变的。图像的旋转就会得到不同的LBP值。

Maenpaa等人又将 LBP算子进行了扩展,提出了具有旋转不变性的 LBP 算子,即不断旋转圆形邻域得到一系列初始定义的 LBP值,取其最小值作为该邻域的 LBP 值。

下图给出了求取旋转不变的 LBP 的过程示意图,图中算子下方的数字表示该算子对应的 LBP值,图中所示的 8 种 LBP模式,经过旋转不变的处理,最终得到的具有旋转不变性的 LBP值为 15。也就是说,图中的 8种 LBP 模式对应的旋转不变的 LBP模式都是 00001111。

(3)LBP等价模式

一个LBP算子可以产生不同的二进制模式,对于半径为R的圆形区域内含有P个采样点的LBP算子将会产生2p种模式。很显然,随着邻域集内采样点数的增加,二进制模式的种类是急剧增加的。例如:5×5邻域内20个采样点,有220=1,048,576种二进制模式。

如此多的二值模式无论对于纹理的提取还是对于纹理的识别、分类及信息的存取都是不利的。同时,过多的模式种类对于纹理的表达是不利的。例如,将LBP算子用于纹理分类或人脸识别时,常采用LBP模式的统计直方图来表达图像的信息,而较多的模式种类将使得数据量过大,且直方图过于稀疏。因此,需要对原始的LBP模式进行降维,使得数据量减少的情况下能最好的代表图像的信息。

为了解决二进制模式过多的问题,提高统计性,Ojala提出了采用一种“等价模式”(Uniform Pattern)来对LBP算子的模式种类进行降维。Ojala等认为,在实际图像中,绝大多数LBP模式最多只包含两次从1到0或从0到1的跳变。因此,Ojala将“等价模式”定义为:当某个LBP所对应的循环二进制数从0到1或从1到0最多有两次跳变时,该LBP所对应的二进制就称为一个等价模式类,除了等价模式以外的模式都归一一类,称为混合模式类。计算跳变的方法:如10010111,首先第一二位10,由1—>0跳变一次;第二、三位00,没有跳变;第三、四位01,由0—>1跳变一次,第四、五位10,由1—>0跳变一次;第五六位01,由0—>1跳变一次;第六七位11,没有跳变;第七八位11,没有跳变;第八位和第一位11,没有跳变;故总共跳变4次。

通过这种改进,二进制模式的种类大大减少,而不会丢失任何信息,模式种类由原来的2^p减少为p*(p-1)+2种。对于3×3邻域内8个采样点来说,二进制模式由原始的256种减少为58种,这使得特征向量的维数更少,并且可以减少高频噪声带来的影响。

1、0次跳变,只有两种,即000..或者1111....

2、1次跳变,两种可能,0—>1或者1—>0:

  (1)0开头:0...01、0....011,一共有p-1种;

  (2)1开头:1...10、1...100、1..1000、等等,一种有p-1种;

  综合,一次跳变有2(p-1)种。

2、两次跳变,0—>1—>0和1—>0—>1

  0—>1—>0:第一次跳变位置在第2、第3、........p-1位置时,对应的第二次跳变有p-2种、p-3种....1种的跳变位置,所以共有(p-1)(p-2)/2种模式;

  1—>0—>1:相应的也有(p-1)(p-2)/2种;

  综合有(p-1)(p-2)种模式

综上一共有2+2(p-1)+(p-1)(p-2)=p(p-1)+2种模式可能。

等价模式代表了图像的边缘、斑点、角点等关键模式,等价模式占了总模式中的绝大多数,所以极大的降低了特征维度。利用这些等价模式和混合模式类直方图,能够更好地提取图像的本质特征。

3、LBP特征用于检测的原理

显而易见的是,上述提取的LBP算子在每个像素点都可以得到一个LBP“编码”,那么,对一幅图像(记录的是每个像素点的灰度值)提取其原始的LBP算子之后,得到的原始LBP特征依然是“一幅图片”(记录的是每个像素点的LBP值)。

LBP的应用中,如纹理分类、人脸分析等,LBP特征提取结果还是大小相同的一幅图像,一般都不将LBP图谱作为特征向量用于分类识别,而是采用LBP特征谱的统计直方图作为特征向量用于分类识别。

因为,从上面的分析我们可以看出,这个“特征”跟位置信息是紧密相关的。直接对两幅图片提取这种“特征”,并进行判别分析的话,会因为“位置没有对准”而产生很大的误差。后来,研究人员发现,可以将一幅图片划分为若干的子区域,对每个子区域内的每个像素点都提取LBP特征,然后,在每个子区域内建立LBP特征的统计直方图。如此一来,每个子区域,就可以用一个统计直方图来进行描述;整个图片就由若干个统计直方图组成;

例如:一幅100*100像素大小的图片,划分为10*10=100个子区域(可以通过多种方式来划分区域),每个子区域的大小为10*10像素;在每个子区域内的每个像素点,提取其LBP特征,然后,建立统计直方图;这样,这幅图片就有10*10个子区域,也就有了10*10个统计直方图,利用这10*10个统计直方图,就可以描述这幅图片了。之后,我们利用各种相似性度量函数,就可以判断两幅图像之间的相似性了。

3、对LBP特征向量进行提取的步骤

(1)首先将检测窗口划分为16×16的小区域(cell);

(2)对于每个cell中的一个像素,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3*3邻域内的8个点经比较可产生8位二进制数,即得到该窗口中心像素点的LBP值;

(3)然后计算每个cell的直方图,即每个数字(假定是十进制数LBP值)出现的频率;然后对该直方图进行归一化处理。

(4)最后将得到的每个cell的统计直方图进行连接成为一个特征向量,也就是整幅图的LBP纹理特征向量;

然后便可利用SVM或者其他机器学习算法进行分类了。

转载于:https://www.cnblogs.com/pacino12134/p/11360847.html

特征提取算法(1)——纹理特征提取算法LBP相关推荐

  1. 颜色矩特征提取matlab,求matlab彩色图片的颜色特征提取算法的代码,和纹理特征提取的? 爱问知识人...

    其实学数字图像处理,关键的不是源代码(和一般编程还是有区别的,这个是经验之谈,其实一般博导未必会编程,但是你和他说说你的方法,他一般都能切中要害),而是你能理解基于概念及适用场所. 基于颜色.纹理.形 ...

  2. LBP纹理特征提取学习笔记

    前言 LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子:它具有旋转不变性和灰度不变性等显著的优点.它是首先由T. Ojala, M.Pietikäi ...

  3. 计算机算log的原理,语音声学特征提取:MFCC和LogFBank算法的原理

    语音声学特征提取:MFCC和LogFBank算法的原理 语音识别 最后更新 2021-03-04 11:57 阅读 998 最后更新 2021-03-04 11:57 阅读 998 语音识别 几乎任何 ...

  4. 前景检测算法(十一)--基于LBP纹理

    原文: http://blog.csdn.net/me_sky_2012/article/details/7723146 背景建模的方法很多很多!各种方法都有自己的优缺点!这里简要的介绍一下基于GMM ...

  5. 【图像处理】纹理检测算法

    图像纹理检测算法 LBP检测算法 原文链接:https://blog.csdn.net/tiandijun/article/details/45561981 https://blog.csdn.net ...

  6. 图像处理之纹理特征提取

    旋转不变性:图像旋转时,所选特征不随图像的旋转而发生变化 LBP参考: LBP纹理特征提取 灰度不变性-旋转不变性 import numpy as np from PIL import Image i ...

  7. gabor小波matlab,用matlab实现gabor小波对图片的纹理特征提取【转】

    用matlab实现gabor小波对图片的纹理特征提取[转] (2009-04-27 14:35:41) 过程如下: (1)在matlab中,用gaborfilter.m程序实现对三种农作物(小麦.棉花 ...

  8. 灰度共生矩阵特征提取步骤_灰度共生矩阵纹理特征提取的Matlab实现

    灰度共生矩阵纹理特征提取的 Matlab 实现 焦蓬蓬 ; 郭依正 ; 刘丽娟 ; 卫星 [期刊名称] <计算机技术与发展> [年 ( 卷 ), 期] 2012(000)011 [摘要] ...

  9. opencv-python 用Gabor滤波器实现指静脉血管区域二值化纹理特征提取

    之前写的都是有关于ROI的区域提取,但是对于提取到的区域我们需要提取它的特征,才可以在后期的特征匹配中排上用场. 这篇文章主要记录我是如何对指静脉图片做二值纹理特征提取的 原理: 一种比较特征提取简单 ...

最新文章

  1. python地图热力图是什么意思_python实现输入的数据在地图上生成热力图效果
  2. 温控窗帘系统制作文档
  3. 根据 xsd 生成 jaxb java 类
  4. sqlserver 中事务与错误机制的处理
  5. MySQL 数据库入门
  6. C++中this指针的用法
  7. python 字符编码、格式化
  8. uTorrent任务栏的种子状态一直是“找不到元素”
  9. 随机森林回归预测r语言_R包randomForest的随机森林回归模型以及对重要变量的选择...
  10. VLAN,GRE,VXLAN
  11. 数据探索(数据特征分析)④—Python分布分析、对比分析、统计量分析、期性分析、贡献度分析、相关性分析
  12. 慧荣SM2246EN主控如何进行RDT测试开卡
  13. Latex声调(一声、二声、三声等)
  14. USB协议学习笔记 - 虚拟串口Virtual Port Com LED控制
  15. 分析用VBScript编写的网页***
  16. 杭电OJ 1181(C++)
  17. 游戏专辑一 3D游戏碰撞之体素内存、效率优化(未完待续10/14)
  18. 企业微信 之 创建应用并添加至侧边栏
  19. Dijkstra 路径规划算法在二维仿真环境中的应用 -- Python代码实现
  20. Springboot毕设项目酒店地下停车场管理系统47g66java+VUE+Mybatis+Maven+Mysql+sprnig)

热门文章

  1. 计算机考试准考证是正反面打印吗
  2. java文件快速扫描仪_Java使用扫描仪进入按键
  3. 基于WebRTC实现音视频及数据通信
  4. Python之数据结构
  5. 洛谷P1892 [BOI2003]团伙
  6. 阿里云贾扬清:大数据和人工智能一体化是必然趋势
  7. 涉及到c语言的专业,大学里哪些专业开设C语言、数电、模电、单片机、嵌入式等课程?...
  8. layui登录页面写入数据_layuiAdmin单页版文档
  9. 山东省高等学校计算机等级考试真题,2013山东省计算机等级考试二级试题及答案...
  10. 制作多系统U盘(win10+ubuntu18+ 。。。)