# FER **Repository Path**: onceshy/FER ## Basic Information - **Project Name**: FER - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-06 - **Last Updated**: 2021-11-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FER(Facial Expressions Recognition) #### 介绍 2021秋图像处理大作业,核心算法不调库,不使用任何NN-related算法实现的人脸情绪识别算法(包含数据图像), 主要算法使用LBP+PCA+KNN实现。 #### 使用环境 Pycharm Community Edition 2020.2.1 (opencv、numpy) #### 算法流程 1. 预处理: 读取图像,并转化为灰度图像 2. 图像特征提取: 使用LBP(局部二值模式)将图像用LBP旋转不变算子进行处理,将处理后的图像切分成m*n个子图,统计每个子图的灰度直方图,每个灰度直方图转化为一个256*1的特征向量,将这些特征向量拼接为一个1行的特征向量 3. 特征降维: 将各个图片的特征向量按竖列拼接起来,每行都是一个图片的特征向量,使用PCA对其降维,得到降维后的矩阵,以及降维所乘的矩阵V_r(如果每行是一个图片的特征向量的话,要右乘V_r;而若每列是一个图片的特征向量的话,要左乘V_r;本质上是一样的,就是样本数不变,每个样本的特征减少,所以代表样本数的那个维度不能改变) 4. 预测: 将测试集读取并进行特征提取,然后乘上V_r得到同样降维后的特征矩阵,对每个测试图片,计算其到训练集图片的欧式距离,取出距离最近的K个样本进行投票,投票数最多的作为分类预测。 5. 评估: 将预测类别与测试集的准确类别进行比较,计算测试集的正确率。