A face-recognition access control prototype using OpenCV and face-recognition that logs authorized entries, saves images of unknown faces, and sounds an alarm.

An academic project carried out by a team of students with technical assistance from Techno Enjaz to develop a prototype face-recognition access control system for a sensitive area, within an applied bank-vault scenario. The system relies on the laptop's built-in camera with no extra hardware, uses the OpenCV library to capture and process frames and the face-recognition library to extract facial features and compare them with photos of authorized people, all built in Python.
When an authorized person is recognized, their face is framed in green, their name is shown, and their entry time is logged automatically. A non-matching face is marked with a red frame and the word "Unknown", its image is saved to a dedicated folder, and an audible alarm is triggered through the playsound library. The project is an experimental academic prototype; its materials do not indicate deployment inside a real bank or any published accuracy measurements.
| Item | Details |
|---|---|
| Project type | Prototype access control system |
| Field | Computer vision, face recognition, physical security |
| Use context | Controlling entry to a sensitive area within a bank-vault scenario |
| Project status | Completed academic prototype, tested with images and a laptop camera |
| Techno Enjaz role | Technical support and assistance to the students during project development |
| Core technologies | Python, OpenCV, face-recognition (built on dlib), playsound, Anaconda, Jupyter Notebook |
| Outputs | Distinguishing authorized from unauthorized people, entry-time logging, saving images of unknown faces, instant audible alarm |
Many systems that secure sensitive areas, such as vaults and data storage rooms, rely on ID cards or passwords. These can be stolen, cloned, or shared, which may let an unauthorized person in without being detected. Electronic locks and surveillance cameras without analytical capabilities still depend on human monitoring: a guard may miss someone moving quickly or in a crowd, and such systems often cannot respond immediately when a breach occurs.
The project also observed that most research on AI in banking has focused on electronic threats, such as fraud and money laundering, without practical solutions for physical security that monitor people at the entrance to a sensitive area. Hence the idea of a system that automatically distinguishes authorized from unauthorized people, documents every entry attempt, and alerts immediately when an unknown face appears.
The project was carried out academically by the students, with technical assistance and support from Techno Enjaz during development. It is presented among the office's previous work as an academic experiment the office helped support, while the project itself remains the students' work.
This page does not attribute to Techno Enjaz the implementation of a security system inside a bank or its operation in a real banking facility.
The project's flowchart describes the following sequence:
face-recognition library and store them as reference templates.The system was designed to be simple and economical, relying on the laptop's built-in camera, which works directly through the operating system without extra connections. The laptop is placed where its camera can capture clear images of anyone approaching the restricted area, such as the vault door, with an angle chosen to cover the field of view in front of it and with attention to ambient lighting, since poor lighting degrades image quality and recognition accuracy.
| Component | Role in the system |
|---|---|
| Python | Language used to build the prototype and link processing, recognition, and alerting in one flow |
| OpenCV | Camera access, frame reading, and converting and downscaling frames before processing |
| face-recognition | Detecting faces, extracting their distinctive features, and comparing them with reference photos; built on the dlib library |
| playsound | Playing a sound file as an alarm when an unknown face is detected |
| Anaconda and Jupyter Notebook | Managing the programming environment and running code interactively |
The project defined functional requirements including: face recognition to distinguish permitted people from others, logging the entry time of permitted people, capturing images of unauthorized people, sending an instant alert, and the ability to add people to the list while the system is running.
It also set non-functional requirements as design targets: a response time of no more than 2–3 seconds, an error rate below 5%, secure database storage, support for several cameras at once, and role-based access restrictions. The project presents no measurements showing that these values were achieved, so they remain targets rather than results.
The project's conceptual schema includes four related tables:
| Table | Contents |
|---|---|
authorized_persons |
Data on people authorized to enter, such as their names and details |
entry_logs |
Every entry event, authorized or not, with its date and time |
unauthorized_persons |
Images of unauthorized people and details of their detection for investigation purposes |
alerts |
Audible alerts issued when an unauthorized person is detected |
The implementation chapter presents four illustrated tests showing the prototype's behavior:
| Test | What it shows |
|---|---|
| Authorized photos folder | Reference photos, each named after its owner, from which facial features are extracted |
| Recognizing an authorized person | A green frame around the face with the name above it, and the entry time logged |
| Unauthorized folder | Images of unknown faces saved automatically under the name "unknown" |
| Detecting an unauthorized person | A red frame labelled "Unknown" and an instant audible alarm |
These tests show that the functional pipeline works within the presented scenario. However, the project includes no documented test measurements, such as correct-recognition rate, false-acceptance rate, actual response time, or number of people tested, so no performance figures are presented on this page.
According to the project, the system could be developed through:
The project demonstrates hands-on experience in linking the camera with image processing, face recognition, event logging, and audible alerting within a single prototype, alongside Techno Enjaz's experience in helping students develop applied technical projects and connecting theory to a testable model.
To understand how recognizing a person's identity differs from reading their facial expression, see our article How Does AI Recognize Facial Expressions? FER, FACS, and CNN Explained.
The system stores images of people's faces, including unauthorized people, which are sensitive biometric data. Any real deployment therefore needs a clear policy for informing people, defining access rights to the images and logs, setting how long they are kept, and protecting them with encryption.
If you are working on a similar technical project and need to discuss requirements or benefit from Techno Enjaz's experience in applied projects, you can contact the office to explore the appropriate scope of assistance for the project.
If you are working on a face-recognition security system and need technical help developing the idea or building a prototype, you can contact the Techno Enjaz office to discuss your project's requirements and the appropriate scope of support.
It is an academic prototype built by a team of students with technical assistance from Techno Enjaz to control entry to a sensitive area within a bank-vault scenario. It relies on the laptop's built-in camera and automatically distinguishes authorized from unauthorized people by comparing their faces with reference photos.
When the system finds no match against the reference photos, it frames the face in red with the label Unknown, saves its image automatically to the unauthorized folder, and triggers an audible alarm through the playsound library. When an authorized person is recognized, their name appears above a green frame and their entry time is logged.
The prototype was built in Python within Anaconda and Jupyter Notebook. OpenCV handles camera access, frame reading, and downscaling; the dlib-based face-recognition library detects faces, extracts their features, and compares them with reference photos; and playsound triggers the audible alert.
No. The bank vault is an applied scenario chosen to study face recognition for controlling access to sensitive areas, and the materials do not indicate deployment in a bank. The project presents illustrated tests showing the functional pipeline works, while figures such as a 2–3 second response and an error rate below 5% are design targets with no published measurements confirming them.
The prototype runs on a single laptop camera, recognition quality is affected by lighting and camera angle, and it includes no documented spoofing detection. Proposed developments include multi-camera support, phone and email notifications, database encryption, behavior analysis and motion detection, and combining voice recognition with face recognition.
Reach out to Techno Enjaz engineering team to discuss technical feasibility, prototype hardware, and development scope.