· visión y secuencias
Participantes · LEIASantiago Saldaña Subías · Diego Perea León · Felipe Pacheco Zamorano · Alondra Lizeth Landín Vega · Josué Martínez Avendaño · Diego Alberto Pasaye González
Driver Attention and Vision Evaluator
DAVE estudia cómo reconocer señales visuales relacionadas con el estado de un conductor. Una cámara aporta imágenes; un extractor las convierte en medidas de ojos, boca, cabeza y mirada. Una red reúne su evolución reciente y elige entre tres clases. El objetivo es investigar una lectura accesible y explicable de esas señales, con límites claros sobre lo que una imagen puede revelar.
- Fecha del proyecto
- Modelo utilizado
- con
01Qué observa y qué predice
MediaPipe estima y una transformación de la cara. DAVE calcula 18 valores por instante, en lugar de entregar los píxeles directamente al clasificador. Algunas señales describen la imagen actual; otras resumen hasta un minuto de observaciones anteriores. La etiqueta final corresponde a la ventana, no a cada gesto ni a la intención de la persona.
La apertura de los ojos se expresa con . Durante unos 30 segundos nominales, el extractor reúne una apertura de referencia y después divide el EAR por su . El conteo de cierre usa el EAR geométrico y un umbral fijo: la y la decisión de «ojos cerrados» son operaciones diferentes.
Dos separaciones verticales se comparan con la anchura del ojo. Cerrar los párpados reduce la razón sin cambiar el tamaño horizontal del esquema.
EAR = (‖p₂ − p₆‖ + ‖p₃ − p₅‖) / (2 ‖p₁ − p₄‖)
Los seis puntos ilustran el cálculo; no pertenecen a un rostro registrado ni representan una predicción. El extractor usa las coordenadas estimadas y calibra su apertura de referencia.
| Grupo | Señales | Unidad e historia |
|---|---|---|
| Ojos · 7 | EAR izquierdo, derecho y promedio; ; tasa y duración media de parpadeo; cambio de EAR | Razones; proporción de cierre en 60 s; parpadeos/min; segundos; cambio por frame |
| Boca · 2 | y duración de boca abierta | Razón geométrica y frames consecutivos |
| Cabeza · 5 | , variación de pose y conteo de cabeceos | Ángulos en grados; de su magnitud en 1 s; conteo en 10 s |
| Mirada · 4 | horizontal y vertical, variación de mirada y proporción desviada | Grados; desviación estándar de la magnitud en 1 s; proporción en 5 s |
La mirada se aproxima con la posición del iris. «Mirada desviada» significa superar un umbral angular del extractor; no identifica la carretera ni el objeto observado. Al perder el rostro, el extractor genera valores prefijados de pose y mirada desviadas: pueden favorecer Distracción aunque la ausencia de rostro también provenga de una oclusión o un fallo de detección.
02Cómo reúne la secuencia
forman una matriz de 90 × 18, unos tres segundos a 29.76 frames/s. normaliza los valores de cada instante dentro de la red. Una de dos capas recorre la ventana hacia delante y hacia atrás, con 64 unidades por dirección. Cada instante queda representado por 128 valores.
La aprende a ponderar esos 90 estados. Su suma ponderada produce un vector de 128 valores; tres de tamaños 128, 64 y 3 producen los . El evaluador elige la puntuación mayor. La red usa 183,975 según estas dimensiones.
- 90 × 18Señales extraídas
- 90 × 18LayerNorm
Escala y desplazamiento - 90 × 128Bi-LSTM
2 capas, dos sentidos - 128 valoresAtención: pesos sobre
los 90 instantes - 3 puntuacionesCapas densas
128 → 64 → 3
eₜ = vᵀ (W hₜ + b) · αₜ = (e)ₜ · c = Σₜ αₜ hₜ
«Atención» tiene aquí dos sentidos: el estado que se intenta clasificar y un mecanismo de agregación de la red. Los pesos de ese mecanismo no son una medición de atención humana ni una explicación causal de la etiqueta.
03Qué aprende y con qué datos
El entrenamiento combina , y . Las actividades de teléfono, bebida u otras tareas de DMD y AUC se agrupan en Distracción. El mapeo de DMD-Drowsiness asigna cierres de ojos, bostezos y microsueños a Somnolencia. En UTA-RLDD, tanto «baja vigilancia» como «somnoliento» se asignan a Somnolencia; la etiqueta proviene del estado declarado para el video completo. Esta simplificación une señales y criterios de anotación diferentes.
Las ventanas avanzan 15 frames y reciben la etiqueta mayoritaria de sus 90 registros. Los clips cortos se rellenan repitiendo su último registro. El procedimiento de propone con proporciones de 70/15/15, por conjunto y clase dominante.
La pérdida es con pesos inversos a la frecuencia de las clases en entrenamiento. ajusta la red; una programación varía la y el . reduce coadaptaciones durante el aprendizaje. Se conserva el modelo con mejor macro-F1 de validación y se aplica si deja de mejorar. Los pesos del detector facial y las fórmulas del extractor permanecen fijos.
AUC-V2 contiene imágenes aisladas. El pipeline las agrupa por persona y construye ventanas sobre ese orden de imágenes, con marcas de tiempo artificiales; esas secuencias no representan la evolución natural de un gesto. UTA-RLDD, por su parte, se grabó con teléfonos o webcams en casa o en la universidad, en condiciones que aproximan un encuadre de automóvil. Ninguno de esos hechos convierte la prueba agregada en una evaluación de conducción real.
04Cómo evolucionó el enfoque
- Abril de 2026 · geometría y duración
Un primer detector por reglas
El primer prototipo del equipo usa , EAR y desplazamiento relativo de la nariz: distingue cierres de ojos, giro de cabeza y ausencia de rostro con umbrales y temporizadores. No aprende pesos. La investigación plantea pasar de estas señales aisladas a patrones temporales y estudiar límites de datos y de representación.
- Junio de 2026 · clasificación aprendida
Una bi-LSTM sobre 18 señales
Se incorporan el extractor con Face Landmarker, ventanas, entrenamiento y evaluación de DriverStateNet. La combinación de datos de somnolencia y actividades permite aprender tres etiquetas. La evidencia conservada pertenece a esta red temporal.
- Junio de 2026 · contexto de objetos y reglas
De una etiqueta a una alerta
Se añade vigilancia con detección de objetos; el sistema combina , el clasificador y reglas de persistencia o recuperación. Las revisiones del equipo muestran una tensión relevante: conservar historia temporal puede retrasar la recuperación, mientras reglas instantáneas pueden sustituir la decisión aprendida. Sus umbrales cambian el comportamiento del sistema combinado y requieren evaluación propia.
05Resultados y sus condiciones
La red clasifica correctamente 22,481 de 35,349 ventanas. es 65.71% y 63.69%. Los tres valores describen el mismo test con agregaciones diferentes. La muestra tiene y está dominada por Alerta y Somnolencia: Distracción ocupa solo 1.52%.
| Método | |||
|---|---|---|---|
| Siempre SomnolenciaControl constante: la clase más frecuente | 55.53% | 23.80% | 39.65% |
| Bi-LSTM + atenciónDriverStateNet · modelo conservado | 63.60% | 65.71% | 63.69% |
La mejora sobre el control constante es 8.07 de accuracy. asigna el mismo peso a cada clase y muestra que el clasificador hace más que elegir la etiqueta mayoritaria. Esta comparación evalúa el clasificador completo; no permite atribuir por separado la mejora a atención, bidireccionalidad o cada familia de señales.
Qué clases detecta y cuáles confunde
| Clase real | Ventanas | |||
|---|---|---|---|---|
| Alerta | 15,183 | 57.36% | 60.13% | 58.71% |
| Somnolencia | 19,629 | 68.52% | 66.19% | 67.34% |
| Distracción | 537 | 75.90% | 66.85% | 71.09% |
| Real ↓ / Predicha → | Alerta | Somnolencia | Distracción |
|---|---|---|---|
| Alerta | 9,12960.13% | 5,95239.20% | 1020.67% |
| Somnolencia | 6,62433.75% | 12,99366.19% | 120.06% |
| Distracción | 16230.17% | 162.98% | 35966.85% |
El error entre alerta y somnolencia domina
6,624 ventanas etiquetadas como Somnolencia se predicen como Alerta: 33.75% de esa clase. En sentido inverso, 5,952 ventanas de Alerta pasan a Somnolencia (39.20%). Estos dos errores impiden interpretar el promedio como una garantía para alertar a un conductor. La sensibilidad de Distracción se apoya en solo 537 ventanas y no permite concluir rendimiento uniforme sobre cada actividad.
El desempeño cambia entre fuentes de datos
| Fuente | Ventanas | por clase evaluada | |
|---|---|---|---|
| AUC-V2 | 274 | 100.00% | Distracción: 100.00% |
| DMD-Distraction | 4,526 | 87.85% | Alerta: 93.58% Distracción: 38.46% |
| DMD-Drowsiness | 1,130 | 75.04% | Alerta: 83.81% Somnolencia: 46.27% |
| UTA-RLDD | 29,419 | 59.09% | Alerta: 42.85% Somnolencia: 68.15% |
UTA-RLDD aporta 83.22% de las ventanas y tiene la menor accuracy del desglose. AUC-V2 obtiene 100%, pero sus 274 ventanas de test pertenecen a una sola clase: Distracción. Ese valor no evalúa tres estados ni valida secuencias naturales.
Cómo interpretar el macro-F1 por fuente
El informe guarda AUC-V2: 100%; DMD-Distraction: 44.01%; DMD-Drowsiness: 43.36%; UTA-RLDD: 37.00%. Su cálculo usa las clases presentes en las etiquetas o predicciones de cada subconjunto, en lugar de fijar las tres. AUC promedia una clase y los otros tres conjuntos promedian tres, incluyendo clases sin ejemplos reales cuando aparecen en las predicciones. Por ello, el 100% de AUC no comparte su denominador de clases con los demás.
Qué orden temporal usa la red
La prueba de reordena una señal dentro de cada ventana, manteniendo las otras 17. Al alterar pitch, macro-F1 baja 4.00 puntos porcentuales; con roll baja 2.36 y con yaw, 2.34. La dependencia medida es mayor para pose de cabeza que para apertura instantánea de boca. Es una intervención sobre entradas, sin reentrenamiento, y no establece causalidad.
Las 18 variaciones de macro-F1
| Señal | Caída de |
|---|---|
| Inclinación de cabeza · pitch | 4.000 pp |
| Rotación lateral · roll | 2.360 pp |
| Giro de cabeza · yaw | 2.342 pp |
| Proporción de cierre · PERCLOS | 1.752 pp |
| Mirada vertical | 1.378 pp |
| Mirada horizontal | 1.171 pp |
| Variación de pose | 1.145 pp |
| Duración de parpadeo | 1.125 pp |
| Tasa de parpadeo | 1.037 pp |
| Conteo de cabeceos | 0.658 pp |
| Proporción de mirada desviada | 0.587 pp |
| EAR derecho | 0.405 pp |
| EAR promedio | 0.178 pp |
| Variación de mirada | 0.164 pp |
| Cambio de EAR por frame | 0.123 pp |
| Apertura de boca · MAR | 0.027 pp |
| Duración de boca abierta | 0.014 pp |
| EAR izquierdo | -0.009 pp |
El valor ligeramente negativo de EAR izquierdo significa que su permutación mejora marginalmente este promedio. Esa variación marginal no establece un efecto perjudicial de la señal.
Aprender las etiquetas y generalizar son medidas distintas
| Conjunto | |||
|---|---|---|---|
| Entrenamiento | 93.11% | 92.68% | 0.168 |
| Validación | 63.39% | 65.23% | 1.972 |
El macro-F1 de entrenamiento es mayor que el de validación. La diferencia señala que reconocer las etiquetas vistas durante el aprendizaje no implica la misma . Las mediciones de entrenamiento se acumulan mientras cambian los pesos y está activo dropout; validación utiliza la red fija. Esta comparación no aísla la causa de la diferencia.
F1 por clase durante la selección
| Conjunto | Alerta | Somnolencia | Distracción |
|---|---|---|---|
| Entrenamiento | 91.89% | 94.05% | 92.10% |
| Validación | 54.07% | 69.48% | 72.14% |
La pérdida es entropía cruzada ponderada por clase; su escala no es un porcentaje de error. La selección usa macro-F1 de validación, no una minimización de la pérdida publicada.
La validación se usó para seleccionar pesos; no es otra prueba independiente. Las ventanas se solapan y comparten sujetos y modelo: tratarlas como ensayos independientes subestimaría la incertidumbre.
06Qué sostiene esta evidencia
La evaluación permite estudiar un clasificador de tres etiquetas sobre señales extraídas de estos conjuntos. No mide prevención de accidentes, detección de incidentes completos, intoxicación ni seguridad de conducción. El promedio agregado no debe extrapolarse a otras cámaras, condiciones de luz o grupos demográficos. La calibración geométrica y el preprocesamiento de luz modifican la representación, sin garantizar la eliminación de .
Los videos de ejemplo utilizan los pesos congelados y las 18 señales del extractor; al iniciar toman automáticamente una referencia facial de un fotograma. La red recibe señales crudas y aplica su interna. En la representación histórica, el umbral de mirada desviada es 45° y la apertura ocular se calibra con 894 muestras con rostro. La geometría calculada depende de la imagen: resolución, luz, detección facial y encuadre pueden cambiar sus entradas. Los porcentajes anteriores corresponden al test histórico, no a la cámara del visitante.
La cámara en vivo añade un punto cero personal: toma una referencia estable con ojos abiertos y postura habitual. Divide la apertura ocular por esa referencia y expresa cabeza y mirada respecto de ella; considera cierre una apertura menor al 70% de la referencia. Esta regla relativa sustituye el umbral fijo de cierre sólo en este modo. Después de calibrar reúne 90 muestras nuevas con rostro antes de clasificar; perder el rostro o recalibrar descarta esa ventana. Los pesos no cambian, pero sí la representación de entrada. Esta adaptación experimental no demuestra que desaparezcan las falsas detecciones ni permite atribuir a la cámara los porcentajes del test histórico.
Los ejemplos fijan automáticamente ese punto cero al iniciar: el video queda pausado, se toma una referencia de un único fotograma con rostro y se reanuda. El control Recalibrar permite elegir otra referencia. Ese fotograma no cuenta como una secuencia de observaciones ni demuestra estabilidad de postura. La clasificación posterior usa 90 muestras nuevas; al activar esta adaptación, los resultados históricos tampoco describen su desempeño.
La cadencia depende del video y del dispositivo: 90 muestras pueden abarcar más de tres segundos. Reducir la resolución o la frecuencia de lectura puede cambiar las señales y la predicción. Algunas duraciones por conteo del extractor conservan una frecuencia nominal de 29.76 muestras/s; con otra cadencia, su interpretación temporal también cambia. La adaptación de carga permite explorar la demo en equipos distintos, pero requiere evaluar cada condición antes de comparar su desempeño con el test histórico.
La demo muestra Detectado, la clase y las puntuaciones inmediatas de la Bi-LSTM, y Normalizado, el estado del sistema tras aplicar reglas de decisión. Una asigna Distracción al detectar un celular con puntuación de YOLO superior a 0.45; tiene prioridad sobre la clase facial y no cambia sus puntuaciones. Detectar un teléfono en la imagen no demuestra que la persona lo esté usando. Cuando deja de detectarse, se muestra el estado facial filtrado. Las cifras anteriores corresponden a la Bi-LSTM con atención, sin estas reglas ni el detector de objetos.
La capa Normalizado exige, por defecto, tres segundos continuos de Somnolencia para activarla y un segundo de la misma clase alternativa para salir de ella. Ambos tiempos se pueden ajustar en Parámetros; cero elimina la espera. Una predicción contraria reinicia la confirmación. Sólo cuentan nuevas predicciones durante la lectura activa: las pausas no suman tiempo y perder el rostro reinicia la lectura facial. Este filtro temporal es una regla configurable del sistema, distinta de LayerNorm dentro de la red. Cambia la duración necesaria para emitir el estado y requiere una evaluación propia; no modifica las puntuaciones ni demuestra una mejora de accuracy.