Local binary pattern (LBP),在机器视觉领域,是非常重要的一种特征。LBP可以有效地处理光照变化,在纹理分析,纹理识别方面被广泛应用。

LBP 的算法非常简单,简单来说,就是对图像中的某一像素点的灰度值与其邻域的像素点的灰度值做比较,如下图所示:

如果邻域像素值比该点大,则赋为1,反之,则赋为0,这样从左上角开始,可以形成一个bit chain,然后将该 bit chain 转换为一个十进制的数,用表达式可以表达如下:

LBPP,R(xc,yc)=∑P=0P−1s(iP−ic)2P

其中,s 表示一个阈值函数,满足如下关系:

s(x)=1,x≥0

,

s(x)=0,x<0

通过这种转换,可以将一个像素点与邻域的差值关系用一个数表示,因为LBP 记录的是像素点与邻域像素的差值关系,所以光照变化引起像素值的同增同减不会改变LBP的大小,特别是在局部的区域,我们可以认为光照对图像造成的像素值变化是单向的,所以LBP可以很好的保存图像中像素值的差值关系。可以进一步将LBP 做直方图统计,这个直方图可以用来作为纹理分析的特征算子。

我们可以看到,R 表示邻域的半径,P 表示邻域像素的个数,或者bit chain 的长度,如果邻域的半径为1,则邻域的像素个数为8, bit chain 的长度为8,如果邻域半径为2,则邻域的像素个数为16,bit chain 的长度为16,邻域半径为3, 邻域的像素个数为24,bit chain 长度为24,如下图所示:

我们考虑最简单的R=1,P=8 的情况,LBP 映射成一个0-255之间的某一数值,如果用直方图表示,需要一个256维的数组在存储这个直方图。为了缩小存储空间,有人提出了 uniform pattern 的编码方式,根据一个 bit chain 中 0,1之间的转换次数定义了uniform pattern。如果一个 bit chain 中,0,1 之间的转换次数不超过两次,那么这个bit chain 就是 uniform pattern, 比如,00000000 转换次数为0, 00001111 转换次数为1, 00011100 转换次数为2, 01101100 转换次数为4, 01101010 转换次数为6,那些转换次数不超过两次的pattern 都属于uniform pattern,可以证明,绝大多数的binary pattern 都是uniform pattern,通过这种定义,对于 8 bit 的 LBP, 可以从256 维降到 59维,减少了90%。

LBP 的 code 可以在下面的网站上下载:

http://www.cse.oulu.fi/CMV/Downloads/LBPMatlab

参考文献

[1] D. Huang, C. Shan, M. Ardabilian, Y. Wang, and L. Chen, “Local Binary Patterns and Its Application to Facial Image Analysis A Survey,” Systems, Man, and Cybernetics, Part C: Applications and Reviews, IEEE Transactions on, vol. 41, pp. 765-981, 2011.

[2] T. Ojala, M. Pietikainen, and T. Maenpaa, “Multiresolution gray-scale and rotation invariant texture classification with local binary patterns,” Pattern Analysis and Machine Intelligence, IEEE Transactions on, vol. 24, pp. 971-987, 2002.

机器视觉 Local Binary Pattern (LBP)的更多相关文章

  1. 局部二值模式(Local Binary Patterns)纹理灰度与旋转不变性

    Multiresolution Gray Scale and Rotation Invariant Texture Classification with Local Binary Patterns, ...

  2. Local Binary Convolutional Neural Networks ---卷积深度网络移植到嵌入式设备上?

    前言:今天他给大家带来一篇发表在CVPR 2017上的文章. 原文:LBCNN 原文代码:https://github.com/juefeix/lbcnn.torch 本文主要内容:把局部二值与卷积神 ...

  3. 【C++版】Face Alignment at 3000 FPS by Regressing Local Binary Features源码下载

    下载地址: 本帖隐藏的内容 <ignore_js_op> face-alignment-in-3000fps-master.zip (794.42 KB, 下载次数: 1076) 该源码采 ...

  4. OpenCV——LBP(Local Binary Patterns)特征检测

    #include <opencv2/opencv.hpp> #include <iostream> #include "math.h" using name ...

  5. LBP(Local Binary Patterns)局部二进制模式

    1. LBP 用于人脸识别 为了预测每个像素属于哪个脸部器官(眼睛.鼻子.嘴.头发),通常的作法是在该像素周围取一个小的区域,提取纹理特征(例如局部二值模式),再基于该特征利用支持向量机等浅层模型分类 ...

  6. Machine Learning 学习笔记

    点击标题可转到相关博客. 博客专栏:机器学习 PDF 文档下载地址:Machine Learning 学习笔记 机器学习 scikit-learn 图谱 人脸表情识别常用的几个数据库 机器学习 F1- ...

  7. 行人检测4(LBP特征)

    参考原文: http://blog.csdn.net/zouxy09/article/details/7929531 http://www.cnblogs.com/dwdxdy/archive/201 ...

  8. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  9. 42028: Assignment 1 – Autumn 2019

    42028: Assignment 1 – Autumn 2019 Page 1 of 4Faculty of Engineering and Information TechnologySchool ...

随机推荐

  1. setTimeout()基础/setInterval()基础

    JavaScript提供定时执行代码的功能,叫做定时器(timer),主要由setTimeout()和setInterval()这两个函数来完成.它们向任务队列添加定时任务.初始接触它的人都觉得好简单 ...

  2. JSP简单练习-用Servlet获取表单数据

    // javaBean代码 package servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.* ...

  3. 【Sprint3冲刺之前】TD学生助手——alpha版发布

    TD学生助手——alpha版发布 1.设想和目标  1.我们的软件要解决的问题 TD学生助手的主要核心思想就是帮助学生安排他们忙碌的学校生活.主要是通过以下几个方面 1.通过学生的需要进行分类(考试, ...

  4. VTK学习之路——画画我的小苹果

    数据集主要由描写叙述数据集几何形状的点集数据及构成数据集的单元构成,因此构建数据集的主要任务就是确定点集和构建单元,本演示样例程序构建了一个苹果的实体,然后绘制苹果.演示样例程序运行的过程例如以下: ...

  5. firfox浏览器常用快捷键

    Ctrl + 数字键来打开第N个标签页这种还要先数完再到键盘上找数字Ctrl + Page Up = 激活左边一个标签页Ctrl + Page Down = 激活右边一个标签页Ctrl + Tab = ...

  6. golang 内存池

    一般来说,内存池都是采用预分配的方式,分为固定大小的和非固定大小块,固定大小的内存效率高,非固定大小灵活.同时,分为单线程和多线程版的,单线程不需要考虑并发问题. 一般内存池的实现思想:分配一块比较大 ...

  7. wpf自定义colorpicker

    自定义colorpicker <ObjectDataProvider MethodName="GetType" ObjectType="{x:Type system ...

  8. poj 2096 Collecting Bugs 【概率DP】【逆向递推求期望】

    Collecting Bugs Time Limit: 10000MS   Memory Limit: 64000K Total Submissions: 3523   Accepted: 1740 ...

  9. mvn deploy

    mvn:deploy在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享. 以将ojdbc14传到nexus中的thirdparty为例 一 配置 ...

  10. 【题解】P3796【模板】AC自动机(加强版)

    [题解]P3796 [模板]AC自动机(加强版) 记录当前\(cnt\)是第几个"星".记录第几个串是对应着第几个星. 这里补充一点对于\(AC\)自动机的理解.可能一直有个问题我 ...