WEB-IA-Detect es un sistema avanzado de detección de objetos basado en YOLOv5 que permite la grabación, procesamiento y notificación automática de eventos detectados en tiempo real a través de Telegram. Este proyecto está diseñado para detectar personas, gatos y perros desde flujos de cámaras y ofrece una interfaz web para su gestión.
- Grabación de video: Captura y comprime videos desde cámaras en tiempo real.
- Detección de objetos: Identifica objetos específicos (personas, gatos, perros) en los videos.
- Notificaciones: Envía alertas detalladas, videos y fotogramas de detecciones vía Telegram.
- Gestión web: Incluye una aplicación Flask para iniciar/detener grabaciones y revisar logs.
- Soporte para múltiples scripts: Administra diferentes procesos de detección simultáneamente.
Detect-IA/
├── analisis.sh # Script para detección de personas
├── perro.sh # Script para detección de perros
├── gato.sh # Script para detección de gatos
├── app.py # Aplicación Flask
├── config.py # Configuración de rutas para scripts y logs
├── config.sh # Configuración de variables (Telegram, rutas, cámara)
templates/
│ └── index.html # Interfaz web
├── requirements.txt # Dependencias necesarias
└── install.sh # Dependencias necesarias de linux
Este archivo define las rutas base del proyecto, así como las rutas para los scripts y los archivos de logs. Es útil para centralizar la configuración de las rutas y facilitar modificaciones en el futuro.
import os
BASE_DIR = "ruta absoluta del proyecto" # Cambia esto a la ruta absoluta, por ejemplo: "/root/DetectIAPerson"
# Configuración de scripts y logs
LOG_FILES = {
'analisis': os.path.join(BASE_DIR, "detection.log"),
'perro': os.path.join(BASE_DIR, "perros.log"),
'gato': os.path.join(BASE_DIR, "gatos.log"),
}
SCRIPTS = {
'analisis': os.path.join(BASE_DIR, "analisis.sh"),
'perro': os.path.join(BASE_DIR, "perro.sh"),
'gato': os.path.join(BASE_DIR, "gato.sh"),
}- BASE_DIR: Cambia
"ruta absoluta del proyecto"a la ubicación completa de tu proyecto. Usa el comandopwden la terminal dentro del directorio del proyecto para obtener esta ruta.- Ejemplo:
BASE_DIR = "/root/DetectIAPerson"
- Ejemplo:
Este archivo contiene configuraciones necesarias para interactuar con Telegram, especificar la fuente del video, y definir el directorio de salida.
# Configuración de Telegram
TOKEN="TuTokendelBotDeTelegram"
CHAT_ID="TuChatID"
URL="https://api.telegram.org/bot$TOKEN/sendVideo"
MESSAGE_URL="https://api.telegram.org/bot$TOKEN/sendMessage"
PHOTO_URL="https://api.telegram.org/bot$TOKEN/sendPhoto"
DOCUMENT_URL="https://api.telegram.org/bot$TOKEN/sendDocument"
# Ruta de salida absoluta donde se aloja el proyecto
OUTPUT_DIR="RUTAABSOLUTA"
# URL del video de origen
VIDEO_URL="URLDELA_CAMARA_DE_VIDEO"- Python 3.8+
- YOLOv5: Instalado y configurado.
- FFmpeg: Para procesamiento de videos.
- Dependencias de Python: Instálalas ejecutando:
./install.shpip install -r requirements.txt- Registrar un bot en Telegram y obtener tu
TOKENyCHAT_ID. - Configurar las variables en
config.sh:- Añade el
TOKENyCHAT_IDcorrespondientes.
- Añade el
- Ruta absoluta del proyecto:
- Modifica la variable
BASE_DIRenconfig.py. - Actualiza
OUTPUT_DIRenconfig.sh.
- Modifica la variable
python3 app.pyLa aplicación estará disponible en: http://localhost:4040.
- Accede a la página principal.
- Selecciona el script que deseas ejecutar (personas, perros o gatos).
- Configura la duración de la grabación.
- Revisa los logs y resultados desde la misma interfaz.
Si prefieres ejecutar los scripts desde la terminal, utiliza los siguientes comandos:
bash analisis.sh 10 # Grabar y procesar por 10 minutos
bash perro.sh 5 # Grabar y procesar por 5 minutos
bash gato.sh 15 # Grabar y procesar por 15 minutosPuedes modificar los scripts para detectar clases adicionales. Por ejemplo:
- Usa el parámetro
--class 0para detectar personas. - Usa
--class 15para detectar gatos. - Usa
--class 16para detectar perros.
Edita el archivo config.sh y cambia el valor de VIDEO_URL para actualizar la fuente del video.
Cada script genera un archivo de log separado para facilitar el monitoreo:
detection.log: Registra las detecciones de personas.perros.log: Registra las detecciones de perros.gatos.log: Registra las detecciones de gatos.
Los logs incluyen:
- Detalles de las detecciones.
- Información sobre errores ocurridos.
Los scripts implementan mecanismos de bloqueo (LOCKFILE) para prevenir conflictos al ejecutar múltiples instancias.
Los parámetros ingresados son validados antes de iniciar cualquier grabación para evitar errores.
¡Siéntete libre de contribuir a este proyecto! Puedes:
- Abrir un Pull Request con tus mejoras.
- Reportar problemas en la sección de Issues del repositorio.
