当前位置: 首页 > news >正文

网站建设要做哪些工作网络营销有哪些就业岗位

网站建设要做哪些工作,网络营销有哪些就业岗位,wordpress搭建方案,国学大师网站谁做的文章目录 一、LBPH算法1.基本原理2.实现步骤3.代码实现 二、Eigenfaces算法1.特点2.代码实习 三、FisherFaces算法1.算法原理2.算法特点3.代码实现 四、总结 人脸识别特征识别器是数字信息发展中的一种生物特征识别技术,其核心在于通过特定的算法和技术手段&#xf…

文章目录

  • 一、LBPH算法
    • 1.基本原理
    • 2.实现步骤
    • 3.代码实现
  • 二、Eigenfaces算法
    • 1.特点
    • 2.代码实习
  • 三、FisherFaces算法
    • 1.算法原理
    • 2.算法特点
    • 3.代码实现
  • 四、总结

人脸识别特征识别器是数字信息发展中的一种生物特征识别技术,其核心在于通过特定的算法和技术手段,从人脸图像中提取出具有区分性和稳定性的特征,用于后续的人脸识别和身份验证。Opencv提供了三种用于识别人脸的特征提取算法。分别是 LBPH 算法、EigenFaces 算法、FisherFaces 算法。以下是对人脸识别特征识别器的详细介绍:

一、LBPH算法

Local Binary Patterns Histograms(LBPH),即局部二值模式直方图,是一种用于图像识别和人脸识别的特征提取方法。以下是对LBPH的详细介绍:

1.基本原理

LBPH算法通过LBP算子描述图像局部纹理特征。LBP算子是一种用于描述图像局部纹理的算子,它将每个像素与其邻域内的像素进行比较,并将比较结果编码为二进制数。然后,通过统计这些二进制数的直方图来提取图像的局部纹理特征。在人脸识别中,LBPH算法将人脸图像划分为多个局部块,并计算每个块的LBP直方图,最后将这些直方图组合起来形成特征向量。

2.实现步骤

1、以每个像素为中心,判断与周围像素灰度值大小关系,对其进行二进制编码,从而获得整幅图像的LBP编码图像;
在这里插入图片描述
2、再将LBP图像分为个区域,获取每个区域的LBP编码直方图,继而得到整幅图像的LBP编码直方图。LBP特征与Haar特征很相似,都是图像的灰度变化特征。
在这里插入图片描述
特点:
通过比较不同人脸图像LBP编码直方图达到人脸识别的目的,其优点是不会受到光照、缩放、旋转和平移的影响。

3.代码实现

import cv2
import numpy as npimages=[]
images.append(cv2.imread('fmjj1.png', cv2.IMREAD_GRAYSCALE))
images.append(cv2.imread('fmjj2.png', cv2.IMREAD_GRAYSCALE))
images.append(cv2.imread('ss1.png', cv2.IMREAD_GRAYSCALE))
images.append(cv2.imread('ss2.png', cv2.IMREAD_GRAYSCALE))
labels = [0, 0, 1, 1]
dic = {0: 'fmjj', 1: 'ss', -1: '无法识别'}
predict_image = cv2.imread('fmjj.png', cv2.IMREAD_GRAYSCALE)recognizer = cv2.face.LBPHFaceRecognizer_create(threshold=80)recognizer.train(images, np.array(labels))label, confidence = recognizer.predict(predict_image)
print('这人是:', dic[label])
print('置信度:', confidence)
aa = cv2.putText(cv2.imread('fmjj.png').copy(), dic[label], (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 0, 255), 2)
cv2.imshow('aa', aa)
cv2.waitKey(0)
cv2.destroyAllWindows()

本代码通过对四张照片进行读取,前两种为同一人图像,后两张为另一人图像,转为灰度图,并设置对应的标签,然后读取测试图片,通过使用LBPHFaceRecognizer来创建一个人脸识别器,并为其设置了一个阈值为80,然后使用测试图像和对应的标签来训练这个识别器。最后使用predict方法来对新的人脸图像进行识别。结果如下:
在这里插入图片描述

二、Eigenfaces算法

基于主成分分析(PCA)的算法,通过对人脸图像进行PCA处理,将高维的人脸数据转换为低维数据,提取出人脸的主要特征。

1.特点

  • 降维效果好:Eigenfaces算法通过PCA降维,将高维的人脸图像数据转换为低维数据,同时保留了人脸的主要特征,有效降低了计算复杂度。
  • 识别精度高:由于Eigenfaces算法提取了人脸图像的主要特征向量,因此在识别阶段能够较好地区分不同的人脸。
  • 对光照和表情变化敏感:然而,Eigenfaces算法对光照和表情变化较为敏感,因为这些变化会改变人脸图像的主要特征向量,从而影响识别精度。

2.代码实习

import cv2
import numpy as npdef image_re(image):a = cv2.imread(image, 0)a = cv2.resize(a, (120, 180))return aimages = []
a = image_re('fmjj1.png')
b = image_re('fmjj2.png')
c = image_re('ss1.png')
d = image_re('ss2.png')
images.append(a)
images.append(b)
images.append(c)
images.append(d)labels = [0, 0, 1, 1]
pre_image = cv2.imread('fmjj.png', 0)
pre_image = cv2.resize(pre_image, (120, 180))recognizer = cv2.face.EigenFaceRecognizer_create()recognizer.train(images, np.array(labels))
label, confidence = recognizer.predict(pre_image)
dic = {0: 'fmjj', 1: 'ss'}
print('这人是:', dic[label])
print("置信度:", confidence)
aa = cv2.putText(cv2.imread('fmjj.png').copy(), dic[label], (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 0, 255), 2)
cv2.imshow('aa', aa)
cv2.waitKey(0)
cv2.destroyAllWindows()

代码基本与上述一致,这里我们使用EigenFaceRecognizer创建人脸识别器,然后再对其进行训练,预测得到最终结果。

三、FisherFaces算法

1.算法原理

Fisherfaces算法的核心思想是利用LDA算法对人脸特征进行降维,并通过计算投影系数,将原始图像投影到低维空间中。这样不仅可以大大减少计算量,提高识别速度,还能在一定程度上保持较高的识别准确率。LDA是一种经典的线性学习方法,它能够在降维的同时考虑类别信息,使得投影后的同类样本点尽可能靠近,异类样本点尽可能远离。

2.算法特点

  • 考虑类别信息:与Eigenfaces算法相比,Fisherfaces算法在降维过程中考虑了类别信息,这使得投影后的特征更具区分性。
  • 对光照和角度变化具有鲁棒性:由于Fisherfaces算法在提取特征时考虑了人脸的几何形状和纹理信息,因此它对光照和角度变化具有一定的鲁棒性。
  • 计算复杂度较高:虽然Fisherfaces算法在识别阶段具有较快的速度,但由于在训练阶段需要计算类内和类间散度矩阵以及投影系数,因此计算复杂度相对较高。

3.代码实现

import cv2
import numpy as npdef image_re(imgae):a = cv2.imread(imgae, 0)a = cv2.resize(a, (120, 180))return aimage = []
a = image_re('fmjj1.png')
b = image_re('fmjj2.png')
c = image_re('ss1.png')
d = image_re('ss2.png')
image.append(a)
image.append(b)
image.append(c)
image.append(d)
labels = [0, 0, 1, 1]
pre_image = image_re('fmjj.png')
recognizer = cv2.face.FisherFaceRecognizer_create()
recognizer.train(image, np.array(labels))
label, confidence = recognizer.predict(pre_image)
dic = {0: 'fmjj', 1: 'ss'}
print("这人是:", dic[label])
print('置信度:', confidence)
aa = cv2.putText(cv2.imread('fmjj.png').copy(), dic[label], (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 0, 255), 2)
cv2.imshow('aa', aa)
cv2.waitKey(0)
cv2.destroyAllWindows()

四、总结

Eigenfaces、Fisherfaces和LBPH都是人脸识别中的经典算法,它们各自具有不同的特点和优势。Eigenfaces和Fisherfaces关注全局信息,而LBPH注重局部特征。在实际应用中,可以根据具体需求和场景选择合适的算法进行人脸识别。例如,在需要处理大规模数据集时,可以选择Eigenfaces算法;在需要注重分类性能时,可以选择Fisherfaces算法;在复杂环境下进行人脸识别时,可以选择LBPH算法。

http://www.qdjiajiao.com/news/6517.html

相关文章:

  • 做微网站公司简介seo搜索优化是什么呢
  • 建设网站证书查询实时新闻热点
  • 普达建站快车爱站网爱情电影网
  • 清远做网站哪家好肇庆网站搜索排名
  • 我想给图书网站做代理百度搜索榜单
  • 个人网站如何进行网络推广广告免费发布信息
  • 网站外链建设的策略分析广告网站
  • 银州铁岭做网站宁波seo智能优化
  • 携程电子商务网站建设女生做sem专员的工作难吗
  • 网站设计 术语搜索引擎分哪三类
  • 网站店铺分布图怎么做营销手机系统安装
  • 做网站的需求是吗怎么开一个网站平台
  • 网站建设及推广套餐百度seo快速排名优化服务
  • 什么网站动物和人做的吗企业专业搜索引擎优化
  • 广东省住建局官网上海专业排名优化公司
  • 郑州网站建设代运营青岛关键词优化报价
  • 给公司做的东西放到自己网站上上海高端seo公司
  • 游戏资讯网站哪个好百度seo软件
  • 怎么看网站建设有多久百度推广一个月费用
  • 网站申请腾讯绿标认证自制网站教程
  • 平台式网站模板下载地址千锋教育培训机构可靠吗
  • 深圳市龙华区政府官网安卓优化大师老版本下载
  • 服务关系型网站怎么做天津百度推广代理商
  • 网站设计在营销中的作用老师直播课
  • 做网站如何语音百度广告一级代理
  • 在家做网站如何进行推广
  • 软件公司 网站模板怎么在百度制作自己的网站
  • wordpress根据id排序广东短视频seo搜索哪家好
  • 南宁网站开发软件互联网运营推广
  • wordpress如何添加广告代码seo教学网站