You are on page 1of 51

UNIVERSIDAD NACIONAL DE PIURA

FACULTAD DE CIENCIAS

ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA Y


TELECOMUNICACIONES
PRESENTADO POR:

DILMER JAVIER PUEL CRUZ

TEMA:
SISTEMA DE SEGURIDAD CON RECONOCIMIENTO FACIAL MEDIANTE
PROCESAMIENTO DIGITAL DE IMGENES.

PIURA PERU
DICIEMBRE, 2015

DEDICATORIA
El presente trabajo lo dedico a toda mi
familia, especialmente a mis padres que
me apoyan cada da y hermanas que son
un pilar fundamental de mi vida, que me
han apoyado para luchar por mis sueos
y hacerlos realidad.
Dilmer Javier Puel Cruz

AGRADECIMIENTO
Agradezco de todo corazn a Dios
y a mis padres que alimentan mi
espritu con su amor para siempre
seguir adelante. A mis maestros
que da a da han sabido transmitir
sus conocimientos.
Dilmer Javier Puel Cruz

INTRODUCCIN
En el presente proyecto se desarrolla el prototipo del Sistema de seguridad con
reconocimiento facial mediante el Procesamiento Digital de Imgenes. Se basa
fundamentalmente en el uso de cmaras para capturar la zona de inters, a travs
de la programacin desarrollada en Matlab identificar el rostro de las personas
comparando con una foto previa en la base de datos y as definir si corresponde o
no para luego accionar una salida digital, mediante las salidas del Arduino.
Los humanos a menudo utilizan los rostros para reconocer individuos y los avances
en las capacidades de computacin en las ltimas dcadas, ahora permiten
reconocimientos similares en forma automtica. Los algoritmos de reconocimiento
facial anteriores usaban modelos geomtricos simples, pero el proceso de
reconocimiento actualmente ha madurado en una Ciencia de Sofisticadas
representaciones matemticas y procesos de coincidencia. Importantes avances e
iniciativas en los pasados diez a quince aos han propulsado a la tecnologa de
reconocimiento facial al centro de la atencin.

CAPITULO I
EL PROBLEMA

I.1 Tema de investigacin


Sistema de seguridad con reconocimiento facial mediante procesamiento digital de
imgenes.

I.2 Planteamiento del problema


La creciente necesidad de implementar un sistema que disminuya
notablemente inseguridad en el pas, debidos a factores como los hurtos y
asaltos.
La era de la tecnologa moderna permite hacer uso de patrones y del
reconocimiento de rostros de personas, permitindonos detectar, comparar
y de acuerdo a la respuesta del sistema permitir o rechazar el ingreso.

I.3 Justificacin
La seguridad hoy en da es unos de los temas ms importantes en la ciudadana
por ende nos conllevan a tomar medidas en este caso un Sistema de seguridad
con reconocimiento facial mediante procesamiento digital de imgenes, de tal
manera que solo permita el ingreso a personas que estn registrados y formen parte
de una determinada base de datos.

I.4 Objetivos
I.4.1 General
Disear un sistema de seguridad con reconocimiento facial mediante
procesamiento digital de imgenes.
I.4.2 Especficos
Investigar la situacin actual de la seguridad a nivel general.
Estudiar los distintos tipos de seguridad con reconocimiento facial.
Analizar las diferentes tcnicas para el procesamiento digital de las imgenes
aplicadas en la seguridad.
Implementar un prototipo de sistema de seguridad con reconocimiento facial
mediante el procesamiento digital de Imgenes.
5

CAPITULO II
MARCO TEORICO
II.1 Antecedentes
El reconocimiento facial automatizado es relativamente un concepto nuevo.
Desarrollado en los aos 60, el primer sistema semiautomtico para reconocimiento
facial requera del administrador para localizar rasgos (como ojos, orejas, nariz y
boca) en las fotografas antes de que este calculara distancias a puntos de
referencia en comn, los cuales eran comparados luego con datos de referencia.
En los aos 70 Goldstein, Harmon, & Lesk, usaron 21 marcadores subjetivos
especficos tales como el color del cabello y grosor de labios para automatizar el
reconocimiento facial. El problema con estas soluciones previas era que se
computaban manualmente. En 1988 Kirby & Sirobich aplicaron anlisis de
componentes principales, una tcnica estndar del lgebra lineal, al problema del
reconocimiento facial. Esto fue considerado algo as como un hito al mostrar que
eran requeridos menos de 100 valores para cifrar acertadamente la imagen de una
cara convenientemente alineada y normalizada.
En 1991 Turk & Pentland utilizando las tcnicas Eigenfaces, el error residual poda
ser utilizado para detectar caras en las imgenes - un descubrimiento que permiti
sistemas automatizados de reconocimiento facial en tiempo real fidedignos. Si bien
la aproximacin era un tanto forzada por factores ambientales, cre sin embargo un
inters significativo en posteriores desarrollos de stos sistemas.
La tecnologa inicialmente captur la atencin del pblico a partir de la reaccin de
los medios a una prueba de implementacin en el Super Bowl de la NFL en enero
de 2001, la cual captur imgenes de vigilancia y las compar con una base de
datos de fotoarchivos digitales. Esta demostracin inici un muy requerido anlisis
sobre cmo usar la tecnologa para satisfacer necesidades nacionales, mientras se
tomaban en consideracin las preocupaciones sociales y de privacidad del pblico.
Hoy la tecnologa de reconocimiento facial est siendo utilizada para combatir el
fraude de pasaportes, soporte al orden pblico, identificacin de nios extraviados
y minimizar el fraude en las identificaciones

II.2 Reconocimiento Facial


El reconocimiento facial se ha convertido en los ltimos aos en una rea de
investigacin activa que abarca diversas disciplinas, como procesado de imgenes,
reconocimiento de patrones, visin por ordenador y redes neuronales. Involucra
tanto a investigadores del rea de informtica como a neurocientficos y psiclogos.
Se podra considerar tambin dentro del campo de reconocimiento de objetos,
donde la cara es un objeto tridimensional sujeto a variaciones de iluminacin, pose,
6

etc., y ha de ser identificada basada en su proyeccin 2D (excepto cuando se


utilizan tcnicas 3D).
El objetivo de un sistema de reconocimiento facial es, generalmente, el siguiente:
dada una imagen de una cara "desconocida", o imagen de test, encontrar una
imagen de la misma cara en un conjunto de imgenes "conocidas", o imgenes de
entrenamiento. La gran dificultad aadida es la de conseguir que este proceso se
pueda realizar en tiempo real. El sistema identificar las caras presentes en
imgenes o videos automticamente. Puede operar en dos modos:

Verificacin o autentificacin de caras: compara una imagen de la cara con


otra imagen con la cara de la que queremos saber la identidad. El sistema
confirmar o rechazar la identidad de la cara.
Identificacin o reconocimiento de caras: compara la imagen de una cara
desconocida con todas las imgenes de caras conocidas que se encuentran en
la base de datos para determinar su identidad.

Por su naturaleza amigable, este tipo de sistemas siguen siendo atractivos a pesar
de la existencia de otros mtodos muy fiables de identificacin personal biomtricos,
como el anlisis de huellas dactilares y el reconocimiento del iris.

II.3 Procesamiento de imgenes


El procesamiento digital de imgenes es una rama de la electrnica que permiten
mejorar la calidad de una imagen para la percepcin del ojo humano, y permite
extraer informacin de la misma para su posterior aplicacin.
Para procesar una imagen es necesario que la misma al ser capturada como una
seal fsica (luz) sea transformada a una seal elctrica es decir como una imagen
digital. El procesamiento de imgenes se encuentra ligado a los siguientes
conceptos.
Modos de Color de una imagen
Modos de color de una imagen son la representacin de colores que
conforman cada pxel usando valores numricos. Los modos de color ms
utilizados se describen a continuacin:
Modo Monocromtico: Este modo de color forma a la imagen
nicamente con el color blanco y negro, ya que se emplea un bit con
el cual se puede representar 0 y 1, no existen otros tonos o valores
intermedios. Este tipo de imagen se almacena en una sola matriz.

Imagen en Modo Monocromtico


Fuente: Imagen Digital, Folgado Laura
Modo Escala de Grises: Este modo permite representar la imagen
en tonos o valores intermedios de gris pero tambin incluye al blanco
y negro puros. Este cuenta con una gama de 256 tonos entre 0-255.
Tambin se puede definir el color por la cantidad de color negro
presente en el mismo es decir entre el 0-100 %.

Imagen en modo Escala de grises


Fuente: Imagen Digital, Folgado Laura
Modo RGB: Este modo representa a la imagen con 3 canales, Rojo
(R), Verde (G) y Azul (B)-RGB-, cada canal contiene 8 bits por lo que
su valor de intensidad puede variar entre 0-255, cada pxel puede
elegir entre 256 colores. En tipo de imagen se la representa en tres
matrices -RGB-. De esta combinacin de los tres colores primarios se
pueden obtener hasta 16,7 millones de colores algunos de ellos que
ni siquiera el 13 ojo humano puede diferenciar.

Imagen en Modo RGB


Fuente: Imagen Digital, Folgado Laura

II.4 Operaciones Morfolgicas


Las operaciones Morfolgicas se basan en la teora de conjuntos, a continuacin
se describen las ms bsicas.
Dilatacin Binaria
Dadas las matrices Ay B se denota como dilatacin a AB, donde A
es la matriz de la imagen y B es la mscara.

Mscara B
Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial, Grupo
de Investigacin EDMANS

Un ejemplo de matriz A se muestra en la figura que es la matriz de la


imagen.

Mscara de la imagen. Matriz A


Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial, Grupo de
Investigacin EDMANS
9

Entonces la dilatacin consiste en solapar los elementos de B en A,si


algn 1 de B coincide con al menos un uno de A, se pone en 1 el
elemento de A donde se centr la matriz B. La erosin aplicada con
las matrices anteriores da como resultado la matriz mostrada en la
figura.

Matriz Resultante
Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial, Grupo
de Investigacin EDMANS

La dilatacin tiende a unir los objetos entre ellos y rellena los agujeros
en el interior de los mismos. En la figura se observa una imagen
original y su dilatacin.

Imagen Original(izquierda) y dilatacin derecha


Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial,
Grupo de Investigacin EDMANS

Erosin Binaria
Dadas las matrices Ay B se denota como erosin a AB, donde A es
la matriz de la imagen y B es la mscara. Se muestra un ejemplo en
la figura una mscara B.

Mscara B
Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial, Grupo de
Investigacin EDMANS
10

Y un ejemplo de matriz A se muestra en la figura que es la matriz de


la imagen.

Matriz A
Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial, Grupo de
Investigacin EDMANS

Entonces la erosin consiste en solapar la mscara B en A y ver si


todos los 1 de B coinciden con los de 1 de entonces, se pone en 1, en
caso contrario se pone en cero. La matriz resultante se muestra en la
figura.

Matriz Resultante
Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial, Grupo de
Investigacin EDMANS

Con la dilatacin se logra separar objetos entre si ya aumentar el


dimetro de agujeros. En la figura se observa una imagen original y su
erosin.

Imagen Original(izquierda) y erosin derecha


11

Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial, Grupo de


Investigacin EDMAN

Apertura
La apertura es una operacin en la que primero la imagen sometida a
la erosin y luego a la dilatacin, la imagen resultante no ser la
original debido a que estas operaciones no son inversas. En la figura
se puede observar una imagen con ruido y su apertura.

Imagen Original(izquierda) y su apertura (derecha)


Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial, Grupo de
Investigacin EDMANS

Cierre
El cierre realiza las mismas operaciones que la apertura, pero primero
realiza la dilatacin y luego la erosin. Con esta operacin se suaviza
contorno y remueve agujeros. En la figura se observa un ejemplo de
cierre.

Imagen Original(izquierda) y su cierre (derecha)


Fuente: Tcnicas y Algoritmos Bsicos de Visin Artificial, Grupo de
Investigacin EDMANS

Segmentacin de una Imagen


Para procesar una imagen es necesaria la segmentacin o divisin de
la misma. Este proceso permite encontrar objetos presentes en el
entorno de estudio y clasificarlos entre s. Con una buena
segmentacin permitir que el procesado de la imagen sea ms
eficiente, es decir que se podrn realizar filtrados, obtencin de
caractersticas entre otras operaciones morfolgicas de forma
independiente a cada objeto presente en la imagen. La segmentacin
se basa en tres conceptos: Similitud: Los pxeles pueden contener
valores parecidos con respecto alguna propiedad determinada.
12

Discontinuidad: Los objetos en un entorno se diferencian del mismo


ya que contienen puntos aislados, lneas y aristas. Conectividad: Los
pxeles que forman una regin o imagen se agrupan es decir se
conectan para formar una regin homognea.
II.5 Tcnicas de segmentacin
A medida que pasa el tiempo se desarrollan tcnicas de segmentacin para
resolver problemas ms complejos, entre estas:
Segmentacin Basada en umbralizacin
Segmentacin Basada en Regiones
Segmentacin Basada en Bordes o en Contornos
Cada una de estas tcnicas se describe a continuacin:
Segmentacin Basada en umbralizacin por histograma o
luminosidad:
La segmentacin basada en umbralizacin se puede aplicar en una
imagen en escala de grises.
Este tipo de segmentacin es aplicable en imgenes donde el
histograma muestra valores claramente diferenciados entre el objeto
de inters y el resto de la imagen en cuyo caso el histograma tendr
una distribucin bimodal, es decir contar con zonas de valores
claramente caractersticos del objeto de inters lo que permitir tener
una mejor separacin de objetos. Si se aplica un umbral T, la imagen
f(x,y) se binariza, es decir los objetos distintos del fondo tomarn el
valor de 1 y el fondo tomar el valor de 0,esto se aplica si los objetos
son ms claros que el fondo, la funcin ser:

Pero si los objetos son ms obscuros que el fondo se aplica:

En la figura se observa una imagen con un objeto obscuro claramente


identificado sobre un fondo gris.[21, 22, 23]

13

Imagen con un objeto obscuro sobre un fondo gris.Fuente: Procesamiento digital de


imagenes usando Matlab y Simulink, Erick Cuevas

En la figura puede verse que el histograma se compone por dos lneas


bien diferenciadas, que identifican las regiones existentes en la
imagen, en este caso concreto y dada la imagen tan sencilla, se trata
de un histograma bimodal. [18, 20]

Histograma
Fuente: Procesamiento digital de imgenes usando Matlab y Simulink, Erick
Cuevas

Segmentacin Basada en Regiones:


La segmentacin basada en regiones permite identificar imgenes
que comparten caractersticas especficas. En la figura se muestra
una imagen dividida en tres regiones identificadas por su color. La
regin 1 es el fondo de la imagen, la regin 2 y 3 son elementos que
se encuentran en la imagen.

14

Ejemplo de Segmentacin Basada en Regiones


Fuente: Anlisis de Mtodos de Procesamiento de Imgenes, Alvaro Surez

Para aplicar la segmentacin basada en regiones existen tres


algoritmos clsicos:
1. Algoritmo de crecimiento de regiones:
Este algoritmo se basa en dos conceptos: proximidad y similitud
mencionados anteriormente. La segmentacin de cada regin se
inicia desde un punto inicial (semilla) desde este punto la regin
crece y agrupa a los pxeles inmediatos que satisfacen a un criterio
determinado, este proceso concluye cuando ya no existen pxeles
que cumplen dicho criterio. Finalmente se obtienen las regiones
que estn formadas por un conjunto de puntos.
2. Algoritmo de Fusin y Divisin,Split & Merge Como su
nombre lo anuncia este algoritmo se basa en la divisin y fusin de
regiones, estas fases se realizan en este orden.
Primero se realiza la divisin en regiones, si estas regiones son
uniformes permanecen intactas y si no lo son este proceso se
repite hasta que estas sean uniformes. Finalizado este proceso se
realiza la fusin este consiste en unir las regiones con
caractersticas similares (ej. intensidad de pxeles) y fusionarlas
este proceso finaliza cuando ya no existen ms regiones por
unirse. En la figura se muestra una imagen que se ha sometida al
algoritmo de divisin.[18, 20]

Imagen Dividida
Fuente: Anlisis de Mtodos de Procesamiento de Imgenes, Alvaro
Surez

Segmentacin Basada en Bordes o en Contornos


La segmentacin basada en bordes es la tcnica ms usada. Los
bordes de una imagen se definen como cambios bruscos de nivel de
gris que se producen entre regiones. Este mtodo se basa en realizar
15

la bsqueda del valor mximo del gradiente, sobre cada lnea que
forma la imagen. Cuando un mximo es encontrado, un algoritmo de
trazado trata de seguir el mximo del gradiente alrededor del objeto,
hasta encontrar de nuevo el punto inicial, para luego buscar el prximo
mximo en el gradiente. Para la deteccin de bordes existen diferentes
mtodos u operadores, se describen a continuacin:

1. Operador Roberts
Este operador proporciona una aproximacin de la gradiente, es
ms efectivo en bordes diagonales.
Las mscaras usadas en el operador Roberts se muestran en la
figura.

Mscara Operador de Roberts


Fuente: Deteccin de bordes de una imagen, Departamento de Ingeniera
Electrnica

Sus ventajas son: Buena respuesta en bordes horizontales y


verticales, clculos simples y tiempo de respuesta rpido.
Sus desventajas: Mala respuesta en bordes diagonales,
sensibilidad al ruido y efecto de doble borde.
En la figura se muestra una aplicacin del operador Roberts.[24]

Imagen original y Aplicacin del Operador Roberts


Fuente: Visin Computacional, Gmez. G. y Sucar. E.

16

2. Operador de Prewitt, Sobel y Frei Chen


Estos tres mtodos pueden formularse de manera conjunta con
las matrices de kernell mostradas.

Matrices de Kernell
Fuente: Deteccin de bordes de una imagen, Departamento de Ingeniera
Electrnica

Para el mtodo de Prewitt, K toma el valor de 1, se involucran a los


vecinos adyacentes tanto de filas y columnas, es menos sensible
al ruido.
Para el mtodo de Sobel, K toma el valor de 2, sus resultados en
la prctica es muy parecido a Prewitt. Para el mtodo de Frei Chen,
K toma el valor de p2, el gradiente es igual para bordes verticales,
horizontales y diagonales. Las ventajas de estos operadores son:
Buena respuesta en bordes horizontales y verticales y robustos
frente al ruido. Las desventajas de estos operadores: Mala
respuesta en bordes diagonales, complejidad y lento tiempo de
respuesta y efecto de doble borde.

3. Operador de Canny
En 1986 Canny di a conocer un mtodo para la deteccin de
bordes con mejores resultados que los operadores anteriormente
mencionados pero con mayor complejidad computacional. El
mtodo de Canny se basa en tres criterios:
Criterio de deteccin, tiene como finalidad evitar la
eliminacin de bordes importantes y no generar bordes
falsos.
Criterio de localizacin, que establece que la distancia entre
la posicin real y la posicin localizada para el borde debe
ser minimizada.
Criterio de respuesta nica, permite obtener un pixel por
cada punto de borde, es decir no se generan mltiples
bordes. Para realizar el mtodo de canny se siguen los
siguientes pasos:
Suavizado de la imagen: Se obtiene mediante la aplicacin de un
filtro Gaussiano que consiste en aplicar la convolucin como se
muestra en la ecuacin entre la matriz de la imagen y una mscara
determinada.
I = A *B
17

Donde:
I, es la matriz de la imagen resultante.
A,es la matriz de la imagen original.
B, es la mscara.
En la figura se muestran la mscaras tpicas para el filtro gaussiano.

Mscara de filtro Gaussiano

Obtencin del Gradiente: El gradiente de una imagen f en un


punto x,y se define por la ecuacin.

En la figura se muestra un ejemplo de aplicacin del mtodo de sobel


y canny.

Matrices de Sobel y Canny


Fuente: Deteccin de bordes de una imagen, Departamento de
Ingeniera Electrnica

Se observa que el mtodo de Canny arroja objetos bordes ms


definidos que el mtodo de Sobel. Esta clara superioridad del mtodo
de Canny tambin ocurre en la figura donde se compara Canny y
Prewitt.[20, 25, 26]

18

Comparacin del mtodo de Canny y Prewitt


Fuente: Deteccin de bordes de una imagen, Departamento de Ingeniera
Electrnica

Este mtodo es uno de los mejores para la deteccin de bordes,


debido a su robustez frente al ruido, eficiencia y sencillez, la cual
permite que la velocidad de procesamiento sea mnima.

II.6 Softwares para Procesamiento de Imgenes


Existen diferentes softwares orientados al procesamiento de imgenes, tanto de
paga como libres. Se estudiar: Matlab
Matlab

Matlab (MATrix LABoratory) es un lenguaje de alto nivel desarrollado por la empresa


Mathworks que permite analizar datos, desarrollar algoritmos, modelos,
aplicaciones y realizar cualquier tipo de clculo con vectores y matrices.
Adicionalmente permite mostrar grficos en dos y tres dimensiones. Es uno de los
lenguajes ms empleados.
Matlab es mejorado cada da ya que se desarrollan libreras especficas para
determinadas aplicaciones estas se denominan toolboxes.
Los toolbox son archivos con extensin .m que contiene una serie de funciones que
mejoran la funcionalidad de Matlab en alguna aplicacin en especial como por
ejemplo: el procesado de seales y de imgenes, la lgica difusa, los sistemas de
control, etc.
19

Es una herramienta potente y precisa para realizar operaciones complejas. En una


sesin de trabajo tpica, no hay que compilar o crear ejecutables y los ficheros son
de texto, por lo que ocupan poca memoria.
Es capaz de intercambiar datos con otros lenguajes, admite cualquier dispositivo de
hardware como tarjetas de sonido, tarjetas de adquisicin de datos y DSPs
(Digital Signal Processors).
Para facilitar el tratamiento de imgenes Matlab ha desarrollado un toolbox
denominado Image Processing , permite utilizar funciones y herramientas probadas
y robustas, este permite realizar varias funciones, entre las ms importantes:
anlisis de imgenes y estadstica, diseo de filtros y recuperacin de imgenes,
mejora de imgenes, operaciones morfolgicas, definicin de mapas de colores,
modificacin grfica, operaciones geomtricas y transformacin de imgenes,
soporta casi todos los formatosy tamaos de imagen.
Matlab es un software comercial que se divide en 3 categoras:
Estandar: Para uso de una organizacin comercial, de gobierno o privada. Precio
de Matlab: $2500 y Image Processing Toolbox: $1250
Educacin: Impartir cursos en una entidad educativa. Precio de Matlab: $625 y
Image Processing Toolbox: $250
Estudiante: Uso para estudiantes con fines educativos y de investigacin. Precio
de Matlab: $89 y Image Processing Toolbox: $25
Casa: Unicamente uso personal. Precio de Matlab: $135 y Image Processing
Toolbox: $39.

II.7 Tarjetas de Adquisicin de datos


La adquisicin de datos es el proceso de medir con una PC un fenmeno elctrico
o fsico como voltaje, corriente, temperatura, presin o sonido.
Arduino

Placa Arduino
Fuente: http://media.digikey.com/Photos/Arduino/A000046.jpg

20

Arduino es una placa electrnica como se ilustra en la figura, basada


en harware y sofware libre, lo que la convierte en una plataforma
flexible y de fcil uso. Arduino es ideal para desarrolladores,
aficionados y cualquier persona que desee construir proyectos
electrnicos. Arduino es capaz de tomar informacin de seales
analgicas o digitales las cuales pueden accionar luces, motores,etc.
Arduino es capaz de comunicarse con otros softwares entre estos
matlab.
Tipos de Arduino
Arduino Mini
Arduino Uno
Arduino Leonardo
Arduino Mega
Arduino Due
II.8 Propuesta de Solucin
La implementacin de este sistema permitir mejorar la seguridad ciudadana, ya
que este actuar en dependencia a reconocer el rostro de personas registrados a
travs de un detector (cmara), reduciendo as el riesgo de infiltracin o hurtos con
el sistema seguridad actual. El sistema es capaz de detectar el rostro de cualquier
persona, procesarlo y comparar con la base de datos para luego permitir o restringir
el acceso.

21

CAPITULO III
METODOLOGIA
III.1 Modalidad bsica de la investigacin
III.1.1 Investigacin Bibliogrfica
En el presente proyecto se ha hecho una investigacin bibliogrfica ya que se ha
recopilado informacin de libros, tesis de postgrado y tutoriales, relacionados al
tema tanto en teora como en el uso del software. Ampliando as los conocimientos
para el desarrollo del proyecto.

III.1.2 Investigacin Experimental


Se realiz una investigacin experimental ya que se hicieron pruebas del prototipo
para poder conocer su efectividad en tanto a la deteccin correcta de rostros y el
tiempo de respuesta del sistema.

III.2 Recoleccin de la informacin


Para el desarrollo del proyecto Sistema de seguridad con reconocimiento facial
mediante el Procesamiento Digital de Imgenes se obtuvo informacin real sobre
la seguridad domstica y/o empresarial proporcionada por blocks. Se hicieron
pruebas del prototipo simulando circunstancias reales.
Tambin se obtuvo informacin respecto al tema de libros e internet.

III.3. Procesamiento y Anlisis de datos


La informacin consultada tanto en libros y en Internet fue analizada y ordenada de
forma objetiva para el desarrollo del prototipo y del informe final.

III.4. Desarrollo del Proyecto


Acudir a una agencia de seguridad, especficamente a la empresa
Hermes de seguros.
Tabular los datos proporcionados sobre la seguridad con
reconocimiento facial en distintos puntos de la ciudad.
Elaborar una maqueta basada en un prototipo de la aplicacin de
reconocimiento.
Ubicacin de las cmaras en las zonas requeridas del servicio.
Desarrollo del software aplicativo con tcnicas del Procesamiento
Digital de Imgenes.
Definicin de conclusiones y recomendaciones.
Elaboracin del informe final
22

CAPITULO IV
DESARROLLO DE LA PROPUESTA
IV.1 Antecedentes
Principalmente en sistemas de seguridad para el reconocimiento de usuarios. En
estos sistemas se utiliza un lector que define las caractersticas del rostro, y cuando
este solicita el acceso, se verifica comparando los datos obtenidos con la base de
datos. Sin embargo, estos sistemas no son tiles a largo plazo ya que, a medida
que pasan los aos, los rasgos faciales varan y al solicitar el acceso ya no coinciden
con la imagen en la base de datos. Para solucionar este problema se puede utilizar
un algoritmo que interprete el paso de los aos, aunque igualmente sigue sin ser
del todo fiable), o bien, renovar frecuentemente la base de datos.
IV.2 Factibilidad
IV.2.1 Tcnica
El desarrollo del proyecto es tcnicamente factible, debido a que los elementos
electrnicos utilizados para la elaboracin del prototipo planteado son de fcil
adquisicin en el pas.
IV.2.2 Econmica
El desarrollo del proyecto no representa grandes gastos y se encuentran al alcance
del investigador. Los elementos electrnicos y recursos bibliogrficos a utilizar son
fcilmente accesibles en el pas y no ha sido necesaria ninguna exportacin lo cual
implica gastos adicionales.
IV.2.3 Bibliogrfica
La informacin necesaria para el desarrollo del presente proyecto se encuentra
tanto en libros, revistas cientficas, tesis de postgrado, investigaciones y
publicaciones tcnicas relacionadas a los temas. Matlab es uno de los softwares
ms utilizados a nivel de ingeniera, de este existen diversos tutoriales para su uso
tanto en libros como en la web. Con respecto a Arduino est es una plataforma de
hardware libre, del cual existen muchos proyectos desarrollados en la web con su
cdigo y conexiones respectivas.

23

IV.3 Investigacin sobre la situacin actual de los tipos de seguridad en la


actualidad

IV.4 Anlisis de requerimientos


Despus de analizados los conceptos de semaforizacin inteligente mediante el
procesamiento de imgenes se define qu sistema se compone de tres fases
fundamentales: adquisicin, procesamiento y aplicacin.

Adquisicin: Permite obtener la imagen de inters para su posterior


procesamiento.
Procesamiento: Permite establecer las caractersticas de un imagen y
modificarlas mediante operaciones morfolgicas.
Aplicacin: Aprovechar los datos obtenidos por medio del procesamiento
para aplicarlos en una determinada funcin Para el desarrollo del sistema es
necesario establecer los siguientes requerimientos:

IV.4.1 Software
Para el desarrollo del sistema se requiere software que contenga libreras para
procesamiento de imgenes, fcil de usar, amigable con el usuario y adems de
ser capaz de comunicarse con tarjetas para adquisicin de datos.
IV.4.2 Hardware
Para el funcionamiento del sistema de semaforizacin inteligente son necesarios
los siguientes dispositivos:
Computador: Este debe contar con un procesador de alto nivel para el
sistema trabaje en tiempo real. Debe soportar como mnimo 3 puertos usb,
para conectar las cmaras y la tarjeta de adquisicin.

Cmaras: Las cmaras deben tener alta resolucin y de preferencia ambas


con las mismas caractersticas, que sean digitales y con conexin de puerto
usb,de preferencia pequeas ya que es un prototipo.

Tarjeta de Adquisicin de Datos: Debe permitir extraer los datos del


software de procesamiento de imgenes para enviarlos cada una delas

24

entradas del circuito de la cerradura, debe contener como mnimo 6 salidas


digitales y ser alimentada a travs de la conexin usb.

Cerradura: Estas deben ser apropiadas y/o adaptable de acuerdo al tipo de


aplicacin que se requiera implementar.

IV.5 Eleccin del Software


El estudio de los diferentes softwares de procesamiento de imgenes. Ha
permitido inclinarse por el uso de Matlab, debido a que:
El software de MATLAB no necesita una gran capacidad de memoria.
Es un software es robusto.
Es un software que presenta un interface amigable para el uso estudiantil.
Los toolbox de MATLAB contienen funciones y algoritmos totalmente
confiables y comprobados.
Acceso a seminarios en lnea sin costo.
Abundante informacin en internet para su uso.

IV.6 Comparacin de las tarjetas de adquisicin


Las diferentes tarjetas de adquisicin de datos abordadas en el captulo 2, se
resumen en la tabla, en la que se muestran, el costo de cada uno de las tarjetas y
la compatibilidad con el sotfware MATLAB. Las tarjetas de adquisicin que son
compatibles con MATLAB y presentan un costo bajo son: la
usb 6001 de la National Instrument y la placa Arduino Uno. Para la implementacin
prctica del prototipo del sistema de seguridad con reconocimiento facial mediante
el procesamiento de imgenes se ha decidido utilizar la placa Arduino Mega, ya que
se reducido precio y su compatibilidad con MATLAB son ptimos para el desarrollo
del sistema.

Comparacin de las Tarjetas de Adquisicin


Fuente:El Investigador

25

IV.7 Eleccin de la cmara


Para determinar las caractersticas de la cmara a utilizar se debe tomar en cuenta
la distancia focal, ya que de ella depende el ngulo de visin de la cmara, esta
relacin se observa en la figura.

Relacin distancia focal y ngulo de visin


Fuente:http://www.blogdelfotografo.com/distancia-focal/

El rango de la distancia focal que cubre este ngulo es de 25 a 65mm. Se


muestra distintas cmaras con sus caractersticas y precios.

Webcam con caractersticas y precios


Fuente: El Investigador

Las cmaras ptimas para la aplicacin son la Modecom y la KlipXtreme,


las que tienen similares caractersticas en cuanto a distancia focal y a
resolucin se refiere.

26

Para el desarrollo del prototipo se opt por la cmara Klip Xtreme, ya que
es la ms econmica y presenta un distancio focal de 30 mm, ptima para
un ngulo de visin de 57.
Caractersticas de la cmara KLIP La webcam seleccionada es la klip
xtreme kdc-600, se ilustra en la figura.
Las caractersticas principales de esta cmara son:

Cmara KLIP Xtreme


Fuente: http://cnx.org/contents/Webcam_Color_Tracking_in_Matlab

Resolucin: 1600 x1200 pxeles


Captura de imgenes: Hasta 30 fps (cuadros por segundo)
Distancia focal: 30mm
Formato de imagen: RGB24 y YUY2
Interfaz: USB 2.0
Conguracin: Deteccin automtica Plug and play
Longitud del cable: 1,5 m
Requisitos del sistema: Familia Windows o Mac OS

27

IV.8 DESCRIPCION DEL SISTEMA


1. El sistema de reconocimiento facial emplea una imagen de referencia para la
deteccin del rostro, es decir la cerradura se accionara solo con el rostro de
una persona.
Se ingresa la foto tomada con la cmara web y se registra como base de
datos, luego de esto, se recorta a una imagen de 50x50, este tamao de
imagen ser el indicado para comparar las imgenes, el reconocimiento
preciso se logra con las condiciones de iluminacin constantes y la con la
cmara fija.
2. Al ingresar la imagen a la base de datos, se adjunta en una carpeta a la
espera de una imagen diferente para la comparacin, luego de adquirir la
imagen que activara la cerradura, se prueba con otro rostro o el mismo, para
que el programa empiece a procesar las imgenes es necesario como
minimo dos. Al capturar la otra imagen el programa la recorta del mismo
tamao que la incial, luego de esto empieza a procesarla.
3. Inicialmente el programa indexa la primera imagen para llevar un orden
adecuado, luego de esto pasa al primer proceso: promedio y la diferencia del
promedio de las dos imgenes:
avImg=zeros(N);
for k=1:M
st.data{k} = im2single(st.data{k});
avImg = avImg+(1/M)*st.data{k};
end
% Resta el promedio a cada una de las imagenes
for k= 1:M
st.dataAvg{k}=st.data{k}-avImg;
end
z=[st.dataAvg{1} st.dataAvg{2}];
ZC(:,:,1)=st.dataAvg{1};
ZC(:,:,2)=st.dataAvg{2};

4. Luego de restar el promedio de cada uno se estrae la matriz de las imgenes:


% autovectores matriz
A=zeros(N*N,M);
28

for k=1:M
A(:,k)=st.dataAvg{k}(:);
end
C=A'*A;
5. Multiplicacin de los vectores eigen en pequeas dimensiones aplicados a la
imagen
% vectores eigen en pequeas dimensiones
[veigvec,Deigval]=eig(C);
Vlarge=A*veigvec;
eigenfaces=[];
for k=1:M
c=Vlarge(:,k);
eigenfaces{k}=reshape(c,N,N);
end
x=diag(Deigval);
[xc,xc1]=sort(x,'descend');
z=[eigenfaces{xc1(1)}];

6. PARTE DE LA PROGRAMACION DONDE SE ADQUIERE LA SEGUNDA


IMAGEN Y SE RECORTA PARA LA COMPARACION:
testFaceMic=imread('captura.jpg');
testFaceMic=rgb2gray(testFaceMic);
testFaceMic=imresize(testFaceMic,[N N]);
testFaceMic=im2single(testFaceMic);

7. COMPARACION DE LAS IMAGENES CON EL METODO DE EIGENFACES


Se extrae la minima diferencia del vector obtenido en la comparacin de las
dos imgenes.
El minimo valor dentro del vector se toma como valor final para las
condiciones de la cerradura.
Se implement tambien la comunicacin serial con el arduino mega.
nsel=2;
for mi=1:M
for k=1:nsel
wi(mi,k)=sum(A(:,mi).*eigenfaces{xc1(k)}(:));
end
end
Aface=testFaceMic(:)-avImg(:);
for tt=1:nsel

29

wface(tt)=sum(Aface.*eigenfaces{xc1(tt)}(:));
end
for mi=1:M
fsumcur=0;
for(tt=1:nsel)
fsumcur=fsumcur+(wface(tt) - wi(mi,tt)).^2;
end
diferencia(mi)=sqrt(fsumcur)
end
[val in] = min(diferencia)
mindiferencia=min(diferencia)
if (mindiferencia<=190)
axes(handles.axes3);
imshow(st.data{in});
title(['la imagen pertenece a ',st.names{in}]);
com='COM4';
%Inicializo el puerto serial que utilizar
delete(instrfind({'Port'},{com}))
puerto_serial=serial(com)
puerto_serial.BaudRate=9600
warning('off','MATLAB:serial:fscanf:unsuccessfulRead')
%Abro el puerto serial
fopen(puerto_serial);
pause(0.2);
dato=1;
%unicodestr = native2unicode(i); % Convierte el entreo i (0 a 255) a codigo ASCII
fwrite(puerto_serial,dato,'uint8'); % se envia un dato de tipo entero sin signo de 8 bits,
% pause(2);
fclose(puerto_serial);
delete(puerto_serial)
clear puerto_serial
disp('STOP')
end
if (mindiferencia>=200)
axes(handles.axes3);
imshow('ERROR.jpg');
title('EL ROSTRO NO CORRESPONDE');
end

30

IV.9 Procesamiento Digital de las imgenes para la deteccin facial


Para lograr la deteccin correcta de los vehculos fue necesario realizar el
siguiente proceso:
Adquisicin de imgenes: La imgenes se adquieren como matrices de
NxM. La imagen adquirida es a color por lo que se forma de tres matrices
bidimensionales de los planos R, G y B, como se muestra en la figura.

Matrices de una imagen a color


Fuente: http://cnx.org/contents/Webcam_Color_Tracking_in_Matlab

Mejora del contraste: El contraste se define como la relacin existente


ntrelos diferentes valores de intensidad en una imagen. Matemticamente
se expresa con la ecuacin:
R(x, y) = I(x, y) k
Donde:
R= Matriz de la imagen resultante
I= Matriz de la imagen original
k=Constante
Cabe mencionar que k es positivo se tiene una imagen obscura con un
histograma como se muestra en a figura 4.10a y es negativa si se tiene una
imagen clara correspondiente al histograma.

(a) Histograma de una imagen con bajo contraste

31

(b) Histograma imagen de alto contraste


Ejemplos de histogramas
Fuente:Clase de Procesamiento de Imgenes, Julian Figueroa

El valor de constante k, debe ser fijado hasta obtener un histograma


parecido al de la figura, en donde las distribuciones de intensidad de los
pixeles son homogneas.

Histograma de una imagen con un contraste homegeneo


Fuente:Clase de Procesamiento de Imgenes, Julian Figueroa

Imagen RGB a Binaria: Esta transformacin consiste en un valor


denominado umbral para el cual los pixeles con una intensidad menor a este
tomarn un valor de cero y los mayores a este umbral uno, como se expresa
en la ecuacin.

Donde:
p, es el pxel de la imagen
u, es el umbral determinado por el usuario.
Se debe considerar que esta operacin se repite por cada pxel de la
imagen.
32

Rellenar Agujeros: Se realiza la operacin morfolgica denominada cierre,


esta consiste en aplicar sobre laimagen la dilatacin seguida de la erosin.
Erosin: AB
Dilatacin: A B
Donde:
A es la matriz de la imagen y B es la mscara.
Se consigue el relleno de agujeros y la definicin de contornos.
Segmentacin con Mtodo de Canny. Se elige el mtodo de canny ya
que es el ms robusto y rpido de los mtodos para deteccin de bordes.El
mtodo de canny consiste en dos pasos: Suavizar la imagen, se consigue
con la aplicacin de la siguiente ecuacin.
I = A*B
Donde:
I, es la matriz de la imagen resultante.
A, es la matriz de la imagen original.
B, es la mscara.
Clculo de la gradiente que se obtiene como un vector bidimensional.

33

IV.10 Diseo de la interfaz


La interfaz se realiz en GUI es un entorno de programacin visual disponible en
Matlab. Para iniciar la programacin en Guide deben seguirse los siguientes pasos:
Para iniciar GUI, se debe ejecutar la siguiente instruccin en Matlab:
>>guide
Se presenta una ventana coo se muestra en la figura.

Ventana de inicio
Fuente: Manual de Interfaz Grfica de Usuario, Barragn Diego.

Se elige la primera opcin Blank GUI,como se ilustra en la figura.

Entorno de Diseo
Fuente: Manual de Interfaz Grfica de Usuario, Barragn Diego.

34

Los elementos a usarse en la interfase son: Axes, botones y cuadros de


texto,como se muestra en la figura.

Entorno de Diseo
Fuente: El Investigador.

La interfaz completa se encuentra dispuesta de la siguiente manera:


Inicia con la cmara encendida.
El botn capturar pone en marcha al sistema y el botn Limpiar
pone en cero al sistema listo para ser ejecutado nuevamente.
En los axes se muestra el video, filtrado de la imagen y en la ltima
la comparacin.
Se observa la interfaz en funcionamiento en la siguiente figura

35

Interfaz grfica Funcionando


Fuente: El Investigador.

IV.11 Instalacin de la cmara


Para la adquisicin de las imgenes se utiliz una cmara, esta fue descrita
anteriormente. La captura de la imgenes se realizan a travs del software Matlab
R2013b, para que las cmaras sean instaladas correctamente se deben ejecutar los
siguientes comandos.
En la interfaz de matlab se ingresa el comando (imaqhwinfo) como se muestra en
la figura anterior, mediante este se conoce que adaptadores se encuentran
instalados en Matlab R2013b.

Informacin de los Adaptadores Instalados


Fuente: El Investigador

El adaptador que utiliza matlab para adquisicin de imgenes es winvideo. En la


figura anterior se observa que al ejecutar este comando se despliega una serie de
informacin una de ellas se describe como DevicesIDs esta indica cuantos
dispositivos de captura se encuentran instalados en el computador, en este caso
se observan 3, las dos cmaras a utilizar y la cmara incorporada de fbrica al
computador.
36

Informacin de los ID de los dispositivos

Los IDs pertenecientes a las cmaras utilizadas para la aplicacin son: [2] y [3], para
obtener ms informacin de los dispositivos se ejecuta el comando.

Informacin de los Adaptadores Especfico


Fuente: El Investigador

IV.12 Establecer la Comunicacin entre Matlab y Arduino


Para establecer la comunicacin entre Matlab y la placa Arduino Uno se deben
seguir los siguientes pasos:
1. Conectar la placa Arduino mediante el cable usb.

Conexin del Arduino a la PC


Fuente: El Investigador

37

2. Verificar que se encuentre seleccionada la tarjeta correcta como se muestra


en la figura.

Eleccin de la placa Arduino


Fuente: El Investigador

3. Identificar el puerto al que se encuentra conectado el Arduino.

Informacin sobre el puerto COM


Fuente: El Investigador

4. Se carga un sketch que permite realizar la comunicacin. Dentro del Arduino:


Archivo>Abrir. Buscar dentro de los archivos descargados en la siguiente
direccin: ArduinoIO/pde/adiosrv/adiosrv.pdey se carga el sketch en el
Arduino.

38

5. Se inicia Matlab se ejecuta el comando como se muestra en la figura

Instalar Arduino
Fuente: El Investigador

6. Se asigna el COM en el que se encuentra instalada la placa Arduino, como


se muestra en la figura. En este caso es 4.

Asignar variabley puerto COM


Fuente: El Investigador

Se establece la conexin correctamente.


Nota: El proceso anteriormente detallado se realiza una sola vez.
IV.13 pruebas del funcionamiento
reconocimiento facial

del

sistema

de

Acceso correcto

Interfaz grfica Funcionando Acceso Permitido


Fuente: El Investigador.

39

seguridad

con

Acceso denegado.

Interfaz grfica Funcionando Acceso Denegado


Fuente: El Investigador.

40

CAPITULO V
CONCLUSIONES Y RECOMENDACIONES
1. Conclusiones
La investigacin realizada sobre el tema de seguridad con reconocimiento
facial nos ofrece y nueva idea u opcin a tomar en cuenta.
Se determin la constante e intervalo de mnima diferencia para que este
sistema compare de manera minuciosa pixel a pixel y as determinar si
corresponde o no el rostro a una determinada persona.
El prototipo se ve afectado directamente por la luminosidad existente. Esta
es una variable que no se puede controlar ya que esta vara en el trancurso
de las horas y por el clima.

2. Recomendaciones:
Modernizar el sistema seguridad actual por el sistema del prototipo para
mejorar la movilidad vehicular en la ciudad de Ambato. Para que el sistema
funcione de forma ptima la cmara debe presentar la distancia focal menor
a 25mm. Para detectar el cambio de luminosidad se recomienda la
integracin de un sensor de lmenes, cuya seal permita la eleccin
automtica del factor de contraste aplicado en el sistema.

41

BIBLIOGRAFIA

1. lvaro Surez Bravo, Anlisis de mtodos de procesamiento de


imgenes estereoscpicas forestales, Masters thesis, Universidad
Complutense de Madrid, 2009.
2. J. V., Deteccin de bordes mediante el algoritmo de canny,
UniversidadNacional de Trujillo, 2010.
3. Mathworks, Image processing toolbox, Disponible en
Lnea:http://es.mathworks.com/products/image/.
4. D. M. Blackburn, J. M. Bone, and P. J. Phillips, "Facial Recognition
Vendor Test 2000 Evaluation Report," February 2001
http://www.frvt.org.

42

ANEXOS
1.- CODIGO DE LA APLICACIN EN MATLAB
function varargout = pds2final(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @pds2final_OpeningFcn, ...
'gui_OutputFcn', @pds2final_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback',
[]);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function pds2final_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
guidata(hObject, handles);

global video
handles.output = hObject;
guidata(hObject, handles);
video=videoinput('winvideo',2,'YUY2_640x480');
set(video,'FramesPerTrigger',inf);
set(video,'ReturnedColorSpace','rgb');
vid=get(video,'VideoResolution');
imWidth = vid(1);
imHeight = vid(2);
nBands = get(video,'NumberOfBands');
imagen=image(zeros(imHeight, imWidth, nBands),'Parent',handles.axes1);
preview(video,imagen);
function varargout = pds2final_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
function capturar_Callback(hObject, eventdata, handles)
global captura
global video
captura=getsnapshot(video);
imwrite(captura,'captura.jpg');
testFaceMic=imread('captura.jpg');
axes(handles.axes1);
image(testFaceMic,'Parent',handles.axes1);
axis off
function guardar_Callback(hObject, eventdata, handles)
guardar=getimage(handles.axes2);
if guardar==0
return

43

end
formatos={'*.jpg','JPEG (*.jpg)';'*.tif','TIFF (*.tif)'};
[nomb,ruta]=uiputfile(formatos,'GUARDAR IMAGEN');
if nomb==0, return, end
fname=fullfile(ruta,nomb);
imwrite(guardar,fname);
function grises_Callback(hObject, eventdata, handles)
global captura
imgr=rgb2gray(captura);
axes(handles.axes2);
imshow(imgr)
function binario_Callback(hObject, eventdata, handles)
global captura
imBi=im2bw(captura);
axes(handles.axes2);
imshow(imBi)
function negativo_Callback(hObject, eventdata, handles)
global captura
imgr=rgb2gray(captura);
imneg=255-imgr;
axes(handles.axes2);
imshow(imneg)
function cerrar_Callback(hObject, eventdata, handles)
close all
function bordes_Callback(hObject, eventdata, handles)
global captura
filter=[1 2 1;0 0 0;-1 -2 -1];
imgr=rgb2gray(captura);
imout=filter2(filter,imgr);
axes(handles.axes2);
imshow(imout)
function filtrar_Callback(hObject, eventdata, handles)
global captura
imgr=rgb2gray(captura);
imgN=medfilt2(imgr);
axes(handles.axes2);
imshow(imgN)
function umbral_Callback(hObject, eventdata, handles)
global captura
imgr=rgb2gray(captura);
[fil col]=size(imgr);
HUMBRAL=100;
for j=1:fil
for i=1:col
if (imgr(j,i)<=HUMBRAL);
imZ(j,i)=0;
else
imZ(j,i)=255;
end
end
end
axes(handles.axes2);
imshow(imZ)
function grisinvertido_Callback(hObject, eventdata, handles)
global captura

44

imgr=rgb2gray(captura);
[fil col]=size(imgr);
p1=50;
p2=225;
[fil col]=size(imgr);
for j=1:fil
for i=1:col
if (imgr(j,i)<=p1 ||imgr(j,i)>=p2);
imZ(j,i)=255;
else
imZ(j,i)=255-imgr(j,i);
end
end
end
axes(handles.axes2);
imshow(imZ)
function PROCESAR_COMPARAR_Callback(hObject, eventdata, handles)
N=50; %tamao de la imagen
M=1;
%numero de rostros
scrsz=get(0,'ScreenSize');
ancho=scrsz(3);
alto=scrsz(4);
ancho=round(ancho/3);
alto=round(alto/2)-40;
% cargar la imagen y redimencionar
puel1=imread('eigen/puel1.jpg');
puel1=rgb2gray(puel1);
puel1=imresize(puel1,[N N]);

MC(:,:,1)=puel1;

st.names={'puel1'};
st.data{1}=puel1;
avImg=zeros(N);
for k=1:M
st.data{k} = im2single(st.data{k});
avImg = avImg+(1/M)*st.data{k};
end
% Resta el promedio a cada una de las imagenes
for k= 1:M
st.dataAvg{k}=st.data{k}-avImg;
end
z=[st.dataAvg{1}; %st.dataAvg{3} st.dataAvg{4} st.dataAvg{5}
st.dataAvg{6} ];
ZC(:,:,1)=st.dataAvg{1};
% autovectores matriz covarianza

45

A=zeros(N*N,M);
for k=1:M
A(:,k)=st.dataAvg{k}(:);
end
C=A'*A;
% vectores eigen en pequeas dimenciones
[veigvec,Deigval]=eig(C);
Vlarge=A*veigvec;
eigenfaces=[];
for k=1:M
c=Vlarge(:,k);
eigenfaces{k}=reshape(c,N,N);
end
x=diag(Deigval);
[xc,xc1]=sort(x,'descend');
z=[eigenfaces{xc1(1)}];
testFaceMic=imread('captura.jpg');
testFaceMic=rgb2gray(testFaceMic);
testFaceMic=imresize(testFaceMic,[N N]);
testFaceMic=im2single(testFaceMic);
nsel=1;
for mi=1:M
for k=1:nsel
wi(mi,k)=sum(A(:,mi).*eigenfaces{xc1(k)}(:));
end
end
Aface=testFaceMic(:)-avImg(:);
for tt=1:nsel
wface(tt)=sum(Aface.*eigenfaces{xc1(tt)}(:));
end
for mi=1:M
fsumcur=0;
for(tt=1:nsel)
fsumcur=fsumcur+(wface(tt) - wi(mi,tt)).^2;
end
diferencia(mi)=sqrt(fsumcur)
end
[val in] = min(diferencia)
mindiferencia=min(diferencia)
if (mindiferencia<=190)
axes(handles.axes3);
imshow(st.data{in});
title(['la imagen pertenece a

',st.names{in}]);

com='COM4';
%Inicializo el puerto serial que utilizar
delete(instrfind({'Port'},{com}))
puerto_serial=serial(com)
puerto_serial.BaudRate=9600

46

warning('off','MATLAB:serial:fscanf:unsuccessfulRead')

%Abro el puerto serial


fopen(puerto_serial);
pause(0.2);
dato=1;
%unicodestr = native2unicode(i); % Convierte el entreo i (0 a 255) a
codigo ASCII
fwrite(puerto_serial,dato,'uint8');
% se envia un dato de tipo entero
sin signo de 8 bits,
% pause(2);
fclose(puerto_serial);
delete(puerto_serial)
clear puerto_serial
disp('STOP')

end
if (mindiferencia>=200)
axes(handles.axes3);
imshow('ERROR.jpg');
title('EL ROSTRO NO CORRESPONDE');
end
% --- Executes on button press in limpiar.
function limpiar_Callback(hObject, eventdata, handles)
% hObject
handle to limpiar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles
structure with handles and user data (see GUIDATA)
cla reset
global video
handles.output = hObject;
guidata(hObject, handles);
video=videoinput('winvideo',2,'YUY2_640x480');
set(video,'FramesPerTrigger',inf);
set(video,'ReturnedColorSpace','rgb');
vid=get(video,'VideoResolution');
imWidth = vid(1);
imHeight = vid(2);
nBands = get(video,'NumberOfBands');
imagen=image(zeros(imHeight, imWidth, nBands),'Parent',handles.axes1);
preview(video,imagen);

47

2.- CODIGO DEL ENLACE CON ARDUINO


char DATO;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.available();
DATO = Serial.read();
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
char DATO;
digitalWrite(13,LOW);
digitalWrite(12,HIGH);
if (DATO==1){
digitalWrite(13,HIGH);
digitalWrite(12,LOW);
delay (10000);
}
}

3.- INTERFAZ GRAFICA EN FUNCIONAMIENTO

Interfaz grfica Funcionando Acceso Permitido


Fuente: El Investigador.

48

4.- FOTOGRAFIAS DEL PROTOTIPO

49

INDICE

Contenido

Pg.

Introduccin

CAPITULO I: El problema
I.1 Tema de investigacin

I.2 Planteamiento del problema

I.3 Justificacin

I.4 Objetivos
I.4.1 objetivo General

I.4.2 objetivos Especficos

CAPITULO II: Marco Terico


II.1 Antecedentes

II.2 Reconocimiento Facial

II.3 Procesamiento de imgenes

II.4 Operaciones Morfolgicas

II.5 Tcnicas de segmentacin

13

II.6 Softwares para Procesamiento de Imgenes

19

II.7 Tarjetas de Adquisicin de datos

20

II.8 Propuesta de solucin

21

CAPITULO III: Metodologa


III.1 Modalidad bsica de la investigacin
III.1.1 Investigacin Bibliogrfica

22

III.1.2 Investigacin Experimental

22

III.2 Recoleccin de informacin

22

III.3 Procesamiento y anlisis de datos

22

III.4 Desarrollo del Proyecto

22

50

CAPITULO IV: Desarrollo de la Propuesta


IV.1 Antecedentes

23

IV.2 Factibilidad
IV.2.1 Tcnica

23

IV.2.2 Econmica

23

IV.2.3 Bibliogrfica

23

IV.3 Investigacin sobre la situacin actual de los tipos de seguridad


IV.4 Anlisis de Requerimientos
IV.4.1 Software
IV.4.2 Hardware
IV.5 Eleccin del Software
IV.6 Comparacin de las tarjetas de adquisicin
IV.7 Eleccin de la cmara
IV.8 Descripcin del sistema
IV.9 Procesamiento Digital de las imgenes para la deteccin facial

24
24
24
24
25
25
26
28
31

IV.10 Diseo de la interfaz

34

IV.11 Instalacin de la cmara

36

IV.12 Establecer la Comunicacin entre Matlab y Arduino


IV.13 pruebas del funcionamiento del sistema de seguridad con
reconocimiento facial

37

CAPITULO V: Conclusiones y Recomendaciones

41

Bibliografa

43

Anexos

44

51

39