seminario de tesis......pdf

Upload: fabian-enrique-yovera-gonzales

Post on 05-Jul-2018

214 views

Category:

Documents


0 download

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