VALPER is an intelligent identification system built with Python for Raspberry Pi devices, featuring face recognition and license plate recognition (OCR) capabilities. The system uses Supabase for data management and includes a Flutter mobile application for user interaction.
- Overview
- Features
- System Architecture
- Project Structure
- Prerequisites
- Installation
- Configuration
- Usage
- Mobile Application
- Contributing
- License
VALPER (Vehicle and Person Recognition) is a comprehensive thesis project that implements an intelligent identification system using computer vision and machine learning. The system combines face recognition and optical character recognition (OCR) technologies to identify and verify vehicles and individuals in real-time.
- Face Recognition: Real-time face detection and recognition using InsightFace
- License Plate Recognition: OCR-based license plate detection and validation
- Multi-Device Architecture: Distributed system using Raspberry Pi 5 and Raspberry Pi Zero
- Service Discovery: Automatic device discovery using ZeroConf
- Database Integration: Supabase backend for data storage and management
- Mobile Application: Flutter-based mobile app for system interaction (coming soon)
The VALPER system consists of three main components:
- Raspberry Pi 5: Main processing unit handling face recognition, OCR, and license plate validation
- Raspberry Pi Zero: Camera server providing image capture functionality
- Flutter Mobile App: User interface for system interaction and management
valper-system/
βββ src/
β βββ raspi_scripts/
β β βββ raspi_5/
β β β βββ valper_official_v1.py # Main processing script
β β β βββ OCR_postprocessing_v3.py # OCR validation and post-processing
β β β βββ requirements.txt # Python dependencies
β β βββ raspi_zero/
β β βββ valper_pizero_v1.py # Camera server script
β β βββ requirements.txt # Python dependencies
β βββ valper_mobile_app/ # Flutter mobile application (to be uploaded)
βββ VALPER_Finalized_compressed.pdf # Thesis documentation
βββ LICENSE # MIT License
βββ README.md # This file
- Raspberry Pi 5 (main processing unit)
- Raspberry Pi Zero (camera server)
- Raspberry Pi Camera Module V2
- MicroSD cards for both devices
- Network connectivity (WiFi/Ethernet)
- Raspberry Pi OS (64-bit recommended)
- Python 3.8 or higher
- Flutter SDK (for mobile app development)
- Supabase account and project
- Clone the repository:
git clone <repository-url>
cd valper-system- Navigate to the Raspberry Pi 5 scripts directory:
cd src/raspi_scripts/raspi_5- Create a virtual environment (recommended):
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Install additional system dependencies:
sudo apt-get update
sudo apt-get install -y libgl1-mesa-glx libglib2.0-0- Navigate to the Raspberry Pi Zero scripts directory:
cd src/raspi_scripts/raspi_zero- Create a virtual environment:
python3 -m venv venv
source venv/bin/activate- Install dependencies:
pip install -r requirements.txtCreate a .env file in the raspi_5 directory with the following variables:
SUPABASE_URL=your_supabase_url
SUPABASE_SERVICE_KEY=your_supabase_service_keyEnsure the ONNX model file is placed at the specified path in valper_official_v1.py:
- Default path:
/home/user/my_pi_camera_project/VALPER Python/best.onnx
The system is configured to use:
- Raspberry Pi Zero: Full resolution (3280x2464) with 16:9 crop to 1920x1080
- Raspberry Pi 5: Processes images from Pi Zero via HTTP endpoint
- SSH into your Raspberry Pi Zero
- Navigate to the script directory:
cd src/raspi_scripts/raspi_zero- Activate the virtual environment:
source venv/bin/activate- Run the camera server:
python valper_pizero_v1.pyThe server will start on port 5003 and register itself via ZeroConf for automatic discovery.
- SSH into your Raspberry Pi 5
- Navigate to the script directory:
cd src/raspi_scripts/raspi_5- Activate the virtual environment:
source venv/bin/activate- Run the main processing script:
python valper_official_v1.pyThe system will:
- Discover the Pi Zero camera server automatically
- Initialize face recognition and OCR models
- Begin processing captured images
- Validate license plates against the database
- Log results to Supabase
The Flutter mobile application source code will be uploaded to src/valper_mobile_app/ directory. This application will provide:
- User authentication and management
- Real-time system status monitoring
- Database query and management interface
- Configuration and settings management
Note: The mobile application code is currently being prepared and will be added to this repository soon.
Once the Flutter source code is available:
- Navigate to the mobile app directory:
cd src/valper_mobile_app- Install Flutter dependencies:
flutter pub get- Run the application:
flutter runThis is a thesis project. For questions or contributions, please contact the project maintainers.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed as part of a thesis project

