图像物体检測识别中的LBP特征
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/xinzhangyanxiang/article/details/37317863
图像物体检測识别中的LBP特征
1 引言
之前讲了人脸识别中的Haar特征,本文则关注人脸检測中的LBP特征。说是对于人脸检測的,事实上对于其它物体也能检測,仅仅需改动训练数据集就可以。
所以本文的题目是物体检測识别,比方能够检測是否汽车是否有车牌号等。
在opencv实现的haar特征的人脸识别算法中,LBP特征也被支持。
haar特征的博文链接:http://blog.csdn.net/stdcoutzyx/article/details/34842233。
2 LBP的历史
1996年,Ojala老大爷搞出了LBP特征,也即參考文献1。当时好像并未引发什么波澜。到了2002年的时候,老大爷又对LBP的特性进行了总结。产生了參考文献2。这篇文献眼下为止引用数目4600+。足见其分量之重了。
到了2004年的时候,Ahonen将LBP特征首次用于人脸检測。即參考文献3。因为该特征的简单易算性,尽管其整体效果不如Haar特征,但速度则快于Haar。所以也得到了广泛的使用。
2007年的时候,中科院的一帮大神将Haar特征计算的积分图方法引入进来,产生了多尺度的LBP特征。也即參考文献4。使得LBP在人脸识别的检測率上又提高了不少。
LBP特征与多尺度LBP以及LBP在人脸识别中的应用就是本文的主要内容。
3 LBP特征
言归正传。什么是LBP特征呢?LBP,是Local Binary Pattern(局部二值模式)的缩写。其定义例如以下:
以邻域中心像素为阈值,将相邻的8个像素的灰度值与其进行比較,若周围像素值大于中心像素值。则该像素点的位置被标记为1,否则为0。这样。3x3邻域内的8个点经比較可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该邻域中心像素点的LBP值,并用这个值来反映该区域的纹理信息。
下图反应了某个像素的详细的LBP特征值的计算过程。须要注意的是,LBP值是依照顺时针方向组成的二进制数。
用公式来定义的话。例如以下所看到的:
当中代表3x3邻域的中心元素。它的像素值为ic,ip代表邻域内其它像素的值。
s(x)是符号函数,定义例如以下:
4 LBP特征的圆形化改进
原始论文[1]中定义了基础LBP后,还定义了一种改进方法,即圆形化LBP。
主要的 LBP算子的最大缺陷在于它仅仅覆盖了一个固定半径范围内的小区域,这显然不能满足不同尺寸和频率纹理的须要。
为了适应不同尺度的纹理特征。并达到灰度和旋转不变性的要求。Ojala等对 LBP 算子进行了改进,将 3×3邻域扩展到随意邻域。并用圆形邻域取代了正方形邻域。改进后的 LBP 算子同意在半径为 R 的圆形邻域内有随意多个像素点。从而得到了诸如半径为R的圆形区域内含有P个採样点的LBP算子。
比方下图定了一个5x5的邻域:
上图内有八个黑色的採样点,每一个採样点的值能够通过下式计算:
当中为邻域中心点。
为某个採样点。
通过上式能够计算随意个採样点的坐标,可是计算得到的坐标未必全然是整数,所以能够通过双线性插值来得到该採样点的像素值:
下图列举了几种不同半径不同採样点的LBP算子例子。
5 LBP特征的再转化
经过LBP算子的计算后。图像上相应于每一个像素都会有一个LBP特征值。假设LBP特征计算时採样点是8个的话,那么LBP特征值的范围也是0~255。也能够表示成一张图像。称之为LBP图谱。例如以下图所看到的:
上图中,上面一行是原图,以下一行是LBP图谱。能够看到LBP特征的一个优势,就是LBP对光照有非常好的鲁棒性。
可是,在实际应用中,并不使用LBP图谱做特征。那使用什么哩?
对于八採样点的LBP算子来说,特征值范围为0~255,对每一个特征值进行统计,比方得到特征值为1的LBP值有多少个、特征值为245的LBP值有多少个等等。这样就形成了一个直方图,该直方图有256个bin,即256个分量,也能够把该直方图当做一个长度为256的向量。
假设直接使用该向量的话。那么对八採样点的LBP算子来说,一张图片至多会形成一个256长度的一个向量,这样位置信息就所有丢失了,会造成非常大的精度问题。
所以在实际中还会再有一个技巧,就是先把图像分成若干个区域。对每一个区域进行统计得到直方图向量,再将这些向量整合起来形成一个大的向量。下图就将一张人脸图像分成了7x7的子区域。
6 LBP特征的使用
本文介绍两个LBP特征的使用。其一是图像类似度计算,其二是人脸检測。
6.1 图像类似度计算
每一个图像都能够使用一个LBP特征向量来表示。图像的类似度就能够使用向量的类似度来计算。
向量的类似度计算方法有非常多。比方余弦、距离等。在文献3中。这种基于直方图向量的类似度计算方法给出了三种,例如以下图所看到的。
上图中公式仅仅是针对一个直方图的。使用中还会将图像分为多个区域分别计算直方图。所以在实际使用中,还可对不同区域进行加权。
6.2 特定人脸检測
在上述计算图像类似度的公式中。须要对每一个分量计算一个值(差值、最小值等),然后将这些值累加。我们还能够这样考虑,不将每一个分量计算出的值累加。而是形成一个新的向量。临时称之为差异向量。
这样就能够针对特定人脸进行检測了。
详细训练方法是这样:
a) 首先准备训练集,正例是同一个人的人脸的两张图像的差异向量。负例是不同人的人脸的两张图像的差异向量。
b) 然后。使用如Adaboost、SVM、朴素贝叶斯等分类方法对训练集进行训练,得到分类模型。
在測试时,假设有一张图像A,如今须要推断图像B与图像A中的人脸是否是同一个人。那么首先计算出两张图像的差异向量,然后使用训练得到的分类模型对其进行分类。假设分类为正,则是同一个人。当然。前提假设是图像A与图像B都是人脸图像。
7 LBP特征降维
一个LBP算子能够产生不同的二进制模式,对于半径为R的圆形区域内含有P个採样点的LBP算子将会产生2^P种模式。非常显然,随着邻域集内採样点数的添加,二进制模式的种类是急剧添加的。比如:5×5邻域内20个採样点,有2^20=1,048,576种二进制模式。如此多的二值模式不管对于纹理的提取还是对于纹理的识别、分类及信息的存取都是不利的。
同一时候,过多的模式种类对于纹理的表达是不利的。
比如,将LBP算子用于纹理分类或人脸识别时,常採用LBP模式的统计直方图来表达图像的信息。而较多的模式种类将使得数据量过大,且直方图过于稀疏。因此。须要对原始的LBP模式进行降维,使得数据量降低的情况下能最好的代表图像的信息。
为了解决二进制模式过多的问题,提高统计性,Ojala提出了採用一种“等价模式”(Uniform Pattern)来对LBP算子的模式种类进行降维。Ojala等觉得,在实际图像中,绝大多数LBP模式最多仅仅包括两次从1到0或从0到1的跳变。因此,Ojala将“等价模式”定义为:当某个LBP所相应的循环二进制数从0到1或从1到0最多有两次跳变时。该LBP所相应的二进制就称为一个等价模式类。如00000000(0次跳变),00000111(仅仅含一次从0到1的跳变)。10001111(先由1跳到0,再由0跳到1,共两次跳变)都是等价模式类。除等价模式类以外的模式都归为还有一类。称为混合模式类,比如10010111(共四次跳变)。比方下图给出了几种等价模式的示意图。
通过这种改进。二进制模式的种类大大降低。而不会丢失不论什么信息。
模式数量由原来的2P种降低为 P ( P-1)+2种,当中P表示邻域集内的採样点数。
对于3×3邻域内8个採样点来说,二进制模式由原始的256种降低为58种。这使得特征向量的维数更少,而且能够降低高频噪声带来的影响。
由上可见。等价模式降维的理论基础是至多包括两次跳变的模式的数目占所有模式的大多数。实验也表明,普通情况下。基础LBP特征中,至多包括两次跳变的模式的数目占了所有模式数目的90%。
8 多尺度LBP
本节主要是參考文献4的成果。
基本LBP是计算的单个像素与其相邻像素的差值信息。它捕捉的是微观特征。可是不能捕捉宏观上的特征。文献4在此方面进行了改进。它提出能够将LBP算子等比例放大,计算区域与区域之间的差值信息。例如以下图所看到的:
上图就是放大3倍后的LBP算子。这时,中心元素变为了0区域9个像素的像素和,该区域的LBP特征值就变为0区域和其它区域的像素和之间的计算了。在此须要注意的是。此时的LBP特征针对的是一个区域而不是一个像素了。在计算像素和之差的时候。能够使用Haar特征时提到的积分图方法进行加速计算。
多尺度模式下。等价模式类降维的理论基础不复存在。
那么,它是怎样降维的呢?
论文中提到的方法是直接採用统计的方法对不同尺度的LBP算子的模式进行统计,选取占比例较高的模式。而不是利用跳变规则。
9 总结
LBP特征与Haar特征尽管计算方法差异非常大。但它们都有一个共同的目标。那就是对图像的信息进行表示,从而使图像的所存储的信息能更充分的被算法所利用。
图像中像素与LBP特征、Haar特征之间的关系比較类似于文本分析中字与词之间的关系。文本分析中,假设想要获得语义理解的话。那应该须要处理句子、短语、词语等,单单分析字是远远不够的。
图像处理中,要想得到丰富的图像包括的信息,单单分析像素也是不够的。
本文与Haar特征的那篇博文都使用到了Adaboost分类器。但其使用的目的却全然不一样,Haar特征中使用Adaboost是对有脸和无脸的图像进行分类,而本文是对是不是同一个人的脸进行分类。从这就能够感觉的到,非常多机器学习问题事实上本质上都能够化为分类问题,当然。还有一大类是回归问题。
个人觉得本篇博文对LBP的讨论已经够全面了。有想深入学习的同学请阅读參考文献,欢迎来信讨论。
转载请注明:http://blog.csdn.net/stdcoutzyx/article/details/37317863
參考文献
[1]. Ojala, T., Pietik¨ainen, M., Harwood, D.: A comparative study of texture measures with classification based on feature distributions. Pattern Recognition 29 (1996)51–59.
[2]. Ojala T, Pietikainen M, Maenpaa T. Multiresolution gray-scale and rotation invariant texture classification with local binary patterns[J]. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 2002, 24(7):
971-987.
[3]. Ahonen T, Hadid A, Pietikäinen M. Face recognition with local binary patterns[M]//Computer vision-eccv 2004. Springer Berlin Heidelberg, 2004: 469-481.
[4]. Liao S, Zhu X, Lei Z, et al. Learning multi-scale block local binary patterns for face recognition[M]//Advances in Biometrics. Springer Berlin Heidelberg, 2007: 828-837.
[5]. http://blog.csdn.net/smartempire/article/details/23249517
图像物体检測识别中的LBP特征的更多相关文章
- 机器学习:PCA(人脸识别中的应用——特征脸)
一.思维理解 X:原始数据集: Wk:原始数据集 X 的前 K 个主成分: Xk:n 维的原始数据降维到 k 维后的数据集: 将原始数据集降维,就是将数据集中的每一个样本降维:X(i) . WkT = ...
- 目标检测的图像特征提取之(二)LBP特征
LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像年提出,用于纹理特征提取.而且,提取的特征是图像的局部的纹理特征: 1.LBP特征的描述 原始的LBP算子定义为在3* ...
- 图像特征提取之LBP特征
LBP(Local Binary Pattern,局部二值模式)是一种用来描述图像局部纹理特征的算子:它具有旋转不变性和灰度不变性等显著的优点.它是首先由T. Ojala, M.Pietik?inen ...
- 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征(转载)
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
- 图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
- 基于QT和OpenCV的人脸检測识别系统(2)
紧接着上一篇博客的讲 第二步是识别部分 人脸识别 把上一阶段检測处理得到的人脸图像与数据库中的已知 人脸进行比对,判定人脸相应的人是谁(此处以白色文本显示). 人脸预处理 如今你已经得到一张人脸,你能 ...
- 图像边缘检測--OpenCV之cvCanny函数
图像边缘检測--OpenCV之cvCanny函数 分类: C/C++ void cvCanny( const CvArr* image, CvArr* edges, double threshold1 ...
- [CV笔记]图像特征提取三大法宝:HOG特征,LBP特征,Haar特征
(一)HOG特征 1.HOG特征: 方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和 ...
- 图像的全局特征--LBP特征
原文链接:http://blog.csdn.net/zouxy09/article/details/7929531#comments 这个特征或许对三维图像特征提取有很大作用.文章有修改,如有疑问,请 ...
随机推荐
- [BZOJ1578] [Usaco2009 Feb]Stock Market 股票市场(DP)
传送门 可以看出 第一天买,第三天卖 == 第一天买,第二天卖完再买,第三天卖 所以我们只考虑前一天买,后一天卖即可 那么有按天数来划分 f[i][j]表示前i天,共有j元,最大的盈利 第一维可以省去 ...
- BZOJ 1821 [JSOI2010]Group 部落划分:MST
Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗.只是,这一切都成 ...
- Snmp的学习总结——Snmp的基本概念
摘自:http://www.cnblogs.com/xdp-gacl/p/3978825.html 一.SNMP简单概述 1.1.什么是Snmp SNMP是英文"Simple Network ...
- bzoj1975: [Sdoi2010]魔法猪学院【k短路&A*算法】
1975: [Sdoi2010]魔法猪学院 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2446 Solved: 770[Submit][Statu ...
- poj 2115 二元一次不定方程
C Looooops Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14765 Accepted: 3719 Descr ...
- 小机房的树(codevs 2370)
题目描述 Description 小机房有棵焕狗种的树,树上有N个节点,节点标号为0到N-1,有两只虫子名叫飘狗和大吉狗,分居在两个不同的节点上.有一天,他们想爬到一个节点上去搞基,但是作为两只虫子, ...
- C++ 中new
operator new在C++中的各种写法 (2011-09-21 14:59:33) 标签: 杂谈 乍一看,在C++中动态分配内存很简单:new是分配,delete是释放,就这么简单.然而,这 ...
- 测试开发系列之Python开发mock接口(二)
上一篇咱们已经把开发前的环境准备好了,还需要再做一点准备,你的账户信息是存在哪的呢,当然是存在数据库里的,咱们在去支付,扣钱的时候,肯定是从数据库里面操作的,去更新账户表里面的数据,所以咱们先要把数据 ...
- CodeForces - 813C The Tag Game (树的dfs遍历)
[传送门]http://codeforces.com/problemset/problem/813/C [题目大意]两个人玩游戏,一个人跑一个人追,轮流决策,可以走也可以不走.给你一棵树,想要从某个结 ...
- websocket笔记
本文为原创,转载请注明出处: cnzt 文章:cnzt-p http://www.cnblogs.com/zt-blog/p/6742746.html websocket -- 双向通信网 ...