这是我试图建立教室或办公室出勤的面部识别系统的尝试。该系统基于一种特殊类型的CNN体系结构,称为暹罗网络。鉴于将A的面部图像适当地对齐和裁剪,因此对这样的网络进行了训练,以生成非常准确且几乎独特的128矢量。
然后,训练了另一个密集的神经网络,以输入这些嵌入。第二个神经网络仅用于分类。然后,由系统识别的人,他/她在系统中的出席人数增加了1。
关闭系统时,会产生由所有学生出席的Excel文件。
取自深度学习。
您可以观看这些视频。安德鲁·恩(Andrew Ng)教授对这些网络提供了很好的解释。
我已经从Nyoki-Mtl Githubu下载了验证的面部模型
该网络在一个非常大的数据集上估计,并且为特定面孔提供了独特的128维矢量,鉴于馈送给它的图像仅裁剪到面部区域并被染色。此NetOwrk的图像的输入大小为160x160x3
通过使用OpenCV的Haar级联,可以实现面部检测。面部检测Haarcascade用于检测面部,该检测到的区域被喂给嵌入发生器。
第二个神经网络具有密集的体系结构,用于分类。第二个神经网络输入了128维矢量,并将面部概率成为学生之一。第二个神经网络的体系结构是
使用的数据库是mongodb。 Pymongo用于添加,删除记录并增加特定学生的出勤率。 
关闭应用程序后,生成Excel文件。此Excel文件包含所有学生的出席。
根据您的操作系统启动CMD终端。
如果您有NVIDIA GPU,请确保您有Tensorflow GPU安装的先决条件(请参阅官方网站)。然后使用此commmand
PIP安装-R Euncess_gpu.txt
如果您没有GPU,请使用此命令
pip install -r requirements_cpu.txt
1)安装所有要求
2)制作一个名为“人”的文件夹,没有报价
3)现在运行生成_training_data.py,当运行此操作时,输入人的名称,然后是从零开始的索引,如果我想为“ ravi”生成数据,我将写“ ravi0”,然后为下一个名称写入“ secondname1”,只要确保给每个人的索引越来越多。现在将所有这些文件夹放入People文件夹中
4)现在在Trainer中。Py根据文件夹数量更改类数,然后运行Trainer.py
5)该模型将进行训练。
6)现在使用MongoDB创建数据库。输入所有名字,出席。这可以通过
a)创建一个名为“新”的数据库
b)创建一个名为“ PA”的集合
c)添加肠道。对于例如db.pa.insert({“ name”:“ satinder”,“出勤”:0})

7)现在打开识别器。py并根据您的数据更改字典“ A”和人员。数组“ a”的关键是人的索引,数据是一个指示变量,用于指示在特定会话中,如果参加了该会议。
8)字典“人”是自我解释的。
9)识别识别人。他们的出勤率将在MongoDB数据库中注册。


如果您喜欢它,您肯定也喜欢我的其他存储库。您还可以查看我的YouTube频道“反应堆科学”。如果您有任何疑问,可以在我的Facebook页面“反应堆科学”上与我联系
1)Francois Chollet的Python深入学习
2)Keras.io
3)coursera的深度学习(Andrew Ng教授)
4)斯坦福大学的CS231N
5)Pyimagesearch.com(Adrian Rosenberg)
6)Brandon Amos(github:https://github.com/bamos)