You are on page 1of 7

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

You might also like