AInomaly es una plataforma de seguridad avanzada que utiliza Inteligencia Artificial para detectar caídas y anomalías a través de cámaras de seguridad (RTSP) o webcams. Combina un potente backend en Python con una moderna interfaz de escritorio en Electron.
El proyecto se divide en dos módulos principales que se comunican entre sí:
-
Backend (Python/FastAPI):
- The Eye (Visión): Procesamiento de video en tiempo real utilizando YOLOv8-Pose.
- The Brain (Lógica): Análisis de vectores esqueléticos para detectar caídas con alta precisión.
- The Messenger (Alertas): Gestión de notificaciones, bot de Telegram y almacenamiento de eventos.
- Stream Server: Servidor RSTP/MJPEG optimizado para transmitir video procesado al frontend.
-
Frontend (Electron + React):
- Interfaz de Usuario: Dashboard moderno con soporte para modo oscuro.
- Configuración: Gestión de cámaras, zonas de detección y sensibilidad.
- Historial: Visualización de alertas pasadas y grabaciones de evidencia.
- Control: Inicio y parada automática del motor de IA.
ainomaly/
├── backend/ # Código fuente del servidor Python
│ ├── api.py # Punto de entrada FastAPI
│ ├── models/ # Pesos del modelo (yolov8n-pose.pt)
│ ├── source/ # Lógica de visión y detección
│ └── ...
├── electron-app/ # Aplicación de Escritorio (React)
│ ├── src/ # Componentes y páginas
│ ├── main.cjs # Proceso principal de Electron
│ └── ...
├── scripts/ # Scripts de utilidad y depuración
├── recordings/ # Videoclips de eventos detectados
├── snapshots/ # Fotos de evidencia
└── actions...
- IA / Visión: YOLOv8, OpenCV, NumPy
- Backend: FastAPI, Uvicorn
- Frontend: Electron, React, TailwindCSS
- Notificaciones: Telegram Bot API
- Hardware: Soporte para CPU (optimizado) y GPU (CUDA opcional)
- Python 3.10+
- Node.js 18+
Instala las dependencias del backend en la raíz del proyecto:
pip install -r requirements.txtInstala las dependencias de Node.js dentro de la carpeta electron-app:
cd electron-app
npm installPara iniciar el sistema completo (Frontend + Backend automático):
# Desde la carpeta electron-app
npm run electronEl backend de Python se iniciará automáticamente en segundo plano cuando la aplicación de escritorio se abra.
- El modelo
yolov8n-pose.ptse descargará automáticamente si no está presente enbackend/models/. - Asegúrate de tener configurada una cámara válida (Webcam índice 0 o URL RTSP) en la configuración para ver video en vivo.