Video-Sensor distribuido
basado en CORBA para el
reconocimiento de caras
Francisco Martín Rico
Universidad Rey Juan Carlos, Móstoles, España
[email protected]
Antonio Guzmán Sacristán
Universidad Rey Juan Carlos, Móstoles, España
[email protected]
Enrique Cabello Pardos
Universidad Rey Juan Carlos, Móstoles, España
[email protected]
El gran auge que están experimentando las aplicaciones distribuidas se
fundamenta en la enorme flexibilidad que caracteriza su diseño. En el
presente trabajo se describe una aplicación distribuida para visión
artificial. En concreto, la implementación desarrollada se centra en el
reconocimiento de caras humanas. Debido a que la cara es una
característica única, es un buen método para discriminar a una persona
de otra. El método que empleamos es innovador en el sentido de que
permite un reconocimiento automático del sujeto, a la vez que está
orientado a usarse en un entorno distribuido mediante CORBA. Esto
aporta una poderosa herramienta a la hora de comunicar cada elemento
del sistema mediante llamadas a métodos de objetos remotos. El uso de
1
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
Software Libre para el desarrollo del sistema es otro factor que da mayor
libertad y flexibilidad a los desarrolladores.
1. Introducción
El trabajo que se muestra está enmarcado dentro del proyecto VISOR-BASE (Video
Sensor Object Request Broker open Architecture for distributed Services). Este
proyecto está financiado por la Unión Europea en su programa IST (Information
Societies Technology) en el contrato IST-1999-10808[VBWP]. El propósito de este
proyecto es el desarrollo de la arquitectura VISOR, basada en CORBA.
El objetivo
del proyecto es desarrollar una herramienta distribuida basada en estándares, para la
construcción de sistemas inteligentes de observación geográficamente dispersos,
relacionados con el uso de unidades de captura, almacenamiento y transmisión de
vídeo digital, con la posibilidad de integrar video-sensores especializados,
desarrollados por cualquier compañía.
Visión Computacional , que abarca tan amplios temas como pueden ser la
segmentación de objetos, reconocimiento de formas, filtros de imágenes, etc.
Intuitivamente se puede decir, al compararlo con la simple adquisición de imágenes, la
diferencia es el ver y el mirar. La visión trata de interpretar lo que hay en las imágenes.
La parte del proyecto del que la Universidad Rey Juan Carlos es responsable, tiene
como objetivo construir un sistema capaz de, a partir de una sola imagen y un PIN (
Código de Identificación Personal), verificar la identidad de la persona que aparece en
ella. Las aplicaciones de este trabajo son múltiples, aparte de la integración dentro del
sistema VISOR-BASE, como sistemas de seguridad en cajeros, archivos de personas y
control de acceso. Tanto para el desarrollo del software como de la documentación de
este trabajo se usa únicamente Software Libre.
Este trabajo se centra en el campo de la
2. CORBA(Common Object Request Broker
2
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
Architecture)
2.1. ¿Qué es CORBA?
CORBA define la infraestructura para la arquitectura OMA (Object Management
Arquitecture) de OMG(Object Management Group), especificando los estándares
necesarios para
la invocación de métodos sobre objetos en entornos heterogéneos.
Los entornos heterogéneos son aquellos en los que las arquitecturas que
constituyen el entorno pueden ser sistemas Microsoft Windows, máquinas Unix de
diferentes fabricantes (GNU/Linux entre otros) e inclusos sistemas como MacOS o
OS/2. Y es más, dentro de la heterogeneidad también se incluyen los sistemas
comunicaciones (protocolos de comunicación como TCP/IP, IPX ...) o los
lenguajes de programación utilizados en las diferentes arquitecturas.
de
CORBA define su propio modelo de objetos, basado en la definición de las
interfaces de los objetos mediante el lenguaje IDL.
De esta forma se logra una abstracción de la heterogeneidad que permite que
el uso de CORBA no sea nada complejo. CORBA sigue una metodología
y fácil de seguir.
concreta
CORBA ha logrado parte de su éxito a la clara separación entre la
los objetos y la implementación de los mismos. Las interfaces se
el lenguaje IDL, cuya principal característica es su alto
le separa de cualquier entorno de desarrollo
los objetos se puede utilizar cualquier
enlaces con el lenguaje IDL.
utilizar desde CORBA,
interfaz de
definen utilizando
nivel de abstracción, lo que
específico. Para la implementación de
lenguaje de programación que proporcione
Para que un lenguaje de programación se pueda
debe tener definida la forma de enlazarse con IDL.
De esta forma, y a partir de una especificación de las interfaces en IDL,
generan unos cabos (proxies) en el lenguaje elegido que permiten el acceso a
implementación de los objetos desde la arquitectura CORBA.
se
la
CORBA es un estándar creado con la idea de una distribución de
los sistemas
basada en objetos. Con CORBA se pretende definir una arquitectura
especifique cómo se crean los objetos y cómo se accede a sus funcionalidades.
que
2.2. Implementaciones de CORBA
A la hora de usar CORBA se encuentran varias opciones en la
implementación
3
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
a usar. Las principales implementaciones libres son TAO, ORBit y MICO.
de un estudio realizado por ELSAG, que es miembro del consorcio
elección fue la de usar la implementación de TAO. Conclusiones a las que llegaron:
Después
del proyecto, la
2.2.1. TAO
Ventajas:
• Gran cantidad de servicios.
• Buena arquitectura orientada a tiempo real.
• Limpia estructura C++.
• Alta frecuencia de transmisión de datos CORBA.
Inconvenientes:
• Gran tamaño de la librería estática ORB, a causa de ACE.
• Relativamente alta latencia de RPC.
2.2.2. ORBit
Ventajas:
• Relativamente simple.
Inconvenientes:
• Solo permite C, Construcciones basadas en estructuras y punteros, se necesitan tests
explícitos para excepciones.
• Baja frecuencia de transmisión de datos CORBA.
4
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
2.2.3. MICO
Ventajas:
• Compromiso entre estructura TAO C++ y la simplicidad de ORBit.
Inconvenientes:
• Relativamente alta latencia en RPC (como TAO).
• Baja frecuencia de transmisión de datos CORBA.
3. Arquitectura
3.1. Arquitectura global del sistema VISOR-BASE
La arquitectura del VISOR-BASE queda reflejada en la figura Figura 1. Existen partes
replicadas en el lado del cliente y del servidor por que el sistema es tan flexible que
permite que estén componentes en un lado o en otro según las necesidades de cada
momento. Este es, por ejemplo, el caso de los Media Sensors, que se puede elegir en
5
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
qué módulo captar, procesar, etc... según las necesidades de cada momento.
Figura 1. Arquitectura del sistema
6
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
Figura 2. Sensor Shell / Sensor Core
Asimismo, en la figura Figura 2 se muestra la integración de los vídeo-sensores. Lo que
se pretende con esta separación es que, aunque un desarrollador no tenga conocimientos
de CORBA, puede desarrollar sus herramientas de procesado de imágenes sin
preocuparse de la comunicación. Se pueden desarrollar varios Sensor Core que utilicen
una interfaz con el Sensor Shell sin preocuparse de cómo esté hecha la parte CORBA.
4. Arquitectura FRVS (Face Recognition Video
Sensor)
Es un módulo software que cumple con la arquitectura VISOR. Su función es verificar
7
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
la identidad de una persona en el contexto de un sistema de control de acceso. Este
video sensor es un subsistema dentro del sistema global de control de acceso.
Las entradas a este sistema son un PIN (Personal Information Number, que tendrá que
introducir el usuario del sistema, y la imagen captada del mismo (ver figuras Figura 3 y
Figura 4). El PIN será el índice por el que buscar en una base de datos que contienen
las características faciales del sujeto. Por otro lado el sistema extraerá características
faciales de la imagen tomada y las comparará con las almacenadas, dando un PCD
(Personal Confidence Degree), un número que indica el grado de similitud.
Figura 3. Arquitectura del FRVS
8
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
Figura 4. FRVS Core
Existen dos métodos internos para extraer las características faciales, que serán
detallados en el siguiente capítulo:
• Métodos globales. Principal Component Analysis (PCA).
• Métodos locales. Filtro de Gabor.
Una vez obtenida la información se usará una Red Neuronal tipo Multi-Layer
Perceptron Neuronal Network(MLP-NN) para el reconocimiento.
9
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
Figura 5. FRVS por dentro
10
Video-Sensor distribuido basado en CORBA para el reconocimiento de caras
El funcionamiento interno del módulo se puede apreciar la figura Figura 5. Se
introduce una imagen y un PIN, que son comunicados mediante un interfaz CORBA al
módulo. Por un lado, el PIN sirve de índice para buscar en una base de datos, que
extraerá las características faciales de la identidad propuesta por el usuario. Estas
características son comparadas con las que se extraen de la imagen introducida, ya sea
por PCA(Principal Component Analysis) o por Gabor y se da un porcentaje de acierto,
que será lo que se devuelva a través del interfaz CORBA.
4.1. Detección de la cara
El objetivo de este modulo inicial es encontrar y encuadrar la cara (o las posibles caras)
que aparecen en la imagen. El método desarrollado barre la imagen buscando aquellos
pixels con una textura correspondiente a la de la piel, determinando cuales de ellos
constituyen una hipótesis aceptable de rostro.
4.2. Método PCA
La idea prin
Comentarios de: Video-Sensor distribuido basado en CORBA para el reconocimiento de caras (0)
No hay comentarios