FaceRecognitionByMatlab icon indicating copy to clipboard operation
FaceRecognitionByMatlab copied to clipboard

This program is based on the Adaboost Algorithm and Haar Feature

FaceRecognitionByMatlab

This program is based on the Adaboost Algorithm and Haar Feature 背景阐述 开发一个纯Matlab下的人脸识别系统其实非常有益,因为Matlab具有极强的图像处理功能。然而目前互联网上大多采用OpenCV+C++编译Matlab API的方法进行Matlab人脸识别,我觉得这是完全没有意义的。因此,我选择理解Viola-Jones提出的人脸识别算法,并仅用Matlab进行编程。

1.1主要文件及作用

测试训练及提取特征:运行ExtractAndTrain.m(不建议低gpu配置运行) 测试检测性能:运行testMWSegment.m

数据库 faces文件夹 4422张人脸 正样本 nonfaces文件夹 4381张非人脸 负样本 主程序1 (特征提取及训练) ExtractAndTrain.m 提取和训练的主程序 (建议不要跑,训练要7小时左右) 定义了Haar特征,提取特征,训练,错误率计算 特征提取函数 integralImage.m 求积分图像

extHarrLikeFeature.m 提取Harr-like特征

训练所需要的函数 trainAdaBoostLearner.m 训练100个强分类器,找到区别人脸的阈值

searchBestWeakLearner.m 根据错误率找到最好的weak learner

AdaBoostClassfy.m 强学习分类

calPredictErrorRate.m 计算错误概率

testAdaBoostLearner.m 自我循环样本,测试误判

数据库 HarrLikeFeatures-2.mat 保存提取的特征及训练数据 可以直接使用作为数据库

主函数2 图像检测 testMWSegment.m 窗口检测程序 指定判断算法、窗口数据、划定网格 判断函数 MoveWindowing.m 移动窗口、放缩

ImageBlockRecogByAdaBoost.m 对当前窗口进行识别

ThreshSegement.m 阈值分割

LabelDetectWindow.m 给找到的图像进行加框

级联检测 ImageBlockRecogByCascadeAdaBoost.m 级联检测 就写了一下,还没有整合进程序