{"id":26040649,"url":"https://github.com/chutrunganh/biometric_it4432e","last_synced_at":"2026-02-16T20:14:48.707Z","repository":{"id":270061516,"uuid":"873574037","full_name":"chutrunganh/Biometric_IT4432E","owner":"chutrunganh","description":"Developed for the Biometric Course (Semester 20241) at HUST, this project implements a 2D face recognition system powered by advanced deep learning techniques, delivering precise and reliable authentication","archived":false,"fork":false,"pushed_at":"2025-02-08T09:41:34.000Z","size":214538,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T03:34:52.494Z","etag":null,"topics":["biometric","biometrics-authentication","computer-vision","deeplearning","face-authentication","face-recognition","face-verification","facenet-model","hust","it4432e","machine-learning","opencv","project","pytorch","siamese-network"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chutrunganh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-16T11:54:17.000Z","updated_at":"2025-02-23T06:32:31.000Z","dependencies_parsed_at":"2024-12-28T05:34:48.760Z","dependency_job_id":null,"html_url":"https://github.com/chutrunganh/Biometric_IT4432E","commit_stats":null,"previous_names":["chutrunganh/biometric_it4432e"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chutrunganh%2FBiometric_IT4432E","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chutrunganh%2FBiometric_IT4432E/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chutrunganh%2FBiometric_IT4432E/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chutrunganh%2FBiometric_IT4432E/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chutrunganh","download_url":"https://codeload.github.com/chutrunganh/Biometric_IT4432E/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248142940,"owners_count":21054671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["biometric","biometrics-authentication","computer-vision","deeplearning","face-authentication","face-recognition","face-verification","facenet-model","hust","it4432e","machine-learning","opencv","project","pytorch","siamese-network"],"created_at":"2025-03-07T12:46:45.580Z","updated_at":"2026-02-16T20:14:48.660Z","avatar_url":"https://github.com/chutrunganh.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"assets/images/appIcon.png\" alt=\"Logo\" width=\"200\" height=\"200\"\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n[![Typing SVG](https://readme-typing-svg.herokuapp.com?font=Fira+Code\u0026weight=700\u0026size=30\u0026pause=1000\u0026color=36D253\u0026center=true\u0026width=440\u0026lines=VerifyMe)](https://git.io/typing-svg)\n\n\u003c/div\u003e\n\n\u003cdiv\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003cb\u003eA cutting-edge 2D face recognition system based on deep learning\u003c/b\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/chutrunganh/Biometric_IT4432E/blob/master/Slide_And_Report/Biometric_Report.pdf\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"#-usage-and-demo\"\u003eUsage\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/chutrunganh/Biometric_IT4432E/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/chutrunganh/Biometric_IT4432E/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003e\u003cb\u003eTable of Contents\u003c/b\u003e\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#-about-the-project\"\u003eAbout The Project\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-usage-and-demo\"\u003eUsage and Demo\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\n      \u003ca href=\"#-how-to-run-this-project\"\u003eHow to run this project\u003c/a\u003e\n      \u003cul\u003e\n        \u003cli\u003e\u003ca href=\"#option-1-quick-view-of-model-training\"\u003eOption 1: Quick View\u003c/a\u003e\u003c/li\u003e\n        \u003cli\u003e\u003ca href=\"#option-2-complete-project-setup\"\u003eOption2: Complete project  setup locally\u003c/a\u003e\u003c/li\u003e\n      \u003c/ul\u003e\n    \u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#️-code-structure-and-workflow\"\u003eCode structure and workflow\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#-contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n\n\u003cbr /\u003e\n\n\n\n\u003c!-- ABOUT THE PROJECT --\u003e\n# 📝 About The Project \n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"assets/images/AppDemoUI.png\" alt=\"Product Name Screen Shot\"\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\nDeveloped for the Biometric Course IT4432E (Semester 20241) at HUST, this project implements a 2D face recognition system using advanced algorithms for accurate verification. Specifically, we explore our topic by two approaches:\n\n1. Using a pre-trained Model (**FaceNet**) for features extraction, then use those features to train a **Support Vector Machine** model for classification\n\n2. Training a **Siamese network architecture**  + **L1 Distance layer** from scratch\n\nThese approaches combine the convenience and accuracy of pre-trained models with the educational value of \ntraining custom architectures from scratch. After training, we obtain models and use them to build applications with GUI using **PyQT6** and **Kivy** framework.\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n## 🛠️ Built With \n\nThe project is built with the following development tools, technologies:\n\n![Python](https://img.shields.io/badge/python-3670A0?style=for-the-badge\u0026logo=python\u0026logoColor=ffdd54)\n![Jupyter Notebook](https://img.shields.io/badge/jupyter-%23FA0F00.svg?style=for-the-badge\u0026logo=jupyter\u0026logoColor=white)\n![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge\u0026logo=git\u0026logoColor=white)\n![Visual Studio Code](https://img.shields.io/badge/Visual%20Studio%20Code-0078d7.svg?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white)\n![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge\u0026logo=linux\u0026logoColor=black)\n![Windows 11](https://img.shields.io/badge/Windows%2011-%230079d5.svg?style=for-the-badge\u0026logo=Windows%2011\u0026logoColor=white)\n![Qt](https://img.shields.io/badge/Qt-%23217346.svg?style=for-the-badge\u0026logo=Qt\u0026logoColor=white)\n\n\n![Matplotlib](https://img.shields.io/badge/Matplotlib-%23ffffff.svg?style=for-the-badge\u0026logo=Matplotlib\u0026logoColor=black)\n![NumPy](https://img.shields.io/badge/numpy-%23013243.svg?style=for-the-badge\u0026logo=numpy\u0026logoColor=white)\n![Pandas](https://img.shields.io/badge/pandas-%23150458.svg?style=for-the-badge\u0026logo=pandas\u0026logoColor=white)\n\n![OpenCV](https://img.shields.io/badge/opencv-%23white.svg?style=for-the-badge\u0026logo=opencv\u0026logoColor=white)\n![scikit-learn](https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=for-the-badge\u0026logo=scikit-learn\u0026logoColor=white)\n![Keras](https://img.shields.io/badge/Keras-%23D00000.svg?style=for-the-badge\u0026logo=Keras\u0026logoColor=white)\n![TensorFlow](https://img.shields.io/badge/TensorFlow-%23FF6F00.svg?style=for-the-badge\u0026logo=TensorFlow\u0026logoColor=white)\n![PyTorch](https://img.shields.io/badge/PyTorch-%23EE4C2C.svg?style=for-the-badge\u0026logo=PyTorch\u0026logoColor=white)\n\n\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- USAGE EXAMPLES --\u003e\n# 📖 Usage and Demo\n\n1. **Camare detection window**:\n\n\n![alt text](assets/images/CameraDetectionWindow.png)\n\nScan all available cameras and select the one you want to use for face recognition. \n\n2. **Enrollment tab**:\n\n![alt text](assets/images/EnrollmentWindow.png)\n\nEnter your name and take a series of photos to enroll in the system.\n\n3. **Verification tab**:\n\n![alt text](assets/images/LoginWindow.png)\n\nEnter your name and take a photo to verify your identity.\n\n*Due to the privacy, we do not show our team camera in the demo. You can download the application and try by yourself.*\n\n_For more detail usage and explaination, please refer to the [Documentation](https://github.com/chutrunganh/Biometric_IT4432E/blob/master/Slide_And_Report/Biometric_Report.pdf)_\n\n\n\u003e [!TIP]\n\u003e If you only want to see the application demo, download it and follow the installation instructions on the release page and you can stop reading here.\n\nFor those interested in our project's details, including structure, code, training process, evaluation, results, etc, you can join us in the following sections.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- GETTING STARTED --\u003e\n# 🚀 How to run this project\n\n## Option 1: Quick View of Model Training\nJust want to see the model training process? Check out our Kaggle notebooks:\n- [SVM Classifier Pipeline](https://www.kaggle.com/code/trunganhchu/svm-classifier)\n- [Siamese Network Pipeline](https://www.kaggle.com/code/trunganhchu/siamese)\n\n## Option 2: Complete Project Setup\nWant to explore the full project including data preprocessing, training, and application? Follow our instruction below.\n\n### Installation\n\n1. **Clone the repo**\n```bash\ngit clone https://github.com/chutrunganh/Biometric_IT4432E.git\n```\n\n2. **Install dependencies**\n\nNavigate to the project folder:\n\n```bash\ncd REPLACE_WITH_YOUR_PATH/Biometric_IT4432E\n```\n\n- With Linux\n\n```bash\n# Activate python virtual environment\npython3 -m venv venv\nsource venv/bin/activate\n\n# Install pip tool if you haven't already\nsudo pacman -Syu base-devel python-pip # With Arch-based\n# sudo apt update \u0026\u0026 sudo apt upgrade -y \u0026\u0026 sudo apt install build-essential python3-pip  # With Debian-based, use this command instead\npip install --upgrade pip setuptools wheel\n\n# Install all required dependencies \npip install -r requirements_for_Linux.txt\n```\n\n- With Windows\n\n```bash\npython -m venv venv\n.\\venv\\Scripts\\activate.bat # If execute in CMD\n# .\\venv\\Scripts\\activate.ps1 # If execute in PowerShell\n\n# Install pip tool if you haven't already\npython -m ensurepip --upgrade\npip install --upgrade pip setuptools wheel\n\n# Install all required dependencies \npip install -r requirements_for_Windosn.txt\n\n# Install ipykernel in your virtual environment\npip install ipykernel \npython -m ipykernel install --user --name=venv --display-name \"Python (venv)\" # Create a new kernel for Jupyter\n\n```\n\nChoose the kernel named `venv` when running Jupyter Notebook.\n\nIt may take about 15-30 minutes to download all dependencies, depending on your internet speed.\n\n\n\u003e [!IMPORTANT]  \n\u003e This project requires **Python 3.12.x**. Some other versions, such as 3.10.x, have been reported to have compatibility issues with dependencies.\n\n3. **Follow the code files**\n\n\nFollow the code files from 1 to 4 (you can choose to just follow Pipeline1 or Pipeline2) and read the instructions, run the code inside these files to generate and process data. Note that this is a pipeline, so do not skip any files; otherwise, errors will occur due to missing files.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n---\nLike this project? Give a star 🌟 to VerifyMe and make it even stronger! 💪\n\n---\n\n# 🏗️ Code Structure and Workflow\n\nHere are main components of the project with their respective functionalities:\n\n```plain text\nBiometric_IT4432E\n|\n|── Slide_And_Report \n|\n|── requirements_for_Linux/Windows.txt -\u003e contains all required dependencies to run on local\n|    \n|── data -\u003e contains images for training models\n|\n|── model_saved -\u003e store models after training\n|\n|── preprocessing_data -\u003e contains preprocessed data for Pipeline1\n|     |── faces.npz -\u003e contains compress faces data\n|     └── embeddings.npz -\u003e contains compress embeddings data\n|\n|── preprocessing_data(for_Siamese) -\u003e contains preprocessed data for Pipeline2\n|     └── faces.npz -\u003e contains compress faces data\n|\n|── application_data\n|     |──validation_images -\u003e contains images from enrollment process\n|     |   |──user1\n|     |   |──user2\n|     |   └──...\n|     |  \n|     └── settings.json -\u003e store deteced camera index\n|\n|── 1.DataCollection.ipynb -\u003e Collect data for training\n|\n|── 2.Pipeline1 DataPreprocessing.ipynb -\u003e Preprocess data,face detector (using MTCNN),extract feature (using FaceNet)\n|\n|── 2.Pipeline2 DataPreprocessing.ipynb -\u003e Preprocess data for Siamese Network\n|\n|── 3.Pipeline1 SVM_Classifier.ipynb -\u003e Train SVM model\n|\n|── 3.Pipeline2 Siamese_Network.ipynb -\u003e Train Siamese architecture network\n|\n|── 4.Pipeline1 Application_FaceNet_SVM_CLI.ipynb\n| \n|── 4.Pipeline1 Application_FaceNet_SVM_GUI.py\n|\n|── 4.Pipeline2 Application_Siamese_Network_CLI.ipynb \n|\n└── 4.Pipeline2 Application_Siamese_Network_GUI.py \n\n```\n\nAnd here is the workflow of the project:\n\n![Project Workflow](assets/images/ProjectWorkflow.png)\n\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTRIBUTING --\u003e\n# 🤝 Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\nIf you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag \"enhancement\".\nDon't forget to give the project a star! Thanks again!\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\nFor the success of this project, I want a special thanks to:\n\n- **Project supervisor**: Dr. Tran Nguyen Ngoc, Dr. Ngo Thanh Trung\n- **Team members**:\n\n  | Name | Student ID |\n  |:--|:--|\n  | Chu Trung Anh (team leader)| 20225564 |\n  | Bui Duy Anh | 20225563 |\n  | Pham Minh Tien | 20225555 |\n\n\n\u003c!-- LICENSE --\u003e\n# 📜 License\n\n[![License: Apache-2.0](https://img.shields.io/badge/License-%20Apache%202.0-red)](https://www.apache.org/licenses/LICENSE-2.0)\n\n\nDistributed under the Apache-2.0 License License. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\n\u003c!-- CONTACT --\u003e\n# 📧 Contact\n\nThis project is maintained by: Chu Trung Anh - [Email](mailto:chutrunganh04@gmail.com).\n\nFeel free to contact me if you have any question or suggestion.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchutrunganh%2Fbiometric_it4432e","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchutrunganh%2Fbiometric_it4432e","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchutrunganh%2Fbiometric_it4432e/lists"}