Implementación de una red neuronal Transformer para detección de somnolencia en conductores de vehículos durante la conducción diurna y nocturna
El presente trabajo propone un modelo basado en la arquitectura Transformers RTDETR para la detección de somnolencia, centrándose en la identificación de la zona de los ojos y la evaluación de su estado (despierto o dormido). El modelo será implementado en un sistema embebido con una Raspberry Pi 3 Modelo B+, diseñado para su integración en vehículos y el monitoreo en tiempo real del conductor.
Desarrollar un sistema embebido mediante el uso de visión artificial para detección y alerta de somnolencia en conductores durante la conducción diurna y nocturna.
Se utilizo la infraestructura HPC CEDIA. esta plataforma facilita el acceso a supercomputadoras y clusters de procesamiento optimizados para tareas computacionalmente intensivas como el entrenamiento de modelos de inteligencia artificial, simulaciones científicas, análisis de big data, procesamiento de imágenes y bioinformática.
Configuración del entorno:
Tipo de Runtime:Python 3Cores de CPU:40 coresAcelerador de hardware:GPU NVIDIA A100 SMX4Capacidad de la GPU:Memoria dedicada de 40 GBMemoria RAM:32 GB
Versiones de herramientas y librerías claves:
Python:3.8.12PyTorch:2.4.1+cu121Ultralytics:8.3.58OpenCVNumPyMatplotlib
👁️ Este proyecto utiliza Ultralytics para la detección de objetos. Instala las dependencias ejecutando:
pip install ultralytics==8.3.58El modelo fue entrenado con un dataset propio de imágenes 128x128 pixeles.
👁️ Se definieron las clases de interés, restringiendo la detección a dos categorías específicas:
- Clase 0: Ojos abiertos (open eye).
- Clase 1: Ojos cerrados (closed eye).
# Importar el modelo
from ultralytics import RTDETR
# Cargar el modelo
model = RTDETR('rtdetr-l.pt')Configuración de Hiperparámetros Personalizada:
params = {
'epochs': 50,
'imgsz': 128,
'patience': 5,
'batch': 8,
'project': 'Somnolencia',
'name': 'RTDETR_balanceado2',
'val': True,
'plots': True,
'verbose': True
# Hiperparámetros
'optimizer': 'AdamW',
'cos_lr': True,
'dropout': 0.5,
'lr0': 0.0005,
'weight_decay': 0.005,
'momentum': 0.95,
'warmup_epochs': 3.0,
'warmup_momentum': 0.8,
'warmup_bias_lr': 0.00
}Ejecución de entrenamiento:
results = model.train(data = 'Datasets/balanced_eye_dataset/data.yaml', classes = [0, 1], **params)Dataset General
| Dataset | Loss | Exactitud (%) | Precisión (%) | Recall (%) | F1 Score (%) | Tiempo de entrenamiento |
|---|---|---|---|---|---|---|
| Balanceado | 0.43 | 95.21 | 95.47 | 95.75 | 95.61 | 4h 28m 21s |
| Desbalanceado | 0.41 | 92.62 | 94.60 | 94.41 | 94.50 | 4h 41m 22s |
Dataset con accesorios faciales
| Dataset Balanceado | Exactitud (%) | Precisión (%) | Recall (%) | F1 Score (%) |
|---|---|---|---|---|
| Bareface | 93.0297 | 94.3375 | 94.3333 | 94.3354 |
| Glasses | 92.7173 | 94.5817 | 94.6250 | 94.6034 |
| Sunglasses | 93.4208 | 94.3247 | 94.0809 | 94.2026 |
Dataset en condiciones de luz
| Dataset Balanceado | Exactitud (%) | Precisión (%) | Recall (%) | F1 Score (%) |
|---|---|---|---|---|
| Día | 89.4921 | 91.3589 | 91.2271 | 91.293 |
| Noche | 91.7840 | 92.5682 | 92.5 | 92.5342 |
El modelo RTDETR en su version rtdetr-l fue comparado con artículos relacionados con clasificación, aunque su arquitectura está enfocada en detección de objetos. A pesar de esta diferencia, los principales parámetros de evaluación siguen siendo comparables, ya que incluyen exactitud, precisión, recall y F1 Score, métricas ampliamente utilizadas en ambos enfoques. En comparación con otros modelos, RT-DETR demostró una buena capacidad de generalización en condiciones sin accesorios (bareface) y con gafas (glasses), alcanzando precisiones superiores al 94%.
No obstante, su desempeño con gafas de sol (sunglasses) fue particularmente destacable, superando ampliamente a otros métodos que suelen tener dificultades en esta categoría debido a la interferencia causada por los reflejos oscuros o la ambigüedad visual entre los ojos cerrados y los propios lentes. En esta condición, el modelo obtuvo los siguientes resultados:
Exactitud:93.4208Precisión:94.3247Recall:94.0809F1 Score:94.2026
El enlace contiene los modelos exportados en formatos .pt, .tflite y .dat, listos para ser integrados tanto en entornos de escritorio (PC) como en dispositivos embebidos como Raspberry Pi.
Estos archivos permiten realizar inferencias eficientes adaptadas a diferentes plataformas y necesidades de despliegue.
🔗 Acceder a los recursos del proyecto
- Vaswani et al., "Attention is All You Need"
- Zhao et al., "DETRs Beat YOLOs on Real-time Object Detection"
Henry Meza


