基于FLDA与KFDA的人脸识别实验

一、
实验介绍

线性判别函数是统计模式识别的常用的方法之一。它的基本思想是利用样本集直接设计分类器,并把未知样本归到具有最大判别函数的类别中。这种设计要求,在数学上往往表现为某个特定的函数形式,称之为准则函数,归类相应于准则函数取最优值。这实际上将分类器的设计问题转化为求准则函数极值问题了。

对解决人脸识别问题来说,线性判别分析分类器是一个很好的选择。一般所采用的线性判别分析函数是 Fisher线性判别函数,首先由Fisher于1936年提出,其基本思想就是在Fisher判别准则函数取得极值的条件下,求得一个最佳判别方向,然后再将模式高维特征向量投影到该最佳判别方向上,构成一个一维的判别特征空间。于是模式识别可以在一维空间中进行。

二:

KFDA:

核方法是广义线性判别方法的一种。当样本在原始空间线性不可分时,映射到更高维度的特征空间,使样本线性可分;此时再使用Fisher线性判别分析,从而实现相对于原空间为非线性判别分析,
首先使用非线性映射将输入数据映射到一个高维的特征空间中,
然后在这个特征空间当中进行LFDA,
此时是映射到高维空间中,然后再根据内积的公式进行计算,计算维数与计算量太大,因此借助于核函数来减少计算量,即直接在原来的低维空间中进行计算,而不需要显式地写出映射后的结果,但是计算出来的结果是一样的,大大降低了计算的量。这里的计算两个向量在隐式映射过后的空间中的内积的函数叫做核函数。常用的核函数有多项式核函数,高斯核函数,径向基核函数等。

三、界面
初始界面如下:

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
在 Python 中实现人脸识别 FDLA 特征提取,可以使用 OpenCV 和 Scikit-learn 库。以下是一个简单的示例,演示如何使用这两个库来提取 FDLA 特征并进行人脸识别: ```python import cv2 import numpy as np from sklearn.discriminant_analysis import LinearDiscriminantAnalysis # 加载人脸数据集 faces = cv2.imread('faces.jpg', cv2.IMREAD_GRAYSCALE) # 提取 LBP 特征 lbp = cv2.face.LBPHFaceRecognizer_create() lbp.train(faces, np.arange(len(faces))) # 获取 LBP 特征向量 labels, descriptors = lbp.getHistograms() # 计算 FDLA 特征 flda = LinearDiscriminantAnalysis(n_components=2) flda.fit(descriptors, labels) # 加载测试图像 test_image = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE) # 获取测试图像的 LBP 特征向量 test_label, test_descriptor = lbp.compute(test_image) # 进行人脸识别 prediction = flda.predict(test_descriptor.reshape(1, -1)) # 显示识别结果 if prediction[0] == 0: print('This is a face!') else: print('This is not a face.') ``` 这段代码首先加载人脸数据集,并使用 LBP 特征提取方法提取每个人脸的 LBP 特征。然后,它使用 Scikit-learn 的 FDLA 特征提取方法计算 LBP 特征的 FDLA 特征。接下来,它加载测试图像,并使用 LBP 特征提取方法提取其 LBP 特征。最后,它使用 FDLA 特征进行人脸识别,并显示识别结果。 请注意,这只是一个简单的示例,实际应用中需要更多的数据预处理和模型优化。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值