Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Instituto Politécnico Nacional Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas Proyecto Terminal “Aplicación Web para la Administración de Trámites e Información de Pensionados” Que para obtener el Título de “Ingeniero en Telemática” Presentan: Encande López Nestor Osvaldo Medina Reyes Miguel Alberto Asesores Dr. Guzmán Lugo José Giovanni M. en C. Martínez Rosales Miguel Alejandro México, D.F. Mayo, 2013 Instituto Politécnico Nacional Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas Proyecto Terminal “Aplicación Web para la Administración de Trámites e Información de Pensionados” Que para obtener el Título de “Ingeniero en Telemática” Presentan: Encande López Nestor Osvaldo Medina Reyes Miguel Alberto Asesores ______________________________________________ Dr. Guzmán Lugo José Giovanni ______________________________________________ M. en C. Martínez Rosales Miguel Alejandro Presidente ______________________________________________ M. en C. Sánchez Nájera Susana Secretario ______________________________________________ M. en C. Enríquez Ortiz Cyntia Eugenia Agradecimientos de Alberto Medina Reyes Agradezco a mis papás quienes nunca escatimaron esfuerzos para brindarme la mejor educación y que siempre confiaron en mí. Con su ejemplo me enseñaron, que para tener éxito es necesario el trabajo duro, la dedicación y muchos otros valores que me llevaron al lugar donde me encuentro. También darles las gracias a ellos y a mi hermana por no desesperarse y enojarse conmigo cuando tuve momentos de alto estrés y mi humor no era el mejor, en cambio me apoyaron para lograr mis metas. A mis cuatro abuelitos, de los cuales he aprendido mucho y que siempre confiaron en mí, ellos son una parte importante en mi vida y les doy las gracias por haberme llevado por un buen camino. A todos mis profesores de la UPIITA, de los cuales aprendí infinidad de cosas sobre mi carrera que tanto me gusta y de la cual me siento orgulloso. Su forma estricta de ser me hizo aprender cual es la forma correcta en que se deben realizar las cosas. A mis asesores por su compromiso con nuestro proyecto terminal, por invertir su tiempo y esfuerzo para ayudarnos a lograr nuestro objetivo. Agradecimientos de Néstor Encande López Agradezco a mi padres por darme la vida y educarme para ser una persona de bien, siempre dieron todo para mi bienestar y buscaron lo mejor para mí, gracias. En particular agradezco a mi mamá que siempre ha estado ahí para mí en cualquier momento de mi vida, que me lleno de confianza día a día para ser quien soy, que día a día se preocupó por mí y me cuido, agradezco todos los consejos que me has dado, Te amo. A mi papa quien es mi ejemplo a seguir, que siempre me llenaste de enseñanzas de vida, que me enseñaste que en la vida hay que luchar por lo que se quiere y que todo se debe de hacer por el buena camino y que si se hace así todo saldrá bien, sé que estas orgulloso de mí, porque siempre estás conmigo, gracias por todo Te amo. A mis hermanos Paty, Jocelyn y Paul quienes siempre me cuidaron y estuvieron ahí para mí, gracias por cada conocimiento y alegría que me dieron. Los quiero y sé que siempre estarán ahí cuando los necesite. A mis profesores de toda mi vida académica ya que sin ellos no hubiera llegado hasta estas instancias, en espacial un agradecimiento a mis asesores por su apoyo y tiempo invertido para la obtención de nuestros objetivos del presente proyecto. Asimismo quisiera agradecer al Instituto Politécnico Nacional por darme la oportunidad de estudiar una ingeniería. I Índice ÍNDICE ........................................................................................................................................................ I ÍNDICE DE FIGURAS ............................................................................................................................. IV ÍNDICE DE TABLAS ............................................................................................................................... VI CAPITULO I INTRODUCCIÓN............................................................................................................. 2 1.1 PLANTEAMIENTO DEL PROBLEMA ...................................................................................................... 3 1.2 OBJETIVOS ......................................................................................................................................... 4 1.2.1 Objetivo General .......................................................................................................................... 4 1.2.2 Objetivos Particulares .................................................................................................................. 4 1.3 PROPUESTA DE SOLUCIÓN .................................................................................................................. 5 CAPITULO II ESTADO DEL ARTE ........................................................................................................ 9 2.1 ANTECEDENTES ................................................................................................................................. 9 2.1.1 Sistema web para la administración del capital humano del centro de investigación en computación del IPN ................................................................................................................................. 9 2.1.2 Plataforma de seguridad por medio de autentificación biométrica usando reconocimiento de iris, aplicado a un sitio web ....................................................................................................................... 9 2.1.3 Sistema prototipo para el control de asistencia por reconocimiento facial ................................. 9 CAPITULO III MARCO TEÓRICO..................................................................................................... 10 3.1 LENGUAJES DE PROGRAMACIÓN ENFOCADOS AL DESARROLLO DE SISTEMAS WEB ........................ 10 3.1.1 Lenguajes de Programación del lado del Servidor .................................................................... 10 3.1.2 ASP.net (Active Server Pages) .................................................................................................... 10 3.1.3 JSP (Java Server Pages) ............................................................................................................. 10 3.1.4 Python ......................................................................................................................................... 11 3.1.5 PHP (acrónimo recursivo que significa “PHP Hypertext Pre-processor”)............................... 11 3.1.6 Ruby ............................................................................................................................................ 12 3.2 LENGUAJES DE PROGRAMACIÓN DEL LADO DEL CLIENTE ................................................................ 12 3.2.1 HTML (HyperText Markup Language) ....................................................................................... 13 3.2.2 JavaScript ................................................................................................................................... 13 3.2.3 CSS (Cascading Style Sheets) ..................................................................................................... 13 3.3 GESTORES DE BASES DE DATOS. ..................................................................................................... 13 3.3.1 Microsoft SQL Server ................................................................................................................. 14 3.3.2 MySQL ........................................................................................................................................14 3.3.3 Oracle ......................................................................................................................................... 14 3.3.4 PostgreSQL ................................................................................................................................. 14 3.4 PROCESAMIENTO DIGITAL DE IMÁGENES. ....................................................................................... 15 3.4.1 Modificación de imagen ............................................................................................................. 16 3.5 PRINCIPALES METODOLOGÍAS ENFOCADAS AL RECONOCIMIENTO FACIAL ..................................... 18 3.5.1 PCA (Principal Component Analysis) ........................................................................................ 19 3.5.2 DCT (Discrete Cosine Transform) ............................................................................................. 19 3.5.3 LDA (Linear Discriminant Analysis) .......................................................................................... 20 3.6 HERRAMIENTAS COMPUTACIONALES ENFOCADAS AL RECONOCIMIENTO FACIAL ............................ 20 II 3.6.1 OpenCV ...................................................................................................................................... 21 3.6.2 EmguCV ...................................................................................................................................... 21 3.6.3 AForge.NET ................................................................................................................................ 21 3.6.4 Matlab ........................................................................................................................................ 22 CAPITULO IV ANÁLISIS Y DISEÑO ................................................................................................... 23 4.1 INVESTIGACIÓN Y SELECCIÓN DE LOS DISTINTOS TRÁMITES A REALIZAR EN LA PLATAFORMA ........ 23 4.1.1 Comprobación de supervivencia ................................................................................................ 25 4.1.2 Préstamo a cuenta de pensión (otorgado por el mismo instituto) .............................................. 26 4.1.3 Modificación de pensión para cambio de domicilio ................................................................... 27 4.2 ANÁLISIS DE REQUERIMIENTOS ....................................................................................................... 29 4.2.1 Requerimientos del sistema ........................................................................................................ 29 4.2.2 Requerimientos funcionales del sistema ..................................................................................... 29 4.2.3 Requerimientos mínimos en cuanto la interacción del usuario con el sistema .......................... 29 4.2.4 Requerimientos en cuanto la interacción del sistema con el usuario ......................................... 30 4.2.5 Requerimientos de estandarización ............................................................................................ 30 4.2.6 Requerimientos del sistema por parte del administrador ........................................................... 31 4.2.7 Requerimientos mínimos del reconocimiento facial ................................................................... 31 4.2.8 Requerimientos no funcionales ................................................................................................... 31 4.2.9 Requerimientos de pruebas del sistema ...................................................................................... 31 4.3 ANÁLISIS Y DISEÑO GENERAL DEL SISTEMA .................................................................................... 32 4.3.1 Análisis Inicial del Sistema ......................................................................................................... 32 4.3.2 Diseño Inicial del sistema ........................................................................................................... 36 4.3.3 Selección de lenguaje de programación de lado del servidor .................................................... 41 4.3.4 Selección de lenguaje de programación de lado del cliente ....................................................... 41 4.3.5 Selección de Gestor de Base de Datos ........................................................................................ 41 4.3.6 Algoritmo de detección facial: Viola Jones ................................................................................. 41 4.3.7 Selección de metodología para el reconocimiento facial ........................................................... 42 4.4 MODELADO UML DEL SISTEMA. ..................................................................................................... 48 4.4.1 Diagrama casos de uso del sistema. ........................................................................................... 48 4.4.2 Diagrama de Actividades del Sistema ........................................................................................ 51 4.4.3 Diagrama de Clases del Sistema ................................................................................................ 60 4.4.4 Diseño de la Base de Datos ........................................................................................................ 71 CAPITULO V IMPLEMENTACIÓN ..................................................................................................... 81 5.1 IMPLEMENTACIÓN DEL SITIO WEB................................................................................................... 81 5.1.1 Implementación de la Base de Datos .......................................................................................... 81 5.1.2 Implementación de los Procedimientos almacenados ................................................................ 82 5.1.3 Creación y Estructura del sitio web en Visual Studio ................................................................ 84 5.1.4 Controlador ................................................................................................................................ 85 5.1.5 Sitio Web ..................................................................................................................................... 88 5.2 SISTEMA DE INGRESO Y SISTEMA DE REGISTRO DE PENSIONADOS .................................................... 93 5.2.1 Etapa de entrenamiento del sistema. ......................................................................................... 93 5.2.2 Sistema de ingreso ...................................................................................................................... 98 5.2.3 Matlab Builder Ex ....................................................................................................................... 99 CAPITULO VI RESULTADOS ....................................................................................................................... 102 III 6.1 Resultados del Sistema Web ..................................................................................................... 102 6.1.1 Realización de Trámites ........................................................................................................... 102 6.1.2 Administración del sitio. ........................................................................................................... 103 6.1.3 Implementación ........................................................................................................................ 104 6.2 Resultados del Sistema de ingreso y de registro de pensionados ............................................. 104 6.2.1 Resultados de la detección facial .............................................................................................. 1046.2.2 Resultado del reconocimiento facial ......................................................................................... 105 CAPITULO VII CONCLUSIONES ...................................................................................................... 109 7.1 Sistema Web .............................................................................................................................. 109 7.2 Sistema de ingreso y sistema de registro de pensionados ........................................................ 109 CAPITULO VIII TRABAJOS FUTUROS ............................................................................................ 111 8.1 Sistema Web .............................................................................................................................. 111 8.2 Sistema de ingreso y de registro de pensionados ..................................................................... 111 BIBLIOGRAFÍA .................................................................................................................................... 112 IV Índice de Figuras FIGURA 1 ESTUDIO DEL USO DE INTERNET EN MÉXICO EN 2011 Y 2012 POR EL INEGI ...................................... 4 FIGURA 2 TASA DE IDENTIFICACIÓN CORRECTA PARA EL CASO DE CAMBIOS DE ILUMINACIÓN UTILIZANDO NORMALIZACIÓN DE LAS IMÁGENES [10] .................................................................................................... 6 FIGURA 3 EFICIENCIA COMPUTACIONAL PARA UN RECONOCIMIENTO INDIVIDUAL EN FUNCIÓN DEL NÚMERO DE COMPONENTES UTILIZADO [10] .................................................................................................................. 6 FIGURA 4 DESCRIPCIÓN DE LA APLICACIÓN WEB ................................................................................................ 7 FIGURA 5 DIAGRAMA DE REGISTRO DE USUARIO ................................................................................................ 7 FIGURA 6 PROCESO DE INTERACCIÓN CON LA APLICACIÓN ................................................................................. 8 FIGURA 7 MAPAS DE BITS DE UNA IMAGEN DISTINTO TAMAÑO DE PIXEL .......................................................... 15 FIGURA 8A) IMAGEN EN BLANCO Y NEGRO; B) IMAGEN CON 16 COLORES DISTINTOS; C) ESCALA DE GRISES CON 256 TIPOS DE COLOR EN ESCALA DE GRISES; D) ESCALA DE GRISES CON 256 TIPOS DE COLORES; E) IMAGEN FULL COLOR (GRAN VARIEDAD DE COLORES) ........................................................................................... 16 FIGURA 9 A) IMAGEN ORIGINAL; B) MISMA IMAGEN CON PROCESAMIENTO DE ESCALA DE GRISES ................... 17 FIGURA 10 A) IMAGEN ORIGINAL; B) MISMA IMAGEN APLICÁNDOLE BRILLO .................................................... 17 FIGURA 11 A) IMAGEN ORIGINAL; B) MISMA IMAGEN APLICÁNDOLE CONTRASTE ............................................. 18 FIGURA 12 A) IMAGEN ORIGINAL; B) MISMA IMAGEN APLICÁNDOLE MODIFICACIÓN DE COLORES ................... 18 FIGURA 13 PCA DE UN CONJUNTO DE PUNTOS BIDIMENSIONALES .................................................................... 19 FIGURA 14 UTILIZACIÓN DE LA DCT POR BLOQUES PARA CLASIFICAR UNA IMAGEN ........................................ 20 FIGURA 15 COMPARACIÓN DE LA PROYECCIÓN DE 2 CLASES EN PCA Y LDA ................................................... 20 FIGURA 16 ESQUEMA DEL PROCESO QUE CONLLEVA RUP ................................................................................ 23 FIGURA 17 NÚMERO DE PENSIONADOS EN MÉXICO [8] ..................................................................................... 24 FIGURA 18 MÓDULOS GENERALES DEL SISTEMA ............................................................................................... 36 FIGURA 19 MÓDULOS INTERNOS DE LOS MÓDULOS GENERALES DEL SISTEMA .................................................. 36 FIGURA 20 CUATRO DISTINTAS POSIBILIDADES DE OBTENER LOS VALORES HARR. ........................................... 42 FIGURA 21 PROYECCIÓN EN EL ESPACIO DE UNA IMAGEN ................................................................................. 44 FIGURA 22 EJEMPLO DE UN CLASIFICADOR DE ROSTROS DONDE EL PUNTO NEGRO REPRESENTA UNA NUEVA IMAGEN Y DONDE SE OBSERVA LOS DIERENTES IMAGENES ALMACENAS POR EL SISTEMA EN EL “FACE SPACE” ..................................................................................................................................................... 44 FIGURA 23 MATRIZ DE IMAGEN A VECTOR DE IMAGEN ..................................................................................... 45 FIGURA 24 DIAGRAMA GENERAL DE LOS ACTORES ........................................................................................... 48 FIGURA 25 DIAGRAMA DE CASOS DE USO PARA EL PENSIONADO ....................................................................... 49 FIGURA 26 DIAGRAMA DE CASOS DE USO DEL ADMINISTRADOR ....................................................................... 50 FIGURA 27 DIAGRAMA DE ACTIVIDADES: INICIAR SESIÓN ................................................................................. 51 FIGURA 28 DIAGRAMA DE ACTIVIDADES: CERRAR SESIÓN ................................................................................ 51 FIGURA 29 DIAGRAMA DE ACTIVIDADES: RECIBIENDO NOTICIAS ...................................................................... 51 FIGURA 30 DIAGRAMA DE ACTIVIDADES: ACTUALIZAR DATO .......................................................................... 52 FIGURA 31 DIAGRAMA DE ACTIVIDADES: ELIMINAR PENSIONADO .................................................................... 52 FIGURA 32 DIAGRAMA DE ACTIVIDADES: ELIMINAR ADMINISTRADOR ............................................................. 53 FIGURA 33 DIAGRAMA DE ACTIVIDADES: INSERTAR ADMINISTRADOR .............................................................. 53 FIGURA 34 DIAGRAMA DE ACTIVIDADES: INSERTAR PENSIONADO .................................................................... 54 FIGURA 35 DIAGRAMA DE ACTIVIDADES: DAR VOBO ....................................................................................... 54 FIGURA 36 DIAGRAMA DE ACTIVIDADES: INICIAR SESIÓN PENSIONADO ............................................................ 55 FIGURA 37 DIAGRAMA DE ACTIVIDADES: DETECTAR Y RECONOCER ROSTRO ................................................... 55 FIGURA 38 DIAGRAMA DE ACTIVIDADES: CERRAR SESIÓN ................................................................................ 56 FIGURA 39 DIAGRAMA DE ACTIVIDADES: RECIBIR NOTICIAS ............................................................................ 56 V FIGURA 40 DIAGRAMA DE ACTIVIDADES: RECIBIR ÚLTIMOS TRÁMITES ............................................................ 56 FIGURA 41 DIAGRAMA DE ACTIVIDADES: REALIZAR TRÁMITE DE SUPERVIVENCIA ........................................... 57 FIGURA 42 DIAGRAMA DE ACTIVIDADES: ACTUALIZAR DATOS ......................................................................... 57 FIGURA 43 DIAGRAMA DE ACTIVIDADES: REALIZAR CAMBIO DE DOMICILIO .................................................... 58 FIGURA 44 DIAGRAMA DE ACTIVIDADES: REALIZAR COMPROBANTE PARA PRÉSTAMO A CUENTA .................... 58 FIGURA 45 DIAGRAMA DE ACTIVIDADES: GENERAR PDF ................................................................................. 59 FIGURA 46 DIAGRAMA DE ACTIVIDADES: DAR SEGUIMIENTO ........................................................................... 59 FIGURA 47 DIAGRAMA DE CLASES DEL SISTEMA ............................................................................................... 61 FIGURA 48 DIAGRAMA ENTIDAD-RELACIÓN ...................................................................................................... 71 FIGURA 49 RELACIONAL DE LA BASE DE DATOS ................................................................................................72 FIGURA 50 RELACIONAL NORMALIZADO ........................................................................................................... 73 FIGURA 51 ESTRUCTURA GENERAL DE LA PÁGINA MAESTRA ............................................................................ 88 FIGURA 52 EJEMPLO DEL CONTENEDOR DE LA PÁGINA WEB .............................................................................. 89 FIGURA 53 DIAGRAMA GENERAL DEL ENTRENAMIENTO DEL SISTEMA .............................................................. 93 FIGURA 54 IMAGEN ORIGINAL PASÁNDOLA A ESCALA DE GRISES ...................................................................... 95 FIGURA 55 ALGORITMO VIOLA JONES .............................................................................................................. 96 FIGURA 56 AJUSTE DE TAMAÑO DE LA IMAGEN ................................................................................................. 97 FIGURA 57 OBTENCIÓN DEL VECTOR DE LA IMAGEN ......................................................................................... 97 FIGURA 58 PÁGINA WEB PARA EL INGRESO AL SISTEMA .................................................................................... 98 FIGURA 60 VENTANA DE CREACIÓN DE UN NUEVO PROYECTO ........................................................................ 100 FIGURA 61 AGREGAR CLASES Y ARCHIVOS DE MATLAB AL PROYECTO ........................................................... 100 FIGURA 62 EJEMPLO DEL DOCUMENTO GENERADO ......................................................................................... 103 FIGURA 63 A) DETECCIÓN DE ROSTRO CON POCA ILUMINACIÓN; B) DETECCIÓN DE ROSTRO CON BUENA ILUMINACIÓN.......................................................................................................................................... 105 FIGURA 64 RESULTADOS DEL CALCULO DE LAS DISTANCIAS........................................................................... 106 FIGURA 65 INTENTANDO INGRESAR AL SISTEMA CON 2 FOTOS POR USUARIO DENTRO DEL ENTRENAMIENTO .......................... 106 FIGURA 66 PRUEBAS CON ROSTRO NO INGRESADO EN EL ENTRENAMIENTO ................................................... 107 FIGURA 67 PRUEBA DE INGRESO AL SISTEMA, CUANDO NO ES UN ROSTRO EL QUE ESTÁ QUERIENDO INGRESAR ............................................................................................................................................................... 107 VI Índice de tablas TABLA 1 PROFUNDIDAD DE COLOR ................................................................................................................... 15 TABLA 2 RELACIÓN PENSIÓN ............................................................................................................................ 74 TABLA 3 RELACIÓN PENSIÓNADO_TELEFONO .................................................................................................. 74 TABLA 4 RELACIÓN CLÍNICA ............................................................................................................................ 75 TABLA 5 RELACIÓN PATRONES ........................................................................................................................ 75 TABLA 6 RELACIÓN PENSIONADO ..................................................................................................................... 76 TABLA 7 RELACIÓN TRÁMITES ......................................................................................................................... 77 TABLA 8 RELACIÓN ADMINISTRADOR ............................................................................................................... 78 TABLA 9 RELACIÓN ADMINISTRADOR_TELEFONO ............................................................................................ 78 TABLA 10 RELACIÓN CAMBIO_DOMICILIO ....................................................................................................... 79 TABLA 11 RELACIÓN SUPERVIVENCIA .............................................................................................................. 80 TABLA12 RELACIÓN PRESTAMO_CUENTA_PENSIÓN ........................................................................................ 80 TABLA 13 RESULTADOS AL VARIAR EL NÚMERO DE IMAGEN POR USUARIO .................................................... 105 2 CAPITULO I Introducción Hoy en día, gracias a las nuevas tecnologías y su penetración cada más evidente en todos los sectores de la sociedad, todo tiende a hacerse más sencillo y eficiente. Además, con el crecimiento de la Internet y las herramientas que esta nos brinda, nuestro estilo de vida va cambiando pues nos ofrece cada vez un mayor número de servicios que facilitan las labores del día a día. Dichos servicios son muy amplios, entre ellos podemos mencionar: el comercio electrónico, búsqueda de información, video-llamadas, realización de trámites, almacenamiento en la nube etc. Estos servicios siempre son desarrollados con el enfoque de optimizar, facilitar o brindar una alternativa a la que ya se tiene. Todo esto tomando en cuenta que en ciertos servicios donde se involucre información personal o transacciones de dinero, la seguridad es primordial. Los métodos de seguridad son muy variados y dependen del servicio, algunos de estos son: cifrado de información, certificados y firmas digitales, uso de protocolos confiables, métodos de autentificación por contraseñas, biometría, entre otros. Por otro lado sabemos que la realización de trámites vía internet en México aún no supera la realización presencial, aunque en los últimos años se ha presentado un gran crecimiento en esta área, algunos ejemplos son: pago de impuestos, tramites personales (actas de nacimiento, contratos de agua, CURP), reservación y compra de boletos, etc. Dicho crecimiento es consecuencia de las mejoras que presenta la realización vía internet, pues brinda mejoras como: la optimización de tiempo, ahorro de dinero, evitar filas y evitar la burocracia, problemas que todos conocemos al momento de la realización de trámites. Así pues, estas características que presenta la realización de trámites vía internet pueden beneficiar a sectores de la sociedad a los cuales se les dificulta el proceso presencial de la realización de dichos trámites. Este sector, podría ejemplificarse con los pensionados, a quienes se les pide con regularidad la realización de distintos trámites (por ejemplo, acudir cada cierto lapso de tiempo a una sucursal asignada para comprobar que ellos siguen con vida y así poder seguir cobrando su pensión). Si bien este sector de la población no solía tener un acercamiento significativo con las nuevas tecnologías, hoy en día esto ha cambiado y el acercamiento es cada vez mayor. Esto nos hace pensar que se podrían desarrollar plataformas pensadas para este tipo de sectores de la sociedad, las cuales no solo estén diseñadas para optimizar, facilitar o brindar algún tipo de servicio extra, sino que además piensen directamente en las personas y las circunstancias en las cuales estas se puedan encontrar, y que por medio de la interacción con la plataforma, la realización de cierta tarea, les resulte mucho más cómoda. 3 1.1 Planteamiento del problema El realizar trámites de manera presencial tiene la desventaja de que se tiene que invertir mucho tiempo, además de tener que desplazarse al lugar físicamente, aunque por otro lado brinda la ventaja de que garantiza (si el tramite así lo requiere) que la persona interesada es quien realmente realiza el trámite.En especial, el trámite de la continuidad del pago de pensiones (supervivencia) requiere que los interesados, que generalmente son personas mayores sean quienes personalmente tienen que trasladarse para realizar dicho trámite, lo que muchas veces además de ser engorroso, es difícil para éstas por cuestiones físicas, económicas u otras circunstancias. Por lo tanto, el problema que se presenta es que no se cuenta con ninguna alternativa real para la realización de este tipo de trámites de forma no presencial, como pudiera ser una aplicación Web, ya que esta alternativa permitiría un realización remota, y además es viable por el motivo de que hoy en día la mayoría de los hogares cuentan o tiene un fácil acceso a una computadora. Por otro lado no se debe olvidar que esta alternativa debe contar con un método de autentificación que garantice que la persona que está realizando el trámite sea realmente quien dice ser. El método de autentificación que se use debe ir más allá de una llave digital como la usada por las instituciones bancarias. Por ejemplo, se podría usar una autentificación basada en técnicas biométricas (reconocimiento facial, reconocimiento de voz, reconocimiento de iris, etc.). Específicamente llama la atención el reconocimiento facial, esto debido a que de esta forma se puede verificar que la persona que esté realizando el trámite es realmente quien dice ser, y que además en los últimos años esta rama de la biometría ha tenido un gran avance sobre otras. Estos avances también han sido variados, pues se tiene reconocimiento de rostros en dos y tres dimensiones, detección y reconocimiento de rostros sobre video, entre otras. Todos estos métodos a su vez pueden ser desarrollados utilizando distintas técnicas (algoritmos), lo cual trae como resultado la posibilidad de implementar sistemas de reconocimiento que respondan a distintos objetivos establecidos. También se recurre a esta técnica sobre otras tomando en cuenta que hoy en día la mayoría de las computadoras cuenta con una cámara bastante capaz de tomar una imagen que sirva para el proceso del reconocimiento facial, lo cual no implicaría gastos extras, como lo serian un lector de huellas digitales u otros dispositivos, lo cual la hace una técnica más atractiva y eficaz. El desarrollar una aplicación Web tomando en cuenta este problema, no solo debe presentar las ventajas clásicas de una plataforma de este tipo, sino que además debe pensar directamente en el usuario final y las condiciones en las que este se encuentre, para así proporcionarle una alternativa que permita la realización de trámites y consulta de información de forma remota. Al tener una aplicación con este enfoque, y conociendo que los encargados de la gestión de tramites a pensionados son las instituciones públicas, como lo son el IMSS, el ISSSTE, etc. La implementación de una aplicación Web debe considerar las herramientas y estándares que estas instituciones tomen en cuenta para el desarrollo de sus plataformas en Internet. 4 Si bien, la mayor parte del sector de los pensionados pertenecen a la tercera edad, esto no representa ningún problema para la implementación del sistema, ya que estudios del INEGI en 2011 y 2012 muestran que el 11.2% de los usuario del internet eran mayores a 45 años [1] y en 2012 este mismo sector de la población era el 13% de la los usuarios de internet en México [2] como se ve en las figura 1, esto nos dice que el sector al que va dirigida nuestra aplicación se está integrando cada vez más a esta tecnología llamada Internet. Por otra parte si el caso fuera que el pensionado no tuviera ningún conocimiento ni experiencia con el uso de computadoras o internet, este podría recibir ayudar de alguna otra persona, pues la plataforma solo necesita corroborar (por medio de la autentificación) que el pensionado está presente. Figura 1 Estudio del uso de internet en México en 2011 y 2012 por el INEGI Así pues ¿Por qué no desarrollar una alternativa para la realización de trámites y consulta de información para pensionados, tomando en cuenta todo lo dicho anteriormente? 1.2 Objetivos 1.2.1 Objetivo General Desarrollar una aplicación Web con autentificación biométrica basada en reconocimiento facial, que permita a determinada institución administrar trámites e información relacionada con los pensionados. 1.2.2 Objetivos Particulares Investigar y seleccionar los trámites e información relacionada con los pensionados. Realizar el análisis y diseño del sistema de trámites para pensionados. Investigar y comparar los distintos algoritmos de reconocimiento facial. Elegir el algoritmo encargado del reconocimiento facial. Desarrollar la Base de Datos que contendrá la información. Implementar el sistema de reconocimiento facial como método de autentificación vía Web. Implementar la aplicación Web. Probar el sistema como un conjunto. 0 5 10 15 20 25 30 6 a 11 12 a 17 18 a 24 25 a 34 35 a 44 45 a 54 55 - P o r c e n t a j e Edad Año 2011 Año 2012 5 1.3 Propuesta de solución Después de haber planteado el problema, se pretende dar solución a éste con el desarrollo de una aplicación Web que permita la realización de trámites y consulta de información de pensionados, y que además cuente con una autentificación por medio de reconocimiento facial, cabe señalar que la información utilizada en los trámites de los pensionados es de acceso restringido, por lo tanto, se diseñará e implementará una base de datos que simule el manejo de estos trámites. Las consideraciones que se tomarán para el desarrollo de esta base de datos estarán basadas en las investigaciones de campo del lugar donde se realizan éstos trámites. Para la implementación de esta aplicación, lo primero que se realizará es un análisis tanto de los distintos métodos y algoritmos enfocados al reconocimiento facial, así como de cuáles son las herramientas para desarrollo de aplicaciones Web utilizadas por las instituciones hacia las cuales va enfocada esta plataforma. Dentro de la investigación de los distintos algoritmos enfocados al reconocimiento facial, se hará una comparación de éstos considerando parámetros de: eficiencia, complejidad, ventajas, debilidades, etc. Esto tomando en cuenta las características de los equipos que se encargarán de la adquisición de la imagen con la cual se realizará el proceso de reconocimiento (cámaras web), esto con el objetivo de que la interacción entre el equipo de adquisición y la implementación del algoritmo sea lo más eficiente posible. Uno de los puntos a destacar en el análisis para la elección del algoritmo, es tomar en cuenta el entorno en el cual se hará la adquisición de la imagen que servirá para el reconocimiento facial. Si bien a la hora del registro se pudiera tener un entorno controlado como pudiera ser una iluminación y un fondo adecuado, una posición frontal de la cara y reducir al mínimo las expresiones. Sabemos que es muy probable que cuando el pensionado este interactuando con la aplicación, las condiciones no serán ni controladas, ni iguales para todos, ya que se tendrá diferente iluminación, diferentes fondos etc. Tomando en cuenta que las imágenes brindadas por las cámaras web actuales cuentan con una calidad bastante aceptable, el problema de tener un entorno no controlado se pretende atacar desde dos vertientes. Una de las posibles soluciones es someter las imágenes a un pre-procesamiento (normalización), de forma que nos ayude a adecuarlas lo más posible para que se lleve a cabo el proceso de reconocimiento. En la figura 2, se muestra la comparación de los algoritmos de: PCA (Principal Components Analysis), DCT (Discrete Cosine Transform) y LPP (Locality Preserving Projections), en donde se considera el problema del cambio de iluminación y como se trata de resolver con la normalización de las imágenes. La otraalternativa que se ha tomado en cuenta para combatir los efectos de un entorno no controlado es entrenar a nuestro sistema (si el algoritmo así lo requiere por ejemplo PCA, LPP) con una gama de imágenes que presenten la mayoría de estas posibles variaciones en el entorno, para que así nuestro sistema responda de una manera más adecuada a estas condiciones. 6 Figura 2 Tasa de identificación correcta para el caso de cambios de iluminación utilizando normalización de las imágenes [10] Dos de los puntos principales respecto al procesamiento de la imagen que servirá para el reconocimiento son: el trabajo de normalización sobre la imagen, así como el número de componentes que el sistema de reconocimiento devolverá, para que a partir de éstos crear un vector característico y buscarlo en la base de datos. Considerando estos aspectos, la elección del algoritmo estará basada en que el algoritmo tenga balance entre una respuesta rápida y una buena tasa de eficiencia. En la figura 3 se muestra un ejemplo de los tiempos correspondientes para los algoritmos PCA, DCT y LPP. Figura 3 Eficiencia computacional para un reconocimiento individual en función del número de componentes utilizado [10] Una vez que hemos tomado en cuenta distintas consideraciones sobre los problemas que presenta el reconocimiento facial, se pretende hacer una investigación de las principales categorías de algoritmos enfocados al reconocimiento y a partir de esta, decidir cuál es el más adecuado tomando en cuenta las condiciones bajo las cuales se realizará el reconocimiento. Por parte de las herramientas a utilizar para el desarrollo de la aplicación Web, se hará una investigación previa de las tecnologías de software existentes con las cuales las instituciones ya cuentan. Una vez que se estudien las herramientas con las cuales se podría desarrollar el sistema y 7 se analicen sus ventajas y desventajas, se tomará la decisión acerca de cuáles serán las más adecuadas para el desarrollo del sistema propuesto. Para el caso del software para la manipulación de los datos, se utilizará alguno de los manejadores de bases de datos comerciales, tales como: MySQL, Postgres, SQL Server y Oracle. La decisión acerca de cuál de estos gestores de bases de datos utilizar se realizará después de haber analizado los requerimientos del sistema, pues depende de la cantidad de información y nivel de concurrencia que tendrá. Pues cada uno de estos manejadores tiene distintas características funcionales, las cuales también se deben de analizar para tomar una decisión. Así pues en la figura 4 se muestra a grandes rasgos el funcionamiento de nuestra aplicación. Figura 4 Descripción de la aplicación Web Como ya se mencionó anteriormente, la autenticación de la aplicación Web será usando reconocimiento facial, sabemos que este proceso se basa en una adquisición de imagen, a la cual se le somete a un procesamiento definido por el algoritmo, para a partir de este poder obtener ciertas características específicas que definen a una persona. Estas características deberán estar almacenadas en una base de datos, la cual contenga las características de todos los usuarios que interaccionarán con la aplicación. La aplicación contará con un módulo en el cual el administrador tendrá la facultad de registrar nuevos usuarios y agregarlos a la base de datos, este proceso se describe gráficamente en la figura 5. Figura 5 Diagrama de registro de usuario Una vez que se tenga la base de datos con las características específicas de los usuarios, el proceso para que cada uno de estos acceda a la aplicación será el siguiente: 8 Lo primero que se realizará al igual que en el registro será la adquisición de una imagen por medio de la cámara Web, esta imagen será procesada de acuerdo al algoritmo usado, para obtener de igual forma las características específicas del usuario. Una vez que se cuente con estas características, se enviarán en modo de consulta a la base de datos, para buscar si hay algún registro que cuente con dichas características iguales o similares, esto con un cierto umbral de aceptación. Si el resultado de dicha consulta es positivo, el usuario que está intentando autentificarse podrá acceder a la aplicación e interactuar con esta, este proceso descrito se describe gráficamente en la figura 6. Figura 6 Proceso de interacción con la aplicación Cuando se haya realizado la recopilación y análisis de requerimientos será posible identificar a los distintos actores que interactuarán en el sistema. A partir de esto se procederá al modelado del sistema, con lo que se obtendrán los diagramas UML, los cuales especificarán las actividades que realizará el sistema. Así mismo conocer los escenarios y/o casos de uso de cada uno de los actores involucrados. Hasta el momento sólo se tienen contemplados a dos tipos de actores: los pensionados y el administrador. Una vez explicada la solución propuesta, este proyecto se limitará a realizar la autentificación de los usuarios (pensionados) desde la aplicación web y por consiguiente que estos puedan realizar determinados trámites. Así mismo, se manejará el concepto de sesiones de usuario para que éstos tengan acceso a diferentes partes del sistema dependiendo su perfil. También, se dará soporte a 2 trámites adicionales al de supervivencia. Cabe señalar que para conocer cuáles de estos trámites se les dará soporte, es necesario llevar a cabo un análisis de cada uno de los trámites y así poder recabar los requerimientos y a partir de aquí delimitar el sistema a aquellos trámites que sean factibles de realizar en la aplicación web. 9 CAPITULO II Estado del Arte 2.1 Antecedentes 2.1.1 Sistema web para la administración del capital humano del centro de investigación en computación del IPN Este trabajo corresponde a una Trabajo terminal realizado en la Unidad Profesional Interdisciplinaria en Ingenierías y Tecnologías Avanzadas, el cual consistió en la realización de un sistema web basado en una arquitectura cliente-servidor y apoyada en un servidor de base de datos. Lo que trató resolver fue el control de asistencia dentro del CIC, así como las actividades realizadas por cada integrante de cada departamento del CIC [3]. Todo esto fue realizado bajo un entorno Web, es por eso que lo mencionamos, ya que al igual que nosotros, este trabajo pretende brindar una plataforma que permita gestionar personal. 2.1.2 Plataforma de seguridad por medio de autentificación biométrica usando reconocimiento de iris, aplicado a un sitio web Es un trabajo terminal realizado en la Unidad Profesional Interdisciplinaria en Ingenierías y Tecnologías Avanzadas, el cual consistió en la realización de una autenticación biométrica basada en reconocimiento de iris para el acceso de un sitio web, la diferencia más grande con nuestro proyecto es que en este, solo se enfocan a crear el método de autentificación que podría ser aplicado a un entorno Web, en el cual se necesita adquirir un equipo especial, mientras que nosotros proponemos además de un método biométrico diferente, la implementación de toda la plataforma Web [4]. 2.1.3 Sistema prototipo para el control de asistencia por reconocimiento facial Es un trabajo terminal realizado en la Unidad Profesional Interdisciplinaria en Ingenierías y Tecnologías Avanzadas, el cual consistió en la realización de una autenticación biométrica para el paso de asistencia. La diferencia más grande con nuestro proyecto es que en este solo se enfocan a crear una propuesta para un control de asistencia, nunca una implementación [5]. 10 CAPITULO III Marco Teórico 3.1 Lenguajes de Programación Enfocados al Desarrollo de Sistemas Web Como ya se estableció anteriormente, la arquitectura del sistema estará basada en el modelo cliente- servidor, por lo cual el análisis de los lenguajes de programación tomarádos vertientes distintas, el lenguaje de programación usado en el lado del cliente y el usado en el lado de servidor. 3.1.1 Lenguajes de Programación del lado del Servidor Hoy en día, el número de herramientas con las cuales podemos desarrollar nuestro sistema Web en el lado del servidor son muy amplias, por lo tanto se procede a documentar cada una de éstas, para identificar su campo de acción así como sus posibles ventajas y desventajas sobre otros lenguajes. 3.1.2 ASP.net (Active Server Pages) Es una tecnología propietaria de Microsoft Corporation enfocada al desarrollo de sitios Web dinámicos. Los sitios Web desarrollados utilizando esta tecnología deben correr bajo el servidor Web ISS (Internet Information System). ASP no necesita ser compilado para ejecutarse. Existen varios lenguajes de programación para crear paginas ASP, el más utilizado es VBScript nativo de Microsoft.ASP, aunque también se puede utilizar Perl o JScript. El código ASP puede ser insertado junto con código HTML. Ventajas: Completamente orientada a objetos Controles de usuario personalizados División entre capas del sistema Facilita el mantenimiento de grandes aplicaciones Incrementa la seguridad (respecto a versiones anteriores) Desventajas: Un alto consumo de recursos Software propietarios Hospedaje de sitios costosos 3.1.3 JSP (Java Server Pages) Es una tecnología desarrollada originalmente por Sun Mycrosystems (adquirida por Oracle en 2009) enfocada al desarrollo de aplicaciones Web dinámicas basadas en código XHTML. Los sitios Web desarrollados bajo esta tecnología necesitan correr bajo un servidor Web compatible con contenedores servlets como Apache Tomcat o Glasfish. El lenguaje de programación que utilizan los JSP es java, por lo que todo JSP necesita ser compilado, lo que genera un alto desempeño que resulta más eficiente que otras tecnologías que ejecutan el código de una manera puramente interpretada. El código JSP puede ser insertado junto con código HTML. 11 Cada JSP se ejecuta en su propio hilo, es decir, en su propio contexto; pero no se comienza a ejecutar cada vez que recibe una petición, sino que persiste de una petición a la siguiente, de forma que no se pierde tiempo en invocarlo (cargar programa más intérprete). Su persistencia le permite también hacer una serie de cosas de forma más eficiente: conexión a bases de datos y manejo de sesiones, por ejemplo. Ventajas: Código separado de la lógica del programa Permite separar la parte estática del sitio de la dinámica Velocidad de ejecución Multiplataforma Open Source Desventajas: El desarrollo de interfaces requiere mucho código Es más difícil de aprender comparado con otras tecnologías 3.1.4 Python Es un lenguaje de programación creado en el año 1990 por Guido van Rossum, es el sucesor del lenguaje de programación ABC, Python es un lenguaje interpretado cuya filosofía hace hincapié en una sintaxis limpia y que a su vez favorezca un código legible. Se trata de un lenguaje de programación multi-paradigma, ya que soporta: Programación orientada a objetos. Programación estructurada. Programación funcional. Programación orientada a aspectos. Ventajas: Open Source Es de propósito general Gran cantidad de funciones y librerías Multiplataforma Desventajas: Lentitud de ejecución (por ser un lenguaje interpretado) 3.1.5 PHP (acrónimo recursivo que significa “PHP Hypertext Pre-processor”) Surgió en 1995, desarrollado por PHP Group. Es un lenguaje de programación enfocado para la creación de sitios web. PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. http://es.wikipedia.org/wiki/Int%C3%A9rprete_(inform%C3%A1tica) 12 Para su funcionamiento necesita tener instalado Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas características específicas. Ventajas: Fácil de aprender Soporta en cierta medida la orientación a objetos (Herencia y Clases) Multiplataforma Open Source Contiene un gran y diverso número de funcionalidades Código invisible para el navegador Desventajas: Todo el procesamiento se delega al servidor Dificulta el desarrollo basado en capas Lentitud de ejecución (por ser un lenguaje interpretado) 3.1.6 Ruby Desarrollado en el 1993 por el programador japonés Yukihiro Matsumoto. Es un lenguaje interpretado de alto nivel y orientado a objetos. Su sintaxis está inspirada en Phyton y Perl. Es distribuido bajo licencia de software libre (Open source). Ventajas: Multiplataforma Permite un desarrollo rápido Open Source Portabilidad Orientado a objetos Desventajas: La integración con la mayoría de los servidores Web no es sencilla Poca información comparada con los recursos de otros lenguajes 3.2 Lenguajes de Programación del lado del Cliente En este caso las herramientas con las que se puede contar son más limitadas, pero aun así vale la pena mencionarlas y saber las características de cada una de ellas. Se hace hincapié en esto por el motivo de que una presentación sencilla y con apariencia atractiva resulta más cómoda para el usuario. Además de que con este tipo de programación se puede evitar cierto trabajo para el servidor, por ejemplo si un numero de seguridad social constara de 10 número y el usuario por accidente u otra razón ingreso nueve, esos caracteres no viajaran al servidor si desde el lado del cliente se está validando que al menos el número de seguridad social que se está enviando no cuenta con el formato requerido. 13 3.2.1 HTML (HyperText Markup Language) Desde el surgimiento de internet se han publicado sitios web gracias al lenguaje HTML. Es un lenguaje estático para el desarrollo de sitios web. Desarrollado por el World Wide Web Consortium (W3C). HTML le indica al navegador donde debe ir colocando los elementos que el sitio contiene. Ventajas: Presenta una estructura organizada y agradable Fácil de aprender Admitido por todos los navegadores El tamaño de archivos es pequeño Desventajas: Su interpretación puede variar dependiendo cada navegador 3.2.2 JavaScript Este es un lenguaje interpretado, utilizado principalmente en páginas web. La mayoría de los navegadores en sus últimas versiones interpretan código Javascript. El código Javascript puede ser integrado dentro de páginas web. Para evitar incompatibilidades, la W3C diseño un estándar denominado DOM (Modelo de Objetos del Documento). Suele utilizarse para realizar pequeñas funciones dentro del sitio Web. Ventajas: La carga del procesamiento es realizada en el cliente Desventajas El código lo puede ver cualquier usuario El código debe descargarse completamente 3.2.3 CSS (Cascading Style Sheets) Las hojas de estilo en cascada hacen referencia a un lenguaje de hojas de estilos usado para describir la presentación semántica (el aspecto y formato) de un documento escrito en lenguaje de marcas. Su aplicación más común es dar estilo a páginas webs escritas en lenguaje HTML y XHTML. 3.3 Gestores de Bases de Datos. La Base de Datos en un sistema es una pieza fundamental para su correcto funcionamiento, por esto es útil hacer una investigación sobre los distintos gestores bases de datos que existen, para así tomar una decisión de cuál será el gestor a utilizar, el cual que almacenará la información del sistema. A continuación mencionaremos brevemente las características principales de los gestores de bases de datos más comunes. 14 3.3.1 Microsoft SQL Server Es producido por Microsoft y es un sistema para la gestión del sistema basado en el modelo relacional, la primera versión fue sacada en 1989 y a partir de esemomento ha ido tomando gran popularidad por su buen manejo de información. Sus características principales son: Capaz de realizar transacciones Llaves foráneas, procedimientos almacenados y triggers El entorno desde el cual puedes administrar la información es de modo grafico Permite trabajar de manera Cliente-Servidor, siendo el servidor quien aloja toda la información y el cliente puede consultarla Solo puede ser instalada en un Sistema operativo Microsoft Windows 3.3.2 MySQL Es un sistema gestor de datos basado en el modelo relacional, es de software libre y es desarrollado desde el 2009 por Oracle Corporation y Sun Microsystems. Sus características principales son: Compatible para cualquier sistema operativo. Llaves foráneas, procedimientos almacenados, funciones y triggers. 3.3.3 Oracle Sistema gestor de base de datos basado en el modelo relacional, es creado por Oracle Corporation. Sus características principales son: Compatible con todos los sistemas operativos comunes Soporte de transacciones Estabilidad Escalabilidad Ayuda a analizar datos y efectuar recomendaciones para mejorar el rendimiento y la eficiencia en el manejo de los datos. 3.3.4 PostgreSQL Es un sistema gestor de base de datos basado en el modelo relacional, se empezó a desarrollar en 1982. Sus características principales son: Alta concurrencia Permite el uso de triggers, procedimientos almacenados, llave foránea y funciones vistas. Uso de transacciones Soporte de transacciones distribuidas Compatible con todos los sistemas operativos comunes 15 3.4 Procesamiento Digital de Imágenes. Una imagen digital es una representación bidimensional de una imagen, esto es posible por medio de una matriz numérica la cual contiene la información necesaria para la representación de la imagen, pero antes de detallar esta información, es necesario saber que el tamaño de la matriz que representa la imagen define la resolución de la misma, esto lo podemos ver como si la matriz fuera una rejilla que se pondrá por encima de la imagen y esta dividirá la imagen en pequeños cuadros, estos cuadros serán llamados pixeles y contendrán una información del color que se le fue asignado. Por esta rejilla a la imagen digital se le conoce como la representación de una imagen en mapa de bits. Esto se puede ver más claro en la figura 7. Donde se muestran dos figuras las dos con el mismo número de pixeles, y la gran diferencia entre las dos es solo que el tamaño de la imagen es más pequeño pero en si la imagen contiene el mismo número de pixeles. Figura 7 Mapas de bits de una imagen distinto tamaño de pixel Una vez que sabemos que la información de una imagen digital está contenida en cada uno de sus pixeles es útil saber qué la información que almacena cada pixel es el color que tiene asignado y los colores que pueden ser almacenados dividen al mapa de bits en distintos tipos. A la capacidad de colores que pueden ser almacenados en un pixel se le conoce como profundidad de color y esta se puede observar de forma más clara en la figura 8. En la cual se muestra una tabla que señala los colores disponibles dependiendo el tamaño pixel que se desea utiliza, por ejemplo si seleccionamos un pixel con 4 bits esto nos da la posibilidad de utilizar 16 tipos de color estos en escala de grises, pero si se desea seguir manejando escala de grises utilizando una mayor diversidad de colores podremos usar pixeles de 8 bits. En los pixeles de 8 bits también podemos utilizar toda la distinta gama de colores que existen estos en una variedad de 256. Profundidad de color Colores Posibles Comentarios 1 bit por pixel 2 Arte lineal (B&N). Modo mapa de bits 4 bits por pixel 16 Modo escala de grises 8 bits por pixel 256 Modo escala de grises. Modo color indexado. Cantidad estándar de colores que admiten los formatos GIF y PNG-8 16 bits por pixel 65,536 High color 24 bits por pixel 16,777,216 True Color. Modo RGB 8 bits por canal (8x3). Modo Lab 8 bits por canal 32 bits por pixel 4,294,967,296 Modo CMYK Tabla 1 Profundidad de color 16 En la figura 8 podemos observar la misma imagen pero modificando la profundidad de color en ella, con lo cual podemos apreciar cómo va cambiando la resolución de la imagen si en está hay un mayor número de colores. Figura 8a) Imagen en blanco y negro; b) Imagen con 16 colores distintos; c) Escala de grises con 256 tipos de color en escala de grises; d) Escala de grises con 256 tipos de colores; e) Imagen full color (gran variedad de colores) Por último mencionaremos que si la imagen fuera a color, la información que se almacenaría en cada pixel vendría dada por una fila de valores que dictan los niveles de colores básicos que tiene el pixel, es decir, el rojo, verde y azul, de tal forma que si llamamos a un pixel como D, este estaría compuesto por D= (Rojo, verde y azul) y estos valores vendrían dados desde la escala de un pixel de 8 bits el cual nos daría una variabilidad de 256 tipos de escalas es decir de 0 al 255. Una vez visto las características esenciales de una imagen digital, podemos mencionar los distintos tipos de procesamiento de imagen los cuales son muy variados y de los cuales mencionaremos los más importantes y los que se pretenden utilizar. Los tipos de modificaciones que se le pueden hacer a la imagen generalmente son de 3 tipos los cuales son: modificación de color, modificación de imagen y generación de efectos. De las cuales empezaremos a hablar de la más sencilla la cual es la de modificación de imagen. 3.4.1 Modificación de imagen Esta técnica consiste en cambiar la posición de los vectores sin cambiar la información que contienen y de este tipo de imagen se derivan 3 esencialmente: Escalamiento (Scale) Este tipo de procesamiento consiste en cambiar el tamaño de la imagen, esto se obtiene quitando algunos pixeles si es que se desea una reducción y si es que se desea una ampliación se calcula un aproximamiento de colores dependiendo los valores que lo rodean. 17 Modificación de colores Estos tipos de procesamiento de imagen consisten en cambiar la información que contiene cada pixel haciendo un cambio en sus niveles de cada color. Este tipo de procesamiento tiene varios tipos de los cuales los más importantes son: Escala de grises (grayscale) Como ya se sabe el pixel está conformado por tres atributos (R, G, B) y para que estos sigan la escala de grises que se desea es necesario que cada pixel sea de la estructura pixel=(R, G, B) = (1, 1, 1) hasta (255, 255, 255).Un ejemplo de este procesamiento de imagen se puede ver en la figura 9, y la forma de calcular este valor, será dado por la ecuación : Ecuación 1 Figura 9 a) Imagen Original; b) Misma imagen con procesamiento de escala de grises Brillo Esto consiste en que ya conocida la información del pixel restar o sumar una constante y si restas el brillo disminuye y si suma el brillo va a aumentar y en la figura 11 se muestra una suma de constante y se ve que el brillo aumenta. Figura 10 a) Imagen original; b) Misma imagen aplicándole brillo 18 Contraste Esto consiste en variar la información del pixel de tal forma que el al variar los valores R, podrás manejar el contraste de la imagen, pero así mismo si mueves la información del campo R sus demás campos de información se verán afectados. Un ejemplo de este procesamiento de imagen se puede apreciar en la figura 11. Figura 11 a) Imagen original; b) Misma imagen aplicándole contraste Modificación de Colores Dada la información del pixel lo que hace este procesamiento es dar tres constantes distintas las cuales se sumarán o se restarán a la información del pixel, en la figura 12 se muestra este procesamiento aumentando los atributos R y B del pixel y el atributo G será disminuido, es decir, los valoresen tonos sus tonos verdes son disminuidos. Figura 12 a) Imagen original; b) Misma imagen aplicándole modificación de colores 3.5 Principales Metodologías Enfocadas al Reconocimiento Facial Cabe señalar que la presente información fue obtenida del documento [6], el cual nos sirvió para entender los algoritmos para el reconocimiento facial. Si bien existen dos enfoques de metodologías enfocadas a la tarea del reconocimiento facial (los cuales son los basados en modelos bidimensionales o tridimensionales, y los basado en la apariencia) en este trabajo nos enfocaremos a las metodologías basadas en la apariencia, esto por el motivo de que esta vertiente es la que cuenta con mayor documentación y desarrollo, además de que tienen la ventaja de que el procesamiento requerido comparado con una metodología basada en modelo es mucho menor, lo que resulta en un menor tiempo de respuesta. 19 Todos estos algoritmos necesitan una imagen fija de una cara con determinadas características, para que a continuación el algoritmo se encargue de representar dicha imagen en un sub-espacio vectorial en forma de un punto, en donde lo compara con las imágenes ya procesadas, para así poder tomar una decisión sobre la identidad de la persona. Proceso general de los algoritmos de reconocimiento facial: 1. El sistema utiliza un cierto número de imágenes determinadas para proyectarlas en el nuevo sub-espacio vectorial, para que estas después sean las encargadas de determinar si cierta imagen pertenece a alguna persona en específico. 2. Las imágenes que se quieren reconocer se proyectan en el sub-espacio vectorial y por medio de algún clasificador se determina la identidad de la persona. A continuación se desarrollan los principales algoritmos enfocados al reconocimiento de facial. 3.5.1 PCA (Principal Component Analysis) PCA es un método que transforma un número de variables posiblemente correladas en un pequeño número de variables no correladas llamadas componentes principales, es decir, es un algoritmo de reducción dimensional que permite encontrar los vectores que mejor representan la distribución de un grupo de imágenes. PCA está basado en la Transformada de Karhunen-Loeve (KLT), que consiste en la representación de un proceso estocástico no periódico a través de una base de vectores obtenidos complet . El objetivo de este método consiste en representar una imagen en términos de un sistema de coordenadas óptimo reduciendo e Figura 13 PCA de un conjunto de puntos bidimensionales 3.5.2 DCT (Discrete Cosine Transform) La DCT es una transformación que representa una secuencia finita de datos como la suma de una serie de funciones cosenoidales oscilando a diferentes frecuencias. Esta técnica es muy utilizada en aplicaciones de procesado de señal, desde compresión de audio e imágenes hasta métodos espectrales para la solución numérica de ecuaciones diferenciales. 20 La DCT es utilizada para obtener características de la imagen y luego usarlas para poderlas clasificar, como se hace con PCA. A diferencia de PCA, este método no necesita ser entrenado con imágenes del mismo tipo a las que se van a usar sino que simplemente se transforman directamente las imágenes, es decir, la base de la transformación es independiente de las imágenes. Otra de sus ventajas es su bajo coste computacional. Figura 14 Utilización de la DCT por bloques para clasificar una imagen 3.5.3 LDA (Linear Discriminant Analysis) LDA tiene como objetivo convertir un problema de alta dimensionalidad en uno de baja. Para ello LDA proyecta los datos (imágenes) en un espacio vectorial de baja dimensionalidad de manera que la ratio entre la distancia entre clases y la distancia dentro de la clase se maximiza. De este modo se garantiza una máxima discriminación entre las clases. A diferencia de PCA, que es un método de reducción dimensional sin supervisión, LDA sí que es supervisado y utiliza información de los datos. Figura 15 Comparación de la proyección de 2 clases en PCA y LDA 3.6 Herramientas computacionales enfocadas al reconocimiento facial Esta parte de la investigación se enfocará a la documentación de las distintas herramientas que existen y que sirven como apoyo y optimización al procesamiento de imágenes, que a su vez desemboca en un mejoramiento al proceso del reconocimiento facial. 21 En este último par de años hemos visto el surgimiento de dispositivos que incorporan módulos de reconocimiento facial como una de sus funciones más novedosas, ejemplos de esto es el método de desbloqueo del teléfono galaxy S4 en el cual el usuario debe mirar hacia la cámara del dispositivo y por medio de un registro previo y de una comparación con este registro el teléfono decide si es el usuario y lo desbloquea. Otro dispositivo el cual en principio no contaría con un módulo de reconocimiento facial por motivos de seguridad, pero hoy gracias a distintos desarrolladores es un hecho, son los Google Glass el cual al reconocer el rostro de una persona, la buscara en los contactos y podrá mostrar distinta información relacionada. Así pues a continuación se presentan algunas de las herramientas enfocadas al reconocimiento facial que parecieron más interesantes sobre otras: 3.6.1 OpenCV Es una biblioteca enfocada a la visión artificial, fue originalmente desarrollada por Intel. OpenCV fue liberado bajo una licencia BSD y por lo tanto puede ser utilizada para fines comerciales o educativos. Una de las mayores ventajas de esta biblioteca es que es multiplataforma pues es compatible con Windows, Linux, MacOSX, iOS y Android, además cuenta con interfaces para C++, C, Python y Java. Fue desarrollada pensando en una alta eficiencia computacional y con un alto enfoque para aplicaciones en tiempo real. OpenCV cuenta con una comunidad mayor a las 47 mil personas las cuales comparten documentación, experiencias y preguntas, además las descargas de esta biblioteca han superado los 6 millones. Cuenta con más de 500 funciones que abarcan una gran gama de áreas de la visión artificial como la calibración de cámaras, el reconocimiento de objetos, visión robótica entre otras. 3.6.2 EmguCV E CV v v (“w ”) b b O CV implementada en el framework de .NET, lo que trae como resultado que se puedan llamar todas las funciones pertenecientes a OpenCV desde un entorno .NET, como lo pueden ser lenguajes de programación C#, Visual Basic, Visual C++, Iron Python etc. Y al igual que OpenCV puede ser implementado en Windows, Linux, MacOSX, iOS y Android. EmguCV está desarrollada en C# y cuenta con algunas ventajas que OpenCV no cuenta como lo es la recolección automática de basura. 3.6.3 AForge.NET AForge.NET es un framework Open Source de C# enfocado a la visión por computadora y a la inteligencia artificial, con campos de acción muy amplios como lo son el procesamiento de imágenes, las redes neuronales artificiales, la lógica difusa, robótica, etc. El framework está compuesto básicamente por las siguientes bibliotecas: AForge.Imaging: Biblioteca que contiene rutinas y filtros aplicables al procesamiento de imágenes. AForge.Vision: Biblioteca enfocada a la visión artificial por computadora AForge.Video: Biblioteca enfocadas al procesamiento de video AForge.Neuro: Biblioteca enfocada a las redes neuronales artificiales 22 AForge.Genetic: Biblioteca enfocada a los algoritmos genéticos AForge.Fuzzy: Biblioteca enfocada a la lógica difusa AForge.Robotics: Biblioteca enfocada a algunos kits de robótica AForge.MachineLearning: Biblioteca a las máquinas de aprendizaje AForge cuenta con una amplia documentación y distintos foros donde los usuarios pueden intercambiar opiniones e información. 3.6.4 Matlab Matlab es unlenguaje de alto nivel que cuenta con un entorno interactivo para el cálculo numérico, la visualización y la programación. Mediante Maltab, es posible analizar datos, desarrollar algoritmos y crear modelos o aplicaciones. [7] Además cuenta con un gran número de funciones que ayudan a las principales tareas de los algoritmos enfocados al reconocimiento facial. 23 CAPITULO IV Análisis y Diseño Al pretender desarrollar el presente proyecto, es necesario contar con una metodología que nos indique como debe ser el desarrollo de esta plataforma (software). Si bien existen distintos modelos a seguir como lo son: Modelo de cascada Modelo de espiral Modelo iterativo e incremental Llama particularmente la atención el modelo RUP (Rational Unified Process) por el hecho de que es un modelo genérico adaptable a las necesidades del desarrollo en cuestión, además de que ayuda a identificar todas las etapas del desarrollo del sistema como lo son el planteamiento del sistema, el análisis de requerimientos, el análisis y diseño del sistema, la implementación, pruebas del software como conjunto y la afinación del mismo. Dentro de estas etapas mencionadas, y bajo el eje horizontal del diagrama que representa el tiempo se pueden manejar determinado número de iteraciones dentro de la misma etapa, esto resulta bastante conveniente pues en la mayoría de las etapas se necesita re-analizar y volver a definir ciertos aspectos del proyecto. Figura 16 Esquema del proceso que conlleva RUP 4.1 Investigación y selección de los distintos trámites a realizar en la plataforma El objetivo principal de este proyecto terminal es brindar una plataforma Web que permita a determinada institución gestionar trámites e información relacionada con los pensionados. Es por eso que un paso inicial debe ser el de determinar cuál será la institución para la cual se desarrollará esta plataforma. Las dos instituciones más grandes que soportan a los pensionados son el IMSS (Instituto Mexicano del Seguro Social) y el ISSSTE (Instituto de Seguridad y Servicios Sociales de los trabajadores del Estado), por lo cual el proceso de selección quedara entre estas dos, si bien existen algunas otras instituciones que dan soporte a los pensionados como el ISSEMYM (Instituto de Seguridad Social 24 del Estado de México y Municipios) estas por ser nuevas o no tener un gran número de afiliados como las mencionadas anteriormente, no brindan de manera fácil la información que nosotros requerimos para la elaboración del sistema. Lo dicho anteriormente se puede ejemplificar claramente en la Figura 17, donde se observa que estas dos instituciones cuentan con un número muy grande de pensionados, además de que con el paso de los años el número ha ido aumentando. Figura 17 Número de pensionados en México [8] Respecto a estas dos instituciones necesitaremos recopilar información sobre los distintos trámites que los pensionados realizan. Por lo tanto se llevó a cabo una investigación de campo tanto en una clínica del IMSS y una del ISSSTE. Obteniendo como resultado que en el sitio Web del IMSS se encuentra toda la información acerca de los trámites disponibles a los cuales los pensionados pueden tener acceso, desde cómo iniciar su proceso para pensión hasta un cambio de domicilio [9]. Todos éstos se detallan y especifican para que su proceso sea más rápido, lo cual es de gran utilidad para nosotros ya que nos brinda información necesaria para modelar nuestro sistema. Por otra parte en el sitio Web del ISSSTE solo se pueden encontrar estadísticas sobre sus pensionados, así como las leyes que los rigen [10]. Si se quisiera más información acerca de trámites, se nos solicitó acudir a oficinas centrales. Es por esto que decidimos desarrollar nuestro proyecto basados en los requisitos y modo de trabajo del IMSS, además de que esta institución es la líder en gestión y soporte a pensionados. Cabe destacar que el concepto de pensionado va mucho más allá de una persona de edad mayor, una persona asegurada por parte del IMSS puede estar pensionada bajo una de las siguientes circunstancias: Incapacidad permanente Invalidez Cesantía en edad avanzada o vejez Retiro Viudez Orfandad Así pues, ahora se puede definir una pensión como una prestación económica que se otorgará a un trabajador asegurado o a sus beneficiarios cuando este cumpla con las condiciones para solicitarla. Estas condiciones están descritas a detalle en la Ley del Seguro Social, sin embargo no se 25 profundizará en este aspecto, ya que nuestro sistema trabajará o asumirá que las personas a las cuales se les brindara la oportunidad de realizar los trámites ya cuentan con una pensión de cualquier tipo de las antes mencionadas. En la sección de trámites del sitio Web del IMSS, específicamente en la sección de pensionados [9], se pueden consultar los distintos trámites a los cuales los pensionados tienen derecho, leyendo todos estos y analizando cuales pueden ser los más factibles y agiles para su realización vía Web, se eligieron algunos, esto sin dejar de lado el trámite de la supervivencia el cual fue la motivación principal para el desarrollo de este proyecto terminal. Antes de indicar cuáles serán los tramites que implementaremos en nuestro sistema, es necesario aclarar que es la credencial ADIMSS ya que posteriormente se mencionará en los requisitos de algunos trámites. La credencial ADIMSS es con la cual se identifican las personas como derechohabientes de esta institución. Tienen derecho a obtener su credencial ADIMSS tanto los asegurados en el IMSS como su familia nuclear (esposa o concubina, hijos). Los trámites seleccionados fueron los siguientes: 4.1.1 Comprobación de supervivencia Clave del trámite: IMSS-01-024 Descripción: Conforme a la Ley del Seguro Social, todas las personas que reciben pensión están obligadas a comprobar supervivencia en un periodo máximo de seis meses. La primera fecha de comprobación no debe exceder de seis meses a partir del primer mes de pago, al realizar la comprobación de supervivencia, se le entregará un comprobarte, el cual indica la próxima fecha máxima de comprobación de supervivencia. Requisitos: Estar vigente en su calidad de pensionado El pensionado debe acudir personalmente, presentando la siguiente documentación: Identificación oficial con fotografía y firma (credencial para votar, o cartilla del Servicio Militar Nacional, o pasaporte o, cédula profesional, o credencial ADIMSS, o cédula de identidad personal para menores de edad), tratándose de extranjeros pasaporte o Forma Migratoria, original y copia para cotejo. En caso de ser menor de 9 años de edad se aceptará como identificación la credencial escolar con fotografía vigente expedida por una institución educativa con registro del Sistema Educativo Nacional o documento con fotografía expedido por la Delegación o Municipio en donde se haga constar la identidad del menor. Original solo para cotejo Documento que contenga el número de seguridad social expedido por el IMSS, INFONAVIT o AFORE, no necesario cuando presente la credencial ADIMSS. Original solo para cotejo. Nota: En el caso de pensión por orfandad y ascendientes deben acudir todos los Beneficiarios. 26 Cuando el pensionado no pueda acudir al Módulo de Comprobación de Supervivencia por causas de fuerza mayor, podrá comprobar supervivencia con los siguientes documentos: Constancia de internamiento en hospitales del IMSS expedida por Trabajo Social, con antigüedad de expedición hasta de 48 horas a la fecha de la solicitud. Este documento se queda en el expediente. Constancia de internamiento en Centros de Readaptación con antigüedad de expedición hasta de 30 días naturales a la fecha de la solicitud. Este documento se queda en el expediente. Nota médica elaborada en visita domiciliaria de médico
Compartir