前置条件环境准备如下所示:Pycharm python3.6 sklearn face_recognition dlib

Step1:KNN算法简介

K最近邻(k-Nearest Neighbor,KNN)分类算法的核心思想是如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。KNN算法可用于多分类,KNN算法不仅可以用于分类,还可以用于回归。通过找出一个样本的k个最近邻居,将这些邻居的属性的平均值赋给该样本,作为预测值。

KNeighborsClassifier在scikit-learn在sklearn.neighbors包之中。

KNeighborsClassifier使用很简单,三步:

1)创建KNeighborsClassifier对象

2)调用fit函数

3)调用predict函数进行预测。

Step2:看看项目的目录结构如下

人脸识别评分流程(recognition人脸识别之考勤统计)(1)

Step3:看看训练数据

人脸识别评分流程(recognition人脸识别之考勤统计)(2)

Step4:看看测试数据

人脸识别评分流程(recognition人脸识别之考勤统计)(3)

Step5:看看模型计算出来的考勤数据

人脸识别评分流程(recognition人脸识别之考勤统计)(4)

打开后如下图所示:

人脸识别评分流程(recognition人脸识别之考勤统计)(5)

Step6:两个核心的py文件解析

KNN_Recognition_easy.py 通过模型去统计考勤的py文件。

KNN_Train_easy.py 通过训练数据生成模型的py文件。代码如下:

人脸识别评分流程(recognition人脸识别之考勤统计)(6)

程序入口:

人脸识别评分流程(recognition人脸识别之考勤统计)(7)

调用main()

人脸识别评分流程(recognition人脸识别之考勤统计)(8)

往下依次调用有:

predict()

getvalueToKey()

strTotime()

prase_filename_date()

writeExcel()

人脸识别评分流程(recognition人脸识别之考勤统计)(9)

人脸识别评分流程(recognition人脸识别之考勤统计)(10)

人脸识别评分流程(recognition人脸识别之考勤统计)(11)

人脸识别评分流程(recognition人脸识别之考勤统计)(12)

人脸识别评分流程(recognition人脸识别之考勤统计)(13)

,