Investigación / Desarrollo de uso de la Raspberry Pi para aplicaciones biometricas de identificación y seguridad

May 22, 2017 | Autor: M. Perilla Benítez | Categoría: System Identification, Facial Recognition, Security, Internet of Things (IoT), Raspberry Pi
Share Embed


Descripción

IEEE TRANSACTIONS ON JOURNAL NAME, MANUSCRIPT ID

1

Investigación / Desarrollo de uso de la Raspberry Pi para aplicaciones biometricas de identificación y seguridad Misael Fernando Perilla Benítez, Universidad de la Rioja Abstract— Este documento trata sobre los resultados obtenidos durante el trabajo de fín de master (TFM), titulado “Desarrollo/Investigación de uso de la Raspberry Pi para aplicaciones biométricas de identificación y seguridad”, En el cual se planteó el estudio de una variedad de algoritmos, que son frecuentemente utilizados para la detección de rostros y/o el reconocimiento facial, comprobando su rendimiento en un dispositivo de computo con recursos limitados y tamaño reducido como lo es la Raspberry Pi, esto con el ánimo de determinar cuáles son los resultados de cada uno, bajo una serie de circunstancias prestablecidas de operación y el rendimiento que cada uno de estos algoritmos presenta al ser ejecutado, su efectividad, consumo y otros factores relevantes, para finalmente determinar cual de estos es el más eficiente, frente al desarrollo de soluciones informáticas, que cubran las necesidades que se presentan con el auge en la sociedad moderna, sobre los sistemas de vigilancia y seguridad en espacios cerrados como hogares, oficinas, centros de investigación y desarrollo, solo por mencionar algunos. Para el Proyecto se implementaron los diferentes algorimos en lenguaje Python 3.5, especialmente por las ventajas que este ofrece para ser ejecutado en este tipo de placa, y la abundante cantidad de librerías disponibles, ejecutados sobre el Sistema operativo Raspbian versión Jessie (4.4 con Pixel). Index Terms— algoritmos de reconocimento facial, biometría, raspberry, seguridad.

——————————  ——————————

1 INTRODUCCIÓN

E

N la actualidad, el uso de sistemas electrónicos para el apoyo a la seguridad y vigilancia, como cámaras de vigilancia, controles de acceso que implementan lectores biométricos, o el uso de tecnologías basadas en la lectura de tarjetas u otros dispositivos equivalentes de identificación, solo port mensionar a algunos, ha repercutido en las organizaciones y entidades gubernamentales, aumentando el presupuesto que estas deben aplicar en la instalación y mantenimiento de estos sistemas, la cantidad y calidad del personal de seguridad que debe ser capacitado en el uso efectivo de esta tecnología, así como la manipulación de los datos e información suministrada por dichos dispositivos y sistemas, los cuales en múltiples casos, puede que no cumplan con todas las necesidades que el usuario final desea, junto con las limitaciones a nivel tecnológico (hardware y software) que se pueden presentar. Existe una tendencia en los sistemas de información, que tiene como base la automatización de procesos, estos avances van correlacionados con el uso de la inteligencia artificial y sus diferentes ramificaciones, trabajando conjuntamente en cubrir la necesidad de utilizar dispositivos electrónicos, que sean cada vez más robustos y a su vez tengan un menor consumo de recursos, uno de los dispositivos que actualmente tiene más implementaciones para cubrir estas necesidades específicas es la placa Raspberry Pi, gracias a su tamaño compacto y la gran compatibili-

dad que ofrece con muchos otros dispositivos de hardware (lectores biométricos entre ellos), conectividad a internet y uso de un sistema operativo estable y de fácil acceso, hacen de esta, una plataforma idónea para el desarrollo de software de seguridad, ofreciendo así la potencia de un PC en la palma de la mano, a un costo reducido. Una de las mayores tendencias en la automatización de las seguridad, está liderada por software de reconocimiento personal mediante biometría, como el reconocimiento facial, el cual alimentado por una base de datos, y funcionando con un núcleo del sistema basado en un algoritmo específico, dependiendo del tipo de entrada de datos que tenga este sistema, el cual puede ser en tiempo real (tomando fotografías o video), o de tipo estático (utilizando imágenes previamente capturadas), se desarrolla un software que esté en la capacidad de reconocer las diferentes características de un rostro humano, y asociar estos rasgos a los que están previamente contenidos en la base de datos, determinando así, la identidad de la persona, esto sin intervención humana (o por lo menos una intervensíon directa sobre el proceso de identificación), muchos de estos sistemas son usados para la identificación de personal laboral en la entrada de un edificio, búsqueda de criminales por parte de fuerzas de la ley, o en procesos de investigaciones judiciales cuando se busca comprobar la inocencia, culpabilidad y/o participación del investigado en un hecho delictivo. Se han realizado variados desarrollos e investigaciones ligadas a la biometría, pero aún no existe una investiga————————————————  M .Perilla. Ingeniero de Sistemas - Universidad de Cundinamarca, Especia- ción que profundice sobre cuál de los múltiples algoritlista en Docencia Universitaria - Universidad Cooperativa de Colombia, mos y tecnologías existentes, ofrecen un mayor y/o mejor Master en Seguridad Informática - Universidad de la Rioja. E-mail: midesempeño en esta clase de plataformas electrónicas, de [email protected].

xxxx-xxxx/0x/$xx.00 © 200x IEEE

Published by the IEEE Computer Society

2

funcionamiento limitado y reducido tamaño, que poseen claras diferencias en su poder de procesamiento y almacenamiento al ser comparados con equipos de cómputo actuales, con resultados que sean utilizados para futuros desarrollos de software y hardware orientado a estos apartados de la seguridad basada en sensores biométricos montados en Raspberry Pi.

2 MARCO TEÓRICO 2.1 Estado del arte Existen múltiples proyectos relacionados con la implementación de Rasbperry Pi y el uso de algoritmos que miden variados patrones y/o características personales (datos biométricos), para identificar la identidad de personas, esto con diferentes propósitos, no exclusivamente ligados a la seguridad, en la Internet se pueden encontrar variados proyectos y resultados de proyectos donde se utilizan el reconocimiento facial, por voz, y por huellas dactilares, sin embargo muchos de estos proyectos en muchos casos fueron desarrollados sin ánimos de obtener información de carácter científico, por lo cual documentación se encuentra limitada, los siguientes son proyectos que representan un avance en el desarrollo de aplicaciones de seguridad usando uno o varios aspectos de los que cubre esta investigación. Uno de los proyectos de reconocimiento personal con resultados relevantes a este proyecto, es el desarrollo de un sistema de reconocimiento de patrones de las venas subcutáneas del dorso -parte superior - en la palma de la mano de una persona en tiempo real usando una clasificación basada en representación colaborativa, desarrollado por Joardar, Chatterjee, & Rakshit [1], el propósito de este proyecto fue el desarrollo de un sistema en tiempo real para el reconocimiento de una persona usando el patrón de las venas sanguíneas subcutáneas de la parte dorsal en la palma de la mano humana (Palm Dorsa Subcutaneous Vein Pattern - PDSVP), y verificar la eficacia de este patrón como una característica física biométrica confiable y medible, el sistema ha sido desarrollado sobre una placa de computo considerada como de bajo costo, específicamente la Raspberry Pi Model B+, en conjunto con una cámara sensible a emisiones infrarrojas (Raspberry Pi NoIR camera), y otros componentes electrónicos, la cámara puede identificar la radiación infrarroja cercana (Near Infrared Radiations - NIR), y usando estos datos apropiadamente, se logra obtener el patrón de la estructura vascular presente en la capa subcutánea de la piel en la palma de la mano humana, para posteriormente usar esta información con propósitos de identificación personal. La cantidad de proyectos relacionados directamente con el reconocimiento de personas mediante biometría utilizando casi exclusivamente Raspberry Pi es más limitada, uno de los proyectos que se destaca, es el desarrollo de un sistema de reconocimiento de los patrones presentes en las huellas dactilares y del pie en recién nacidos, utilizando para la extracción Raspberry Pi, desarrollado por Sivaranjani & Sumathi [2], en el cual se demuestra la implementación de un sistema de extracción de huellas utilizando Raspberry Pi, controlado por una versión mo-

IEEE TRANSACTIONS ON JOURNAL NAME, MANUSCRIPT ID

dificada de Debian Linux optimizada para arquitectura ARM (Raspbian), y una serie de algoritmos requeridos para el reconocimiento de imágenes para la medición de los valores biométricos, mediante el uso de OpenCV-2.4.9 (una serie de librerías Open Source) implementada sobre CMake, g++, Makefile y el algoritmo de extracción “Minutiae” para las huellas dactilares, muchos de los algoritmos en ese proyecto, se encuentran basados en PCA, especialmente el usado para la planta de los pies (usando métodos propios de OpenCV), este proyecto guarda mucha relación con lo propuesto en la investigación, sin embargo no aborda el desgaste del sistema, así como la exixtencia de otros algoritmos que podría tener un desempeño mejor. En general se puede evidenciar que no se cuenta con un estudio que exponga y compare el consumo de recursos de computo que un algoritmo puede abarcar al ser ejecutado directamente sobre una Raspberry Pi 2 Modelo B+ (u otros modelos relacionados), para el reconocimiento biométrico mediante los rasgos faciales, así como tampoco se abordan temáticas como el rendimiento de varios algoritmos en este proceso, su eficiencia y/o eficacia al ser ejecutados directamente sobre un hardware de tipo ARM como la Raspberry, y una comparativa entre ellos, lo cual es el objetivo final de este trabajo.

2.2 Objetívos Objetivo General Realizar una investigación sobre los diferentes algoritmos de reconocimiento facial y su desempeño sobre la placa Raspberry Pi 2 B+. Objetivos Específicos  Verificar el estado del arte sobre desarrollos anteriores de proyectos de reconocimiento utilizando Raspberry Pi 2 B+.  Investigar sobre los diferentes algoritmos existentes para el reconocimiento facial.  Codificar aplicaciones compatibles con Raspberry Pi, basadas en los algoritmos de reconocimiento anteriormente recolectados.  Ejecutar las aplicaciones previamente desarrolladas en una Raspberry Pi 2 B+ y comprobar su correcto funcionamiento.  Realizar pruebas comparativas entre los diferentes aplicativos de reconocimiento facial en búsqueda de datos relevantes a estos, que permita determinar su rendimiento, eficiencia, eficacia y efectividad.  Evaluar los resultados de las pruebas, de los cuales poder generar conclusiones y/o recomendaciones.

3 METODOLOGÍA La metodología base de este proyecto es la investigación aplicada, este tipo de investigación también conocida como Investigación y Desarrollo (I+D), es el desarrollo tecnológico que se ocupa de la obtención, desarrollo de conocimiento y capacidades cuya meta es la solución de problemas prácticos con ayuda de la técnica, para ello se sirve de los resultados de la investigación de las ciencias

MISAEL PERILLA.: INVESTIGACIÓN / DESARROLLO DE USO DE LA RASPBERRY PI PARA APLICACIONES BIOMETRICAS DE IDENTIFICACIÓN Y SEGURIDAD

básicas, del conocimiento orientado a la aplicación y de experiencias prácticas. El objetivo es la creación y/o el cuidado de potenciales prestaciones tecnológicas, o bien de competencia central tecnológica que permiten aplicaciones prácticas directas. El término del desarrollo tecnológico es similar al término investigación de ciencias aplicadas en las ciencias naturales e ingenierías. Usando este contexto, se pretende iniciar la investigación con una búsqueda en medios digitales e impresos de confianza, sobre los diferentes algoritmos que se utilizan en el desarrollo de aplicaciones de reconocimiento facial, consultando diferentes medios de carácter investigativo como IEEE Xplore, Google Scholar, entre otros que se encuentran disponibles en la Internet, para obtener los algoritmos y en la medida de lo posible, código funcional de cada uno de estos algoritmos, en el caso de que los códigos no puedan ser ejecutados por motivos del lenguaje o uso de librerías que ya no cuentan con soporte, se realizarán las correcciones y/o adaptaciones necesarias para que este sea funcional. IMAGEN Posteriormente se configurará un micro computador Raspberry Pi 2 modelo B+, con todo el hardware y software requerido, para que los algoritmos puedan ser ejecutados y funcionen de manera correcta, realizando en este dispositivo todo el proceso del reconocimiento facial:

Una vez que se tiene la información y los algoritmos (código o pseudo-código) necesarios, se realizará la adaptación de estos a lenguaje Python, de manera que puedan ser implementados en el hardware de la Raspberry. A partir de lo anterior se procederá a realizar las pruebas correspondientes de rendimiento y resultados obtenidos de cada algoritmo, donde se evaluarán los datos obtenidos de cada uno de los métodos y técnicas de reconocimiento facial, para ser comparados entre sí y validar esta información para ser presentada, y que esta sirva como un estudio de factibilidad para futuros desarrollos. Finalmente, al tener los datos de rendimiento y de resultados, se realizará una comparativa de los datos obtenidos, como por ejemplo la tasa de falsos positivos de identificación (False Positive Identification Rate - FPIR), tasa de falsos negativos de identificación (False Negative Identification Rate - FNIR), tiempo de ejecución promedio, entre otros datos, para llegar a una serie de conclu-

siones que permitan y/o sirvan como apoyo a la hora de tomar decisiones sobre el uso de uno o varios algoritmos (dependiendo de los objetivos fijados y/o resultados esperados), en proyectos de reconocimiento facial sobre Raspberry Pi u otros dispositivos de capacidades similares. Este trabajo busca crear un estado del arte actualizado a las tendencias de la informática y las tecnologías de información y comunicación, donde los algoritmos desarrollados para el reconocimiento de personas mediante los patrones del rostro, queson ejecutados sobre dispositivos de rendimiento limitado o también llamados microcomputadores, donde ya se tenga una información relevante y que ayude a determinar cuáles son los algoritmos más recomendados según las necesidades del desarrollo, lo cual permitiría que proyectos posteriores ahorren tiempo y esfuerzo en la búsqueda de un algoritmo que cumpla con todos sus objetivos.

4 ALGORITMOS IMPLEMENTADOS 4.1 PCA (Principal Components Analysis) El algoritmo de reconocimiento PCA está basado en la técnica de análisis de componentes principales, el cual es un proceso mediante el cual la cantidad de datos que ingresan, son reducidos a una cantidad mucho menor, a los que se les llama componentes principales, en el caso de reconocimiento de caracteres, se emplea esta técnica para identificar patrones dentro de los datos obtenidos por las imágenes y luego representar los datos en una forma tal que sus semejanzas y diferencias puedan ser evidenciadas y comparadas, para así determinar la identidad de una persona [3]. 4.2 LDA (Linear Discriminant Analysis) El Análisis Discriminante Lineal es uno de los más usados como técnica de reducción de la dimensión de datos, en el pre-proceso para la clasificación de patrones y el aprendizaje de máquina (machine learning). El objetivo de esta técnica es proyectar una base de datos en un espacio dimensional, de mucho menos espacio con una buena clase de separabilidad en el orden de evitar el overfitting (sobreajuste o sobre-entrenamiento en un algoritmo de aprendizaje) y también reducir los costos computacionales [4]. El funcionamiento de LDA es muy parecido al de PCA, pero contrariamente a PCA que es un algoritmo “sin supervisión”, LDA si es “supervisado” y calcula las direcciones (discriminaciones lineales), que pueden representar los ejes que maximizan la separación entre múltiples clases. 4.3 ICA (Independent Component Analysis) El análisis de componentes independientes es una técnica estadística muy similar a PCA, usada para descomponer un complejo conjunto de datos en sub-partes independientes [5]. Un primer paso en los algoritmos ICA es “blanquear” (llamado también sphere o sphering) los datos, esto significa remover cualquier correlación entre los datos, ya que

3

4

estos datos son forzados a estar sin relacionar, después del “sphering”, los datos separados pueden ser encontrados por una transformación ortogonal de los datos blanqueados (esto es una rotación de la densidad conjunta). La rotación apropiada se busca mediante la maximización de las densidades marginales no-normalizadas (mostradas en los bordes del plano de densidad). Esto es causado por el hecho de que una mezcla lineal de variables independientes aleatorias, es necesariamente más Gaussiano que las variables originales, lo que implica que en ICA se deben restringir el uso de al menos una serie de datos de origen Gaussiano.

4.4 EBGM (Elastic Bunch Graph Matching) EBGM es un algoritmo usado para el reconocimiento de objetos o clases de objetos en una imagen, basado en una representación de grafos extraídos de otras imágenes. Este algoritmo ha sido especialmente utilizado en el reconocimiento y análisis de rostros, pero también para reconocer gestos y otras clases de objetos [6]. El funcionamiento de este algoritmo consta de 2 formas para ser implementado, la primera forma es para rostros en poses idénticas (lo más similares posible) y el de poses diferentes. 4.5 AAM (Active Appearance Models) Este algoritmo permite localizar puntos en las imágenes, para luego hacer uso de las restricciones de los modelos de figuras, para tratar la interpretación como un problema de optimización en el cual se pueden minimizar las diferencias entre una nueva imagen y una sintetizada por el modelo de apariencia [7]. 4.6 Metodos Kernel Esta clase o categoría de algoritmos (ya que son varios los que se consideran como Kernel) se basan en el teorema de Mercer, el cual es una representación de una función simétrica definida como positiva en un cuadrado, como la suma de una secuencia convergentede funciones producto, los cuales, al ser implementados, permiten conseguir versiones no lineales de los algoritmos lineales como pueden ser PCA, LDA e ICA. Para este proyecto se tomó el algoritmo Kernel PCA, el cual es descrito como un método para desarrollar una forma no lineal del Análisis de componentes principales, mediante el uso de funciones de operadores kernel, que hacer más eficiente el proceso de cómputo para PCA en espacios de grandes dimensiones [8], en el cual se presenta al calcular un producto punto de la forma (  (𝑥). (𝑦)) se usa una representación de Kernel de la forma 𝑘(𝑥,𝑦)=(  (𝑥) .(𝑦)), que permite calcular el valor del producto punto en F (que es un conjunto de características de un espacio dimensional de gran tamaño) sin tener que utilizar el mapa , lo cual disminuye los tiempos de ejecución y procesamiento. El propósito de estos algoritmos no lineales es reducir los inconvenientes que los algoritmos tradicionales poseen, disminuyendo el costo de cálculo computacional y haciéndolos menos heurísticos, además de establecer un control mejorado para el sobre-entrenamiento, el cual en

IEEE TRANSACTIONS ON JOURNAL NAME, MANUSCRIPT ID

muchos casos representa mayor consumo de recursos y mayores tiempos de entrenamiento de los algoritmos.

4.7 Trace Transform El Trace Transform (transformación de rastros), es una generalización de la transformación de Radon, se le suele considerar como una nueva herramienta para el procesamiento de imágenes, que puede ser utilizada para el reconocimiento de objetos por medio de transformaciones como la rotación, traslación y escalamiento, para producir la transformación se calcula un rastro de líneas funcionales a través de las líneas de una imagen [9]. La imagen es transformada en una nueva imagen con la trasformación de rastros, la cual es una función en 2-D dependiente de los parámetros (, ), diferentes transformaciones pueden ser producidas desde una imagen si se utilizando diferentes funciones de rastros, una de las ventajas que se encuentran es en este algoritmo es que posee una propiedad clave, y es que puede ser usado para construir características invariantes de la rotación, translación y escalado. 4.8 Viola-Jones El algoritmo de Viola - Jones es un algoritmo que funciona en paralelo, utilizando la CPU y GPU de un dispositivo, permitiendo un camino más rápido y eficiente para detectar un rostro en una imagen. Este se basa en las características tipo Haar y un clasificador en cascada AdaBoost, y se le considera el primer framework con capacidad de detección de rostros en tiempo real, por este motivo muchas de las aplicaciones de procesamiento de imágenes que implementar funciones de reconocimiento facial que requieren como entrada de datos un rostro, utilizan este algoritmo y se le considera como el método más común que se usa en detección de rostros [10]. Este algoritmo consta de tres pasos básicos, el primer paso es utilizar un clasificador tipo Haar para usarlo como un modelo a la hora de detectar rostros, luego se procese a entrenar el clasificador usando miles de imágenes positivas y negativas que permiten una detección de rostros mucho más eficiente durante su ejecución, finalmente una ventada es desplegada sobre la imagen, donde se muestra una versión escalada de la misma para demostrar los diferentes rostros detectados, su localización y tamaños. 4.9 Eigenfaces El algoritmo de Eigen se basa en el PCA para la reducción de la cantidad del espacio utilizado, esto con el objetivo de tener una cantidad de datos menor que sean más fácil de procesar, el método de Eigenfaces desarrolla el reconocimiento de rostros de la siguiente manera:  Proyectando todas las muestras en el sub-espacio PCA.  Proyectar la consulta de la imagen en el subespacio PCA.  Encontrar el vecino más cercano entre las imágenes de entrenamiento y la búsqueda realizada. Una vez que la reducción del espacio es efectuada, el siguiente paso involucra la generación de eigenfaces, la matriz de covarianza es evaluada desde la matriz de ima-

MISAEL PERILLA.: INVESTIGACIÓN / DESARROLLO DE USO DE LA RASPBERRY PI PARA APLICACIONES BIOMETRICAS DE IDENTIFICACIÓN Y SEGURIDAD

gen mediante el concatenado de filas y columnas, esta matriz de covarianza evalúa la cantidad respecto a sus señales vecinas, y se asume que el promedio es cero (indicando que la imagen está centrada) y la correlación es igual a la covarianza [11]. El siguiente paso es resolver la matriz de covarianza, la solución de esta matriz se alcanza mediante el uso de operaciones de matrices lineales básicos, los resultados obtenidos son referenciados como los valores propios (eigenvalues). Para cada valor propio, existe un vector propio (eigenvector). Estos vectores propios han sido normalizados, y cada valor propio genera un rostro, los vectores propios son ordenados desde el que contiene mayores valores a menores, el vector propio asociado con el valor más alto es el cual refleja la varianza más alta en la imagen.

5 PRUEBAS Se planearos pruebas de estrés sobre los diferentes algoritmos al ser ejecutados sobre el hardware de la Raspberry Pi 2 B+, con las cuales se pretende verificar los siguientes aspectos:       

Tasa de identificación positiva. Tasa de identificación negativa. Tasa de falsos positivos de identificación (False Positive Identification Rate - FPIR). Tasa de falsos negativos de identificación (False Negative Identification Rate - FNIR). Tiempo de ejecución promedio. Rendimiento de algoritmo sobre el hardware de la Raspberry Pi 2. Cantidad de Kilopixeles analizados por segundo (Kpps).

El proceso de evaluación para los diferentes algoritmos y su funcionamiento es el siguiente: Se tomó la base de datos de rostros de Yale A (The Yale Face Database A) [12], descargada desde el sitio web de la Universidad de Yale (http://vision.ucsd.edu/content/yaleface-database), la cual contiene 165 imágenes en formato GIF de 15 personas, de cada una de ellas hay 11 imágenes. Cada una de estas imágenes, se encuentran dispuestas en las siguientes configuraciones o expresiones faciales: orientado al centro, con anteojos, feliz, orientado a la izquierda, sin anteojos, normal, orientado a la derecha, somnoliento, sorprendido y haciendo un guiño. Existen otras bases de datos tanto de Yale (Extendida, B y B Extendida), como de otras entidades, otra de las más utilizadas es la de AT&T, pero estas sobrepasan en tamaño las necesidades de este proyecto, ya que están compuestas por un número mucho mayor de imágenes y con una resolución mayor, lo cual hace que el sub-espacio necesario sea muy amplio, a esto se suma que el tamaño que ocupa en el dispositivo de almacenamiento, podría ocasionar una reducción en la velocidad de funcionamiento de este. Una vez que se tiene el conjunto de imágenes, se toma cada uno de los aplicativos que funcionan en base a uno de los algoritmos y se ejecutan, validando una serie aleatoria de

15 imágenes (1 por persona), de manera aleatoria, se comprueban y almacenan los diferentes aspectos mencionados anteriormente, sobre el desempeño del algoritmo. Una vez que se han realizado pruebas sobre todos los algoritmos, se repite el proceso con otro conjunto de imágenes de la base de datos de Yale, hasta que se haya realizado las pruebas con la totalidad de la base de datos, cabe destacar que el tiempo de captura de imágenes y entrenamiento de cada algoritmo no será evaluado en este proyecto, puesto que esto depende de factores como el ambiente donde se tomó las imágenes, como la iluminación natural existente, la hora de la captura y la presencia de fuentes de iluminación artificiales, finalmente se procede a verificar y comparar los resultados obtenidos de cada algoritmo en los diferentes aspectos que se evaluaron, generando tablas comparativas.

6 RESULTADOS 6.1 Tasa de aciertos Los resultados obtenidos al completar las pruebas sobre cada algoritmo son los siguientes: ALGORITMO

TIEMPO (SEG)

RENDIMIENTO

ID POSITIVAS /TOTAL

FALSOS POSIT.

FALSOS NEGAT.

PCA

2,34

30%

165/165

0

0

LDA

2,56

35%

165/165

0

0

ICA

3,43

35%

164/165

0

1

EGBM

4

95%

163/165

0

0

AAM*

10

90%

165/165

0

0

KERNEL PCA TRACE TRANSFORM** VIOLA JONES EIGEN FACES***

2

40%

165/165

0

0

4,67

55%

165/165

0

0

2,74

30%

165/165

0

0

1

30%

154/165

2

0

El rendimiento de la Raspberry expuesto en la tabla, es el que el dispositivo muestra en su entorno gráfico (barra de tareas), donde el mismo sistema operativo indica los procesos que está ejecutando y el consumo de cada uno de ello, y el total acumulado, en este caso, se usa como referencia el acumulado (como se aprecia en la Ilustración 13), para tener claridad sobre el consumo que está ejerciendo el algoritmo al ser ejecutado, sobre la capacidad de procesamiento de la Raspberry, entre más alto el valor (comprendido entre 0 y 100), mayor es el gasto energético y el uso del procesador, un rendimiento del 36% significa que el procesador aún puede ejecutar más procesos de manera paralela al algoritmo de reconocimiento, por lo tanto sería posible tener otros servicios activos sin afectar el progreso y la velocidad de cálculo en el sistema de reconocimiento facial, por otra parte, un consumo cercano o igual al 100%, es un gasto excesivo a las capacidades de la placa Raspberry Pi, lo cual podría incluso comprometer el funcionamiento del sistema entero, y sumado a esto, se puede ver

5

6

IEEE TRANSACTIONS ON JOURNAL NAME, MANUSCRIPT ID

afectado el proceso de reconocimiento facial, lo cual podría incluso descartar el uso de un algoritmo que llegara a consumir tantos recursos físicos y energéticos.

Como se puede apreciar en la Tabla 2, los algoritmos con el mejor desempeño en ejecución son PCA y los derivaros de este mismo como lo son Eigenfaces y Kernel (que para este proyecto fue usado kPCA), con tiempos que se encuentran por debajo de 2.5 segundos, mientras que los algoritmos que funcionan mediante la identificación elástica de grafos y/o puntos de referencia sobre el rostro como AAM y EGBM no solo consumen más tiempo de ejecución, sino que además también exigen en mucha más medida al dispositivo, sin embargo se debe tener en cuenta que estos algoritmo utilizan una matemática que está diseñada mejor para la captura en video que para imágenes estáticas, y generan un número N de puntos de referencia y grafos, que demandan mayor potencia de cálculo y procesamiento. Las pruebas fueron aplicadas sobre una Raspberry Pi modelo B+, con solo 2 dispositivos conectados, el primero fue una cámara web USB marca Genius, el segundo fue un conector WiFi, el sistema operativo instalado (Raspbian) se actualizó a su última versión (Jessie con kernel 4.4), adicionalmente a esto, se tuvieron que instalar y actualizar las siguientes librerías:        

NumPy (python-numpy) SciPy (python-scipy) Sphinx (python sphinx) OpenCV 2.4.x (versión para Python) MatPlotLib (python-matplotlib) SymPy (python-sympy) Pandas (python-pandas) OpenGL Support (libgl1-mesa-dri)

Algo que es importante tener presente, es que el sistema operativo Rasbpian, instalado en el Raspberry Pi 2 B+ usado para este proyecto, no cuenta con soporte directo para la generación de gráficos basados en OpenGL, que son ampliamente usados por muchos de los algoritmos en la generación de imágenes, frames y muchas otras de las librerías usadas (incluyendo OpenCV), y no existe una actualización del sistema que habilite este soporte, es por esta razón que se debe instalar de manera manual la librería libgl1-mesadri cada vez que el sistema operativo se actualice ya sea de manera automática o mediante el comando sudo apt-get upgrade.

6.2 Rendimiento Los datos muestran que el algoritmo cuyo coste de maquina sobre tiempo de ejecución que resulta ser mucho más óptimo (eficiente) es el algoritmo Eigenfaces, el algoritmo más eficaz es PCA, el cual no solo detectó eficazmente todos los rostros sino que además lo hizo en un lapso de tiempo relativamente corto, pero debido a la existencia de

librerías como OpenCV, el algoritmo que resulta más fácil de implementar es Viola-Jones, el cual es levemente más tardado que los anteriormente mencionados, pero aun así sus resultados son muy positivos, de igual manera estos datos son relativos a las imágenes utilizadas en el desarrollo de este proyecto, esto no implica que los demás algoritmos no puedan ser usados en proyectos, como por ejemplo AAM, el cual posee un tiempo de ejecución considerablemente alto, pero este está más enfocado a la captura de datos en video de tiempo real, lo que permitiría que su uso estuviera más relacionado en el campo del análisis de personal que labora en una organización, y tener un control de entrada/salida, por tener un ejemplo.

KPPS 80,00 70,00 60,00 50,00 37,97 40,00 32,45 29,66 27,71 22,14 18,98 30,00 16,26 20,00 7,59 10,00 0,00

75,94

En el cuadro anterior, se encuentra la cantidad de Kilopixeles por segundo (Kpps) que son procesados por cada uno de los algoritmos sobre las imágenes de la base de datos, las cuales cuentan con 75,9375 Kp (Kilopixeles), donde como referencia se tiene que 1 Kp correspondiente a 1024 pixeles, o equivalente al tamaño de una imagen usada en los iconos de las aplicaciones instaladas en un PC (32x32). Otras pruebas realizadas de manera aleatoria con imágenes que no corresponden a las de la Base de datos de Yale, mostraron los diferentes retardos que existen al realizar el proceso de análisis con imágenes de mayor resolución, lo cual implica un sub-espacio superior, dando por ejemplo los siguientes resultados utilizando el algoritmo de Viola-Jones, que fue uno de los que posee los mejores tiempo y consumo de recursos: KPPS

Tiempo (Seg)

Tamaño

146,16

8,21

159,95

4,22

195,65

4,6

27,71

2,74

Grande (1280x960) Mediana (720x960) Mediana (960x960) Pequeña (320x243)

Cantidad de Rostros 3

Subespacio 1.228.800

2

691.200

1

921.600

1

77.760

Finalmente, al comprobar los valores obtenidos en la cantidad de Kilopixeles procesados por segundo, se puede definir una métrica de efectividad para cada una de las implementaciones mostradas anteriormente. Está métrica

MISAEL PERILLA.: INVESTIGACIÓN / DESARROLLO DE USO DE LA RASPBERRY PI PARA APLICACIONES BIOMETRICAS DE IDENTIFICACIÓN Y SEGURIDAD

vendrá dada por el producto de kpps y el número de identificaciones positivas de cada algoritmo. Para este último parámetro, el valor más elevado obtenido es el correspondiente al algoritmo Eigenfaces, seguido de los algoritmos basados en PCA, sin embargo, se debe tener en cuenta que el algoritmo de Eigen es el que mayor índice de falsos negativos obtuvo frente a su mayor velocidad de procesamiento, lo cual lo hace ideal para proyectos de reconocimiento facial dinámico.

11.694,38

EFECTIVIDAD (KPPS*ACIERTOS)

4.572,88

2.683,02

6.264,84

1.252,97

3.094,45

3.630,83

4.894,41

14.000,00 12.000,00 10.000,00 8.000,00 6.000,00 4.000,00 2.000,00 -

5.354,57

Efectividad (Kpps*Aciertos)

6.3 Efectividad

Al verificar toda la información anterior, se puede llegar a determinar que una imagen de buena calidad, va a acarrear de manera subsecuente un mayor tamaño de sub-espacio con el cual trabajar, por lo tanto, si se desea implementar uno de los algoritmos con mejores resultados, es una buena práctica el escalar la imagen hacía abajo (aplicar una reducción) ajustándola a una escala corregida para así mantener un valor en el sub-espacio que pueda ser manejado en el menor tiempo posible, este hecho se evidenció al utilizar las imágenes de la Tabla 12, la imagen Grande (de 1280x960 pixeles, con un sub-espacio de 1.228.800), fue reducida a una de 960x720 pixeles, disminuyendo su sub-espacio a 691.200, y el tiempo de proceso con Viola-Jones se redujo de 8.21 segundo a 2.92 segundos, de igual manera se redimensionó la imagen Mediana de 720x960 pixeles a 540x720, reduciendo el subespacio a 388.800, y el tiempo se redujo de 4.22 segundos a 2,02 segundos..

6.4 Acceso Para poder ejecutar los diferentes algoritmos sobre la Raspberry en el modo grafico de Raspbian, sin la necesidad de tener conectada una pantalla o un televisor con entradas HDMI, se recurrió a la utilización de 2 medios de comunicación vía intranet diferentes, y tener acceso a un entorno visual remoto, esto con la finalidad de reducir el consumo energético y una baja en la cantidad de poder de procesamiento de la placa en la generación y envío de imágenes mediante cable, uno de los métodos usados fue el VNC, y el otro fue RDP, VNC (Virtual Network Computing – Computación Virtual en Red), es un protocolo de código abierto, que permite crear un sistema compartido

de escritorio grafico que permite controlar remotamente la interfaz de escritorio de una computadora desde otra, transmitiendo los eventos del mouse y teclado desde el equipo controlador, y estos son recibidos en la pantalla del equipo accedido remotamente. (Raspberry Pi Foundation, 2016), mientras que RDP (Remote Desktop Protocol – Protocolo de escritorio remoto), es propiedad de Microsoft, y originalmente está destinada a ser implementada sobre aplicaciones Windows que son ejecutadas sobre servidores conectados en red, sin embargo RDP fue diseñado para soportar diferentes tipos de topologías de red y protocolos LAN (Microsoft, 2016), al realizar las pruebas sobre estos dos protocolos, se pudo notar un mejor desempeño usando RDP, así como la instalación de este protocolo para ser servido en la Raspberry también demostró ser más sencillo y rápido.

7

CONCLUSIONES

Los resultados y conclusiones sobre el desempeño de una variedad de algoritmos de reconocimiento facial, obtenidos en este trabajo, pueden ser utilizados como presedente, ya que a la fecha no se podía determinar qué tipo de algoritmos son los más eficientes. Para ello se han usado métricas de evaluación basadas en la exactitud del algoritmo, en el desempeño de la implementación sobre el hardware y se ha propuesto una métrica de compromiso que hemos llamado efectividad (Kpps * aciertos). De acuerdo a los resultados encontrados, los mejores algoritmos para el reconocimiento facial ejecutado con Python directamente en una placa Raspberry Pi 2 B+, son PCA y sus derivados optimizados (Kernel PCA y Eigenfaces), los cuales presentan tiempos de ejecución cortos y una efectividad bastante alta en el reconocimiento facial sobre el Hadrware de la Raspberry Pi 2 B+, usando el sistema operativo Raspbian. Se recomienda ampliamente utilizar OpenCV en su versión 2.4.11 para ser implementada, junto con aplicaciones codificadas en lenguaje Python 2.7, como librería para el apoyo a proyectos de reconocimiento facial, esta biblioteca cuenta con versiones disponibles para otros lenguajes, ya que en él se pueden encontrar variados algoritmos ya presentes que pueden ser utilizados (estos incluyen a PCA y Eigenfaces), sin la necesidad de desarrollar funciones desde cero, lo que ahora tiempos de ejecución y producción de un proyecto. Para conexiones remotas en el dispositivo Raspberry con entorno gráfico, se logró una mejor conexión mediante el uso del protocolo RDP que al utilizar conexiones mediante VCN, especialmente al acceder a la Raspberry desde un equipo con un sistema operativo Windows, aunque desde Ubuntu también el desempeño del escritorio remoto en RDP fue mejor, más rápido y adicionalmente, este maneja unas mejores políticas

7

8

de seguridad con respecto a otros protocolos.

REFERENCIAS [1] S. Joardar, A. Chatterjee y R. Anjan, «A Real-Time Palm Dorsa Subcutaneous Vein Pattern Recognition System Using Collaborative Representation-Based Classification,» 4 Abril 2015. [En línea]. [2] S. Sivaranjani y S. Sumathi, «Implementation of Fingerprint and Newborn Footprint Feature Extraction on Raspberry Pi.,» IEEE Sponsored 2nd International Conference on Innovations in Information Embedded and Communication Systems ICIIECS’ 15, 2015. [3] A. S. Navaz, T. D. Sri y P. Mazumder, «FACE RECOGNITION USING PRINCIPAL COMPONENT ANALYSIS AND NEURAL NETWORKS,» International Journal of Computer Networking, Wireless and Mobile Communications, pp. 245-256, 2013. [4] S. Raschka, «Linear Discriminant Analysis - Bit by Bit,» 3 Agosto 2014. [En línea]. Available: http://sebastianraschka.com/Articles/2014_python_l da.html#lda-in-5-steps. [Último acceso: 1 Julio 2016]. [5] A. Hyvärinen, «What is Independent Component Analysis: A Demo,» Aalto University, 5 Marzo 2013. [En línea]. Available: http://research.ics.aalto.fi/ica/icademo/. [Último acceso: 3 Julio 2016]. [6] L. Wiskott, R. P. Würtz y G. Westphal, «Elastic Bunch Graph Matching,» Scholarpedia, 10 Febrero 2014. [En línea]. Available: http://www.scholarpedia.org/article/Elastic_Bunch_ Graph_Matching. [Último acceso: 5 Julio 2016]. [7] T. F. Cootes y C. J. Taylor, «Statistical Models of Appearance for Computer Vision,» University of Manchester, Mancheter, 2004. [8] B. Schölkopf, A. Smola y K. R. Müller, «Nonlinear Component Analysis as a Kernel Eigenvalue Problem,» Max-Planck-Institut für biologische Kybernetik Arbeitsgruppe Bülthoff, pp. 1-18, 1996. [9] S. Srisuk, K. Ratanarangsank, K. Kurutach y W. Sahatsawat, «Face Recognition using a New Texture Representation of Face Images,» [En línea]. Available: http://www.facerec.org/algorithms/Trace/eecon03.pdf. [Último acceso: 7 Junio 2016]. [1 H. Sharma, S. Saurav, S. Singh, A. K. Saini y R. Sa, 0] «Analyzing Impact of Image Scaling Algorithms on Viola-Jones Face Detection Framework,» 2015 International Conference on Advances in Computing, Communications and Informatics (ICACCI), pp. 17151718, 2015. [1 S. K. Shiji, «Biometric Prediction on Face Images using 1] Eigenface Approach,» IEEE Conference on Information and Communication Technologies (ICT 2013), pp. 104109, 2013.

IEEE TRANSACTIONS ON JOURNAL NAME, MANUSCRIPT ID

[1 P. N. Belhumeur, J. P. Hespanha y D. Kriegman, 2] «Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection.,» IEEE Transactions on Pattern Analysis and Machine Intelligence, pp. 711-720, 1997. [1 D. K. Shah, V. A. Bharadi y V. J. Kau, «End-to-end 3] Encryption based Biometric SaaS: Using Raspberry Pi as a Remote Authentication Node,» 2015 International Conference on Computing Communication Control and Automation, 2015.

Misael Fernando Perilla. Ingeniero de Sistemas de la Universidad de Cundinamarca (2009), Especialista en Docencia Universitaria de la Universidad Cooperativa de Colombia (2012), Master en Seguridad Informática de la Universidad de la Rioja (2016), Laboró en la Oficina de Virtualidad de la Regional Distrito Capital y la Oficina de Comuniaciones de dirección general del SENA (Servicio Nacional de Aprenizaje), Actualmente como Docente Investigador en la Universidad de Cundinamarca, becado entre 2003 y 2008 por la Corporación Social de Cundinamarca por excelencia académica.

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.