
Mit dem System können Benutzer ihr Bild in die Datenbank hochladen, die dann verwendet wird, um ihr Gesicht während der Anwesenheitsüberprüfungen zu erkennen. Die anerkannten Gesichter werden mit der Datenbank übereinstimmen, und die Teilnahme wird in Echtzeit aktualisiert. Das System enthält außerdem eine sichere Anmeldungsfunktion für Lehrer, um die Anwesenheitsakten anzuzeigen.
Dieses Projekt ist ein hervorragendes Beispiel dafür, wie Computer Vision und maschinelles Lernen zur Automatisierung herkömmlicher Prozesse verwendet werden können, wodurch sie effizienter und genauer werden.
In traditionellen Anwesenheitssystemen ist der Prozess der Besucherzahl häufig manuell, zeitaufwändig und fehlerhaft. Mit dem Aufkommen des maschinellen Lernens und des Computervisions haben wir jetzt die Tools, um diesen Prozess zu automatisieren und ihn effizienter und genauer zu gestalten.
Unser System zur Besuchergesichtspunkte ist so konzipiert, dass sie diese Technologien nutzen, um eine nahtlose und automatisierte Anwesenheitsverfolgungslösung zu bieten. Das System verwendet die Gesichtserkennungstechnologie, um Einzelpersonen zu identifizieren und ihre Teilnahme zu markieren. Dieser Vorgang beseitigt den manuellen Eintritt und verringert die Wahrscheinlichkeit von Fehlern oder betrügerischen Einträgen.
Das System wird mit Python, Kolben, OpenCV und Firebase gebaut. Python und Flask bieten die Backend -Funktionalität, OpenCV wird zur Erkennung und Erkennung von Gesicht verwendet, und Firebase wird als Datenbank zum Speichern von Benutzerinformationen und Anwesenheitsdatensätzen verwendet.
Das System enthält auch eine sichere Anmeldungsfunktion für Lehrer, mit der sie die Anwesenheitsdatensätze anzeigen können. Diese Funktion stellt sicher, dass nur autorisierte Personen Zugriff auf die Anwesenheitsdaten haben.
Egal, ob Sie eine Universität sind, die Ihren Anwesenheitsverfolgungsverfolgungsprozess rationalisieren möchte, oder ein Unternehmen, das Ihr Mitarbeiter-Check-in-System automatisieren möchte, unser Besuchersystem mit Gesichtserkennungsanerkennung bietet eine robuste und effiziente Lösung.
Bitte klicken Sie auf das Bild unten für das Projektvideo

Das Besuchersystem der Gesichtserkennung verfügt über eine Vielzahl von Funktionen, mit denen die Anwesenheitsverfolgung so nahtlos und effizient wie möglich gestaltet werden soll:
Gesichtserkennung : Das System verwendet fortschrittliche Gesichtserkennungstechnologie, um Einzelpersonen zu identifizieren und ihre Teilnahme zu markieren. Dadurch wird die Bedürfnisse des manuellen Eintritts beseitigt und gewährleistet die Genauigkeit der Anwesenheit.
Anwesenheit in Echtzeit : Das System verfolgt die Teilnahme in Echtzeit. Sobald eine Person vom System erkannt wird, wird ihre Teilnahme in der Datenbank markiert und aktualisiert.
Sichere Lehreranmeldung : Das System enthält eine sichere Anmeldungsfunktion für Lehrer. Auf diese Weise können Lehrer die Anwesenheitsakten anzeigen und stellt sicher, dass nur autorisierte Personen Zugriff auf diese Daten haben.
Support für Multi-Klasse : Das System unterstützt mehrere Klassen. Die Schüler können in mehreren Klassen eingeschrieben werden, und ihre Teilnahme wird für jede Klasse separat verfolgt.
Datenbankintegration : Das System ist in Firebase, einer Cloud-basierten NoSQL-Datenbank, integriert. Dies ermöglicht effizientes Speicher und Abrufen von Benutzerinformationen und Anwesenheitsdatensätzen.
Webcam -Unterstützung : Das System unterstützt die Webcam -Eingabe für die Gesichtserkennung. Dies erleichtert die Einrichtung und Verwendung in verschiedenen Einstellungen.
Benutzerfreundliche Schnittstelle : Das System verfügt über eine benutzerfreundliche Oberfläche, sodass Benutzer das System navigieren und verwenden können.
Open Source : Das System ist Open Source. Entwickler können einen Beitrag leisten und dazu beitragen, das System zu verbessern.





Befolgen Sie die folgenden Schritte, um das Anwesenheitssystem für das Besucher des Gesichtserkennung auf Ihre lokale Maschine in Betrieb zu nehmen:
Klonen Sie das Repository : Klonen Sie zunächst das Repository in Ihre lokale Maschine. Sie können dies tun, indem Sie den folgenden Befehl in Ihrem Terminal ausführen:
git clone https://github.com/turhancan97/Intelligent-Face-Recognition-Attendance-System.git
Erstellen Sie eine virtuelle Umgebung und aktivieren Sie sie. Sie können dies tun, indem Sie die folgenden Befehle in Ihrem Terminal ausführen:
Python -Umgebung
python3.8 -m venv your_env_name
source your_env_name/bin/activate
oder
Conda -Umgebung
conda create -n your_env_name python=3.8
conda activate your_env_name
Dadurch wird eine virtuelle Umgebung geschaffen und aktiviert. Alle Abhängigkeiten werden in dieser virtuellen Umgebung installiert.
Abhängigkeiten installieren : Navigieren Sie in das geklonte Projektverzeichnis und installieren Sie die erforderlichen Abhängigkeiten durch Ausführen:
pip install -r requirements.txt
In diesem Befehl werden alle erforderlichen Bibliotheken und Pakete installiert, die in der Datei requirements.txt aufgeführt sind.
Bitte beachten Sie, dass Sie die Formprädiktor -Datei 'Shape_Predictor_68_face_landmarks.dat' von der DLIB -Website herunterladen müssen. Sie können die Datei hier herunterladen. Sie können die Datei in den Erkennungsordner einfügen und müssen den vollständigen Pfad der Datei in der Datei face_matching.py für die Datendatei -Variable wie unten schreiben.

Einrichten von Firebase : Das System verwendet Firebase für Datenbankvorgänge. Sie müssen ein Firebase -Projekt einrichten und die Firebase -Konfiguration im Projekt durch Ihre eigenen ersetzen. Sie können den FireBase Setup -Handbuch für Anweisungen befolgen.



Führen Sie die Anwendung aus : Führen Sie zuerst den Befehl unten aus und geben Sie ein Passwort für die Anmeldung von Lehrern ein.
python generate_password_hash.py
Kopieren Sie dann die Datei configs/database.yaml in den Abschnitt "ENTER-Your-Teacher-Login-Hash".
Sobald das gesamte Setup abgeschlossen ist, können Sie die Anwendung ausführen, indem Sie den folgenden Befehl im Terminal ausführen:
python app.py
Dadurch wird der Flask -Server gestartet und die Anwendung ist unter http://127.0.0.1:5000/ zugegriffen.
Bitte beachten Sie, dass Sie eine Webcam benötigen, die an Ihre Maschine angeschlossen ist, damit die Funktion zur Gesichtserkennung funktioniert. Wenn Sie einen Laptop verwenden, funktioniert die integrierte Webcam einwandfrei.
Sobald Sie das Besuchersystem für das Gesichtserkennungsanzug ausgeführt haben, können Sie es verwenden, indem Sie diese Schritte befolgen:
Startseite : Öffnen Sie Ihren Webbrowser und navigieren Sie zu http://127.0.0.1:5000/ . Dies führt Sie zur Startseite der Anwendung.
Laden Sie ein neues Gesicht hoch : Klicken Sie auf die Schaltfläche "Ein neues Gesicht als Bild hochladen", um ein neues Schüler zum System hinzuzufügen. Auf diese Weise können Sie ein Bild des Gesichts des Schülers hochladen. Das Bild sollte klar sein und das Gesicht des Schülers sollte sichtbar sein. Außerdem können Sie das Bild von der Kamera aufnehmen, indem Sie auf die Schaltfläche "Ein neues Gesicht von der Kamera erfassen" klicken.
Fügen Sie Schülerinformationen hinzu : Nach dem Hochladen des Bildes werden Sie zu einer Seite umgeleitet, auf der Sie die Informationen des Schülers eingeben können. Dies schließt den Namen des Schülers, den E -Mail, den Benutzertyp (Schüler oder Lehrer), den Klassen, an dem sie eingeschrieben sind, und ein Passwort ein. Sobald Sie alle Informationen eingegeben haben, klicken Sie auf die Schaltfläche "Senden".
Gesichtserkennung : Zurück auf der Startseite können Sie auf die Schaltfläche "Gesicht erkennen" klicken. Dadurch wird der Gesichtserkennungsprozess gestartet. Das System wird versuchen, das Gesicht vor der Webcam mit den Gesichtern in der Datenbank abzustimmen.
Klassenauswahl : Wenn eine Übereinstimmung gefunden wird, werden Sie zu einer Seite umgeleitet, auf der Sie die Klasse auswählen können. Die Teilnahme an der ausgewählten Klasse wird in der Datenbank aktualisiert.
Lehreranmeldung : Wenn Sie Lehrer sind, können Sie die Besucherzahl anzeigen, indem Sie auf die Schaltfläche "Lehreranmeldung" auf der Homepage klicken. Sie werden gebeten, ein Passwort einzugeben. Sobald das richtige Passwort eingegeben wurde, werden Sie auf die Anwesenheitsseite umgeleitet, auf der Sie die Liste der Schüler und deren Besucherzahlen sehen können.
Denken Sie daran, dass für die Faceerkennungsfunktion eine Webcam erforderlich ist. Wenn Sie einen Laptop verwenden, funktioniert die integrierte Webcam einwandfrei. Wenn Sie einen Desktop verwenden, müssen Sie eine Webcam mit Ihrem Computer verbinden.
Das System der Gesichtserkennungsanwendung basiert auf mehreren Python -Bibliotheken, um korrekt zu funktionieren. Hier ist eine Liste der Hauptabhängigkeiten:
Flask : Ein leichtes Webanwendungs -Framework. Es wird verwendet, um die Webserverseite der Anwendung zu verarbeiten.
OpenCV : Eine Bibliothek mit Programmierfunktionen, die hauptsächlich auf eine Computer Vision in Echtzeit gerichtet sind. Es wird verwendet, um Bilder aus der Webcam zu erfassen und die Gesichtserkennung durchzuführen.
Firebase Admin : Eine Bibliothek für die Interaktion mit Firebase Services. Es wird verwendet, um mit der Firebase Echtzeitdatenbank und der Firebase -Speicher zu interagieren.
Werkzug : Eine umfassende WSGI -Webanwendungsbibliothek. Es wird verwendet, um Dateien -Uploads in Flask zu verarbeiten.
Kissen : Eine Python -Bildgebungsbibliothek fügt Ihrem Python -Interpreter Bildverarbeitungsfunktionen hinzu.
Numpy : Eine Bibliothek für die Python-Programmiersprache, die Unterstützung für große, mehrdimensionale Arrays und Matrizen sowie eine große Sammlung von mathematischen Funktionen auf hoher Ebene für diese Arrays ergänzt.
Um diese Abhängigkeiten zu installieren, können Sie PIP, einen Paketmanager für Python, verwenden. Führen Sie einfach den folgenden Befehl in Ihrem Terminal aus:
pip install -r requirements.txt Dadurch werden alle erforderlichen Pakete installiert. Stellen Sie sicher, dass Sie im richtigen Verzeichnis sind, wenn Sie diesen Befehl ausführen (das Verzeichnis sollte die requirements.txt -Datei enthalten).
Beiträge zum Besuchersystem der Gesichtserkennung sind sehr willkommen! Wenn Sie über eine Feature -Anfrage, einen Fehlerbericht oder einen Vorschlag für das Code -Refactoring verfügen, können Sie bitte ein Problem eröffnen oder eine Pull -Anfrage erstellen.
Hier sind einige Möglichkeiten, wie Sie einen Beitrag leisten können:
Verbesserung der UI/UX : Die aktuelle Schnittstelle ist sehr einfach. Wenn Sie Erfahrung mit Front-End-Entwicklung haben und einige Ideen zur Verbesserung der Benutzeroberfläche oder der Benutzererfahrung haben, werden Ihre Beiträge sehr geschätzt.
Hinzufügen neuer Funktionen : Wenn Sie eine Idee für eine neue Funktion haben, die gut zu diesem Projekt passt, können Sie diese gerne ein Problem eröffnen. Wenn Sie es selbst implementieren möchten, noch besser! Öffnen Sie eine Pull -Anfrage mit Ihren Änderungen und wir werden sie überprüfen.
Meldung von Fehler : Wenn Sie bei der Verwendung des Systems Fehler aufnehmen, melden Sie sie bitte, indem Sie ein Problem eröffnen. Fügen Sie so viele Informationen wie möglich über den Fehler und die Umstände ein, unter denen er aufgetreten ist.
Refactoring -Code : Wie bei jedem Softwareprojekt gibt es immer Raum für Verbesserungen in der Codebasis. Wenn Sie eine Gelegenheit sehen, einen Code umzuarbeiten, um ihn sauberer, effizienter oder robuster zu gestalten, überprüfen wir gerne Ihren Vorschlag.
Überprüfen Sie vor dem Beitrag die vorhandenen Probleme und ziehen Sie Anfragen an, um Duplikationsbemühungen zu vermeiden. Wenn Sie eine Pull -Anfrage öffnen, sollten Sie auch eine klare und detaillierte Beschreibung der von Ihnen vorgenommenen Änderungen enthalten.
Vielen Dank für Ihr Interesse daran, zum Besuchersystem der Gesichtserkennung beizutragen!
Es gibt mehrere Bereiche, in denen das System in Zukunft verbessert oder erweitert werden kann:
Zuweisung der Schüler -ID : Derzeit wird die Schüler -ID als eine mehr als die Gesamtzahl der Bilder in der Datenbank zugewiesen. In Zukunft planen wir, diesen Prozess zu optimieren, indem wir fehlende Studenten -IDs zuweisen (z. B. wenn die IDs 1,2,3,4, [], 6,7,8 sind, die ID des neuen Bildes ist 5).
Verbesserungen der Benutzeroberfläche : Wir wollen die ästhetische Attraktivität der Schnittstelle verbessern, um eine ansprechendere Benutzererfahrung zu bieten.
Datenbankbild -Addition : Ab sofort wird der Datenbank ein Bild hinzugefügt, sobald es erfasst wird. Wir planen, diesen Vorgang so zu ändern, dass ein Bild nur nach der Eingabe der entsprechenden Informationen zur Datenbank hinzugefügt wird.
Datenbankoptimierung : Wir wollen Datenbankvorgänge optimieren, um den Prozess zu beschleunigen, indem wir sie nur einmal aufrufen.
Sicherheitsverbesserungen : Wir planen, sicherere Methoden für die Datenbearbeitung und die Benutzerauthentifizierung zu implementieren.
Studentenmeldung : In Zukunft planen wir, dass sich die Schüler mit ihren Passwörtern beim System anmelden.
Lehrerdatenbank : Wir wollen eine separate Datenbank für Lehrer erstellen. Wenn die Schaltfläche "Lehreranmeldung" gedrückt wird, wird ein Benutzername und ein Passwort angefordert.
Lehreransicht : Sobald sich angemeldet hat, können Lehrer die Besucherzahl der Schüler anhand der Klassen, die sie unterrichten, anzeigen.
Bereitstellung : Derzeit ist das System so konzipiert, dass sie lokal ausgeführt werden. In Zukunft planen wir, das System auf einer Plattform wie Heroku einzusetzen, was es von überall und nicht nur auf der lokalen Maschine zugänglich machen würde.
Verbesserte Fehlerbehandlung und Benutzerfeedback : Während das System derzeit Fehler behandelt und dem Benutzer Feedback bietet, können diese Aspekte verbessert werden, um das System robuster und benutzerfreundlicher zu gestalten.
Echtzeit-Updates : Im Moment werden die Anwesenheitsdaten aktualisiert, wenn sich der Schüler anmeldet. In Zukunft können wir Echtzeit-Updates implementieren, damit die Anwesenheitsdaten sofort aktualisiert werden, sobald das Gesicht eines Schülers erkannt wird.
Integration mit anderen Systemen : Das System kann in andere Systeme integriert werden, die in Bildungseinrichtungen verwendet werden, wie z. B. Lernmanagementsysteme oder Studentinformationssysteme. Dies würde sowohl für Schüler als auch für Lehrer eine nahtlosere Erfahrung ermöglichen.
Zusätzliche Funktionen : Es gibt viele zusätzliche Funktionen, die dem System hinzugefügt werden könnten, z. B. Unterstützung mehrerer Kameras, Erkennung mehrerer Gesichter gleichzeitig oder der Fähigkeit, unterschiedliche Beleuchtungsbedingungen zu verarbeiten.
Dies sind nur einige Ideen für zukünftige Verbesserungen. Wir sind immer offen für neue Ideen und Vorschläge, also können wir einen Beitrag leisten!
Dieses Projekt ist unter der MIT -Lizenz lizenziert. Dies bedeutet, dass Sie das Projekt im Rahmen der Bedingungen dieser Lizenz nutzen, ändern und verteilen können. Weitere Informationen finden Sie in der Lizenzdatei.
Bitte beachten Sie, dass dieses Projekt ohne Garantie "wie" wie "ist" bereitgestellt wird. Die Autoren sind nicht für Schäden oder Probleme verantwortlich, die sich aus der Verwendung des Projekts ergeben können. Überprüfen Sie den Code immer selbst, bevor Sie ihn in einer Produktionsumgebung verwenden.
Hier ist eine hochrangige Ansicht der Systemkomponenten und ihrer Interaktionen:

1. Gesichtserkennungssystem: Dies ist der Kern Ihres Projekts. Es fängt Bilder oder Videorahmen auf, erfasst Gesichter, extrahiert Merkmale und stimmt mit Gesichtern zusammen. Dieses System wird mit Python und OpenCV entwickelt.
2. Benutzeroberfläche: Dies ist der Teil des Systems, mit dem Benutzer (Schüler und Ausbilder) interagieren. Es werden Informationen aus der Firebase -Datenbank angezeigt und Benutzereingaben an die Datenbank gesendet. Die Schnittstelle wird als Webanwendung mit HTML, CSS und JavaScript entwickelt.
3.. Firebase -Datenbank: Hier werden alle erforderlichen Daten gespeichert. Die Datenbank speichert Schülerinformationen, Anwesenheitsdatensätze und alle anderen erforderlichen Daten. Das Gesichtserkennungssystem und die Benutzeroberfläche interagieren beide mit der Datenbank, um Daten zu speichern und abzurufen.
Interaktionen:
Das Gesichtserkennungssystem erfasst Bilder oder Videorahmen aus der Kamera des Benutzers, erfasst Gesichter, extrahiert Features und stimmt mit Gesichtern überein. Wenn ein Gesicht übereinstimmt, sendet das System die ID des Schülers und das aktuelle Datum und die aktuelle Uhrzeit an die Firebase -Datenbank, um die Teilnahme aufzuzeichnen.
Die Benutzeroberfläche zeigt die Anwesenheitsdatensätze aus der Firebase -Datenbank an. Wenn sich ein Schüler- oder Ausbilder anmeldet, sendet die Schnittstelle ihre ID an die Firebase -Datenbank, um ihre Anwesenheitsdatensätze abzurufen. Die Schnittstelle bietet auch Optionen für Schüler, sich für Klassen und Ausbilder zu registrieren und Klassen zu erstellen. Diese Aktionen werden auch Daten an die Firebase -Datenbank senden.
Die Firebase -Datenbank speichert alle Daten für das System. Wenn es Daten aus dem Gesichtserkennungssystem oder der Benutzeroberfläche empfängt, wird die entsprechenden Datensätze aktualisiert. Wenn es eine Datenanforderung von der Benutzeroberfläche empfängt, werden die angeforderten Datensätze abgerufen und an die Schnittstelle gesendet.
Dies ist eine vereinfachte Ansicht der Systemarchitektur und der Interaktionen zwischen den Komponenten. Abhängig von den spezifischen Anforderungen Ihres Projekts müssen Sie möglicherweise weitere Komponenten oder Interaktionen hinzufügen. Beispielsweise müssen Sie möglicherweise eine Komponente zur Behandlung der Benutzerauthentifizierung hinzufügen, wenn Sie sicherstellen möchten, dass nur registrierte Schüler und Ausbilder auf das System zugreifen können.docs/images/database_design.png
Lassen Sie uns nun das Datenbankschema für Firebase entwerfen und zeichnen. Dies beinhaltet das Definieren der Daten, die gespeichert werden (z. B. Schülerinformationen, Anwesenheitsdatensätze usw.) und wie diese Daten strukturiert und verwandt werden.

Benutzersammlung: Diese Sammlung speichert Informationen über alle Benutzer, einschließlich Schüler und Ausbilder. Jeder Benutzer verfügt über eine eindeutige ID, und die für jeden Benutzer gespeicherten Daten können enthalten sein:
userID : Eine eindeutige Kennung für den Benutzer.name : Der vollständige Name des Benutzers.email : Die E -Mail -Adresse des Benutzers.embeddings : Benutzergesichts EinbettungenuserType : Der Art des Benutzers (Schüler oder Ausbilder).password : Das Passwort des Benutzers (sicher gespeichert).classes : Liste der Programme, in denen der Benutzer eingeschrieben ist (für Schüler) und die Anzahl der Anwesenheit dieses SchülersDies ist eine vereinfachte Ansicht der Struktur unserer Datenbank. Wir haben auch die Bilder des Schülers im Feuerbasisspeicher gespeichert. Die Bilder werden in einem Ordner namens Static/Bilder gespeichert und der Name der Bilder ist die ID des Schülers.
Dies ist ein entscheidender Bestandteil Ihres Projekts und umfasst mehrere Schritte:

Forschungserkennungsalgorithmen:
Implementieren Sie das Gesichtserkennungssystem:
Integrieren Sie das Gesichtserkennungssystem in die Firebase -Datenbank: