LBP(续)

圆形LBP算子

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

上图内有八个黑色的采样点,每个采样点的值可以通过下式计算:

xp=xc+Rcos(2πpP)yp=yc−Rsin(2πpP)xp=xc+Rcos⁡(2πpP)yp=yc−Rsin⁡(2πpP)

x_p=x_c+R\cos(\frac{2\pi p}{P})\\ y_p=y_c-R\sin(\frac{2\pi p}{P})

通过上式可以计算任意个采样点的坐标,但是计算得到的坐标未必完全是整数,所以可以通过双线性插值来得到该采样点的像素值:

f(x,y)≈[1−xx][f(0,0)f(1,0)f(0,1)f(1,1)][1−yy]f(x,y)≈[1−xx][f(0,0)f(0,1)f(1,0)f(1,1)][1−yy]

f(x,y)\approx \begin{bmatrix} 1-x & x \\ \end{bmatrix} \begin{bmatrix} f(0,0) & f(0,1) \\ f(1,0) & f(1,1) \\ \end{bmatrix} \begin{bmatrix} 1-y \\ y \\ \end{bmatrix}

LBP等价模式

一个LBP算子可以产生不同的二进制模式,对于半径为R的圆形区域内含有P个采样点的LBP算子将会产生2p2p2^p种模式。很显然,随着邻域集内采样点数的增加,二进制模式的种类是急剧增加的。例如:5×5邻域内20个采样点,有2202202^{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,共两次跳变)都是等价模式类。除等价模式类以外的模式都归为另一类,称为混合模式类。

通过这样的改进,二进制模式的种类大大减少,而不会丢失任何信息。模式数量由原来的2p2p2^p种减少为p(p−1)+2p(p−1)+2p(p-1)+2种。这种丢掉2次以上跳变信息的方法,实际上就是一种高频滤波

LBP特征匹配

如果将以上得到的LBP值直接用于人脸识别,其实和不提取LBP特征没什么区别,会造成计算量准确率等一系列问题。我们可以将一副人脸图像分为7x7的子区域,并在子区域内根据LBP值统计其直方图,以直方图作为其判别特征。这样做的好处是在一定范围内避免图像没完全对准的情况,同时也对LBP特征做了降维处理。

对于得到的直方图特征,有多种方法可以判别其相似性。常见的有Histogram intersection和Chi square statistic。

Histogram intersection

Histogram intersection出自以下论文:

《The Pyramid Match Kernel: Discriminative Classification with Sets of Image Features》

Kristen Grauman,Boston College本科(2001)+MIT硕士(2003)+MIT博士(2006),University of Texas at Austin教授,Marr Prize(2011)。导师是Trevor Darrell。
绝对的美女,靠脸吃饭都没问题的那种。
个人主页:
http://www.cs.utexas.edu/~grauman/
从她的主页来看,她手下有很多亚裔学生。还有一些在线课程,其中有部分是博士课程,只适合高手挑战。

David Courtnay Marr,1945~1980,英国神经学家和生理学家。Trinity College, Cambridge博士(1972),MIT教授。35岁死于白血病。他在神经科学,尤其是视觉方面有重大贡献。
Marr Prize由International Conference on Computer Vision颁发,2年一次,是CV界的最高荣誉。何恺明是去年(2017)的新晋得主。

假设图像或其他数据的特征可以构成直方图,根据直方图间距的不同可以得到多种类型的直方图:

Ψ(x)=[H−1(x),H0(x),…,HL(x)]Ψ(x)=[H−1(x),H0(x),…,HL(x)]

\Psi(x)=[H_{-1}(x),H_0(x),\dots,H_L(x)]

H的下标每增加1,则直方图间距变为原来的两倍。H−1H−1H_{-1}表示每个样本都有自己的bin,而HLHLH_L表示所有的样本都在一个bin中。

两个数据集的相似度可以用下式来匹配:

KΔ(Ψ(y),Ψ(z))=∑i=0LwiNiKΔ(Ψ(y),Ψ(z))=∑i=0LwiNi

K_\Delta(\Psi(y),\Psi(z))=\sum_{i=0}^Lw_iN_i

其中,wi=12i,Ni=I(Hi(y),Hi(z))−I(Hi−1(y),Hi−1(z))wi=12i,Ni=I(Hi(y),Hi(z))−I(Hi−1(y),Hi−1(z))w_i=\frac{1}{2^i},N_i=I(H_i(y),H_i(z))-I(H_{i-1}(y),H_{i-1}(z))。

I的计算方法如下图所示:

(a)里的y和z代表两种数据分布,三幅图代表三层金字塔,每一层里有间距相等的虚线。

可以看到红点蓝点的位置是固定的,但是根据直方图宽度的不同可以划到不同的直方图里,如(b)所示。

(c)图就是L的计算结果,是通过(b)里两种直方图取交集得来的。

注意:这里的I表示的是交集里元素的个数(即(a)中的连线数),而不是交集的个数(即(c)中的绿条个数)。

Chi square statistic

在《数学狂想曲(五)》中,我们给出了χ2χ2\chi^2检验的原理和公式。这里仅对于直方图相似度给出最后的公式:

χ2w(S,M)=∑i,jwj(Si,j−Mi,j)2Si,j+Mi,jχw2(S,M)=∑i,jwj(Si,j−Mi,j)2Si,j+Mi,j

\chi_w^2(S,M)=\sum_{i,j}w_j\frac{(S_{i,j}-M_{i,j})^2}{S_{i,j}+M_{i,j}}

其中,i为图像的某块小区域,j为小区域内直方图的某一列的值。wjwjw_j是每块小区域的权重,比如在人脸区域中,眼睛、嘴巴等区域包含的信息量更为丰富,那么这些区域的权重就可以设置的大一些。

参考

http://blog.csdn.net/smartempire/article/details/23249517

LBP方法

http://blog.csdn.net/dujian996099665/article/details/8886576

LBP算法的研究及其实现

https://mp.weixin.qq.com/s/iFlnZ8z5baUdWCZxIGkq5g

机器学习实战——LBP特征提取

Fisherface

Fisherface由Peter N. Belhumeur, Joao P. Hespanha和David J. Kriegman于1997年提出。

Peter N. Belhumeur,Brown University本科(1985)+Harvard University博士(1993),Yale University和Columbia University教授。

Joao P. Hespanha,Instituto Superior Técnico, Lisbon, Portugal本硕(1991,1993)+ Yale University博士。UCSB教授。

David J. Kriegman,Princeton University本科(1983)+Stanford University硕博(1984,1989)。UCSD教授。

论文:

《Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection》

Eigenfaces的主要原理基于PCA,而Fisherface的主要原理基于LDA(参见《机器学习(三十一)》)。这里不再赘述。

参考:

http://blog.csdn.net/smartempire/article/details/23377385

Fisherface(LDA)

Viola-Jones

Viola-Jones方法由Paul Viola和Michael Jones于2001年提出。

Paul Viola,MIT本科(1988)+博士(1995)。先后在微软、Amazon担任研究员。

Michael Jones,MIT博士(1997)。现为Mitsubishi electric research laboratories研究员。

论文:

《Rapid Object Detection using a Boosted Cascade of Simple Features》

《Robust real-time face detection》

《An Extended Set of Haar-like Features for Rapid Object Detection》

《Learning Multi-scale Block Local Binary Patterns for Face Recognition》

《Implementing the Viola-Jones Face Detection Algorithm》

概述

和之前的方法不同,Viola-Jones不仅是一个算法,更是一个框架,前DL时代的人脸检测一般都采用该框架。其准确度也由Fisherface时代的不到70%,上升到90%以上。当然,这里所用的数据集以今天的眼光来看,只能算作玩具了——基本都是正面、无遮挡的标准照,光照也比较理想。但不管怎么说,这也是第一个进入商业实用阶段的目标检测框架,目前大多数的商业化产品仍然基于该框架。

Viola-Jones框架主要有三个要点:

1.Haar-like特征,AdaBoost算法和Cascade结构。Haar-like特征利用积分图像(Integral Image)快速的计算矩形区域的差分信号;

2.AdaBoost算法选择区分能力强的特征结合Stump函数做弱分类器,然后把若干这些弱分类器线性组合在一起增强分类性能;

3.Cascade结构做Early decision快速抛弃明显不是人脸的扫描窗口。

下面我们分别描述一下这几个要点。

Integral image

Integral image一种计算差分数据的快速方法。

上图左侧是图像的像素值,右侧是相应的积分图。

46–22–20+10=1446–22–20+10=14

46 – 22 – 20 + 10 = 14,我们可以很快计算出左侧蓝色区域的像素值之和。

参考:

http://www.mathworks.com/help/vision/ref/integralimage.html

Integral image

Cascade分类器

Cascade分类器,简单来说,就是先将几个通过Adaboost方法得到的强分类器进行排序,排序原则是简单的放在前边。因为通常来说人脸只占一小部分,所以可以很放心地在前几层分类器就拒绝掉大部分非人脸区域。只要前一级拒绝了,就不在进入下一级分类器,这可以大大提高速度。其本质是一颗退化决策树。

参考

https://www.jianshu.com/p/024ad859c8de

人脸检测的Viola-Jones方法

http://c.blog.sina.com.cn/profile.php?blogid=ab0aa22c890006v0

从Viola&Jones的人脸检测说起

http://www.cnblogs.com/hrlnw/archive/2013/10/23/3374707.html

Viola Jones Face Detector

ORB

ORB(Oriented FAST and Rotated BRIEF)特征,从它的名字中可以看出它是对FAST特征点与BREIF特征描述子的一种结合与改进,这个算法是由Ethan Rublee,Vincent Rabaud,Kurt Konolige以及Gary R.Bradski在2011年一篇名为“ORB:An Efficient Alternative to SIFT or SURF”的文章中提出。

参考:

http://www.cnblogs.com/ronny/p/4083537.html

ORB特征点检测

直方图反向投影

http://www.cnblogs.com/zsb517/archive/2012/06/20/2556508.html

opencv直方图反向投影

图像处理理论(七)——LBP, Fisherface, Viola-Jones相关推荐

  1. 数字图像处理——第七章 小波和多分辨处理

    数字图像处理--第七章 小波和多分辨率处理 文章目录 数字图像处理--第七章 小波和多分辨率处理 写在前面 1 多分辨率处理 1.1 图像金字塔 1.2 多尺度和多分辨率的区别 2 小波 2.1 连续 ...

  2. 图像处理理论(五)——SIFT

    SIFT 概述 SIFT算法是CV领域在DL进入之前的20年中,最重要的成果. 尺度不变特征转换(Scale-invariant feature transform或SIFT)是一种电脑视觉的算法用来 ...

  3. 图像处理理论(四)——HOG, Haar, ISP

    http://antkillerfarm.github.io HOG Histogram of oriented gradients是一种用于物体检测的算子. HOG的计算步骤,如上图所示: 1.首先 ...

  4. OpenCV与图像处理学习七——传统图像分割之阈值法(固定阈值、自适应阈值、大津阈值)

    OpenCV与图像处理学习七--传统图像分割之阈值法(固定阈值.自适应阈值.大津阈值) 一.固定阈值图像分割 1.1 直方图双峰法 1.2 OpenCV中的固定阈值分割 二.自动阈值图像分割 2.1 ...

  5. 数字图像处理----第七章

    数字图像处理----第七章 7.1点.线和边缘检测` 7.1.1 点检测 嵌在图像的恒定或近似恒定区域中的孤立点的检测,原理上非常简单.使用图7.1中的模板时,若|R≥T(T是一个非负阈值),则我们说 ...

  6. 数字图像处理 第七章小波和多分辨率处理

    文章目录 数字图像处理 第七章小波和多分辨率处理 引言 7.1背景 7.1.1图像金字塔 7.1.2子带编码 7.1.3哈尔变换 7.2小波 7.2.1连续小波 7.2.2离散小波 数字图像处理 第七 ...

  7. 数字图像处理实验七--图像压缩编码

    数字图像处理实验七 (图像压缩编码) 实验内容: 基于游程编码的图像压缩 基于离散余弦变换的图像压缩 实验步骤: 使用给定的图像lena做实验,采用im2bw把灰度图像转换为二值图像,试计算二值化时阈 ...

  8. viola jones人脸检测原理

    viola jones人脸检测原理 Viola-jones人脸检测算法是一种基于滑动窗口的目标检测算法,但它却克服了滑动窗口检测带来的低效问题,可以用于实时人脸检测,主要归功于以下三点: 利用一种新的 ...

  9. 图像处理理论(六)——Harris, Eigenface

    Harris 角点 角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用.角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的 ...

最新文章

  1. 用Go重构C语言系统,这个抗住春晚红包的百度转发引擎承接了万亿流量
  2. GDCM:从VR查找标签的测试程序
  3. [haoi2011]防线修建
  4. 分布式事务2PC、3PC模型
  5. 机器学习方法_机器学习模型应用方法综述
  6. springboot 中文文档_还在用 Swagger生成接口文档?我推荐你试试它
  7. java script eval_java ScriptEngine 使用 (支持JavaScript脚本,eval()函数等)
  8. 一体打印机行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  9. (二)PowerLink理论知识
  10. 计算机基础(三):srpintf()函数小结
  11. 高并发编程系列:深入探讨ConcurrentHashMap
  12. Jmeter 使用详解
  13. 计算机中毒后开机变慢,电脑中毒后运行慢的解决方法
  14. sqlserver2000局域网无法远程访问
  15. Linux:移植ffmpeg到ARM板(含x264编译步骤)
  16. 笔记本散热不好怎么办
  17. 五家渠市谷歌高清卫星地图下载
  18. python chunk模块
  19. 魅族应用商店云端架构实践
  20. docker部署OpenVAS开源漏洞扫描系统——筑梦之路

热门文章

  1. (十二)运行环境(加载、性能优化、安全)【这些会了,你就可以飞了】
  2. vue.config.js多页配置
  3. vue-cli简单使用心得
  4. Eclipse + Pydev开发Python时import报错解决方法
  5. QT显示框架嵌入Vs控制台工程
  6. windows tomcat 升级openssl_Linunx开发环境配置——Tomcat
  7. Java微信公众平台开发(二)--微信服务器post消息体的接收
  8. cocoa pods Installation
  9. iOS中的图像处理(一)——基础滤镜
  10. 敏捷软件开发实践-Sprint Status Track