Guiding Organization: Industrial Development Bureau, Ministry of Economic Affairs
Executing Organization: Institute for Information Industry
OverviewThis project demonstrates an AI-enabled electronic peephole that integrates facial recognition capabilities. The device, developed using the HUB8735 chipset by Realtek, enables secure and convenient monitoring of people at the door. The setup is user-friendly, requiring no pre-training and offering direct recognition of familiar faces. It sends alerts for unfamiliar faces, ensuring enhanced home security.
Face Recognition
- The device activates facial recognition to identify known individuals. Using HUB8735, it registers new faces upon command and automatically displays detected faces on a TFT LCD.
- Unknown faces trigger a notification via Line Notify, enabling remote monitoring.
- Face Recognition
The device activates facial recognition to identify known individuals. Using HUB8735, it registers new faces upon command and automatically displays detected faces on a TFT LCD.
Unknown faces trigger a notification via Line Notify, enabling remote monitoring.
System Setup and Commands
- Facial recognition requires specific Arduino library files (NNFaceDetectionRecognition.h).
- Commands include REG for registration, EXIT to exit registration mode, RESET to clear all records, BACKUP to store registered faces, and RESTORE to reload backup records.
- System Setup and Commands
Facial recognition requires specific Arduino library files (NNFaceDetectionRecognition.h).
Commands include REG for registration, EXIT to exit registration mode, RESET to clear all records, BACKUP to store registered faces, and RESTORE to reload backup records.
TFT LCD Display
- The display shows images using an ili9341 TFT LCD chip, eliminating traditional peephole limitations.
- When a face is detected, the screen lights up for 9 seconds. The display and image data can also be stored on an SD card.
- TFT LCD Display
The display shows images using an ili9341 TFT LCD chip, eliminating traditional peephole limitations.
When a face is detected, the screen lights up for 9 seconds. The display and image data can also be stored on an SD card.
Image Processing
- The image data is processed using the TJpg_Decoder library to display images on the TFT LCD. Configuration adjustments are made in User_Config.h.
- Image Processing
The image data is processed using the TJpg_Decoder library to display images on the TFT LCD. Configuration adjustments are made in User_Config.h.
Line Notify Alerts
- For unrecognized faces, a notification is sent through Line Notify. Users create a token on the Line Notify website and input it into the Arduino code for alert functionality.
- Line Notify Alerts
For unrecognized faces, a notification is sent through Line Notify. Users create a token on the Line Notify website and input it into the Arduino code for alert functionality.
The configuration process involves setting up the TFT LCD to communicate with the HUB8735 development board. The following setup steps outline the procedure:
Library Installation: The ili9341 driver requires the TJpg_Decoder library to decode and display JPEG images on the screen. This library ensures efficient handling of raw image data from the HUB8735’s camera module.
- The library is installed via the Arduino IDE, and necessary files are included in the code to enable image decoding functions.
- Configuring the library involves modifying User_Config.h in the TJpg_Decoder source, commenting out the line #define TJPGD_LOAD_SD_LIBRARY to optimize performance for this specific setup.
- Library Installation: The ili9341 driver requires the TJpg_Decoder library to decode and display JPEG images on the screen. This library ensures efficient handling of raw image data from the HUB8735’s camera module. The library is installed via the Arduino IDE, and necessary files are included in the code to enable image decoding functions. Configuring the library involves modifying User_Config.h in the TJpg_Decoder source, commenting out the line #define TJPGD_LOAD_SD_LIBRARY to optimize performance for this specific setup.
- The library is installed via the Arduino IDE, and necessary files are included in the code to enable image decoding functions.
Configuring the library involves modifying User_Config.h in the TJpg_Decoder source, commenting out the line #define TJPGD_LOAD_SD_LIBRARY to optimize performance for this specific setup.
Library Installation: The ili9341 driver requires the TJpg_Decoder library to decode and display JPEG images on the screen. This library ensures efficient handling of raw image data from the HUB8735’s camera module. The library is installed via the Arduino IDE, and necessary files are included in the code to enable image decoding functions. Configuring the library involves modifying User_Config.h in the TJpg_Decoder source, commenting out the line #define TJPGD_LOAD_SD_LIBRARY to optimize performance for this specific setup.
Display Calibration: To ensure that the video feed aligns correctly with the display, users adjust the resolution and scale settings in the setup section of the Arduino code. The function TJpgDec.setJpgScale(2) is used to scale the image down for faster display without compromising quality.
- Display Calibration: To ensure that the video feed aligns correctly with the display, users adjust the resolution and scale settings in the setup section of the Arduino code. The function TJpgDec.setJpgScale(2) is used to scale the image down for faster display without compromising quality.
- Display Calibration: To ensure that the video feed aligns correctly with the display, users adjust the resolution and scale settings in the setup section of the Arduino code. The function TJpgDec.setJpgScale(2) is used to scale the image down for faster display without compromising quality.
Automatic Activation Feature: The display’s backlight is programmed to activate when a face is detected, using the AutoClosePin to control the screen’s power status. Once activated, the screen remains on for a preset duration (e.g., nine seconds) to give the user sufficient time to view the visitor. Afterward, the backlight powers off to save energy.
- Automatic Activation Feature: The display’s backlight is programmed to activate when a face is detected, using the AutoClosePin to control the screen’s power status. Once activated, the screen remains on for a preset duration (e.g., nine seconds) to give the user sufficient time to view the visitor. Afterward, the backlight powers off to save energy.
- Automatic Activation Feature: The display’s backlight is programmed to activate when a face is detected, using the AutoClosePin to control the screen’s power status. Once activated, the screen remains on for a preset duration (e.g., nine seconds) to give the user sufficient time to view the visitor. Afterward, the backlight powers off to save energy.
Integrating the display with the face recognition system requires coding specific functions in the Arduino environment to manage the camera feed, detect faces, and render images on the TFT LCD. Below are key components of the code:
Setting Up Video Configuration:
- The video feed from the camera is configured through a custom function VideoSetting configTFT, which defines parameters such as resolution, frame rate (CAM_FPS), and video format (VIDEO_JPEG).
- The configuration settings are applied to the display channel using the command Camera.configVideoChannel(CHANNELTFT, configTFT);, enabling real-time streaming to the TFT screen.
- Setting Up Video Configuration: The video feed from the camera is configured through a custom function VideoSetting configTFT, which defines parameters such as resolution, frame rate (CAM_FPS), and video format (VIDEO_JPEG). The configuration settings are applied to the display channel using the command Camera.configVideoChannel(CHANNELTFT, configTFT);, enabling real-time streaming to the TFT screen.
- The video feed from the camera is configured through a custom function VideoSetting configTFT, which defines parameters such as resolution, frame rate (CAM_FPS), and video format (VIDEO_JPEG).
The configuration settings are applied to the display channel using the command Camera.configVideoChannel(CHANNELTFT, configTFT);, enabling real-time streaming to the TFT screen.
Setting Up Video Configuration: The video feed from the camera is configured through a custom function VideoSetting configTFT, which defines parameters such as resolution, frame rate (CAM_FPS), and video format (VIDEO_JPEG). The configuration settings are applied to the display channel using the command Camera.configVideoChannel(CHANNELTFT, configTFT);, enabling real-time streaming to the TFT screen.
1.1 Advanced Security Protocols
- Two-Factor Authentication Options: Suggest optional security layers, such as pairing face recognition with a passcode or secondary device.
- Privacy Masking and Data Encryption: Explain privacy-enhancing features like data encryption, restricted access to stored data, and techniques to mask user information when not in active use.
- 1.1 Advanced Security Protocols
Two-Factor Authentication Options: Suggest optional security layers, such as pairing face recognition with a passcode or secondary device.
Privacy Masking and Data Encryption: Explain privacy-enhancing features like data encryption, restricted access to stored data, and techniques to mask user information when not in active use.
1.2 Real-World Applications and User Scenarios
- Scenario 1: Family Member Recognition – Describe how the system identifies family members or regular visitors, allowing them entry without delay.
- Scenario 2: Stranger Alert – Outline the process when an unfamiliar face approaches the door, with automatic alerts and user-initiated security actions.
- Scenario 3: Delivery and Visitor Management – Explain how the system can facilitate deliveries by providing access remotely or notifying users of the arrival.
- 1.2 Real-World Applications and User Scenarios
Scenario 1: Family Member Recognition – Describe how the system identifies family members or regular visitors, allowing them entry without delay.
Scenario 2: Stranger Alert – Outline the process when an unfamiliar face approaches the door, with automatic alerts and user-initiated security actions.
Scenario 3: Delivery and Visitor Management – Explain how the system can facilitate deliveries by providing access remotely or notifying users of the arrival.
- Step-by-Step Process: Using the HUB8735’s camera, users can register faces by entering specific commands (e.g., REG=<name> for registration) via the serial monitor.
- Recognition Mode: The system is configured to recognize multiple faces simultaneously but only allows one face in registration mode.
- Data Management: Users can back up and restore registered faces or clear all stored data with commands such as BACKUP, RESTORE, and RESET.
- Display Mechanism: The digital peephole uses a TFT LCD with the ili9341 driver chip to display a live feed, allowing users to view who is at the door more conveniently than with traditional peepholes.
- Video Settings and Channel Configuration: The display settings are programmed through Arduino, including configurations for video channels and storing image data.
- Auto-On Feature: The LCD backlight automatically activates upon face detection and remains on for nine seconds, ensuring the user has time to view the visitor.
- Necessary Libraries: The NNFaceDetectionRecognition.h and TJpg_Decoder.h libraries are essential for facial recognition and image decoding.
- Callback Functions: The tft_output function is employed as a callback to output decoded images to the TFT screen. The TJpg_Decoder library processes image data, allowing for real-time display on the screen.
- Image Data Handling: The same variables (img_addr and img_len) are used to manage data storage and display, ensuring efficient image handling.
- Storage Methodology: The system saves images to an SD card, capturing a record of visitors, which can be accessed later if needed.
- Purpose: When an unknown face is detected, a notification is automatically sent to the homeowner via LINE Notify, enhancing the security alert mechanism.
- Setup and Configuration: The user must log into LINE Notify, issue a token, and configure it in the Arduino code. The token is then used to send messages directly to the LINE app when an unknown individual is detected at the door.
Comments
Please log in or sign up to comment.