├── AdaBoost.m ├── AdaBoostClassfy.m ├── ExtractAndTrain.m ├── IntegralImage.m ├── MoveWindowing.m ├── ThreshSegement.m ├── calDetectRate.m ├── geneStdDisImage.m ├── getStdDisImage.m ├── testHarrLikeFea.m ├── testMWSegment.m ├── LabelDetectWindow.m ├── dispCombineImage.m ├── MultiThreshSegement.m ├── calPredictErrorRate.m ├── dispWindowingResult.m ├── extHarrLikeFeature.m ├── testAdaBoostLearner.m ├── trainAdaBoostLearner.m ├── searchBestWeakLearner.m ├── CalPixelFrequencyInWindow.m ├── ImageBlockRecogByAdaBoost.m ├── AdaBoostWeakLearnerClassfy.m ├── AdaBoostDecisionForImageBlock.m ├── ImageBlockRecogByCascadeAdaBoost.m └── README.md /AdaBoost.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/AdaBoost.m -------------------------------------------------------------------------------- /AdaBoostClassfy.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/AdaBoostClassfy.m -------------------------------------------------------------------------------- /ExtractAndTrain.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/ExtractAndTrain.m -------------------------------------------------------------------------------- /IntegralImage.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/IntegralImage.m -------------------------------------------------------------------------------- /MoveWindowing.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/MoveWindowing.m -------------------------------------------------------------------------------- /ThreshSegement.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/ThreshSegement.m -------------------------------------------------------------------------------- /calDetectRate.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/calDetectRate.m -------------------------------------------------------------------------------- /geneStdDisImage.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/geneStdDisImage.m -------------------------------------------------------------------------------- /getStdDisImage.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/getStdDisImage.m -------------------------------------------------------------------------------- /testHarrLikeFea.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/testHarrLikeFea.m -------------------------------------------------------------------------------- /testMWSegment.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/testMWSegment.m -------------------------------------------------------------------------------- /LabelDetectWindow.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/LabelDetectWindow.m -------------------------------------------------------------------------------- /dispCombineImage.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/dispCombineImage.m -------------------------------------------------------------------------------- /MultiThreshSegement.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/MultiThreshSegement.m -------------------------------------------------------------------------------- /calPredictErrorRate.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/calPredictErrorRate.m -------------------------------------------------------------------------------- /dispWindowingResult.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/dispWindowingResult.m -------------------------------------------------------------------------------- /extHarrLikeFeature.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/extHarrLikeFeature.m -------------------------------------------------------------------------------- /testAdaBoostLearner.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/testAdaBoostLearner.m -------------------------------------------------------------------------------- /trainAdaBoostLearner.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/trainAdaBoostLearner.m -------------------------------------------------------------------------------- /searchBestWeakLearner.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/searchBestWeakLearner.m -------------------------------------------------------------------------------- /CalPixelFrequencyInWindow.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/CalPixelFrequencyInWindow.m -------------------------------------------------------------------------------- /ImageBlockRecogByAdaBoost.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/ImageBlockRecogByAdaBoost.m -------------------------------------------------------------------------------- /AdaBoostWeakLearnerClassfy.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/AdaBoostWeakLearnerClassfy.m -------------------------------------------------------------------------------- /AdaBoostDecisionForImageBlock.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/AdaBoostDecisionForImageBlock.m -------------------------------------------------------------------------------- /ImageBlockRecogByCascadeAdaBoost.m: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cuijiaxun/FaceRecognitionByMatlab/HEAD/ImageBlockRecogByCascadeAdaBoost.m -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FaceRecognitionByMatlab 2 | This program is based on the Adaboost Algorithm and Haar Feature 3 | 背景阐述 4 | 开发一个纯Matlab下的人脸识别系统其实非常有益,因为Matlab具有极强的图像处理功能。然而目前互联网上大多采用OpenCV+C++编译Matlab API的方法进行Matlab人脸识别,我觉得这是完全没有意义的。因此,我选择理解Viola-Jones提出的人脸识别算法,并仅用Matlab进行编程。 5 | 6 | 1.1主要文件及作用 7 | 8 | 测试训练及提取特征:运行ExtractAndTrain.m(不建议低gpu配置运行) 9 | 测试检测性能:运行testMWSegment.m 10 | 11 | 数据库 12 | faces文件夹 13 | 4422张人脸 14 | 正样本 15 | nonfaces文件夹 16 | 4381张非人脸 17 | 负样本 18 | 主程序1 19 | (特征提取及训练) 20 | ExtractAndTrain.m 21 | 提取和训练的主程序 22 | (建议不要跑,训练要7小时左右) 23 | 定义了Haar特征,提取特征,训练,错误率计算 24 | 特征提取函数 25 | integralImage.m 26 | 求积分图像 27 | 28 | extHarrLikeFeature.m 29 | 提取Harr-like特征 30 | 31 | 训练所需要的函数 32 | trainAdaBoostLearner.m 33 | 训练100个强分类器,找到区别人脸的阈值 34 | 35 | searchBestWeakLearner.m 36 | 根据错误率找到最好的weak learner 37 | 38 | AdaBoostClassfy.m 39 | 强学习分类 40 | 41 | calPredictErrorRate.m 42 | 计算错误概率 43 | 44 | testAdaBoostLearner.m 45 | 自我循环样本,测试误判 46 | 47 | 数据库 48 | HarrLikeFeatures-2.mat 49 | 保存提取的特征及训练数据 50 | 可以直接使用作为数据库 51 | 52 | 主函数2 53 | 图像检测 54 | testMWSegment.m 55 | 窗口检测程序 56 | 指定判断算法、窗口数据、划定网格 57 | 判断函数 58 | MoveWindowing.m 59 | 移动窗口、放缩 60 | 61 | ImageBlockRecogByAdaBoost.m 62 | 对当前窗口进行识别 63 | 64 | ThreshSegement.m 65 | 阈值分割 66 | 67 | LabelDetectWindow.m 68 | 给找到的图像进行加框 69 | 70 | 级联检测 71 | ImageBlockRecogByCascadeAdaBoost.m 72 | 级联检测 73 | 就写了一下,还没有整合进程序 74 | --------------------------------------------------------------------------------