Add Readme
This commit is contained in:
96
README.md
Normal file
96
README.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# ControlPatente AI - Sistema de Reconocimiento de Patentes (ALPR)
|
||||
|
||||
Sistema de seguridad y control de acceso vehicular basado en Inteligencia Artificial. Utiliza reconocimiento de patentes (ALPR/LPR) en tiempo real mediante cámaras web, procesando la información con Docker, Node.js, Python y React.
|
||||
|
||||
## 🚀 Características
|
||||
|
||||
- **Detección en Tiempo Real:** Identificación instantánea de patentes vehiculares usando EasyOCR/OpenCV.
|
||||
- **Validación de Acceso:** Comparación automática con base de datos de vehículos registrados (Permitidos/Denegados).
|
||||
- **Video Streaming:** Visualización en vivo de la cámara en el dashboard.
|
||||
- **Dashboard Interactivo:** Interfaz web moderna para monitoreo y gestión de patentes.
|
||||
- **Filtro Inteligente:** Optimizado para patentes chilenas (Formatos: AABB12 y BBBB12).
|
||||
|
||||
## 🛠 Arquitectura
|
||||
|
||||
El proyecto utiliza una arquitectura de microservicios con Docker:
|
||||
|
||||
- **Frontend:** React + Vite + TailwindCSS (Puerto 5173)
|
||||
- **Backend:** Node.js + Express + Socket.IO (Puerto 3000)
|
||||
- **Database:** PostgreSQL (Puerto 5432)
|
||||
- **ALPR Service:** Python + Flask + OpenCV + EasyOCR (Puerto 5001)
|
||||
|
||||
## 📋 Prerrequisitos
|
||||
|
||||
- [Docker Desktop](https://www.docker.com/products/docker-desktop/) instalado y corriendo.
|
||||
- (Solo para macOS/Desarrollo Local) Python 3.9+ instalado en tu máquina.
|
||||
|
||||
## 🔧 Instalación y Puesta en Marcha
|
||||
|
||||
### 1. Clonar el Repositorio
|
||||
|
||||
```bash
|
||||
git clone https://gitea.v1ru5.cl/raven/ControlPatente.git
|
||||
cd ControlPatente
|
||||
```
|
||||
|
||||
### 2. Ejecutar con Docker Compose
|
||||
|
||||
Para levantar la base de datos, el backend y el frontend:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
> **Nota:** La primera vez puede tardar unos minutos en construir las imágenes.
|
||||
|
||||
### 3. Configuración de la Cámara (Importante)
|
||||
|
||||
Debido a restricciones de seguridad en Docker (especialmente en macOS), el acceso directo a la webcam USB desde el contenedor suele fallar. Se recomienda ejecutar el servicio de reconocimiento (**ALPR**) localmente.
|
||||
|
||||
#### Opción A: Ejecución Híbrida (Recomendada para macOS)
|
||||
|
||||
Mantén los contenedores de Docker corriendo (Backend, DB, Frontend) y ejecuta el script de Python en tu terminal local:
|
||||
|
||||
1. Ve a la carpeta del servicio ALPR:
|
||||
```bash
|
||||
cd alpr-service
|
||||
```
|
||||
2. Instala las dependencias:
|
||||
```bash
|
||||
pip3 install -r requirements.txt
|
||||
pip3 install flask flask-cors
|
||||
```
|
||||
3. Ejecuta el servicio:
|
||||
```bash
|
||||
# Asegura que el backend sea alcanzable en localhost
|
||||
export BACKEND_URL="http://localhost:3000"
|
||||
python3 main.py
|
||||
```
|
||||
|
||||
El script pedirá permisos de cámara. Una vez otorgados, verás el video en el Dashboard.
|
||||
|
||||
#### Opción B: Ejecución Full Docker (Linux / Raspberry Pi)
|
||||
|
||||
En sistemas Linux nativos donde se pueden mapear dispositivos (ej. `/dev/video0`), simplemente descomenta la sección `devices` en `docker-compose.yml` y todo correrá dentro de Docker.
|
||||
|
||||
## 🖥 Uso del Sistema
|
||||
|
||||
1. **Dashboard:** Abre tu navegador en [http://localhost:5173](http://localhost:5173).
|
||||
2. **Registro:** Haz clic en **"+ Register New Plate"** para agregar vehículos autorizados.
|
||||
3. **Monitoreo:** Apunta tu cámara a una patente.
|
||||
* Si está registrada: Verás estado **GRANTED** (Verde).
|
||||
* Si no existe: Verás estado **UNKNOWN/DENIED** (Rojo/Gris).
|
||||
|
||||
## 🐛 Solución de Problemas Comunes
|
||||
|
||||
**1. Error "Table public.Plate does not exist" (Error 500)**
|
||||
Si al agregar una patente da error 500, significa que la base de datos no se inicializó. Ejecuta:
|
||||
```bash
|
||||
docker compose exec backend npx prisma migrate dev --name init
|
||||
```
|
||||
|
||||
**2. La cámara no abre en macOS**
|
||||
Asegúrate de ejecutar `main.py` desde una terminal con permisos (VS Code o Terminal.app). Revisa en *Preferencias del Sistema > Privacidad y Seguridad > Cámara*.
|
||||
|
||||
**3. "Network Error" en el Dashboard**
|
||||
Verifica que el Backend esté corriendo (`docker compose ps`) y que no haya errores en los logs (`docker compose logs backend`).
|
||||
Reference in New Issue
Block a user