cenidet
Centro Nacional de Investigación y Desarrollo Tecnológico
Departamento de Ciencias Computacionales
TESIS DE MAESTRÍA EN CIENCIAS
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando
Redes Neuronales Artificiales y Visión Artificial
presentada por
Oscar Gerardo Sánchez Siordia Ing. Electrónico por el I. T. de Mérida
como requisito para la obtención del grado de: Maestría en Ciencias en Ciencias de la Computación
Director de tesis: Dr. Gerardo Reyes Salgado
Co-Director de tesis: Dr. Enrique Cabello Pardos
Jurado: Dra. Azucena Montes Rendón – Presidente
M.C. Matilde Velazco Soni – Secretario M.C. Andrea Magadán Salazar – Vocal
Dr. Gerardo Reyes Salgado – Vocal Suplente
Cuernavaca, Morelos, México. 31 de agosto de 2009
Dedicatorias
A mi esposa y a mi madre… Mi significado de vida y mi eterna maestra...
Agradecimientos
A Dios, por poner en mi camino a todas aquellas personas a las que tengo tanto que agradecer,
A mi esposa y a mi madre que hacen que los caminos difíciles sean mucho más fáciles.
A mis profesores: Dr. Raúl, Dr. José Ruiz, Dr. Gerardo, Dra. Azucena, M.C. Andrea, M.C.
Matilde, Dr. Máximo, Dr. Moisés, Dr. José Ramírez y Dr. Manuel por todo su apoyo, sus enseñanzas y
por mantenerme ocupado estos dos años.
Al grupo FRAV de la URJC: Dr. Enrique Cabello, Dr. Isaac Martín, Dra. Cristina Conde, M.C.
Ángel Serrano Sánchez, M.C. Eduardo Orbe y Raúl Crespo. Al CEIT: Dr. Alfonso Brazález y Dra.
Inmaculada Coma. A la URJC: Dr. Carlos Cuesta y M.C. Felipe Cocón. A RACE: Roberto Pérez, Juan
Sánchez y Jorge Castellanos.
A mis padrinos mágicos: Sergio y Yared, gracias por estar siempre ahí y hacerme ver que
cada favor debe hacerse como si fuera el primero.
A FRIA: Lázaro, Cynthya, María Luisa, Daniel e Isabel, mis compañeros de IA: Alex, Jorge,
Truckos y Miguel Ángel, mis compañeros de generación: Julio, Israel, Rubi, Oscar, Yaneth, Luis,
Paco, Itzel, Maby, José Luis y Miriam gracias a todos por ser más amigos que compañeros.
A mi familia y amigos: Gerardo Sánchez, Lourdes Siordia, Gustavo López, Olga López, Erik
López, Frida Camarillo, Mario Chirinos, Carlos Blanco, Estefanía Flores, Edgar Sansores, Josué
Aguilar, Víctor López, Carlos Sánchez y Gabriela Sánchez.
Al Consejo Nacional de Ciencia y Tecnología (CONACYT) por el apoyo económico otorgado
para realizar mis estudios de posgrado y una estancia de investigación en España como parte del
desarrollo de este proyecto.
Al Centro Nacional de Investigación y Desarrollo Tecnológico (CENIDET) por permitirme dar
un paso más en mi crecimiento académico: Guadalupe Garrido, David Luviano, Olivia Maquinay,
Alfredo Terrazas, Mario Moreno, Silvia Ortiz, Mónica Pichardo, Lorena Ruiz y Ana Pérez.
Dios los bendiga a todos…
Resumen
El campo de aplicación de las investigaciones realizadas, desde hace más de 50 años, en el área
de la Inteligencia Artificial (IA), avanza proporcionalmente a la comprobación de la efectividad de
sus resultados. Hoy en día, es posible encontrar aplicaciones de dicha área en la solución de
cientos de problemas de la vida cotidiana.
Tal es el caso de la seguridad vial, en donde diversos sistemas inteligentes de transporte
(SITs), diseñados para asistir al conductor, son ya incluidos por ciertos fabricantes en vehículos
comerciales. Dichos sistemas, como aquellos de asistencia y distribución de frenado, empiezan a
ser ya una norma obligatoria en la fabricación de automóviles en países, principalmente europeos,
que, preocupados por este tema, invierten miles de euros al año en proyectos para la generación
de vehículos más seguros para los conductores.
El proyecto Cabina Inteligente para el Transporte por Carretera (CABINTEC), financiado
por el Ministerio de Ciencia e Innovación (MEC) de España, tiene como objetivo el diseño de una
cabina que, dotada de SITs, proporcione una mayor seguridad a los usuarios; sin embargo, la
aplicación de estos dispositivos, requieren de una interacción constante con el conductor para su
correcto funcionamiento, por lo que dependen de otros sistemas que se encarguen de la detección
automática de su comportamiento.
En este proyecto se propone, como una aproximación al modelado del comportamiento de
conductores de camiones de transporte y/o carga, la utilización de un clasificador de
comportamiento que, basado en Redes Neuronales Artificiales (RNAs), es alimentado con datos
provenientes de ejercicios de conducción realizados en la cabina de simulación del proyecto
CABINTEC, y es apoyado con un sistema de Visión Artificial (VA) que le proporciona información
de la posición de las manos del conductor durante las sesiones simuladas.
El resultado principal de este trabajo de investigación, es el desarrollo de un sistema de
adquisición y representación del conocimiento que permite, por medio de las RNAs entrenadas con
información adquirida de expertos en seguridad vial, la clasificación automática del comportamiento
de conductores mediante la reproducción visual de ejercicios monitoreados en la cabina de
simulación.
Abstract
Since 50 years the application field of Artificial Intelligence, have grown proportionately to the
effectiveness of its results. Today, it is possible to find AI applications solving of hundreds of
everyday life problems.
Such is the case of road safety, where some Intelligent Transportation Systems (ITS)
designed to assist drivers, are already included in commercial vehicles by some manufacturers.
These systems, like those of breaking distribution and assistance, are becoming a mandatory
standard in the automotive manufacturing industry mainly in European countries. They are concern
about this issue and invests thousands of Euros per year on projects for the development of safer
vehicles for drivers.
The project funded by the Ministry of Science and Innovation (MEC) of Spain, called
Intelligent cabin for road transport (CABINTEC), aims to design a cabin able to offer greater security
to users trough the application of SITs. However, the application of these devices requires constant
interaction with the driver to work properly. Therefore, these SITs depend on other systems that are
responsible for the automatic detection of the driver's behavior.
This project is proposed as an approach for the modeling of the truck drivers’ behavior
trough the application of an Artificial Neuronal Network (ANN) based behavior classifier. This
classifier is feed with data from exercises made in the cab driving simulator of the CABINTEC
project and is supported with a Computer Vision system (CV) that provides information about the
driver's hands position during the simulated sessions.
The main result of this research is the development of a system for knowledge acquisition
and representation which allows the automatic classification of the driver's behavior by the
application of ANN to the data acquired in the monitoring of several exercises made at the simulator
cockpit.
i
Contenido
LISTA DE FIGURAS ........................................................................................................................................ V
LISTA DE TABLAS ......................................................................................................................................... IX
LISTA DE ACRÓNIMOS ................................................................................................................................. XI
INTRODUCCIÓN ........................................................................................................................................... 1
ANTECEDENTES ................................................................................................................................................... 2
PLANTEAMIENTO DEL PROBLEMA ............................................................................................................................ 3
OBJETIVO ........................................................................................................................................................... 4
MÉTODO DE SOLUCIÓN ......................................................................................................................................... 4
ALCANCES Y LIMITACIONES .................................................................................................................................... 5
Alcances ...................................................................................................................................................... 5
Limitaciones ................................................................................................................................................ 5
BENEFICIOS ........................................................................................................................................................ 5
CAPÍTULO 1 ESTADO DEL ARTE ............................................................................................................. 7
1.1 COMPORTAMIENTO DE CONDUCCIÓN .......................................................................................................... 7
1.2 MÉTODOS NO BASADOS EN VISIÓN POR COMPUTADORA .................................................................................. 8
1.3 MÉTODOS BASADOS EN VISIÓN POR COMPUTADORA ....................................................................................... 9
1.3.1. Detección de la posición de la cara ............................................................................................. 9
1.3.2. Detección de la dirección de la mirada ..................................................................................... 10
1.3.3. Detección de la posición corporal ............................................................................................. 10
1.3.4. Detecciones mixtas ................................................................................................................... 11
1.4 CONCLUSIONES ..................................................................................................................................... 11
CAPÍTULO 2 MARCO TEÓRICO ............................................................................................................. 13
2.1 CIENCIAS COGNITIVAS ............................................................................................................................. 13
2.2 INTELIGENCIA ARTIFICIAL ......................................................................................................................... 14
2.2.1. Visión artificial y procesamiento digital de imágenes .............................................................. 14
2.2.2. Sistemas expertos ..................................................................................................................... 32
2.2.3. Adquisición de conocimiento .................................................................................................... 32
2.2.4. Aprendizaje automático ........................................................................................................... 33
2.2.5. Minería de datos ....................................................................................................................... 33
2.3 REDES NEURONALES ARTIFICIALES ............................................................................................................. 35
2.3.1. La neurona artificial .................................................................................................................. 35
2.3.2. Entrenamiento y reconocimiento............................................................................................. 36
2.3.3. El perceptrón ............................................................................................................................. 36
2.3.4. El perceptrón multicapa ............................................................................................................ 37
2.3.5. Retropropagación de error (backpropagation) ........................................................................ 41
2.3.6. El perceptrón multicapa recurrente .......................................................................................... 44
ii
CAPÍTULO 3 METODOLOGÍA DE SOLUCIÓN ......................................................................................... 45
3.1 ADQUISICIÓN DE DATOS Y CONOCIMIENTO .................................................................................................. 46
3.1.1. Simulador de conducción .......................................................................................................... 46
3.2 CLASIFICACIÓN DEL COMPORTAMIENTO...................................................................................................... 47
3.2.1. Entrenamientos del sistema ..................................................................................................... 48
3.2.2. Pruebas del sistema .................................................................................................................. 48
CAPÍTULO 4 DESARROLLO ................................................................................................................... 49
4.1 RECOPILACIÓN DE INFORMACIÓN .............................................................................................................. 50
4.1.1. Sistema de captura de imágenes .............................................................................................. 50
4.1.2. Ejercicios de conducción en simulador...................................................................................... 57
4.1.3. Sistema de adquisición de conocimiento .................................................................................. 63
4.1.4. Adquisición de conocimiento de expertos en seguridad vial .................................................... 72
4.2 DETECCIÓN DE LA POSICIÓN DE LAS MANOS DEL CONDUCTOR CON VA .............................................................. 79
4.2.1. Limitaciones del sistema de visión artificial .............................................................................. 79
4.2.2. Detección automática del volante ............................................................................................ 81
4.2.3. Detección manual del volante .................................................................................................. 83
4.2.4. Detección de las manos del conductor ..................................................................................... 84
4.2.1. Etiquetado de las manos del conductor detectadas ................................................................. 88
4.2.2. Pruebas del sistema de visión artificial ..................................................................................... 90
4.3 PREPROCESAMIENTO Y ANÁLISIS DE DATOS ................................................................................................. 91
4.3.1. Selección de variables de registros de simulación .................................................................... 91
4.3.1. Generación de bases de datos finales ....................................................................................... 96
4.3.2. Aproximación para la generación de conocimiento simbólico ................................................. 99
4.3.3. Generación de reglas de comportamiento con minería de datos ........................................... 102
4.4 CLASIFICACIÓN DEL COMPORTAMIENTO USANDO RNAS .............................................................................. 108
4.4.1. Implementación de una neurona artificial.............................................................................. 108
4.4.2. Implementación de una RNA .................................................................................................. 111
4.4.3. Entrenamiento de las RNAs usadas para clasificación ........................................................... 119
CAPÍTULO 5 PRUEBAS Y RESULTADOS ............................................................................................... 125
5.1 DESCRIPCIÓN DE LAS PRUEBAS REALIZADAS ............................................................................................... 125
5.2 PRUEBAS DE LA CLASIFICACIÓN DEL COMPORTAMIENTO CON RNAS ............................................................... 126
5.3 PRUEBAS DE COHERENCIA EN LA PERCEPCIÓN DEL NIVEL DE RIESGO ................................................................ 129
5.4 COMPARACIÓN DE CLASIFICACIÓN POR RNAS Y DM ................................................................................... 131
5.5 PRUEBAS DE COMPROBACIÓN FINAL CON RNAS ........................................................................................ 132
5.5.1. Ejercicio 1 – Urbano ................................................................................................................ 133
5.5.2. Ejercicio 2 – Montaña ............................................................................................................. 134
5.5.3. Ejercicio 3 - Inter Urbano ........................................................................................................ 135
5.5.4. Ejercicio 4 - Circuito Continuo ................................................................................................. 136
CONCLUSIONES ........................................................................................................................................ 137
APORTACIONES ............................................................................................................................................... 139
TRABAJOS FUTUROS ......................................................................................................................................... 139
iii
REFERENCIAS BIBLIOGRÁFICAS ................................................................................................................ 141
REFERENCIAS EN LÍNEA ............................................................................................................................ 147
ANEXO A ENCUESTAS REALIZADAS A LOS EXPERTOS EN SEGURIDAD VIAL DESPUÉS DEL USO DE LA
HERRAMIENTA COPILOTO VIRTUAL EN LOS EXPERIMENTOS DE ADQUISICIÓN DEL CONOCIMIENTO ....... 149
iv
v
Lista de figuras
FIGURA 2.1 DIAGRAMA DE BLOQUES DE UN SISTEMA DE VA CLÁSICO .............................................................................. 15
FIGURA 2.2 DIAGRAMA DE BLOQUES DEL PDI ............................................................................................................. 15
FIGURA 2.3 REPRESENTACIÓN DE COLOR EN EL MODELO RGB PARA UNA IMAGEN DE 24 BITS .............................................. 16
FIGURA 2.4 FUNCIONES DE PROCESAMIENTO INDIVIDUAL Y DE VECINDAD ......................................................................... 17
FIGURA 2.5 CONVERSIÓN DE COLOR RGB A ESCALA DE GRISES MEDIANTE PDI .................................................................. 18
FIGURA 2.6 HISTOGRAMA DE UNA IMAGEN DIGITAL EN ESCALA DE GRISES ........................................................................ 19
FIGURA 2.7 BINARIZACIÓN DE UNA IMAGEN EN ESCALA DE GRISES MEDIANTE PDI .............................................................. 19
FIGURA 2.8 OPERACIÓN NOT DE UNA IMAGEN BINARIZADA .......................................................................................... 20
FIGURA 2.9 OPERACIÓN AND DE UNA IMAGEN RGB A COLOR Y UNA IMAGEN BINARIZADA ................................................. 21
FIGURA 2.10 EXTRACCIÓN DE FONDO DE UNA IMAGEN RGB A COLOR MEDIANTE PDI ........................................................ 21
FIGURA 2.11 SUMA DE UNA IMAGEN RGB A COLOR Y UNA IMAGEN CONSTANTE ............................................................... 22
FIGURA 2.12 RESTA DE DOS IMÁGENES RGB A COLOR. ................................................................................................. 22
FIGURA 2.13 RESULTADO DE SUMA DE IMÁGENES CON PDI CON Y SIN ACOTAMIENTO ........................................................ 23
FIGURA 2.14 BINARIZACIÓN DE UNA IMAGEN EN ESCALA DE GRISES MEDIANTE PDI CON VARIAS REGIONES ............................. 24
FIGURA 2.15 ETIQUETADO DE REGIONES CONEXAS A UNA IMAGEN BINARIZADA ................................................................. 25
FIGURA 2.16 DETECCIÓN DE BORDES A UNA IMAGEN BINARIZADA ................................................................................... 25
FIGURA 2.17 DETECCIÓN DE BORDES EMPLEANDO OPERADORES DE DERIVACIÓN ............................................................... 26
FIGURA 2.18 EJEMPLOS DE OPERADORES DE DERIVACIÓN A) PREWITT, B) SOBEL, C) FREI-CHEN Y D) LAPLACIANO ................... 27
FIGURA 2.19 CONVERSIÓN DE A) UNA MÁSCARA Y B) UNA REGIÓN DE VECINDAD A UN VECTOR UNIDIMENSIONAL .................... 27
FIGURA 2.20 IMÁGENES DEL GRADIENTE DE UNA IMAGEN DIGITAL A) EN X, B) EN Y, C) MAGNITUD Y D) DIRECCIÓN .................. 28
FIGURA 2.21 RESULTADOS DE DETECCIÓN DE BORDES CON A) SOBEL, B) PREWITT, C) FREI-CHEN Y D) CANNY ......................... 29
FIGURA 2.22 PLANTEAMIENTO DE CUATRO CÍRCULOS CON DIFERENTES CENTROS Y RADIOS EN UN PÍXEL ................................. 30
FIGURA 2.23 DIAGRAMA DE BLOQUES DE KDD ........................................................................................................... 34
FIGURA 2.24 DIAGRAMA DE UNA NEURONA ARTIFICIAL ................................................................................................ 35
FIGURA 2.25 DIAGRAMA DE PROCESAMIENTO DE UNA NEURONA ARTIFICIAL ..................................................................... 36
FIGURA 2.26 GRÁFICA DE LA FUNCIÓN ESCALÓN ......................................................................................................... 37
FIGURA 2.27 DIAGRAMA DE UNA RNA MULTICAPA ..................................................................................................... 37
FIGURA 2.28 DIAGRAMA DE UN PERCEPTRÓN MULTICAPA CON UNA CAPA OCULTA ............................................................. 40
FIGURA 2.29 GRÁFICA DE LA FUNCIÓN BINARIA SIGMOIDE ............................................................................................. 41
FIGURA 2.30 DIAGRAMA DE UN PERCEPTRÓN MULTICAPA RECURRENTE CON UNA CAPA OCULTA ........................................... 44
FIGURA 3.1 DIAGRAMA DE BLOQUES DE LA METODOLOGÍA DE SOLUCIÓN PLANTEADA PARA EL PROYECTO ............................... 45
FIGURA 4.1 ESQUEMA DE RELACIÓN ENTRE LA METODOLOGÍA PROPUESTA Y EL DESARROLLO REALIZADO ................................ 49
FIGURA 4.2 SENSOR DIGITAL DE IMÁGENES MICRON® MT9P031 ................................................................................... 51
FIGURA 4.3 REPRESENTACIÓN Y FUNCIONAMIENTO DE LA MÁSCARA BAYER ...................................................................... 52
FIGURA 4.4 A) CENTRO DE CONTROL Y B) MÓDULOS DE GENERACIÓN DEL SIMULADOR DEL PROYECTO CABINTEC .................. 54
FIGURA 4.5 FORMULARIO DE CONFIGURACIÓN DE FORMATO PARA CAPTURA DE IMÁGENES.................................................. 55
FIGURA 4.6 RESULTADOS DE UTILIZACIÓN DE FILTROS INFRARROJOS EN LA CAPTURA DE IMÁGENES ........................................ 55
FIGURA 4.7 FORMULARIO PRINCIPAL DEL SISTEMA DE CAPTURA DE IMÁGENES ................................................................... 56
FIGURA 4.8 CABINA DE SIMULACIÓN DEL SIMULADOR DEL PROYECTO CABINTEC .............................................................. 57
vi
FIGURA 4.9 PLANOS DE UBICACIÓN DE CABINA DE SIMULACIÓN, PANTALLAS DE PROYECCIÓN Y VÍDEO PROYECTORES ................. 58
FIGURA 4.10 MUESTRA DE IMÁGENES DE SENSOR EN UN EJERCICIO DE SIMULACIÓN ........................................................... 58
FIGURA 4.11 MUESTRA DE UN CUADRO DE VIDEOS DEL VISUAL EN UN EJERCICIO DE SIMULACIÓN .......................................... 59
FIGURA 4.12 UBICACIÓN DE SENSOR DE IMÁGENES E ILUMINADORES INFRARROJOS EN LA CABINA DE SIMULACIÓN ................... 60
FIGURA 4.13 MATÍAS SEVILLANO VECILLAS EJECUTANDO EJERCICIOS DE SIMULACIÓN EN LA CABINA DEL CABINTEC ................ 61
FIGURA 4.14 FORMULARIO PRINCIPAL DE LA HERRAMIENTA COPILOTO VIRTUAL ............................................................... 63
FIGURA 4.15 MENÚS Y SUB-MENÚS DE LA HERRAMIENTA COPILOTO VIRTUAL .................................................................. 64
FIGURA 4.16 ESTRUCTURA DE DIRECTORIOS PARA LA APERTURA DE SESIONES DE SIMULACIÓN CON COPILOTO VIRTUAL ............ 65
FIGURA 4.17 CONTROLES DE REPRODUCCIÓN DE SIMULACIÓN DEL FORMULARIO PRINCIPAL DE LA HERRAMIENTA ..................... 65
FIGURA 4.18 INFORMACIÓN DE SIMULACIÓN DEL FORMULARIO PRINCIPAL DEL COPILOTO VIRTUAL ....................................... 66
FIGURA 4.19 MAPAS DE LUZ UTILIZADOS PARA LA REPRESENTACIÓN DE LAS LUCES DEL VEHÍCULO ......................................... 66
FIGURA 4.20 INFORMACIÓN DE VALORACIÓN DE EXPERTO DEL FORMULARIO PRINCIPAL DEL COPILOTO VIRTUAL ...................... 67
FIGURA 4.21 INFORMACIÓN DE VALORACIÓN DE EXPERTO DEL FORMULARIO PRINCIPAL DEL COPILOTO VIRTUAL ...................... 67
FIGURA 4.22 MODOS DE REPRESENTACIÓN POR MEDIO DEL CONTROL TACÓMETRO ........................................................... 68
FIGURA 4.23 FORMULARIO DINÁMICO PARA LA INSPECCIÓN DE VARIABLES ....................................................................... 68
FIGURA 4.24 UTILIZACIÓN DE BIBLIOTECAS DEL SISTEMA COPILOTO VIRTUAL .................................................................... 69
FIGURA 4.25 COPILOTO VIRTUAL EN FUNCIONAMIENTO CON INSPECCIÓN DE TRES VARIABLES .............................................. 69
FIGURA 4.26 VISTA DE DATOS EN EL FORMULARIO PRINCIPAL DEL COPILOTO VIRTUAL ........................................................ 70
FIGURA 4.27 MENÚ VALORACIÓN EXPERTO PARA EL MANEJO DEL CONOCIMIENTO ADQUIRIDO ............................................. 71
FIGURA 4.28 IMAGEN DE LA REALIZACIÓN DE LA ADQUISICIÓN DE CONOCIMIENTO EN LAS INSTALACIONES DE RACE ................. 72
FIGURA 4.29 DISTRIBUCIÓN DE EXPERTOS EN SEGURIDAD VIAL EN LA EJECUCIÓN DE EXPERIMENTOS DE VALORACIÓN ................ 73
FIGURA 4.30 GRÁFICA DE LOS NIVELES DE VALORACIÓN DE SEGURIDAD DE LOS TRES EXPERTOS EN EL EJERCICIO 1 ..................... 75
FIGURA 4.31 GRÁFICA DE LOS NIVELES DE VALORACIÓN DE SEGURIDAD DE LOS TRES EXPERTOS EN EL EJERCICIO 2 ..................... 76
FIGURA 4.32 GRÁFICA DE LOS NIVELES DE VALORACIÓN DE SEGURIDAD DE LOS TRES EXPERTOS EN EL EJERCICIO 3 ..................... 76
FIGURA 4.33 GRÁFICA DE LOS NIVELES DE VALORACIÓN DE SEGURIDAD DE LOS TRES EXPERTOS EN EL EJERCICIO 4 ..................... 77
FIGURA 4.34 GRÁFICA DE LOS NIVELES DE VALORACIÓN DE SEGURIDAD SUAVIZADOS .......................................................... 78
FIGURA 4.35 MUESTRA DE IMÁGENES CON PROBLEMAS EN LA PRECEPCIÓN DE PROFUNDIDAD DE SUS ELEMENTOS ................... 79
FIGURA 4.36 MUESTRA DE IMÁGENES CON ERRORES DE DETECCIÓN POR PARTE DEL SISTEMA DE VA ..................................... 80
FIGURA 4.37 PDI PARA LA DETECCIÓN AUTOMÁTICA DEL VOLANTE EN IMÁGENES DEL SENSOR.............................................. 81
FIGURA 4.38 RESULTADOS DE LA DETECCIÓN AUTOMÁTICA EN EL VOLANTE EN TRES DISTINTAS SITUACIONES ........................... 82
FIGURA 4.39 FORMULARIO PRINCIPAL DE LA HERRAMIENTA DE SELECCIÓN MANUAL DE REGIONES DE BÚSQUEDA ..................... 83
FIGURA 4.40 ENMASCARAMIENTO DE IMÁGENES CON LA ZONA DEL VOLANTE POR MEDIO DE OPERACIÓN AND ....................... 84
FIGURA 4.41 BINARIZACIÓN DE IMÁGENES ENMASCARADAS CON LA ZONA DEL VOLANTE POR MEDIO DE OTSU ........................ 84
FIGURA 4.42 RESULTADO DE DETECCIÓN DESPUÉS DE LA PRIMERA ETAPA DEL SISTEMA DE VA .............................................. 85
FIGURA 4.43 DETECCIÓN DE MÁS DE DOS REGIONES DESPUÉS DE LA PRIMERA ETAPA DEL SISTEMA DE VA ............................... 85
FIGURA 4.44 REDUCCIÓN DE REGIONES POR FILTRO DE DISTANCIA EN LA SEGUNDA ETAPA DEL SISTEMA DE VA ........................ 86
FIGURA 4.45 PDI PARA EL FILTRO DE REGIONES CONEXAS EN LA TERCERA ETAPA DEL SISTEMA DE VA .................................... 87
FIGURA 4.46 REDUCCIÓN DE REGIONES EN FILTRO DE REGIONES CONEXAS EN LA TERCERA ETAPA DEL SISTEMA DE VA ............... 87
FIGURA 4.47 RESULTADO DEL ETIQUETADO DE LAS MANOS DEL CONDUCTOR DETECTADAS AUTOMÁTICAMENTE ...................... 88
FIGURA 4.48 EJEMPLOS DE RESULTADOS DE LA DETECCIÓN AUTOMÁTICA DE LAS MANOS POR MEDIO DE VA .......................... 89
FIGURA 4.49 SISTEMA IMPLEMENTADO EN MICROSOFT® ACCESS® PARA LA GENERACIÓN DE BD FINALES ............................... 97
FIGURA 4.50 PANTALLA PRINCIPAL DE LA HERRAMIENTA DE DM RAPIDMINER DE LA EMPRESA RAPID-I ............................... 102
FIGURA 4.51 DIAGRAMA DE LA NEURONA ARTIFICIAL IMPLEMENTADA EN LA CLASE C_NEURON ......................................... 108
FIGURA 4.52 DIAGRAMA DE LA RNA IMPLEMENTADA EN LA CLASE C_MLPERCEPTRON ................................................... 111
vii
FIGURA 4.53 PARÁMETROS DE CONFIGURACIÓN DE UNA RNA DE LA CLASE C_MLPERCEPTRON ........................................ 112
FIGURA 4.54 DIAGRAMA DEL ARREGLO INTERNO DE NEURONAS DE UNA RNA DE LA CLASE C_MLPERCEPTRON .................... 114
FIGURA 4.55 ACCESO A NEURONAS MEDIANTE LA FUNCIÓN NEURON ........................................................................... 115
FIGURA 4.56 DIAGRAMA DE CONEXIÓN ENTRE LA MATRIZ DE APRENDIZAJE Y EL ARREGLO DE NEURONAS DE LA RNA .............. 116
FIGURA 4.57 DIAGRAMA DE CONEXIÓN ENTRE VECTORES (ENTRADA/SALIDA) Y EL ARREGLO DE NEURONAS DE LA RNA ........... 118
FIGURA 4.58 DIAGRAMA DE CONEXIÓN DE LA RNA CON EL SELECTOR IMPLEMENTADO EN LA FUNCIÓN WTALLINEX .............. 118
FIGURA 4.59 GRÁFICA COMPARATIVA DEL TIEMPO DE PROCESAMIENTO POR ÉPOCA ENTRE DIVERSAS HERRAMIENTAS ............ 119
FIGURA 4.60 GRÁFICA DE TIEMPO DE PROCESAMIENTO POR ÉPOCA DEL SIMULADOR IMPLEMENTADO .................................. 119
FIGURA 4.61 GRÁFICA DE TIEMPO DE PROCESAMIENTO POR ÉPOCA DE RNAS CON DIFERENTES NEURONAS OCULTAS .............. 120
FIGURA 4.62 GRÁFICA COMPARATIVA DE REDUCCIÓN DE ERROR PARA RNAS CON DIFERENTES NEURONAS OCULTAS ............... 120
FIGURA 5.1 FORMULARIO DE INFORMACIÓN VISUAL DE LA CLASIFICACIÓN DEL COMPORTAMIENTO CON RNAS ...................... 132
viii
ix
Lista de tablas
TABLA 2.1 RESULTADO DE MATRIZ DE VOTACIÓN DE GHT PARA CUATRO CÍRCULOS PLANTEADOS. ......................................... 31
TABLA 2.2 NOMENCLATURA UTILIZADA EN EL ESTUDIO DEL ALGORITMO BP ...................................................................... 39
TABLA 4.1 ESTRUCTURA ESTÁNDAR PARA NOMBRES DE ARCHIVOS DE IMÁGENES CAPTURADA ............................................... 53
TABLA 4.2 PARÁMETROS DE CONEXIÓN CON SERVIDOR DE SIMULADOR ............................................................................ 54
TABLA 4.3 RESUMEN DE LOS CUATRO EJERCICIOS CAPTURADOS EN LA CABINA DE SIMULACIÓN DEL CABINTEC ....................... 61
TABLA 4.4 EJEMPLO DE ENCABEZADO DE ARCHIVOS DE REGISTROS DE SIMULACIÓN ............................................................ 62
TABLA 4.5 VARIABLES CONTENIDAS EN LOS ARCHIVOS DE INFORMACIÓN GENERADOS POR EL SIMULADOR ............................... 62
TABLA 4.6 EJEMPLO DE FINALIZACIÓN DE LOS ARCHIVOS DE REGISTROS DE SIMULACIÓN ...................................................... 63
TABLA 4.7 PERIODOS DE VALORACIÓN DE SEGURIDAD POR EJERCICIO PARA LA ADQUISICIÓN DEL CONOCIMIENTO ..................... 72
TABLA 4.8 TURNOS ALEATORIOS DE EVALUACIÓN DE EXPERIMENTOS POR EXPERTO ............................................................ 73
TABLA 4.9 RANGOS DE CUANTIFICACIÓN DE NIVEL DE RIESGO PARA LAS CINCO CLASES DE COMPORTAMIENTO ......................... 74
TABLA 4.10 MUESTRAS POR CLASE DE COMPORTAMIENTO DE CONDUCCIÓN POR EJERCICIO DEL EXPERTO 1 ............................ 74
TABLA 4.11 MUESTRAS POR CLASE DE COMPORTAMIENTO DE CONDUCCIÓN POR EJERCICIO DEL EXPERTO 2 ............................ 74
TABLA 4.12 MUESTRAS POR CLASE DE COMPORTAMIENTO DE CONDUCCIÓN POR EJERCICIO DEL EXPERTO 3 ............................ 74
TABLA 4.13 PARÁMETROS ALMACENADOS POR LA HERRAMIENTA DE SELECCIÓN MANUAL DE REGIONES ................................. 83
TABLA 4.14 RESULTADOS DEL SISTEMA DE VA CONSIDERANDO ERRÓNEAS LAS SITUACIONES LIMITANTES ................................ 90
TABLA 4.15 RESULTADOS DEL SISTEMA DE VA CONSIDERANDO CORRECTAS LAS SITUACIONES LIMITANTES.............................. 90
TABLA 4.16 RESULTADO DE SELECCIÓN DE VARIABLES CON EL ALGORITMO RELIEFF PARA EJERCICIO 1 - EXPERTO 1 .................. 91
TABLA 4.17 RELACIÓN DE SELECCIÓN DE VARIABLES ENTRE RELIEFF Y CFS PARA EJERCICIO 1 - EXPERTO 1 .............................. 92
TABLA 4.18 RESULTADO DE SELECCIÓN DE VARIABLES CON RELIEFF PARA EJERCICIO 1 - EXPERTO 1 ...................................... 93
TABLA 4.19 RESULTADO DE SELECCIÓN DE VARIABLES CON RELIEFF PARA EJERCICIO 1 - EXPERTOS 1, 2 Y 3 ............................ 93
TABLA 4.20 RESULTADO DE SELECCIÓN DE VARIABLES CON RELIEFF PARA EJERCICIOS 1, 2, 3 Y 4 - EXPERTO 1 ......................... 94
TABLA 4.21 COMPARACIÓN DE VARIABLES DISCRIMINADAS EN EXPERIMENTOS DE SELECCIÓN DE VARIABLES ............................ 94
TABLA 4.22 VARIABLES SELECCIONADAS PARA LA ALIMENTACIÓN DEL SISTEMA CLASIFICADOR .............................................. 95
TABLA 4.23 VARIABLES NO SELECCIONADAS PARA LA ALIMENTACIÓN DEL SISTEMA CLASIFICADOR ......................................... 96
TABLA 4.24 DIVISIÓN DE DATOS DE PRUEBA Y DE ENTRENAMIENTO POR CLASE PARA VALORACIONES DE EXPERTO 1 ................. 98
TABLA 4.25 DIVISIÓN DE DATOS DE PRUEBA Y DE ENTRENAMIENTO POR CLASE PARA VALORACIONES DE EXPERTO 2 ................. 98
TABLA 4.26 DIVISIÓN DE DATOS DE PRUEBA Y DE ENTRENAMIENTO POR CLASE PARA VALORACIONES DE EXPERTO 3 ................. 98
TABLA 4.27 RECOMENDACIONES AL CONDUCTOR DEL ESTADO DE NUEVA YORK ................................................................ 99
TABLA 4.28 RECOMENDACIONES AL CONDUCTOR DEL CONAE, MÉXICO ....................................................................... 100
TABLA 4.29 RECOMENDACIONES AL CONDUCTOR DE LA UNIVERSIDAD POLITÉCNICA DE MADRID ........................................ 100
TABLA 4.30 EFECTIVIDAD DE CLASIFICACIÓN DEL COMPORTAMIENTO CON REGLAS GENERADAS CON RIPPER ........................ 103
TABLA 4.31 EFECTIVIDAD DE CLASIFICACIÓN DEL COMPORTAMIENTO CON REGLAS GENERADAS CON CART ........................... 103
TABLA 4.32 RESUMEN DE RESULTADOS DE ENTRENAMIENTO DE LAS RNAS CLASIFICADORAS PARA EL EJERCICIO 1 .................. 122
TABLA 4.33 RESUMEN DE RESULTADOS DE ENTRENAMIENTO DE LAS RNAS CLASIFICADORAS PARA EL EJERCICIO 2 .................. 122
TABLA 4.34 RESUMEN DE RESULTADOS DE ENTRENAMIENTO DE LAS RNAS CLASIFICADORAS PARA EL EJERCICIO 3 .................. 122
TABLA 4.35 RESUMEN DE RESULTADOS DE ENTRENAMIENTO DE LAS RNAS CLASIFICADORAS PARA EL EJERCICIO 4 .................. 122
TABLA 4.36 CARACTERÍSTICAS DE LAS COMPUTADORAS UTILIZADAS EN EL ENTRENAMIENTO DE LAS RNAS ............................ 123
TABLA 5.1 RESULTADOS DE LA CLASIFICACIÓN DEL COMPORTAMIENTO UTILIZANDO DATOS DE PRUEBA DEL EJERCICIO 1 .......... 126
x
TABLA 5.2 RESULTADOS DE LA CLASIFICACIÓN DEL COMPORTAMIENTO UTILIZANDO DATOS DE PRUEBA DEL EJERCICIO 2 .......... 127
TABLA 5.3 RESULTADOS DE LA CLASIFICACIÓN DEL COMPORTAMIENTO UTILIZANDO DATOS DE PRUEBA DEL EJERCICIO 3 .......... 127
TABLA 5.4 RESULTADOS DE LA CLASIFICACIÓN DEL COMPORTAMIENTO UTILIZANDO DATOS DE PRUEBA DEL EJERCICIO 4 .......... 128
TABLA 5.5 COMPARACIÓN DE PORCENTAJE DE EFECTIVIDAD DE LAS RNAS EN DATOS DE PRUEBA Y ENTRENAMIENTO .............. 128
TABLA 5.6 RESULTADOS DE LAS PRUEBAS DE COHERENCIA EN LA PERCEPCIÓN DEL NIVEL DE RIESGO DEL EXPERTO 1 ................ 129
TABLA 5.7 RESULTADOS DE LAS PRUEBAS DE COHERENCIA EN LA PERCEPCIÓN DEL NIVEL DE RIESGO DEL EXPERTO 2 ................ 129
TABLA 5.8 RESULTADOS DE LAS PRUEBAS DE COHERENCIA EN LA PERCEPCIÓN DEL NIVEL DE RIESGO DEL EXPERTO 3 ................ 130
TABLA 5.9 COMPARACIÓN DE EFECTIVIDAD DE CLASIFICACIÓN DEL COMPORTAMIENTO CON RNAS Y DM ............................. 131
TABLA 5.10 RANGOS DE CUANTIFICACIÓN DE NIVEL DE RIESGO PARA LAS CINCO CLASES DE COMPORTAMIENTO ..................... 132
xi
Lista de acrónimos
BB6 Borland Builder Versión 6
BD Base de datos
BDs Bases de datos
BP Backpropagation (Retropropagación).
CABINTEC Cabina Inteligente para el Transporte por Carretera.
CEIT Centro de Estudios e Investigaciones Técnicas de Gipuzkoa
CENIDET Centro Nacional de Investigación y Desarrollo Tecnológico.
CONACYT Consejo Nacional de Ciencia y Tecnología
DM Data Mining (Minería de datos)
FF Feed Forward (Alimentación hacia adelante).
FPGA Field Programmable Gate Arrays (Arreglos de compuertas programables de campo)
FRAV Face Recognition & Artificial Vision Group (Grupo de reconocimiento de rostros y VA) de la URJC.
GHT Generalized Hough Transform (Transformada de Hough generalizada)
HT Hough Transform (Transformada de Hough)
IA Inteligencia Artificial.
IC Ingeniero del Conocimiento
ISO International Standard Organization (Organización Internacional de Estándares).
IVIS In-Vehicle Advanced Information Systems (Sistemas avanzados de información en el vehículo).
KDD Knowledge Discovery in Databases (Descubrimiento de conocimiento en bases de datos)
KNN K- Nearest Neighbor (K Vecino más cercano)
MCA Multiple Classification Analysis (Análisis de clasificación múltiple)
ML Machine Learning (Aprendizaje Automático)
PDI Procesamiento Digital de Imágenes.
RACE Real Automóvil Club de España
RFID Radio Frequency IDentification (Identificación por radiofrecuencia).
RNA Red Neuronal Artificial.
RNAs Redes Neuronales Artificiales.
SIT Sistemas Inteligentes de Transporte.
SITs Sistemas Inteligentes de Transporte.
SO Sistema Operativo
URJC Universidad Rey Juan Carlos (Madrid, España).
VA Visión Artificial.
xii
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 1
Introducción
La creciente preocupación a nivel mundial por el tema de la seguridad vial en carreteras, ha llevado
a diversos grupos y comunidades a realizar investigaciones para la creación de sistemas que
ayuden en la reducción de riesgos y accidentes mediante la aplicación de técnicas de Inteligencia
Artificial (IA) [Malik, 2008].
Uno de los métodos más efectivos para el cumplimiento de este objetivo es el desarrollo de
vehículos más seguros mediante la implementación de dispositivos de ayuda como: navegadores,
bolsas de aire inteligentes, sistemas de prevención de cambio involuntario de carril, asistentes de
frenado, etc. Dichos sistemas, diseñados a partir de factores detectados como causas principales
de accidentes viales, son incorporados año con año a vehículos comerciales con la finalidad de
brindar mayor seguridad a conductores y pasajeros [Brazález, 2008].
Uno de los principales problemas en la seguridad de las carreteras, es la generación de
accidentes debido a un mal comportamiento de conducción. Dicho comportamiento depende de
múltiples factores externos o internos, como el tipo y condiciones de la carretera por la que se
transita, la carga vehicular, las condiciones ambientales, el tipo de vehículo que se conduce, las
condiciones físicas y anímicas del conductor, entre otros [Pettit, 2005].
En los últimos años se han realizado numerosas investigaciones en torno a la detección
automática del comportamiento de conductores de vehículos para el desarrollo de sistemas que
detecten conductas inapropiadas con anticipación y prevengan ciertos tipos de accidentes. Los
enfoques adoptados por dichos trabajos pueden ser divididos en dos grandes grupos:
Métodos basados en el reconocimiento de conductas con poca o nula información visual.
Estos métodos se basan principalmente en información proveniente de sensores montados en el vehículo o en el propio conductor. Con estos datos, es posible conocer en todo momento información del fenómeno de conducción como velocidad, aceleración y posición del vehículo o presión, frecuencia de pestañeo y posición del conductor. De estas mediciones es posible derivar datos como la frecuencia de frenado, frecuencia de cambio de carril, aceleración vertical y horizontal de desplazamiento, estado de atención y somnolencia del conductor o su velocidad de respuesta. Dicha información permite modelar el estado de un conductor para determinar y estudiar su conducta. Para este tipo de métodos, la información visual, cuando está presente, es complementaria a la información obtenida por medio de sensores.
Métodos basados en información visual y visión por computadora.
Estos métodos trabajan de modo similar a los descritos en el punto anterior; sin embargo, su diferencia radica en la forma en la que adquieren la información mediante la que se modela y determina el comportamiento del conductor. Estos métodos se basan principalmente en información obtenida a través de métodos de visión artificial (VA) y puede ser complementada con alguna otra información que provenga de sensores montados en el vehículo.
En este proyecto de investigación se utilizará este último enfoque para realizar un sistema
que, basado en Redes Neuronales Artificiales (RNAs), sea capaz de clasificar automáticamente el
comportamiento de conductores de camiones de transporte y/o carga.
Introducción
2 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Antecedentes
Existen muy pocos estudios en el mundo relacionados con la causa de la accidentalidad en
carreteras [Fernández, 2006]. Por citar un ejemplo, en España estudios recientes han demostrado
que la distracción del conductor es la causa del 39% de este tipo de accidentes causando casi
55,818 accidentes de los 143,124 registrados [RACC, 2006] [Conselleria, 2004].
La creciente preocupación a nivel europeo por la seguridad vial ha creado proyectos como
la iniciativa eSafety, cuyo objetivo consiste en reducir en un 50% las víctimas de carretera en un
periodo de 9 años (2001-2010) [eSafety, 2002]. Dichos proyectos, financiados en su mayoría por
agencias gubernamentales, son desarrollados en conjunto por empresas, centros de investigación
e instituciones académicas.
La realización de este proyecto en el grupo de Visión Artificial del Departamento de
Ciencias Computacionales (DCC) del Centro Nacional de Investigación y Desarrollo Tecnológico
(CENIDET) surge del convenio de colaboración fechado el 22 de junio de 2007 entre esta
Institución y el grupo reconocimiento de rostros y visión artificial (FRAV, por las siglas en inglés de
Face Recognition & Artificial Vision Group) de la Universidad Rey Juan Carlos (URJC) de Madrid,
España. Grupo dirigido por el Dr. Enrique Cabello Pardos, que funge como Co-Director de esta
tesis.
La URJC a través del FRAV participa activamente en el proyecto Cabina Inteligente para el
Transporte por Carretera (CABINTEC) cuyo objetivo principal es el diseño de un vehículo dotado
con tecnologías inteligentes, capaces de detectar el comportamiento del conductor, así como el
estudio de los parámetros que caracterizan al vehículo y al conductor en los instantes previos a un
accidente [CABINTEC, 2008]. El proyecto CABINTEC se divide en varios sub-proyectos cuyos
objetivos individuales se describen brevemente a continuación:
• ASISTE:
Crear una plataforma abierta de hardware y de software que integre la información de los
sensores que incorporan los vehículos y los SIT (Sistemas Inteligentes de Transporte).
• HITO:
Garantizar una conducción segura con las actuales y futuras incorporaciones de las
tecnologías de la información y las comunicaciones.
• REGISTRA:
Diseñar y construir un sistema de reconstrucción de accidentes que incluya datos del
vehículo, del conductor y del entorno de conducción.
• ALERTA:
Desarrollar un sistema que determine faltas de atención del conductor mediante su
monitorización con técnicas de Procesamiento Digital de Imágenes (PDI) y mediciones de la
dinámica del vehículo.
• eSeñal:
Mejora de la seguridad vial con la implantación del modelo de señalización a bordo y
señales reconfigurables Radio Frequency IDentification (RFID) insertadas en la carretera.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 3
• ESTABLE:
Evaluación de las condiciones de estabilidad dinámica de vehículos, en diferentes
condiciones de carga, avisando al conductor del riesgo de vuelco durante la circulación.
• CONECTA:
Vigilancia tecnológica, vigilancia económica, posibles subproductos, difusión de las
actividades y resultados más relevantes del proyecto.
El sub-proyecto en el que se colaborará mediante el desarrollo de esta tesis es ALERTA,
pues se propone que el sistema que resulte de este proyecto de investigación sea utilizado
posteriormente en el desarrollo de un sistema que sea capaz de alertar al conductor cuando su
comportamiento no sea el adecuado en situaciones específicas; así mismo, con ciertos productos
derivados de esta investigación, se realizará una colaboración para el sub-proyecto REGISTRA.
En el CENIDET, no existen antecedentes de proyectos relacionados con la seguridad vial o
con la clasificación automática del comportamiento de conductores de ningún tipo de vehículos.
Planteamiento del problema
Actualmente la seguridad vial es un problema mundial que está siendo tratado por diversos centros
de investigación, principalmente europeos, que se encargan de desarrollar dispositivos de ayuda
para el conductor. Dichos sistemas, que suponen una reducción en la cantidad de accidentes en
carreteras, se encuentran, en su mayoría, en etapas muy tempranas de desarrollo por lo que aún
no es posible confiarles vidas humanas en su totalidad [Dankers, 2001] [Brazales, 2008].
Existen varios trabajos que están en marcha actualmente para desarrollar sistemas
automáticos de asistencia al conductor. Dichos trabajos pueden ser clasificados como sistemas de
control total (seguridad activa) o sistemas de control parcial (seguridad pasiva) de acuerdo al nivel
de acceso que tengan al vehículo [Nobuyuki, 2000].
Los sistemas de control parcial son aquellos que requieren de asistencia humana para
conducir el vehículo, tal es el caso de los sistemas de crucero incluidos en vehículos de lujo que
permiten mantener una velocidad constante sin la necesidad del uso de pedales de aceleración o
frenado. Por su parte, los sistemas de control total son aquellos que son capaces de conducir el
vehículo de forma autónoma sin asistencia alguna, como los sistemas de prevención automática de
cambio de carril.
Estos últimos, en particular, requieren de una interacción constante con el conductor. Para
ello se hace necesaria la creación de un sistema de clasificación automática de su comportamiento
que pueda conocer, evaluar e incluso predecir sus acciones para saber cuándo es o no
conveniente su actuación sobre las decisiones de un ser humano; así mismo, el desarrollo de un
sistema de este tipo puede derivar en la reducción de accidentes carreteros causados por razones
inherentes al conductor mediante la detección temprana de situaciones de alto riesgo que le
permita tomar medidas correctivas y/o preventivas a su debido tiempo.
Introducción
4 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Objetivo
El objetivo principal de este proyecto de investigación es el diseño, desarrollo e implementación de
un sistema de cómputo que sea capaz de clasificar el comportamiento de conductores de
camiones de transporte y/o carga, para su posible aplicación en un sistema de alerta que pueda
realizar una detección temprana de situaciones de riesgo al realizar esta tarea.
Para alcanzar este objetivo se tienen dos objetivos específicos que se presentan a
continuación:
Diseño e implementación de modelos cognitivos para la clasificación del comportamiento
de un conductor de vehículos de transporte y/o carga, obtenidos a partir de conocimientos
simbólicos (tales como reglas de producción) en combinación con información visual
(posición de las manos del conductor en el volante) y datos provenientes de la dinámica
del vehículo mediante la implementación de RNAs, que sean capaces de realizar la
clasificación de dichos comportamientos de una forma adecuada.
Diseño e implementación de un módulo de VA que sea capaz de obtener datos para la
alimentación del sistema de clasificación de comportamiento de conducción mediante el
análisis de la posición de las manos dentro de una secuencia de imágenes tomadas de
una cabina de simulación de conducción de camiones.
Método de solución
Los pasos que se aplicaron para el desarrollo de este trabajo de investigación se presentan a
continuación:
1. Obtención de datos y videos para análisis y pruebas.
2. Investigación del estado del arte.
3. Adquisición de información de expertos en seguridad vial.
4. Diseño del sistema de VA para la detección de la posición de las manos del conductor:
5. Estudio e implementación del sistema neuronal para clasificación.
6. Generación de bases de datos finales.
7. Entrenamiento y pruebas del sistema.
8. Documentación y elaboración del documento de tesis.
Cada uno de estos pasos (expuestos en la metodología de solución en el capítulo 3) fue
necesario para el cumplimiento del objetivo planteado para este proyecto. Además, como aporte
adicional a este trabajo, se realizaron sistemas y experimentos que son descritos en los capítulos 4
y 5 que corresponden al desarrollo y análisis de pruebas y resultados respectivamente.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 5
Alcances y limitaciones
A continuación se exponen los alcances y limitaciones considerados para el desarrollo de este
proyecto de investigación.
Alcances
Este estudio se dirige únicamente al comportamiento de conducción de choferes de vehículos de transporte y/o carga.
En el diseño de los modelos cognitivos se consideran conocimientos simbólicos en torno a la tarea de conducción de los vehículos, en particular en forma de reglas que describan dicho comportamiento, en conjunto con datos
1 numéricos provenientes de la dinámica del
vehículo y del módulo de VA.
Se consideran tres tipos de comportamiento de conducción (seguro, aceptable y riesgoso) relativos al desempeño del individuo conforme a las normas de seguridad obtenidas en los modelos cognitivos.
Aplicación de RNA para la clasificación del comportamiento.
Aplicación de técnicas de VA para la detección de la posición de las manos.
Limitaciones
Uso de videos y datos1 sincronizados provenientes de un simulador.
Condiciones controladas2 dentro de la cabina del simulador.
Uso de videos o imágenes en formato sin compresión.
Uso de datos1 en archivos de texto con formato estándar.
Beneficios
Los beneficios del desarrollo de un sistema de clasificación automática de comportamiento de
conductores (descritos en secciones de esta introducción) pueden también ser aplicados en
diversos Sistemas Inteligentes de Transporte (SITs). Algunas de estas posibles aplicaciones son:
Sistemas mediadores entre otros SITs de seguridad activa y los propios conductores.
Sistemas de alerta para la prevención de accidentes viales.
Sistemas de evaluación y/o capacitación de conductores.
Sistemas de reconstrucción, verificación y análisis de situaciones de conducción.
Sistemas de control de calidad en servicios de transporte.
Sistemas de investigación de causalidad de accidentes viales.
1 Los datos provenientes del simulador que se han considerado hasta este momento son velocidad, aceleración de los tres ejes, posición de
los pedales, estado de los cinturones de seguridad, giro del volante, estado de las luces, fecha y hora, clima y terreno simulado, estado del freno de mano, temperatura de la cabina, estado de la carga del vehículo y velocidad de cada rueda.
2 Se espera poder tener control sobre la Iluminación, escala, vestimenta y rotación.
Introducción
6 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 7
Capítulo 1
Estado del arte
En este capítulo se presenta el estudio del estado del arte realizado como parte de la
metodología de solución propuesta para este proyecto.
Esta investigación, realizada con la finalidad de recopilar información suficiente para
abordar el tema, inicia con un estudio de los factores que influyen en el comportamiento del
conductor. Posteriormente, se presenta un análisis de la metodología de solución y
resultados de otros trabajos que abordan temas relacionados al objetivo de esta tesis.
Finalmente, se presentan las conclusiones derivadas de este estudio en relación a la
propuesta de solución de este trabajo y aquellas encontradas en la literatura.
1.1 Comportamiento de conducción
El buen comportamiento de conductores profesionales de camiones de transporte y/o carga se ve
afectado, principalmente, por falta de atención al momento de realizar su tarea principal. Dichas
faltas de atención son muchas veces atribuidas a la ejecución de una segunda tarea que requiere
más atención de la que el conductor puede manejar.
Una de las tareas secundarias más conocida y peligrosa al momento de conducir es el uso
de teléfonos celulares, cuyo alarmante incremento ha despertado el interés en el estudio de la
distracción del conductor en los últimos años. Aunque el uso de estos dispositivos trae consigo un
aumento en el riesgo para la seguridad vial [McCartt, 2006], existen estudios que demuestran que
representan una pequeña proporción de los factores que influyen en el problema de la distracción.
Por un lado se tienen las distracciones causadas por actividades cotidianas como comer,
fumar o sintonizar una estación en la radio y, por otro lado, las distracciones debidas al uso de
sistemas avanzados de información en el vehículo (IVIS por las siglas en inglés de In-Vehicle
Advanced Information Systems) que proporcionan información sobre el tráfico con la finalidad de
reducir tiempos y costos en cada viaje y, aunque su diseño debe tener en cuenta la distracción que
pueden causar al usuario, es evidente que mientras la proliferación de estos sistemas continúe, la
tasa de accidentes causadas por distracciones continuará aumentando [Stutts, 2001].
Capítulo 1 Estado del arte
8 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Numerosas investigaciones se han encargado del estudio de la distracción del conductor.
Muchas de éstas han tratado específicamente los efectos causados por el uso de teléfonos
celulares y, sus resultados, han sido publicados en escritos dirigidos a conductores y ciudadanos
más que a científicos; por ejemplo, en [McCartt, 2006], se realiza una revisión de 125 estudios
relacionados con telefonía celular y conducción. Este tipo de estudios, aunque se enfocan a un
solo aspecto de la distracción, han aportado mucha información que es ampliamente utilizada en
investigaciones respecto al tema.
La primera dificultad a la que se enfrenta el estudio de la distracción del conductor es que
no existe una definición general aceptada de distracción [Trezise, 2006]. La Organización
Internacional de Estándares (ISO por las siglas en inglés de International Standard Organization)
desarrolló la siguiente definición: “se trata de la atención prestada a una actividad no relacionada
con la conducción, que conlleva a un deterioro en el desempeño de conducción” [Pettitt, 2005]. Sin
embargo, existen trabajos donde se hace una distinción entre la distracción del conductor y otros
tipos de faltas de atención. Entonces, es posible definir esta distracción como una forma de falta de
atención en la que el conductor “reduce la atención a su tarea primaria, debido a un evento,
actividad, objeto o persona dentro o fuera del vehículo, produciendo un retraso en el
reconocimiento de la información en el ambiente que es necesaria para realizar una conducción
segura” [Stutts, 2001].
Indiferentemente de la causa de las faltas de atención, éstas son reflejadas en diversas
situaciones como cambios en la frecuencia de frenado o de rectificación de la posición, errores en
la señalización del vehículo, sobre aceleración del motor, retardos en reacciones a situaciones
externas, omisiones de señalizaciones en la carretera, entre otras. Situaciones que constituyen,
por un lado, algunos de los principales factores identificados como causantes de accidentes
carreteros y, por el otro, variables cuantificables que permiten el estudio de la distracción del
conductor a través de la clasificación automática de su comportamiento.
Existen diversas aproximaciones al problema, basadas en diferentes estrategias. A
continuación se presenta un breve análisis de los trabajos más significativos clasificados según el
método utilizado.
1.2 Métodos no basados en visión por computadora
En esta sección se incluyen trabajos que se han centrado en el reconocimiento de conductas o
estilos de conducción sin considerar información visual alguna. Los datos que se consideran en
estas investigaciones son parámetros de conducción dados por la dinámica del vehículo, como
posición del vehículo en el carril, tiempo y distancia de frenado, etc.
[Noboyuki, 2000]
Reconocimiento del comportamiento del conductor usando Modelos de Markov para
detectar y caracterizar las maniobras de conducción y situarlas en el contexto de un modelo
cognitivo de comportamiento. El estudio se centra en la tarea de mantenimiento y cambio de
carril en condiciones normales y de emergencia. Se consigue clasificar el tipo de cambio de
carril realizado.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 9
[Tricot, 2002]
Diagnosis de estilos de conducción y condiciones del tráfico mediante un análisis de
clasificación múltiple (MCA por las siglas en ingles de Multiple Classification Analysis).
[Jong-Hae, 2005]
Modelado del frenado de un conductor, por medio de un modelo lineal por partes, ante una
intersección. Se utiliza un simulador que permite una visión en tres dimensiones del ambiente.
Los datos utilizados para la generación del modelo son: perfil de velocidad, inicio del frenado y
punto de parada.
1.3 Métodos basados en visión por computadora
En esta sección se presentan trabajos donde la información utilizada es adquirida, parcial o
completamente, mediante técnicas de visión por computadora.
Los trabajos presentados en esta sección pueden ser subdivididos en cuatro grupos de
acuerdo a los parámetros considerados para la solución del problema. Estos subgrupos son:
Detección de la posición de la cara
Detección de la dirección de la mirada
Detección de la posición corporal
Mixtos (consideran más de uno de los parámetros anteriores)
1.3.1. Detección de la posición de la cara
[Liu, 1997]
Se usan Modelos de Markov para intentar reconocer lo que va a realizar un conductor en
cuanto al control del automóvil. Cada acción se modela como una secuencia de estados
mentales internos en un patrón característico del comportamiento, que se compara luego con
las acciones en tiempo real. Su principal motivación es predecir las acciones futuras del
conductor estudiando sus movimientos al volante, el cambio de postura antes de frenar,
movimientos de ojos al girar, etc.
[Kato, 2004]
Se utiliza una cámara de infrarrojo lejano para detectar la postura del conductor, ya que no
se ve afectada por la iluminación ambiental. Detectan primero la cara (en el histograma de
temperaturas es el objeto más caliente de la imagen) y luego los rasgos para estimar la
posición de la mirada. Sólo se identifica la mirada “hacia la derecha” o “hacia la izquierda”
(±45º) o de frente (0º). Los mejores resultados se dan cuando el conductor mira a los lados
posiblemente porque la cámara estaba delante del conductor, a la izquierda del volante.
Capítulo 1 Estado del arte
10 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
[Lakshmanan, 2001]
Comparación de los resultados en la estimación de la pose del conductor con caras-eigen,
caras-fisher y k vecinos más cercanos (KNN por las siglas en ingles de K Nearest Neighbor) en
una secuencia de vídeo. Definen siete tipos de poses (mirando hacia adelante, la radio, el
retrovisor, etc.). Se creó una base de datos (BD) con imágenes recortadas con la cara del
conductor con cada una de las poses. Se obtienen los mejores resultados con caras-fisher.
[Watta, 2002]
Continuación del trabajo [Lakshmanan, 2001] en el que se consideran siete poses
diferentes. Los clasificadores considerados en este caso fueron: KNN, Max-Min y RNAs.
Obteniendo los mejores resultados para estos últimos. Se considera también la utilización de
imágenes de transición (“inter-pose”), pero los resultados caen considerablemente.
1.3.2. Detección de la dirección de la mirada
[Akamatsu, 2002]
Los sujetos responden a un cuestionario que es sometido a un análisis de componentes
principales, luego se hacen experimentos reales en un vehículo con sensores en volante,
pedales al llegar a una intersección. Dichos sensores son utilizados para detectar los
movimientos en la preparación de una acción. El sujeto lleva una gorra con una cámara para
obtener la dirección de la mirada. Fue necesaria la conducción por una ruta cada día durante
dos meses para estabilizar las variables.
[Wahlstrom, 2003]
Se calcula la dirección a la que mira el conductor con una cámara situada en la
salpicadera. Primero se buscan los labios por color y después el resto de la cara. Finalmente
se detectan las pupilas de los ojos como los puntos más oscuros y se infiere así la dirección de
la mirada. No sólo calculan dónde se está mirando, también monitorizan el comportamiento
para detectar una acción como encender la radio. Los aciertos en la dirección de la mirada son
del 85%. La detección del encendido de la radio era satisfactoria siempre que se usara más de
un dedo para ello.
1.3.3. Detección de la posición corporal
[Park, 2005]
En este artículo se formula un modelo jerárquico para el análisis de la actividad del
conductor basado en visión por computadora en el marco de un vehículo inteligente. La
actividad del conductor es presentada y reconocida en múltiples niveles: posición corporal
como nivel básico o inferior, movimiento corporal en un nivel intermedio e interacciones del
conductor con el entorno en el nivel superior. La actividad del conductor es reconocida
mediante reglas basadas en un árbol de decisión. El sensor considerado es una cámara de
video en color.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 11
[Liu, 2002]
Sistema que detecta la pose en tiempo real ante condiciones de iluminación ambiental
normales. Dos métodos: no supervisado mediante una red competitiva más un método de
clustering, y otro supervisado con máquinas de soporte vectorial. Aplican pre-procesado a las
imágenes de filtrado, binarización, bordes, etc., pero no dan muchos detalles sobre los
resultados obtenidos.
[Marx, 2003]
Se analiza la conducta del conductor a partir de imágenes de video. Para ello se aplican
técnicas de flujo óptico que permiten extraer información del movimiento de la escena. El
método es probado en imágenes reales de un único conductor, detectando correctamente el
80% de las transiciones en la posición del individuo. Se utiliza como parámetro determinante
para la estimación de la conducta la posición hacia la que se está mirando. Se consideran siete
posiciones estándar del conductor. Las imágenes son analizadas a posteriori, por lo que no se
realiza ninguna indicación al conductor en tiempo real.
1.3.4. Detecciones mixtas
[Tricot, 2003]
Con un simulador, se programan rutas en las que los conductores se enfrentan a varias
situaciones. En este trabajo aseguran poder clasificar a los conductores según sus reacciones
ante situaciones específicas. El comportamiento del conductor incluye su estilo personal de
conducción, además del estrés, el estado de vigilia, la sensibilidad a “agresiones”, etc.
[McAllister, 2000]
Utilizan cámaras en el techo del coche a la altura de los hombros del conductor apuntando
al volante. Tras la resta del fondo y el cálculo de la probabilidad de las zonas de la mano con
técnicas de Bayes, se detectan las manos y se unen componentes conexas. Tienen un modelo
geométrico de la mano y se aplica un filtro de Kalman para predecir el movimiento. Se tienen
buenos resultados, incluso si existen cruzamientos.
1.4 Conclusiones
Los trabajos presentados en esta sección son una muestra de algunos enfoques adoptados en
investigaciones que pretenden realizar una clasificación automática del comportamiento de
conductores. Debido a los problemas que implica la aplicación de cámaras o sensores en
vehículos reales, la mayoría de los trabajos presentados basan su funcionamiento en datos
provenientes de simuladores de conducción. Aunque la esencia de todos los trabajos va dirigida
hacia el mismo objetivo, no se encontró algún trabajo que intente modelar el comportamiento del
conductor con datos provenientes de la dinámica del vehículo tomados de un simulador en
combinación con otros provenientes de un sistema de VA que detecte la posición de sus manos
aplicando RNAs para su clasificación.
Capítulo 1 Estado del arte
12 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 13
Capítulo 2
Marco teórico
Para el cumplimiento del objetivo en este trabajo se desarrolló un sistema inteligente que es
capaz de clasificar el comportamiento de conductores de camiones de transporte y/o carga
de modo similar al que lo hace un experto en seguridad vial. Para el estudio y desarrollo de
dicho sistema es necesario abordar un conjunto de temas sobre los que se fundamenta este
trabajo. En este capítulo se exponen brevemente dichos temas con el objetivo de introducir
al lector a la terminología utilizada en las siguientes secciones de este documento. Los
temas a abordar son ciencias cognitivas, inteligencia artificial y redes neuronales artificiales.
2.1 Ciencias cognitivas
Las ciencias cognitivas intentan comprender cómo un sistema físico puede recibir, seleccionar y
procesar información. Hasta ahora, se conocen sólo dos tipos de entidades capaces de hacer esto:
las computadoras y el cerebro (algunos autores hablan metafóricamente de "cerebro seco" y
"cerebro húmedo") [Echegoyen, 2000].
La psicología cognitiva es la rama de las ciencias cognitivas que estudia a la mente
humana, entendiendo a ésta como una entidad que procesa o computa información. La IA se
preocupa por crear máquinas (hardware) y programas (software) que puedan reproducir la
conducta humana que es llamada inteligente (percepción, razonamiento, lenguaje, cálculo,
conocimiento experto, etc.). La diferencia fundamental entre psicología cognitiva e IA es que la
psicología cognitiva intenta descubrir los verdaderos procesos que sigue nuestra mente cuando
procesa o computa los datos (el verdadero "software" de nuestra mente), mientras que a la IA le
interesa conseguir que las máquinas reproduzcan la conducta inteligente, con independencia de si
el programa que sigue la máquina es el mismo u otro distinto que el que la mente humana utiliza
para la realización de la misma tarea.
Para este proyecto de investigación se realizará un estudio de los métodos y reglas que
siguen los conductores de camiones de transporte y/o carga al realizar la tarea de conducción que
permita generar un modelo dentro de una computadora que sea capaz de realizar labores de
clasificación y predicción de comportamiento para la detección temprana de situaciones de riesgo.
Capítulo 2 Marco teórico
14 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
2.2 Inteligencia artificial
Se denomina IA a la rama de la informática que tiene por objeto el desarrollo y estudio de agentes
de comportamiento inteligente no vivos. Considerando que este comportamiento implica percibir,
razonar, aprender, comunicarse y actuar en entornos complejos, la meta práctica de la IA es el
desarrollo de máquinas que puedan realizar dichas implicaciones igual, o quizá incluso mejor, que
los humanos. Así mismo, y como meta científica, la IA intenta comprender el funcionamiento de
este comportamiento ya sea en máquinas, humanos u otros animales [Nilson, 2001].
Este proyecto se enfocará en el estudio y desarrollo de un sistema híbrido que conjuntará
varias áreas de la IA como: visión artificial, sistemas expertos, adquisición del conocimiento,
aprendizaje automático y minería de datos, conceptos que se exponen a continuación.
2.2.1. Visión artificial y procesamiento digital de imágenes
La visión es uno de los mecanismos de percepción más importantes del ser humano y, siendo
indispensable para la realización de la mayoría de las tareas cotidianas, es evidente la necesidad
que tiene la IA de dotar a las máquinas inteligentes de un sistema que les permita “ver” el mundo
que les rodea. La VA nace como un intento de satisfacer dicha necesidad y permite, con su
implementación, un campo mayor de aplicación para los sistemas inteligentes [Pajares, 2002].
El objetivo principal de la VA en sistemas inteligentes es la de dotarlos de la capacidad de
percepción mediante la detección y reconocimiento de objetos [Fu, 1988].
Un sistema de VA toma la información del ambiente a través de imágenes proporcionadas
por sensores en un proceso llamado adquisición (ver figura 2.1). Dichos sensores de imágenes, al
igual que cualquier otro sensor, realizan mediciones físicas en el medio y transmiten la información
emanante en forma de señales. El procesamiento de estas señales dentro de un sistema de VA es
realizada por medio de PDI.
El interés del PDI se fundamenta en dos áreas principales de aplicación [Pajares, 2002]:
a) Mejora de calidad
Consiste en la mejora de imágenes (mediante la modificación de sus propiedades) con el
objetivo de permitir, a un ser humano, tener una mejor percepción de su contenido.
b) Percepción autónoma
Consiste en modificar propiedades específicas de una imagen que resalten las
características de su contenido para permitir la detección y reconocimiento automático de
objetos mediante un sistema de VA. Una imagen procesada con este fin no es,
necesariamente, entendible por el ojo humano.
Por tanto, el PDI puede ser definido como el conjunto de técnicas aplicadas a imágenes
digitales que tengan como objetivo mejorar su calidad o facilitar la búsqueda de información en su
contenido ya sea de forma manual o automática.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 15
En la figura 2.1 se muestra el diagrama de bloques de un sistema de VA [González, 2008].
Figura 2.1 Diagrama de bloques de un sistema de VA clásico
Aunque la definición del término PDI es muchas veces confundida con la de un sistema de
VA, el diagrama anterior hace evidente su diferencia: un sistema de VA es un proceso completo
que, además de incluir al PDI, considera desde la adquisición de la imagen hasta el reconocimiento
e interpretación de los datos que ésta contiene.
En la figura 2.2 se muestra, a modo de ejemplo, un diagrama de bloques de un PDI
específico. En él, se realiza una detección de bordes a una imagen original ƒ para realzar las
características de su contenido. El resultado de dicho procesamiento se obtiene en una nueva
imagen ƒ’.
Figura 2.2 Diagrama de bloques del PDI
Capítulo 2 Marco teórico
16 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En el PDI es posible considerar a una imagen digital como un conjunto de puntos (píxeles)
en un plano bidimensional. Cada uno de ellos, ubicado en una posición (x,y) de dicho plano,
contiene uno o más valores numéricos (comúnmente llamados canales) que determinan el color
que representa dentro de la imagen.
Aunque el número de canales y su rango de valores dependen del modelo de color
utilizado, para este trabajo se adoptará el RGB de 24 bits. Dicho modelo permite, a través de tres
canales, representar más de 16 millones de colores mediante la combinación de los colores
primarios aditivos:
Rojo (Red) Verde (Green) y Azul (Blue).
Así, en este modelo, cada píxel contiene tres valores numéricos que indican en qué
proporción participa cada uno de dichos colores para la representación de uno nuevo ( 2.1 ) .
𝑓 𝑥, 𝑦 = 𝑅,𝐺,𝐵 = {𝑓 𝑥, 𝑦 𝑅 , 𝑓 𝑥, 𝑦 𝐺 , 𝑓 𝑥, 𝑦 𝐵} ( 2.1 )
Dónde R, G y B tienen un rango [0, 255] en imágenes de 24 bits (8 bits para cada uno de ellos).
En la figura 2.3 se muestra la representación tridimensional del modelo RGB, en donde
pueden ser representados todos los colores contenidos en el cubo mediante la suma de los tres
colores primarios aditivos a modo de vectores.
Figura 2.3 Representación de color en el modelo RGB para una imagen de 24 bits
El procesamiento de los píxeles en el PDI, para la obtención de una nueva imagen ƒ’,
puede verse desde dos perspectivas [Galbiati, 1990]:
a) Alteración píxel a píxel de los datos en una escala global (operaciones individuales).
b) Operaciones basadas en múltiples píxeles (operaciones de vecindad).
En otras palabras, la generación de un nuevo píxel en una nueva imagen será una función
del valor de cada píxel en su localización individual o bien de los valores de los píxeles en su
vecindad como se muestra en la figura 2.4.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 17
Figura 2.4 Funciones de procesamiento individual y de vecindad
Las operaciones individuales implican la generación de una nueva imagen modificando el
valor de cada píxel de la imagen original ƒ basándose en una regla global. El resultado de dicha
operación es colocado en la nueva imagen ƒ’ en el píxel ubicado en la misma posición (x, y) que la
del original ( 2.2 ).
𝑓 ′(𝑥, 𝑦) = 𝑔( 𝑓 𝑥, 𝑦 ) ( 2.2 )
Por su parte, las operaciones de vecindad utilizan una regla global que depende de la
combinación de los valores de la vecindad del píxel para generar el valor de cada píxel en la nueva
imagen ( 2.3 ) [González, 2008].
𝑓 ′(𝑥, 𝑦) = 𝑔( 𝑓 𝑥 + 𝑖, 𝑦 + 𝑗 )
𝑛
𝑗=−𝑛
𝑛
𝑖=−𝑛
( 2.3 )
Dónde (2n+1)2 es el número de elementos en la vecindad a considerar en la operación.
En el desarrollo de este proyecto se implementa un sistema de VA para la detección
automática de la posición de las manos de un conductor en el volante. A continuación se describen
las técnicas de PDI utilizadas para dicho fin.
2.2.1.1 Escalado de grises (luminosidad de la imagen)
En el PDI, dependiendo del problema a atacar, muchas veces es conveniente trabajar con la
información de la luminosidad de la imagen en lugar de la del color [Collier, 2005].
Considerando que los tres canales (R, G y B) contienen información importante de dicha
luminosidad, se hace necesaria la generación de un nuevo y único canal que contenga información
de los tres originales. Este proceso consiste en operaciones individuales que, mediante ( 2.4 ),
combina los valores de los canales R, G y B según la sensibilidad del ojo humano a cada uno de
ellos [Russ, 2006].
Capítulo 2 Marco teórico
18 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
𝑓′(𝑥, 𝑦) = 0.3𝑓 𝑥, 𝑦 𝑅 + 0.59𝑓(𝑥, 𝑦)𝐺 + 0.11𝑓(𝑥, 𝑦)𝐵 ( 2.4 )
Figura 2.5 Conversión de color RGB a escala de grises mediante PDI
El proceso resulta, para el ojo humano, en una imagen en tonalidades de grises (256
tonalidades en canales de 8 bits) como se muestra en la figura 2.5. Así mismo, es posible obtener
dicho efecto en una imagen en formato RGB si se aplica el resultado de la operación a los tres
canales de cada píxel ( 2.5 ).
𝑓′(𝑥, 𝑦)𝑅 = 𝑓′(𝑥, 𝑦)𝐺 = 𝑓′(𝑥, 𝑦)𝐵 = 0.3𝑓 𝑥, 𝑦 𝑅 + 0.59𝑓(𝑥, 𝑦)𝐺 + 0.11𝑓(𝑥, 𝑦)𝐵 ( 2.5 )
2.2.1.2 Binarización de imágenes (segmentación por umbralización)
La binarización es un proceso que consiste en reducir el rango de tonalidades posibles de una
imagen a dos (comúnmente blanco y negro) mediante la operación individual dada en ( 2.6 ).
𝑓′(𝑥, 𝑦) = 𝑁𝑒𝑔𝑟𝑜, 𝑓(𝑥, 𝑦) < 𝜃𝐵𝑙𝑎𝑛𝑐𝑜, 𝑓(𝑥, 𝑦) ≥ 𝜃
( 2.6 )
Dónde θ es el umbral de binarización con un rango [0-255] en canales de 8 bits.
Este proceso, también llamado umbralización, es utilizado para realzar ciertas
características de una imagen mediante la implementación de la función escalón a sus tonalidades.
El umbral θ, que determina qué píxeles pertenecen a uno u otro grupo, puede ser obtenido de
forma manual o automática mediante el análisis del histograma de la imagen [Atoche, 2007].
El histograma de una imagen digital es la gráfica de la función discreta dada en ( 2.7 ).
(𝐼𝑘) = 𝑛𝑘 ( 2.7 )
Dónde Ik es el k-ésimo nivel de intensidad ([0-255] para 8 bits) y nk es el número de píxeles
en la imagen con esa intensidad [González, 2008].
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 19
Aunque es posible obtener un histograma por cada uno de los canales del modelo RGB, la
binarización de imágenes se aplica, regularmente, al histograma de la luminosidad de la imagen
[Pajares, 2002].
En la figura 2.6 se muestra el histograma de una imagen en escala de grises.
Figura 2.6 Histograma de una imagen digital en escala de grises
En el histograma anterior, a modo de ejemplo, se puede apreciar que existen dos grandes
concentraciones de píxeles que pueden ser separadas con un umbral θ = 154. En la figura 2.7 se
muestra el resultado de la binarización de dicho ejemplo.
Figura 2.7 Binarización de una imagen en escala de grises mediante PDI
En este caso, la binarización ha agrupado los píxeles que contienen información de los
objetos contenidos en la imagen y discriminado aquellos con información del fondo. Una vez que
se ha logrado la separación de los objetos de interés del resto de la imagen, es posible realizar
operaciones lógicas y/o matemáticas que permitan la recuperación de las características de los
objetos como se describe en la sección 2.2.1.3.
Existen diversos métodos que se encargan de buscar automáticamente el umbral θ que
segmente eficientemente dos agrupaciones de píxeles en un histograma. En este proyecto se
utilizará el propuesto en [Otsu, 1972] que, a través del análisis de la varianza, es capaz de obtener
valores de θ óptimos para dos agrupaciones de píxeles [González, 2008].
Capítulo 2 Marco teórico
20 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
2.2.1.3 Operaciones lógicas y matemáticas
Al considerar en el PDI a una imagen como una función bidimensional del nivel de intensidad de
cada uno de los canales que integran a los píxeles ( 2.1 ), se hace evidente la posibilidad de
realizar operaciones lógicas y matemáticas con ellas.
Dichas operaciones, aplicadas en la etapa de preprocesamiento o segmentación de un
sistema de VA (ver figura 2.1), consisten en operaciones individuales que pueden involucrar a una
o más imágenes como argumentos u operandos y, comúnmente, devolver una sola como resultado
[González, 2008].
En la figura 2.8 se muestra una operación unaria (de un sólo argumento) que realiza,
mediante operaciones individuales, la negación de los píxeles de una imagen binaria según ( 2.8 ).
𝑓′(𝑥, 𝑦) = 𝑁𝑒𝑔𝑟𝑜, 𝑓 𝑥, 𝑦 = 𝐵𝑙𝑎𝑛𝑐𝑜
𝐵𝑙𝑎𝑛𝑐𝑜, 𝑓 𝑥, 𝑦 = 𝑁𝑒𝑔𝑟𝑜 ( 2.8 )
Figura 2.8 Operación NOT de una imagen binarizada
La operación NOT, en una imagen segmentada por binarización, puede generar una
máscara que permita, mediante una operación lógica AND, recuperar las características de los
objetos contenidos en la imagen original (ver figura 2.9).
La operación AND consiste en operaciones individuales de conjunción entre dos o más
imágenes. Dicho operador, al igual que cualquier otro operador lógico, puede ser aplicado a
imágenes de un solo canal3 mediante ( 2.9 ) o a imágenes multicanal mediante ( 2.10 ).
𝑓′(𝑥, 𝑦) = 𝑓1(𝑥, 𝑦) ∧ 𝑓2(𝑥, 𝑦) ( 2.9 )
𝑓 ′ 𝑥, 𝑦 𝑅 = 𝑓1 𝑥, 𝑦 𝑅 ∧ 𝑓2 𝑥, 𝑦 𝑅
𝑓 ′ 𝑥, 𝑦 𝐺 = 𝑓1 𝑥, 𝑦 𝐺 ∧ 𝑓2 𝑥, 𝑦 𝐺
𝑓′(𝑥, 𝑦)𝐵 = 𝑓1(𝑥, 𝑦)𝐵 ∧ 𝑓2(𝑥, 𝑦)𝐵
( 2.10 )
3 Las imágenes binarizadas o en escala de grises pueden ser consideradas de un solo canal ya que los píxeles solo requieren un valor
numérico para ser representados. Las imágenes a color en el modelo RGB (o cualquier otro modelo) requieren de más de un canal para su representación [Pajares, 2002].
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 21
En la figura 2.9 se muestra una operación AND entre una imagen a color y una imagen
binarizada. El resultado, continuando con el ejemplo desarrollado en la presente sección, es la
recuperación de las características de color y textura del objeto contenido en la imagen original.
Figura 2.9 Operación AND de una imagen RGB a color y una imagen binarizada
El conjunto de los procesos de PDI expuestos hasta ahora, por su resultado final, es
conocido como extracción de fondo [Pajares, 2002]. En la figura 2.10 se muestra el resumen del
proceso de PDI necesario (en este caso) para la extracción del fondo de una imagen digital a color.
Figura 2.10 Extracción de fondo de una imagen RGB a color mediante PDI
De igual forma, en el PDI, es posible realizar operaciones matemáticas para el
mejoramiento de imágenes. Dichas operaciones, que pueden tener como argumentos una o más
imágenes en conjunto con valores constantes4, son comúnmente aplicadas en la etapa de
preprocesamiento de un sistema de VA (ver figura 2.1). A continuación se muestran dos ejemplos
de operaciones matemáticas en el PDI.
4 Un valor constante puede ser representado en una imagen mediante la asignación de dicho valor a todos sus píxeles como se muestra en
el segundo argumento de la figura 2.11.
Capítulo 2 Marco teórico
22 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En la figura 2.11 se muestra el resultado de una operación suma entre una imagen RGB a
color y una constante dada por ( 2.11 ).
Figura 2.11 Suma de una imagen RGB a color y una imagen constante
𝑓 ′ 𝑥, 𝑦 = 𝑓1 𝑥, 𝑦 + 196 ( 2.11 )
Así mismo, en la figura 2.12 se muestra el resultado de una resta entre dos imágenes a
color dada por ( 2.12 ).
Figura 2.12 Resta de dos imágenes RGB a color.
𝑓 ′ 𝑥, 𝑦 = 𝑓1 𝑥, 𝑦 − 𝑓2 𝑥, 𝑦 ( 2.12 )
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 23
Los valores de los resultados de algunas operaciones lógicas o matemáticas pueden, en
ocasiones, salirse del rango aceptado por el o los canales de la imagen digital procesada (imagen
resultado); por lo anterior, es común acotar el resultado de dichas operaciones a los rangos dados
por la profundidad de los canales [Pajares, 2002].
A continuación se describe una de las posibles formas de acotamiento de valores para
canales de 8 bits:
Sea A el conjunto de píxeles en la posición (x,y) de n imágenes ( 2.13 ) y g(A) una
operación lógica o matemática con n píxeles como argumentos de entrada ( 2.14 ).
𝐴 = [𝑓1(𝑥, 𝑦), 𝑓2(𝑥, 𝑦),… , 𝑓𝑛(𝑥, 𝑦)] ( 2.13 )
𝑓 ′ 𝑥, 𝑦 = 𝑔 𝐴 = 𝑔(𝑓1 𝑥, 𝑦 , 𝑓2 𝑥, 𝑦 ,… , 𝑓𝑛 𝑥, 𝑦 ) ( 2.14 )
Entonces, la acotación de valores de resultados de operaciones para canales con 8 bits de
profundidad estará dada por ( 2.15 ).
𝑓′(𝑥, 𝑦) =
255, 𝑔 𝐴 > 255
𝑔(𝐴), 0 ≤ 𝑔 𝐴 ≤ 255
0, 𝑔 𝐴 < 0
( 2.15 )
En la figura 2.13 se muestra el resultado de una operación suma de una imagen RGB a
color y una constante con y sin acotamiento de valores.
Figura 2.13 Resultado de suma de imágenes con PDI con y sin acotamiento
En el ejemplo se muestra el error de representación en los tonos de los píxeles cuyos
valores se encuentran fuera del rango dado por la profundidad de los canales.
Capítulo 2 Marco teórico
24 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
2.2.1.4 Segmentado de regiones
En el ejemplo de segmentación por umbralización mostrado en la figura 2.7, se obtiene una
separación óptima entre el fondo de la imagen y los objetos contenidos; sin embargo, es posible
tener como resultado un conjunto de regiones como se muestra en la figura 2.14.
Figura 2.14 Binarización de una imagen en escala de grises mediante PDI con varias regiones
Cuando se tienen este tipo de resultados, dependiendo del problema a solucionar, es
necesario realizar una segmentación que busque e identifique cada una de dichas regiones.
Este tipo de “etiquetado” de regiones, que parte del hecho de que una imagen binarizada
contiene los objetos de interés en píxeles blancos o activos, realiza la búsqueda de todos aquellos
píxeles que están conectados entre sí por un camino o conjunto de píxeles con características
similares y les asigna una misma etiqueta identificativa única de la región a la que pertenecen.
Aunque existen diversos algoritmos de etiquetado de componentes conexas, la esencia de
todos ellos es la misma: realizar la búsqueda por filas del primer píxel activo en la imagen,
asignarle una nueva etiqueta e intentar propagarla a los píxeles vecinos. Una vez que no hay más
píxeles que etiquetar en esa región, se continúa la búsqueda de píxeles activos no etiquetados en
el resto de la imagen [Pajares, 2002].
Finalmente, es necesario extraer ciertas características de cada región que permitan al
sistema de VA diferenciar, discriminar o incluso identificar que objetos contienen. Para este
proyecto en particular el algoritmo de etiquetado de regiones conexas devolverá, al finalizar su
ejecución, las siguientes propiedades:
Número
Número de regiones encontradas en la imagen.
Área
El número de píxeles (blancos) que contiene cada región.
Rectángulo de contención
Coordenadas iniciales y centrales (x,y), ancho y largo del mínimo rectángulo que
sea capaz de contener en su totalidad cada región.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 25
Aunque la importancia del resultado de esta técnica de PDI radica en las características
extraídas de cada región (propiedades), es posible representar el etiquetado en una imagen
procesada. En la figura 2.15 se muestra el resultado visual de un etiquetado de regiones conexas.
Figura 2.15 Etiquetado de regiones conexas a una imagen binarizada
En el ejemplo anterior (para una mejor visualización), se le ha asignado uno de tres colores
a cada región en forma rotativa (rojo, verde o azul); por lo tanto, cada color marca el inicio y fin de
cada región, pero no implica que todas las áreas marcadas con un mismo color pertenezcan a una
misma.
2.2.1.5 Detección de bordes
Cuando existen diversos objetos en una imagen digital y la segmentación por regiones no es
suficiente para su identificación, es posible caracterizar dichos objetos por su forma exterior. Para
ello, es necesario un conjunto de técnicas de PDI que, en primer lugar, realicen la detección de los
bordes o contornos de las diversas regiones contenidas en la imagen y, en segundo lugar, los
identifique por su forma [Moctezuma, 2009].
Figura 2.16 Detección de bordes a una imagen binarizada
Capítulo 2 Marco teórico
26 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En la figura 2.16 se muestra el resultado del algoritmo de detección de bordes propuesto
en [Smith, 1995] aplicado a una imagen binaria que, al tratarse de una función bidimensional de
intensidad, tiene una primera y segunda derivada que permiten representar el valor de una
pendiente en un punto dado así como la búsqueda de máximos y mínimos locales [Atoche, 2007].
Considerando a los contornos de cada región u objeto como el único cambio de intensidad
en la función f(x,y) de una imagen binarizada, es posible realizar su detección mediante el análisis
del comportamiento de su primera y segunda derivada como se muestra en la figura 2.17
[González, 2008].
Figura 2.17 Detección de bordes empleando operadores de derivación
La primera derivada es cero en todas las regiones de intensidad constante y tiene valores
máximos y mínimos en las zonas de transición; por su parte, la segunda derivada es cero en todas
las regiones de intensidad constante y tiene cambios de signo en las transiciones [Pajares, 2002].
En principio, la magnitud de la primera derivada indica la presencia de bordes en un píxel
de la imagen, mientras que el signo de la segunda nos indica si éste pertenece a una zona clara u
obscura; sin embargo, esta última presenta un cruce por cero en el punto medio de la transición, lo
que resulta muy útil para una detección de bordes precisa.
La aplicación de la primera o segunda derivada a una imagen digital consiste en
operaciones de vecindad (ver figura 2.4) mediante la convolución de máscaras con operadores
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 27
predefinidos (ver figura 2.18). El requisito básico para un operador de derivación es que la suma de
todos sus coeficientes sea nula para asegurar que la derivada de una zona uniforme en la imagen
sea 0 [Atoche, 2002].
Figura 2.18 Ejemplos de operadores de derivación a) Prewitt, b) Sobel, c) Frei-Chen y d) Laplaciano
Para la derivación de imágenes por medio de operaciones de vecindad es necesaria la
convolución de la máscara del operador en toda la imagen original. Para ello se deben considerar,
en primer lugar, las conversiones de una máscara general (representativa de cualquier operador) y
de una región de vecindad a vectores unidimensionales como se muestra en la figura 2.19.
Figura 2.19 Conversión de a) una máscara y b) una región de vecindad a un vector unidimensional
Capítulo 2 Marco teórico
28 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Siendo W el vector que contiene los i coeficientes de la máscara del operador y V el vector
de los valores de los i vecinos de un píxel f(x,y), la convolución de W en una imagen digital está
dada por ( 2.16 ).
𝑓 ′ 𝑥, 𝑦 = 𝑊𝑖 𝑉𝑖
9
𝑖=1
( 2.16 )
Dependiendo de la orientación (horizontal o vertical) de la máscara utilizada en el proceso
de derivación (ver figura 2.18) es posible obtener la imagen gradiente en x ( 2.17 ) o la imagen
gradiente en y ( 2.18 ),
𝐺𝑥 = ∀𝑥∀𝑦, 𝑓 ′ 𝑥, 𝑦 = 𝑊𝑖(𝑉𝑒𝑟𝑡𝑖𝑐𝑎𝑙 ) 𝑉𝑖
9
𝑖=1
( 2.17 )
𝐺𝑦 = ∀𝑥∀𝑦, 𝑓 ′ 𝑥, 𝑦 = 𝑊𝑖(𝐻𝑜𝑟𝑖𝑧𝑜𝑛𝑡𝑎𝑙 ) 𝑉𝑖
9
𝑖=1
( 2.18 )
Así mismo, es posible obtener la magnitud ( 2.19 ) y dirección ( 2.20 ) del gradiente y
representarlas en imágenes individuales como se muestra en la figura 2.20 [Pajares, 2002].
𝐺(𝑥, 𝑦) = 𝐺𝑥(𝑥, 𝑦)2 + 𝐺𝑦 (𝑥, 𝑦)2 ≈ 𝐺𝑥(𝑥, 𝑦) + 𝐺𝑦 (𝑥, 𝑦) ( 2.19 )
𝜙(𝑥, 𝑦) = 𝑡𝑎𝑛−1𝐺𝑦(𝑥, 𝑦)
𝐺𝑥(𝑥, 𝑦) ( 2.20 )
Figura 2.20 Imágenes del gradiente de una imagen digital a) en X, b) en Y, c) magnitud y d) dirección
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 29
Aunque la aplicación de operadores de primer orden para la detección de bordes es muy
utilizada debido a su facilidad de implementación y al suavizado derivado de la convolución que
reduce notablemente el ruido generado en el proceso, existen algoritmos más complejos que
pueden tener mejores resultados en aplicaciones dónde el tiempo de procesamiento no es esencial
[Atoche, 2002] [Moctezuma, 2009].
En este proyecto se utilizará el algoritmo propuesto en [Canny, 1986] que es considerado
como uno de los mejores métodos de detección de contornos [Vázquez, 1996].
El algoritmo Canny se fundamenta en la teoría de operadores de primera derivada y resulta
particularmente interesante porque además de extraer bordes, cierra contornos abiertos evitando
posibles rupturas durante su extracción. Las tres principales tareas de este algoritmo son las
siguientes [Pajares, 2002]:
1) Obtención del gradiente (magnitud y ángulo en cada píxel).
2) Adelgazamiento de ancho de bordes hasta un píxel de ancho (supresión no máxima).
3) Histéresis de umbral al resultado de la supresión no máxima.
Se puede observar que la complejidad de este último algoritmo es mucho mayor que los
algoritmos de convolución (Sobel, Frei-Chen, Prewitt, entre otros); sin embargo, en la figura 2.21 se
aprecia su superioridad en la calidad de detección en comparación con otras técnicas.
Figura 2.21 Resultados de detección de bordes con a) Sobel, b) Prewitt, c) Frei-Chen y d) Canny
Capítulo 2 Marco teórico
30 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
2.2.1.6 Detección de formas
Una vez que se obtienen los bordes de los objetos contenidos en una imagen original, es posible
realizar su identificación y clasificación a partir de su forma exterior. Existen diversas técnicas
capaces de realizar dicho objetivo; sin embargo, en este proyecto se adoptará la propuesta en
[Hough, 1962] que, basada en métodos estadísticos, permite la detección de figuras geométricas
empleando representaciones paramétricas.
Dicha técnica, también llamada Transformada de Hough (HT por las siglas en inglés de
Hough Transform), fue inicialmente propuesta para la detección de líneas rectas; sin embargo,
trabajos como [Duda, 1972] y [Merlin, 1975] realizaron mejoras significativas al algoritmo hasta la
aparición de la Transformada Generalizada de Hough (GHT por las siglas en inglés de Generalized
Hough Transform) que, propuesta en [Ballard, 1981], es capaz de detectar eficientemente formas
arbitrarias de dos dimensiones con escala y rotación específicas.
Considérese, como ejemplo particular, la ecuación paramétrica de un círculo con radio r y
centro en el punto (x0, y0) dada en ( 2.21 ).
(𝑥 − 𝑥0)2 + (𝑦 − 𝑦0)2 = 𝑟2 ( 2.21 )
Dada una imagen binaria de bordes, la GHT para la detección de círculos consiste en la
búsqueda de los píxeles activos (blancos) de dicha imagen y, en cada uno de ellos, el
planteamiento de los infinitos círculos que pasan por ese punto con distintos radios y centros.
En la figura 2.22 se muestra el ejemplo del planteamiento de cuatro círculos (rojos) con
diferentes centros y radios en un píxel activo arbitrario.
Figura 2.22 Planteamiento de cuatro círculos con diferentes centros y radios en un píxel
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 31
Para cada uno de los círculos planteados con centro (xn, yn) y radio rn, se realiza una
búsqueda de píxeles activos que cumplan con ( 2.21 ); es decir, se buscan píxeles activos en su
circunferencia. Dicha búsqueda, se encarga también de la acumulación de votos (uno por cada
píxel activo encontrado) en un espacio n-dimensional. Así, para el caso específico del círculo en
dónde se realizan variaciones de tres parámetros (x0, y0 y rn), se tiene como resultado una matriz
tridimensional con los votos de cada círculo planteado.
En la tabla 2.1 se muestra el resultado de la matriz tridimensional de votación para los
cuatro círculos planteados en la figura 2.22.
Tabla 2.1 Resultado de matriz de votación de GHT para cuatro círculos planteados.
Posición
(en la matriz tridimensional)
Votación
(píxeles activos en el perímetro)
V[xa][ya][ra] 4
V[xb][yb][rb] 9
V[xc][yc][rc] 4
V[xd][yd][rd] 4
En este caso, el círculo planteado con radio rb es el candidato con mayor votación y mayor
probabilidad de ser el objetivo (target) de la búsqueda; sin embargo, es evidente que el candidato
con radio rT y centro (xT, yT) será, eventualmente, el candidato con mayor puntuación en toda la
matriz.
Existen diversas mejoras aplicables a este algoritmo que pueden reducir drásticamente el
costo computacional y tiempo que conlleva la búsqueda exhaustiva de formas geométricas a lo
largo de toda la imagen [Bruno, 2005]; sin embargo, muchas de ellas son aplicables únicamente a
la detección de ciertas figuras.
Para el caso específico de este proyecto, en el que se aplicará la GHT para la detección de
elipses en imágenes de bordes obtenidas a través del algoritmo Canny, se utilizará la ecuación
paramétrica dada en ( 2.22 ), que caracteriza una elipse con centro (x0, y0), semieje mayor a y
semieje menor b.
(𝑥 − 𝑥0)2
𝑎2+
(𝑦 − 𝑦0)2
𝑏2= 1 ( 2.22 )
La extensión del concepto de la GHT para la detección de círculos al de detección de
elipses es inmediata. Simplemente se realizará el planteamiento de las infinitas elipses que cruzan
cada píxel activo en la imagen mediante la variación de sus cuatro parámetros (x0, y0, an, bn). Al
final, se obtendrá una matriz de votación de cuatro dimensiones de donde se deberá seleccionar el
mejor candidato.
Capítulo 2 Marco teórico
32 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
2.2.2. Sistemas expertos
Los sistemas expertos son sistemas informáticos que emulan el comportamiento de un experto
humano en un dominio concreto. Su objetivo principal es la mejora de la productividad del usuario
en la solución de problemas específicos.
Estos sistemas, que se pueden considerar como el primer producto operacional de la IA,
son programas diseñados para actuar como un especialista humano en un dominio o área
particular de conocimiento. En este sentido, pueden considerarse como intermediarios entre el
experto humano, que transmite su conocimiento al sistema mediante un proceso llamado
adquisición de conocimiento (ver sección 2.2.3), y el usuario, que lo utiliza para resolver un
problema con la eficacia del especialista [Arikah, 2006].
En este proyecto se implementa un sistema que, tal como lo haría un experto en seguridad
vial, clasifica el comportamiento de conductores de camiones de transporte y/o carga; en otras
palabras, se diseña un “copiloto virtual” que califica el modo de conducción mediante la
observación de parámetros que caractericen el comportamiento del conductor y del vehículo.
2.2.3. Adquisición de conocimiento
Para poder obtener el conocimiento de un experto humano, es necesaria una metodología que
permita su adquisición. Por ello, en la década de los 70’s, surge la ingeniería del conocimiento
junto con el desarrollo de los sistemas expertos [Henao, 1998].
La Ingeniería del conocimiento se define como: “el proceso de elicitar, estructurar,
formalizar y operacionalizar la información y conocimiento involucrado en la resolución de
problemas de un dominio, con el objetivo de construir un programa que pueda realizar la tarea de
forma adecuada” [Alonso, 2006].
En el proceso de adquisición realizado por un Ingeniero del Conocimiento (IC), el
conocimiento puede provenir de dos tipos de fuentes diferentes [Henao, 1998]:
a) Fuente de conocimiento estática
Es rígida en cuanto a su contenido (no varía). Ejemplos de esta fuente son libros, revistas o artículos.
b) Fuente de conocimiento dinámica
El conocimiento puede ser cambiante e inexacto. El experto humano es un ejemplo de esta fuente.
Una vez que el IC agotó la adquisición de conocimiento básico (estático), es posible la
adquisición de conocimiento dinámico, donde el IC y el experto deberán de ser capaces de
expresar el conocimiento que tienen acerca del problema y precisar las actividades o procesos
mentales que conllevan a una conclusión. El IC debe de llevar a cabo con mucho cuidado esta
tarea para que pueda extraer el conocimiento heurístico que servirá al sistema; es decir, las reglas
que son utilizadas por el experto [Cruz, 2004].
En ocasiones, cuando no es posible la adquisición de conocimiento por el IC mediante
cuestionarios, pláticas, entrevistas o análisis, es posible la utilización de herramientas de
aprendizaje automático que realicen la adquisición directamente del experto humano.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 33
2.2.4. Aprendizaje automático
El Aprendizaje Automático (ML por las siglas en inglés de Machine Learning) es una rama de la
Inteligencia Artificial cuyo principal objetivo es el desarrollo de técnicas que permitan a las
computadoras aprender por sí mismas mediante la utilización de datos o experiencias previas
[Mitchell, 1997].
Una situación en la que un sistema de cómputo requiere aprender de forma automática es
cuando no existe experiencia humana aplicable o cuando dicha experiencia no es fácilmente
explicable. El aprendizaje automático se encarga de transformar datos en conocimiento y de
proporcionar sistemas de propósito general que se adapten a las circunstancias. Entre las muchas
aplicaciones exitosas pueden citarse el reconocimiento del habla o de texto manuscrito,
navegación autónoma de robots, recuperación de información documental, filtrado cooperativo,
sistemas de diagnóstico, análisis de ADN, entre otros [UPM, 2007].
2.2.5. Minería de datos
Desde el inicio de la llamada “era de la información” empresas, instituciones, gobiernos y
particulares se han dado a la tarea de recopilar información de sus operaciones en bases de datos
digitales. Estas grandes cantidades de datos, resultado de décadas de almacenamiento, resultan
en un producto prácticamente inútil y poco valioso por sí solo que, además, requiere de costos de
almacenamiento.
La minería de datos (DM por las siglas en inglés de Data Mining) surge por la necesidad de
convertir dicho producto en materia prima para la generación de conocimiento que, contenido ya en
los datos pero desconocido por el usuario, pueda ser clave en la toma de decisiones relacionadas
a la información que contiene [Hernández, 2004].
La DM a diferencia de otros métodos de análisis estadístico se define como el proceso de
extraer conocimiento útil, comprensible y previamente desconocido, desde grandes cantidades de
datos almacenados [Witten, 2000].
Ésta y otras definiciones similares, dan lugar a otros términos utilizados como sinónimos de
DM como lo es “descubrimiento de conocimiento en bases de datos” (KDD por las siglas en inglés
de Knowledge Discovery in Databases); sin embargo, es importante aclarar que el descubrimiento
de conocimiento trata de un proceso completo que incluye a la DM como parte de su metodología
(ver figura 2.23) [Berthold, 2003].
Los resultados más comunes de la DM se dan en conjuntos de reglas, ecuaciones, árboles
de decisión, o grafos probabilísticos que, para KDD, requieren de un análisis e interpretación para
hacer evidentes ciertos patrones de comportamiento (en los datos) que puedan responder a
cuestiones como: ¿Existe algún grupo de clientes que se comporta de forma diferenciada?, ¿Qué
secuencia de tratamientos puede ser la causa o solución de un nuevo síndrome?, ¿Existen
asociaciones entre ciertos factores de riesgo para realizar un seguro de automóvil?, ¿Qué
características contienen los correos electrónicos spam para poder ser clasificados
automáticamente? [Hernández, 2004]
Capítulo 2 Marco teórico
34 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En [Fayyad, 1996] se define el KDD como el proceso no trivial de identificar patrones
válidos, novedosos, útiles y comprensibles a partir de los datos. Esta definición es muy conocida
debido a que contiene las propiedades deseables del conocimiento extraído y su proceso:
No trivial
El proceso de extracción de conocimiento no puede ser considerado un plan preestablecido de pasos
a seguir ya que cada problema requiere consideraciones especiales para su implementación.
Válido
El conocimiento extraído debe seguir siendo preciso (con cierto grado de incertidumbre) para datos
nuevos y no solo en aquellos que han sido utilizados en el proceso de extracción.
Novedoso
El conocimiento extraído debe aportar algo nuevo al usuario.
Útil
El conocimiento extraído debe conducir a acciones que aporten algún tipo de beneficio al usuario.
Comprensible
El conocimiento extraído debe ser fácil de interpretar, revisar, validar y usar en la toma de decisiones.
En la figura 2.23 se presenta el diagrama a bloques del proceso KDD que, además de
incluir la obtención de patrones (objetivo de la DM), incorpora su evaluación e interpretación así
como el preprocesamiento de selección, limpieza, transformación y proyección de los datos.
Figura 2.23 Diagrama de bloques de KDD
El diagrama mostrado es utilizado para clarificar la relación que existe entre KDD y DM:
KDD trata del proceso global de descubrir conocimiento útil desde las bases de datos,
mientras que la DM se refiere a la aplicación de técnicas estadísticas y de aprendizaje para la
obtención de patrones y modelos; por lo tanto, al ser la DM el método de generación de modelos
del KDD estos dos términos son confundidos regularmente [Hernández, 2004]
Las RNAs son también consideradas un posible resultado de la DM; sin embargo, su
estructura interna dificulta el análisis de los resultados, por lo que muchas veces resulta imposible
justificar su interpretación. Debido a esta dificultad las RNAs son también llamadas “cajas negras”,
a pesar de que existen ya diversos trabajos que intentan obtener las reglas generadas
internamente durante el proceso de aprendizaje [Montaño, 2002] [López, 1999].
En la siguiente sección se presentan la estructura y funcionamiento de una RNA como un
estudio derivado de la investigación del clasificador neuronal descrito en la sección 4.4.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 35
2.3 Redes neuronales artificiales
Gran parte de los algoritmos de IA han sido inspirados en procesos biológicos. Debido a la gran
complejidad que dichos procesos suponen en conjunto, existen diversas aproximaciones a cada
uno de los subsistemas utilizados por los seres humanos para la solución de problemas complejos.
Una de las áreas de la IA que se ha interesado en el estudio y modelado específico del
cerebro humano es la de las RNAs. Esta área, estudiada desde los años 40’s por gente como
Warren McCulloch y Walter Pitts, pretende simular el funcionamiento del cerebro humano a partir
del comportamiento básico de las neuronas [McCulloch, 1943].
2.3.1. La neurona artificial
Una RNA se define como un sistema de procesamiento de información con características
similares a las redes neuronales biológicas [Serna, 1996]. Basadas en la generalización de
modelos neurobiológicos, funcionan bajo cuatro principios fundamentales [Laurence, 1994]:
1. El procesamiento de la información se lleva a cabo en unidades básicas de proceso (neuronas).
2. Las señales son transmitidas de una neurona a otra mediante conexiones.
3. Cada conexión tiene un peso asociado que pondera la señal transmitida.
4. Cada neurona aplica una función de activación a su señal de entrada para obtener su señal de salida.
Figura 2.24 Diagrama de una neurona artificial
En la figura 2.24 se muestra el diagrama de una neurona artificial donde la entrada total de
la neurona (yIn) está dada por ( 2.23 ).
𝑦𝐼𝑛 = 𝜃 + 𝑥𝑎𝑤𝑎
𝑛
𝑎=1
( 2.23 )
Capítulo 2 Marco teórico
36 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Donde θ es un umbral propio de cada neurona y es representado como el peso de una
conexión a una entrada unitaria constante; por otro lado, la salida total de la neurona (yOut) está
dada por ( 2.24 ).
𝑦𝑂𝑢𝑡 = 𝑓(𝑦𝐼𝑛 ) ( 2.24 )
Donde f(yIn) es una función de activación que determina el comportamiento de la señal de
salida de la neurona. En la figura 2.25 se muestra el diagrama a bloques del procesamiento de
información que se lleva a cabo dentro de una neurona artificial.
Figura 2.25 Diagrama de procesamiento de una neurona artificial
Existe una gran diversidad de funciones matemáticas aplicables al proceso de activación
neuronal; sin embargo, una selección cuidadosa del tipo de función a utilizar facilita el trabajo de
entrenamiento y reconocimiento de la red.
2.3.2. Entrenamiento y reconocimiento.
Existen dos estados básicos de funcionamiento de las RNAs. Por un lado se tiene el estado de
reconocimiento, donde la salida (yOut) de cada neurona es calculada a partir de ( 2.23 ) y ( 2.24 ).
Este estado es utilizado en redes ya entrenadas para reconocer o clasificar un dato nuevo.
En el estado de entrenamiento, los pesos (w1, w2, …, wn ) y umbral (θ) se modifican en
procesos iterativos llamados épocas de acuerdo a ciertas reglas de aprendizaje. Para ello se utiliza
un conjunto de datos de entrenamiento que contiene las entradas a la red y su salida esperada
(Target Output).
Todos los datos con los que se alimenta una RNA (en ambos estados de funcionamiento)
deben estar normalizados en un rango [0, 1].
2.3.3. El perceptrón
En 1958, Frank Rosenblatt introduce a la comunidad científica una nueva arquitectura de RNAs
llamada perceptrón. La aportación principal de [Rosenblatt, 1958] consiste en una regla de
aprendizaje iterativa mucho más poderosa que la propuesta en [Hebb, 1949] que, bajo una
hipótesis adecuada, era capaz de encontrar la combinación de pesos y umbrales que produzcan la
correcta clasificación de cada uno de los datos de entrenamiento.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 37
Aunque existen una gran diversidad de perceptrones en la literatura, se considera al
escalón unitario como la función de activación del perceptrón clásico [Rosenblatt, 1962]. La gráfica
de dicha función en un plano bidimensional se muestra en la figura 2.26 y está dada por ( 2.25 ).
𝑓(𝑥) = 1 0−1
𝑠𝑖 𝑥 > 𝜃
𝑠𝑖 − 𝜃 ≤ 𝑥 ≤ 𝜃 𝑠𝑖 𝑥 < −𝜃
( 2.25 )
Figura 2.26 Gráfica de la función escalón
Si bien este paradigma neuronal tomó mucho auge en sus inicios, es posible demostrar
matemáticamente a partir de ( 2.23 ) que su alcance está limitado a problemas linealmente
separables. Dicha demostración, publicada en [Minsky, 1969], en conjunto con la falta de un
método general de entrenamiento para RNAs multicapa trajeron como consecuencia la decaída de
su popularidad por más de una década.
2.3.4. El perceptrón multicapa
La capacidad de resolver problemas linealmente no separables con RNAs se logra mediante la
interconexión de neuronas en diversas capas como se muestra en la figura 2.27.
Figura 2.27 Diagrama de una RNA multicapa
Capítulo 2 Marco teórico
38 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Existen tres tipos de neuronas utilizadas en RNAs multicapa:
a) Unidades de entrada
Reciben la información directamente de un vector de entrada (x1, x2, …, xn ). Dicho
vector puede contener un patrón de entrenamiento o un dato de prueba para
reconocer. La información de entrada es transmitida directamente a su salida.
b) Unidades ocultas
Reciben la información de las neuronas que conforman la capa de entrada o una
capa oculta anterior. Su salida es procesada por medio de ( 2.23 ) y ( 2.24 ).
c) Unidades de salida:
Reciben la información de la última capa oculta de la red. Su salida es procesada
por medio de ( 2.23 ) y ( 2.24 ) y se considera como la salida final de la red.
El número de capas ocultas y neuronas que conforman una RNA puede ser seleccionado
de forma arbitraria dependiendo del tipo de problema que se pretende resolver. En la literatura
existen ciertas recomendaciones relacionadas con el tipo, cantidad y calidad de patrones con los
que se cuenta para el entrenamiento. Por ejemplo:
a) Se recomienda el triple de neuronas en las capas ocultas que en la capa de entrada
[BrainMaker, 1992].
b) Es posible la solución de cualquier problema con una RNA con una sola capa oculta
[Laurence, 1994].
c) El número de muestras necesario para un buen entrenamiento está dado por ( 2.26 ).
𝑚𝑖𝑛(𝑛, 𝑝) ∙ 𝑀 ( 2.26 )
Donde n es el número de neuronas en la capa de entrada de la red, p el número total
de neuronas ocultas y M el número de clases que se desea clasificar [Mehrotra, 1991].
Aunado a lo anterior, es importante considerar el costo computacional que tendrá el
trabajar con una RNA con un número elevado de conexiones.
Uno de los primeros métodos de entrenamiento para RNAs multicapa capaz de propagar
eficientemente la información del error (entre la salida real y la esperada) a todas las capas de la
red fue propuesta en [Werbos, 1974]; sin embargo, no fue hasta la publicación de [Parker, 1985],
[Rumelhart, 1986] y [McClelland, 1988] cuando dicho método ganó popularidad.
El método de entrenamiento por retropropagación (BP por las siglas en inglés de
backpropagation), toma su nombre por su forma particular de propagar la información del error de
la RNA desde la capa de salida hasta la capa de entrada.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 39
En la figura 2.28 se muestra el diagrama general de una RNA del tipo perceptrón multicapa
con una única capa oculta. En este diagrama están indicados los pesos asociados a cada una de
las conexiones así como los vectores que contienen los datos de entrada y salida de la red. Los
umbrales (θ) de las neuronas en la capa oculta (Z) y la capa de salida (Y) no se indican pero están
presentes.
En la tabla 2.2 se establece la nomenclatura asociada que será utilizada en el estudio del
algoritmo BP.
Tabla 2.2 Nomenclatura utilizada en el estudio del algoritmo BP
Símbolo Significado
x Vector de entrenamiento de entrada:
Entrada = x = ( x1 ,…, xi ,…, xn )
y Vector de salida de la red (salida real):
Salida = y = ( y1 ,…, yk ,…, ym )
t Vector de salida esperada:
SalidaE = t = ( t1 ,…, tk ,…, tm )
δYk Error de la neurona k de la capa de salida Y (respecto a la salida esperada).
δZj Error de la neurona j de la capa oculta Z (respecto a la capa de salida).
α Taza de aprendizaje: modifica la velocidad con la que la red aprende.
Xi Neurona de entrada i.
θZj Umbral de la neurona j de la capa oculta Z.
Zj Neurona oculta j.
θYk Umbral de la neurona k de la capa de salida Y.
Yk Neurona de salida k.
Capítulo 2 Marco teórico
40 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Figura 2.28 Diagrama de un perceptrón multicapa con una capa oculta
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 41
2.3.5. Retropropagación de error (backpropagation)
BP es un algoritmo de entrenamiento no supervisado cuyo objetivo principal es la minimización del
error (entre la salida real y la esperada) de cada uno de los patrones de entrenamiento. Existen
tres estados básicos durante el entrenamiento de una RNA por BP:
a) Alimentación hacia adelante (FF por las siglas en inglés de feedforward): Se calcula la
salida de cada una de las neuronas desde la capa de entrada hasta obtener la salida real
de la red.
b) Retropropagación del error (backpropagation): Se calcula el error entre la salida real y
la esperada, se propaga hacia las capas anteriores y se calculan los cambios de pesos y
umbrales que sufrirán las neuronas que conforman la red.
c) Actualización de pesos y umbrales: Se actualizan los pesos y umbrales con los datos
calculados durante la retropropagación del error.
Aunque existen diversas variaciones que han surgido a lo largo del tiempo que intentan
reducir el tiempo y costo computacional que requiere el entrenamiento de una RNA por BP, en las
siguientes secciones se estudiará el algoritmo clásico como base para otras versiones.
2.3.5.1 Función de activación
La función de activación para una red entrenada por BP debe cumplir ciertas características como:
ser continua, fácilmente diferenciable y monótonamente no decreciente [Laurence, 1994]. Una de
las funciones más utilizadas es la sigmoide binaria (ver figura 2.29) que, con un rango (0, 1), está
definida por ( 2.27 ).
𝑓(𝑥) =1
1 + 𝑒−𝑥 ( 2.27 )
Con una primera derivada dada por ( 2.28 ).
𝑓′(𝑥) = 𝑓(𝑥) 1 − 𝑓(𝑥) ( 2.28 )
Figura 2.29 Gráfica de la función binaria sigmoide
Capítulo 2 Marco teórico
42 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
2.3.5.2 Algoritmo de entrenamiento
A continuación se muestra el pseudocódigo del algoritmo BP en 13 pasos:
Paso 1. Inicialización de pesos y umbrales. Establecer en valores aleatorios pequeños (p. e. [-0.3, 0.3]).
Paso 2. Mientras la condición de paro sea falsa, hacer pasos 3 a 13.
Paso 3. Por cada patrón de entrenamiento, hacer los pasos 4 a 12.
Alimentación hacia adelante (feedforward, FF):
Paso 4. Cada unidad de entrada (Xi, i = 1,…,n) recibe información del vector de entrenamiento (x) y la transmite directamente a las unidades de la siguiente capa (la capa oculta Z).
Paso 5. Cada unidad oculta (Zj, j = 1,…,p) realiza la sumatoria de
sus entradas ponderadas (zInj) mediante ( 2.23 ) y aplica su función de activación mediante ( 2.27 ) para obtener su señal de salida (zOutj) y transmitirla a las unidades de la siguiente capa (la capa de salida Y),
Paso 6. Cada unidad de salida (Yk, k = 1,…,m) realiza la
sumatoria de sus entradas ponderadas (yInk) mediante ( 2.23 ) y aplica su función de activación mediante ( 2.27 ) para obtener su señal de salida (yOutk) que conformará el vector de salida de la red (y).
Retropropagación del error (backpropagation, BP):
Paso 7. Cada unidad de salida (Yk, k = 1,…,m) recibe un valor proveniente del vector de salida esperado (t) y calcula su error (δYk) mediante:
𝛿𝑌𝑘 = 𝑡𝑘 − 𝑦𝑂𝑢𝑡𝑘 𝑓′ 𝑦𝐼𝑛𝑘 ( 2.29 )
Paso 8. Cada unidad de salida (Yk, k = 1,…,m) calcula el cambio
que sufrirán su umbral y los pesos asociados a sus conexiones con las unidades de la capa inmediata anterior (la capa oculta Z) mediante:
∆𝑤𝑗𝑘 = 𝛼𝛿𝑌𝑘𝑧𝑂𝑢𝑡𝑗 ( 2.30 )
∆𝜃𝑌𝑘 = 𝛼𝛿𝑌𝑘 ( 2.31 )
* Los cambios calculados en este paso serán actualizados hasta el paso 11.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 43
Paso 9. Cada unidad oculta (Zj, j = 1,…,p) calcula su error (δZj) mediante:
𝛿𝑍𝑗 = 𝛿𝑌𝑘𝑤𝑗𝑘
𝑚
𝑘=1
𝑓 ′(𝑧𝐼𝑛𝑗 ) ( 2.32 )
Paso 10. Cada unidad oculta (Zj, j = 1,…,p) calcula el cambio que
sufrirán su umbral y los pesos asociados a sus conexiones con las unidades de la capa inmediata anterior (la capa de entrada X) mediante:
∆𝑣𝑖𝑗 = 𝛼𝛿𝑍𝑗 𝑥𝑖 ( 2.33 )
∆𝜃𝑍𝑗 = 𝛼𝛿𝑍𝑗 ( 2.34 )
* Los cambios calculados en este paso serán actualizados hasta el paso 12.
Actualización de pesos y umbrales:
Paso 11. Cada unidad de salida (Yk, k = 1,…,m) actualiza el valor de su umbral y de los pesos asociados a sus conexiones con las unidades de la capa inmediata anterior (la capa oculta Z) mediante:
𝑤𝑗𝑘 𝑛𝑢𝑒𝑣𝑜 = 𝑤𝑗𝑘 𝑣𝑖𝑒𝑗𝑜 + ∆𝑤𝑗𝑘 ( 2.35 )
𝜃𝑌𝑘(𝑛𝑢𝑒𝑣𝑜) = 𝜃𝑌𝑘(𝑣𝑖𝑒𝑗𝑜) + ∆𝜃𝑌𝑘 ( 2.36 )
Paso 12. Cada unidad oculta (Zj, j = 1,…,p) actualiza el valor de su
umbral y de los pesos asociados a sus conexiones con las unidades de la capa inmediata anterior (la capa de entrada X) mediante:
𝑣𝑖𝑗 𝑛𝑢𝑒𝑣𝑜 = 𝑣𝑖𝑗 𝑣𝑖𝑒𝑗𝑜 + ∆𝑣𝑖𝑗 ( 2.37 )
𝜃𝑍𝑗 (𝑛𝑢𝑒𝑣𝑜) = 𝜃𝑍𝑗 (𝑣𝑖𝑒𝑗𝑜) + ∆𝜃𝑍𝑗 ( 2.38 )
Paso 13. Probar condición de paro.
La salida de la red en la etapa de reconocimiento se obtiene a partir del algoritmo FF
descrito en los pasos 4-6. El algoritmo para la etapa de entrenamiento de una RNA con más de
una capa oculta puede ser deducido por el lector a partir de los pasos 5; 9-10; 12.
Capítulo 2 Marco teórico
44 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
2.3.6. El perceptrón multicapa recurrente
Existen problemas de clasificación que requieren consideraciones temporales para su correcto
funcionamiento. Tal es el caso de la clasificación del comportamiento en la conducción de
vehículos, donde la información de los estados anteriores puede ser fundamental para la
clasificación y predicción de los estados siguientes.
En la figura 2.30 se muestra el diagrama de una RNA multicapa recurrente donde cada
neurona en la capa de salida tiene una conexión directa a una neurona en la capa de entrada.
Figura 2.30 Diagrama de un perceptrón multicapa recurrente con una capa oculta
Para este tipo de redes el número de neuronas que conforman la capa de entrada está
dado por ( 2.39 ).
𝑛 = 𝑚 + 𝑖 ( 2.39 )
Donde n es el número de neuronas de la capa de entrada de la red, m el número de
neuronas en la capa de salida e i el número de datos en el vector Entrada.
Es posible utilizar el mismo algoritmo de entrenamiento descrito en la sección 2.3.5.2 en
una RNA recurrente si se considera su funcionamiento en el análisis y diseño del sistema; así
mismo, se pueden tener consideraciones temporales mediante el cambio del espacio de
representación de los datos de entrada (p. e. obtener la media, varianza o desviación estándar de
una o más variables).
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 45
Capítulo 3
Metodología de solución
En este capítulo se presenta la metodología propuesta para la solución del problema
planteado en este proyecto. Dicha metodología se encuentra resumida en el diagrama de
bloques mostrado en la figura 3.1.
Figura 3.1 Diagrama de bloques de la metodología de solución planteada para el proyecto
Capítulo 3 Metodología de solución
46 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En las siguientes secciones de este capítulo, se presenta el análisis y explicación de
cada unos de los módulos mostrados en el diagrama anterior.
3.1 Adquisición de datos y conocimiento
En la primera etapa del proyecto, se recopiló toda la información necesaria para la clasificación del
comportamiento. Dicha recopilación, se realizó durante una estancia de investigación llevada a
cabo en la URJC de España.
3.1.1. Simulador de conducción
En primer lugar, se realizó el monitoreo de ejercicios de conducción
ejecutados en la cabina de simulación del proyecto CABINTEC. Dichos
ejercicios, diseñados en conjunto con el grupo FRAV, fueron realizados
por un conductor profesional que permitió contar con datos de situaciones
reales; además, se realizó una monitorización sincronizada de imágenes y
datos que permitió la coordinación de la información visual con los datos de la dinámica del
vehículo arrojados por el sistema de simulación.
Estos últimos, contenidos en archivos de registro (llamados también logs), contienen la
información de ciertos aspectos de las situaciones presentadas durante la simulación.
3.1.1.1 Log simulador (registros de simulación)
Una vez realizados los ejercicios de simulación, los archivos de registros
fueron recopilados desde una de las computadoras encargadas del control
de la cabina. Las variables consideradas para la alimentación del sistema
clasificador (provenientes de dichos registros), fueron redefinidas después
de conocer sus características reales (respecto a las establecidas en los
alcances de este proyecto); además, como parte del preprocesamiento de
datos del KDD, se realizó una selección de variables y una normalización
de los datos. Al final, la información recopilada de estos registros, fue unida a la generada por el
sistema de VA, que se encargó de la detección automática de las manos del conductor sobre el
volante en imágenes provenientes del monitoreo visual de los ejercicios de simulación realizados.
3.1.1.2 Visión artificial
Para complementar los datos de la dinámica del vehículo (contenidos en
los registros de simulación) para la alimentación del clasificador neuronal
del comportamiento, se implementó un sistema de VA capaz de realizar la
detección automática de las manos del conductor en el volante. Para el
análisis de imágenes se planteó, en las limitaciones de este proyecto, la
utilización de videos sin compresión; sin embargo, la duración de las
capturas realizadas resultó en archivos de video de tamaños no
soportados por sistemas de archivos tradicionales [Microsoft, 2005].
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 47
Al final, las capturas realizadas fueron almacenadas en archivos de imágenes estáticas. La
información generada por el sistema de VA, consistió en BDs que indican si cada una de las
manos fue detectada o no en cierto instante de la simulación. Esta información, en conjunto con la
descrita en la sección anterior, permitió la generación de las BDs finales utilizadas en las pruebas
de este proyecto.
3.1.1.3 Datos del fenómeno de conducción
Para la generación “manual” de modelos de comportamiento a partir de
conocimiento simbólico, se realizó una investigación de recomendaciones
realizadas a conductores en algunos documentos oficiales publicados por
agencias gubernamentales y académicas de diversos países.
Junto a lo anterior, se realizaron diversas entrevistas con expertos
en seguridad vial para la búsqueda de reglas que permitieran la
generación de dichos modelos. Al final, se desarrolló una herramienta de adquisición del
conocimiento que permitió, de forma automática, la adquisición de la información que los expertos
humanos no desearon arriesgarse a inferir en forma de reglas.
El conocimiento adquirido durante dichos experimentos de adquisición, permitió la
generación automática de los modelos del comportamiento mediante el entrenamiento de RNAs.
3.2 Clasificación del comportamiento
En la segunda etapa, y para la clasificación del comportamiento de
conducción, se implementó un simulador neuronal que permitiera un
control preciso de las características de las RNAs utilizadas.
Dicho control de bajo nivel, imposible de obtener mediante la
utilización de herramientas neuronales comerciales, brindó ciertas
ventajas al desarrollo del proyecto; por ejemplo, la portabilidad de los
clasificadores entrenados para su aplicación en la herramienta de adquisición de conocimiento
que, gracias a su aceptación en su presentación a diversos investigadores del área, es también
utilizada para la representación del conocimiento y la reproducción de sesiones de simulación
generadas en la cabina de simulación del CABINTEC.
Finalmente, para una clasificación más específica del comportamiento del conductor, el
número de clases consideradas en el entrenamiento de los clasificadores fue ampliado, respecto a
lo establecido en los alcances de este proyecto, a cinco tipos: segura, aceptable, poco riesgosa,
bastante riesgosa y muy riesgosa.
Dado que la valoración del nivel de riesgo en los ejercicios simulados, realizada por los
expertos humanos en los experimentos de adquisición del conocimiento, se encuentra en un rango
numérico, fue necesaria la cuantificación de dichos valores para la división de la información en las
cinco clases establecidas.
Capítulo 3 Metodología de solución
48 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
3.2.1. Entrenamientos del sistema
Para la generación automática de los modelos del comportamiento de
conducción, se realizaron entrenamientos a diversas RNAs clasificadoras
mediante el simulador neuronal implementado. Para ello, se utilizó el 50%
(seleccionado aleatoriamente) de los datos contenidos en las BDs
generadas con la información recopilada en la primera etapa de la
metodología.
La sumatoria del tiempo de entrenamientos de cada una de las
RNAs utilizadas para la clasificación del comportamiento, da una duración
total mayor a 8,000 horas5 que, equivalentes a casi un año de
procesamiento, pudieron ser extendidos para obtener un mejor resultado.
Además, como una actividad extra, se realizaron diversos experimentos con minería de
datos como una aproximación más para la búsqueda de reglas tangibles que pudieran definir el
comportamiento de conductores mediante el análisis de los resultados obtenidos de algoritmos de
generación automática de reglas.
3.2.2. Pruebas del sistema
En esta última etapa del proyecto, se ejecutaron diversos experimentos
con los clasificadores entrenados que permitieron, mediante el análisis y
comparación de sus resultados, la generación de las conclusiones finales
de esta tesis; además, algunas de estas pruebas, abrieron caminos de
investigación que pueden ser utilizados en el desarrollo de proyectos
futuros relacionados con el modelado automático del comportamiento de
conductores.
En el siguiente capítulo de este documento, se presenta el desarrollo de este proyecto en
el orden en el que fue, finalmente, realizado.
5 El tiempo total de entrenamiento es calculado mediante la suma del tiempo de entrenamiento de todas las RNAs utilizadas; sin embargo, el
entrenamiento de algunas de ellas fue realizado en paralelo por lo que dicho tiempo no implica un periodo continuo de tiempo, sino uno de procesamiento computacional.
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 49
Capítulo 4
Desarrollo
En este capítulo, se describe paso a paso el desarrollo de este proyecto. Dadas
ciertas condiciones encontradas durante la investigación realizada (expuestas en diversas
secciones del presente capítulo), el orden de la metodología descrita en el capítulo anterior
debió variarse. En la figura 4.1, se muestra un esquema de la relación que existe entre los
módulos de la metodología de solución propuesta y las etapas del desarrollo realizado.
Figura 4.1 Esquema de relación entre la metodología propuesta y el desarrollo realizado
Capítulo 4 Desarrollo
50 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.1 Recopilación de información
Los datos en los que se sustenta el desarrollo de este proyecto, fueron recopilados en la primera
etapa. Para ello, se realizó una estancia de investigación con el grupo Face Recognition & Artificial
Vision Group (FRAV) de la Universidad Rey Juan Carlos (URJC) de España que, al ser parte del
proyecto CABINTEC, facilitó el acceso a la cabina de simulación ubicada en el Centro de Estudios
e Investigaciones Técnicas de Gipuzkoa (CEIT) en San Sebastián, España.
En dicha estancia, realizada gracias a la convocatoria “Becas Mixtas en el Extranjero” del
Consejo Nacional de Ciencia y Tecnología (CONACYT) de México, se realizaron las siguientes
actividades principales:
Redacción y publicación6 de un artículo técnico.
Estudio del estado del arte7.
Diseño e implementación de un sistema de captura de imágenes.
Diseño y ejecución de ejercicios de conducción en simulador.
Diseño e implementación de un sistema de adquisición de conocimiento.
Diseño y ejecución de adquisición de conocimiento de expertos en seguridad vial.
En las siguientes secciones se describirán las herramientas y experimentos desarrollados
en esta primera etapa de desarrollo. Estas herramientas, no planificadas en la propuesta inicial,
fueron indispensables para el desarrollo de este proyecto y, además, resultaron de gran utilidad
para diversos proyectos en los que el FRAV se encuentra involucrado.
4.1.1. Sistema de captura de imágenes
El grupo FRAV, interesado también en la captura de éstas imágenes, se encuentra desarrollando
un sistema de captura paralelizado utilizando Field Programmable Gate Arrays (FPGAs).
Dicho sistema, aún en desarrollo, permitirá la captura y compresión de imágenes en
formato JPEG a muy altas velocidades; sin embargo, debido al tiempo acotado de la estancia de
investigación realizada, fue necesario el diseño e implementación de una herramienta propia de
captura de imágenes.
6 Artículo titulado “TÉCNICAS DE PDI PARA EL SEGUIMIENTO DE LAS MANOS DE UN CONDUCTOR EN EL VOLANTE” publicado en la
decimonovena reunión de otoño de comunicaciones, computación, electrónica y exposición industrial (ROC&C 2008) organizada por la IEEE en Acapulco, Guerrero, México.
7 Estudio presentado en el capítulo 2 del presente documento.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 51
Para tal motivo, se utilizó uno de los cuatro sensores CMOS de cinco megapíxeles con los
que cuenta el grupo FRAV.
Dicho sensor, mostrado en la figura 4.2, cuenta con un convertidor analógico digital de 12
bits que es capaz de entregar imágenes a una cadencia mayor a 200 imágenes por segundo en
resolución QVGA (320 x 240).
Figura 4.2 Sensor digital de imágenes Micron® MT9P031
Este sensor, cuenta con una tarjeta llamada “Demo2A” que permite su conexión a una
computadora por medio de un puerto USB 2.0.
Al ser un dispositivo de altas prestaciones, no es detectado por el sistema operativo como
un elemento común de adquisición de imágenes (cómo escaners o cámaras web) y no puede ser
utilizado por medio de programas o herramientas comerciales.
La empresa Micron®, fabricante de este sensor, provee de ciertas librerías dinámicas que
permiten el uso y control de su producto a través de herramientas de programación como Visual
Studio o Borland Builder en su sexta versión (BB6); así mismo, proporciona al programador cierta
documentación limitada para el uso de dichas librerías y algunos programas de ejemplo de donde
se puede obtener información suficiente para el desarrollo de una aplicación propia que permita la
configuración del sensor así como la captura, conversión, compresión y guardado de imágenes.
Pruebas realizadas antes del inicio del desarrollo de este sistema, mostraron las
desventajas que conlleva la captura de secuencias grandes de imágenes en formatos de video
debido, principalmente, a que los sistemas de archivos como FAT16 y FAT32 limitan el tamaño
máximo de cada archivo y pueden llegar a corromper los datos contenidos en él; por lo anterior, se
decidió que la captura se realizaría en archivos de imagen individuales [Microsoft, 2005].
El MT9P031 por si mismo entrega imágenes en un formato llamado BAYER. Este formato,
inventado por el Dr. Bryce Bayer para KODAK en 1976, se convirtió durante mucho tiempo en el
estándar de fabricantes de dispositivos de adquisición de imágenes digitales.
Capítulo 4 Desarrollo
52 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
También conocido como filtro, máscara o mosaico de Bayer, se trata de una malla
cuadriculada de filtros rojos, verdes y azules (figura 4.3) que se sitúa sobre un sensor digital y
permite el paso de la intensidad de solo uno de los colores RGB, haciendo a cada píxel sensible a
una determinada longitud de onda [Bayer, 1976].
Figura 4.3 Representación y funcionamiento de la máscara Bayer
Para realizar una conversión de este formato a RGB, es necesaria la interpolación de los
dos canales faltantes de cada píxel con la información de su vecindad. Existen muchos métodos
estándares de interpolación que pueden ser aplicados para esta conversión [Sakamoto, 1998].
En este caso, por cuestiones de velocidad de procesamiento, se implementó uno de los
métodos de conversión más sencillos, que consiste en dar a los valores de los dos canales
faltantes de cada píxel el valor o promedio de valores de los vecinos más cercanos que contenga
información del color de los canales faltantes.
Una vez que la imagen fue recibida y convertida al formato RGB, es guardada en el disco
duro con un nombre de archivo estándar que permita su procesamiento posterior de una forma
secuencial. La estructura del nombramiento de archivos se presenta en la tabla 4.1.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 53
Tabla 4.1 Estructura estándar para nombres de archivos de imágenes capturada
Img - XXXXXXXXXX - XXXXX - .jpg P
refijo
Sep
ara
dor
Identificador
Sep
ara
dor
Info
rmació
n
Sep
ara
dor
Term
inació
n
Prefijo
o Inicio de nombre de archivo e indicación de su tipo.
Separador
o Separador para facilitar el análisis automático del nombre de archivo.
Identificador
o Número consecutivo de 10 dígitos para su ordenamiento secuencial.
Información
o Este número puede indicar el tiempo que ha transcurrido desde que se inició la captura hasta que la propia imagen fue capturada o el ciclo en el que se encuentra la simulación cuando se trata de una captura sincronizada.
Terminación
o Necesaria para la identificación del tipo de archivo por el sistema operativo.
Pensando en la utilización futura de estas secuencias de imágenes en forma sincronizada
con la información de la dinámica del vehículo almacenada por el simulador en cada sesión de
práctica, se hizo necesaria la implementación de un módulo de conexión para recibir un
identificador y permitir la correlación de los datos de una forma adecuada. Este identificador
llamado CICLO, es un número consecutivo generado por el centro de control del simulador para la
sincronización interna de los módulos que toman parte en la generación de los ambientes de
simulación (ver figura 4.4).
La conexión entre el sistema de adquisición de imágenes y el servidor del control de
simulación se realiza por medio de UDP (User Datagram Protocol), que es un protocolo del nivel
de transporte basado en el intercambio de datagramas que permite el envío de información a
través de la red sin que se haya establecido previamente una conexión [Postel, 1980]. Este
protocolo, a diferencia del TCP (Transfer Control Protocol), no tiene confirmación ni control de flujo,
por lo que no es posible determinar si dicha información ha llegado correctamente; sin embargo, el
uso de este protocolo es fundamental para no afectar el desempeño del simulador si existiesen
problemas con los dispositivos conectados a él.
Al realizar una captura sincronizada por medio del sistema descrito, se realiza el mismo
proceso de captura, conversión y compresión. La diferencia radica en la generación del nombre de
archivo para ser guardado en el disco duro, donde se incluye el identificador del ciclo obtenido
mediante el vaciado del buffer de recepción para asegurarse que el dato recibido es justamente el
último transmitido por el servidor. Una vez que es establecido el tamaño de dicho buffer, basta con
leer el último paquete recibido para asegurarse que el siguiente será el identificador de ciclo actual.
Capítulo 4 Desarrollo
54 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Figura 4.4 a) Centro de control y b) Módulos de generación del simulador del proyecto CABINTEC
El puerto utilizado para realizar esta conexión, generado a través de las librerías
WINSOCK, es configurado como bloqueante para asegurar el paro del programa hasta la
recepción del dato deseado; lo anterior, permite la captura de imágenes únicamente cuando se
está ejecutando una simulación. Los parámetros de conexión, configurables dentro del sistema de
captura de imágenes, se resumen en la tabla 4.2.
Tabla 4.2 Parámetros de conexión con servidor de simulador
Parámetro Local Remoto
Puerto 50000 10500
Dirección IP 192.168.153.81 192.168.153.12
AF AF_INET AF_INET
Para buscar las mejores condiciones posibles para la captura de imágenes en las
situaciones de oscuridad que presenta la cabina de simulación, se incorporaron controles en el
sistema que permiten la configuración del sensor (ver figura 4.5):
Tiempo de exposición: Tiempo de exposición de cada píxel a la luz incidente.
Ganancia RGB: Ganancia digital y analógica para la mejora de la imagen.
Resolución de imágenes: Tamaño de las imágenes adquiridas.
Uso de Binning o Skipping: Método de reducción de resolución.
Uso de PLL: Multiplicador de reloj para aumentar la cadencia de captura.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 55
Figura 4.5 Formulario de configuración de formato para captura de imágenes
Finalmente, en cuanto a la mejora de imágenes, se propuso el uso de un filtro infrarrojo que
bloqueara la luz visible limitando el ruido proveniente de otras fuentes de iluminación. Los
resultados obtenidos con el uso de dicho filtro, gracias a los iluminadores infrarrojos con los que el
grupo FRAV cuenta, se resumen en la figura 4.6, en donde se puede observar, en las imágenes de
lado izquierdo, el ruido causado por la luz proveniente del monitor de una computadora así como el
parpadeo de la luz artificial.
Figura 4.6 Resultados de utilización de filtros infrarrojos en la captura de imágenes
Capítulo 4 Desarrollo
56 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
El código fuente de este sistema se encuentra documentado, por medio de comentarios,
para la utilización de sus algoritmos en proyectos del CENIDET; así mismo, se almacenó el código
fuente y los archivos ejecutables en el servidor del grupo FRAV para permitir futuras adquisiciones
en caso de ser necesario. En la figura 4.7, se muestra la pantalla principal del sistema de captura
de imágenes desarrollado.
Figura 4.7 Formulario principal del sistema de captura de imágenes
Finalmente, se enlistan las características principales de la versión final del sistema:
Captura de imágenes desde sensores MICRON® con placa Demo2A o cámaras web
Configuración de formato de imagen para captura
Compresión de imágenes en JPG con calidad configurable
Captura de imágenes (normal o sincronizada) con el simulador del proyecto CABINTEC
Envío de audio y vídeo TCP/IP para el subproyecto REGISTRA del proyecto CABINTEC
Acoplamiento de algoritmos de seguimiento de manos
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 57
Los resultados obtenidos con la utilización de este sistema son capturas por más de
100,000 imágenes que fueron utilizadas para el desarrollo del sistema de VA. Dichas imágenes,
fueron capturadas en la ejecución de cuatro ejercicios de simulación que se describen en la
siguiente sección.
4.1.2. Ejercicios de conducción en simulador
Para recopilar información suficiente durante el acceso a la cabina de simulación que brindó la
estancia de investigación, se ejecutaron y monitorearon cuatro ejercicios de simulación con una
duración total mayor a 2:30 horas.
En la figura 4.8 se muestran imágenes de la cabina de simulación del proyecto CABINTEC
utilizada para la ejecución de dichos ejercicios.
Figura 4.8 Cabina de simulación del simulador del proyecto CABINTEC
Esta cabina, idéntica a la utilizada en un vehículo real de transporte, se encuentra ubicada
sobre una base móvil para proporcionar realismo al conductor en cuanto a los movimientos que
tendría un vehículo real en diversas situaciones. Para la visualización del escenario simulado, se
encuentra situada frente a tres pantallas de retroproyección que, por medio de sendos video
proyectores, permiten al conductor una visibilidad de 180º. En la figura 4.9, se muestran los planos
de planta y perspectiva de la distribución de los elementos descritos.
Capítulo 4 Desarrollo
58 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Figura 4.9 Planos de ubicación de cabina de simulación, pantallas de proyección y vídeo proyectores
El monitoreo de ejercicios consistió en tres tareas que se describen a continuación:
Imágenes del sensor
Se trata de imágenes cenitales8 de las manos del conductor en la zona del volante
de la cabina (ver figura 4.10). Estas imágenes, capturadas por medio del sistema descrito
en la sección anterior, se encuentran sincronizadas con los registros de simulación; es
decir, es posible saber exactamente el instante en el que fueron capturadas a lo largo de
los ejercicios simulados.
Figura 4.10 Muestra de imágenes de sensor en un ejercicio de simulación
Estas imágenes son usadas tanto para la detección automática de la posición de
las manos del conductor (ver sección 4.2) como para brindar información visual a los
expertos humanos en el proceso de adquisición de conocimiento (ver sección 4.1.3). La
ubicación del sensor de imágenes e iluminadores infrarrojos se muestra en la figura 4.12.
8 El plano cenital es aquel en el que la óptica de la cámara se encuentra en la vertical respecto al suelo. La imagen obtenida a través de este
método ofrece un campo de visión orientado de arriba hacia abajo. Este término se emplea en la realización de televisión y fotografía.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 59
Videos del sistema de representación visual del simulador
Se trata de videos grabados con una videocámara comercial de la empresa SONY®
de la vista principal del conductor (pantalla central de proyección). Dado que la grabación
de estos videos no se realizó en forma síncrona con el simulador del CABINTEC, su
correcta correlación con las imágenes del sensor y registros de simulación se basa en la
cadencia de 25 cuadros por segundo que específica la empresa fabricante de dicha
videocámara. A estos videos se les llama “del visual” debido a que es el nombre del
sistema de representación gráfica del simulador.
Debido a que la grabación se realizó en la parte posterior de la pantalla de
proyección, es necesario rotarlo horizontalmente para una correcta representación. En la
figura 4.11 se muestra un cuadro de ejemplo de estos videos. La ubicación del dispositivo
de captura se muestra con una marca roja en la figura 4.9 (a).
Figura 4.11 Muestra de un cuadro de videos del visual en un ejercicio de simulación
Estos videos son usados únicamente para brindar información visual a los expertos
humanos en el proceso de adquisición de conocimiento (ver sección 4.1.3).
.
Registros de simulación
Son archivos de texto (.txt) que, generados automáticamente por el simulador
durante cada una de las sesiones de simulación, contienen la información del estado del
vehículo a una razón aproximada de 409 registros por segundo. El contenido y formato de
estos archivos se describe en la sección 4.1.2.1.
Estos registros son utilizados para la reproducción de sesiones de simulación en el
sistema de adquisición de conocimiento, para la sincronización de las imágenes del sensor
y videos del visual y para el entrenamiento de la RNAs clasificadoras.
9 El simulador genera aproximadamente 125 ciclos de simulación por segundo; sin embargo, el almacenamiento de registros se realiza a una
tasa más baja por cuestiones de tiempo de procesamiento.
Capítulo 4 Desarrollo
60 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En la figura 4.12 se muestran cuatro imágenes desde diferentes perspectivas de la
ubicación del sensor de imágenes e iluminadores infrarrojos en la cabina de simulación, utilizados
para la captura de imágenes de la vista cenital del conductor (imágenes del sensor).
Figura 4.12 Ubicación de sensor de imágenes e iluminadores infrarrojos en la cabina de simulación
Los ejercicios de simulación fueron ejecutados por el conductor profesional Matías
Sevillano Vecillas que, con más de 20 años de experiencia, ofreció su apoyo a través del grupo
FRAV para la realización de estos experimentos. Cada ejercicio fue realizado en un ambiente de
simulación diferente para permitir una mayor diversidad en los datos recopilados. A continuación se
describen cada uno de dichos ambientes:
Ejercicio 1: Urbano
Se trata de un ambiente dentro de calles y avenidas de una ciudad virtual.
Ejercicio 2: Montaña
Se trata de un ambiente de carretera en una zona montañosa.
Ejercicio 3: Inter Urbano (Montaña + Urbano)
Se trata de un ambiente que inicia en zona montañosa y termina en una ciudad.
Ejercicio 4: Circuito Continuo
Se trata de un ambiente de una zona montañosa controlada y sin fin. Este
ambiente es utilizado para estudiar la somnolencia de conductores.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 61
En la figura 4.13 se muestran algunas imágenes del conductor profesional durante la
ejecución de los ejercicios descritos. En las imágenes, se le ve utilizando un teléfono móvil como
parte de algunas acciones “riesgosas” realizadas a lo largo de las simulaciones.
Figura 4.13 Matías Sevillano Vecillas ejecutando ejercicios de simulación en la cabina del CABINTEC
En la tabla 4.3 se resumen los datos recopilados durante el monitoreo de los cuatro
ejercicios de simulación descritos.
Tabla 4.3 Resumen de los cuatro ejercicios capturados en la cabina de simulación del CABINTEC
Ejercicio Tipo de
Ambiente Tiempo de ejecución
Imágenes de Sensor
Video del Visual
Registros de Simulación
1 Urbano 34 minutos 38,811 34 minutos 123,290
2 Montaña 32 minutos 35,721 30 minutos 149,750
3 Inter-Urbano 33 minutos 38,813 30 minutos 122,320
4 Circuito 62 minutos 61’286 52 minutos 240,980
TOTAL 4 161 minutos 174,631 146 minutos 636,340
Capítulo 4 Desarrollo
62 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.1.2.1 Adquisición de registros de simulación
Al final de la realización de los cuatro ejercicios de simulación, fue posible la extracción de los
archivos de registro. Dichos archivos, nombrados con la fecha y hora del inicio de la sesión de
simulación, contienen, en primer lugar, un encabezado de tres líneas que indica la fecha y hora del
inicio de la simulación como se muestra en la tabla 4.4.
Tabla 4.4 Ejemplo de encabezado de archivos de registros de simulación
LÍNEA CONTENIDO
1 DATOS DE LA SIMULACION:
2 FECHA Y HORA Wed Oct 29 13:22:28 2008
3
Después de estas tres líneas, contienen una con los nombres de cada una de las variables
contenidas en cada registro en formato de texto. A partir de esta línea, inician los registros de los
datos de simulación con valores separados por punto y coma (“;”). Para el caso de los archivos
generados para este proyecto, cada registro contiene 30 variables que se describen en la tabla 4.5.
Tabla 4.5 Variables contenidas en los archivos de información generados por el simulador
ID Variable Descripción Tipo Unidad | (Rango)
1 Número de ciclo Número de ciclo del simulador integer (1 – INF)
2 Tiempo Tiempo transcurrido float Segundos con milésimas (0 – INF)
3 Velocidad Velocidad del vehículo float Km/h con dos decimales (0 – 90)
4 Posición lateral Distancia vehículo - carril float Metros con resolución de mm
5 Ancho carril Anchura del carril. float Metros con resolución de mm
6 TTLC Tiempo de cambio de carril. float Segundos (0 – “#INF”)
7 Error ángulo Ángulo entre vehículo y carretera. float Grados con décimas
8 Posición volante Ángulo de giro del volante float Grados con centésimas
9 % Freno % de presión sobre el pedal float Porcentaje (0 – 100)
10 Retarder Palanca de retarder integer Posición de la palanca (0 – 4)
11 % Acelerador %de presión sobre el pedal. float Porcentaje (0 – 100)
12 Marcha Marcha actual del vehículo integer Marcha de la transmisión (0 – 12)
13 Intermitentes Estado de los intermitentes integer (-1, 0, 1)
14 Luces Estado de las luces integer (0, 1, 2, 3)
15 Revoluciones Revoluciones por minuto integer RPM (0 – INF)
16 Consumo Consumo instantaneo integer Litros por Segundo
17 Nivel del depósito Combustible en el depósito integer Litros (0 – 500)
18 Distancia recorrida Distancia total recorrida integer Metros (1 – INF)
19 Pendiente Pendiente de la carretera integer Porcentaje (0 – 100)
20 Distancia V.D. Distancia al vehículo delantero entero Metros (0 – 500)
21 Velocidad V.D. Velocidad vehículo delantero float Km/h con dos decimales
22 Número de carril ID de carril por el que se circula integer Valor interno del simulador
23 Posición vehículo (X) Coordenadas del escenario 3D float Metros con resolución de cm
24 Posición vehículo (Y) Coordenadas del escenario 3D float Metros con resolución de cm
25 Posición carretera (X) Coordenadas del escenario 3D float Metros con resolución de cm
26 Posición carretera (Y) Coordenadas del escenario 3D float Metros con resolución de cm
27 Anti niebla Estado de luces anti niebla integer (0, 1)
28 Velocidad carretera Velocidad máxima recomendada integer Km/h (0 – INF)
29 PK Punto kilométrico de carretera integer Km (0 – INF)
30 Campo 30 Identificador interno de simulador float Valor interno del simulador
Fuente: CABINTEC: Almacenamiento de variables en el simulador, Universidad de Valencia.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 63
Al final de todos los registros que conforman la información, se tienen tres líneas finales
que indican la fecha y hora de finalización del ejercicio así como el tiempo total de duración como
se muestra en la tabla 4.6.
Tabla 4.6 Ejemplo de finalización de los archivos de registros de simulación
LÍNEA CONTENIDO
1 DATOS SIMULACION. HORA FINALIZACION:Wed Oct 29 14:16:16 2008
2
3 TIEMPO TOTAL 3227.234000
Para la reproducción y sincronización de las simulaciones, se adquirieron cuatro archivos
de texto con la información descrita en esta sección (uno por cada ejercicio realizado). La
herramienta encargada de dicha reproducción así como de la adquisición y representación del
conocimiento, llamada “CoPiloto Virtual”, se describe en la siguiente sección.
4.1.3. Sistema de adquisición de conocimiento
Dadas las ventajas que ofrecía estar en contacto directo con investigadores dedicados al estudio
de la seguridad vial, se priorizó la realización de un sistema capaz de recrear situaciones de
simulación con base en los datos recopilados. El formulario principal de dicho sistema se muestra
en la figura 4.14.
Figura 4.14 Formulario principal de la herramienta CoPiloto Virtual
Capítulo 4 Desarrollo
64 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Durante la reproducción de simulaciones, en el formulario principal, se muestra al usuario
las imágenes del sensor en la parte superior y el video del visual en la inferior. La sincronización
inicial de los tres elementos monitoreados, se logra mediante la búsqueda del movimiento inicial
del vehículo y, aunque esta búsqueda se realiza de forma automática tras la carga de cada sesión,
se hizo necesaria la realización de algoritmos de búsqueda que fueron abiertos al usuario a través
del menú Variables de Entorno -> Buscar en Variables que se muestra en la figura 4.15 (d). Dicha
opción permite el avance o retroceso de la simulación mediante la búsqueda de un valor
determinado en una variable especifica.
Figura 4.15 Menús y sub-menús de la herramienta CoPiloto Virtual
La apertura de una sesión de simulación a través del menú de la figura 4.15 (a) se realiza
por medio del archivo de texto que contiene los datos de dicho ejercicio. La estructura que debe
tener el directorio de cada ejercicio para el reconocimiento de todos sus componentes por parte del
sistema se muestra en la figura 4.16 y se describe a continuación:
Imágenes del sensor
Las imágenes de la vista cenital del conductor deben de estar agrupadas en sub-carpetas
llamadas “Secuencia”. Estas carpetas, generadas automáticamente por el sistema de captura de
imágenes durante la monitorización de los ejercicios, contienen un máximo de 15,000 imágenes cada
una. La última sub-carpeta de la secuencia puede contener una cantidad menor dependiendo de la
duración del ejercicio simulado.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 65
Archivo de texto
El archivo de texto debe de estar en la carpeta raíz del ejercicio de simulación (al mismo
nivel que las sub-carpetas con imágenes del sensor). Aunque el nombre del archivo no es relevante
para el sistema, su terminación debe ser la única “txt” en la estructura.
Video del visual
El archivo de video del visual debe encontrarse al mismo nivel que el archivo de texto. Este
archivo debe tener una terminación MPG y ser el único del tipo en la estructura. Al igual que el
archivo de texto, su nombre es indiferente para el sistema.
Figura 4.16 Estructura de directorios para la apertura de sesiones de simulación con CoPiloto Virtual
Cada una de las imágenes del sensor contiene (en su nombre de archivo) el CICLO de
simulación en la que fue capturada; lo anterior, permite la sincronización de los tres elementos
contenidos en la estructura de directorios descrita.
Una vez que la simulación se carga en el programa y se realiza la sincronización
automática inicial, el usuario puede controlar la reproducción de la sesión por medio de los
controles multimedia dispuestos en la pantalla principal (figura 4.17). Dichos controles, permiten la
vista de la simulación en ambos sentidos (adelante y atrás) y a distintas velocidades, así como una
presentación cuadro por cuadro para un mejor análisis de las situaciones representadas.
Figura 4.17 Controles de reproducción de simulación del formulario principal de la herramienta
Capítulo 4 Desarrollo
66 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En la figura 4.18 se muestran las representaciones por defecto mostradas en la pantalla
principal de la herramienta (ver figura 4.14).
Figura 4.18 Información de simulación del formulario principal del CoPiloto Virtual
a) Información de la ruta
En esta sección se presenta un cuadro de imagen que muestra una representación visual de
la pendiente de la carretera por la que el vehículo está transitando. El efecto de rotación se logra por
medio de la conversión de porcentaje a grados y la transformación de la imagen por medio de un
algoritmo propio que, basado en funciones trigonométricas, fue implementado para reducir los
tiempos de procesamiento necesarios para la representación en tiempo real de las situaciones
simuladas. Así mismo se muestra el límite de velocidad por medio de una imagen que simula un
letrero de señalización generado automáticamente. Finalmente, se muestra la posición del vehículo
respecto a las líneas laterales de un carril en conjunto con la representación relativa al movimiento
entre el camión y la carretera.
b) Información del vehículo
En esta sección se presenta el estado de las luces del camión mediante la suma de mapas
de iluminación que permiten una representación realista de cada una de las luces contenidas en la
parte frontal y trasera. Los mapas de luz utilizados para este fin se muestran en la figura 4.19. Así
mismo, se muestra la inclinación de los pedales (mediante el uso del mismo algoritmo de rotación
utilizado en otros puntos del sistema) y el nivel de combustible del vehículo por medio de un medidor
virtual utilizado también en el módulo de inspección de variables descrito más adelante.
Figura 4.19 Mapas de luz utilizados para la representación de las luces del vehículo
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 67
Valoración de experto
En esta última sección (ver figura 4.20), ubicada en la parte inferior derecha del formulario
principal, se muestra la salida de las señales de alerta generadas automáticamente mediante la
implementación de algunas reglas básicas de conducción:
Exceso de velocidad.
Forzamiento del motor.
Frenado brusco.
Invasión de carril sin señalización.
Depósito de gasolina en reserva.
En esta sección también se dispone de una barra para la valoración de riesgo por parte de
un experto humano para la adquisición del conocimiento. Esta valoración, permitida únicamente
cuando la reproducción de la simulación se realiza hacia adelante y acotada a valores numéricos
entre 0 y 100, es graficada en el tiempo en un plano bidimensional como referencia para el experto.
Figura 4.20 Información de valoración de experto del formulario principal del CoPiloto Virtual
Además de la información presentada por defecto en el formulario principal, el sistema
cuenta con un inspector de variables que, accesible desde el menú mostrado en la figura 4.15 (d),
permite la representación visual de cada uno de los datos almacenados en el archivo que contiene
los datos de simulación.
Esta representación visual, realizada de forma automática y en tiempo real, puede hacerse
de tres formas posibles dependiendo del tipo de datos contenidos en la variable inspeccionada
como se muestra en la figura 4.21.
Figura 4.21 Información de valoración de experto del formulario principal del CoPiloto Virtual
Capítulo 4 Desarrollo
68 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
a) Tacómetro
Este representador visual, muestra la escala y marcas de graduación necesarias para la
indicación, por medio de una aguja representada por una línea roja, del valor inspeccionado. Este
control, diseñado específicamente para el sistema CoPiloto Virtual, puede ser creado con o sin una
imagen de fondo como se muestra en la figura 4.22.
Figura 4.22 Modos de representación por medio del control tacómetro
Este control es utilizado, en general, para la representación de todas las variables que es
posible inspeccionar (a excepción de las que requieren un grado de rotación para su correcto
entendimiento).
b) Gráfica bidimensional
Esta gráfica, utilizada para la inspección de todas las variables, muestra el comportamiento
en el tiempo de la variable como referencia para observar los cambios que han venido sucediendo en
una ventana configurable de tiempo que, por defecto, se establece en 10 segundos.
c) Rotámetro
El rotámetro es un control que representa la información contenida en una variable en forma
de rotación. Este control recibe, en su construcción, una imagen que será rotada en proporción al
valor del dato que se esté inspeccionando. Este control es utilizado, principalmente, para la
representación de la posición del volante, la posición de los pedales y la inclinación de la carretera.
Todos los controles descritos cuentan con algoritmos de auto-escala y auto-representación
que son configurados al momento de su construcción en tiempo de ejecución. Todas las variables
inspeccionadas son presentadas utilizando un único formulario dinámico que puede ser
reproducido cuantas veces sea necesario (ver figura 4.23).
Figura 4.23 Formulario dinámico para la inspección de variables
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 69
Los algoritmos requeridos para la utilización de estos controles fueron depositados en una
biblioteca llamada VGraph_Lib (Visual Graph Library) con el objetivo de facilitar su uso en otros
proyectos. Así mismo, los algoritmos para el control de archivos, videos del visual e imágenes del
sensor están contenidos en una biblioteca llamada CABINTEC_Lib. En la figura 4.28 se muestra un
diagrama de las inclusiones necesarias para la utilización conjunta de estas bibliotecas así como el
formulario principal del sistema en tiempo de diseño.
Figura 4.24 Utilización de bibliotecas del sistema CoPiloto Virtual
En la figura 4.25 se muestra la pantalla principal del sistema CoPiloto Virtual junto con tres
ventanas de inspección de variables que es, finalmente, la herramienta de adquisición y
representación de conocimiento en funcionamiento.
Figura 4.25 CoPiloto Virtual en funcionamiento con inspección de tres variables
Capítulo 4 Desarrollo
70 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
La inspección y verificación de datos también puede ser realizada por medio de la vista de
datos accesible desde el menú opciones de la figura 4.15 (c). Esta vista, muestra al usuario los
datos de la simulación reproducida en forma de tabla como se muestra en la figura 4.26.
Figura 4.26 Vista de datos en el formulario principal del CoPiloto Virtual
Cuando esta vista es seleccionada, la reproducción visual es pausada para un análisis
estático de datos. Dadas las limitaciones de memoria que el control de cuadricula de datos tiene,
se permite la configuración del número de registros a mostrar. Este parámetro (Registros en
Tabla), establece el número de filas de la tabla mostrada antes y después del ciclo en el que se
pausó la simulación; es decir, si el valor de este parámetro se establece en 200, la tabla contendrá
401 registros (200 registros anteriores + el actual + 200 registros posteriores).
Así mismo, se puede establecer el paso de lectura de registros. Dicho parámetro, se refiere
al número de registros que serán procesados cada 85 ms para la representación visual; es decir, si
el paso está configurado en tres, se leerán todos los registros del archivo, pero la representación
visual se actualizará únicamente cada tercero. Esta opción resulta útil para una representación en
tiempo real en sistemas de cómputo lentos.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 71
Figura 4.27 Menú valoración experto para el manejo del conocimiento adquirido
Para la adquisición del conocimiento realizada por medio del uso del control mostrado en la
figura 4.19, se ha dispuesto un menú llamado Valoración Experto (ver figura 4.27) que permite el
manejo de los datos generados en el proceso de adquisición. A continuación se describen los
elementos que componen dicho menú:
Iniciar nueva valoración
Esta opción permite iniciar una nueva sesión de valoración de riesgo por parte de un experto
humano. El sistema preguntará al usuario la ubicación y el nombre del archivo en los que se desea
guardar la información adquirida. Estos archivos, de tipo .exp, pueden ser guardados en cualquier
medio de almacenamiento; sin embargo, se recomienda hacerlo en el directorio base de la sesión
cargada ya que no afectarán la estructura propuesta en la figura 4.16. Al iniciar una nueva valoración,
el sistema preguntará el nombre del experto para su almacenamiento; lo anterior, se implementó con
la finalidad de compartir la información generada por este sistema en futuras visitas a centros de
seguridad vial por parte del grupo FRAV.
Cargar datos de valoración
Esta opción permite cargar los datos de una sesión anterior con la finalidad de hacer
correcciones, análisis o para terminar una valoración inconclusa.
[Guardar | Guardar como] datos de valoración
Esta opción permite el guardado de los datos generados por la valoración del experto en el
archivo seleccionado al iniciar una nueva sesión de valoración. Así mismo el sistema preguntará, al
salir del programa, si se desean guardar los cambios realizados cuando hay una valoración en curso.
Para aumentar la eficiencia del guardado, apertura y manejo de datos, los archivos son
guardados en formato binario; por lo anterior, se ha dispuesto, en el mismo menú, una opción que
permite la exportación de un archivo “.exp” a uno “.csv” (separado por comas) que es compatible
con la mayoría de las herramientas comerciales utilizadas en la aplicación de técnicas de IA.
Dicha exportación no afecta la simulación en curso ni los datos de valoración generados
hasta el momento; sin embargo, es necesario el guardado del archivo previo a su exportación para
asegurar que contiene la totalidad de los datos adquiridos.
El sistema descrito en esta sección fue probado por diversos usuarios en laboratorio para
realizar mejoras y encontrar problemas en su utilización; sin embargo, los resultados reales se
muestran en la siguiente sección (4.1.4), donde se describe el uso del sistema en un experimento
de adquisición de conocimiento con expertos del Real Automóvil Club de España (RACE).
Capítulo 4 Desarrollo
72 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.1.4. Adquisición de conocimiento de expertos en seguridad vial
Para realizar la adquisición de conocimiento con el sistema descrito en la sección anterior, se
solicitó al RACE su colaboración por medio de tres de sus expertos en seguridad vial. En la figura
4.28 se muestra una imagen capturada durante la realización de la adquisición del conocimiento en
las instalaciones de dicho club.
Figura 4.28 Imagen de la realización de la adquisición de conocimiento en las instalaciones de RACE
El diseño de los experimentos corrió a cargo del Dr. Isaac Martín de Diego que cuenta con
un diplomado en estadística por la Universidad de Valladolid. Dichos experimentos consistieron en
la valoración de seguridad de una sección continua de 10 minutos de los primeros tres ejercicios y
una de 30 para el cuarto (elegidas aleatoriamente). Dichos periodos se resumen en la tabla 4.7.
Tabla 4.7 Periodos de valoración de seguridad por ejercicio para la adquisición del conocimiento
Sesión Inicio (MINUTO)
Fin (MINUTO)
Total (MINUTOS)
ID de Experimento
Ejercicio 1 14:00 24:00 10:00 1
Ejercicio 2 02:00 12:00 10:00 2
Ejercicio 3 17:00 27:00 10:00 3
Ejercicio 4 00:50 30:50 30:00 4
Cada experto realizó la evaluación del mismo segmento de cada ejercicio en orden
aleatorio. Dicho orden se muestra en la tabla 4.8 considerando el identificador de experimento (ID
de Experimento) establecido en la tabla 4.7.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 73
Tabla 4.8 Turnos aleatorios de evaluación de experimentos por experto
Experto Evaluación 1 (ID)
Evaluación 2 (ID)
Evaluación 3 (ID)
Evaluación 4 (ID)
Experto 1 3 1 4 2
Experto 2 3 4 2 1
Experto 3 2 1 3 4
La distribución y numeración de los expertos del RACE que participaron en el experimento
de adquisición de conocimiento se muestra en la figura 4.29.
Figura 4.29 Distribución de expertos en seguridad vial en la ejecución de experimentos de valoración
La adquisición del conocimiento fue realizada de forma satisfactoria en aproximadamente
dos horas de la tarde del miércoles 19 de noviembre de 2008, donde fue realizada la primera
prueba real del sistema de adquisición del conocimiento con excelentes resultados.
Al final del experimento, cada experto llenó una encuesta (diseñada también por el Dr.
Isaac Martín) con el objetivo de tener comentarios y referencias para la mejora de este sistema en
futuras aplicaciones. Dichas encuestas, se presentan en formato digital en los anexos de este
documento.
En la siguiente sección se presenta un breve análisis de la información obtenida en los
experimentos descritos.
Capítulo 4 Desarrollo
74 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.1.4.1 Análisis del conocimiento adquirido
La valoración del nivel de riesgo realizada durante los experimentos de adquisición del
conocimiento, se encuentra en un rango de cero a cien, donde cero indica un comportamiento
seguro y cien uno muy riesgoso.
Como se estableció en los alcances y limitaciones de este proyecto, la clasificación del
comportamiento se limitó a cinco clases (seguro, aceptable, poco riesgoso, bastante riesgoso y
muy riesgoso); por lo anterior, se hizo necesaria la cuantificación de los niveles de riesgo
establecidos por los expertos humanos mediante los rangos mostrados en la tabla 4.9.
Tabla 4.9 Rangos de cuantificación de nivel de riesgo para las cinco clases de comportamiento
CLASE RANGO
Seguro [0 – 33]
Aceptable [34 – 67]
Poco Riesgoso [68 – 78]
Bastante Riesgoso [79 – 89]
Muy Riesgoso [90 – 100]
En las siguientes tablas (tabla 4.10 a tabla 4.12) se presenta el resumen de las muestras
por clase obtenidas de cada uno de los expertos después de la cuantificación de los datos.
Tabla 4.10 Muestras por clase de comportamiento de conducción por ejercicio del experto 1
Experto 1 SEGURO ACEPTABLE POCO
RIESGOSO BASTANTE RIESGOSO
MUY RIESGOSO
TOTAL
Ejercicio 1 7432 16450 6715 4135 975 35707
Ejercicio 2 9702 30213 2885 2090 1135 46025
Ejercicio 3 11747 11199 2540 2105 9190 36781
Ejercicio 4 43681 67965 7415 4135 583 123779
Tabla 4.11 Muestras por clase de comportamiento de conducción por ejercicio del experto 2
Experto 2 SEGURO ACEPTABLE POCO
RIESGOSO BASTANTE RIESGOSO
MUY RIESGOSO
TOTAL
Ejercicio 1 17590 1143 378 3285 13311 35707
Ejercicio 2 43352 1935 198 252 288 46025
Ejercicio 3 20941 4050 980 4290 6520 36781
Ejercicio 4 111714 6700 1885 1470 2010 123779
Tabla 4.12 Muestras por clase de comportamiento de conducción por ejercicio del experto 3
Experto 3 SEGURO ACEPTABLE POCO
RIESGOSO BASTANTE RIESGOSO
MUY RIESGOSO
TOTAL
Ejercicio 1 1802 18940 3995 880 10090 35707
Ejercicio 2 13437 31908 235 445 0 46025
Ejercicio 3 312 855 11360 11680 12574 36781
Ejercicio 4 56044 62395 1595 1265 2480 123779
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 75
Como se puede apreciar en un análisis visual de los datos, no existe alguna correlación
definitiva entre las valoraciones realizadas por cada uno de los expertos. Además, es posible
observar distintas similitudes y contradicciones entre ellos; por ejemplo, los expertos uno y tres
coinciden en que, en el ejercicio cuatro, se tiene un comportamiento aceptable en casi la mitad del
lapso valorado. Por otro lado, esos mismos expertos discrepan en el ejercicio tres, en donde el
primero indica un comportamiento seguro en gran parte de la valoración y el segundo uno muy
riesgoso.
Por su parte, el experto dos, que presenta una tendencia clara hacia una conducción
segura en todas sus valoraciones, contradice a las realizadas por el experto tres en el primer y
tercer ejercicio, mientras que coincide con el experto uno en este último.
Al ser la percepción del nivel de riesgo un concepto propio, es imposible establecer una
verdad absoluta acerca de quién de los tres expertos tiene la mejor valoración. Aunque es posible
realizar una aproximación a la fiabilidad de cada uno de ellos mediante sus años de experiencia o
el tipo de formación recibida, se decidió la utilización de todos los datos obtenidos para el
entrenamiento del clasificador neuronal; por lo anterior, se realizaron entrenamientos y pruebas
para 12 RNAs, una por cada experto por cada ambiente de simulación10
.
En las siguientes figuras (figura 4.30 a figura 4.33) se muestran las gráficas de las
valoraciones de nivel de riesgo realizadas por los tres expertos en los lapsos establecidos en cada
uno de los ejercicios (ver tabla 4.8).
Figura 4.30 Gráfica de los niveles de valoración de seguridad de los tres expertos en el ejercicio 1
10
Se estableció que la percepción de seguridad en el fenómeno de conducción es diferente para cada ambiente simulado; lo anterior debido
a que cada uno de dichos ambientes requiere de diferentes acciones, por parte del conductor, dependiendo de las situaciones que se le presenten.
Capítulo 4 Desarrollo
76 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Figura 4.31 Gráfica de los niveles de valoración de seguridad de los tres expertos en el ejercicio 2
Figura 4.32 Gráfica de los niveles de valoración de seguridad de los tres expertos en el ejercicio 3
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 77
Figura 4.33 Gráfica de los niveles de valoración de seguridad de los tres expertos en el ejercicio 4
Continuando con la información mostrada en las tablas anteriores (tabla 4.10 a tabla 4.12),
las gráficas muestran un comportamiento similar en los niveles de valoración. Existen lapsos en las
valoraciones en los que los diferentes expertos tienen un comportamiento similar y otros en los que
tienen uno completamente contradictorio; por lo tanto, es imposible descartar la información de
alguno de ellos como se consideró en un principio11
.
Para estas gráficas se observa, en la del tercer ejercicio (figura 4.32), una alta correlación
entre el nivel de seguridad del experto uno y el experto dos; mientras que en el segundo ejercicio
(figura 4.31) dicha correlación se observa más entre el experto uno y el tres.
Para una mejor observación de estos comportamientos, se realizó un suavizado de los
datos mediante un filtro de promediado utilizando 801 elementos mediante ( 4.1 ).
𝑌(𝑛)𝑆𝑢𝑎𝑣𝑖𝑧𝑎𝑑𝑜 =
𝑌 𝑖 𝑂𝑟𝑖𝑔𝑖𝑛𝑎𝑙
𝑛
𝑛
𝑖=1
𝑌(𝑖)𝑂𝑟𝑖𝑔𝑖𝑛𝑎𝑙
801
𝑛
𝑖=𝑛−801
, 𝑛 ≤ 801
, 𝑛 > 801
( 4.1 )
Las gráficas suavizadas de las valoraciones de los ejercicios uno, dos, tres y cuatro se
muestran en la figura 4.34.
11
Se consideró descartar la información del experto con menor experiencia al comprobarse una similitud en los niveles de valoración de los
dos expertos restantes,
Capítulo 4 Desarrollo
78 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Figura 4.34 Gráfica de los niveles de valoración de seguridad suavizados
Aunque estos datos suavizados pudieron ser utilizados en el entrenamiento de las RNAs
para facilitar su trabajo, se prefirió utilizar los datos originales ya que existe cierta pérdida de
información (en el proceso de suavizado) que, en este caso, eliminaría pequeños lapsos de
comportamiento riesgoso que es importante analizar.
Por otro lado, aunque el proceso de suavizado es utilizado para eliminar cierto tipo de ruido
en los datos, una de las características principales de las RNAs es su inmunidad al ruido como se
mencionó en secciones anteriores de este documento.
Los datos utilizados en la reproducción de simulaciones, provinieron del archivo de texto
que contiene los datos de la dinámica del vehículo descritos en la sección 4.1.2.1; sin embargo, en
el proceso de adquisición de conocimiento, se brindó al usuario información adicional proveniente
de imágenes del sensor y de los videos del visual.
Dado que la información visual resulta importante en la valoración del nivel de riesgo en el
fenómeno de conducción, fue importante dotar al clasificador neuronal de otra información que,
obtenida a partir de imágenes, complementara los datos de la dinámica del vehículo.
En la siguiente sección, se describe el desarrollo del sistema de VA que realiza la
detección automática de la posición de las manos del conductor en las imágenes del sensor y
genera información que es utilizada en la clasificación automática del comportamiento.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 79
4.2 Detección de la posición de las manos del conductor con VA
Para complementar la información que alimentó al clasificador neuronal del comportamiento de
conducción, se desarrolló un sistema de VA capaz de detectar la posición de las manos del
conductor. Dicho sistema, diseñado para trabajar con imágenes infrarrojas bidimensionales de la
vista cenital del conductor, tiene ciertas limitaciones que se describen a continuación.
4.2.1. Limitaciones del sistema de visión artificial
Dado que el acceso a la cabina de simulación para la ejecución y monitoreo de ejercicios sólo fue
posible mientras duró la estancia de investigación, la captura de las imágenes utilizadas por el
sistema de VA no fue realizada a la par con su desarrollo. Lo anterior, dificultó dicho desarrollo
debido, principalmente, a la imposibilidad de realizar nuevas capturas teniendo en cuenta
problemas o limitaciones encontradas durante su implementación.
Una de las principales limitaciones que tiene el sistema de VA es la nula información de
profundidad con la que se cuenta, ya que, como se muestra en la figura 4.35, no es posible
identificar a simple vista (ni por el ojo humano) si la mano derecha del conductor se encuentra
“tocando” el volante o no.
Figura 4.35 Muestra de imágenes con problemas en la precepción de profundidad de sus elementos
Aunque dicho problema puede ser resuelto fácilmente mediante el análisis de una segunda
imagen bidimensional capturada en el mismo instante desde otra perspectiva perpendicular, no se
consideró esta situación durante el acceso a la cabina de simulación y no es posible contar con
esta segunda imagen.
En la figura 4.36 se muestran algunas imágenes que resultan en errores de detección por
parte del sistema de VA.
Capítulo 4 Desarrollo
80 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Figura 4.36 Muestra de imágenes con errores de detección por parte del sistema de VA
En primer lugar, en la imagen superior izquierda, se tiene otro problema que implica la
percepción de profundidad por parte del sistema de VA. En esta imagen, el brazo derecho del
conductor se encuentra “sobre” el volante; sin embargo, es evidente que la posición de la mano
está por debajo de él.
Así mismo, en la imagen superior derecha, se observa al conductor con la mano derecha
en una posición adecuada (sobre el volante); sin embargo, se encuentra utilizando un teléfono
móvil en una de las acciones más riesgosas al momento de conducir. En este caso, el sistema de
VA requeriría realizar la identificación de diversos objetos, así como una caracterización de la
mano como un objeto deformable para identificar este tipo de situaciones específicas.
En la imagen inferior izquierda, se observa la mano izquierda del conductor tocando el
volante de una manera inadecuada y, aunque es posible que algún humano considere que la mano
está realmente en el volante, el sistema de VA no identificará esa mano por la poca área con la
que lo cubre. Este problema podría ser resuelto con una mejor iluminación en dicha área de la
cabina que daría como resultado una mejor nitidez en esos objetos.
Finalmente, en la imagen inferior se obstruye parte del volante con un objeto ajeno a las
extremidades del conductor (su cabeza). Esta situación no fue considerada en el monitoreo de los
ejercicios y, como se verá más adelante, para el sistema de VA la cabeza del conductor tiene las
mismas características de luminosidad que las correspondientes a una mano en la misma posición.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 81
Al final de la sección 4.2, se presentan los resultados del sistema de VA. Dado que los
alcances y limitaciones de este proyecto consideran situaciones controladas dentro de la cabina de
simulación y los objetivos hacen referencia a la detección de la posición de las manos “sobre el
volante”, se presentan dos tablas diferentes de resultados. La primera (tabla 4.14), muestra los
resultados de las pruebas de dicho sistema considerando como erróneas las situaciones descritas
en esta sección. La segunda (tabla 4.15), muestra los resultados de las mismas pruebas
considerando las situaciones descritas como problemas fuera de los alcances del sistema.
4.2.2. Detección automática del volante
El primer paso para la detección automática de la posición de las manos del conductor sobre el
volante, es la detección e identificación de dicho objeto dentro de las imágenes de la cabina de
simulación. Para ello, se realiza el PDI mostrado en la figura 4.37.
Figura 4.37 PDI para la detección automática del volante en imágenes del sensor
Capítulo 4 Desarrollo
82 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En la figura 4.38 se muestra el resultado de la detección descrita en tres diferentes
imágenes del sensor.
Figura 4.38 Resultados de la detección automática en el volante en tres distintas situaciones
Debido a la precisión requerida por el sistema de VA para la detección automática de las
manos en el volante en situaciones donde el conductor apenas lo controla con uno o dos dedos, la
detección del volante se convirtió en un procedimiento crucial para el resto del sistema. Por lo
anterior, y debido a el error en la detección automática de un +/- 5% en la posición (x, y) del centro
de la elipse, se diseñó una herramienta complementaria que permite la selección manual de las
regiones de búsqueda de las manos del conductor.
Dicha herramienta, además de permitir la detección manual del volante por medio de
elipses, permite seleccionar regiones rectangulares como apoyo al sistema de detección de manos
que se encuentra desarrollando el grupo FRAV, en donde la detección de la posición de las manos
se realiza en toda la cabina de simulación tratando de ubicar las regiones más comunes en las que
las manos pueden estar (como la palanca de cambios, el freno de manos o el navegador).
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 83
4.2.3. Detección manual del volante
En la figura 4.39, se muestra el formulario principal de la herramienta implementada para la
detección manual del volante.
Figura 4.39 Formulario principal de la herramienta de selección manual de regiones de búsqueda
Dicha herramienta, permite al usuario el trazado de elipses y rectángulos sobre una imagen
seleccionable. El trazado de estas regiones, puede hacerse por medio del ratón sobre la imagen en
cuestión o a través de los controles dispuestos en el mismo formulario; así mismo, permite la
rotación de las elipses generadas para tener una mayor precisión en el área seleccionada.
El manual de este sistema se encuentra auto contenido en la parte inferior izquierda de la
pantalla principal. Finalmente, es posible almacenar en archivos de texto separados por punto y
coma los valores generados para su utilización en otros sistemas. Los parámetros almacenados en
dichos archivos, para cada una de las figuras geométricas que es posible dibujar, se resumen en la
tabla 4.13
Tabla 4.13 Parámetros almacenados por la herramienta de selección manual de regiones
Figura Parámetro 1 Parámetro 2 Parámetro 3 Parámetro 4 Parámetro 5 Parámetro 6
Elipse Tipo = 0 Centro X Centro Y Semieje Mayor
Semieje Menor
Ángulo de Rotación
Rectángulo Tipo = 1 Inicio X Inicio Y Ancho Largo No Aplica
La utilización de esta herramienta se debe, en parte, a que dentro de las condiciones
controladas esperadas en la cabina de simulación para la captura de imágenes, se consideró fija la
posición del volante; sin embargo, la cabina utilizada en el simulador permite el ajuste de dicho
instrumento a diferentes alturas para comodidad del conductor.
Capítulo 4 Desarrollo
84 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.2.4. Detección de las manos del conductor
El proceso inicial para la detección automática de las manos del conductor en el volante es el
enmascaramiento de la imagen a detectar con la zona interior del volante (establecida manual o
automáticamente) como se muestra en la figura 4.40.
Figura 4.40 Enmascaramiento de imágenes con la zona del volante por medio de operación AND
La operación AND de una imagen fuente con una máscara generada de acuerdo a los
parámetros de la posición del volante, da como resultado una imagen que contiene únicamente
información de los píxeles que se encuentran en dicha zona. Esta imagen, al ser binarizada con un
umbral automático (ver figura 4.41), permite realizar una segmentación por regiones para detectar
el número de objetos que se encuentran en dicha zona y sus propiedades (ver figura 4.42).
Figura 4.41 Binarización de imágenes enmascaradas con la zona del volante por medio de Otsu
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 85
Figura 4.42 Resultado de detección después de la primera etapa del sistema de VA
En esta primera etapa de detección se tiene el número de regiones que se encuentran
sobre la zona del volante (indicadas en la parte superior de la imagen en color rojo); sin embargo,
es necesario filtrar, en esta etapa, las regiones de área menor a 15 píxeles12
que pueden aparecer
debido a algún tipo de ruido. A pesar de este filtro, es posible tener más de una región después del
segmentado inicial como se muestra en la figura 4.43
Figura 4.43 Detección de más de dos regiones después de la primera etapa del sistema de VA
12
El umbral de área se eligió a partir del área que ocupa una región conformada por un solo dedo del conductor que es de 23 píxeles,
Capítulo 4 Desarrollo
86 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En la segunda etapa de la detección automática, se aplica un filtro de distancias que mide
(en píxeles) la distancia de cada una de las regiones encontradas con sus semejantes; en este
caso, si se encuentra que los centros de dos regiones están a una distancia menor de 80 píxeles13
,
se consideran como parte de una misma región.
En la figura 4.44 se muestra un caso específico (documentado automáticamente en la
esquina superior izquierda de la imagen), en donde el filtro por áreas deja pasar tres regiones
sobre el volante en la primera etapa de detección (rectángulos blancos); sin embargo, en la
segunda etapa, el filtro de distancia reduce dichas regiones a dos (rectángulos azules).
Figura 4.44 Reducción de regiones por filtro de distancia en la segunda etapa del sistema de VA
Aunque la implementación de este filtro y la correcta elección del umbral de distancias
fueron cruciales para el buen desempeño del sistema, existieron casos en los que este filtro no fue
capaz de reducir el número de regiones correctamente. Un caso específico, donde este filtro suele
fallar, es el mismo mostrado en la figura 4.43. En donde la distancia entre cada una de las regiones
es suficientemente grande como para considerarlas una misma región.
Por lo anterior se hizo necesaria la implementación de un tercer filtro que, siendo el más
complicado (computacionalmente), se encarga de buscar regiones conexas en las regiones
comprendidas entre los centros de las regiones detectadas en la imagen original. Este proceso se
realiza mediante la creación de máscaras elípticas entre los centros de dichas regiones como se
muestra en la figura 4.45 para el caso de la figura 4.43.
13
El umbral utilizado para el filtro de distancia en la segunda etapa del sistema de VA fue elegido a partir de la separación máxima existente
entre los dedos del conductor y la muñeca de su brazo.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 87
Figura 4.45 PDI para el filtro de regiones conexas en la tercera etapa del sistema de VA
En este tercer filtro, se realizan operaciones AND con la imagen original y las mascaras
creadas a partir de los centros de las regiones detectadas después de la aplicación del filtro de
distancias. Las imágenes resultantes son analizadas para calcular el área de las regiones
remanentes. Al final, si el porcentaje de dicha área es mayor a 40%, las dos regiones analizadas
se consideran como una sola región como se muestra en la figura 4.53.
Figura 4.46 Reducción de regiones en filtro de regiones conexas en la tercera etapa del sistema de VA
Capítulo 4 Desarrollo
88 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Finalmente, para asegurar una detección máxima de elementos, si existen más de dos
regiones detectadas después de la aplicación del tercer filtro, se aplica un cuarto que se encarga
de eliminar las regiones con menor área hasta obtener únicamente dos regiones en la zona del
volante.
Aunque la aplicación de estos cuatro filtros resultó en una correcta detección de las manos
del conductor en la mayoría de las imágenes, existen casos en los que se detectan dos regiones
cuando una sola mano está presente y la salida del sistema de VA es errónea (ver sección 4.2.2).
Después de la detección de objetos sobre la zona del volante, el sistema se encarga de la
identificación y etiquetado de cada uno de ellos como se describe en al siguiente sección.
4.2.1. Etiquetado de las manos del conductor detectadas
El etiquetado de las manos, sobre las regiones detectadas, es la última etapa del sistema de VA
antes del almacenamiento de valores en los archivos que fueron utilizados en la alimentación del
clasificador neuronal de comportamiento.
En la figura 4.47 se muestra el resultado de esta etapa de etiquetado para el caso
específico mostrado en la figura 4.43.
Figura 4.47 Resultado del etiquetado de las manos del conductor detectadas automáticamente
En la imagen se observa que se han detectado tres regiones después de la aplicación del
filtro de áreas y que han sido reducidas a dos por medio del de regiones conexas.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 89
El etiquetado de regiones se realiza por medio de reglas básicas que dependen de la
posición de las regiones detectadas; sin embargo, algunos filtros pueden indicar fácilmente de que
mano se trata con un alto grado de confiabilidad.
Para el caso del filtro de regiones conexas, cuando existe reducción de regiones debido a
al porcentaje del área resultante (ver figura 4.53), es posible saber si dichas regiones corresponden
a la mano izquierda o derecha por el ángulo de inclinación de la recta que une los centros de
dichas regiones (eje mayor de la elipse generada). En este caso, si la pendiente de la recta es
negativa, la probabilidad de que se trate de la mano derecha es mucho más alta debido a la
postura del conductor en condiciones normales de manejo. Por otro lado, si la pendiente de dicha
recta es positiva, la probabilidad de que se trate de la mano izquierda aumenta.
En este caso, cuando se tienen dos regiones y una de ellas es identificada, la región
restante es etiquetada como la opuesta; es decir, si una región se considera como mano izquierda,
la segunda región se considera como la derecha.
Cuando el etiquetado por pendientes no es posible, y se tiene más de una región que
etiquetar, se considera como la mano izquierda a la más próxima a cero en su coordenada x (el
elemento más a la izquierda de la imagen); por otro lado, cuando existe una única región que
etiquetar, se considera la posición de ésta respecto al centro del volante.
Para casos especiales en los que las reglas básicas de etiquetado son imposibles de
aplicar, se anula la detección y se espera una imagen que contenga mayor información.
El almacenamiento de información en los archivos utilizados para la generación de bases
de datos finales (sección 0) se realiza en archivos de texto que, separados por punto y coma,
contienen tres instancias por registro: ciclo de simulación donde se realizó la detección (entero),
detección de la mano izquierda (booleano) y detección de la mano derecha (booleano).
En la figura 4.48, se muestran, a modo de ejemplo, tres resultados en diversas situaciones
de la detección y etiquetado automático de las manos del conductor en la zona del volante por
medio del sistema de VA.
Figura 4.48 Ejemplos de resultados de la detección automática de las manos por medio de VA
En la siguiente sección, se exponen los resultados de la efectividad del sistema de VA.
Capítulo 4 Desarrollo
90 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.2.2. Pruebas del sistema de visión artificial
Las pruebas del sistema de VA descrito en la sección anterior, fueron realizadas manualmente a
5,000 imágenes por ejercicio (20,000 en total). En estas pruebas se consideró tanto la detección de
regiones como el etiquetado de las manos del conductor14
.
Como se mencionó en la sección 4.2.1, los resultados de las pruebas realizadas al sistema
de VA se presentan en dos tablas que consideran ciertos criterios expuestos por académicos
involucrados en este proyecto de investigación. Así, es posible ver los resultados de la primera
tabla (tabla 4.14) como el peor de los casos y los mostrados en la segunda (tabla 4.15) como el
mejor. Para ambos casos, se tiene una efectividad aceptable en los resultados obtenidos con un
porcentaje mayor a 85.
Para la realización de las pruebas resumidas en las siguientes tablas, se modificó el
sistema de VA para que almacenara las imágenes resultantes en diferentes carpetas de acuerdo a
su clasificación. Al final de la ejecución, las imágenes contenidas en dichas carpetas fueron
analizadas una a una por medio de una herramienta de exploración incluida en el SO Windows®.
Tabla 4.14 Resultados del sistema de VA considerando erróneas las situaciones limitantes
Imágenes Probadas
Clasificación
Efectividad
0 Manos 1 Mano 2 Manos
Sesión TOTAL MALAS TOTAL MALAS TOTAL MALAS
Ejercicio 1 5000 329 46 2341 550 2330 58 86.92%
Ejercicio 2 5000 45 28 1656 511 3299 4 89.14%
Ejercicio 3 5000 44 35 1766 390 3190 320 85.10%
Ejercicio 4 5000 3 3 1204 396 3793 93 90.16%
TOTALES 20000 421 112 6967 1847 12552 475 87.83%
Tabla 4.15 Resultados del sistema de VA considerando correctas las situaciones limitantes
Imágenes Probadas
Clasificación
Efectividad
0 Manos 1 Mano 2 Manos
Sesión TOTAL MALAS TOTAL MALAS TOTAL MALAS
Ejercicio 1 5000 329 46 2341 170 2270 58 94.52%
Ejercicio 2 5000 45 28 1656 132 3299 4 96.72%
Ejercicio 3 5000 44 35 1766 140 3190 48 95.54%
Ejercicio 4 5000 3 3 1204 193 3793 76 94.56%
TOTALES 20000 421 112 6967 635 12552 186 95.34%
14
La detección del volante fue realizada con la herramienta de selección manual expuesta en la sección 4.2.3.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 91
4.3 Preprocesamiento y análisis de datos
Una vez que se generó la información derivada de la detección automática de las manos por medio
del sistema de VA, fue necesaria la unión de dichos datos con los contenidos en los archivos de
registros de simulación. Además, previo al entrenamiento y pruebas del sistema, se realizó una
selección de variables como parte del proceso de preprocesamiento del KDD (ver figura 2.23).
4.3.1. Selección de variables de registros de simulación
Los archivos de información generados por el simulador durante los ejercicios descritos en la
sección 4.1.2 contienen aproximadamente 41 registros por segundo. Cada uno de éstos, contiene
a su vez 30 instancias que describen la dinámica del vehículo en todo momento de la simulación.
Para el proceso de selección de variables, dichas instancias fueron analizadas minuciosamente
para escoger aquellas que permitieran realizar la clasificación del comportamiento del conductor de
forma adecuada.
El análisis del contenido de algunas de estas variables, realizado durante el desarrollo del
sistema de adquisición del conocimiento, demostró que existen ciertas inconsistencias en sus
valores debidas a la etapa de desarrollo en la que se encuentra el sistema de simulación; sin
embargo, la importancia de la información que algunas de éstas aportan en la clasificación del
comportamiento, hace aceptable la cantidad de ruido que contienen en la mayoría de los casos. La
primera etapa de selección de variables, que consistió en la discriminación de aquellas cuya
medición es imposible en el mundo real, se resume en la tabla 4.22.
Para esta etapa, la variable TTLC (por las siglas en ingles de Time To Line Crossing), fue
seleccionada en primera instancia debido a la importancia que se le da en investigaciones de
seguridad vial en simuladores [Kovordanyi, 2005][Harbluk, 2007]; sin embargo, debido a que no es
una variable medible en el mundo real y es inconsistente, fue finalmente descartada.
A pesar de lo anterior, para comprobar que los datos contenidos en dicha variable (TTLC)
no son útiles para la clasificación del comportamiento (en este caso específico), se incluyó en un
experimento de selección automática de variables con el algoritmo ReliefF15
. Los resultados de
dicho experimento se muestran en la tabla 4.16.
Tabla 4.16 Resultado de selección de variables con el algoritmo ReliefF para Ejercicio 1 - Experto 1
RANK Variable RANK Variable 1 0.09612 N_HE 10 0.03371 INTERMITENTE 2 0.07118 N_VELOCIDAD_VIA 11 0.02777 N_DIST_SEGURIDAD 3 0.06371 N_PORC_ACEL 12 0.02148 Mano Derecha 4 0.06284 N_ANG_GIRO_VOLANTE 13 0.01226 RETARDER 5 0.0622 MARCHA 14 0.00769 N_PDTE_CARRETERA 6 0.0585 N_RPM 15 0.00481 N_TTLC 7 0.05847 N_VELOCIDAD 16 0 USO_LUCES 8 0.04167 Mano Izquierda 17 0 ANTINIEBLA 9 0.03649 N_PORC_FRENO
15
El algoritmo ReliefF se encarga de evaluar el valor de cada atributo tomando un ejemplo como base y considerando el valor de dicho
atributo en el ejemplo más cercano de la misma clase y en el de otra clase. Más información: [Kira, 1992][Robnik-S, 1997] [Kononenko, 1994].
Capítulo 4 Desarrollo
92 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Para comprobar el rendimiento del algoritmo ReliefF en el proceso de selección automática
de variables, se ejecutó un experimento con el algoritmo CFS, que se encarga de buscar
correlaciones entre los atributos de los datos para eliminar aquellos que contengan información
redundante [Mark, 1999]. Los resultados de dicho experimento se muestran en la tabla 4.17, en
donde se puede apreciar cierta similitud en los resultados arrojados por ambos algoritmos.
Tabla 4.17 Relación de selección de variables entre ReliefF y CFS para Ejercicio 1 - Experto 1
RANK Variables Variables
Algoritmo ReliefF Algoritmo CFS
1 0.09612 N_HE N_HE
2 0.07118 N_VELOCIDAD_VIA N_VELOCIDAD_VIA
3 0.06371 N_PORC_ACEL
4 0.06284 N_ANG_GIRO_VOLANTE
5 0.0622 MARCHA MARCHA
6 0.0585 N_RPM N_RPM
7 0.05847 N_VELOCIDAD N_VELOCIDAD
8 0.04167 Mano Izquierda
9 0.03649 N_PORC_FRENO N_PORC_FRENO
10 0.03371 INTERMITENTE INTERMITENTE
11 0.02777 N_DIST_SEGURIDAD N_DIST_SEGURIDAD
12 0.02148 Mano Derecha
13 0.01226 RETARDER
14 0.00769 N_PDTE_CARRETERA N_PDTE_CARRETERA
15 0.00481 N_TTLC
Diversas pruebas de clasificación, realizadas utilizando las variables seleccionadas por el
algoritmo CFS, resultan en un rendimiento menor en comparación con otras realizadas con las
seleccionadas por ReliefF. Lo anterior se debe, principalmente, a que independientemente de que
exista una correlación entre los atributos de los datos, todas las variables pueden contener
información adicional en ciertos casos de comportamiento; es decir, se puede tener una misma
clasificación de nivel de riesgo alto en dos comportamientos completamente diferentes. Por lo
anterior, se decidió descartar el algoritmo CFS y utilizar el ReliefF en los experimentos de selección
de variables.
Para el resto de los experimentos de selección, como parte del preprocesamiento de datos,
se realizó la recategorización de algunos atributos. La recategorización de datos consiste, en
general, en la separación de variables cuyos valores hacen referencia a categorías; por ejemplo,
para el caso de la variable INTERMITENTE, cuyos valores indican el estado de las intermitentes
del vehículo simulado (-1 intermitente izquierdo, 0 apagado y 1 intermitente derecho), fue separada
en tres atributos booleanos diferentes: Int_Izquierdo, Int_Derecho e Int_Apagado.
Lo anterior se debe a que, debido a su estructura y funcionamiento, las RNAs no son
capaces de considerar valores de atributos como categorías, lo que resulta en una importancia
proporcional al valor; por ejemplo, siguiendo con el caso de la variable INTERMITENTE, una RNA
dará mayor importancia al uso de el intermitente derecho (1) que al izquierdo (-1).
Finalmente, como parte del preprocesamiento de datos, fue necesaria su normalización
para la mejora del rendimiento de la RNA; por lo anterior, los datos contenidos en las bases de
datos finales se encuentran en un rango [0 - 1] como se describe en la sección 4.3.1.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 93
Para realizar una selección de variables tomando en cuenta las diversas situaciones que
se presentan en los datos, se diseñaron tres experimentos que, por medio del análisis de sus
resultados, fincaron las bases para la realización de la segunda etapa de la tarea (ver tabla 4.22).
En el primero de ellos, se consideraron los datos de valoración del primer experto para el
ejercicio uno. Los resultados de dicho experimento se muestran en la tabla 4.18.
Tabla 4.18 Resultado de selección de variables con ReliefF para Ejercicio 1 - Experto 1
RANK Variable RANK Variable 1 0.125879 N_HE 21 0.014471 Marcha_10 2 0.097782 Marcha_9 22 0.014441 Marcha_0 3 0.083901 Mano Izquierda 23 0.013547 Marcha_4 4 0.082211 N_PORC_ACEL 24 0.012154 Int_Derecho 5 0.07475 N_VELOCIDAD_VIA 25 0.009556 Retarder_-1 6 0.062844 N_ANG_GIRO_VOLANTE 26 0.009014 Retarder_3 7 0.058293 Marcha_8 27 0.007673 N_PDTE_CARRETERA 8 0.054453 N_RPM 28 0.007012 Marcha_2 9 0.053544 N_PORC_FRENO 29 0.005056 Marcha_3 10 0.051447 Marcha_11 30 0.000477 Retarder_1 11 0.050121 N_VELOCIDAD 31 0 Retarder_0 12 0.049327 Int_Apagado 32 0 Luces_Carretera 13 0.04307 Marcha_12 33 0 Luces_Cruce 14 0.039568 Int_Izquierdo 34 0 AN_Alto 15 0.030231 Mano Derecha 35 0 Luces_Posición 16 0.028108 N_DIST_SEGURIDAD 36 0 AN_Apagado 17 0.022088 Marcha_6 37 0 Luces_Apagadas 18 0.020832 Marcha_7 38 0 Retarder_2 19 0.019921 Marcha_1 39 0 AN_Bajo 20 0.019572 Marcha_5 40 0 Retarder_4
En el segundo experimento, cuyos resultados son mostrados en la tabla 4.19, se
consideraron los datos de valoración de los tres expertos para el primer ejercicio.
Tabla 4.19 Resultado de selección de variables con ReliefF para Ejercicio 1 - Expertos 1, 2 y 3
RANK Variable RANK Variable 1 0.101525 Mano Izquierda 21 0.009414 Retarder_3 2 0.096936 N_HE 22 0.008896 Marcha_11 3 0.047921 N_PORC_ACEL 23 0.005764 N_PDTE_CARRETERA 4 0.044635 N_ANG_GIRO_VOLANTE 24 0.005359 Int_Derecho 5 0.036611 N_RPM 25 0.003178 Marcha_4 6 0.032671 Int_Apagado 26 0.002177 Marcha_10 7 0.029825 N_PORC_FRENO 27 0.00181 Marcha_3 8 0.028765 Int_Izquierdo 28 0.001303 Marcha_2 9 0.026818 N_VELOCIDAD 29 0.001043 Marcha_12
10 0.0233 Marcha_9 30 0.000563 Retarder_1 11 0.020549 N_VELOCIDAD_VIA 31 0 Luces_Carretera 12 0.015987 Mano Derecha 32 0 AN_Alto 13 0.014083 N_DIST_SEGURIDAD 33 0 AN_Apagado 14 0.013796 Marcha_0 34 0 AN_Bajo 15 0.012975 Marcha_5 35 0 Luces_Cruce 16 0.012644 Marcha_6 36 0 Luces_Apagadas 17 0.01144 Marcha_7 37 0 Luces_Posición 18 0.011089 Marcha_1 38 0 Retarder_0 19 0.00993 Retarder_-1 39 0 Retarder_4 20 0.009595 Marcha_8 40 0 Retarder_2
Capítulo 4 Desarrollo
94 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
En el tercer y último experimento, los datos considerados fueron las valoraciones
realizadas por el primer experto para los cuatro ejercicios de simulación. Los resultados de dicho
experimento se muestran en la tabla 4.20.
Tabla 4.20 Resultado de selección de variables con ReliefF para Ejercicios 1, 2, 3 y 4 - Experto 1
RANK Variable RANK Variable 1 0.07012 Luces_Cruce 21 0.01019 Marcha_9 2 0.05938 Luces_Carretera 22 0.00918 Int_Derecho 3 0.05408 N_PORC_ACEL 23 0.00876 Int_Izquierdo 4 0.04426 N_HE 24 0.00696 Marcha_6 5 0.03803 N_VELOCIDAD 25 0.00672 Luces_Posición 6 0.03685 N_RPM 26 0.00664 Marcha_12 7 0.03611 N_PDTE_CARRETERA 27 0.00659 Retarder_3 8 0.03308 Mano Izquierda 28 0.00549 Retarder_1 9 0.03039 N_VELOCIDAD_VIA 29 0.00484 Marcha_5 10 0.02476 N_ANG_GIRO_VOLANTE 30 0.00446 Marcha_1 11 0.01788 N_PORC_FRENO 31 0.00356 Marcha_0 12 0.01597 Mano Derecha 32 0.00344 Marcha_4 13 0.01552 Int_Apagado 33 0.00246 Marcha_2 14 0.01452 Marcha_10 34 0.00229 AN_Apagado 15 0.01438 Marcha_7 35 0.00229 AN_Alto 16 0.01376 N_DIST_SEGURIDAD 36 0.00185 Marcha_3 17 0.01288 Marcha_11 37 0 AN_Bajo 18 0.01269 Marcha_8 38 0 Retarder_4 19 0.01198 Retarder_-1 39 0 Retarder_0 20 0.01068 Luces_Apagadas 40 0 Retarder_2
Dado que las variables seleccionadas en esta etapa de preprocesamiento fueron utilizadas
imparcialmente (sin importar el puntaje establecido por el algoritmo de selección), la importancia de
los experimentos descritos radicó en aquellas que fueron discriminadas (variables con cero en su
puntuación). En la tabla 4.21, se muestra una comparación de las variables discriminadas en cada
uno de los experimentos realizados,
Tabla 4.21 Comparación de variables discriminadas en experimentos de selección de variables
Experimento 1 Experimento 2 Experimento 3
Ejercicio 1 – Experto 1 Ejercicio 1 – Experto 1, 2 y 3 Ejercicio 1, 2, 3 y 4 – Experto 1
AN_Alto AN_Alto
AN_Apagado AN_Apagado
AN_Bajo AN_Bajo AN_Bajo
Luces_Apagadas Luces_Apagadas
Luces_Carretera Luces_Carretera
Luces_Cruce Luces_Cruce
Luces_Posición Luces_Posición
Retarder_0 Retarder_0 Retarder_0
Retarder_2 Retarder_2 Retarder_2
Retarder_4 Retarder_4 Retarder_4
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 95
El análisis de los resultados obtenidos en los experimentos de selección de variables,
demostró que existe un número muy reducido de atributos que es posible eliminar. En el caso
específico del resultado del tercer experimento, se observa que existen situaciones (en alguno de
los cuatro ejercicios) en donde la mayor parte de los atributos discriminados por los otros dos
resulta útil.
Finalmente, se observa que los atributos que es posible eliminar, son un subconjunto de
variables recategorizadas cuya eliminación es imposible de justificar. Aunado a lo anterior, se
realizó un experimento de entrenamiento de una RNA utilizando todos los atributos seleccionados
en la primera etapa de selección. Dicha red, llamada patrón por los datos utilizados en su
entrenamiento, demostró un desempeño apenas aceptable en la clasificación del comportamiento.
Por lo anterior, y considerando como pérdida de información la eliminación de cualquiera
de los datos contenidos en un atributo16
, se optó por la utilización de todas las variables
seleccionadas en la primera etapa de selección, con excepción de las de Tiempo y Distancia
recorrida que, al tener una alta correlación con la clasificación del comportamiento, fueron
causantes de problemas en diversos experimentos realizados con DM, ya que la mayoría de los
algoritmos basaron su funcionamiento en los valores de estas dos variables únicamente.
En la tabla 4.22, se muestran las 16 variables (40 recategorizadas) que fueron utilizadas en
las siguientes etapas de desarrollo. Así mismo, en la tabla 4.23, se presentan las variables no
seleccionadas con una breve descripción del análisis realizado en la primera etapa de selección.
Tabla 4.22 Variables seleccionadas para la alimentación del sistema clasificador
ID Variable Usada
(Etapa Inicial) Usada
(Etapa final) Descripción
3 Velocidad Información importante del manejo del vehículo
7 Error ángulo Información importante del manejo del vehículo
8 Posición volante Información importante del manejo del vehículo
9 % Freno Información importante del manejo del vehículo
10 *Retarder Información importante del manejo del vehículo
11 % Acelerador Información importante del manejo del vehículo
12 *Marcha Información importante del manejo del vehículo
13 *Intermitentes Información importante del manejo del vehículo
14 *Luces Información importante del ambiente externo
15 Revoluciones Información importante del manejo del vehículo
19 Pendiente Información importante del ambiente externo
20 Distancia V.D. Información importante del ambiente externo
27 *Anti niebla Información importante del ambiente externo
28 Velocidad carretera Información importante del ambiente externo
29 Mano izquierda Información proveniente del sistema de VA
30 Mano Derecha Información proveniente del sistema de VA
* Atributos recategorizados.
16
Considerando el desempeño de la RNA patrón como el mejor de los casos, cualquier pérdida de información derivada de la eliminación de
atributos, contribuirá a una desmejora en su desempeño.
Capítulo 4 Desarrollo
96 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Tabla 4.23 Variables no seleccionadas para la alimentación del sistema clasificador
ID Variable Usada (Etapa Inicial)
Usada (Etapa final)
Descripción
18 Distancia recorrida Información importante de las condiciones del conductor
2 Tiempo Información importante de las condiciones del conductor
6 TTLC / Información de simulación inaccesible en el mundo real
16 Consumo Valor irrelevante en el comportamiento del conductor
17 Nivel del depósito Valor irrelevante en el comportamiento del conductor
29 PK Valor irrelevante en el comportamiento del conductor
4 Posición lateral Información de simulación inaccesible en el mundo real
5 Ancho carril Información de simulación inaccesible en el mundo real
21 Velocidad V.D. Información de simulación inaccesible en el mundo real
1 Número de ciclo Valor interno del simulador inexistente en el mundo real
22 Número de carril Valor interno del simulador inexistente en el mundo real
23 Posición vehículo (X) Valor interno del simulador inexistente en el mundo real
24 Posición vehículo (Y) Valor interno del simulador inexistente en el mundo real
25 Posición carretera (X) Valor interno del simulador inexistente en el mundo real
26 Posición carretera (Y) Valor interno del simulador inexistente en el mundo real
30 Campo 30 Valor interno del simulador inexistente en el mundo real
Una vez que se seleccionaron todos los datos que fueron utilizados en la alimentación del
clasificador de comportamiento, se generaron las BDs finales mediante un sistema que, diseñado
en la herramienta Microsoft® Access
®, se describe en la siguiente sección.
4.3.1. Generación de bases de datos finales
Para la generación y división de las BDs finales, se desarrollo un pequeño sistema en el manejador
de bases de datos de Microsoft® que, incluido en la suite de el paquete Office
®, permite la creación
de aplicaciones de una forma sencilla y rápida. El sistema desarrollado para la generación de
datos finales se encargó de las siguientes funciones:
Unión de BDs de registros de simulación y detección automática de las manos
Se encargó de unir los datos importados desde los registros de simulación descritos
en la sección 4.1.2.1 y los generados por el sistema de VA descritos en la sección 4.2.1.
Discriminación de variables
Se encargó de filtrar las variables seleccionadas en el proceso descrito en la
sección 4.3.1.
Recategorización de variables
Se encargó de dividir las variables que contenían clases en sus datos para el
entrenamiento de las RNAs.
Normalización de los datos
Se encargó de la normalización de los datos contenidos en las variables de las BD,
mediante la búsqueda de máximos y mínimos y la aplicación de ( 4.2 ).
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 97
𝑥𝑁𝑜𝑟𝑚𝑎𝑙𝑖𝑧𝑎𝑑𝑜 =𝑥 − 𝑥𝑀𝑖𝑛
𝑥𝑀𝑎𝑥 − 𝑥𝑀𝑖𝑛 ( 4.2 )
División de datos para entrenamiento y pruebas
Se encargó de la división de las BDs para generar los datos de prueba y
entrenamiento utilizados en los experimentos de clasificación del comportamiento. Dicha
división se describe en la siguiente sección (sección 4.3.1.1).
En la figura 4.49, se muestra una captura del sistema descrito.
Figura 4.49 Sistema implementado en Microsoft
® Access® para la generación de BD finales
Al final de la generación de las BDs finales, los datos fueron exportados a archivos
individuales17
del tipo csv (por las siglas en inglés de comma-separated values) para su utilización
en los experimentos de clasificación del comportamiento mediante minería de datos (ver sección
4.3.3) y mediante RNAs (ver sección 4.4.3 y capítulo 5 ).
4.3.1.1 División de datos para entrenamiento y pruebas
Para la división de las BDs finales, para la alimentación de los experimentos de clasificación, se
utilizó el 50% de los datos de cada clase para la etapa de entrenamiento (train) y el otro 50%
restante para la de pruebas (test).
Los datos elegidos para cada una de las etapas fueron seleccionados aleatoriamente
utilizando el atributo CICLO como semilla mediante la siguiente instrucción SQL:
𝑂𝑅𝐷𝐸𝑅 𝐵𝑌 𝑅𝑛𝑑([𝑁𝐶𝐼𝐶𝐿𝑂])
17
Se tiene un archivo de datos (csv) de entrenamiento y uno de prueba por cada experto por cada ejercicio de simulación (24 en total)
Capítulo 4 Desarrollo
98 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Una vez que los datos se encontraban ordenados de forma aleatoria, la selección de la
primera mitad de éstos se logró mediante la siguiente instrucción SQL:
𝑆𝐸𝐿𝐸𝐶𝑇 𝑇𝑂𝑃 50 𝑃𝐸𝑅𝐶𝐸𝑁𝑇
En las siguientes tablas (tabla 4.24 a tabla 4.26), se resume la división de datos realizada a
las valoraciones de cada uno de los expertos.
Tabla 4.24 División de datos de prueba y de entrenamiento por clase para valoraciones de Experto 1
Experto 1 SEGURO ACEPTABLE POCO
RIESGOSO BASTANTE RIESGOSO
MUY RIESGOSO
TOTAL
Train Test Train Test Train Test Train Test Train Test Train Test TOTAL
Ejercicio 1 3716 3716 8225 8225 3358 3357 2068 2067 488 487 17855 17852 35707
Ejercicio 2 4851 4851 15107 15106 1443 1442 1045 1045 568 567 23014 23011 46025
Ejercicio 3 5874 5873 5600 5599 1270 1270 1053 1052 4595 4595 18392 18389 36781
Ejercicio 4 21841 21840 33983 33982 3708 3707 2068 2067 292 291 61892 61887 123779
Tabla 4.25 División de datos de prueba y de entrenamiento por clase para valoraciones de Experto 2
Experto 2 SEGURO ACEPTABLE POCO
RIESGOSO BASTANTE RIESGOSO
MUY RIESGOSO
TOTAL
Train Test Train Test Train Test Train Test Train Test Train Test TOTAL
Ejercicio 1 8795 8795 572 571 189 189 1643 1642 6656 6655 17855 17852 35707
Ejercicio 2 21676 21676 968 967 99 99 126 126 144 144 23013 23012 46025
Ejercicio 3 10471 10470 2025 2025 490 490 2145 2145 3260 3260 18391 18390 36781
Ejercicio 4 55857 55857 3350 3350 943 942 735 735 1005 1005 61890 61889 123779
Tabla 4.26 División de datos de prueba y de entrenamiento por clase para valoraciones de Experto 3
Experto 3 SEGURO ACEPTABLE POCO
RIESGOSO BASTANTE RIESGOSO
MUY RIESGOSO
TOTAL
Train Test Train Test Train Test Train Test Train Test Train Test TOTAL
Ejercicio 1 901 901 9470 9470 1998 1997 440 440 5045 5045 17854 17853 35707
Ejercicio 2 6719 6718 15954 15954 118 117 223 222 0 0 23014 23011 46025
Ejercicio 3 156 156 428 427 5680 5680 5840 5840 6287 6287 18391 18390 36781
Ejercicio 4 28022 28022 31198 31197 798 797 633 632 1240 1240 61891 61888 123779
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 99
4.3.2. Aproximación para la generación de conocimiento simbólico
Para la generación del conocimiento simbólico, como una primera aproximación a la generación de
modelos de comportamiento de conducción, se realizó una investigación de las recomendaciones a
conductores en manuales publicados por instituciones gubernamentales y académicas en diversos
países para su posible conversión a reglas de producción.
En las siguientes tablas (tabla 4.27 a tabla 4.29), se presentan algunas de las
recomendaciones más importantes encontradas en dicho estudio.
Tabla 4.27 Recomendaciones al conductor del Estado de Nueva York
Situación Acción recomendada al conductor
Si llueve
Reducir la velocidad.
Aumentar la distancia con el vehículo delantero.
Manejar a velocidad baja.
Prender las luces bajas y los limpiadores.
Frenar lentamente.
Si las ruedas traseras se
patinan hacia la izquierda
Volante hacia la izquierda.
No frenar fuertemente.
Si las ruedas traseras se
patinan hacia la derecha
Volante hacia la derecha.
No frenar fuertemente.
Si se revienta una llanta
Tomar el volante.
Disminuir la presión en el acelerador.
No presionar el freno hasta que se tenga control del vehículo.
Salir de la carretera tan pronto como sea posible.
Si falla el sistema de
dirección
Disminuir la presión del pedal del acelerador.
Encender las luces intermitentes.
No tocar el pedal de freno hasta que disminuya la velocidad.
Si fallan los faros
Encender las luces intermitentes.
Encender las luces de estacionamiento.
Encender las luces direccionales.
FUENTE: Departamento de Vehículos Motorizados del Estado de Nueva York.
Capítulo 4 Desarrollo
100 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Tabla 4.28 Recomendaciones al conductor del CONAE, México
Situación Acción recomendada al conductor
Si los frenos fallan Manejar hacia la orilla y usar el freno de mano.
Las luces se apagan
Mantener el vehículo derecho.
Frenar con firmeza.
Si se revienta una llanta
Mantener firmemente el volante con ambas manos.
No girar a ningún lado.
Recomendaciones generales
El volante debe sujetarse con las dos manos.
Guardar distancia con el vehículo delantero.
FUENTE: Comisión Nacional para el Ahorro y Energía (CONAE), México D.F.
Tabla 4.29 Recomendaciones al conductor de la Universidad Politécnica de Madrid
Situación Acción recomendada al conductor
Conducción Urbana
Utilizar las marchas cortas muy poco tiempo.
Cambiar rápidamente a marchas medias o largas, saltándose
incluso alguna marcha intermedia.
Mantener el vehículo moviéndose por inercia en cuanto se
detecte que va a ser necesaria una detención o reducción de
velocidad inminente.
Conducir con bastante anticipación para prever los huecos y
movimientos del tráfico.
Utilizar el rodaje por inercia en la marcha más larga que
permita el tráfico vial y, en caso de ser necesario, frenar
suavemente evitando continuas reducciones de marcha.
Prever y anticipar las aceleraciones y frenadas, buscando un
mayor aprovechamiento de las inercias y una mayor
regularidad de la velocidad.
FUENTE: Universidad Politécnica de Madrid.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 101
La información desprendida por la investigación realizada, permite la generación de un
conjunto de reglas de producción para la caracterización de ciertos aspectos del fenómeno de
conducción; por ejemplo, para las recomendaciones generales realizadas por la CONAE de México
(ver tabla 4.28), teniendo la detección de la mano izquierda (I) y derecha (D) en la zona del volante,
la distancia al vehículo delantero (D_D), la velocidad actual del vehículo en cuestión (V), las
condiciones de lluvia (Ll) y considerando la regla cuadrada de distancia de seguridad18
, se tendría
que:
if (!I | !D) | (D_D < (V/10)2 & !Ll) | (D_D < 2*(V/10)2 & Ll)
Comportamiento de conducción Riesgoso
Sin embargo, dada la limitada información almacenada en los registros de simulación, no
es posible la representación total del entorno en el que se desempeña el conductor; por lo tanto,
para la aplicación de dichas reglas en modelos que determinen el buen o mal comportamiento del
conductor, es necesario contar con más información de la situación de simulación en la que el
sujeto se encuentra envuelto (p.e. clima, velocidad y estado de las ruedas, aceleración vertical y
horizontal, estado del freno de mano, información de fallas, etc.).
Por otro lado, en la búsqueda de otras reglas con expertos en seguridad vial teniendo en
cuenta la información de simulación con la que se contaba, se encontró que psicólogos inmersos
en investigaciones de esta área, establecen que no es posible la generación de modelos a partir de
reglas en sistemas de cómputo, debido a la complejidad que éstas tendrían; por ejemplo, indican
que el hablar por un teléfono móvil mientras se conduce un vehículo puede ser una acción segura
o riesgosa dependiendo del interlocutor y del motivo de la llamada y que, en el caso de que el
conductor se encuentre esperando una llamada con información de su esposa en labor de parto,
es más riesgoso que la ignore a que la conteste.
Así mismo, en otro ejemplo, los mismos psicólogos indican que la acción de conducir a una
velocidad mayor a la establecida en los límites de la ruta por la que se transita, no puede ser
clasificada como riesgosa sin saber el contexto y los motivos de dicha situación. Por lo tanto,
aseguran que la cantidad de reglas necesarias para la clasificación del comportamiento de
conducción en todas las situaciones posibles sería demasiado grande y compleja para modelarse
en un sistema de cómputo, ya que se requiere información del contexto de la situación que sólo un
ser humano es capaz de razonar.
Por lo anterior, y dado que la información de dichas reglas se encuentra contenida en las
BDs generadas gracias a la información adquirida de los expertos humanos, se tomó la decisión de
generar los modelos del comportamiento de conducción de manera automática a través del
entrenamiento de las RNAs. Además, como parte del proceso de descubrimiento del conocimiento,
se diseñaron algunos experimentos con técnicas de DM que permitieron la generación automática
de algunas reglas importantes como se describe en la siguiente sección.
18
La CONAE en conjunto con la Dirección General de Tránsito recomiendan guardar una distancia de seguridad del cuadrado de la decima
parte de la velocidad en la que se transita para clima seco y el doble para clima lluvioso.
Capítulo 4 Desarrollo
102 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.3.3. Generación de reglas de comportamiento con minería de datos
Para el descubrimiento de algunas reglas de comportamiento, contenidas en las BDs generadas
para este proyecto y que los expertos humanos se declararon incapaces de definir, se realizaron
algunos ejercicios de DM que se describen a continuación.
4.3.3.1 Selección de algoritmos de minería de datos
El primer paso para la experimentación con técnicas de DM, consistió en la búsqueda de
algoritmos que se adaptaran al problema. Por lo anterior, y con la ayuda de la herramienta
RapidMiner de la empresa Rapid-I (ver figura 4.50), se seleccionaron dos algoritmos: uno para la
generación automática de arboles de decisión y otro para la generación automática de reglas.
Para el primer caso (árboles de decisión), después de diversas pruebas realizadas, se
seleccionó el algoritmo CART que, propuesto en [Breiman, 1984], cuenta con las siguientes
ventajas [Vázquez, 2005]:
Sus resultados son robustos a valores atípicos19
Permite combinaciones lineales entre las variables
Selecciona automáticamente las variables que reducen los errores de clasificación
Para el segundo caso (reglas de producción), se seleccionó el algoritmo RIPPER (o JRIP
en otras herramientas de DM) que, propuesto en [Cohen, 1995], se encarga de generar reglas
automáticamente con la ventaja de que la mayoría de los ejemplos o casos se cubren por aquellas
de más alto nivel y las de bajo nivel representan únicamente las excepciones [Morales, 2009].
Figura 4.50 Pantalla principal de la herramienta de DM RapidMiner de la empresa Rapid-I
19
Los valores atípicos, también llamados “outliers”, son elementos del conjunto de datos que, por sus características, no pueden ser
clasificados correctamente y son causantes de ruido en la clasificación de otros elementos cercanos.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 103
Aunque el primero de los algoritmos seleccionados se encarga de la generación
automática de árboles de decisión, sus resultados pueden ser considerados también como reglas
que dependen de sus hojas y ramificaciones.
Finalmente, la utilización de estos dos algoritmos se ratificó en diversas pruebas realizadas
con otros algoritmos de DM que demostraron su incapacidad para el manejo de la cantidad de
datos y atributos que las BDs de este proyecto contienen. Dicho problema, atribuido más a la
herramienta que al algoritmo, se presentó en diversos experimentos realizados con el cuarto
ejercicio, cuya cantidad de datos es mayor a la de los tres primeros en conjunto.
4.3.3.2 Experimentos para la generación de reglas
Como se mencionó en la sección 4.3.1.1, se utilizó el 50% de los datos para entrenamiento y el
resto para las pruebas. Por lo anterior, la presentación de resultados de la efectividad de
clasificación de los algoritmos de DM se presenta en dos partes.
En primer lugar, se muestra el porcentaje de efectividad obtenido durante el entrenamiento
del algoritmo (train). Este porcentaje indica la cantidad de datos que fue posible clasificar
correctamente en los datos de entrenamiento. Posteriormente, el modelo generado en la primera
etapa se aplica a los datos de prueba (test) cuyo porcentaje de efectividad tiene una mayor
importancia debido a que se trata de datos desconocidos para el sistema.
En la tabla 4.30, se muestra un resumen de la efectividad de la aplicación de las reglas
generadas por el algoritmo RIPPER a los datos. Dicho algoritmo, con una efectividad promedio de
97.76%, resultó menos efectivo que el del algoritmo CART, que obtuvo una efectividad promedio
de 98.65%. Los resultados de este último algoritmo se muestran en la tabla 4.31
Tabla 4.30 Efectividad de clasificación del comportamiento con reglas generadas con RIPPER
RIPPER Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4
Train Test Train Test Train Test Train Test
Experto 1 97.30% 96.74% 97.32% 96.90% 96.62% 96.40% 94.12% 93.85%
Experto 2 98.43% 98.19% 99.70% 99.56% 97.78% 97.48% 97.88% 97.72%
Experto 3 99.92% 99.92% 99.75% 99.65% 98.91% 98.71% 96.81% 96.66%
Tabla 4.31 Efectividad de clasificación del comportamiento con reglas generadas con CART
CART Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4
Train Test Train Test Train Test Train Test
Experto 1 97.96% 97.47% 98.84% 98.39% 97.91% 97.40% 96.79% 96.34%
Experto 2 98.88% 98.70% 99.79% 99.66% 98.38% 97.99& 99.15% 98.92%
Experto 3 99.91% 99.92% 99.80% 99.74% 99.42% 99.20% 98.36% 98.13%
Capítulo 4 Desarrollo
104 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.3.3.3 Análisis de situaciones relevantes en datos y reglas
Aunque los porcentajes de los experimentos expuestos en la sección anterior demostraron una alta
efectividad, el análisis de sus resultados demostró que la fiabilidad de sus conclusiones no es
aceptable en el modelado del comportamiento del conductor; ya que, por un lado, se generaron
reglas demasiado específicas que cubren solamente uno o dos casos como:
if (N_VELOCIDAD <= 0.66) and (N_VELOCIDAD >= 0.66)
if (N_PDTE_CARRETERA <= 0.3)
if (N_RPM >= 0.74)
if (N_PORC_ACEL >= 0.03)
Clase = Poco Riesgoso (2.0/0.0)
En el otro extremo, se generaron reglas que, sin presentar evidencia de un modelado del
comportamiento, cubren un gran número de casos como:
if (N_VELOCIDAD_VIA <= 0.71)
if (N_PDTE_CARRETERA <= 0.3) and (N_PDTE_CARRETERA >= 0.3)
if (N_RPM >= 0.56)
Clase = Aceptable (1246.0/0.0)
Que cubre 1,246 casos considerando únicamente las revoluciones del motor del vehículo y
datos de la información de la vía (pendiente de la carretera y velocidad límite).
A pesar de lo anterior, existen algunas cuantas reglas de alta importancia (de las más de
8,000 generadas por cada algoritmo). A continuación, se presenta un breve análisis de algunas de
estas reglas de alto nivel que, además de cubrir una gran cantidad de casos, presentan evidencia
de un modelado del comportamiento de conducción generado automáticamente; además, en la
sección 0, se realiza una comparación entre los resultados descritos en la sección anterior y los
obtenidos con el clasificador neuronal descritos en las secciones 4.4.3 y 5.2.
Caso 1:
if (N_VELOCIDAD >= 0.61)
Clase = Muy Riesgoso (5049.0/6.0)
La regla presentada en el primer caso indicó que, sin importar los demás
parámetros de la dinámica del vehículo, las velocidades altas se consideraron un
comportamiento muy riesgoso (la clase más riesgosa establecida).
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 105
Caso 2:
if (N_VELOCIDAD_VIA >= 1)
if (N_VELOCIDAD <= 0.77)
if (N_PORC_ACEL <= 0.82)
if (N_DIST_SEGURIDAD <= 0.21)
if (N_PDTE_CARRETERA <= 0.3)
Clase = Muy Riesgoso (1737.0/15.0)
Caso 3:
if (N_DIST_SEGURIDAD <= 0.26) and (N_DIST_SEGURIDAD >= 0.02)
if (N_PDTE_CARRETERA <= 0.35) and (N_DIST_SEGURIDAD >= 0.02)
if (N_RPM <= 0.66)
if (N_VELOCIDAD_VIA >= 1)
if (N_PORC_ACEL <= 0.78)
Clase = Muy Riesgoso (544.0/0.0)
En las reglas presentadas en el segundo y tercer caso, se observa que se clasificó
como un comportamiento muy riesgoso a las situaciones en las que se tiene una distancia
de seguridad muy pequeña.
Caso 4:
if (N_ANG_GIRO_VOLANTE >= 0.55) and (N_ANG_GIRO_VOLANTE >= 0.56)
if (N_PDTE_CARRETERA >= 0.31)
if (Marcha_10 >= 1)
Clase = Muy Riesgoso (196.0/0.0)
En el cuarto caso, se observa que se consideró un comportamiento muy riesgoso a
la realización de giros a altas velocidades en subidas inclinadas (pendiente positiva).
Caso 5:
if (N_RPM >= 0.77)
if (N_VELOCIDAD >= 0.72) and (N_VELOCIDAD >= 0.73)
if (N_PDTE_CARRETERA >= 0.32)
Clase = Bastante Riesgoso (294.0/0.0)
Capítulo 4 Desarrollo
106 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
El quinto caso, establece que se consideró como un comportamiento bastante
riesgoso el forzamiento del motor en subidas inclinadas.
Caso 6:
if (Mano Izquierda <= 0)
if (N_VELOCIDAD >= 0.71)
if (N_RPM <= 0.6) and (N_RPM >= 0.5)
Clase = Bastante Riesgoso (259.0/10.0)
Caso 7:
if (N_RPM >= 0.7) and (N_RPM >= 0.71)
if (N_HE >= 0.34)
if (Mano Izquierda <= 0)
Clase = Bastante Riesgoso (220.0/0.0)
El sexto y séptimo caso, muestran que se consideró como un mal comportamiento
al manejo del vehículo a altas velocidades con una sola mano en el volante y a realizar
giros en esa misma situación.
Caso 8:
if (N_ANG_GIRO_VOLANTE <= 0.55) and (N_ANG_GIRO_VOLANTE >= 0.54)
if (N_VELOCIDAD <= 0.18)
if (Mano Izquierda <= 0)
if (N_PORC_FRENO <= 0.66)
if (N_PORC_ACEL <= 0.83)
Clase = Bastante Riesgoso (170.0/0.0)
En el octavo caso, se observa que se consideró como un comportamiento bastante
riesgoso al uso inadecuado de los pedales del vehículo.
Caso 9:
if (N_VELOCIDAD_VIA <= 0.71)
if (N_PDTE_CARRETERA <= 0.3)
if (N_VELOCIDAD >= 0.63) and (N_VELOCIDAD >= 0.71)
Clase = Poco Riesgoso (470.0/0.0)
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 107
En el noveno caso, se observa una regla que establece al exceso de velocidad
como una conducta poco riesgosa (la menos riesgosa considerada).
Caso 10:
if (N_HE <= 0.33)
if (Mano Izquierda >= 1) and (Mano Derecha >= 1)
if (N_ANG_GIRO_VOLANTE >= 0.53)
if (Int_Apagado >= 1)
if (N_DIST_SEGURIDAD <= 0.01)
Clase = Poco Riesgoso (203.0/0.0)
En la regla del décimo caso, se observa que se consideró una acción poco
riesgosa al realizar giros sin la debida señalización.
Caso 11:
if (Mano Derecha >= 1) and (Mano Izquierda >= 1)
if (N_PORC_ACEL <= 0.61)
if (N_VELOCIDAD <= 0.62)
Clase = Aceptable (250.0/0.0)
El decimoprimer caso, muestra que se consideró aceptable el comportamiento de
conducir con las dos manos sobre el volante a una velocidad media.
Caso 12:
if (N_PDTE_CARRETERA <= 0.33) and (N_PDTE_CARRETERA >= 0.27)
if (Mano Izquierda >= 1) and (Mano Derecha >= 1)
if (N_VELOCIDAD_VIA >= 0.57)
if (N_VELOCIDAD <= 0.60)
Clase = Seguro (558.0/0.0)
En este último caso, se observa la clasificación de un comportamiento seguro en
dónde el conductor tenía las dos manos sobre el volante, conducía bajo los límites de
velocidad, en una carretera con pendientes moderadas.
Los resultados presentados, demuestran que existe una ligera aproximación al modelado
del comportamiento por parte de los algoritmos de DM utilizados; sin embargo, se trata de casos
aislados de los miles generados por dichos algoritmos. En la siguiente sección, se describe el
desarrollo del clasificador neuronal que fue, finalmente, el encargado de la generación de los
modelos del comportamiento utilizados en este proyecto.
Capítulo 4 Desarrollo
108 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.4 Clasificación del comportamiento usando RNAs
El sistema neuronal fue implementado en el lenguaje de programación C++ en bibliotecas aisladas
e independientes para su utilización en otros proyectos como un aporte agregado de este trabajo.
El desarrollo fue realizado en el entorno de programación Borland C++ Builder 6.0 que
permite el diseño de aplicaciones visuales. Para la utilización del simulador neuronal en un
proyecto desarrollado en dicho entorno, es necesaria la inclusión del archivo RNA_Lib.h en el
archivo principal y la adición del archivo RNA_Lib.cpp al proyecto en cuestión.
Como se ha establecido en secciones anteriores la base de una RNA es el conjunto de
neuronas que, con propiedades similares, procesan la información con la que se alimenta la red
hasta obtener un valor de salida. Para facilitar el procesamiento de dicha información y el costo
computacional que los procesos de entrenamiento y reconocimiento de la red requieren se
caracterizó, en primera instancia, a la neurona artificial en una clase propia llamada C_Neuron.
4.4.1. Implementación de una neurona artificial
En la figura 4.51 se muestra el diagrama general de la neurona artificial implementada en la clase
C_Neuron. Esta clase fue diseñada con el objetivo principal de generar y manejar con facilidad el
arreglo de neuronas que requiere una RNA integrando el concepto de listas ligadas para sus
interconexiones.
Figura 4.51 Diagrama de la neurona artificial implementada en la clase C_Neuron
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 109
Cada neurona contiene dos arreglos de neuronas para interconectarse con las neuronas
de la capa anterior (INNeurons) y de la siguiente capa (OutNeurons). El número de dichas
neuronas está definido en las variables NumInputs y NumOutputs respectivamente. Cada conexión
existente a una neurona en una capa superior requiere un peso asociado, estos pesos están
almacenados en el vector Weights que contiene NumOutputs elementos (un peso por cada
neurona).
Para una RNA multicapa se requieren tres tipos de neuronas (ver sección 2.3.4); por lo que
es posible configurar el comportamiento de una neurona creada con la clase C_Neuron
modificando el valor de su variable NType. El valor de variable puede ser establecido a una de las
siguientes constantes definidas en su propia biblioteca:
a) InputN
Esta constante establece a la neurona como unidad de entrada. Su valor de
entrada y salida es tomado de la variable InValue; no contiene neuronas de entrada
(NumInputs = 0); sus neuronas de salida son las que conforman la primera capa oculta de la
red (NumOutputs > 0); los valores de Theta y FOut son irrelevantes.
b) HiddenN
Esta constante establece a la neurona como unidad oculta. Su valor de entrada es
generado a partir del valor de salida de las neuronas de la capa anterior mediante ( 2.23 )
(NumInputs > 0); su salida es calculada mediante ( 2.24 ) y transmitida a la siguiente capa;
sus neuronas de salida son las que conforman la siguiente capa oculta o la capa de salida
de la red (NumOutputs > 0); los valores de InValue y FOut son irrelevantes.
c) OutputN
Esta constante establece a la neurona como unidad de salida. Su valor de entrada
es generado a partir del valor de salida de las neuronas de la última capa oculta de la red
mediante ( 2.23 ) (NumInputs > 0); su salida es calculada mediante ( 2.24 ) y considerada la
salida de la red; no contiene neuronas de salida (NumOutputs = 0); el valor de salida
esperada se establece durante el entrenamiento de la red modificando el valor de la variable
FOut; el valor de InValue es irrelevante.
Los parámetros descritos hasta el momento son establecidos en el momento de
construcción de una neurona mediante la llamada al constructor de la clase:
𝐶_𝑁𝑒𝑢𝑟𝑜𝑛 (𝑁𝑢𝑚𝐼𝑛𝑝𝑢𝑡𝑠,𝑁𝑢𝑚𝑂𝑢𝑡𝑝𝑢𝑡𝑠,𝑁𝑇𝑦𝑝𝑒);
Una vez que estos parámetros son establecidos mediante el constructor, su modificación
puede causar inestabilidad en la red sino se realiza una correcta actualización en las
interconexiones correspondientes.
Aunque es posible el uso de esta función directamente por el usuario, la creación de
neuronas es realizada automáticamente por la clase descrita en la sección 4.4.2, que permite la
generación de una RNA completa.
Capítulo 4 Desarrollo
110 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Las funciones relacionadas con el entrenamiento por BP y el reconocimiento por FF se describen a
continuación:
a) BPCalcNewWT( DLearn )
Esta función calcula los cambios que sufrirán los pesos y umbral de la neurona en
cuestión mediante los pasos 1-10 del algoritmo BP descrito en la sección 2.3.5.2. El
parámetro recibido es una variable de tipo booleana que activa o desactiva el aprendizaje
dinámico experimental implementado en el simulador neuronal. En la modalidad
experimental los cambios a los pesos y umbral se realizan en tiempo real. Lo anterior
provoca que el entrenamiento requiera menos épocas para su convergencia bajo
condiciones adecuadas; sin embargo, es muy costoso computacionalmente y requiere un
tiempo elevado de procesamiento. Cuando se realiza un entrenamiento normal (parámetro
booleano bajo), es necesario la actualización de pesos y umbrales de forma manual
mediante la función ApplyNewWT.
b) ApplyNewWT()
Esta función aplica los cambios a pesos y umbral calculados en la función
BPCalcNewWT (pasos 11-12 de la sección 2.3.5.2). Para realizar los cambios en toda la red
es necesario llamar a esta función en cada unidad oculta y de salida de la red (las unidades
de entrada no requieren actualizaciones de pesos o umbral).
c) GetPreIndex()
Esta función devuelve el índice de conexión entre la neurona y las neuronas de la
capa inmediata anterior. Este índice permite conocer que conexión y peso están asociados
desde una neurona de entrada (InNeuron) y la neurona en cuestión:
𝑡𝑖𝑠 = 𝑡𝑖𝑠 → 𝐼𝑛𝑁𝑒𝑢𝑟𝑜𝑛𝑠 𝑥 → 𝑂𝑢𝑡𝑁𝑒𝑢𝑟𝑜𝑛𝑠 𝐺𝑒𝑡𝑃𝑟𝑒𝐼𝑛𝑑𝑒𝑥 ;∀𝑥, 0 ≤ 𝑥 < 𝑁𝑢𝑚𝐼𝑛𝑝𝑢𝑡𝑠
d) OutValue( DLearn )
Esta función se encarga de calcular el valor de salida de la neurona. Sin importar el
tipo de neurona de la que se trate, la función se propaga hasta la capa de entrada
calculando la salida de todas las neuronas que se encuentren en el camino. Al hacer la
llamada a esta función a cada una de las unidades de la capa de salida de la red, se
calculan automáticamente las salidas de todas las neuronas. Una vez calculadas dichas
salidas, son almacenadas como contantes para agilizar los cálculos en los procesos de
entrenamiento y reconocimiento de la red (las salidas de las neuronas no cambiarán hasta
que se modifiquen los pesos, umbrales o la información de entrada de la red). Para obligar
al cálculo exhaustivo de entradas y salidas (descartar los datos constantes almacenados) es
necesario establecer a la neurona como modificada mediante la función SetModified.
El parámetro recibido es una variable de tipo booleano que inhibe el
almacenamiento de valores constantes en las neuronas. Esta modalidad es utilizada en el
aprendizaje dinámico experimental.
e) SetModified()
Esta función establece a la neurona como modificada y obliga al cálculo exhaustivo
de los valores de entrada y salida cuando ha habido cambios en el umbral, pesos de
interconexiones o en la información de entrada de la red. La llamada a esta función desde la
primera neurona que conforma la capa de entrada establecerá como modificadas a todas las
neuronas de la red.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 111
4.4.2. Implementación de una RNA
La estructura de una RNA del tipo perceptrón multicapa se caracterizó en una clase llamada
C_MLPerceptron. Esta clase permite la creación, configuración y manejo de una RNA completa
basándose en la clase C_Neuron descrita en la sección anterior. En la figura 4.52 se muestra el
diagrama general de la RNA implementada.
Figura 4.52 Diagrama de la RNA implementada en la clase C_MLPerceptron
4.4.2.1 Construcción de la red
Existen dos formas que permiten crear una RNA mediante el uso de la clase
C_MLPerceptron.
1. Construcción de red vacía
Se puede crear una RNA vacía mediante la llamada al constructor:
𝐶_𝑀𝐿𝑃𝑒𝑟𝑐𝑒𝑝𝑡𝑟𝑜𝑛(𝑁𝐼𝑛𝑝𝑢𝑡𝑠,𝑁𝑂𝑢𝑡𝑝𝑢𝑡𝑠,𝑁𝐿𝑎𝑦𝑒𝑟𝑠,𝑁𝐻𝑖𝑑𝑑𝑒𝑛)
Donde NInputs establece el número de neuronas que conformarán la capa de
entrada de la red y NOutputs el número de neuronas que conformarán la capa de salida. El
número de capas ocultas y el número de neuronas que conforman cada una de ellas se
establece en NLayers y NHidden respectivamente.
Una vez que una RNA fue creada, es posible guardarla en un archivo para su futura
utilización mediante la función SaveNet. Esta función recibe como parámetro el nombre del archivo
donde se desea almacenar la red y se encarga de guardar tanto las propiedades de la red como
los pesos y umbrales de cada una de las neuronas que la conforman. Estos archivos pueden ser
utilizados para la creación de una RNA mediante un segundo método.
Capítulo 4 Desarrollo
112 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
2. Construcción de red desde archivo
Se puede crear una RNA con los datos de una red guardada previamente
mediante la llamada al constructor de la clase:
𝐶_𝑀𝐿𝑃𝑒𝑟𝑐𝑒𝑝𝑡𝑟𝑜𝑛(𝐹𝑖𝑙𝑒𝑁𝑎𝑚𝑒)
Donde FileName es el nombre del archivo donde se encuentra la red.
4.4.2.2 Configuración de la red
En la figura 4.53 se muestra el diagrama de los parámetros de configuración de la red.
Figura 4.53 Parámetros de configuración de una RNA de la clase C_MLPerceptron
Existen tres grupos de parámetros que conforman el módulo de configuración:
Configuración: Determinan el comportamiento de la red en sus procesos de
entrenamiento y reconocimiento. A continuación se describen los parámetros de este
grupo.
o LRate (Taza de aprendizaje)
Determina la velocidad con la que la red aprende.
o Tolerance (Tolerancia)
Establece la tolerancia que tendrá la red para aceptar un resultado como correcto.
o DLearn (Aprendizaje Dinámico)
Activa el modo de aprendizaje dinámico experimental en lugar del BP clásico.
o NRecurrent (Red Recurrente)
Indica si se trata de una red recurrente o no. Este parámetro debe ser modificado
por medio de la función SetRecurrent que aumentará el número de neuronas que
conforman la capa de entrada de la red y actualizará todas las interconexiones
asociadas (ver sección 2.3.6).
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 113
Arquitectura: Determinan la arquitectura de la red. Estos parámetros son establecidos al
construir la red y no deben ser modificados directamente por el usuario.
Información: Este grupo de parámetros son exclusivamente informativos y no afectan el
desempeño de la red. El usuario puede obtener toda la información del proceso de
entrenamiento de la red mediante los valores almacenados en estas variables que se
detallan a continuación.
o NPatterns (Número de patrones de entrenamiento)
Es el número de patrones almacenados en la matriz de aprendizaje
(MData). Este contador se modifica automáticamente al agregar patrones de
entrenamiento mediante la función AddData detallada más adelante.
o Goods (Correctos)
Es el número de patrones correctamente clasificados en la última época de
entrenamiento de la red. Cuando el número de patrones correctamente clasificados
es igual al número de patrones de entrenamiento (Goods = NPatterns) el
entrenamiento concluye automáticamente.
o Bads (Incorrectos)
Es el número de patrones incorrectamente clasificados en la última época
de entrenamiento de la red
o Epochs (Épocas)
Es el número de iteraciones que se ha entrenado a la red con los datos
contenidos en la matriz de aprendizaje (MData). Este valor es reiniciado
automáticamente al realizar cambios en las propiedades de la red ya que es
necesario un nuevo entrenamiento.
o RMS (Error medio cuadrático de la red, RMS por sus siglas en inglés)
Almacena el error medio cuadrático generado mediante la llamada a la
función GetRMS. Dicha función, llamada automáticamente tras cada iteración de
entrenamiento, calcula el error medio cuadrático de la red mediante ( 4.3 ).
𝑅𝑀𝑆 = 𝑆𝑎𝑙𝑖𝑑𝑎 𝐸𝑠𝑝𝑒𝑟𝑎𝑑𝑎 − 𝑆𝑎𝑙𝑖𝑑𝑎 𝑅𝑒𝑎𝑙 2
𝑁𝑃𝑎𝑡𝑡𝑒𝑟𝑛𝑠𝑁𝑂𝑢𝑡𝑝𝑢𝑡𝑠
𝑁𝑂𝑢𝑡𝑝𝑢𝑡𝑠 ∗ 𝑁𝑃𝑎𝑡𝑡𝑒𝑟𝑛𝑠 ( 4.3 )
o NetInfo (Información de la red)
Es una cadena de texto que contiene el resumen de todas las variables
que conforman el grupo de información de la red. A continuación se presenta un
ejemplo del texto contenido en esta variable en un punto de un experimento:
“Buenos: 150
Malos: 0
RMS: 0.0217
Épocas: 5102”
Capítulo 4 Desarrollo
114 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.4.2.3 Arreglo de neuronas artificiales
El diagrama del arreglo interno de neuronas dentro de la RNA se muestra en la figura 4.54.
Figura 4.54 Diagrama del arreglo interno de neuronas de una RNA de la clase C_MLPerceptron
Las neuronas que conforman la RNA están contenidas en un arreglo unidimensional de
elementos de la clase C_Neuron llamado Neurons. Dicho arreglo contiene en forma secuencial las
neuronas de la capa de entrada, de las capas ocultas y de la capa de salida.
Las neuronas de la capa de entrada son los elementos [0, n-1] donde n = NInputs. Las
neuronas ocultas son los elementos [n, n+p-1] donde p = NLayers * NHidden y h = NHidden.
Finalmente, las neuronas de la capa de salida son los elementos [n+p, n+p+k-1] donde k =
NOutputs.
Las propiedades de cada neurona así como sus interconexiones necesarias con elementos
de otras capas de la red son generadas automáticamente durante la creación de la red. Las
funciones de la RNA asociadas con el arreglo de neuronas (ver figura 4.52) se describen a
continuación:
a) RandThetas(min, max)
Esta función aleatoriza los umbrales de todas las neuronas de la red en un
rango [min, max]. El contador de épocas de la red (Epochs) es reiniciado para
empezar un nuevo entrenamiento.
b) RandWeights(min, max)
Esta función aleatoriza los pesos de todas las conexiones de la red en un
rango [min, max]. El contador de épocas de la red (Epochs) es reiniciado para
empezar un nuevo entrenamiento.
c) RandAll(min, max)
Esta función aleatoriza los pesos de todas las conexiones de la red y el
umbral de todas las neuronas en un rango [min, max] mediante la llamada a las
funciones descritas en a y b. El contador de épocas de la red (Epochs) es reiniciado
para empezar un nuevo entrenamiento.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 115
d) Neuron(layer, neuron)
Esta función permite al usuario acceder directamente a las propiedades de
una neurona específica de la red. La neurona en cuestión se específica por medio
de los parámetros capa y neurona:
Layer
Indica la capa en la que se encuentra la neurona a la que se
quiere acceder. Sus valores pueden ser InLayer para la capa de entrada,
OutLayer para la capa de salida o un número en el rango [1, NLayers] para
las capas ocultas (ver figura 4.55).
Neuron
Indica el número de la neurona a la que se quiere. Sus valores
para están en un rango [1, NInput | NHIdden | NOutput] dependiendo de la
capa en la que se encuentre la neurona (ver figura 4.55).
Figura 4.55 Acceso a neuronas mediante la función Neuron
e) Weight(NeuronA, NeuronB)
Esta función permite al usuario acceder y modificar el peso asociado a la
conexión entre una neurona (NeuronA) y otra (NeuronB). Si dichas neuronas no
tienen una conexión directa entre sí, la función devuelve un valor nulo. Es posible
utilizar esta función en conjunto con la descrita en c de la siguiente forma:
∗𝑅𝑒𝑑−> 𝑊𝑒𝑖𝑔𝑡(𝑅𝑒𝑑−> 𝑁𝑒𝑢𝑟𝑜𝑛𝑎(𝐼𝑛𝐿𝑎𝑦𝑒𝑟, 1),𝑅𝑒𝑑−> 𝑁𝑒𝑢𝑟𝑜𝑛𝑎(1,1)) = 𝑋
El ejemplo anterior establecerá a X el valor del peso entre la primera
neurona de la capa de entrada y la primera neurona de la primera capa oculta.
Las funciones descritas en c y e fueron implementadas para permitir al usuario interactuar
directamente con la red y ampliar el campo de aplicación del simulador neuronal; sin embargo, es
necesario considerar la estabilidad de la red ante cualquier modificación a uno de sus elementos.
Capítulo 4 Desarrollo
116 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.4.2.4 Entrenamiento de la red
Para el entrenamiento de la red se implementaron dos funciones principales:
a) BPLearn(Epochs)
Esta función realizará el proceso de entrenamiento por Epochs épocas.
b) BPLearntoRMS(TRMS, MaxEpochs)
Esta función realizará el proceso de entrenamiento hasta que el RMS de la
red sea menor que TRMS. Si este criterio no se cumple después de MaxEpochs
épocas el entrenamiento termina.
En cada iteración las variables de información de la red (ver figura 4.53) son actualizadas
con los datos desprendidos de la última época. El entrenamiento culmina de forma automática si
todos los patrones de entrenamiento contenidos en la matriz de aprendizaje (MData) han sido
correctamente clasificados.
En la figura 4.56 se muestra el diagrama de conexiones entre dicha matriz y el arreglo de
neuronas de la RNA.
Figura 4.56 Diagrama de conexión entre la matriz de aprendizaje y el arreglo de neuronas de la RNA
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 117
Los datos de entrenamiento de la red son almacenados en la matriz de aprendizaje
(MData) mediante la función AddData. Esta función recibe como parámetros de entrada una matriz
de tipo doble (** double) y la cantidad de elementos que se desean copiar de dicha matriz a MData
y se encarga de reiniciar la cuenta de épocas para iniciar un nuevo proceso de aprendizaje con los
nuevos datos de entrenamiento.
Los datos en cada renglón deben contener la concatenación de los datos de entrada de la
red y los de la salida esperada, por lo que el ancho de ambas matrices está dado por ( 4.4 ).
𝐴𝑛𝑐𝑜 𝑑𝑒 𝑀𝑎𝑡𝑟𝑖𝑧 = 𝑁𝐼𝑛𝑝𝑢𝑡𝑠 + 𝑁𝑂𝑢𝑡𝑝𝑢𝑡𝑠 − 1 ( 4.4 )
Existen dos métodos que permiten la revisión del estado de entrenamiento de la red. Por
un lado la función GetAllInfo se encarga de actualizar las variables de información de la red
mediante una iteración de reconocimiento a todos los datos almacenados en MData (no se realizan
modificación a pesos o umbrales). Por otro lado, la función NetReview genera y devuelve una
matriz con las mismas características de MData pero con la salida real de la red en lugar de la
esperada.
Los patrones de entrenamiento almacenados en MData de una red no son almacenados en
el archivo generado por la función SaveNet; lo anterior se debe a que una RNA completamente
entrenada no requiere de dicha información para la clasificación de datos nuevos y permite una
mayor portabilidad de las RNAs creadas mediante este simulador neuronal.
4.4.2.5 Reconocimiento de datos nuevos
Una vez que se tiene una RNA completamente entrenada, es posible su utilización en el
reconocimiento de datos nuevos. A continuación se describen las funciones implementadas
asociadas al proceso de reconocimiento de la red:
a) SetInput( *InData )
Esta función establece la entrada de la red a los datos contenidos en el
vector de entrada InData. Las neuronas afectadas por esta función son únicamente
las que conforman la capa de entrada (ver figura 4.57). Dicho vector debe contener
NumInputs posiciones (un dato por cada neurona en la capa entrada de la red).
b) GetOutput()
Esta función, llamada sin ningún parámetro, devuelve un vector con los
datos de salida de la red de acuerdo a la última entrada establecida por la función
SetInput. Es posible enviar como parámetro un vector InData para establecer una
nueva entrada en la red antes de obtener su información de salida. El vector
devuelto por esta función contendrá NOutputs elementos (uno por cada neurona en
la capa de salida de la red, ver figura 4.57).
c) Test()
Esta función devuelve en un valor booleano si el dato pasado como
parámetro es clasificado correctamente o no por la red. Es posible enviar como
parámetro un vector que contenga tanto los datos de entrada como la salida
esperada (NInputs + NOutputs posiciones) o un valor entero que indicará el registro
(renglón) de la matriz de aprendizaje (MData) que se probará.
Capítulo 4 Desarrollo
118 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Figura 4.57 Diagrama de conexión entre vectores (entrada/salida) y el arreglo de neuronas de la RNA
Como una opción adicional y para facilitar la clasificación de patrones con el simulador
neuronal, se implementó una función del tipo Winner Takes All (el ganador se lleva todo). Dicha
función, llamada WTALLIndex, compara los valores de salida de cada una de las neuronas en la
capa de salida y devuelve el índice de la neurona ganadora. Los parámetros de entrada de dicha
función son idénticos a los de la función GetOutput. En la figura 4.58 se muestra el diagrama de la
RNA con un selector a su salida que devolverá el índice de la neurona ganadora en un rango [1, k].
Figura 4.58 Diagrama de conexión de la RNA con el selector implementado en la función WTAllInex
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 119
4.4.3. Entrenamiento de las RNAs usadas para clasificación
El primer paso para el entrenamiento de las RNAs fue el análisis del problema para seleccionar la
estructura que tendrían para un óptimo desempeño. Dicho análisis se describe a continuación.
4.4.3.1 Selección de estructura de RNAs clasificadoras
El primer experimento realizado para la selección de la estructura final que tendrían las RNAs fue
la comparación del desempeño del simulador neuronal implementado con otras herramientas
similares para justificar su utilización sobre productos comerciales. En la figura 4.59, se muestra
una gráfica comparativa del tiempo de procesamiento por época de una RNA con una única capa
oculta con 40 neuronas al variar el número de datos de entrenamiento.
Figura 4.59 Gráfica comparativa del tiempo de procesamiento por época entre diversas herramientas
En la gráfica anterior, se observa que el simulador implementado tiene un rendimiento
superior a las dos herramientas comerciales seleccionadas; además, se detectaron problemas en
la herramienta BrainMaker® al realizar entrenamientos con grandes cantidades de datos. En la
figura 4.60, se muestran los resultados del mismo experimento para el simulador implementado.
Figura 4.60 Gráfica de tiempo de procesamiento por época del simulador implementado
Capítulo 4 Desarrollo
120 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Establecido en la literatura que cualquier problema puede ser resuelto con una RNA con
una única capa oculta (ver sección 2.3.4), se tomó la decisión de utilizar una estructura de ese tipo;
por lo tanto, el único parámetro de la arquitectura que quedó por definir fue el número de neuronas
que comprenderían dicha capa. Para lo anterior, se diseñó un experimento que permitió encontrar
el equilibrio entre un buen rendimiento y una buena efectividad. En la figura 4.61, se muestra la
gráfica del tiempo de procesamiento necesario por cada época para RNAs con un número
diferente de neuronas en su capa oculta como primera parte de dicho experimento.
Figura 4.61 Gráfica de tiempo de procesamiento por época de RNAs con diferentes neuronas ocultas
El rango utilizado en el experimento anterior de el número de neuronas ocultas ([40 – 120])
se basa en que dicho número no debe ser menor que el número de neuronas de entrada de la red
que, en este caso, es de 40. Por otro lado, en la literatura se recomienda el uso del triple de
neuronas en la capa oculta que en la capa de entrada (ver sección 2.3.4). En la segunda etapa del
experimento, mostrado en la figura 4.62, se comparó el desempeño en la reducción del error RMS
por época de entrenamiento con RNAs con un número diferente de neuronas ocultas.
Figura 4.62 Gráfica comparativa de reducción de error para RNAs con diferentes neuronas ocultas
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 121
En la gráfica de la segunda etapa del experimento, se observa que las líneas de reducción
del error RMS son más pronunciadas para las RNAs con 90 y 120 neuronas en su capa oculta; sin
embargo, analizando los resultados de la primera etapa del experimento, el tiempo de
procesamiento necesario por época de estos dos tipos de redes difiere por un poco más de un
segundo que, en entrenamiento de grandes cantidades de datos, puede marcar una gran
diferencia.
Por lo anterior, y considerando la similitud en el comportamiento mostrado en la figura 4.62,
se optó por la utilización de RNAs con una capa oculta con 90 neuronas20
.
Los dos parámetros restantes de las RNAs fueron seleccionados mediante el análisis de
los resultados de diversos experimentos realizados con los datos del proyecto. Al final, la taza de
aprendizaje fue establecida en 0.8 y la tolerancia en 0.2, lo que garantiza que la red aprenda y no
memorice mediante el forzamiento de los datos.
Finalmente, en la siguiente y última sección de este capítulo, se resumen los resultados
obtenidos en el entrenamiento de las RNAs clasificadoras para cada ejercicio y para cada experto
(tabla 4.32 a tabla 4.35). El resumen de los resultados de cada experimento, analizados a detalle
en la sección 5.2, contienen los siguientes datos:
Efectividad
Se trata del porcentaje de efectividad de clasificación logrado en los datos
de entrenamiento, este porcentaje se trata del mayor alcanzado en el proceso de
entrenamiento de la red (no es necesariamente el último).
Error RMS
Se trata del error medio cuadrático de los datos clasificados calculado
mediante ( 4.3 ) para la mayor efectividad alcanzada en el entrenamiento (ver
sección 4.4.2.2).
Datos correctos e incorrectos
Se trata del número de ejemplos clasificados correctamente o
incorrectamente en los datos de entrenamiento para la mayor efectividad
alcanzada.
Épocas de entrenamiento
Se trata del número total de épocas ejecutadas en el proceso de
entrenamiento hasta alcanzar la mayor efectividad obtenida.
Tiempo de entrenamiento
Se trata del tiempo total de entrenamiento de la red (en horas) hasta
alcanzar la mayor efectividad (no se considera el tiempo de almacenamiento de la
red ni la generación de reportes).
Tiempo sin mejora
Se trata del tiempo de entrenamiento (en horas) transcurrido desde que se
alcanzó la mayor efectividad hasta que se detuvo el entrenamiento. Los tiempos sin
mejora muy pequeños indican que es posible alcanzar un mejor porcentaje de
clasificación con mas entrenamiento; es decir, sigue aumentando la efectividad.
20
Para el análisis de los experimentos descritos, es importante considerar la aleatorización inicial de la red, que hace que su comportamiento
sea diferente en cada ejecución.
Capítulo 4 Desarrollo
122 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
4.4.3.2 Resultados de entrenamiento de RNAs clasificadoras
Tabla 4.32 Resumen de resultados de entrenamiento de las RNAs clasificadoras para el Ejercicio 1
Ejercicio 1: Urbano
Efectividad Datos
Correctos Datos
Incorrectos Épocas de
Entrenamiento
Tiempo de Entrenamiento
(Horas)
Tiempo sin Mejora (Horas)
Experto 1 90.69% 16,192 1,663 711,114 903 53
Experto 2 98.05% 17,506 349 406’635 929 274
Experto 3 99.73% 17,805 50 369,260 620 292
Tabla 4.33 Resumen de resultados de entrenamiento de las RNAs clasificadoras para el Ejercicio 2
Ejercicio 2: Montaña
Efectividad Datos
Correctos Datos
Incorrectos Épocas de
Entrenamiento
Tiempo de Entrenamiento
(Horas)
Tiempo sin Mejora (Horas)
Experto 1 85.26% 19,622 3,389 640,961 918 6
Experto 2 99.76% 22,958 53 278,791 695 4
Experto 3 98.54% 22,678 337 392,623 449 8
Tabla 4.34 Resumen de resultados de entrenamiento de las RNAs clasificadoras para el Ejercicio 3
Ejercicio 3: Inter-Urbano
Efectividad Datos
Correctos Datos
Incorrectos Épocas de
Entrenamiento
Tiempo de Entrenamiento
(Horas)
Tiempo sin Mejora (Horas)
Experto 1 81.13% 14,922 3,467 499,403 735 0
Experto 2 82.31% 15,137 3,252 559,451 926 37
Experto 3 94.91% 17,454 935 292,056 620 348
Tabla 4.35 Resumen de resultados de entrenamiento de las RNAs clasificadoras para el Ejercicio 4
Ejercicio 4: Circuito Continuo
Efectividad Datos
Correctos Datos
Incorrectos Épocas de
Entrenamiento
Tiempo de Entrenamiento
(Horas)
Tiempo sin Mejora (Horas)
Experto 1 51.60% 31,935 29,952 109,786 508 1
Experto 2 73.53% 45,510 16,377 120,066 791 16
Experto 3 79.06% 48,933 12,954 226,785 699 0
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 123
En la tabla 4.36, se resumen las características de las computadoras utilizadas en el
entrenamiento de las doce RNAs.
Tabla 4.36 Características de las computadoras utilizadas en el entrenamiento de las RNAs
Computadora 1 Computadora 2 Computadora 3 Computadora 4 Computadora 5
Procesador Intel Core 2 x 2
@ 3.01 Ghz Intel Core 2 x 2
@ 3.01 Ghz Intel Xeon x 4
@ 3.0 Ghz Intel Xeon x 4
@ 3.0 Ghz Intel Core 2 x 4
@ 2.40 Ghz
Memoria RAM 2 GB 2 GB 16 GB 2 GB 3.25 GB
Sistema Operativo Windows XP Windows XP Windows Vista Windows Vista Windows XP
Entrenamientos Simultáneos
3 3 4 1 1
Ubicación CENIDET,
México CENIDET,
México CENIDET,
México CENIDET,
México URJC, España
RNAs Entrenadas Experto 1:
1,2,3 Experto 2:
1,2,4 Experto 3:
1,2,3,4 Experto 2:
3 Experto 1:
4
Las características de las computadoras utilizadas, en conjunto con los resultados
obtenidos en el entrenamiento de cada una de las RNAs, indican claramente que la varianza en los
datos de las valoraciones del nivel de riesgo realizadas por cada uno de los expertos en los
experimentos de adquisición del conocimiento, fueron un factor fundamental en la efectividad de
clasificación alcanzada. Ya que, aunque las computadores con mejores características tuvieron un
tiempo de procesamiento por época mucho menor, el comportamiento del entrenamiento no varió
al intercambiar las redes entrenadas.
En el caso del primer ejercicio, la RNA con mejor efectividad de clasificación fue la del
tercer experto. En dónde el tiempo sin mejora indica que dicho porcentaje difícilmente mejoraría
con más épocas de entrenamiento. En este caso, la mejor efectividad fue alcanzada con 369,260
que, en comparación de las más de 700,000 épocas de entrenamiento de la RNA del primer
experto, establece que las características del sistema de computo utilizado en el proceso no es un
factor importante en la efectividad alcanzada.
Este comportamiento se repite en los resultados del segundo y tercer ejercicio, dónde la
RNA con mayor efectividad se refleja en el comportamiento de la varianza mostrada en las gráficas
de la sección 4.1.4.1.
En el caso del cuarto ejercicio, en dónde se tiene una cantidad de datos de entrenamiento
mayor a los de los tres primeros en conjunto, el tiempo sin mejora indica que es posible obtener
mejores resultados si se continúa el entrenamiento por más tiempo; sin embargo, debido al tiempo
acotado con el que se cuenta para la realización de este proyecto, se tomó la decisión de cortar los
entrenamientos para la presentación de resultados.
Capítulo 4 Desarrollo
124 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 125
Capítulo 5 Pruebas y
resultados
En este capítulo se presentan las pruebas realizadas al sistema clasificador
desarrollado y su respectivo análisis. Así mismo, se presenta una comparación entre los
resultados obtenidos con la aplicación de algoritmos de DM y los obtenidos en las pruebas
realizadas con RNAs.
5.1 Descripción de las pruebas realizadas
A continuación se describen las pruebas expuestas en las siguientes secciones de este capítulo:
Pruebas de la clasificación del comportamiento con RNAs (sección 5.2)
En esta sección se realiza un análisis de los resultados de la clasificación
del comportamiento con las RNAs, utilizando los datos seleccionados para pruebas
(el 50% de los datos no utilizados en el entrenamiento).
Pruebas de coherencia en la percepción del nivel de riesgo (sección 5.3)
En esta sección se realizan pruebas con las RNAs entrenadas con la
información de cada experto y cada ejercicio, con datos de evaluaciones realizadas
por el mismo experto para ejercicios diferentes a los utilizados en el entrenamiento
(pruebas cruzadas).
Comparación de clasificación por RNAs y minería de datos (sección 5.4)
En esta sección se presenta una comparación entre los resultados
obtenidos en las pruebas de clasificación con las RNAs (presentados en la sección
5.2) y los obtenidos en los experimentos de DM (presentados en la sección 4.3.3).
Pruebas de comprobación final con RNAs (sección 5.5)
En esta sección se realizan pruebas de clasificación del comportamiento
con las RNAs, utilizando datos desconocidos de los mismos ejercicios con los que
fueron entrenadas (datos diferentes a los utilizados en el entrenamiento y pruebas)
y se presenta un análisis de algunas situaciones detectadas como riesgosas.
Capítulo 5 Pruebas y resultados
126 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
5.2 Pruebas de la clasificación del comportamiento con RNAs
Las pruebas realizadas a las RNAs, entrenadas mediante el procedimiento descrito en la sección
4.4.3, fueron realizadas mediante la utilización de dos métodos: umbralizada y winner takes all.
En ambos métodos, se alimentó a las RNAs con los datos seleccionados para la etapa de
pruebas (ver sección 4.3.1.1) y se realizó la clasificación utilizando el algoritmo de reconocimiento
(feedforward) descrito en la sección 2.3.5.2. Sin embargo, en el primero de ellos, se utilizó un valor
de tolerancia de 0.2 que, siendo el mismo utilizado en la etapa de entrenamiento, es utilizado en la
evaluación de las salidas de la red para determinar si los datos son correctamente clasificados.
Para el segundo método, se utilizó, en la salida de las RNAs clasificadoras, otra RNA del
tipo Winner Takes All que, como se describió en la sección 4.4.2.5, actúa a modo de selector; por
lo tanto, este método no requiere de un valor de tolerancia ya que la salida final del sistema está
dada por la clasificación hecha por la neurona de la primera RNA con el valor numérico más alto.
En la tabla 5.1, se muestran los resultados obtenidos (por ambos métodos) en la
clasificación del comportamiento utilizando los datos de prueba del primer ejercicio.
Tabla 5.1 Resultados de la clasificación del comportamiento utilizando datos de prueba del Ejercicio 1
Ejercicio 1: Urbano
Con 0.2 de tolerancia Con Winner Takes All
Efectividad Datos
Correctos Datos
Incorrectos Efectividad
Datos Correctos
Datos Incorrectos
Experto 1 89.54% 15,986 1,866 93.92% 16,768 1,084
Experto 2 97.43% 17,394 458 98.18% 17,528 324
Experto 3 99.50% 17,764 88 99.70% 17,801 51
Estos resultados demuestran las ventajas de la utilización de un selector a la salida de la
RNA clasificadora, ya que existió una mejora en la efectividad de clasificación de todas las RNAs
mediante su aplicación; sin embargo, es importante aclarar que la utilización de este tipo de
selectores sólo es posible cuando se tiene un número de clases igual al número de neuronas en la
capa de salida, ya que es necesario que el valor de cada una de ellas represente la pertenencia de
los datos a una de las clases establecidas.
De acuerdo a los resultados obtenidos en este primer ejercicio, se observa que la peor
efectividad de clasificación fue la de la RNA del primero de los expertos (el de mayor experiencia).
Este comportamiento, reflejado en la varianza de los datos mostrados en las gráficas presentadas
en la sección 4.1.4.1, se repitió en los resultados del resto de los ejercicios. Por su parte, los
resultados de clasificación con la RNA del tercer experto, resultaron, para este caso, con la mejor
efectividad.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 127
En la tabla 5.2, se presentan los resultados obtenidos de las pruebas realizadas con las
RNAs de los tres expertos para el segundo ejercicio.
Tabla 5.2 Resultados de la clasificación del comportamiento utilizando datos de prueba del Ejercicio 2
Ejercicio 2: Montaña
Con 0.2 de tolerancia Con Winner Takes All
Efectividad Datos
Correctos Datos
Incorrectos Efectividad
Datos Correctos
Datos Incorrectos
Experto 1 83.88% 19,306 3,708 89.02% 20,458 2,526
Experto 2 99.32% 22,859 155 99.57% 22,915 99
Experto 3 98.26% 22,610 404 98.62% 22,694 320
En este caso, la mejor efectividad de clasificación fue dada por la RNA del segundo
experto mediante la utilización del selector neuronal a su salida. Al igual que en el caso anterior, el
comportamiento de los resultados correspondió con aquel presentado en la gráfica de las
valoraciones de este ejercicio en la figura 4.31, dónde se observa una varianza menor en las
valoraciones realizadas por dicho experto.
En la tabla 5.3, se presentan los resultados obtenidos en las pruebas realizadas con las
RNAs entrenadas con los datos del tercer ejercicio de simulación.
Tabla 5.3 Resultados de la clasificación del comportamiento utilizando datos de prueba del Ejercicio 3
Ejercicio 3: Inter Urbano
Con 0.2 de tolerancia Con Winner Takes All
Efectividad Datos
Correctos Datos
Incorrectos Efectividad
Datos Correctos
Datos Incorrectos
Experto 1 80.38% 14,785 3,607 88.12% 16,205 2,187
Experto 2 81.86% 15,056 3,336 87.41% 16,086 2,306
Experto 3 94.64% 17,407 985 95.17% 17,503 889
Los resultados presentados para el tercer ejercicio, continuaron con el comportamiento
descrito por la varianza de los datos graficados, en este caso, en la figura 4.32. La RNA entrenada
con los datos de la valoración realizada por el primer experto, que presentó la mayor varianza,
continuó siendo la de menor efectividad. Por su parte, el tercer experto, cuya valoración mostró
una tendencia clara a un comportamiento inseguro en este ejercicio, resultó con la mayor
efectividad.
Capítulo 5 Pruebas y resultados
128 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Finalmente, en la tabla 5.4, se muestran los resultados obtenidos con las RNAs entrenadas
con las valoraciones de seguridad realizadas para el último ejercicio.
Tabla 5.4 Resultados de la clasificación del comportamiento utilizando datos de prueba del Ejercicio 4
Ejercicio 4: Circuito Continuo
Con 0.2 de tolerancia Con Winner Takes All
Efectividad Datos
Correctos Datos
Incorrectos Efectividad
Datos Correctos
Datos Incorrectos
Experto 1 51.08% 31,570 30,322 64.87% 40,149 21,743
Experto 2 74.05% 45,835 16,057 79.83% 49,408 12,484
Experto 3 76.68% 48,700 13,192 83.51% 51,685 10,207
Este ejercicio de simulación, cuyo tiempo de valoración fue tres veces superior al de los
tres primeros, resultó con la efectividad promedio más baja de estas pruebas. Dicho resultado,
esperado por la cantidad de datos utilizados en las etapas de entrenamiento y pruebas, se debió,
principalmente, al tiempo de procesamiento necesario para cada época de entrenamiento ya que,
como se muestra en la tabla 4.35, aunque el tiempo de entrenamiento de estas redes fue
aproximadamente el mismo que en otros ejercicios, el número de épocas de entrenamiento fue
hasta 85% menor en algunos casos.
Aunado a lo anterior, es evidente que un tiempo mayor de valoración dio lugar a una mayor
varianza en los datos, situación que, como se mostró en los resultados anteriores, dificultó el
entrenamiento de las RNAs; sin embargo, los pocos tiempos sin mejora mostrados en la tabla de
entrenamiento de estas redes (tabla 4.35), demuestra que dicho proceso continuaba reduciendo el
error cuando fue detenido.
En la tabla 5.5, se muestra el porcentaje de efectividad obtenido con las RNAs en los datos
de entrenamiento (train) y prueba (test). En ella, se observa que existió una reducción de
porcentaje similar a la obtenida en los experimentos con DM debido a los casos nuevos a los que
se enfrenta el sistema al ser alimentado con datos desconocidos (ver tabla 4.30 y tabla 4.31).
Tabla 5.5 Comparación de porcentaje de efectividad de las RNAs en datos de prueba y entrenamiento
Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4
Train Test Train Test Train Test Train Test
Experto 1 90.69% 89.54% 85.25% 83.88% 81.13% 80.38% 51.60% 51.08%
Experto 2 98.05% 97.43% 99.76% 99.32% 82.31% 81.86% 73.53% 74.05%
Experto 3 99.73% 99.50% 98.54% 98.26% 94.91% 94.64% 79.06% 76.68%
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 129
5.3 Pruebas de coherencia en la percepción del nivel de riesgo
Las pruebas de coherencia de percepción del nivel de riesgo descritas en esta sección,
consistieron en la prueba de clasificación de cada una de las RNAs de cada experto con datos de
valoración del mismo experto pero de otros ejercicios; por ejemplo, para el caso del primer experto,
la RNA entrenada con los datos de valoración del primer ejercicio se probó también con los datos
de la valoración de los otros tres ejercicios.
En la tabla 5.6, se presentan los primeros resultados obtenidos en la ejecución de estas
pruebas.
Tabla 5.6 Resultados de las pruebas de coherencia en la percepción del nivel de riesgo del Experto 1
RNA Ejercicio 1 RNA Ejercicio 2 RNA Ejercicio 3 RNA Ejercicio 4
Efectividad Efectividad Efectividad Efectividad
Ejercicio 1 94.24% 36.56% 23.63% 35.69%
Ejercicio 2 56.70% 89.52% 32.63% 39.93%
Ejercicio 3 16.60% 23.17% 88.47% 33.60%
Ejercicio 4 43.85% 32.76% 45.94% 65.09%
Los datos anteriores, pertenecientes al primer experto, demostraron que, en este caso, la
percepción del nivel de riesgo varió dependiendo del tipo de ejercicios evaluado.
Este comportamiento, esperado por las diferentes condiciones dadas en cada ambiente
simulado, varió drásticamente en los datos obtenidos en las pruebas de coherencia del segundo
experto como se muestra en la tabla 5.7.
Tabla 5.7 Resultados de las pruebas de coherencia en la percepción del nivel de riesgo del Experto 2
RNA Ejercicio 1 RNA Ejercicio 2 RNA Ejercicio 3 RNA Ejercicio 4
Efectividad Efectividad Efectividad Efectividad
Ejercicio 1 98.36% 34.51% 26.72% 30.15%
Ejercicio 2 75.24% 99.71% 71.08% 48.52%
Ejercicio 3 25.28% 55.24% 87.68% 47.24%
Ejercicio 4 66.05% 89.49% 75.27% 79.93%
Capítulo 5 Pruebas y resultados
130 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Los resultados anteriores, que en general siguieron el comportamiento de los obtenidos
con la información del primer experto, presentaron una excepción en la RNA entrenada con los
datos de la valoración del segundo ejercicio. Este caso (marcado con color rojo en la tabla
anterior), tuvo una efectividad mayor para el cuarto ejercicio que la obtenida con la RNA entrenada
para ese ejercicio específicamente.
Aunque este resultado excepcional pareció, en primera instancia, una aproximación a un
modelado del comportamiento de conducción general (según la percepción de seguridad del
segundo experto), un análisis de las gráficas de valoración presentadas en la sección 4.1.4.1
(figura 4.31 y figura 4.33), demostró que se trata de un caso previsible; ya que, como se aprecia en
la tabla 4.11, este experto presentó una tendencia a la clase seguro en todas sus valoraciones.
Por lo anterior, y debido a que la situación descrita se presentó una única ocasión en las
diferentes pruebas de coherencia realizadas con las RNAs del segundo experto, la situación
presentada fue tomada como un caso inusual en el comportamiento de los resultados de estas
pruebas.
Finalmente, en la tabla 5.8, se presentan los resultados de las pruebas de coherencia
realizadas con las RNAs del tercer experto.
Tabla 5.8 Resultados de las pruebas de coherencia en la percepción del nivel de riesgo del Experto 3
RNA Ejercicio 1 RNA Ejercicio 2 RNA Ejercicio 3 RNA Ejercicio 4
Efectividad Efectividad Efectividad Efectividad
Ejercicio 1 99.78% 17.34% 28.86% 53.79%
Ejercicio 2 6.62% 98.77% 2.49% 41.01%
Ejercicio 3 42.25% 1.41% 95.28% 3.97%
Ejercicio 4 7.62% 49.40% 1.98% 83.63%
En los resultados de esta última prueba de coherencia en la percepción del nivel de riesgo,
se observa el comportamiento esperado: el tercer experto utilizó un conjunto de reglas distinto en
la valoración del nivel de riesgo de cada uno de los ejercicios realizados.
Los resultados de las pruebas presentados en esta sección, en primera instancia, ratificaron
la utilización de una RNA por cada experto por cada ambiente simulado para la clasificación del
comportamiento de conducción. Además demuestran, sin lugar a dudas, que cada ambiente
simulado en los ejercicios de conducción requiere un conjunto diferente de reglas para ser
evaluado (en cuanto a nivel de riesgo).
Por otro lado, se hace evidente que una tendencia a cierto comportamiento de conducción
en las valoraciones realizadas en el proceso de adquisición del conocimiento por parte de los
expertos humanos, puede generar resultados confusos que, sin un buen análisis, pueden llevar a
conclusiones incorrectas.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 131
5.4 Comparación de clasificación por RNAs y DM
Aunque se han expuesto ventajas y desventajas de cada uno de los métodos de clasificación
utilizados en diversos experimentos presentados en este documento, para referencia del lector, se
presenta en la tabla 5.9 una comparación de la efectividad obtenida en dichos experimentos:
Tabla 5.9 Comparación de efectividad de clasificación del comportamiento con RNAs y DM
Ejercicio 1 Ejercicio 2 Ejercicio 3 Ejercicio 4
RNA
DM RIPPER
DM CART
RNA DM
RIPPER DM
CART RNA
DM RIPPER
DM CART
RNA DM
RIPPER DM
CART
Experto 1 89.54% 96.74% 97.47% 83.88% 96.90% 98.39% 80.38% 96.40% 97.40% 51.08% 93.85% 96.34%
Experto 2 97.43% 98.19% 98.70% 99.32% 99.56% 99.66% 81.86% 97.48% 97.99& 74.05% 97.72% 98.92%
Experto 3 99.50% 99.92% 99.92% 98.26% 99.65% 99.74% 94.64% 98.71% 99.20% 76.68% 96.66% 98.13%
Aunque los resultados mostrados en la tabla anterior favorecieron, sin lugar a dudas, a las
clasificaciones del comportamiento realizadas con el algoritmo CART, es importante tener en
cuenta que se trata de una técnica de DM que se encarga de la generación de arboles de decisión,
cuyos resultados no permiten una portabilidad si no son convertidos a reglas y, que dicha
conversión, usualmente resulta en problemas similares a los obtenidos en la aplicación de
RIPPER, expuestos en la sección 4.3.3.3. Por su parte las RNAs, como una de las mejores
aproximaciones desarrolladas a la forma en el que el cerebro humano funciona, tienen las
siguientes ventajas:
Auto-organización
Una RNA crea su propia representación de la información en su interior,
descargando al usuario de este proceso.
Tolerancia a fallos
Una RNA almacena la información de forma redundante en su interior y puede
seguir respondiendo de forma aceptable si se daña parcialmente.
Flexibilidad
Una RNA puede manejar cambios no importantes en la información de entrada, lo
que implica tolerancia a señales con ruido
Operación en tiempo real
La estructura de una RNA es paralela y, si es implementada adecuadamente, se
pueden obtener respuestas en tiempo real.
Facilidad de inserción en tecnología ya existente.
La información necesaria para la reproducción de una RNA ya entrenada es mínima
(estructura y parámetros), lo que permite su implementación en proyectos ya desarrollados.
Capítulo 5 Pruebas y resultados
132 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
5.5 Pruebas de comprobación final con RNAs
Para el conjunto de pruebas de esta última etapa del proyecto, se incorporó en el sistema CoPiloto
Virtual el conjunto de librerías diseñadas para el simulador neuronal, con lo que se hizo posible la
valoración automática de seguridad en la reproducción de los ejercicios de simulación. Dicha
valoración, mostrada al usuario en forma de indicadores como se muestra en la figura 5.1, se
encarga de clasificar automáticamente el comportamiento de conducción en cada uno de los datos
procesados por el sistema.
Figura 5.1 Formulario de información visual de la clasificación del comportamiento con RNAs
En estas pruebas de comprobación final, se buscaron situaciones, en cada uno de los
ejercicios de simulación, clasificadas por las RNAs como muy riesgosas; para ello, se utilizó la RNA
del experto que mejor efectividad de clasificación tuvo en dicha sesión (ver tabla 5.10).
Tabla 5.10 Rangos de cuantificación de nivel de riesgo para las cinco clases de comportamiento
Sesión de pruebas RNA Utilizada en las pruebas finales
Ejercicio 1 RNA del Experto 3 (Tabla 5.1)
Ejercicio 2 RNA del Experto 2 (Tabla 5.2)
Ejercicio 3 RNA del Experto 3 (Tabla 5.3)
Ejercicio 4 RNA del Experto 3 (Tabla 5.4)
A continuación se presentan los resultados de cada una de estas pruebas, en donde se
analizan y describen los escenarios en los que el conductor se encontraba en algunas situaciones
detectadas por las RNAs como de alto riesgo.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 133
5.5.1. Ejercicio 1 – Urbano
Los experimentos realizados con los datos del primer ejercicio monitoreado (ambiente urbano),
fueron clasificados con la RNA del tercer experto que obtuvo una efectividad de clasificación de
99.78%.
A continuación, se presentan las cinco situaciones de alto riesgo encontradas en la
reproducción de esta sesión que, al igual que en los experimentos de comprobación final del resto
de los ejercicios, fue realizada en los lapsos de tiempo que no fueron evaluados por los expertos
humanos; es decir, en datos desconocidos por las RNAs utilizadas.
Caso 1: Minuto – 05:39
El conductor se acercó al límite de velocidad presionando el pedal del acelerador al
100% mientras sujeta el volante con ambas manos. Cuando utiliza la mano derecha para
cambiar la velocidad (octava a novena), la RNA detecta un comportamiento muy riesgoso.
Dicho comportamiento continuó hasta que la presión en el acelerador empezó a disminuir.
Caso 2: Minuto – 06:27
El conductor realizó una vuelta demasiado cerrada sin señalizar. Se observó un
cruzamiento excesivo de brazos al girar el volante; sin embargo, la señal de alerta no es
continua durante toda la situación, clasificando el comportamiento como aceptable en
ocasiones.
Caso 3: Minuto – 10:01
La señal de alerta se activó cuando el conductor presionó el pedal del acelerador al
100%; sin embargo, se desactivó antes de que la presión en dicho pedal disminuyera. No
se observó, en general, una situación de riesgo.
Caso 4: Minuto – 12:53
En este caso se observó un giro cerrado a la derecha sin señalizar. El uso de las
manos para girar el volante fue inadecuado. La señal de alerta varió entre los tres niveles
de alto riesgo.
Caso 5: Minuto – 28:56
Se observó un giro en una glorieta utilizando una sola mano en el volante; así
mismo, existe forzamiento del motor y un giro repentino del volante. La señal de alerta no
es continua en toda la situación de riesgo.
Capítulo 5 Pruebas y resultados
134 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
5.5.2. Ejercicio 2 – Montaña
Las pruebas finales realizadas con los datos del segundo ejercicio (ambiente montañoso), fueron
clasificados con la RNA del segundo experto que obtuvo una efectividad de clasificación de
99.71% para este ejercicio.
A continuación se describen cinco situaciones, seleccionadas aleatoriamente, de las 12
encontradas en la ejecución de este ejercicio.
Caso 1: Minuto – 15:59
Se observó al conductor articulando con la mano izquierda mientras platicaba por
el altavoz de su teléfono móvil; sin embargo, la situación empezó algunos minutos antes de
la activación de la señal de alarma y continuó después de que se apagó.
Caso 2: Minuto – 18:37
Se observó un giro demasiado abierto en una curva de una carretera. La señal de
alerta se mantuvo encendida en la mayor parte del tiempo de duración de dicha maniobra,
específicamente, cuando existió invasión al carril contario; sin embargo, y dado que no se
alimentó al clasificador con información de la posición del vehículo respecto a los carriles
de la carretera, la situación debió ser inferida del ángulo de error.
Caso 3: Minuto – 21:49
La señal de alerta se activó cuando el conductor soltó el volante con la mano
derecha conduciendo en una curva a la izquierda bastante ligera. Finalmente, la señal de
alarma se desactivó sin que la mano derecha hubiera regresado a su posición sobre el
volante.
Caso 4: Minuto – 24:54
Se observó al conductor hablando por el altavoz de su teléfono móvil y, articulando
con las manos, el conductor soltó el volante por un instante de tiempo. La señal encendió
unos pocos ciclos de simulación después de este suceso y se apagó cuando el conductor
regresó ambas manos al volante.
Caso 5: Minuto – 25:54
Se observó al conductor invadiendo el carril contrario en una curva. La señal de
alerta coincidió con una del sistema por cambio de carril sin señalizar. La señal de alerta se
mantuvo encendida hasta que la situación descrita fue corregida.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 135
5.5.3. Ejercicio 3 - Inter Urbano
Las pruebas finales realizadas con los datos del tercer ejercicio (ambiente inter urbano), fueron
clasificados con la RNA del tercer experto que obtuvo una efectividad de clasificación de 95.28%
para este ejercicio.
A continuación se describen cinco situaciones, seleccionadas aleatoriamente, de las 19
encontradas en su ejecución.
Caso 1: Minuto – 01:16
Se observó a un vehículo particular metiéndose bruscamente al carril del conductor
y, aunque éste disminuyo la velocidad para evitar un accidente, la distancia de seguridad
observada después del evento fue muy pequeña. La alarma de alerta continuó hasta que el
conductor rebaso a dicho vehículo por el carril izquierdo.
Caso 2: Minuto – 02:22
Se observó al conductor realizando un cambio de carril sin señalizar. La señal de
alerta se mantuvo encendida durante todo el tiempo que duró el evento.
Caso 3: Minuto – 02:37
Se observó una situación en la que el conductor realizó un rebase por el carril
izquierdo y, posteriormente, regresó al carril derecho realizando las señalizaciones
pertinentes a una velocidad adecuada. No existió evidencia de una situación de riesgo en
este caso.
Caso 4: Minuto – 05:50
Se observa al conductor tomando el volante con una sola mano mientras conduce
al límite de velocidad permitido en la ruta por la que transita; sin embargo, la señal de
alerta se apagó antes de que retome el volante con ambas manos.
Caso 5: Minuto – 15:25
Se observó al conductor realizando una vuelta muy abierta a la derecha con ambas
manos en el volante; sin embargo el sistema de VA fue incapaz de detectar la posición de
la mano izquierda sobre el volante en las condiciones dadas en esa situación.
Así mismo, después de la activación de la alarma, se observó una inconsistencia
en el valor de la distancia de seguridad al vehículo delantero. La señal de alerta terminó
cuando dicha inconsistencia se corrigió.
Capítulo 5 Pruebas y resultados
136 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
5.5.4. Ejercicio 4 - Circuito Continuo
Las pruebas finales realizadas con los datos de este último ejercicio (ambiente continuo), fueron
clasificados con la RNA del tercer experto que obtuvo una efectividad de clasificación de 83.63%
para este ejercicio.
A continuación se describen cinco situaciones, seleccionadas aleatoriamente, de las 8
encontradas en su ejecución.
Caso 1: Minuto – 41:29
Se observó al conductor con las dos manos situadas sobre el volante y
conduciendo a una velocidad moderada por debajo de los límites en una recta con una
ligera pendiente positiva (subida). No se observó evidencia de una situación de riesgo.
Caso 2: Minuto – 44:58
En este caso, se observó que el disparo de la señal se debió a una inconsistencia
en los datos de la variable que almacena la distancia de seguridad al vehículo delantero.
Dicha alarma continuó encendida en el nivel más alto hasta que la inconsistencia se
corrigió.
Caso 3: Minuto – 47:39
Se observo al conductor presionando el pedal al 100% mientras conducía muy
cercano a los límites de velocidad. En este caso, la señal se apagó cuando se redujo la
velocidad disminuyendo la presión del acelerador.
Caso 4: Minuto – 48:08
En este caso, igual que en el segundo de este ejercicio, se observó que el
disparo de la señal se debió a una inconsistencia en la distancia de seguridad al vehículo
delantero. Dicha alarma continuó encendida hasta que la inconsistencia se corrigió.
Caso 5: Minuto – 48:12
Se observó al conductor con las dos manos sobre el volante, conduciendo a una
velocidad bastante baja en una recta con una ligera pendiente positiva. No se observó
evidencia de una situación de riesgo.
Los resultados obtenidos en la prueba final del cuarto ejercicio, corresponden a los
porcentajes de clasificación obtenidos en las pruebas realizadas con las RNAs ya que, con la
efectividad más baja de los cuatro ejercicios, era evidente el poco rendimiento que tendría en la
clasificación de datos nuevos.
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 137
Conclusiones
En este proyecto de investigación se diseñó e implementó un sistema de cómputo como una
aproximación a la clasificación automática del comportamiento de conductores de camiones de
transporte y/o carga mediante el modelado automático de cinco tipos de conducta: segura,
aceptable, poco riesgosa, bastante riesgosa y muy riesgosa.
Dicho sistema (experto), actuando a modo de un instructor de conducción, se encarga de
la aplicación de los modelos de comportamiento a los datos de los ejercicios de simulación
monitoreados mediante RNAs.
Como una primera aproximación, se planteó la generación de estos modelos de
comportamiento mediante la transformación del conocimiento simbólico a reglas de producción,
que pudieran ser aplicadas a los datos obtenidos en los ejercicios de simulación. Dichas reglas,
utilizadas en la generación de RNAs iniciales por medio del compilador propuesto en [Cruz, 2004],
serían complementadas con diversos entrenamientos utilizando la información recopilada en el
proceso de adquisición de conocimiento; sin embargo, se encontraron diversos problemas durante
la investigación que dificultaron la metodología descrita.
Por un lado, dada la información limitada del ambiente de simulación plasmada en los
registros recopilados, no fue posible la aplicación del conocimiento adquirido de recomendaciones
oficiales a conductores que pueden ser convertidos a reglas de producción para la generación de
modelos de comportamiento. En segunda instancia, fue también imposible adquirir información
tangible directamente de expertos humanos que pudiera ser, de igual forma, convertida a reglas y,
posteriormente, a modelos de comportamiento.
Por lo anterior, y como uno de los aportes de este proyecto, se establece que el modelado
del comportamiento de conducción, en caso de ser posible, debe ser realizado de forma
automática mediante procesos de descubrimiento del conocimiento en bases de datos (KDD). En
este caso, aplicando dicho proceso mediante la utilización RNAs en conjunto con un sistema de
VA, los modelos de comportamiento de conducción fueron generados automáticamente mediante
entrenamientos realizados con datos adquiridos de expertos humanos mediante la aplicación de
una herramienta de adquisición del conocimiento diseñada para ese fin.
De los resultados obtenidos, en primer lugar con experimentos utilizando algoritmos de
DM, se concluye que la generación automática de reglas es capaz de inferir algunas de alto nivel
que determinan el comportamiento del conductor en ciertos casos. Sin embargo, la metodología
del manejo de datos establecida en dichos algoritmos, se encuentra sesgada por la generalización
para su aplicación en cualquier tipo de proyecto, y no es capaz de reconocer el contexto de los
datos utilizados; por lo tanto, de los cientos de reglas generadas, pocas resultan útiles y
coherentes para el problema en el que se aplican.
Aunado a lo anterior, y por razones de portabilidad, el uso de reglas específicas para la
clasificación del comportamiento de conductores resulta impráctica para su aplicación en sistemas
ya existentes.
Conclusiones
138 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Por su parte, los resultados obtenidos con la aplicación de RNAs, muestran una clara
aproximación al modelado del comportamiento de conductores mediante las pruebas finales
descritas en el capítulo anterior. En donde se muestra que la clasificación del comportamiento,
fuera de los datos utilizados para las etapas de entrenamiento y pruebas, sigue siendo efectiva en
ciertas situaciones; sin embargo, como se mencionó a lo largo del documento, el funcionamiento y
estructura de las RNAs no permiten el análisis e interpretación de los modelos generados de una
forma sencilla que es, sin lugar a dudas, la principal desventaja del método propuesto.
Aunque la efectividad de la clasificación del comportamiento en diversos resultados
obtenidos en las pruebas realizada muestra una efectividad aceptable, es importante considerar los
problemas encontrados en los datos obtenidos de los registros de simulación.
Por un lado, se encontraron ciertas inconsistencias en los datos que pudieron restarle
importancia a los atributos que los contenían; por ejemplo, el caso de la pendiente de la carretera
que, siendo uno de los principales factores para determinar el comportamiento de conducción, fue
de las variables peor evaluadas por los algoritmos de selección de variables.
Por otro lado, no se contaba con información suficiente del entorno de simulación que
pudiera hacer uso de algunas variables como factores determinantes en la clasificación; tal es el
caso de aquellas que indicaban el uso de las luces o de los faros antiniebla que, sin información
del ambiente simulado, resultaron prácticamente inútiles.
En otro caso similar, en entrevistas realizadas a los expertos que se encargaron de evaluar
el nivel de riesgo en los ejercicios simulados, se detectó que el conductor no utilizó el cinturón de
seguridad en una de las sesiones y, al ser ésta una información no disponible para el clasificador
neuronal, es un factor de clasificación imposible de modelar.
Así mismo, aunque el sistema de VA implementado para la detección automática de las
manos del conductor resultó con una buena efectividad en su aplicación, es recomendable la
mejora de dicho sistema que, teniendo en cuenta las situaciones limitantes encontradas en el
desarrollo de este proyecto, permita la alimentación del clasificador neuronal con datos más
precisos; sin embargo, la importancia de la información desprendida por este sistema de detección
se hace evidente en dichas limitaciones que, centradas más en problemas con la detección de la
mano derecha, son reflejadas en los resultados de los experimentos de selección de variables,
dónde la información de la detección de esta mano fue evaluada con menos de la mitad de la
calificación obtenida por la otra mano siendo, esta última, la mejor evaluada en ciertos casos.
Finalmente, es posible observar que la experiencia de los expertos humanos que
participaron en el desarrollo de este proyecto se refleja en los resultados de los experimentos
realizados. En el caso del segundo experto, que cuenta con apenas 4 años de experiencia en el
tema, se tienen resultados fuera de los estándares marcados por los resultados de los otros dos
expertos.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 139
Aportaciones
El desarrollo de este trabajo de tesis genera diversas aportaciones para su utilización en otros
proyectos que pueden ser divididas en dos ramas:
Por un lado, se tienen las herramientas desarrolladas que se están siendo utilizadas en el
desarrollo de diversos proyectos tanto en el CENIDET como en el proyecto CABINTEC a través del
grupo FRAV:
Simulador neuronal.
Sistema de adquisición y transmisión de imágenes.
Sistema de recepción y recuperación de imágenes.
Sistema de detección manual de regiones de interés.
Sistema de adquisición y representación del conocimiento.
Por otro lado, se tienen aportaciones en el campo del modelado del comportamiento de
conductores de camiones de transporte y/o carga:
Investigación de reglas y recomendaciones para el modelado del comportamiento.
Adquisición de conocimiento a expertos en el tema de seguridad vial:
a) a través de entrevistas
b) a través de una herramienta de adquisición
Generación automática de modelos de comportamiento por medio de KDD.
Clasificación automática del comportamiento por medio de RNAs
Trabajos futuros
Esta investigación, como una primera aproximación al modelado del comportamiento de
conductores de camiones de transporte y/o carga, abre diversos caminos para investigaciones
futuras relacionadas con el tema o, incluso, continuar la misma línea utilizando otras técnicas y
métodos que puedan mejorar los resultados obtenidos en este proyecto, teniendo en cuenta las
condiciones encontradas durante su desarrollo.
·En el caso de la información desprendida de los experimentos realizados con DM, es
posible iniciar un proceso de validación de conocimiento mediante el análisis de las más de 8,000
reglas generadas por los algoritmos utilizados. Dicho proceso, que deberá ser realizado por
expertos en el tema de seguridad vial, podría ser el punto de partida para un modelado del
comportamiento de conductores de camiones de transporte y/o carga a través de conocimiento
simbólico inferido a través del proceso de KDD.
Conclusiones
140 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 141
Referencias bibliográficas
[Akamatsu, 2002] Measuring Driving Behavior.
Akamatsu, M.
Proceedings of the 41st SICE Annual Conference, 2002, Vol. 2, pp. 798-803.
[Atoche, 2007] PDI para la Visión por Ordenador Aplicado al: Registro en tiempo real de objetos.
Ramón Atoche Enseñat.
Tesis Doctoral del Departamento de Ing. Electrónica, Universidad Politécnica de Valencia, 2007.
[Ballard, 1981] Generalizing the Hough transform to detect arbitrary shapes.
D. H. Ballard.
Pattern Recognition, 111-122 vol 13, 1981.
[Bayer, 1976] Color imaging array.
B. E. Bayer
US Patent No. 3971065 , 1976.
[Berthold, 2003] Intelligent Data Analysis: An introduction.
Berthold M., Hand D.J.
Springer 2nd Edition, 2003.
[BrainMaker, 1992] Brainmaker professional.
IEEE Intelligent Systems, vol. 7, no. 2, pp. 70-71, Apr. 1992, doi:10.1109/MIS.1992.10009,
[Brazález, 2008] SISTEMAS INTELIGENTES DE TRANSPORTE (ITS).
Dr. Alfonso Brazález.
Reporte técnico, Centro de Estudios e Investigaciones Técnicas de Gipuzkoa, Marzo, 2008.
[Breiman, 1984] Classification and Regression Trees.
Leo Breiman, Jerome H. Friedman, Richard A. Olshen, Charles J. Stone.
Technical Guide, Wadsworth International Group, Belmont, California, 1984.
[Bruno, 2005] Reconocimiento de burbujas en formularios inteligentes aplicando la transformada de Hough
Julián s. Bruno.
Reporte Técnico, FRBA-UTN, Buenos Aires, Argentina, 2005.
[Canny, 1986] A computational approach to edge detection.
J. F. Canny.
IEEE Transaction on Pattern Analysis and Machine Intelligence. Pp 679-698, 1986.
[Cogen, 1995] Fast Effective Rule Induction.
William W. Cohen.
Proceedings of the 12th International Conference on Machine Learning, USA, 1995, P.p: 112 – 123.
[Collier, 2005] An investigation into real-time automated painterly video techniques.
Mark Collier.
Thesis of the Department of Computer Science, University of Bath, United Kingdom, 2005.
[Cruz, 2004] Sistema híbrido neuro-simbólico para refinar el conocimiento en un sistema de visión artificial.
Vianey Guadalupe Cruz Sánchez.
Tesis de Maestría en Ciencias, Departamento de Ciencias Computacionales, CENIDET, 2004.
[Dankers, 2001] Driver Assistance: Contemporary Road Safety.
Andrew Dankers, Luke Fletcher, Lars Petersson, Alexander Zelinsky.
Research School of Information Sciences & Engineering, Australian National University, 2003.
[Duda, 1972] Use of the Hough transform to detect lines and curves in pictures.
Duda, RO, and Hart, PE.
Community Association for Computing Machinery, 1-15 vol. 15, 1972.
142 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
[Fayyad, 1996] From Data Mining to Knowledge Discovery: An Overview.
Fayyad U. M., Piatetsky-Shapiro G., Smyth P.
Advances in Knowledge Discovery and Data Mining, p.p 1-34, AAAI/MIT Press, 1996.
[Fu, 1988] Robótica: Control, detección, visión e inteligencia.
Fu K. S., González R. C.
McGRAW-HILL, Madrid, 1988.
[Galbiati, 1990] Machine vision and digital image processing fundamentals.
Galbiati L. J.
Prentice-Hall, Englewood Cliffs, NJ, 1990.
[González, 2008] Digital Image Processing.
Rafael C. González, Richard E. Woods.
Pearson Education Inc, Third Edition, USA, 2008, ISBN 0-13-168728-x.
[Harbluk, 2007] Using the LCT to assess distraction: tests of visual-manual and speech-based operation of NSI.
Joanne L. Harbluk, Peter C. Burns, Martin Lochner, Patricia L. Trbovich.
P. of the 4th Int. Driving S. on Human Factors in Driver Assessment, Training and Vehicle Design, 2007.
[Hebb, 1949] The organization of behavior.
Hebb, Donald.
NY: John Wiley & Sons, Introduction and Chapter 4, reprinted in Anderson & Rosenfeld, 1988, p.p. 45-56.
[Henao, 1998] La adquisición del conocimiento dentro de la ingeniería del conocimiento.
Mónica Henao Cálad.
Revista Universidad Eafit. Abril-Junio, 1998.
[Hernández, 2004] Introducción a la minería de datos.
Hernández Orallo J., Ramírez Quintana M. J., Ferri Ramírez C.
Pearson Education, S.A., Madrid, 2004. ISBN 84-205-4091-9.
[Hough, 1962] Method and means for recognizing complex patterns.
P. V. C. Hough.
U. S. Patent 3069654, 1962.
[Jong-Hae, 2005] Modeling of Human Driving Behavior Based on Piecewise Linear Model.
Jong-Hae Kim, Okuma, S., Young-Woo Kim, Don-Ha Hwang, Min-Huei Kim, Dong-Hee Kim.
Proceedings of the IEEE Symposium on Industrial Electronics, 2005, Vol. 1, pp. 25- 30.
[Kato, 2004] Detection of Driver's Posture in the Car by Using Far Infrared Camera.
Kato, T. Fujii, T. Tanimoto, M.
IEEE intelligent vehicles symposium. 2004, pp. 339-344.
[Kira, 1992] A Practical Approach to Feature Selection
Kenji Kira, Larry A. Rendell.
Proceedings of the 9th international workshop on Machine learning, United Kingdom, 1992, P.p.: 249 – 256.
[Kononenko, 1994] Estimating Attributes: Analysis and Extensions of RELIEF.
Igor Kononenko.
Proceedings of the European conference on machine learning, Catania, Italy, 1994, P.p.: 171 – 182.
[Kovordanyi, 2005] Dynamically deployed support as a potential solution to negative behavioral adaptation.
Kovordanyi, R., Ohlsson, K., Alm, T.
Proceedings of the IEEE Intelligent Vehicles Symposium, 2005, P.p.: 613 - 618.
[Lakshmanan, 2001] Comparison Between Eigenfaces and Fisherfaces for Estimating Driver Pose.
Lakshmanan, S., Watta, P., Yu Lin Hou, Gandhi, N.
Proceedings of the IEEE Intelligent Transportation Systems, 2001, pp. 889-894.
[Laurence, 1994] Fundamental of neural networks.
Fausett, Laurence.
Prentice-Hall Inc., 1994, ISBN 0-13-334186-0.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 143
[Liu, 1997] Toward real-time recognition of driver intentions.
A. Liu and A.P. Pentland.
Proceedings of the 1997 IEEE Intelligent Transportation Systems Conference, pp. 236-241.
[Liu, 2002] Real-time pose classification for pose monitoring.
Xia Liu, Youding Zhu, Fujimura, K.
Proceedings of the IEEE Intelligent Transportation Systems, 2002, pp. 174- 178.
[López, 1999] Looking inside the ANN “black box”: classifying individual neurons as outlier detectors.
Lopez, C.
IEEE International Joint Conference on Neural Networks, Vol. 2, 1999, p.p 1185 – 1188.
[Malik, 2008] The Need of Intelligent Driver Training Systems for Road Safety.
Malik, H., Rakotonirainy, A.
IEEE International Conference on Systems Engineering, 2008, pp. 183-188. ISBN: 978-0-7695-3331-5.
[Mark, 1999] Correlation-based Feature Selection for Machine Learning.
Mark A. Hall.
PhD. Thesis, Department of Computer Science, University of Waikato, Hamilton, NewZealand, 1999.
[Marx, 2003] Motion estimation on driver video data.
Jason Marx, Paul Watta and Sridhar Lakshmanan.
Intelligent Vehicles Symposium, 2003. Proceedings. IEEE. 9-11 June 2003, pp. 668- 672
[McAllister, 2000] Tracking a driver’s hands using computer vision.
McAllister, G., McKenna, S.J., Ricketts, I.W.
Proceedings of the IEEE Systems, Man, and Cybernetics, 2000, Vol. 2, pp. 1388 – 1393.
[McCarrt, 2006] Cell phones and driving: Review of research.
McCartt, A. T., Hellinga, L. A., & Braitman
Traffic Injury Prevention, 7, 89-106., K. A. 2006.
[McClelland, 1988] Explorations in parallel distributed processing.
McClelland, J. L., D. E. Rumelhart.
Cambridge, MA: MIT Press, 1988.
[McCulloh, 1943] A logical calculus of the ideas immanent in nervous activity.
Warren McCulloch, Walter Pitts.
Bulletin of Mathematical Biology, Vol. 5, No. 4. (Dec 1943), pp. 115-133.
[Mehrotra, 1991] Bounds on the number of samples needed for neural learning.
Mehrotra, K.G., C.K. Mohan, S. Ranka.
IEEE Transactions on Neural Networks, 2(6), p.p. 548-558.
[Merlin, 1975] A parallel mechanism for detecting curves in pictures.
P. M. Merlin and D. J. Farber.
IEEE Transactions on Computers, p.p. 96-98, C-24, 1975.
[Minsky, 1969] Perceptrons, expanded edition.
Minsky, M. L., S. A. Papert.
Cambridge, MA: MIT Press, Original Edition, 1969.
[Mitchell, 1997] Machine Learning.
Mitchell T.
McGRAW-HILL, USA, 1997, ISBN 0-07-042807-7.
[Moctezuma, 2009] Detección de bordes en tiempo real.
Daniela A. Moctezuma Ochoa.
Tesis de Maestría en Ciencias, Departamento de Ciencias Computacionales, CENIDET, 2009.
[Montaño, 2002] Redes Neuronales Artificiales: Abriendo la Caja Negra.
Juan J. Montaño, Alfonso Palmer, Carlos Fernandez.
Metodología de las ciencias del comportamiento, ISSN 1575-9105, Vol. 4, Nº 1, 2002 , p.p. 77-93.
144 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
[Nilson, 2001] Inteligencia Artificial: Una nueva Síntesis.
Nils J. Nilson.
McGRAW-HILL Interamericana de España, 2001, ISBN 1-55860-467-7.
[Nobuyuki, 2000] A Driver Behavior Recognition Method Based on a Driver Model Framework.
Kuge Nobuyuki, Yamamura Tomohiro, Shimoyama Osamu, Liu Andrew.
Society of Automotive Engineers Transactions, 2000, vol. 109, no. 6, pp. 469-476.
[Nobuyuki, 2000] A Driver Behavior Recognition Method Based on a Driver Model Framework.
Kuge Nobuyuki, Yamamura Tomohiro, Shimoyama Osamu, Liu Andrew.
Society of Automotive Engineers Transactions, 2000, vol. 109, no. 6, pp. 469-476.
[Otsu, 1979] A threshold selection method from gray-level histograms.
Otsu, N.
IEEE Transactions on Systems, Man and Cybernetics, 1979, p,p. 62-66, ISSN: 0018-9472, 1979.
[Pajares, 2002] Visión por computadora, Imágenes digitales y aplicaciones.
Gonzalo Pajares, Jesús M. de la Cruz.
Editorial RA-MA, Madrid, España, 2002, ISBN 84-7897-472-5.
[Park, 2005] Driver activity analysis for intelligent vehicles: issues and development framework
Park, S., Mohan Trivedi.
Intelligent Vehicles Symposium, 2005. Proceedings. IEEE , pp. 644- 649.
[Parker, 1985] Learning logic.
Parker, D.
TR-87, Cambridge, MA: Center for computational research in economics and management science, MIT.
[Pettit, 2005] Defining driver distraction.
Pettitt, M., Burnett, G., & Stevens
World Congress on Intelligent Transport Systems, San Francisco, CA, 2005.
[Postel, 1980] Internet Protocol.
Postel, J.
RFC 760, USC/Information Sciences Institute, January 1980.
[Robnik-S, 1997] An adaptation of Relief for attribute estimation in regression.
Marko Robnik-Sikonja, Igor Kononenko.
Proceedings of the 14th International Conference on Machine Learning, 1997, P.p.: 296 – 304.
[Rosenblatt, 1958] The perceptron: a probabilistic model for information storage and organization in the brain.
Rosenblatt, Frank.
Psychological Review, 65:386-408, Reprinted in Anderson & Rosenfeld, 1988, p.p. 92-114.
[Rosenblatt, 1962] Principles of Neurodynamics: perceptrons and the theory of brain mechanisms.
Rosenblatt, Frank.
Washington, Spartan Books, 1962.
[Rumelhart, 1986] Learning representations by back-propagation error.
Rumelhart, D. E., G. E. Hinton, R. J. Williams.
Parallel distributed processing, vol. 1, chapter 8, reprinted in Anderson & Rosenfeld, 1988, p.p. 675-695.
[Russ, 2006] The Image Processing Handbook.
John C. Russ.
CRC Press Inc., Fifth Edition, USA, 2006, ISBN 9-78-084937-25-44
[Sakamoto, 1998] Software pixel interpolation for digital still cameras suitable for a 32-bit MCU.
T. Sakamoto, C. Nakanishi and T. Hase.
IEEE Trans. Consumer Electronics, vol. 44, no. 4, November 1998.
[Serna, 1996] Comparison of brain structure to a backpropagation-learned-structure.
Serna, M., Baird, L.
IEEE International Conference on Neural Networks, Vol. 2 (Jun 1996), p.p. 706 – 711, ICNN.1996.548982.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 145
[Smith, 1995] SUSAN – A New Approach to Low Level Image Processing
S. M. Smith, J. M. Brady.
Technical Report, FMRIB, 1995.
[Stutts, 2001] The role of driver distraction in traffic crashes.
Stutts, J. C., Reinfurt, D. W., Staplin, L., & Rodgman.
T Washington, DC: AAA Foundation for Traffic Safety, 2001.
[Trezise, 2006] Report of the road safety committee on the inquiry into driver distraction.
Trezise, I., Stoney, E. G., Bishop, B., Eren, J., Harkness, A., Langdon, C., & Mulder.
Rep. No. 209. Melbourne, Victoria, Australia: Road Safety Committee, Parliament of Victoria, 2006.
[Tricot, 2002] Driving Styles and Traffic Density Diagnosis in Simulated driving Conditions.
Tricot, N. Sonnerat, D. Popieul, J.C.
IEEE Intelligent Vehicle Symposium, 2002, Vol. 2, pp. 298- 303.
[Tricot, 2003] Toward a modelization of drivers’ behaviour in different traffic situations…
Tricot, N., Rajaonah, B., Pacaux, M.-P., Anceaux, F., Popieul, J.-C.
Proceedings of the IEEE Intelligent Vehicles Symposium, 2003, pp. 522- 527.
[Vazquez, 2005] Árboles de clasificación: una metodología para el análisis de crisis bancarias.
María José Vázquez Cueto.
Reporte técnico, Departamento de Economía Aplicada, Universidad de Sevilla, 2005.
[Vázquez. 1996] Segmentación de Imágenes en grafos de contorno.
Fernando Vázquez Núñez.
Tesis Doctoral del Departamento de IS y A, Universidad de Vigo, España, 1996, ISBN - 84-8158-051-1.
[Wahlstrom, 2003] Vision-based methods for driver monitoring.
Eric Wahlstrom, Osama Masoud, Nikos Papanikolopoulos.
IEEE 6th International Conference on Intelligent Transportation S., pp. 903-908, China, Oct. 2003.
[Watta, 2002] Improving Driver Pose Estimation.
Watta, P., Yulin Hou, Lakshmanan, S., Natarajan, N.
Proceedings of the IEEE Intelligent Vehicle Symposium, 2002, Vol. 2, pp. 310- 315.
[Werbos, 1974] Beyond Regression: New tools for prediction and analysis in the behavior sciences.
Werbos, P.
Ph.D. thesis, Cambridge, MA: Harvard U. Committee on Applied Mathematics, 1974.
[Witten, 2000] Data Mining: Practical Machine Learning Tools and Techniques with JAVA Implementations.
Ian H. Witten, Eibe Frank.
Morgan Kaufmann Publishers, USA, 2000. ISBN 1-55860-552-5.
146 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 147
Referencias en línea
[Alonso, 2006] Fundamentos de Ingeniería de Conocimiento.
Carlos J. Alonso González. http://www.infor.uva.es/~calonso/IngenieriaConocimientoCommonKADS/CK1FundamentosIC.pdf (Rev. Jul. 2009)
[Arikah, 2006] Sistema Experto
Enciclopedia Arikah, Historia, Geografía y Biografía, Septiembre 2006. http://www.arikah.net/enciclopedia-espanola/Sistemas_Expertos (Rev. Jul. 2009)
[CABINTEC, 2008] Cabina inteligente para transporte por carretera.
Página web oficial del proyecto cabintec. http://www.cabintec.net/ (Rev. May. 2009)
[Conselleria, 2004] Plan de Seguridad Vial 2003 – 2004.
Consellería de Infraestructuras y Transporte de Generalitat, Valencia, 2003. http://www.cit.gva.es/cast/carreteras/seguridad-vial-car/plan-svial-03-04-car/plan-seg-vial-car/ (Rev. May. 2009)
[Echegoyen, 2000] Diccionario de psicología científica y filosófica.
Javier Echegoyen Olleta. http://www.e-torredebabel.com/Psicologia/ (Rev. Jun. 2009)
[eSafety, 2002] Final Report of the eSafety Working Group on Road Safety.
European Comission.
Noviembre, 2002. http://ec.europa.eu/information_society/activities/esafety/index_en.htm (Rev. Jun. 2009)
[Fernández, 2006] Conducir con cabeza.
Carolina Fernández.
Revista Fusión, Julio, 2006. http://www.revistafusion.com/2006/julio/temac154.htm (Rev. Mar. 2009)
[Microsoft, 2005] Introducción a los sistemas de archivos FAT, HPFS y NTFS.
Microsoft – Ayuda y Soporte, Artículo 100108. http://support.microsoft.com/kb/100108/es (Rev. Jun. 2009)
[Morales, 2009] Aprendizaje Computacional.
Eduardo Morales, Jesús González, Instituto Nacional de Astrofísica, Óptica y Electrónica, 2009 http://ccc.inaoep.mx/~emorales/Cursos/NvoAprend/node17.html (Rev. Jul. 2009)
[RACC, 2006] Las distracciones en la conducción.
Fundación RACC, Instituto de Tráfico y Seguridad Vial de la U. de Valencia, 2006. http://www.racc.es/index.racc/mod.actualidadHome/mem.FEst/relestudio.2164/relcategoria.92/chk.9c1e668166
123b06f048b39826fe4b72.html (Rev. Jun. 2009)
[UPM, 2007] Aprendizaje Automático.
Descripción de la asignatura, Depto. de IA, Universidad Politécnica de Madrid, 2007.
http://www.dia.fi.upm.es/licenciatura/asignaturas96/aprendizaje_automatico.htm (Rev. Jun. 2009)
148 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 149
Anexo A
Encuestas realizadas a los
expertos en seguridad vial
después del uso de la
herramienta CoPiloto Virtual
en los experimentos de
adquisición del conocimiento
150 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 151
152 Centro Nacional de Investigación y Desarrollo Tecnológico, Departamento de Ciencias Computacionales.
Agosto, 2009 Ing. Oscar G. Sánchez Siordia
Modelado del Comportamiento de Conducción de Vehículos de Transporte y/o Carga Aplicando RNA y VA 153
Top Related