wordpress改页面,南宁有名的seo费用,制作简单网页教程,网站开发必须要做前端吗目录
一、LBPH算法
1、概念
2、实现步骤
3、方法
1#xff09;步骤1
• 缩放
• 旋转和平移
2#xff09;步骤2
二、案例实现
1、完整代码
1#xff09;图像内容#xff1a;
2#xff09;运行结果#xff1a; 一、LBPH算法
1、概念 在OpenCV中#xff0c;L…目录
一、LBPH算法
1、概念
2、实现步骤
3、方法
1步骤1
• 缩放
• 旋转和平移
2步骤2
二、案例实现
1、完整代码
1图像内容
2运行结果 一、LBPH算法
1、概念 在OpenCV中LBPHLocal Binary Patterns Histogram局部二值模式直方图算法主要用于人脸识别任务。 LBPH是一种用于图像特征提取的算法。它首先将图像划分为小的局部区域然后在每个区域中提取局部二值模式Local Binary Patterns。 局部二值模式是一种在像素邻域中将像素与其邻居像素进行比较的方法根据比较结果将像素转换为二进制编码。在LBPH算法中将每个局部区域中的二值模式编码组合起来形成一个直方图用于表示该区域的特征。最后将所有局部区域的直方图组合在一起形成整个图像的特征向量。 2、实现步骤 1以每个像素为中心判断与周围像素灰度值大小关系对其进行二进制编码从而获得整幅图像的LBP编码图像 2再将LBP图像分为多个区域获取每个区域的LBP编码直方图继而得到整幅图像的LBP编码直方图。 通过比较不同人脸图像LBP编码直方图达到人脸识别的目的其优点是不会受到光照、缩放、旋转和平移的影响。 3、方法 1步骤1 • 缩放 为了得到不同尺度下的纹理结构可以使用圆形邻域将计算扩大到任意大小的邻域内。圆形邻域可以用(P,R)表示其中P表示圆形邻域内参与运算的像素点个数R 表示圆形邻域的半径。 • 旋转和平移 1、将中心点像素作为圆心将周围的像素点按照顺时针方向依次移动一个位置。 2、再计算所有图像的LBP值取其中最小值作为最终的值 2步骤2 将LBP图像分为多个区域获取每个区域的LBP编码直方图继而得到整幅图像的LBP编码直方图。 LBP特征与Haar特征很相似都是图像的灰度变化特征。 二、案例实现
1、完整代码
import cv2
import numpy as np
# 提前训练的人脸照片
images []
images.append(cv2.imread(pyy1.png, cv2.IMREAD_GRAYSCALE)) # 将图片导入列表
images.append(cv2.imread(pyy2.png, cv2.IMREAD_GRAYSCALE))
images.append(cv2.imread(zly1.png, cv2.IMREAD_GRAYSCALE))
images.append(cv2.imread(zly2.png, cv2.IMREAD_GRAYSCALE))
labels [0,0,1,1] # 设置四张图片的标签
dic {0:ppy,1:zly,-1:无法识别} # 设置一个字典用于打印结果名称
predict_image cv2.imread(pyy3.png, cv2.IMREAD_GRAYSCALE) # 读取待识别人脸灰度图创建一个LBPH的人脸特征识别器
# cv2.face.LBPHFaceRecognizer_create(radiusNone, neighborsNone, grid_xNone, grid_yNone, thresholdNone)
# radius:可选参数圆形局部二进制模式的半径增加邻居数可以提高识别精度但同样也会增加计算量建议使用默认值
# neighbors:可选参数圆形局部二进制模式的邻居数建议使用默认值
# grid_x:可选參数 水平方向上的的单元格数默认值为8即将LBP特征图在水平方向上划分为8个单元每个网格区域将独立计算其局部二值模式直方图
# grid_y:可逃参数 垂直方向上的的单元格数默认值为8建议使用默认值若grid_x和grid_y都为默认值则表示特征图划分为8*8人小统计8*8大小的直方图。
# threshold:阈值可选参数用于设置识别器在判断两个人脸是否属于同一人时的置信度阈值通常是在调用识别器的predict()方法时作为可选参数传入
recognizer cv2.face.LBPHFaceRecognizer_create(threshold80)训练
# 函数train用给定的数和相关标签训练生成的实例模型。
# 各参数的含义如下:
# src:训练的图像用来学习的人脸图像
# labels:标签人脸图像对应的标签。
recognizer.train(images,np.array(labels))预测
# 函数predict()对一个待识别人脸图像进行判断寻找与当前图像距离最近的人脸图像。
# 与哪輻人貽图像距离最近就将当前待测图像标注为该人脸图像对应的标答。
# 若待识别人脸图像与所有人脸图像的距离都大于特定的距离值(阈值)则认为没有找到对应的结果,
# 参数与返问值
# src:需要识别的人脸图像
# label:返回的识别结果标签返回-1示无法识别当前人。
# confidence:返回的置信度评分用来衡量识别结果与原有模型之间的距离
# 评分越小表示匹配越高但是若高于80则认为识别结果与原有模型差距大
label,confidence recognizer.predict(predict_image)
print(这人是:,dic[label])
print(置信度:,confidence) 1图像内容 2运行结果