Recibido,28/08/2011 Aceptado,29/12/2011 ARTCULO ORIGINAL
Sistema de visin artificial para la deteccin de somnolencia de
conductores, basado en el comportamiento ocular Artificial vision system for the detection of drivers' drowsiness, based on the ocular behavior l Jess E. Espinola Gonzales.', l Maximiliano E. Ass Lpez.', Vladimir G. Rodrguez Sabino.' . RESUMEN El cansancio en los conductores de vehculos, que muchas veces se manifiesta en somnolencia, es la causa de muchos accidentes. En algunos pases el ndice de accidentes ocasionados por esta causa alcanza hasta un 35%. En el presente trabajo se presenta un sistema de visin artificial capaz de detectar el estado de sonmolencia. El proceso consiste en la obtencin de imgenes a travs de una cmara de video; estas imgenes son procesadas mediante un algoritmo que se ofrece en este trabajo; como resultado se tiene una respuesta por parte del sistema que ndica si el conductor tiene los ojos cerrados o abiertos. Para lograr los objetivos de este trabajo se ha empleado prncipahnente el Software Matlab, la herramienta de modelado UML y la metodologa RUP. Palabras clave: Visin Artificial, procesamiento de imgenes digitales, deteccin de cerrado y abierto. ABSTRACT The wearness n \he drivers ofvehicles, often is demonstrated in drowsness, is \he reason of many accidents. In sorne countries the ndex of accidents caused by this reason reaches up to 35 %. In \his work a artificial vision system capable of detectng the condition of drowsiness is offered. The process consists of the obtaning image across a video camera, these images are processed by means of an algori\hm offered in this work; as a result the system offers a response that ndicates if the driver has the closed or opened eyes. To achieve \he objectives of\his work \he Matlab software, UML modeling tool and the RUP methodology has beenused. Key words : A ..rt1ficial Vision, digital image processing, detect10n of open and closed eyes. 1 Facultad de Ciencias, Universidad Nacional Santiago Antnez de Mayolo . Le. en Matemtica. Rev. Aporte Santiaguino 2011; 4{2): 145-151. ISSN 2070-836X 145 Sistema de visin artificial para la deteccin de somnolencia Espinola J. INTRODUCCIN El indice de accidentes. que tienen como causa la somnolencia de los conductores de vehculos, es bastante alto. En algunos pases se ha llegado a reportar hasta un 35% de las causas.(BranzanA., et al.,2(08) La somnolencia produce la disminucin de la capacidad de vigilia afectando negativamente a los la capacidad de percepcin. :econoctmtento y control del vehculo, y a la vez, mcrcmcntando la probabilidad de sufrir algn accidente o un sobresalto en la carretera. (Ji Q. and YangX.,2002). Una de las formas de manifestacin de la somnolencia es a travs del comportamiento ocular el cual ha sido relaconado con el nivel de alerta d; los individuos en conductores de vehculos caracterizados y cuantificados con variables: frecuencia de parpadeos. duracin del cierre de prpados y el porcentaje de ojos cerrados en el tiempo (Hamada T., ef al ., 2003). Actualmente, los fabricantes de automviles estn incorpor-ando elementos de alta tecnologla en sus modelos con la fmalidad de aumentar la seguridad. Sin embargo, esto incrementa su costo y resultan ser para la mayora de la poblacin., especIalmente en nuestro pas. P.or esta razn, existe la necesidad de implementar sIstemas de visin artificial que incorporen tcnicas apropiadas para. detectar la somnolencia de conductores de vehculos, para de esta manera m.i.o.imizar las probabilidades de que ocurra llll accidente. El objetivo del preslmte trabajo ha sido el estudio y desarrollo de una plataforma tecnolgica basada en visin artificial que monitorice el comportamiento de los parpadeos de modo que pueda detectarse estados dc baja alerta (somnolencia), en tiempo diferido y tiempo real. Con la adecuada toma de imAgenes de los ojos del Clnducror y la creacin dc algoritmos matemticos en el comportamiento ocular, as como 1Dlplementacin del software, penniti la creacin de llll sistema de visin artificial que detecte el estado de somnol.encia del conductor. El proceso consiste en la obtencin., mediante una cmara de video, de imgenes digitales de la zona de ojos del. conductor. Jo cual es procesado por el sistema, usando el algoritmo desarrollado en esta investigacin. Como respuesta, el sistema identifica losojos cerrados y emite una ahuma. 146 RI!v. Aportl! StlrltlrJ[jlJloo 2011. 4(2). 14 5-151. ISSN 2070-836X MATERIALESYMTODOS Seleccin de1 Hardware Para este proyecto, por rozones econmicas, se eligi una Webcam. Las caractersticas ms relevantes de esta cmara se enumeran a continuacin: Marca: Micronics ;Modelo: Voyager- MIC W313 CARACTERlSTlCAS: Captura de Imagen y Video; Hasta 5 Mpixels 2560x2048( lnlClpolado ) Interface: USB 2 Formato de Video: 24 BIT RGB Rango de Foco: 3 cm hasta el inflnito. CMOS de alta resolucin. Platafonna: Notebooks o pe, Compatible con todos Jos Windows. Seleccin del Software MATLAB, Laboratorio de Matrices. es un lenguaje de alto nivel desarrollado por Math Woru cuyas funciones estIin optimizadas para el uso de matrices. Gracias a la diversidad de sus librerlas aplicables a diversos. campos del conocimiento, este programa es amphamente utilizado en la educacin y en la industria. Su elemento bsico de trabajo son las matrices. El permite. realizar de un modo rpido la resolUCin numrica de problemas en un tiempo mucho menar que si se resolvieran con lenguajes de program.a.ci60 tradicionales como Fortran Basic o C. ' MATLAB permite la implementacin de cdigo de fonna ms sencilla y amigable que otros lenguajes a un conjunto amplio de funCiones especlah zadas denominadas T oolbox. Estos Toolboxes cubren en la actualidad prcticamente casi todas las reas prindpalcs en el mundo de la ingeniera y la simulacin. destacando entre eU,os los ,toolooxes de adquisicin y ungenes y el Matlab Guide que pernlltn reahzar nuestro programa en ambiente VISUal. El Toolbox de adquisicin de imgenes es una coleccin de funciones que sirven, entre otn!s cosas para adquirir lmgenes de diversos (desde frdIDe grabbers profesionales hasta USB webcarns), para. visualizar "ideos en vivo. para la uisicin de imgenes mediante triggers, para Importar datos hacia el entorno de trabajo de MATLAB, etc, En otras palabras, cs la herramicnta que nos permitir realizar la aplicacin en tiempo reaL Sistema de visin artificial para la deteccin de somnolencia Espinola J. El Toolbox de Procesamiento de Imgenes proporciona a MATLAB un conjunto de funciones que amplia las capacidades del producto para realizar desarrollo de aplicaciones y de nuevos algoritmos en el campo del proceso y anlisis de irngenes. El entorno matemtico y de creacin de MATLAB cs ideal para el procesado de imgenes, ya que estas imgenes son, al fin Y al cabo, matrices. Este toolbox incorpora funciones para: Diseilo de filtros. Mejora y retocado de imgenes. .Anlisis y estadstica de imgenes. Operaciones morfolgicas, geomtricas y de color. Transformaciones 2D, etc. Modelado UML. El paradigma orientado a objetos enfatiza la creacin de clases que encapsulan tanto los datos, como los algoritmos que se utilizan para manejar los datos. S se disean y desarrollan adecuadamente las clases orientadas aobjetos, estas pueden reutilizarse en diferentes aplicaciones y arquitecturas de sistemas basados en computadoras. A finales de la dcada de 1990, Grady Booch, James Rambaugh e Ivar Jacobson colaboraron para combinar y recopilar las mejores caractersticas de sus mtodos, adoptando los siguientes objetivos: Representar sistemas completos, en lugar de solamente la parte de software, usando conceptos orientados a objetos. Estableceruna relacin exp Beita entre conceptos y cdigo ejecutable. Crear un lenguaje de modelado que pudiera ser usado por hwnanos y mquinas. El resultado fue un mtodo unificado, denominado UML (Unificd Modc1ing Language, o Lenguaje de Modelado Unificado), que con bastante aceptacin y xito se ha empleado por nmero importante de desarrolladores de software para las labores de anlisis y diseo de sistemas orientados a objetos. UML presenta las ventajas de poder utilizarse como un lenguaje estndar, principalmente grfico, para visualizar, especificar, construir y documentar los productos de un sistema de software. Se puede emplear con todos los procesos, a lo largo del ciclo de vida de desarrollo y a travs de diferentes tecnologas de implementacin. Proceso de desarrollo Aunque UML es bastante independiente del proceso de desarrollo que se siga, los mismos creadores de UI\1L han propuesto su propia metodologa de desarrollo, denominada el Proceso Unificado de Desarrollo. El Proceso Unificado est basado en componentes, lo cual quiere decir que el sistema software en construccin est formado por componentes software interconectados a travs de interfaces bien definidas. Adems, el Proceso Unificado utilza el UML para expresar grficamente todos los esquemas de un sistema software. Pero, realmente, los aspectos que definen este Proceso Unificado son tres: es iterativo e incremental, dirigido por casos de uso y centrado en la arquitectura: Dirigido por casos de uso: Basndose en los casos de uso, los desarrolladores crean una serie de modelos de discilo e implementacin que los llevan a cabo. Adems, estos modelos se validan para que sean confonnes a los casos de uso. Finalmente, los casos de uso tambin sirven para realizar las pruebas sobre los componentes desarrollados. Centrado en la arquitectura: En la arquitectura de la construccin, antes de construir un edificio este se contempla desde varios puntos de vista: estructura, conducciones elctricas, fontanera, etc. Cada uno de estos aspectos est representado por un grfico con su notacin correspondiente. Siguiendo este ej emplo, el concepto de arquitectura software incluye los aspectos estticos y dinmicos ms significativos del sistema, Iterativo e incremental: Todo sistema informtico complejo supone un gran esfuerzo que puede durar desde varios meses hasta aos. Por 10 tanto, lo ms prctico es dividir un proyecto en varias fases. Actualmente se suele hablar de ciclos de vida en los que se realizan varios recorridos portodas las fases. Cada recorrido por las fases se denomina iteracin en el proyecto en la que se realizan varios tipos de trabajo (denominados flujos), Adems, cada iteracin parte de la anterior incrementando o revisando la funcionalidad implementada. Se suele denominar proceso. RESULTADOS Se ha realizado pruebas tanto en tiempo real como en tiempo diferido en condiciones ptimas de luz, es deeir con una buena iluminacin; y una base de Re\( Aparte Santiaguino 2011; 4(2): 145-151. ISSN 2070-836X 147 Sistema de visin artificial para la deteccin de somnolencia Espinola J. datos de 30 fotos de individuos con ojos cerrados y 30 con ojos abiertos. Estos son los resultados: Error relaiivo Error Porcentual Oj os abiert os 0. 10 10% O'os cerrados 0.067 6. 7% Algoritmo de Deteccin de Ojol abiertol o Cerrados En la figura 1, se encuentra un diagrama de flujo bsico de las funciones principales del sistema. ( I NI C I O '" / L ECTURA o / CAPTURA D E LA IMAG EN PREPRc:.C E S AIVIIENTc:. SEC3I'V1 E N 'T'ACI O N SELECCI ON D E O BJET1 DE AREPto. NlA.X11VI ....... C A L C ULO D E L C I RCULO V S U C ENTR O A L C3C>RI TI'VI C> DE C L/\.S I FI C A C IN E NTRE OJOS ABIERTOS V C E RRAD O S N =
S . AL.A.FilI'Vl ....... ALER.TAAAL , ...... o . ......... , o u <> Figura l . Organigrama Bsico del Sistema 148 Ikv. Aporte SOntiaguino 2011: 4{2: 145 151. ISSN 20708l6X Lectora O captura de lBS imgenes Para poder obtener la imagen capturada por la cmara es necesario contar con un programa (driver) que acceda los datos (imagen) desde la tarjeta de digitalizacin de imgenes. Sin embargo, el driver viene ya con la compra de la taIjeta y afortunadamente en Matlab ya existe un programa, el cual se enlaza al driver de la tarjeta de imagen que proporciona el proveedor de la tarjeta de imgenes, de tal manera que el objetivo inicial se centr en interpretar dicho programa y obtener la imagen comounamatriz. En caso de tiempo diferido se lee el archivo ya almacenadas las imgenes para poder trabajar con ellas. En caso de tiempo real se captura la imagen de una cmara webcam. Para realizar estos procesos debemos utilizar la clase Imagen y su mtodo buscarImagen. Pre-procesamiento Inicialmente la imagen puede estar degradada para nuestros objetivos, debido a causas aleatorias en los procesos de captacin. transmisin y digitalizacin de la imagen, as como de iluminacin. Por ello, en esta fase se pretende eliminar estas distorsiones o mejorar las caractersticas de la imagen original para su posterior tratamiento. Para la elaboracin de este proyecto se analiz una serie de imgenes digitaJes, a las cuales debfan aplicarse diversas tcnicas de procesamiento de imagen yver cules de ellas serian implementadas. A continuacin se muestran los pasos realizados en la etapa del preprocesamiento: Ecualizacin del Histograma Incremento de contraste Segmentacln de Imagen En este proceso se divide la imagen leida o capturada en objetos que ser de nuestro inters; en este caso el objeto a identificar es el ojo, las curvaturas que presenta, para 10 cual utilizaremos la clase Segmentacin y el mtodo de segmentacin de deteccin de borde. Determl.aclD del objeto de rea mDma Una vez segmentadas todos los objetos de una imagen, utilizaremos la clase Descripcin para calcular la circunferencia de rea mxima y su centro. Es necesario obtener el objeto de rea mxima y desechar el resto ya que esto nos permitir clasificar entre ojos abiertos y cerrados. Si se da la condicin de ojos abiertos, dicha rea ser mayor que el caso de ojos cerrados. Sistema de visin artificial para la deteccin de somnolencia Espinola J. Algoritmo de clasifieacl6n entre ojos abiertos y cerrados (Dirett16n de curvatura del objeto de rea mDma) Analizando las imgenes (Figura 2) podemns notar que en ojos abiertos,las curvaturas de los ojos estn hacia abajo (el centroide estarla dentro o bajo del ojo), mientras que en ojos cerrados las curvaturas de los ojos estn hacia arriba (el centroide estarla arriba del ojo). En las imgenes de la figura 2 se ha hecho una deteccin de bordes y utilizando los parmetros adecuados en las funciones analizadas anteriormente encontramos que es Dllly evidente Y claro que cuando se tiene ojos cerrados la curvatura est hacia arriba y con ojos abiertos sta se encuentra hacia abajo. Por tanto hemos decidido trabajar con este criterio para determinar si los ojos estn abiertos o cerrados. a) Imagen de todo el rostro con ojos abiertos y cerrados. b) Imagen deojosabiertos e) Imagen deOjos cerrados Fjgura 2. Direccin de curvatura de] objeto de rea mxima Toma de decisin entre ojos abiertos o cerrados Una vez obtenido el croulo es necesario determinar si esta imagen se encuentra con ojos abiertos o cerrados. Para eso utilizaremos el criterio mencionado anteriormente: si la curvatura es hacia abajo los ojos se encuentran abiertos; caso contrario si sta se encuentra hacia arriba los ojos estn cerrados. Funcionamiento de los algoritmos Pantalla principal del sistema de visin artiIieial En la figura 3 encontramos la pantalla principal, la cual nos dar las alternativas que tiene el programa, como son las de pre procesamiento, segmentacin, representacin y descripcin y el reconocimiento donde estn las opciones de deteccin de ojos cerrados o abiertos en tiempo Figura 3. Interface principal del sistema de visin artificial En condiciones normales de luz se muestra una persona tanto con ojos abiertos como con ojos cerrados, as[ como los resultados obtenidos por los algoritmos implementados. Deteccin de Ojos abiertos o cerrados en tiempo diferido En las figuras 3 Y 4 mostramos las pantallas de deteccin de ojos abiertos y cerrados en tiempo diferido,lo cual nos pennitir seleccionar y trabajar solo con archivos almacenados en la computadora. Este programa consta de fotos a1macenadas previamente, las cuales podemos seleccionar para surespectivo anlisis. Figma 4. pruebadelsistemaconojosabiertos Re\( Aporte Santiaguino 2011; 4(2): 145-151. ISSN 2070-836X 149 Sistema de visin artificial para la deteccin de somnolencia Espinola J.
- - FiguraS. Pru.ebadel sistemaconojo8 cemu:Ios Pantalla de deteccl6n de ojos abiertos o cerrados en tiempo real En la figura 5 tenemos la pantalla para la deteccin de ojos abiertos o cerrados en tiempo real. Figura 6. Interface del sistema para procesamiento en tiempo real DISCUSION Los puntos que analizaremos son los siguientes: lDIIuenciad.e1 pre procesamiento La idea principal del pre procesamiento es mejorar las imgenes para poderrealizarun mejor anlisis de las mismas. Las ideas principales que ponemos a discusin es si debOlllDs utilizar filtros y ecualizacin en las mismas. En nuestro proyecto no utJ.lizamos filtros, ya que el hecho de usarlos no provocaba gran diferencia en las imgenes, y a su vez no producfa grandes cambios al momento de procesarlas. La idea de usar o no filtros 150 Re\( Aporte Santiaguino 2011; 4(2),145-151. ISSN 2070-836X continuar en discusin si se desea ir mejorando ms detalladamente las imgenes y a su vez obtener resultados ms especificos, pero en nuestro caso no fue necesario utilizarlos. La ecualizacin fue reemplazada por el incremento de contraste, ya que este produca mejores resultados en las imgenes hacindolas mucho ms claras y convenientes para nuestro respectivo procesamiento. Claro que esta opinin puede variar dePendiendo del tipo de intensidad de luz que tengamos en los diferentes lugares que se realicen las pruebas. Pero para nuestro caso no fue necesaria la ecualizacin en las imgenes, porque en algunos casos era de gran ayuda, mientras que en otros perjudicaba el proceso de anlisis. Limitaciones Se han encontrado dos limitaciones principales en nuestro proyecto y son de gran inters como se muestran a continuacin:
Uso de lentes: En las limitaciones de nuestro proyecto encontramos que no se puede utilizar para personas que utilicen lentes o gafas de ya que esto produce errores en el momento de la clasificacin. Zona de corte fija: Una de las principa1cs limitaciones que se tiene en este proyecto es el recorte previo que hay que hacer. Las coordenadas de la zona recortada. son fijas y por tanto, para obtener una clasificacin correcta, el usuario deber ubicarse de modo que uno de sus ojos quede dentro del rea recortada pues de lo contrario, el algoritmo fallar. Este inconveniente se tendrla hasta encontrar la posicin exacta de donde se encuentra el sector del ojo. Podemos tambin concluir que esto no tendra, demasiadas dificultades para un conductor ya que este no tiene movimientos bruscos desde el asiento de conduccin. CONCLUSIONES l. Para determinar si los ojos estn abiertos o cerrados, es vlido usar el criterio de la curvatwadelojo. 2. El algoritmo desarrollado se basa en que si en dos o ms imgenes consecutivas del sujeto se verifica que el conductor est con ojos cerrados, y si esto se produce a intervalos cada vez ms frecuentes. Sistema de visin artificial para la deteccin de somnolencia Espinola J. 3. Una de las limitaciones que se tiene en el sistema es el hecho de que el anlisis se hace en una zona detenninada de la imagen, ya no funciona si la cabeza del conductor sale de la zona. 4. En ambientes con poca luz, se hace ne<:esaria una cmara devideo basada en infrarrojos. AGRADECIMIENTO A la Universidad Nacional Santiago Antnez de Mayolo; por el financiamiento del proyecto de investigacin. REFERENCIAS BIBLIOGRFICAS A. Branzan,B. Widsten, T. Wang,J. Lan, andJ. Mah. 2008. A computervision-based systemfor real-time detection of sleep anset in fatigued drivers. IEEE, Intellgent Verucles Symposum. 25-30. Q. Jj andX. Yang.2002. Real-time eye, gazeand.tace pose tracking for monitoring driver lIigilance. Elsevier Science Ltd., Real Time Imaging. 1(8) 357-377. T. Ramada, T. Ita, K. Adachi, T. Nakano and S. Yamamoto.2003. Detecting method for drivers' drowsiness applicable fo individual features, in Frac. Intelligent Transportation Systems, IEEE. 2(2)1405-1410. Correspondencia: Jess Espinola Gonzales espinolj@teleline.es Re\( Aparte Santiaguino 2011; 4(2): 145-151. ISSN 2070-836X 151