Sei sulla pagina 1di 13

UNIVERSIDAD NACIONAL SAN ANTONIO

ABAD DEL CUSCO

Facultad de Ingeniera Elctrica, Electrnica,


Informtica y Mecnica

Escuela Profesional de Ingeniera


Informtica y de Sistemas
Proyecto

Reconocimiento de rostros utilizando redes


neuronales artificiales

Curso:
INTELIGENCIA ARTIFICIAL
Docente:
ING. LUIS B. PALMA TTITO
Integrante: Cdigo:
ACHAHUI VILCA, CESAR ERNESTO 130341
ZAPATA TTITO, ABEL GABRIEL 130350

Cusco- Per
2015
NDICE
1 PRESENTACIN........................................................................................................................... 3
I. INTRODUCCIN
A. DESCRIPCIN DEL PROBLEMA .............................................................................................. 4
B. OBJETIVOS ............................................................................................................................. 4
C. ALCANCES, METAS Y LIMITACIONES ..................................................................................... 4
D. JUSTIFICACIN ...................................................................................................................... 5
F. CARACTERSTICAS DE LA SOLUCIN ...................................................................................... 5
II. MARCO TEORICO
A. CONCEPTOS Y DEFINICIONES ................................................................................................ 6
III. DESARROLLO DE LA SOLUCIN ................................................................................................ 9
IV. CONCLUSIONES ...................................................................................................................... 12
V. BIBLIOGRAFA .......................................................................................................................... 13
PRESENTACIN
El siguiente proyecto nos muestra toda la investigacin hecha para conocer los mtodos
y algoritmos para poder detectar rostros y reconocer a quien pertenece dicho rostro,
adems se da conocimiento ciertas libreras que ayudan a agilizar este proceso.

En la introduccin se da una breve descripcin del problema sobre reconocimiento de


rostros y el uso que tiene en el mundo actual, ms que todo para seguridad informtica.

En la parte de marco terico se muestra algunos conceptos que es necesario que


conozcamos para entender el desarrollo del proyecto.

Por ltimo, se muestra el proceso de desarrollo del uso de redes neuronales artificiales
para el reconocimiento de rostros.

Este proyecto es basado en varias consultas sobre desarrolladores que plantearon una
solucin para el problema de reconocimiento de rostros.
I. INTRODUCCIN
a) DESCRIPCIN DEL PROBLEMA
El reconocimiento automtico de rostros humanos es uno de los problemas que ha
supuesto un desafo en informtica. Los seres humanos estamos acostumbrados a
reconocernos entre nosotros usando los rasgos faciales. Adems las medidas faciales
han sido usadas en medicina legal y forense durante aos para identificar individuos, y
por lo tanto han dado origen a una gran cantidad de estudios.
Una de las ventajas de un sistema de reconocimiento de rostros basados en inteligencia
artificial es que evitara la necesidad de llevar la documentacin tales como la del
Documento Nacional de Identidad, pasaporte y otros, ya que sera suficiente acercarse
a una cmara fotogrfica. Adems permite eliminar la memorizacin de cdigos y los
riesgos de prdida, olvido o suplantacin. De esta forma se puede conocer a quien
pertenece cada rostro detectado.
b) OBJETIVOS
Objetivo General
El objetivo general es el desarrollo de una aplicacin que sea capaz de reconocer rostros
usando la tcnica de redes neuronales artificiales mediante una cmara web.
Objetivos Especficos
- Estudiar varios modelos de redes neuronales y escoger el ms apropiado para la
aplicacin.
- Estudiar formas de representacin y procesamiento de imgenes.
- Desarrollar una interfaz amigable y atractiva.
- Realizar el reconocimiento de rostros mediante la cmara web de una computadora.
c) ALCANCES, METAS Y LIMITACIONES
Alcances
- Aprender varios modelos de redes neuronales artificiales.
- Desarrollar una aplicacin para el reconocimiento de rostros.
- Aprender algoritmos de procesamiento de imgenes.

Metas

- Entregar las partes del proyecto en el tiempo dado por el docente de la asignatura.
- Entregar la aplicacin de reconocimiento de rostros.

Limitaciones

- El sistema solo reconocer la existencia de rostros por la cmara web, el sistema no


usara una base de datos.
- El sistema se limita a un entorno de escritorio usando una cmara web de un
computador y no de un telfono celular.
- El sistema no extraer las caractersticas del rostro reconocido.
d) JUSTIFICACIN
Estudiar los modelos de reconocimiento de rostros usando redes neuronales
artificiales, as obtener un aprendizaje del tema de redes neuronales artificiales.
Estudiar las formas de representar una imagen y aprender sobre los algoritmos de
procesamiento de imgenes para la deteccin del rostro y reconocimiento de rostro.
e) CARACTERSTICAS DE LA SOLUCIN
- La solucin se dar mediante un modelo de neurona simple que ayude a reconocer
el rostro de una persona mediante una cmara web.
- El rostro reconocido ser identificado mediante un cuadrado o un rectngulo,
junto con el nombre de a quien le pertenece.
- La aplicacin debe reconocer uno o varios rostros en la cmara web, con una
buena claridad y el rostro completo.
- La aplicacin solo podr ser ejecutada en una PC no se implementara para otras
plataformas como telfonos inteligentes.
II. MARCO TEORICO
a) CONCEPTOS Y DEFINICIONES
1. Red Neuronal Artificial (RNA)

Son una base importante para el desarrollo de la IA (Inteligencia Artificial), son


inspiradas en el comportamiento de las neuronas y conexiones del cerebro humano,
tratando de crear un programa, maquina o sistema que sea capaz de solucionar
problemas difciles y actuar como un humano.
Tambin llamada modelo conexionista o de procesamiento distribuido paralelo.
Las redes neuronales pueden ser descritas como modelos computacionales con una de
propiedades tales como la habilidad de adaptarse, aprender, generalizar, agrupar u
organizar datos, cuya operacin est basada en procesamiento paralelo.
Est constituida por un conjunto de clulas de procesamiento llamadas neuronas

2. Neurona Artificial

Es la unidad bsica de una RNA. Una neurona artificial es un procesador elemental en


el sentido de que el procesa un vector x(x1, x2,, xn) de entradas y produce una
respuesta o salida nica. Cada neurona acepta como entrada las salidas procedentes
de otras neuronas (en una neurona biolgica correspondera a las dendritas). Cada
neurona se caracteriza por su estado de activacin, que es un valor que oscila entre 0 y
1. Si el estado de activacin de una neurona es 0, la neurona no est activada;
mientras que cualquier valor diferente de 0 corresponde a una neurona activada.
La salida de la neurona es el estado de activacin. Cada neurona realiza una tarea
sencilla: recibe la informacin de entrada de los vecinos o del exterior y la usa para
calcular una seal de salida que es propagada a otras neuronas.
3. Perceptrn Multicapa

Es una red neuronal artificial formada por mltiples capas, esto le permite resolver
problemas que no son linealmente separables, lo cual es la principal limitacin del
perceptrn (llamado tambin perceptrn simple) por ello es ms utilizada para resolver
problemas reales.
Este modelo se compone de:
Capa de entrada: recibe las seales de entrada propagarla a la siguiente capa.
Capa de salida: proporciona la respuesta de la red para cada patrn de entrada.
Capas Ocultas: realizan el procesamiento no lineal de los datos de entrada.

Se diferencia del perceptrn simple y ADALINE en que tiene capa oculta.


Todas las neuronas se relacionan con todas las neuronas, incluyendo las neuronas de la
capa oculta.

4. Pixel

Es la abreviatura de las palabras inglesas picture element. Es el menor de los


elementos de una imagen al que se puede aplicar individualmente un color o una
intensidad o que se puede diferenciar de los otros mediante un determinado
procedimiento. El color especfico de un pxel es una combinacin de tres componentes
del espectro de colores: rojo, verde y azul.

5. Imagen digital

Una imagen digital se compone de una agrupacin de pxeles, cada uno con un valor de
intensidad o brillo asociado. Una imagen digital se representa mediante una matriz
bidimensional, de forma que cada elemento de la matriz se corresponde con cada pxel
en la imagen.

6. OpenCV

OpenCV (Open source Computer Vision library) es una librera abierta desarrollado por
Intel. Esta librera proporciona un alto nivel funciones para el procesado de imgenes.
Estas libreras permiten a los programadores para crear aplicaciones poderosas en el
dominio de la visin digital. OpenCV ofrece muchos tipos de datos de alto-nivel como
juegos, rboles, grficos, matrices, etc.

La librera tiene ms de 2500 algoritmos, que incluye algoritmos de machine learning y


de visin artificial para usar. Estos algoritmos permiten identificar objetos, caras,
clasificar acciones humanas en vdeo, hacer tracking de movimientos de objetos, extraer
modelos 3D, encontrar imgenes similares, eliminar ojos rojos, seguir el movimiento de
los ojos, reconocer escenarios, etc.
Se usa en aplicaciones como la deteccin de intrusos en vdeos, monitorizacin de
equipamientos, ayuda a navegacin de robots, inspeccionar etiquetas en productos, etc.

OpenCV est escrito en C++, tiene interfaces en C++, C, Python, Java y MATLAB
interfaces y funciona en Windows, Linux, Android y Mac OS.

7. Java

Java es un lenguaje de programacin y una plataforma informtica comercializada por


primera vez en 1995 por Sun Microsystems. Java es un lenguaje orientado a objeto, de
una plataforma independiente. Esta programacin Java tiene muchas similitudes con el
lenguaje C y C++.

Con Java se pueden realizar aplicaciones como un procesador de palabras, una hoja que
sirva para calculos, una aplicacin grfica, etc. en resumen cualquier tipo de aplicacin
se puede realizar con ella. Java permite la modularidad por lo que se pueden hacer
rutinas individuales que sean usadas por ms de una aplicacin. Tambin permite el
desarrollo de aplicaciones bajo el esquema de Cliente Servidor, como de aplicaciones
distribuidas, lo que lo hace capaz de conectar dos o ms computadoras u ordenadores,
ejecutando tareas simultneamente, y de esta forma logra distribuir el trabajo a realizar.
III. DESARROLLO DE LA SOLUCIN

Deteccin de un Rostro

Para la deteccin del rostro utilizaremos uno de los clasificadores que tiene OpenCV que es una
librera para visin artificial. Se tiene los siguientes clasificadores para el reconocimiento de
rostros: haarcascade_frontalcatface, haarcascade_frontalface_alt y lbpcascade_frontalface.

El algoritmo es el siguiente:

Si (Captura_de_Video est Abierto)


Inicio
Capturar imagen
Si (existe imagen)
Inicio
Detectar rostros en la imagen
Para cada rostro detectado
Inicio
Dibujar un rectngulo alrededor del rostro
Fin
Fin
Fin

Entrenamiento de Red Hopfield

Patrones a memorizar con la RNA Hopfield y Arquitectura RNA.


La RNA Hopfield est compuesta de 2500 neuronas, ya que se toma imgenes de
tamao de 50x50 pixeles. Estos datos se obtienen al binarizar el color de cada pixel y
se guardan en un array de enteros.

X1 = 1 1 1 -1 ..
Para estos casos se utilizan los siguientes algoritmos:

Inicio
Detectar rostro
Escalarlo a 50x50 pixeles
Binarizar la imagen
Convertir la imagen en binario a un vector de caractersticas
Fin

Multiplicar la Transpuesta del Vector por el vector .

1 1 1 1 -1
1 x 1 1 1 -1 = 1 1 1 -1
1 1 1 1 -1
-1 -1 -1 -1 1
Para este caso se utiliza los algoritmos de multiplicacin de matrices y matriz
transpuesta.
Multiplicacin (M, N)
Para cada i desde 0 hasta filasM
Inicio
Para cada j desde 0 hasta columnasM
Inicio
Para cada k= 0 hasta columnasN
Inicio
Resultado[i][j] += M[i][k]*N[k][j]
Fin
Fin
Fin
Sumar los productos
Se usa el algoritmo para sumar matrices, se suma todos los resultados del
entrenamiento.
Convertir la diagonal principal a cero, y estos valores a los pesos de la RNA Hopfield
entrenada.

0 8 8 -8
8 0 4 -8
7 8 0 -8
-8 -6 -8 0
Para este caso guardamos el resultado de la red Hopfield entrenada en un archivo de
texto, junto con un identificador el cual es el nombre del que le pertenece los rostros.

Reconocimiento de Rostros

Reconocer patrn

1 1 1 -1
Para obtener el vector de caractersticas, se utilizan los siguientes algoritmos:

Si (Captura_de_Video est Abierto)


Inicio
Capturar imagen
Si (existe imagen)
Inicio
Detectar rostros en la imagen
Para cada rostro detectado
Inicio
Dibujar un rectngulo alrededor del rostro
Escalarlo a 50x50 pixeles
Binarizar la imagen
Convertir la imagen en binario a un vector de caractersticas
Determinar a quin pertenece el rostro
Fin
Fin
Fin

Multiplicar el vector a reconocer por la matriz de pesos


Utilizar algoritmo de multiplicacin de matrices

0 2 2 -2
1 1 1 -1 x 2 0 2 -2 = 6 6 6 -6
2 2 0 -2
-2 -2 -2 0
Aplicar la funcin de activacin
Se da la siguiente funcin:
Positivo: 1
Negativo: -1

F( 6 6 6 -6 )= 1 1 1 -1
Verificar si hay convergencia del patrn de entrada con el resultado del
procesamiento.
IV. CONCLUSIONES
Al finalizar el proyecto se concluy que las redes neuronales artificiales son un excelente mtodo
en el reconocimiento de rostros, caracteres y otras caractersticas de una persona. Las redes
neuronales artificiales tienen la capacidad de aprender, en comparacin a otros mtodos.
Adems si son bien entrenadas los errores tienden a disminuir en cuanto a falsos positivos o
falsos negativos.

Tambin se evidenci la capacidad de una RNA Hopfield de ser tan eficiente para determinar a
que persona le pertenece un rostro, mediante las caractersticas binarias de una imagen con un
rostro. Aun as, se tiene que saber que si se toma una imagen muy grande el costo de hacer las
operaciones de matrices son muy costosas, pero la capacidad de aprender es su aspecto ms
destacado.

De igual forma, se evidenci que el problema de reconocimiento de rostro no es sencillo, sino


que exige un buen estudio y muy detallado para detectar y reconocer rostros sin errores.
V. BIBLIOGRAFA
Burgos, F. J. (s.f.). Redes Neuronales con GNU/Linux. Obtenido de The Public's Library and
Digital Archive:
https://www.ibiblio.org/pub/linux/docs/LuCaS/Presentaciones/200304curso-
glisa/redes_neuronales/curso-glisa-redes_neuronales-html/x38.html

Conceptos Basicos sobre Redes Neuronales. (s.f.). Obtenido de Grupo.us.es:


http://grupo.us.es/gtocoma/pid/pid10/RedesNeuronales.htm

Guillen, J. (19 de Julio de 2015). Perceptron Simple y Multicapa. Obtenido de SlideShare:


http://es.slideshare.net/Jeffo92/perceptrn-simple-y-multicapa

Introduccin a las Librerias OpenCV. (s.f.). Obtenido de Departament d'Informtica de Sistemes


i Computadors: http://web-sisop.disca.upv.es/imd/cursosAnteriors/2k3-
2k4/copiaTreballs/serdelal/trabajoIMD.xml

Java. (s.f.). Obtenido de Java: https://www.java.com/es/download/faq/whatis_java.xml

Jimnez, C. V. (Abril de 2009). Diseo y Desarrollo de un Sistema de Reconocimiento de Caras.


Obtenido de Archivo Abierto Institucional de la Universidad Carlos III de Madrid:
http://e-
archivo.uc3m.es/bitstream/handle/10016/5831/PFC_CarmenVirginia_Gamez_Jimenez
.pdf?sequence=1

Lenguajes de Programacin. (s.f.). Obtenido de Programacin Java: http://www.lenguajes-de-


programacion.com/programacion-java.shtml

Marin, C. (2 de Junio de 2014). Reconocimiento Facial. Obtenido de Tutor de Programcin:


http://acodigo.blogspot.pe/2014/03/reconocimiento-facial.html

Perceptron Multicapa. (22 de Setiembre de 2015). Obtenido de Wikipedia La Enciclopedia


Libre: https://es.wikipedia.org/wiki/Perceptr%C3%B3n_multicapa

Qu es OpenCV. (s.f.). Obtenido de Un poco de Java:


https://unpocodejava.wordpress.com/2013/10/09/que-es-opencv/

Quezada, F. M. (2 de Agosto de 2015). Diseo del sistema de control de acceso empleando


reconocimiento facial por redes neuronales. Obtenido de Prezi:
https://prezi.com/uhqj43pwtusb/diseno-del-sistema-de-control-de-acceso-
empleando-reconocimiento-facial-por-redes-neuronales/

Reconocimiento Facial con OpenCV. (24 de Marzo de 2014). Obtenido de OpenCV:


https://opencv2.wordpress.com/tag/lbph/

Red Neuronal. (15 de Junio de 2016). Obtenido de Wikipedia La Enciclopedia Libre:


https://es.wikipedia.org/wiki/Red_neuronal

Redes Neuronales. (s.f.). Obtenido de Avellano USAL: http://avellano.usal.es/~lalonso/RNA/

Potrebbero piacerti anche