seminario de tesis......pdf
TRANSCRIPT
-
8/16/2019 Seminario de Tesis......pdf
1/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 IMÁGENES.
PIURA – PERU
DICIEMBRE, 2015
-
8/16/2019 Seminario de Tesis......pdf
2/51
2
DEDICATORIA
El presente trabajo lo dedico a toda mifamilia, especialmente a mis padres queme apoyan cada día y hermanas que sonun pilar fundamental de mi vida, que mehan apoyado para luchar por mis sueñosy hacerlos realidad.
Dilmer Javier Puel Cruz
-
8/16/2019 Seminario de Tesis......pdf
3/51
3
AGRADECIMIENTO
Agradezco de todo corazón a Diosy a mis padres que alimentan miespíritu con su amor para siempreseguir adelante. A mis maestrosque día a día han sabido transmitirsus conocimientos.
Dilmer Javier Puel Cruz
-
8/16/2019 Seminario de Tesis......pdf
4/51
4
INTRODUCCIÓN
En el presente proyecto se desarrolla el prototipo del Sistema de seguridad con
reconocimiento facial mediante el Procesamiento Digital de Imágenes. Se basa
fundamentalmente en el uso de cámaras para capturar la zona de interés, a través
de la programación desarrollada en Matlab identificar el rostro de las personascomparando 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 computación en las últimas décadas, ahora permiten
reconocimientos similares en forma automática. Los algoritmos de reconocimiento
facial anteriores usaban modelos geométricos simples, pero el proceso de
reconocimiento actualmente ha madurado en una Ciencia de Sofisticadas
representaciones matemáticas y procesos de coincidencia. Importantes avances e
iniciativas en los pasados diez a quince años han propulsado a la tecnología de
reconocimiento facial al centro de la atención.
-
8/16/2019 Seminario de Tesis......pdf
5/51
5
CAPITULO I
EL PROBLEMA
I.1 Tema de investigaciónSistema de seguridad con reconocimiento facial mediante procesamiento digital de
imágenes.
I.2 Planteamiento del problema
La creciente necesidad de implementar un sistema que disminuyanotablemente inseguridad en el país, debidos a factores como los hurtos yasaltos.
La era de la tecnología moderna permite hacer uso de patrones y delreconocimiento de rostros de personas, permitiéndonos detectar, comparary de acuerdo a la respuesta del sistema permitir o rechazar el ingreso.
I.3 Justificación
La seguridad hoy en día es unos de los temas más importantes en la ciudadaníapor ende nos conllevan a tomar medidas en este caso un “Sistema de seguridadcon reconocimiento facial mediante procesamiento digital de imágenes”, de talmanera que solo permita el ingreso a personas que estén registrados y formen parte
de una determinada base de datos.
I.4 Objetivos
I.4.1 General
Diseñar un sistema de seguridad con reconocimiento facial medianteprocesamiento digital de imágenes.
I.4.2 Específicos
Investigar la situación actual de la seguridad a nivel general. Estudiar los distintos tipos de seguridad con reconocimiento facial. Analizar las diferentes técnicas para el procesamiento digital de las imágenes
aplicadas en la seguridad. Implementar un prototipo de sistema de seguridad con reconocimiento facial
mediante el procesamiento digital de Imágenes.
-
8/16/2019 Seminario de Tesis......pdf
6/51
6
CAPITULO IIMARCO TEORICO
II.1 Antecedentes
El reconocimiento facial automatizado es relativamente un concepto nuevo.
Desarrollado en los años 60, el primer sistema semiautomático para reconocimientofacial requería del administrador para localizar rasgos (como ojos, orejas, nariz y
boca) en las fotografías antes de que este calculara distancias a puntos dereferencia en común, los cuales eran comparados luego con datos de referencia.
En los años 70 Goldstein, Harmon, & Lesk, usaron 21 marcadores subjetivosespecíficos 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 análisis de
componentes principales, una técnica estándar del álgebra lineal, al problema delreconocimiento facial. Esto fue considerado algo así como un hito al mostrar que
eran requeridos menos de 100 valores para cifrar acertadamente la imagen de unacara convenientemente alineada y normalizada.
En 1991 Turk & Pentland utilizando las técnicas Eigenfaces, el error residual podía
ser utilizado para detectar caras en las imágenes - un descubrimiento que permitió
sistemas automatizados de reconocimiento facial en tiempo real fidedignos. Si bienla aproximación era un tanto forzada por factores ambientales, creó sin embargo uninterés significativo en posteriores desarrollos de éstos sistemas.
La tecnología inicialmente capturó la atención del público a partir de la reacción de
los medios a una prueba de implementación en el Super Bowl de la NFL en enero
de 2001, la cual capturó imágenes de vigilancia y las comparó con una base dedatos de fotoarchivos digitales. Esta demostración inició un muy requerido análisis
sobre cómo usar la tecnología para satisfacer necesidades nacionales, mientras se
tomaban en consideración las preocupaciones sociales y de privacidad del público.
Hoy la tecnología de reconocimiento facial está siendo utilizada para combatir el
fraude de pasaportes, soporte al orden público, identificación de niños extraviadosy minimizar el fraude en las identificaciones
II.2 Reconocimiento Facial
El reconocimiento facial se ha convertido en los últimos años en una área deinvestigación activa que abarca diversas disciplinas, como procesado de imágenes,
reconocimiento de patrones, visión por ordenador y redes neuronales. Involucra
tanto a investigadores del área de informática como a neurocientíficos y psicólogos.
Se podría considerar también dentro del campo de reconocimiento de objetos,
donde la cara es un objeto tridimensional sujeto a variaciones de iluminación, pose,
https://es.wikipedia.org/wiki/Procesado_de_imagenhttps://es.wikipedia.org/wiki/Reconocimiento_de_patroneshttps://es.wikipedia.org/wiki/Visi%C3%B3n_por_computadorahttps://es.wikipedia.org/wiki/Red_neuronal_artificialhttps://es.wikipedia.org/wiki/Reconocimiento_de_objetoshttps://es.wikipedia.org/wiki/Reconocimiento_de_objetoshttps://es.wikipedia.org/wiki/Red_neuronal_artificialhttps://es.wikipedia.org/wiki/Visi%C3%B3n_por_computadorahttps://es.wikipedia.org/wiki/Reconocimiento_de_patroneshttps://es.wikipedia.org/wiki/Procesado_de_imagen
-
8/16/2019 Seminario de Tesis......pdf
7/51
7
etc., y ha de ser identificada basada en su proyección 2D (excepto cuando se
utilizan técnicas 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 imágenes "conocidas", o imágenes deentrenamiento. La gran dificultad añadida es la de conseguir que este proceso se
pueda realizar en tiempo real. El sistema identificará las caras presentes en
imágenes o videos automáticamente. Puede operar en dos modos:
Verificación o autentificación 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.
Identificación o reconocimiento de caras: compara la imagen de una cara
desconocida con todas las imágenes de caras conocidas que se encuentran enla 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 métodos muy fiables de identificación personal biométricos,
como el análisis de huellas dactilares y el reconocimiento del iris.
II.3 Procesamiento de imágenes
El procesamiento digital de imágenes es una rama de la electrónica que permitenmejorar la calidad de una imagen para la percepción del ojo humano, y permiteextraer información de la misma para su posterior aplicación.Para procesar una imagen es necesario que la misma al ser capturada como unaseñal física (luz) sea transformada a una señal eléctrica es decir como una imagendigital. El procesamiento de imágenes se encuentra ligado a los siguientesconceptos.
Modos de Color de una imagenModos de color de una imagen son la representación de colores queconforman cada píxel usando valores numéricos. Los modos de color másutilizados se describen a continuación:
Modo Monocromático: Este modo de color forma a la imagenúnicamente con el color blanco y negro, ya que se emplea un bit conel cual se puede representar 0 y 1, no existen otros tonos o valoresintermedios. Este tipo de imagen se almacena en una sola matriz.
https://es.wikipedia.org/wiki/Biometr%C3%ADahttps://es.wikipedia.org/wiki/Huella_dactilarhttps://es.wikipedia.org/wiki/Reconocimiento_de_irishttps://es.wikipedia.org/wiki/Reconocimiento_de_irishttps://es.wikipedia.org/wiki/Huella_dactilarhttps://es.wikipedia.org/wiki/Biometr%C3%ADa
-
8/16/2019 Seminario de Tesis......pdf
8/51
8
Imagen en Modo MonocromáticoFuente: Imagen Digital, Folgado Laura
Modo Escala de Grises: Este modo permite representar la imagenen tonos o valores intermedios de gris pero también incluye al blancoy negro puros. Este cuenta con una gama de 256 tonos entre 0-255.
También se puede definir el color por la cantidad de color negropresente en el mismo es decir entre el 0-100 %.
Imagen en modo Escala de grisesFuente: 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 quesu valor de intensidad puede variar entre 0-255, cada píxel puedeelegir entre 256 colores. En tipo de imagen se la representa en tresmatrices -RGB-. De esta combinación de los tres colores primarios sepueden obtener hasta 16,7 millones de colores algunos de ellos que
ni siquiera el 13 ojo humano puede diferenciar.
-
8/16/2019 Seminario de Tesis......pdf
9/51
9
Imagen en Modo RGBFuente: Imagen Digital, Folgado Laura
II.4 Operaciones Morfológicas
Las operaciones Morfológicas se basan en la teoría de conjuntos, a continuaciónse describen las más básicas.
Dilatación BinariaDadas las matrices Ay B se denota como dilatación a AB, donde Aes la matriz de la imagen y B es la máscara.
Máscara BFuente: Técnicas y Algoritmos Básicos de Visión Artificial, Grupo
de Investigación EDMANS
Un ejemplo de matriz A se muestra en la figura que es la matriz de laimagen.
Máscara de la imagen. Matriz AFuente: Técnicas y Algoritmos Básicos de Visión Artificial, Grupo de
Investigación EDMANS
-
8/16/2019 Seminario de Tesis......pdf
10/51
10
Entonces la dilatación consiste en solapar los elementos de B en A,sialgún 1 de B coincide con al menos un uno de A, se pone en 1 elelemento de A donde se centró la matriz B. La erosión aplicada conlas matrices anteriores da como resultado la matriz mostrada en lafigura.
Matriz ResultanteFuente: Técnicas y Algoritmos Básicos de Visión Artificial, Grupo
de Investigación EDMANS
La dilatación tiende a unir los objetos entre ellos y rellena los agujerosen el interior de los mismos. En la figura se observa una imagenoriginal y su dilatación.
Imagen Original(izquierda) y dilatación derechaFuente: Técnicas y Algoritmos Básicos de Visión Artificial,
Grupo de Investigación EDMANS
Erosión Binaria
Dadas las matrices Ay B se denota como erosión a AB, donde A esla matriz de la imagen y B es la máscara. Se muestra un ejemplo enla figura una máscara B.
Máscara BFuente: Técnicas y Algoritmos Básicos de Visión Artificial, Grupo de
Investigación EDMANS
-
8/16/2019 Seminario de Tesis......pdf
11/51
11
Y un ejemplo de matriz A se muestra en la figura que es la matriz dela imagen.
Matriz AFuente: Técnicas y Algoritmos Básicos de Visión Artificial, Grupo de
Investigación EDMANS
Entonces la erosión consiste en solapar la máscara B en A y ver sitodos los 1 de B coinciden con los de 1 de entonces, se pone en 1, encaso contrario se pone en cero. La matriz resultante se muestra en lafigura.
Matriz ResultanteFuente: Técnicas y Algoritmos Básicos de Visión Artificial, Grupo de
Investigación EDMANS
Con la dilatación se logra separar objetos entre si ya aumentar eldiámetro de agujeros. En la figura se observa una imagen original y suerosión.
Imagen Original(izquierda) y erosión derecha
-
8/16/2019 Seminario de Tesis......pdf
12/51
12
Fuente: Técnicas y Algoritmos Básicos de Visión Artificial, Grupo deInvestigación EDMAN
AperturaLa apertura es una operación en la que primero la imagen sometida ala erosión y luego a la dilatación, la imagen resultante no será laoriginal debido a que estas operaciones no son inversas. En la figurase puede observar una imagen con ruido y su apertura.
Imagen Original(izquierda) y su apertura (derecha)Fuente: Técnicas y Algoritmos Básicos de Visión Artificial, Grupo de
Investigación EDMANS
CierreEl cierre realiza las mismas operaciones que la apertura, pero primerorealiza la dilatación y luego la erosión. Con esta operación se suavizacontorno y remueve agujeros. En la figura se observa un ejemplo decierre.
Imagen Original(izquierda) y su cierre (derecha)Fuente: Técnicas y Algoritmos Básicos de Visión Artificial, Grupo de
Investigación EDMANS
Segmentación de una ImagenPara procesar una imagen es necesaria la segmentación o división dela misma. Este proceso permite encontrar objetos presentes en elentorno de estudio y clasificarlos entre sí. Con una buenasegmentación permitirá que el procesado de la imagen sea máseficiente, es decir que se podrán realizar filtrados, obtención decaracterísticas entre otras operaciones morfológicas de formaindependiente a cada objeto presente en la imagen. La segmentaciónse basa en tres conceptos: Similitud: Los píxeles pueden contenervalores parecidos con respecto alguna propiedad determinada.
-
8/16/2019 Seminario de Tesis......pdf
13/51
13
Discontinuidad: Los objetos en un entorno se diferencian del mismoya que contienen puntos aislados, líneas y aristas. Conectividad: Lospíxeles que forman una región o imagen se agrupan es decir seconectan para formar una región homogénea.
II.5 Técnicas de segmentación A medida que pasa el tiempo se desarrollan técnicas de segmentación pararesolver problemas más complejos, entre estas:
Segmentación Basada en umbralización Segmentación Basada en Regiones Segmentación Basada en Bordes o en Contornos
Cada una de estas técnicas se describe a continuación:
Segmentación Basada en umbralización por histograma oluminosidad:
La segmentación basada en umbralización se puede aplicar en unaimagen en escala de grises.Este tipo de segmentación es aplicable en imágenes donde elhistograma muestra valores claramente diferenciados entre el objetode interés y el resto de la imagen en cuyo caso el histograma tendráuna distribución bimodal, es decir contará con zonas de valoresclaramente característicos del objeto de interés lo que permitirá teneruna mejor separación de objetos. Si se aplica un umbral T, la imagenf(x,y) se binariza, es decir los objetos distintos del fondo tomarán elvalor de ’1’ y el fondo tomará el valor de ’0’,esto se aplica si los objetosson más claros que el fondo, la función será:
Pero si los objetos son más obscuros que el fondo se aplica:
En la figura se observa una imagen con un objeto obscuro claramenteidentificado sobre un fondo gris.[21, 22, 23]
-
8/16/2019 Seminario de Tesis......pdf
14/51
14
Imagen con un objeto obscuro sobre un fondo gris.Fuente: Procesamiento digital deimagenes usando Matlab y Simulink, Erick Cuevas
En la figura puede verse que el histograma se compone por dos líneasbien diferenciadas, que identifican las regiones existentes en laimagen, en este caso concreto y dada la imagen tan sencilla, se tratade un histograma bimodal. [18, 20]
HistogramaFuente: Procesamiento digital de imágenes usando Matlab y Simulink, Erick
Cuevas
Segmentación Basada en Regiones:La segmentación basada en regiones permite identificar imágenesque comparten características específicas. En la figura se muestrauna imagen dividida en tres regiones identificadas por su color. Laregión 1 es el fondo de la imagen, la región 2 y 3 son elementos quese encuentran en la imagen.
-
8/16/2019 Seminario de Tesis......pdf
15/51
15
Ejemplo de Segmentación Basada en RegionesFuente: Análisis de Métodos de Procesamiento de Imágenes, Alvaro Suárez
Para aplicar la segmentación basada en regiones existen tres
algoritmos clásicos:
1. Algoritmo de crecimiento de regiones:Este algoritmo se basa en dos conceptos: proximidad y similitudmencionados anteriormente. La segmentación de cada región seinicia desde un punto inicial (semilla) desde este punto la regióncrece y agrupa a los píxeles inmediatos que satisfacen a un criteriodeterminado, este proceso concluye cuando ya no existen píxelesque cumplen dicho criterio. Finalmente se obtienen las regionesque están formadas por un conjunto de puntos.
2. Algoritmo de Fusión y División,“Split & Merge” Como sunombre lo anuncia este algoritmo se basa en la división y fusión deregiones, estas fases se realizan en este orden.
Primero se realiza la división en regiones, si estas regiones sonuniformes permanecen intactas y si no lo son este proceso serepite hasta que estas sean uniformes. Finalizado este proceso serealiza la fusión este consiste en unir las regiones concaracterísticas similares (ej. intensidad de píxeles) y fusionarlaseste proceso finaliza cuando ya no existen más regiones porunirse. En la figura se muestra una imagen que se ha sometida al
algoritmo de división.[18, 20]
Imagen DivididaFuente: Análisis de Métodos de Procesamiento de Imágenes, Alvaro
Suárez
Segmentación Basada en Bordes o en ContornosLa segmentación basada en bordes es la técnica más usada. Losbordes de una imagen se definen como cambios bruscos de nivel degris que se producen entre regiones. Este método se basa en realizar
-
8/16/2019 Seminario de Tesis......pdf
16/51
16
la búsqueda del valor máximo del gradiente, sobre cada línea queforma la imagen. Cuando un máximo es encontrado, un algoritmo detrazado trata de seguir el máximo del gradiente alrededor del objeto,hasta encontrar de nuevo el punto inicial, para luego buscar el próximomáximo en el gradiente. Para la detección de bordes existen diferentes
métodos u operadores, se describen a continuación:
1. Operador RobertsEste operador proporciona una aproximación de la gradiente, esmás efectivo en bordes diagonales.Las máscaras usadas en el operador Roberts se muestran en lafigura.
Máscara Operador de RobertsFuente: Detección de bordes de una imagen, Departamento de Ingeniería
Electrónica
Sus ventajas son: Buena respuesta en bordes horizontales yverticales, cálculos simples y tiempo de respuesta rápido.Sus desventajas: Mala respuesta en bordes diagonales,
sensibilidad al ruido y efecto de doble borde.En la figura se muestra una aplicación del operador Roberts.[24]
Imagen original y Aplicación del Operador RobertsFuente: Visión Computacional, Gómez. G. y Sucar. E.
-
8/16/2019 Seminario de Tesis......pdf
17/51
17
2. Operador de Prewitt, Sobel y Frei ChenEstos tres métodos pueden formularse de manera conjunta conlas matrices de kernell mostradas.
Matrices de KernellFuente: Detección de bordes de una imagen, Departamento de Ingeniería
ElectrónicaPara el método de Prewitt, K toma el valor de 1, se involucran a losvecinos adyacentes tanto de filas y columnas, es menos sensibleal ruido.Para el método de Sobel, K toma el valor de 2, sus resultados enla práctica es muy parecido a Prewitt. Para el método 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 robustosfrente al ruido. Las desventajas de estos operadores: Malarespuesta en bordes diagonales, complejidad y lento tiempo derespuesta y efecto de doble borde.
3. Operador de CannyEn 1986 Canny dió a conocer un método para la detección debordes con mejores resultados que los operadores anteriormente
mencionados pero con mayor complejidad computacional. Elmétodo de Canny se basa en tres criterios: Criterio de detección, tiene como finalidad evitar la
eliminación de bordes importantes y no generar bordesfalsos.
Criterio de localización, que establece que la distancia entrela posición real y la posición localizada para el borde debeser minimizada.
Criterio de respuesta única, permite obtener un pixel porcada punto de borde, es decir no se generan múltiplesbordes. Para realizar el método de canny se siguen los
siguientes pasos:
Suavizado de la imagen: Se obtiene mediante la aplicación de unfiltro Gaussiano que consiste en aplicar la convolución como semuestra en la ecuación entre la matriz de la imagen y una máscaradeterminada.
I = A *B
-
8/16/2019 Seminario de Tesis......pdf
18/51
18
Donde:I, es la matriz de la imagen resultante.
A,es la matriz de la imagen original.B, es la máscara. En la figura se muestran la máscaras típicas para el filtro gaussiano.
Máscara de filtro Gaussiano
Obtención del Gradiente: El gradiente de una imagen f en unpunto x,y se define por la ecuación.
En la figura se muestra un ejemplo de aplicación del método de sobely canny.
Matrices de Sobel y CannyFuente: Detección de bordes de una imagen, Departamento de
Ingeniería Electrónica
Se observa que el método de Canny arroja objetos bordes másdefinidos que el método de Sobel. Esta clara superioridad del métodode Canny también ocurre en la figura donde se compara Canny yPrewitt.[20, 25, 26]
-
8/16/2019 Seminario de Tesis......pdf
19/51
19
Comparación del método de Canny y PrewittFuente: Detección de bordes de una imagen, Departamento de Ingeniería
Electrónica
Este método es uno de los mejores para la detección de bordes,debido a su robustez frente al ruido, eficiencia y sencillez, la cualpermite que la velocidad de procesamiento sea mínima.
II.6 Softwares para Procesamiento de Imágenes
Existen diferentes software´s orientados al procesamiento de imágenes, tanto depaga como libres. Se estudiará: Matlab
Matlab
Matlab (MATrix LABoratory) es un lenguaje de alto nivel desarrollado por la empresaMathworks que permite analizar datos, desarrollar algoritmos, modelos,aplicaciones y realizar cualquier tipo de cálculo con vectores y matrices.
Adicionalmente permite mostrar gráficos en dos y tres dimensiones. Es uno de loslenguajes más empleados.Matlab es mejorado cada día ya que se desarrollan librerías específicas paradeterminadas aplicaciones estas se denominan toolboxes.Los toolbox son archivos con extensión .m que contiene una serie de funciones quemejoran la funcionalidad de Matlab en alguna aplicación en especial como porejemplo: el procesado de señales y de imágenes, la lógica difusa, los sistemas decontrol, etc.
-
8/16/2019 Seminario de Tesis......pdf
20/51
20
Es una herramienta potente y precisa para realizar operaciones complejas. En unasesión de trabajo típica, no hay que compilar o crear ejecutables y los ficheros sonde texto, por lo que ocupan poca memoria.Es capaz de intercambiar datos con otros lenguajes, admite cualquier dispositivo dehardware como tarjetas de sonido, tarjetas de adquisición de datos y DSPs
(Digital Signal Processors).Para facilitar el tratamiento de imágenes Matlab ha desarrollado un toolboxdenominado Image Processing , permite utilizar funciones y herramientas probadasy robustas, este permite realizar varias funciones, entre las más importantes:análisis de imágenes y estadística, diseño de filtros y recuperación de imágenes,mejora de imágenes, operaciones morfológicas, definición de mapas de colores,modificación gráfica, operaciones geométricas y transformación de imágenes,soporta casi todos los formatosy tamaños de imagen.Matlab es un software comercial que se divide en 3 categorías:Estandar: Para uso de una organización comercial, de gobierno o privada. Preciode Matlab: $2500 y Image Processing Toolbox: $1250
Educación: Impartir cursos en una entidad educativa. Precio de Matlab: $625 yImage Processing Toolbox: $250
Estudiante: Uso para estudiantes con fines educativos y de investigación. Preciode Matlab: $89 y Image Processing Toolbox: $25
Casa: Unicamente uso personal. Precio de Matlab: $135 y Image ProcessingToolbox: $39.
II.7 Tarjetas de Adquisición de datos
La adquisición de datos es el proceso de medir con una PC un fenómeno eléctricoo físico como voltaje, corriente, temperatura, presión o sonido.
Arduino
Placa ArduinoFuente: http://media.digikey.com/Photos/Arduino/A000046.jpg
-
8/16/2019 Seminario de Tesis......pdf
21/51
21
Arduino es una placa electrónica como se ilustra en la figura, basadaen harware y sofware libre, lo que la convierte en una plataformaflexible y de fácil uso. Arduino es ideal para desarrolladores,aficionados y cualquier persona que desee construir proyectoselectrónicos. Arduino es capaz de tomar información de señales
analógicas o digitales las cuales pueden accionar luces, motores,etc. Arduino es capaz de comunicarse con otros softwares entre estosmatlab.
Tipos de Arduino Arduino Mini Arduino Uno Arduino Leonardo Arduino Mega Arduino Due
II.8 Propuesta de SoluciónLa implementación de este sistema permitirá mejorar la seguridad ciudadana, yaque este actuará en dependencia a reconocer el rostro de personas registrados através de un detector (cámara), reduciendo así el riesgo de infiltración o hurtos conel sistema seguridad actual. El sistema es capaz de detectar el rostro de cualquierpersona, procesarlo y comparar con la base de datos para luego permitir o restringirel acceso.
-
8/16/2019 Seminario de Tesis......pdf
22/51
22
CAPITULO IIIMETODOLOGIA
III.1 Modalidad básica de la investigación
III.1.1 Investigación BibliográficaEn el presente proyecto se ha hecho una investigación bibliográfica ya que se harecopilado información de libros, tesis de postgrado y tutoriales, relacionados altema tanto en teoría como en el uso del software. Ampliando así los conocimientospara el desarrollo del proyecto.
III.1.2 Investigación Experimental
Se realizó una investigación experimental ya que se hicieron pruebas del prototipopara poder conocer su efectividad en tanto a la detección correcta de rostros y eltiempo de respuesta del sistema.
III.2 Recolección de la información
Para el desarrollo del proyecto “Sistema de seguridad con reconocimiento facialmediante el Procesamiento Digital de Imágenes” se obtuvo información real sobrela seguridad doméstica y/o empresarial proporcionada por block’s. Se hicieronpruebas del prototipo simulando circunstancias reales.También se obtuvo información respecto al tema de libros e internet.
III.3. Procesamiento y Análisis de datosLa información consultada tanto en libros y en Internet fue analizada y ordenada deforma objetiva para el desarrollo del prototipo y del informe final.
III.4. Desarrollo del Proyecto Acudir a una agencia de seguridad, específicamente 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 aplicación de
reconocimiento. Ubicación de las cámaras en las zonas requeridas del servicio. Desarrollo del software aplicativo con técnicas del Procesamiento
Digital de Imágenes. Definición de conclusiones y recomendaciones. Elaboración del informe final
-
8/16/2019 Seminario de Tesis......pdf
23/51
23
CAPITULO IVDESARROLLO DE LA PROPUESTA
IV.1 AntecedentesPrincipalmente en sistemas de seguridad para el reconocimiento de usuarios. En
estos sistemas se utiliza un lector que define las características del rostro, y cuandoeste 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 años, los rasgos faciales varían 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 años, aunque igualmente sigue sin ser
del todo fiable), o bien, renovar frecuentemente la base de datos.
IV.2 FactibilidadIV.2.1 Técnica
El desarrollo del proyecto es técnicamente factible, debido a que los elementoselectrónicos utilizados para la elaboración del prototipo planteado son de fáciladquisición en el país.
IV.2.2 Económica
El desarrollo del proyecto no representa grandes gastos y se encuentran al alcancedel investigador. Los elementos electrónicos y recursos bibliográficos a utilizar sonfácilmente accesibles en el país y no ha sido necesaria ninguna exportación lo cualimplica gastos adicionales.
IV.2.3 Bibliográfica
La información necesaria para el desarrollo del presente proyecto se encuentratanto en libros, revistas científicas, tesis de postgrado, investigaciones ypublicaciones técnicas relacionadas a los temas. Matlab es uno de los software´smás utilizados a nivel de ingeniería, de este existen diversos tutoriales para su usotanto en libros como en la web. Con respecto a Arduino está es una plataforma dehardware libre, del cual existen muchos proyectos desarrollados en la web con sucódigo y conexiones respectivas.
https://es.wikipedia.org/w/index.php?title=Sistemas_de_seguridad&action=edit&redlink=1https://es.wikipedia.org/wiki/Algoritmohttps://es.wikipedia.org/wiki/Algoritmohttps://es.wikipedia.org/w/index.php?title=Sistemas_de_seguridad&action=edit&redlink=1
-
8/16/2019 Seminario de Tesis......pdf
24/51
24
IV.3 Investigación sobre la situación actual de los tipos de seguridad en laactualidad
IV.4 Análisis de requerimientos
Después de analizados los conceptos de semaforización inteligente mediante elprocesamiento de imágenes se define qué sistema se compone de tres fasesfundamentales: adquisición, procesamiento y aplicación.
Adquisición: Permite obtener la imagen de interés para su posteriorprocesamiento.
Procesamiento: Permite establecer las características de un imagen ymodificarlas mediante operaciones morfológicas.
Aplicación: Aprovechar los datos obtenidos por medio del procesamientopara aplicarlos en una determinada función Para el desarrollo del sistema esnecesario establecer los siguientes requerimientos:
IV.4.1 Software
Para el desarrollo del sistema se requiere software que contenga librerías paraprocesamiento de imágenes, fácil de usar, amigable con el usuario y además deser capaz de comunicarse con tarjetas para adquisición de datos.
IV.4.2 Hardware
Para el funcionamiento del sistema de semaforización inteligente son necesarioslos siguientes dispositivos:
Computador: Este debe contar con un procesador de alto nivel para elsistema trabaje en tiempo real. Debe soportar como mínimo 3 puertos usb,para conectar las cámaras y la tarjeta de adquisición.
Cámaras: Las cámaras deben tener alta resolución y de preferencia ambascon las mismas características, que sean digitales y con conexión de puertousb,de preferencia pequeñas ya que es un prototipo.
Tarjeta de Adquisición de Datos: Debe permitir extraer los datos delsoftware de procesamiento de imágenes para enviarlos cada una delas
-
8/16/2019 Seminario de Tesis......pdf
25/51
25
entradas del circuito de la cerradura, debe contener como mínimo 6 salidasdigitales y ser alimentada a través de la conexión usb.
Cerradura: Estas deben ser apropiadas y/o adaptable de acuerdo al tipo deaplicación que se requiera implementar.
IV.5 Elección del Software
El estudio de los diferentes softwares de procesamiento de imágenes. Hapermitido 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 línea sin costo.
Abundante información en internet para su uso.
IV.6 Comparación de las tarjetas de adquisición
Las diferentes tarjetas de adquisición de datos abordadas en el capítulo 2, seresumen en la tabla, en la que se muestran, el costo de cada uno de las tarjetas yla compatibilidad con el sotfware MATLAB. Las tarjetas de adquisición que soncompatibles con MATLAB y presentan un costo bajo son: lausb 6001 de la National Instrument y la placa Arduino Uno. Para la implementaciónpráctica del prototipo del sistema de seguridad con reconocimiento facial mediante
el procesamiento de imágenes se ha decidido utilizar la placa Arduino Mega, ya quese reducido precio y su compatibilidad con MATLAB son óptimos para el desarrollodel sistema.
Comparación de las Tarjetas de AdquisiciónFuente:El Investigador
-
8/16/2019 Seminario de Tesis......pdf
26/51
26
IV.7 Elección de la cámara
Para determinar las características de la cámara a utilizar se debe tomar en cuentala distancia focal, ya que de ella depende el ángulo de visión de la cámara, estarelación se observa en la figura.
Relación distancia focal y ángulo de visiónFuente:http://www.blogdelfotografo.com/distancia-focal/
El rango de la distancia focal que cubre este ángulo es de 25 a 65mm. Semuestra distintas cámaras con sus características y precios.
Webcam con características y preciosFuente: El Investigador
Las cámaras óptimas para la aplicación son la Modecom y la KlipXtreme,las que tienen similares características en cuanto a distancia focal y aresolución se refiere.
-
8/16/2019 Seminario de Tesis......pdf
27/51
27
Para el desarrollo del prototipo se optó por la cámara Klip Xtreme, ya quees la más económica y presenta un distancio focal de 30 mm, óptima paraun ángulo de visión de 57°.
Características de la cámara KLIP La webcam seleccionada es la klip
xtreme kdc-600, se ilustra en la figura.Las características principales de esta cámara son:
Cámara KLIP XtremeFuente: http://cnx.org/contents/Webcam_Color_Tracking_in_Matlab
Resolución: 1600 x1200 píxelesCaptura de imágenes: Hasta 30 fps (cuadros por segundo)Distancia focal: 30mmFormato de imagen: RGB24 y YUY2Interfaz: USB 2.0
Conguración: Detección automática Plug and playLongitud del cable: 1,5 mRequisitos del sistema: Familia Windows o Mac OS
-
8/16/2019 Seminario de Tesis......pdf
28/51
28
IV.8 DESCRIPCION DEL SISTEMA
1. El sistema de reconocimiento facial emplea una imagen de referencia para la
detección del rostro, es decir la cerradura se accionara solo con el rostro de
una persona.Se ingresa la foto tomada con la cámara web y se registra como base de
datos, luego de esto, se recorta a una imagen de 50x50, este tamaño de
imagen será el indicado para comparar las imágenes, el reconocimiento
preciso se logra con las condiciones de iluminación constantes y la con la
cámara 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 comparación, 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 imágenes es necesario como
minimo dos. Al capturar la otra imagen el programa la recorta del mismo
tamaño 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 imágenes:
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 imágenes:
% autovectores matriz
A=zeros(N*N,M);
-
8/16/2019 Seminario de Tesis......pdf
29/51
29
for k=1:M A(:,k)=st.dataAvg{k}(:);
endC=A'*A;
5. Multiplicación de los vectores eigen en pequeñas dimensiones aplicados a laimagen
% vectores eigen en pequeñas 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 comparación de las
dos imágenes.
El minimo valor dentro del vector se toma como valor final para las
condiciones de la cerradura.
Se implementó tambien la comunicación 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
-
8/16/2019 Seminario de Tesis......pdf
30/51
30
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=200) axes(handles.axes3); imshow('ERROR.jpg'); title('EL ROSTRO NO CORRESPONDE'); end
-
8/16/2019 Seminario de Tesis......pdf
31/51
31
IV.9 Procesamiento Digital de las imágenes para la detección facial
Para lograr la detección correcta de los vehículos fue necesario realizar elsiguiente proceso:
Adquisición de imágenes: La imágenes se adquieren como matrices deNxM. 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 colorFuente: http://cnx.org/contents/Webcam_Color_Tracking_in_Matlab
Mejora del contraste: El contraste se define como la relación existenteéntrelos diferentes valores de intensidad en una imagen. Matemáticamentese expresa con la ecuación:
R ( x, y ) = I ( x, y ) ± kDonde:R= Matriz de la imagen resultanteI= Matriz de la imagen originalk=ConstanteCabe mencionar que k es positivo se tiene una imagen obscura con unhistograma como se muestra en a figura 4.10a y es negativa si se tiene unaimagen clara correspondiente al histograma.
(a) Histograma de una imagen con bajo contraste
-
8/16/2019 Seminario de Tesis......pdf
32/51
32
(b) Histograma imagen de alto contrasteEjemplos de histogramas
Fuente:Clase de Procesamiento de Imágenes, 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 lospixeles son homogéneas.
Histograma de una imagen con un contraste homegeneoFuente:Clase de Procesamiento de Imágenes, Julian Figueroa
Imagen RGB a Binaria: Esta transformación consiste en un valordenominado umbral para el cual los pixeles con una intensidad menor a estetomarán un valor de cero y los mayores a este umbral uno, como se expresaen la ecuación.
Donde:p, es el píxel de la imagenu, es el umbral determinado por el usuario.Se debe considerar que esta operación se repite por cada píxel de laimagen.
-
8/16/2019 Seminario de Tesis......pdf
33/51
33
Rellenar Agujeros: Se realiza la operación morfológica denominada cierre,esta consiste en aplicar sobre laimagen la dilatación seguida de la erosión.Erosión: A B
Dilatación: A
BDonde: A es la matriz de la imagen y B es la máscara.Se consigue el relleno de agujeros y la definición de contornos.
Segmentación con Método de Canny. Se elige el método de canny yaque es el más robusto y rápido de los métodos para detección de bordes.Elmétodo de canny consiste en dos pasos: Suavizar la imagen, se consiguecon la aplicación de la siguiente ecuación. I = A*B
Donde:I, es la matriz de la imagen resultante.
A, es la matriz de la imagen original.B, es la máscara. Cálculo de la gradiente que se obtiene como un vector bidimensional.
-
8/16/2019 Seminario de Tesis......pdf
34/51
34
IV.10 Diseño de la interfaz
La interfaz se realizó en GUI es un entorno de programación visual disponible en
Matlab. Para iniciar la programación en Guide deben seguirse los siguientes pasos:Para iniciar GUI, se debe ejecutar la siguiente instrucción en Matlab:>>guide Se presenta una ventana coo se muestra en la figura.
Ventana de inicioFuente: Manual de Interfaz Gráfica de Usuario, Barragán Diego.
Se elige la primera opción “Blank GUI”,como se ilustra en la figura.
Entorno de DiseñoFuente: Manual de Interfaz Gráfica de Usuario, Barragán Diego.
-
8/16/2019 Seminario de Tesis......pdf
35/51
35
Los elementos a usarse en la interfase son: Axes, botones y cuadros detexto,como se muestra en la figura.
Entorno de DiseñoFuente: El Investigador.
La interfaz completa se encuentra dispuesta de la siguiente manera:
Inicia con la cámara encendida. El botón capturar pone en marcha al sistema y el botón 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 comparación.
Se observa la interfaz en funcionamiento en la siguiente figura
-
8/16/2019 Seminario de Tesis......pdf
36/51
36
Interfaz gráfica FuncionandoFuente: El Investigador.
IV.11 Instalación de la cámara
Para la adquisición de las imágenes se utilizó una cámara, esta fue descritaanteriormente. La captura de la imágenes se realizan a través del software MatlabR2013b, para que las cámaras sean instaladas correctamente se deben ejecutar lossiguientes 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 encuentraninstalados en Matlab R2013b.
Información de los Adaptadores Instalados
Fuente: El Investigador
El adaptador que utiliza matlab para adquisición de imágenes es ’winvideo’. En lafigura anterior se observa que al ejecutar este comando se despliega una serie deinformación una de ellas se describe como DevicesIDs esta indica cuantosdispositivos de captura se encuentran instalados en el computador, en este casose observan 3, las dos cámaras a utilizar y la cámara incorporada de fábrica alcomputador.
-
8/16/2019 Seminario de Tesis......pdf
37/51
37
Información de los ID de los dispositivos
Los IDs pertenecientes a las cámaras utilizadas para la aplicación son: [2] y [3], paraobtener más información de los dispositivos se ejecuta el comando.
Información de los Adaptadores EspecíficoFuente: El Investigador
IV.12 Establecer la Comunicación entre Matlab y Arduino
Para establecer la comunicación entre Matlab y la placa Arduino Uno se debenseguir los siguientes pasos:
1. Conectar la placa Arduino mediante el cable usb.
Conexión del Arduino a la PCFuente: El Investigador
-
8/16/2019 Seminario de Tesis......pdf
38/51
38
2. Verificar que se encuentre seleccionada la tarjeta correcta como se muestraen la figura.
Elección de la placa ArduinoFuente: El Investigador
3. Identificar el puerto al que se encuentra conectado el Arduino.
Información sobre el puerto COMFuente: El Investigador
4. Se carga un sketch que permite realizar la comunicación. Dentro del Arduino: Archivo>Abrir. Buscar dentro de los archivos descargados en la siguientedirección: ArduinoIO/pde/adiosrv/adiosrv.pdey se carga el sketch en el
Arduino.
-
8/16/2019 Seminario de Tesis......pdf
39/51
39
5. Se inicia Matlab se ejecuta el comando como se muestra en la figura
Instalar ArduinoFuente: El Investigador
6. Se asigna el COM en el que se encuentra instalada la placa Arduino, comose muestra en la figura. En este caso es 4.
Asignar variabley puerto COMFuente: El Investigador
Se establece la conexión correctamente.Nota: El proceso anteriormente detallado se realiza una sola vez.
IV.13 pruebas del funcionamiento del sistema de seguridad conreconocimiento facial
Acceso correcto
Interfaz gráfica Funcionando – Acceso PermitidoFuente: El Investigador.
-
8/16/2019 Seminario de Tesis......pdf
40/51
40
Acceso denegado.
Interfaz gráfica Funcionando – Acceso DenegadoFuente: El Investigador.
-
8/16/2019 Seminario de Tesis......pdf
41/51
41
CAPITULO VCONCLUSIONES Y RECOMENDACIONES
1. Conclusiones
La investigación realizada sobre el tema de seguridad con reconocimientofacial nos ofrece y nueva idea u opción a tomar en cuenta.
Se determinó la constante e intervalo de mínima diferencia para que estesistema compare de manera minuciosa pixel a pixel y así determinar sicorresponde o no el rostro a una determinada persona.
El prototipo se ve afectado directamente por la luminosidad existente. Estaes una variable que no se puede controlar ya que esta varía en el trancursode las horas y por el clima.
2. Recomendaciones:
Modernizar el sistema seguridad actual por el sistema del prototipo paramejorar la movilidad vehicular en la ciudad de Ambato. Para que el sistemafuncione de forma óptima la cámara debe presentar la distancia focal menora 25mm. Para detectar el cambio de luminosidad se recomienda laintegración de un sensor de lúmenes, cuya señal permita la elecciónautomática del factor de contraste aplicado en el sistema.
-
8/16/2019 Seminario de Tesis......pdf
42/51
42
BIBLIOGRAFIA
1. Álvaro Suárez Bravo, “Análisis de métodos de procesamiento deimágenes estereoscópicas forestales,” Master’s thesis, Universidad
Complutense de Madrid, 2009.
2. J. V., “Detección de bordes mediante el algoritmo de canny,”UniversidadNacional de Trujillo, 2010.
3. Mathworks, “Image processing toolbox,” Disponible enLínea:http://es.mathworks.com/products/image/ .
4. D. M. Blackburn, J. M. Bone, and P. J. Phillips, "Facial RecognitionVendor Test 2000 Evaluation Report," February 2001http://www.frvt.org.
http://www.frvt.org/http://www.frvt.org/
-
8/16/2019 Seminario de Tesis......pdf
43/51
43
ANEXOS
1.- CODIGO DE LA APLICACIÓN 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
-
8/16/2019 Seminario de Tesis......pdf
44/51
44
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)
-
8/16/2019 Seminario de Tesis......pdf
45/51
45
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)=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; %tamaño 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
-
8/16/2019 Seminario de Tesis......pdf
46/51
46
A=zeros(N*N,M); for k=1:M
A(:,k)=st.dataAvg{k}(:); end C=A'*A;
% vectores eigen en pequeñas 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
-
8/16/2019 Seminario de Tesis......pdf
47/51
47
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) acodigo ASCII fwrite(puerto_serial,dato,'uint8'); % se envia un dato de tipo enterosin 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);
-
8/16/2019 Seminario de Tesis......pdf
48/51
48
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 gráfica Funcionando – Acceso PermitidoFuente: El Investigador.
-
8/16/2019 Seminario de Tesis......pdf
49/51
49
4.- FOTOGRAFIAS DEL PROTOTIPO
-
8/16/2019 Seminario de Tesis......pdf
50/51
50
INDICE
Contenido Pág.Introducción 4
CAPITULO I: El problema
I.1 Tema de investigación 5
I.2 Planteamiento del problema 5
I.3 Justificación 5
I.4 Objetivos
I.4.1 objetivo General 5
I.4.2 objetivos Específicos 5
CAPITULO II: Marco Teórico
II.1 Antecedentes 6
II.2 Reconocimiento Facial 6
II.3 Procesamiento de imágenes 7
II.4 Operaciones Morfológicas 9
II.5 Técnicas de segmentación 13
II.6 Softwares para Procesamiento de Imágenes 19
II.7 Tarjetas de Adquisición de datos 20
II.8 Propuesta de solución 21
CAPITULO III: Metodología
III.1 Modalidad básica de la investigación
III.1.1 Investigación Bibliográfica 22
III.1.2 Investigación Experimental 22
III.2 Recolección de información 22
III.3 Procesamiento y análisis de datos 22
III.4 Desarrollo del Proyecto 22
-
8/16/2019 Seminario de Tesis......pdf
51/51
CAPITULO IV: Desarrollo de la Propuesta
IV.1 Antecedentes 23
IV.2 Factibilidad
IV.2.1 Técnica 23
IV.2.2 Económica 23
IV.2.3 Bibliográfica 23
IV.3 Investigación sobre la situación actual de los tipos de seguridad 24IV.4 Análisis de Requerimientos 24IV.4.1 Software 24IV.4.2 Hardware 24IV.5 Elección del Software 25IV.6 Comparación de las tarjetas de adquisición 25IV.7 Elección de la cámara 26IV.8 Descripción del sistema 28IV.9 Procesamiento Digital de las imágenes para la detección facial 31
IV.10 Diseño de la interfaz 34
IV.11 Instalación de la cámara 36
IV.12 Establecer la Comunicación entre Matlab y Arduino 37IV.13 pruebas del funcionamiento del sistema de seguridad con
reconocimiento facial 39
CAPITULO V: Conclusiones y Recomendaciones 41
Bibliografía 43
Anexos 44