1.opencv中LBPH算法
opencv中LBPH算法
人脸识别技术旨在将待识别的源码人脸与数据库中的人脸进行匹配,类似于指纹识别。源码它与人脸检测不同,源码人脸检测是源码追板预警选股公式源码在图像中定位人脸,实现搜寻功能。源码从OpenCV2.4版本开始,源码引入了FaceRecognizer类,源码用于人脸识别,源码便于进行相关实验。源码
LBP算子最初定义为在3*3窗口内,源码以中心像素为阈值,源码编译pjsip源码比较周围8个像素的源码灰度值。若周围像素值大于或等于中心像素值,源码则标记为1,源码否则为0。源码3*3邻域内的大量c 源码8个点经过比较,可产生8位二进制数,即LBP码(共种),反映该区域的纹理特征。
原始LBP算子存在局限性,研究人员对其进行了改进和优化。potree源码编译以下为几种改进方法:
1.1 圆形LBP算子:将3*3邻域扩展到任意邻域,用圆形邻域代替正方形邻域,允许在半径为R的圆形邻域内有任意多个像素点。
1.2 旋转不变模式:不断旋转圆形邻域得到一系列初始定义的LBP值,取最小值作为该邻域的源码安装glancesLBP值,实现旋转不变性。
1.3 等价模式:Ojala提出采用“等价模式”来对LBP算子的模式种类进行降维,减少二进制模式的种类。
2LBP特征用于检测的原理:LBP算子在每个像素点得到一个LBP编码,对图像提取LBP算子后,得到的原始LBP特征依然是“一幅”。实际应用中,一般采用LBP特征谱的统计直方图作为特征向量进行分类识别。
3 LBPH人脸识别关键部分源码:以OpenCV2.4.9为例,LBPH类源码位于opencv2.4.9\sources\modules\contrib\src\facerec.cpp。LBPH使用圆形LBP算子,默认情况下,圆的半径为1,采样点P为8,x方向和y方向上的分区个数为8,即有8*8=个分区。相似度阈值小于该值时才会产生匹配结果。
4 LBP人脸识别示例:示例代码中使用的人脸库是AT&T人脸库,共张人脸照片。示例程序中用一个CSV文件指明人脸数据库文件及标签,每一行包含一个文件名路径之后是其标签值,中间以分号分隔。