视觉算法原理-LBPH 特征用于人脸检测

人脸识别分为两部分,一部分是检测到人脸,一部分是将你的人脸匹配到身份。而人脸身份匹配算法就有一下几种算法:

基于PCA降维、基于LDA降维、基于LBPH特征 在前面的人脸识别实战文章中,我们使用了 LBPH 作为人脸身份识别的算法,接下来我们详细介绍一下 LBPH 到底是什么

原始的 LBP 算子

原始的 lbp 算子定义为 3*3 的窗口,以窗口中心像素为阈值,将八个相邻像素的灰度值与之相比,若大于等于,标记为 1 ,否则为 0,这样领域内就产生了8位二进制数(通常转化为十进制数即 LBP 码,共256种),即得到窗口中心像素点的LBP值,并用这个值来反应区域的纹理特征。

视觉算法原理-LBPH 特征用于人脸检测_第1张图片   视觉算法原理-LBPH 特征用于人脸检测_第2张图片   

                                                     图来自知乎

圆形 LBP 算子

使用圆形替代了矩阵,并且可以调整任意区域

视觉算法原理-LBPH 特征用于人脸检测_第3张图片

旋转不变性

将每一种方向的可能性列出,再从中挑选出最小值作为该领域的 LBP 值

等价模式

将二进制的多类型,转变为三类型,一种为0->1 跳一次或者 1->0 一次。第二种为跳两次,第三种为两次以上

识别原理

其实使用 LBP 直接用于人脸识别的话,和原图差别不大,关键在于使用 LBP 特征谱的统计直方图作为特征向量进行分类识别。并且可以将一幅图片划分为若干的子区域,对每个子区域内的每个像素点都提取LBP特征,然后,在每个子区域内建立LBP特征的统计直方图。如此一来,每个子区域,就可以用一个统计直方图来进行描述,整个图片就由若干个统计直方图组成,这样做的好处是在一定范围内减小图像没完全对准而产生的误差,分区的另外一个意义在于我们可以根据不同的子区域给予不同的权重,比如说我们认为中心部分分区的权重大于边缘部分分区的权重,意思就是说中心部分在进行图片匹配识别时的意义更为重大。 例如:一幅100*100像素大小的图片,划分为10*10=100个子区域(可以通过多种方式来划分区域),每个子区域的大小为10*10像素;在每个子区域内的每个像素点,提取其LBP特征,然后,建立统计直方图;这样,这幅图片就有10*10个子区域,也就有了10*10个统计直方图,利用这10*10个统计直方图,就可以描述这幅图片了。之后,我们利用各种相似性度量函数,就可以判断两幅图像之间的相似性了

你可能感兴趣的:(视觉算法原理)