RoboVAI OCR 🚗🆔👤
RoboVAI OCR is a high-performance, enterprise-grade Computer Vision and OCR framework built for Automatic License Plate Recognition (ALPR), National ID Card Parsing, and Driver Facial Verification.
Designed for seamless deployment in Smart Parking Systems, Barrier Gate Controls, Fleet Management, and Access Security, RoboVAI OCR provides an intuitive Python SDK, a high-throughput Async Pipeline, and a production-ready FastAPI REST & WebSocket Server.
🖥️ Live Control Center Dashboard
🔥 Key Capabilities
- Automatic License Plate Recognition (ALPR): Multi-scale inference (TTA) with region-split whitelisted OCR for Egyptian, Arabic, and international vehicle plates.
- National ID & Driver License Parsing: End-to-end deep learning OCR extracting 14-digit Egyptian National ID, Full Name, Address, DOB, Gender, Governorate, and photo crop.
- Driver Facial Verification: Real-time facial feature extraction and authorization matching against a driver registration database.
- High-Concurrency RTSP / Stream Processing: Async queue architecture decoupling object tracking from heavy OCR background execution.
- Developer First: Clean Python SDK, interactive Web Dashboard, CLI tools, OpenAPI docs, and Webhooks for automated hardware/barrier control.
⚡ Quick Start
Installation
Install the latest release directly from PyPI:
pip install --upgrade robovai-ocr
Or install from source for development:
git clone https://github.com/m0shaban/robovai_ocr_system.git
cd robovai_ocr_system
pip install -e .
💻 Developer Guide & Usage Examples
1. Python SDK Integration
from robovai_ocr import RoboVAIEngine
# Initialize engine (auto-detects CPU/GPU)
engine = RoboVAIEngine()
# --- License Plate Recognition ---
plate_res = engine.read_license_plate("car.jpg")
print(plate_res["plate_number"]) # e.g. "س ط أ 1 2 3"
print(plate_res["confidence"]) # e.g. 0.96
# --- Egyptian National ID Extraction ---
id_res = engine.extract_national_id("national_id.jpg")
print(id_res["national_id"]) # e.g. "29901010100123"
print(id_res["full_name"]) # e.g. "أحمد محمد علي"
print(id_res["governorate"]) # e.g. "Cairo"
# --- Driver Face Verification ---
face_res = engine.verify_driver_face("driver.jpg", db_path="data/driver_faces")
print(face_res["match"]) # True / False
2. High-Throughput Async Pipeline
import asyncio
from robovai_ocr.core.pipeline import AsyncOCRPipeline
async def main():
pipeline = AsyncOCRPipeline()
await pipeline.start()
# Submit frame for non-blocking processing
job_id = await pipeline.submit_frame(frame_bytes)
result = await pipeline.get_result(job_id)
print(result)
asyncio.run(main())
3. Command Line Interface (CLI)
# Run ALPR on single image
robovai-cli alpr --image path/to/car.jpg
# Extract National ID fields
robovai-cli idcard --image path/to/id.jpg
# Start REST API & Web Control Dashboard
robovai-server --host 0.0.0.0 --port 8500
📡 REST API & WebSockets
Deploy as a standalone microservice:
robovai-server --port 8500
- Control Center Dashboard: http://localhost:8500/
- Interactive OpenAPI Documentation: http://localhost:8500/docs
| Endpoint | Method | Description |
|---|---|---|
/api/v1/alpr |
POST |
Process license plate image with OCR & bounding box visualization |
/api/v1/id-card |
POST |
Extract structured fields from National ID / Driver License |
/api/v1/face |
POST |
Match driver face photo against registered driver database |
/api/v1/pipeline |
POST |
Asynchronous background processing queue |
/ws/stream |
WebSocket |
Real-time RTSP/Webcam video stream processing |
🛠️ Architecture Overview
+-----------------------------+
| RTSP Stream / Image |
+--------------+--------------+
|
v
+--------------+--------------+
| RoboVAI OCR Engine SDK |
+--------------+--------------+
|
+---------------------------------+---------------------------------+
| | |
v v
+--------+--------+ +--------+--------+ +--------+--------+
| ALPREngine | | IDEngine | | FaceEngine |
| (YOLO + EasyOCR)| | (3x YOLO Models)| | (Face Match DB) |
+--------+--------+ +--------+--------+ +--------+--------+
| | |
+---------------------------------+---------------------------------+
|
v
+--------------+--------------+
| FastAPI REST & WebSockets |
+--------------+--------------+
|
v
+--------------+--------------+
| Smart Barrier Gate / Webhook|
+-----------------------------+
🤝 Contributing
We welcome contributions from the open-source community! Whether you are fixing bugs, improving docs, or proposing new features:
- Fork the Repository on GitHub.
- Create a Feature Branch:
git checkout -b feature/amazing-feature - Commit Your Changes:
git commit -m 'Add amazing feature' - Push to Branch:
git push origin feature/amazing-feature - Open a Pull Request.
📜 License
This project is licensed under the MIT License.
👤 Author & Connect
Developed by Mohamed Shaban (محمد شعبان العتماني) — Founder & AI Architect at RoboVAI.
- ⭐ Star & Follow on GitHub: github.com/m0shaban
- 🌐 Personal Website: msalatmani.org
- 🏢 Company: robovai.tech
- 📦 PyPI Package: pypi.org/project/robovai-ocr/
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file robovai_ocr-1.2.0.tar.gz.
File metadata
- Download URL: robovai_ocr-1.2.0.tar.gz
- Upload date:
- Size: 60.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
476252cf17a4fdc6aa1b9774a783af00bae5bfbef6b3d40d96039e8cb201453a
|
|
| MD5 |
4882a5149a771f42fca59505d13eca07
|
|
| BLAKE2b-256 |
fbf1fe0302e8750bb8e66abf8f41b1c4e52ad61276edc67d4319bbaaafff4d8f
|
File details
Details for the file robovai_ocr-1.2.0-py3-none-any.whl.
File metadata
- Download URL: robovai_ocr-1.2.0-py3-none-any.whl
- Upload date:
- Size: 64.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3af3a20ae441eb22f3183a43c7bf8007acae25fa87e89f74983d2ae69c1242e5
|
|
| MD5 |
ca5321d32104127f7986f7e6e8a6c780
|
|
| BLAKE2b-256 |
0ab16dd14479c20721ba56a6a5737826acda24843d83aea0a43ab53557fd2ff4
|