Está en la página 1de 67

UNIVERSIDAD NACIONAL DE INGENIERÍA

FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS


INSTITUTO DE INVESTIGACIÓN

ENTREGABLE Nº 01
PROYECTO DE INVESTIGACIÓN – 2019
“SISTEMA AUTOMATIZADO BASADO EN TECNOLOGIA DE VISION
COMPUTACIONAL PARA LA GESTION DE ASISTENCIA ESTUDIANTIL DE
LA FACULTAD DE INGENIERÍA INDUSTRIAL Y DE SISTEMAS DE LA
UNIVERSIDAD NACIONAL DE INGENIERÍA

ELABORADO POR:

JEFE DE PROYECTO: MSc. CORDOVA NERI, TEODORO LUCIANO

FECHA DE ENTREGA: 23 abril 2019


ÍNDICE

DESCRIPTORES TEMÁTICOS............................................................................5

RESUMEN............................................................................................................ 6

CAPÍTULO I PLANTEAMIENTO DEL PROBLEMA............................................8

1.1 DETERMINACION DEL PROBLEMA.......................................................8

1.2 FORMULACION DEL PROBLEMA.......................................................8


1.2.1 Problema general.................................................................................. 8
1.2.2 Problemas específicos...........................................................................9

1.3 Justificación E importancia................................................................9


1.3.1 Importancia del tema investigación........................................................9
1.3.2 Justificación del problema (Técnica, Institucional, Personal).................9

1.4 Delimitación del problema....................................................................10

1.5 DETERMINACIÓN DE OBJETIVOS...................................................11


1.5.1 Objetivo General..............................................................................11
1.5.2 Objetivos Específicos......................................................................11

1.6 HIPÓTESIS Y VARIABLES.................................................................11


1.6.1 Hipótesis General................................................................................12
Con la implementación de un Sistema Automatizado de Gestión Estudiantil
aplicando Visión Computacional se contribuirá en la mejora del proceso de
asistencia en la Facultad de Ingeniería Industrial y Sistemas de la
Universidad Nacional de Ingeniería..............................................................12
1.6.2 Hipótesis Específicas...........................................................................12

1.7 IDENTIFICACIÓN DE VARIABLES....................................................12


1.7.1 Variable Dependiente..........................................................................12
1.7.2 Variable Independiente........................................................................12

1.8 OPERACIONALIZACIÓN DE VARIABLES........................................13


CAPÍTULO II MARCO TEÓRICO Y CONCEPTUAL.........................................15

2.1 ANTECEDENTES DE LA INVESTIGACIÓN.......................................15

2.2 BASES TEÓRICAS.............................................................................16


2.2.1 Dinámica de reconocimiento de rostros...............................................16
2.2.2 Historia del reconocimiento facial........................................................18
2.2.3 Modelo dinámico..................................................................................20
2.2.4 Diagrama de Estados:.........................................................................20
2.2.5 Diagrama de Sucesos:.........................................................................21
2.2.6 Modelos matemáticos..........................................................................21
2.2.7 Ubicación y detección de ojos.............................................................22
2.2.8 Análisis de componentes principales (ACP Ó PCA)............................23
2.2.9 Comparación de la proyección de 2 clases en PCA y LDA.................26

Perfilometría Wavelet.................................................................................. 26

2.3 Elementos y relaciones en los modelos dinámicos.......................29

2.4 Relación causal: Modelo de base de datos.....................................32

2.5 Tipo de relaciones..............................................................................35

2.6 ObjMark...............................................................................................36

2.7 Elementos de Software......................................................................38

2.8 OpenCV...............................................................................................46
2.8.1 Matrices............................................................................................... 50
2.8.2 Crear menús interactivos.....................................................................51
Ventajas........................................................................................................51
Inconvenientes..............................................................................................52

2.9 EJEMPLOS DE PROGRAMAS INTERATIVOS.................................52

2.10 INTERFAZ GRAFICA DE USUARIO...............................................53

2.11 TIPOLOGÍA DE GUI O INTERFACES GRÁFICAS.........................54

2.12 TKINTER..........................................................................................55

2.13 Detección de Rostros.....................................................................56


CAPÍTULO III:.....................................................................................................60

DISEÑO METODOLOGICO................................................................................60

3.1 Tipo y diseño de LA INVESTIGACIÓN..............................................60


3.1.1 Tipo......................................................................................................60
3.1.2 Diseño..................................................................................................60

3.2 Metodo de investigación.......................................................................61

3.3 población y muestra..........................................................................61


3.3.1 Población.............................................................................................61
3.3.2 Muestra................................................................................................61

REFERENCIAS BIBLIOGRÁFICAS...................................................................63
DESCRIPTORES TEMÁTICOS

Base de datos

Computacional

Curso

Grupos Horario

Gestor de Modelamiento

Inteligencia Artificial

Interfaces

Librerías

Visión
RESUMEN

La actividad del docente en el proceso de enseñanza/aprendizaje no se limita


a impartir una clase, hoy en día sino su labor se encuentra diversificada en
investigación, tutoría, entre otras, además de una serie de actividades
administrativas, tales como: firmar entrada y salida de clases, pasar lista a
los alumnos en aula, poner a disposición de los alumnos material digital en una
página web, entre otras.

Actualmente el registro de asistencia de los alumnos en la facultad no se ha


estandarizado para realizarse de una manera objetiva tal proceso, cada
docente lo realiza de forma distinta, algunas formas son: puntualmente al iniciar
su clase, después de unos minutos de tolerancia de entrada, al terminar la
sesión, al inicio y fin de clase para comprobar que el alumno efectivamente
asistió a la sesión completa, al inicio de cada hora cuando las sesiones son
largas, existen quienes no pasan lista, etc. provocando que el alumno solo
asista a la hora en la que el docente pasa asistencia al grupo y saliendo del
salón el resto de la clase.

El pase de lista en las aulas sigue siendo un tema de contradicciones para


algunas de las personas que aún están en contra con la evolución e
implementación de sistemas automatizados basados en el uso de las nuevas
tecnologías, ya que, argumentan que podría ser más confiable seguir con el
método tradicional en vez de utilizar la tecnología innovadora.

El presente trabajo de investigación, consiste en disponer para la facultad de


una solución tecnológica para gestionar el control de asistencia estudiantil
utilizando el reconocimiento facial del alumno mediante un sistema Student
Assistance System (S.A.S).

También el sistema tiene un alcance para conocer en tiempo real asistencia de


docentes en aula. Respecto a hora de entrada, intermedios y salidas

Este trabajo no solo nos ayudará a poder captar las asistencias de los alumnos,
también veremos cómo podremos obtener una serie de datos y estadísticas
que nos beneficiarán para futuros proyectos de mejora.

Conocer indicadores tales como: curso con mayor cantidad de asistencia e


inasistencia estudiantil, áreas con menor cantidad de asistencia, alumno con
mayor cantidad de inasistencias a nivel facultad, a nivel área, etc.

Estos resultados sirven para las autoridades conocer los alumnos con cursos
en riesgo académico.

Su éxito de la presenta aplicación tecnológica tiene un alcance a nivel


Universidad
CAPÍTULO I
PLANTEAMIENTO DEL PROBLEMA

1.1 DETERMINACION DEL PROBLEMA


La Facultad tienen un rol relevante de brindar servicios en Gestión
Administrativa y Académica, en especial las escuelas profesionales de
Ingeniería Industrial y de Sistemas responsables de la programación
académica por ciclos, esta programación se hace en base a la
experiencia o mediante un proceso de simulación, es decir se programan
secciones /horario y se comete un error de no verificar los cruces de
horario de alumnos, lo cual genera cruces de alumno/horario, este
resultado se genera debido que la Facultad no dispone de estadísticas
de la cantidad de cruce de horarios, alumnos desaprobados, alumnos
con un alto indicador de inasistencias quienes no están aptos para
matricularse en un curso cumpliendo las normas y según reglamento

1.2 FORMULACION DEL PROBLEMA


1.2.1 Problema general
¿Cómo influye la Tecnología de Visión Computacional en la mejora de la
Gestión de Asistencia Estudiantil?

8
1.2.2 Problemas específicos
a) ¿Cómo influye la Tecnología de Visión Computacional en el
rendimiento estudiantil ¿
b) ¿ Cómo influye la Tecnología de Visión Computacional en la calidad
estudiantil ¿

1.3 JUSTIFICACIÓN E IMPORTANCIA

1.3.1 Importancia del tema investigación


El trabajo de investigación tiene importancia por la aplicación de
Tecnología de Visión Computacional y la Gestión de Base de Datos a un
Sistema del mundo real, buscando la identificación de problemas y luego
formular el Modelos de solución
1.3.2 Justificación del problema (Técnica, Institucional, Personal)

a)Tecnológico

El sistema S.A.S utiliza herramientas tecnológicas como OpenCV y el lenguaje


de programación Python asimismo utiliza los actuales conceptos de visión
artificial.

b)Reduce carga de trabajo

La forma tradicional de rastrear la asistencia es a través de una lista, pero el


nuevo sistema ahorra tiempo y reduce la carga de trabajo de los profesores.

En apoyo a esta tarea y con la ayuda de la herramienta OpenCV y Python se


propone el registro de asistencia de los estudiantes mediante reconocimiento
facial, apoyando al docente y plana admirativa con la automatización de esta
tarea administrativa que debe realizar diariamente.

c) Práctico

9
El uso del sistema S.A.S facilita la utilización por parte de los estudiantes
donde ellos solo posicionaran su rostro para su identificación y posterior
automático marcado de asistencia.

d)Preciso y robusto

El sistema S.A.S está diseñado de tal forma que reconocerá al estudiante


basándose en una base de datos previamente creada y asi evitara la
suplantación del mismo en las actividades académicas.

e)Justificación

La Facultad de Ingeniería Industrial y de Sistemas (UNI) no cuenta con una


herramienta tecnológica que facilite tanto al estudiante como al docente el
marcado de asistencia a clases de las asignaturas, es por ello que se ha
realizado la presente investigación, buscando obtener los siguientes beneficios:

 Es una herramienta tecnología que se implementaría en la FIIS.


 Innovación en los procesos de asistencia a clases.
 Fácil comunicación entre profesor, alumno y autoridades a través de la
transferencia de información dada en ese entorno.
 Integración de las tecnologías reconocimiento facial en la Facultad de
Ingeniería Industrial y el sistema de asistencia a clases.
 El proyecto permite una interacción humano computador (HCI), al permitir
una comunicación más fluida entre un usuario y el computador.
 Las autoridades pueden hacer un monitoreo en tiempo real de las
incidencias en aula: presencia de docente, asistencia de alumnos.

1.4 DELIMITACIÓN DEL PROBLEMA


En cuanto a las limitaciones, se puede señalar las siguientes:

 El sistema estuvo centrado para los estudiantes y docentes de la Facultad


de Ingeniería Industrial y de Sistemas (UNI)
 Es necesario que los estudiantes se encuentren registrados en la base de
datos para su identificacion y posterior asistencia.
10
 La captura y analisis de fotos será solo en posicion frontal.
 Limitaciones del Software
- Windows 10
- OpenCV 2.4.9
- Python 2.7.11
- Tkinter
 Limitaciones del Hardware:
Procesador: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz 2.60 GHz
Memoria (RAM): 8.00 GB (7.82 GB utilizable)
Tipo de sistema: Sistema operativo de 64 bits, procesador x64

1.5 DETERMINACIÓN DE OBJETIVOS

1.5.1 Objetivo General


Diseñar una aplicación en Tecnología de Visión Computacional para
mejorar la Gestión la Asistencia Estudiantil.

1.5.2 Objetivos Específicos


a) Evaluar como la Tecnología de Visión Computacional influye en el
rendimiento estudiantil
b) Evaluar como la Tecnología de Visión Computacional influye en el
rendimiento estudiantil

11
1.6 HIPÓTESIS Y VARIABLES
1.6.1 Hipótesis General
Como la Con la Tecnología de Visión Computacional mejora la gestión de
asistencia estudiantil.
1.6.2 Hipótesis Específicas

a) Como la Tecnología de Visión Computacional mejora el rendimiento


académico.
b) Como la Tecnología de Visión Computacional mejora la calidad estudiantil

1.7 IDENTIFICACIÓN DE VARIABLES

1.7.1 Variable Dependiente


Tecnología de Visión Computacional

1.7.2 Variable Independiente


Gestión de Asistencia Estudiantil

12
1.8 OPERACIONALIZACIÓN DE VARIABLES

Tabla 1.1 Operacionalización de las variables

Dimensión Indicador Descripción Técnica Instrumento

El objetivo es hacer un Fichaje,


Rendimiento control de asistencia al generada  Ficha de
Gestión estudiantil clases y como por el ide alumnos
de consecuencia un buen y la bd
Asistencia rendimiento académico
Estudianti
l Controlar los efectos
Calidad positivos valorados nivel  Ficha de
micro y macro por la alumnos
estudiantil Fichaje
sociedad. :

Fuente: Propia.
Elaboración: Propia.

13
CAPÍTULO II
MARCO TEÓRICO Y CONCEPTUAL

2.1 ANTECEDENTES DE LA INVESTIGACIÓN

En los últimos años, la ralentización de la gestión de las asistencias se ha


incrementado convirtiéndose poco a poco en una molestia para los
docentes al transferir los datos al sistema de evaluación del alumno.
Además del aumento de inasistencias a las clases debido a la facilidad con
la que se han vuelto las suplantaciones.

La universidad de China en Pekín utiliza tecnología de reconocimiento


facial en el control de asistencias de sus estudiantes, dejando atrás el
método tradicional de pasar una lista para ahorrar tiempo y reducir la carga
laboral. Según datos del Instituto de la Industria del Futuro de China, el
mercado de reconocimiento facial en China superó los 150 millones de
dólares estadunidenses en 2016 y se espera que llegue a 750 millones de
dólares para el año 2021. Lo cual es razón de motivación de adoptar esta
medida al plano local y mejorar nuestra realidad.
Un primer guía utilizado como soporte de la investigación son los
conocimientos compartidos de forma didáctica para el logro de la
implementación del reconocimiento facial mediante la librería Open CV en el
lenguaje C++ de los asesores Ph.D. Aldo Camargo Fernández-Baca y el
Magister Teodoro Córdova Neri de la Facultad de Ingeniería Industrial y
de Sistemas pertenecientes a la Universidad Nacional de Ingeniería. En
este trabajo se seleccionan tres diferentes algoritmos de reconocimiento
15
Fuente: EFEShanghái (China) 25 oct. 2017
facial: Eigenface, Fisherface e Histograma Patrones Binarios Locales y se
desarrolla una aplicación que reconoce a un sujeto previamente
almacenado en su base de datos.

Una aplicación relacionada es "Face Recognition & Facial DNA", la cual


utiliza un algoritmo de LBP (Patrón Binario Local), sobre un sistema
Android. Es un sencillo pero eficaz algoritmo de texturas para las etiquetas
de los pixeles de una imagen por el barrido de umbrales de cada pixel,
dicho resultado se toma como un número binario para el reconocimiento de
un rostro. Para que la aplicación funcione correctamente la cámara del
dispositivo Android debe tener una resolución mínima de 176x144 pixeles.
(GooglePlay, 2014). "NameTag" registra la fotografía de una persona
desconocida, y la comparar contra millones de registros en línea entregando
de vuelta: nombre, fotos relacionadas y los enlaces a los perfiles en
diversas redes sociales (iTunes, 2015).

2.2 BASES TEÓRICAS


Visión Artificial/Visión Computaciónal
La visión artificial es un sub-campo de la inteligencia artificial que a
través de m o d e l o s c i e n t í f i c o s , t é c n i c a s a d e c u a d a s , p e r m i t e l a
obtención procesamiento y análisis de cualquier tipo de
información especial obtenida a través de imágenes digitales.

Los objetivos de visión artificial incluyen:



La detección, segmentación, localización y reconocimiento
d e objetos en imágenes.
Ejemplo, caras "humanas”.
• La evaluación de los resultados.
• Registro de imágenes de una misma escena u n objeto, es
d e c i r , " c a p a c i d a d p a r a c o n c o r d a r un mismo objeto en diversas
imágenes”.
• Seguimiento del objeto en una secuencia de imágenes.

16
• Mapeo de una escena para generar un modelo
tridimensional de la escena
• Estimación de las posturas tridimensionales de humanos.

Estos objetivos se consiguen por medio del estudio de:


• Procesamiento de imágenes.
• Reconocimiento de imágenes.
• Aprendizaje estadístico.
• Geometría de proyección.
• Teoría de grafos

El principio de funcionamiento de un sistema de visión artificial consiste en la


captación de imágenes a través de sensores (cámaras)
p a r a s u p o s t e r i o r tratamiento a través de técnicas de procesamiento
avanzadas, permitiendo así intervenir sobre un proceso o sistema.

Características de un sistema de visión artificial:


S o n l a s siguientes:
• Analizan luz o color reflejado.
. Miden nivel de luz
Detectan bordes y formas
Analizan color.
• Actúan si contacto, es decir no deformar el material.
• Se puede analizar un objeto en movimiento.
• Son automáticos. Alta velocidad de procesado.
• Flexibles: basados en software.

'Entorno informático.
Un sistema de visión artificial se compone de los siguientes
elementos:

a. Fuente de Luz
La fuente de luz constituye un aspecto importante ya
que debe proporcionar unas condiciones de iluminación uniforme e
17
independiente del entorno, facilitando además, si es posible, la extracción de los
rasgos de interés para una determinada aplicación.
b.- Sensores de Imágenes
Los sensores de imágenes son componentes sensibles a la
l u z q u e modifican su señal eléctrica en función de la intensidad luminosa
que perciben. Es el elemento encargado de recoger las características del objeto bajo
estudio.

c. Tarjeta de captura o adquisición de imágenes


Las tarjetas de captura de imagen son la interface entre el sensor
y l a computadora o módulo de proceso y permiten transferir la imagen de la c á m a r a
a la memoria de la computadora con el fin de que ésta pueda
realizar el procesamiento adecuado de la imagen.

d. algoritmos de análisis de imágenes


es la parte inteligente del sistema. Su misión consiste en aplicar
las transformaciones, necesarias y extracciones de información de
las imágenes

Figura 1:
Elementos de un sistema de visión artificial.

18
2.2.1 Dinámica de reconocimiento de rostros
El sistema de reconocimiento facial es una aplicación dirigida por un
ordenador que identifica automáticamente a una persona en una imagen
digital. Esto es posible mediante un análisis de las características faciales
del sujeto extraídas de la imagen o de un fotograma clave de una fuente de
video, y comparándolas con una base de datos.

Todo algoritmo de reconocimiento facial tiene dos fases bien diferenciadas,


la fase de entrenamiento y la fase de reconocimiento o test.

Durante la fase de entrenamiento se prepara la base datos que será


utilizada en el reconocimiento. Para ello, se introducen una o varias
imágenes del rostro de los distintos sujetos en el algoritmo de
entrenamiento. Este algoritmo es el encargado de extraer las
características de cada persona y almacenarlas para su posterior
comparación.
Fuente: Lima, Perú - Aldo Camargo F, Córdova Neri, T

En la fase de reconocimiento se capturan imágenes de un sujeto


desconocido, se extraen las características por el mismo proceso que en la
fase de entrenamiento, y se comparan

 Toma de imagen: Dependiendo del sistema empleado, podrá ser una


imagen fija, un fotograma de vídeo, una imagen tridimensional, etc.

 Detección de cara: La detección de una cara en una imagen no es más


que un caso específico de detección de objetos. Hay que tener en cuenta
si se van a reconocer una o varias caras a la vez.

 Procesado de la imagen: Una vez tengamos determinada la posición de la


cara, la extraeremos de la imagen ya que el resto de la información es
irrelevante. Procesar entera la imagen original solo serviría para aumentar
la cantidad de cálculos y, por lo tanto, disminuir el rendimiento del
sistema. También pueden ser necesarios otros procesos, como por
19
ejemplo convertir la imagen a escala de grises, o utilizar un filtro paso bajo
si la resolución de la imagen es muy alta.

 Extracción de las características: Una vez la imagen procesada, se


calcularán los valores o coeficientes característicos de la imagen
dependiendo de la técnica utilizada.

 Reconocimiento: Por último, se comparan los datos extraídos con los de


la base de datos para encontrar al sujeto con los valores más próximos.
Igual que antes, esta comparación dependerá de la técnica empleada.

En la siguiente figura se observa el procedimiento que sigue el reconocimiento


facial de una manera didáctica.

Figura 2 Proceso de reconocimiento facial(general)

20
2.2.2 Historia del reconocimiento facial
El reconocimiento facial es un concepto relativamente nuevo, las
primeras investigaciones se remontan a la década de 1950 en el área de
la psicología (Bruner y Tagiuri 1954), y a la década de 1960 en la
literatura ingenieril (Bledsoe 1964). Este concepto hace referencia a la
acción de reconocer a una persona mediante su rostro, teniendo en
cuenta todas las características posibles que puedan visualizarse o
medirse. En los primeros trabajos, en los años 60, según [Duane
Blackburn et al, 2006], las técnicas desarrolladas eran un sistema
semiautomático para reconocimiento facial que requería de un
“administrador” (la persona que lo utilizaba), para localizar rasgos (ojos,
orejas, nariz, boca) en las fotografías. Y se comparaban las distancias
medidas entre los puntos de referencia elegidos. Este es el caso del
proyecto de Bledsoe, donde una persona utilizando una tabla RAND
tomaba coordenadas de distintos puntos en una fotografía como, por
ejemplo, el centro de las pupilas, los bordes internos y externos de los
ojos, entre otros. Y se realizaban mediciones de unas 20 distancias:
ancho de la boca, ancho de los ojos, distancia entre pupilas. Esta
información se asociaba al nombre de una persona y pasaba a formar
parte de la base de caras. Luego en el proceso de identificación se
comparaban las distancias de la nueva fotografía con los datos de la
base y se retornaba la más cercana.

Además, el algoritmo puede detectar si no se identificó porque no es una


cara. De todos los algoritmos utilizados en el campo del reconocimiento
facial 2D, existen tres algoritmos que son los más estudiados y aplicados
por sus óptimos resultados como se señala en [Zhao et al, 2003]:
Análisis de componentes principales (PCA - Principal Componen
Analysis), el Análisis Lineal Discriminante (LDA – Linear Discrimant
Analysis) y Correspondencia entre Agrupaciones de Grafos Elásticos
(EBGM - Elastic Bunch Graph Matching). El método de análisis de
componentes principales (PCA), es el más conocido se toma como
21
parámetro de comparación para los nuevos algoritmos. Y el trabajo más
reconocido utilizando esta técnica es el realizado por [Turk & Pentland,
1991] con su reconocimiento facial mediante Eigenfaces. De acuerdo
con [H. Zhao et al, 2008] varios métodos de reducción de dimensiones
han sido aplicados en el campo de reconocimiento facial con éxito.
Básicamente LDA, como se indica en [Duane Blackburn et al, 2006], es
una técnica de clasificación de datos que mediante una aproximación
estadística busca clasificar muestras de clases desconocidas basadas
en ejemplos de entrenamiento con clases conocidas. Esta técnica busca
maximizar la varianza entre las clases (between-class), es decir entre las
caras de cada persona distinta, así como también minimizar la varianza
de cada clase, es decir entre caras de un mismo individuo.

22
2.2.3 Modelo dinámico
El modelo dinámico tiene la tarea de mostrar el comportamiento del
sistema durante el transcurso del tiempo o mejor dicho en función al
tiempo.

El modelo dinámico al igual que el estático tiene dos herramientas para


representar esto, y estas son “El Diagrama de Estado” y “El diagrama de
Sucesos”.

Ahora me gustaría definir que es un diagrama de estados para que se


entienda mejor, donde y como implementarlo.

2.2.4 Diagrama de Estados:


“Es un diagrama que presenta los estados en los que puede encontrarse
un objeto, junto con las transacciones entre los estados, y muestra los
estados Inicial y Final de una secuencia de cambios de estados”2

Para entender mejor la anterior definición procedamos a definir que es


un estado:

“Estado es la situación en la cual se encuentra un objeto con sus


respectivos valores para sus atributos en un punto del tiempo
específico”.

La anterior definición nos da como pauta que si alguno de los atributos


se modifica existe la posibilidad de cambio de estado, y digo posibilidad
ya que puede darse el caso que si un atributo se modifica este puede no
variar el estado del objeto; La variación de un atributo casi siempre se
debe a un Evento o Suceso, así que sería bueno definir formalmente que
es un evento o suceso:

Evento: “Hecho que se produce en un punto del tiempo, que puede o no


modificar un atributo”

23
2.2.5 Diagrama de Sucesos:
“Es un diagrama que muestra la interacción entre los distintos objetos
mediante los mensajes que se mandan entre ellos, en un escenario en
específico”.

Creo que el concepto está realmente claro, pero creo que mejoraría si
defino que es un escenario.

Escenario: “Es un conjunto especifico de eventos o sucesos que se dan


dentro del sistema en un momento de tiempo dado”.

Con esto ya está claro que modela el diagrama de sucesos, por lo cual
solo me resta explicar los elementos con los que se modela este
diagrama.

2.2.6 Modelos matemáticos


Método de harris para la detección de bordes

Como habíamos explicado anteriormente para la determinación de los


puntos propios del modelo del método ASM requerimos establecer los
bordes para que mediante la aplicación de la técnica se puedan
determinar los puntos, para ello se ha decidido usar el método de Harris.

Desarrollo matemático del método de harris

Para determinar las transiciones de las regiones de grises, todos los


pequeños cambios posibles pueden ser cubiertos llevando cabo una
expansión analítica sobre el origen del cambio, como se muestra en las
ecuaciones:

E(x , y)=∑(u ,v ) W (u ,v ) ¿

24
Donde:

W (u ,v) =Función de Ventana

I ( x+u , y +v)=Cambio de Intensidad

I (u , v)=Intensidad

E(x , y)=∑(u ,v ) W (u ,v ) ¿

2.2.7 Ubicación y detección de ojos


Los ojos en la generación del modelo del rostro se constituyen en puntos
estratégicos para lograr dicho objetivo. La detección de ojos en
imágenes del rostro es muy importante para un vasto número de
aplicaciones que van desde el reconocimiento facial para seguimiento de
mirada. Los estudios ejecutados con base de este método dan como
eficaz la utilización del método. El Modelo de color de la piel es el
modelo matemático que describe la distribución de colores de piel. Un
espacio o región de color adecuado debe ser elegido antes de formular
modelos de color de piel. La idea es lograr un mejor espacio para
trabajar las imágenes a color es GLHS ya que este modelo de color
responde efectivamente frente a los diferentes tipos de piel. El proceso
de GLHS se ve representado por las siguientes ecuaciones.

min ⁡(R , G , B)
min(c)=
255

med ( R ,G , B )
med (c )=
255

max ⁡( R , G, B)
max(c)=
255

Por lo tanto, la luminosidad, el tono y la saturación se pueden calcular:

h(c)=k (c) + f (c)

25
Donde k(c) indica el número de secuencia y f (c) se utiliza para calcular el
ángulo.

Luminosidad:

l (c) =(max ¿ ¿(c)−med (c ))−(med ¿ ¿ ( c )−min( c ))¿ ¿

Saturación:

1 1
l (c) = (max ¿ ¿(c)−min (c ) )− (med ¿ ¿ ( c ) −min(c ))¿ ¿
3 3

2.2.8 Análisis de componentes principales (ACP Ó PCA)


Las técnicas de análisis de satos por mecanismos estadísticos proveen
la virtud de ser propicias para las tareas de reconocimiento y de
clasificación, debido a los manejos de dimensionalidad con los que
permiten trabajar mejorando los procesos de reconocimiento. Se parte
de una matriz U la cual contiene a los sujetos descritos por (j) y las
variables de cada uno de ellos estarán descritas por (i) conformando una
matriz de i x j:

[ ]
u11 … u1 j
U= … … …
ui 1 … uij

26
Por tanto, esta matriz U se puede transformar en una nueva matriz D de
distancias, debido a los puntos que forman los datos de los usuarios en
j- dimensional, con las mismas dimensiones i x j:

[ ]
d 11 … d 1 j
D= … … …
d i 1 … d ij

Considerando que la matriz D parte de la matriz U, Cada línea de (D)


corresponde a los componentes de cada punto de (U). Ahora
encontramos que para poder relacionar (U) con (D), se crea una nueva
matriz M como matriz de paso de (U), esta matriz será de tamaño j x j
con sus componentes de la siguiente manera:

Dando como resultado la matriz M:

[ ]
m11 … m1 j
M= … … …
m j 1 … m jj

De tal manera encontramos que la relación entre U, D y M es:

T
U =D∗M

Matriz de covarianza

Para determinar la matriz de covarianza de la matriz U la vemos


representada por:

[ ]
c 2u 1
… cu u 1 j

C= … … …
cu u 1 j
… c 2u j

27
2
Donde c ui representa la varianza de la variable U i de en el conjunto y,
c u u es la covarianza U i y U j.
i j

LDA en reconocimiento facial

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.

Donde SB es la “matriz de dispersión entre clases” mientras que SW es


la “matriz de dispersión entra clase” y se definen como:

S B=∑ N c (u−x ¿)¿ ¿


c

S B ' =∑ ∑ (x i−u c ¿ )¿ ¿ ¿
c i=c

1
uc = ∑x
N c i=c i

1 1
x= ∑x= ∑N u
N i=c i N c c c

y NC es el número de casos dentro de la clase c.

Una vez está resuelto este problema, se obtiene la matriz de proyección


que permite pasar de un problema de alta dimensionalidad a uno de
baja. Cada una de las columnas que forman esta matriz serán las bases
del nuevo subespacio, las cuales se conocen como FisherFaces. Estas
28
bases son aquellas que garantizan una máxima discriminación entre
clases por encima de ser las que mejor describen los datos, a diferencia
de PCA.

Una de las limitaciones que tiene LDA, es que se requiere de matrices


de dispersión no-singulares. Esto en aplicaciones de reconocimiento
facial es complicado debido a que en muchas ocasiones la alta
dimensionalidad de las imágenes es mucho mayor que el número de
imágenes lo que desemboca en un problema de matrices singulares,
algo que como se verá más adelante también puede suceder en LPP,
conocido como undersampled o singularity problem. Para evitar este
efecto, se utilizan diferentes aproximaciones como pseudo-inverse LDA,
que utiliza la pseudo-inversa de la matriz de covarianza en lugar de su
inversa, y PCA + LDA, que realiza una reducción previa de los datos
utilizando PCA.

Figura 3.- dispersión de clases

2.2.9 Comparación de la proyección de 2 clases en PCA y LDA.


Perfilometría Wavelet
La Perfilometría Wavelet concepto introducido en 2004, trabaja con
señales no estacionarias, además de proveer un análisis multi-
resolución, el cual divide las señales en subseñales, es decir, una señal

29
puede ser vista a diferentes escalas de resolución. La forma de onda de
la Wavelet es lo que permite no limitarse a funciones seno y coseno,
pues es una onda irregular y puede ser asimétrica. Es la variación de los
coeficientes lo que dan origen a los diferentes tipos de wavelets, en la
medida en la que estos coeficientes (escala y traslación) son
modificados en la función llamada Wavelet madre, se derivan estos
tipos, tales como: Paul, Shannon, B-Spline, Mexican Hat, Morlet, Fan,
entre otras. La transformada Wavelet trabaja con tiempo y escala,
permitiendo trabajar con ventanas anchas para obtener frecuencias
bajas y con ventanas angostas para la información de alta frecuencia.
La función madre está definida por:

donde, 𝑠 es el factor de escala, y  es el factor de traslación. Por lo


tanto, la función de la Transformada Wavelet Continua (CWT) está
determinada por la suma para toda x de la señal multiplicada por la
escala, definida por:

Esta función es obtenida a través de la variación de la escala y la


traslación de la señal, así como de la convolución de la Wavelet
conjugada.

En el contexto bidimensional, la transformada Wavelet se define como el


producto tensor de las wavelets unidimensionales Arellano Φ(𝑥, 𝑦) =
𝜙(𝑥)𝜙(𝑦); en la función de escala y

𝜓1 (𝑥, 𝑦) = (𝑥)(𝑦), 𝜓2 (𝑥, 𝑦) = 𝜓(𝑥)𝜓(𝑦), 𝜓3 (𝑥, 𝑦) = 𝜓(𝑥)𝜓(𝑦)

en los detalles de las Wavelets. La Transformada Wavelet Continua 2D


ha sido utilizada por varios autores en una amplia gama de problemas.
El uso principal es el análisis de imágenes, particularmente para la
30
determinación de características específicas como bordes, contornos,
límite entre zonas de diferente luminosidad, donde el tipo de Wavelet
elegido depende de la finalidad a requerir. El análisis de la
Transformada Wavelet 2D nos permite realizar análisis para señales
bidimensionales, clasificándose en dos métodos: Estimación de fase.
Kadooka, et al., (2003) y Estimación de frecuencia. Sciammarella, et al.,
(2005). El patrón de franjas (𝓍, 𝑦) en la Wavelet 2D es proyectado
dentro de la Wavelet 𝑎,,,𝜃 por traslación en el eje x y y, por a y b
respectivamente, con una dilatación s y una rotación con el ángulo 𝜃 de
la Wavelet madre 𝜓(𝑥, 𝑦), dando como resultado una transformada de
cuatro dimensiones, definida por:

Como resultado se tiene un arreglo complejo de 4 dimensiones. Se dice


que una Wavelet  es direccional, si el respaldo efectivo de su
transformada de Fourier  está contenido en un cono convexo dentro de
un espacio de frecuencia espacial (k), con vértice en el origen o una
unión disjunta finita de tales conos; en este caso se le llamará 
multidireccional. Una Wavelet bidimensional es una función de valores
complejos   𝐿 2
(ℝ 2
, 𝑑 2
𝑥⃑ ) cumpliendo así con la condición de
admisibilidad.

donde 𝜓̂ es la Transformada de Fourier de

𝜓 y |𝑘⃑ | 2  𝑘⃑ ∙ 𝑘⃑  (𝑘1 ) 2 + (𝑘2 ) 2

Las características de las Wavelets son importantes, pues el análisis


Wavelet a utilizar dependerá del tipo de información que se quiera
obtener de la imagen, por ejemplo; si se está interesado en la detección

31
de características orientadas a una imagen como las regiones, entonces
la Wavelet isotrópica es la adecuada, por su análisis puntal, es decir, si
las características no orientadas están presentes o son relevantes en la
señal se puede elegir una Wavelet isotrópica 2D. La Wavelet Morlet
Compleja 2D se deriva de la Wavelet Gabor madre, en este caso la
Morlet presenta un buen desempeño solo con variaciones suaves en el
patrón de franjas. La Wavelet Morlet está dada por:

Donde 𝑥, 𝑦 son los índices de los ejes x y y respectivamente y 𝜃 es el


ángulo de rotación. Es la Wavelet Fan, la que puede presentar un mejor
desempeño más que la Wavelet Morlet en las variaciones de patrón de
franjas Gdeisat, et al., 2010. La Wavelet Fan Compleja 2D está dada
por:

Otra Wavelet compleja es la Wavelet Paul, la cual está definida por:

32
2.3 ELEMENTOS Y RELACIONES EN LOS MODELOS DINÁMICOS
Para el Diagrama de Estados se utiliza:

Estado:

La nomenclatura de un estado es simple, en la parte de arriba se debe


de especificar el nombre del estado sin subrayados, negrillas u otras
cosas, después en la estructura tenemos tres identificadores básicos
que son “entrada”, “salir” y “hacer”, tanto entrada como salir son
acciones que se deben de dar tanto cuando se entra al estado como
cuando se sale del estado, en el identificador hacer, podemos definir
tareas que el objeto va a realizar mientras este en ese estado.

Estado Inicial:

El estado inicial es cuando un objeto acaba de ser instanciado, por lo


cual es necesario representarlo de una manera diferente al resto de los
estados:

Un Circulo relleno representa el estado inicial.

Estado Final:

El estado final es cuando un objeto es destruido, la manera de


representarlo es la siguiente:

Transición:
33
La transición se representa con una línea recta y encima de esta el
evento que produjo el cambio de estado:

Estado Compuesto:

Un estado compuesto o súper estado, es un estado que engloba a dos o


más estados dentro de uno solo, la representación es la siguiente:

Ahora es el turno del diagrama de sucesos, al igual que el otro diagrama,


procederemos a definirlo.

Para el Diagrama de Sucesos se utilizan los siguientes elementos:

Actor:

El actor, es quien interactúa con el sistema, este actor puede ser una
persona real, otro sistema o alguno objeto de nuestro sistema, todo
depende de nuestro escenario, al actor se lo representa como un
hombrecito.

34
Objeto:

Los objetos en este diagrama se representan con un cuadrado, donde se


sitúa el nombre del objeto, todo sub-rayado, además tiene una línea
punteada saliendo de la parte baja del recuadro, esta representa su línea
de tiempo.

Mensaje:

Los mensajes se representan con una línea recta y una flechita, además
en la parte de arriba se encuentra la etiqueta de este, como un apunte
recordar, que los mensajes que se indiquen en el diagrama de sucesos
previamente debieron de ser definidos en el diagrama de estados, ya
que en ese diagrama definimos las relaciones que por donde fluye el
mensaje.

2.4 RELACIÓN CAUSAL: MODELO DE BASE DE DATOS


Un modelo de base de datos muestra la estructura lógica de la base,
incluidas las relaciones y limitaciones que determinan cómo se
almacenan los datos y cómo se accede a ellos. Los modelos de bases
de datos individuales se diseñan en base a las reglas y los conceptos de
cualquier modelo de datos más amplio que los diseñadores adopten. La

35
mayoría de los modelos de datos se pueden representar por medio de
un diagrama de base de datos acompañante.

Tipos de modelos de bases de datos

Hay muchos tipos de modelos de bases de datos. Algunos de los más


comunes incluyen:

 Modelo de base de datos jerárquico

 Modelo relacional

 Modelo de red

 Modelo de base de datos orientado a objetos

 Modelo entidad-relación

 Modelo de documentos

 Modelo entidad-atributo-valor

 Esquema de estrella

 Modelo relacional de objetos, que combina los dos que


forman su nombre

Puedes elegir describir una base de datos con cualquiera de ellos


dependiendo de varios factores. El mayor factor es si el sistema de
gestión de bases de datos que estás usando es compatible con un
modelo en particular. La mayoría de los sistemas de gestión de bases de
datos están desarrollados con un modelo de datos particular en mente y
requieren que los usuarios adopten ese modelo, aunque algunos son
compatibles con múltiples modelos.

Además, diferentes modelos aplican a diferentes etapas del proceso de


diseño de bases de datos. Los modelos de datos conceptuales de alto
nivel son mejores para crear mapas de relaciones entre datos en las
formas en que la gente percibe esos datos. Por otro lado, los modelos
36
lógicos basados en registros reflejan más estrechamente las formas en
que los datos se almacenan en el servidor.

La elección de un modelo de datos también depende de que alinees tus


prioridades con las fortalezas de la base de datos de un modelo en
particular, ya sea que esas prioridades incluyan velocidad, reducción de
costos, usabilidad o algo más.

Demos un vistazo detallado a algunos de los modelos de bases de datos


más comunes.

Para nuestro trabajo hablaremos especialmente del Modelo Relacional


de Base de Datos:

Modelo Relacional de Base de Datos

Siendo el modelo más común, el modelo relacional ordena los datos en


tablas, también conocidas como relaciones, cada una de las cuales se
compone de columnas y filas. Cada columna enumera un atributo de la
entidad en cuestión, por ejemplo, precio, código postal o fecha de
nacimiento. En conjunto, a los atributos en una relación se los llama
dominio. Se elige un atributo particular o combinación de atributos como
clave primaria, a la cual se puede hacer referencia en otras tablas, en
donde se la denomina clave externa.

El modelo también representa los tipos de relaciones entre esas tablas,


incluidas las relaciones uno a uno, uno a muchos y muchos a muchos.
Este es un ejemplo:

37
Dentro de la base de datos, las tablas se pueden normalizar, es decir,
hacer que cumplan las reglas de normalización que hacen a la base de
datos flexible, adaptable y escalable.

CLASIFICADOR DE CASCADA:

Mejor conocido como algoritmo o clasificador Haar, fue el primer


framework de detección de objetos propuesto por Paul Viola y Michael
Jones en 2001 que permitía el análisis de imágenes en tiempo real,
haciendo uso de una función matemática ( Wavelet Haar propuesta por
Alfred Haar en 1909.

Los clasificadores Haar, definen regiones rectangulares sobre una


imagen en escala de grises (imagen integral) y al estar formada por un
numero finito de rectángulos, se puede obtener un valor escalar que
consiste en sumar los pixeles de cada rectángulo, en base a una serie
de clasificadores en cascada. Cada clasificador determina si la
subregión se trata del objeto buscado o no. A diferencia de otros
algoritmos, este solo invierte capacidad de procesamiento a las
subregiones que posiblemente representen un rostro.

2.5 TIPO DE RELACIONES


 Relación de uno a varios (1,n).

Se crea una relación de uno a varios si uno de los


campos relacionados es una clave principal. Esta
relación es la más común. Cada registro de una tabla
puede estar enlazado con varios registros de una
segunda tabla, pero cada registro de la segunda sólo
puede estar enlazado con un único registro de la
primera.

38
 Relación de uno a uno (1,1).

Se creará una relación de este tipo si ambos campos


relacionados son claves principales. En este tipo de
relación, un registro de la tabla uno sólo puede estar
relacionado con un único registro de la tabla dos y
viceversa. No es muy usada.

 Relación de varios a varios (n,m).

En este caso, ninguno de los campos relacionados son


claves principales. Cada registro de la primera tabla
puede estar enlazado con varios registros de la
segunda y viceversa. Este tipo de relación implica la
39
repetición de los campos de cada tabla; esto es lo que
Access pretende evitar. Para establecer relaciones de
este tipo, es necesario crear una tabla intermedia que
esté relacionada con las dos de uno a varios.

2.6 OBJMARK
Como ya hemos indicado anteriormente el aprendizaje consiste en
introducir una muestra significativa de imágenes positivas para que el
algoritmo sea capaz de diferenciar entre lo que realmente queremos
encontrar y lo que no. En primer lugar, se necesita un gran número de
imágenes, alrededor de 3000 para poder identificar bien qué es una
cara. Aunque el número dependerá en gran medida en la fisonomía del
objeto que queremos detectar y de las condiciones ambientales, es
decir, si el objeto está en un entorno controlado, donde hay poca
posibilidad de obtener falsos positivos o falsos negativos el aprendizaje
no será necesario que sea tan exigente. Para realizar esto, debemos
recopilar para el aprendizaje la posición de todas las caras dentro de las
imágenes obtenidas. Es obvio que no podemos automatizar este
proceso, ya que si pudiéramos detectar donde se encuentran las caras
dentro de las imágenes iniciales estaríamos resolviendo el problema de
base. Es por ello que hemos tenido la necesidad de desarrollar una
aplicación que permita de manera mecánica y manual indicar esto y
obtener como resultado los ficheros indicando por cada imagen la
posición y tamaño de las caras. Esta aplicación a la que he llamado

40
ObjectMarker recibe un directorio lleno de imágenes y genera un
documento con el formato que haartraining necesita.

Cuando le indicamos un directorio, se explora para comprobar las


imágenes que podemos encontrar en él. Hay que añadir que el
programa permite la introducción filtros. Si añadimos en nuestra llamada
el atributo “-ft” y seguidamente indicamos algunos filtros separados por
“:”, por ejemplo “ab:bc”, solo las imágenes que contengan en su nombre
ab o bc serán analizadas. Una vez obtenidos los ficheros que se serán
analizados se abre el primero. Ahora con el ratón debemos hacer un
recuadro que englobe donde se encuentra la cara que queremos
guardar. Una vez tenemos la cara con un recuadro encima de ella,
debemos pulsar “S” (Save) que guarda la posición del objeto dentro de la
imagen. Si existen más caras dentro de la imagen debemos repetir la
operación para cada uno de ellos. Una vez hayamos terminado de definir
todos los objetos dentro de la imagen podemos pasar a la imagen
siguiente con A (Forward). Cuando hemos analizado todas las imágenes
del directorio habremos obtenido un fichero info.txt dentro del directorio
con el formato especificado y explicado en el apartado de este mismo
capítulo “info.txt”.

41
2.7 ELEMENTOS DE SOFTWARE
Lo primero que hacemos para usar Tkinter es agregar el modulo a
nuestro script python en la primera línea de código :

La Ventana Principal

Para la creación de la ventana principal usamos la función “ventana =


Tk()” que es atribuida a una variable en este caso ventana, la cual
heredara todas funciones de Tkinter , para inicializar la ventana usamos
“ventana.mainloop()” y con esto nuestra ventana sera lanzada.

Codigo:

La linea ventana = Tk() inicia el script y la linea ventana.mainloop() lo


finaliza, por lo tanto todo el codigo para agregar la demas
funcionalidades debera ir despues de la primera y antes de la ultima es
decir anter de ventana = Tk() y despues de ventana.mainloop().

42
Si queremos ponerle un titulo a la ventana usamos la funcion title() es
decir : ventana.title(‘titulo de mi ventana’).

Codigo :

Label : Usando Etiquetas

Las etiquetas con Tkinter se hacen con la funcion Label(ventana,text) y


para posicionarlo en la ventana con la funcion grid(row,column).El primer
parametro de la funcion Label es la instancia de la ventana, es decir el
resultado de ventana = Tk(), y a la variable text se le asigna un valor tipo
cadena entre 2 comillas.

Para posicionarlo usaremos la funcion grid(row,columns) que sería


fila,columns.ejemplo :

Codigo :

43
Trabajando con la Funcion Grid

En el transcurso de el tutorial usaremos la funcion grid para posicionar


los elementos en la ventana y todos los elementos que usaremos hasta
ahora utilizan esta funcion, por lo tanto entender la forma de
posicionarlos es importante :

Los valores para la funcion grid pueden ser los mismos que estan en la
tabla dependiendo de la posicion donde se quiera poner el elemento.

Button : Usando Botones

Para usar un boton usamos los mismos parametros que para agregar
una etiqueta : la instancia de la ventana y el valor de texto del boton ,
aparte el boton tiene 3 parametros extras ,2 para modificar la apariecia
del boton : bg y relief, y un parametro para modificar el comportamiento
del boton al ser precionado : command.

El codigo de un boton :
44
Podemos cambiar el fondo del boton, e incluso agregar otro boton, para
cambiar el color de boton usaremos el parametro bg=’color’ donde color
puede sustituirse por un color del ingles : red, blue,green,lime … etc .

Y para agregar otro boton usamos otra variable para diferenciarlo del
primero. y para poner una nueva posicion usaremos la posicion row=1,
column=2.

Codigo :

45
Existen varias formas ver un boton, o el relieve del boton , se usa el
parametro relief y puede tomar valores constantes ya definidos los
cuales son : RAISED , SUNKEN,RIDGE,SOLID,FLAT,GROOVE , un
ejemplo a continuacion :

Las cajas de texto suelen ser la forma de entrada de datos mas basicas
cuando se trabaja con interfaces graficas, con Tkinter usamos la funcion
Entry, aunque con una diferencia en cuanto a los parametros que usa la
funcion Entry.

Los parametros son Entry(ventana,textvariable), la variable ventana es la


variable de instancia recibida al llamar a la funcion Tk() y el valor que
lleva textvariable es una variable que es instancia de StringVar(), la cual
tendra el valor de lo escrito en la caja de texto :

Codigo :

46
Aunque normalmente una caja de texto va acompa~ada de una etiqueta
para saber de que se trata el dato que debera insertarse en la caja.

Codigo :

Finalizando

Con estos elemento graficos basicos podemos hacer muchas


aplicaciones y para iniciar el desarrollo vamos a terminar con un
formulario que pida nombre , apellidos y correo, aunque aun no hara
ninguna funcion en especial, quedara pendiente para el futuro.
47
Codigo :

48
2.8 OPENCV
La librería OpenCV está dirigida fundamentalmente a la visión por
computador en tiempo real. Entre sus muchas áreas de aplicación
destacarían: interacción hombre-máquina (HCI4 ); segmentación y
reconocimiento de objetos; reconocimiento de gestos; seguimiento del
movimiento; estructura del movimiento (SFM5 ); y robots móviles.

Como podemos ver en la figura 1, la librería OpenCV proporciona


numerosos elementos de alto nivel, como veremos en secciones
posteriores, que facilitan sobre manera el trabajo al usuario (tanto al
docente como al investigador). Por ejemplo, proporciona filtros
Microsoft® DirectShow para realizar tareas tales como: calibración de la
cámara, seguidores de objetos (Kalman tracker y ConDensation tracker),
etc. Todos ellos se pueden utilizar en Microsoft® GraphEdit para ilustrar
de forma bastante sencilla numerosas aplicaciones de visión. En la
figura 2 y figura 3 podemos observar un ejemplo de ellos.

Figura 2: Seguidor de caras realizado con un filtro de Kalman.


49
Figura 3: Salida del seguidor de caras realizado con un filtro de Kalman.

De igual forma, la librería OpenCV proporciona numerosas aplicaciones


de ejemplo que ilustran como emplear las distintas funciones de la
librería. En la figura 4 podemos ver una implementación de los HMM
(Hidden Markov Models) para el reconocimiento de caras.

Figura 4: Detector de caras realizado con HMM (Hidden Markov Models).

También los entornos de scripting hacen uso de estas funciones para


implementar su funcionalidad. La librería OpenCV proporciona una gran
diversidad de entornos. En la sección 2.2 detallamos de forma
pormenorizada algunos de los más utilizados. Todas estas herramientas
de alto nivel hacen uso de un paquete de clases C++ y funciones C de
alto nivel que utilizan a su vez funciones muy eficientes escritas en C.
Concretamente, el conjunto de funciones suministradas por la librería
OpenCV se agrupan en los siguientes bloques:

 Estructuras y operaciones básicas: matrices, grafos, árboles, etc.


 Procesamiento y análisis de imágenes: filtros, momentos,
histogramas, etc.
 Análisis estructural: geometría, procesamiento del contorno, etc.

50
 Análisis del movimiento y seguimiento de objetos: plantillas de
movimiento, seguidores (i.e. Lucas-Kanade), flujo óptico, etc.
 Reconocimiento de objetos: objetos propios (eigen objects),
modelos HMM, etc.
 Calibración de la cámara: morphing, geometría epipolar,
estimación de la pose (i.e. POSIT), etc.
 Reconstrucción tridimensional (funcionalidad experimental):
detección de objetos, seguimiento de objetos tridimensionales,
etc.
 Interfaces gráficos de usuarios y adquisición de video

En la figura 1 también podemos observar como la librería OpenCV


puede hacer uso de librerías propietarias como son en este caso The
Intel® Image Processing Library (IPL) y The Intel® Integrated
Performance Primitives (IPP) en caso de disponer de ellas. Estas
aplicaciones tratan de mejorar el rendimiento de la librería con primitivas
optimizadas para procesadores Intel®. Sin embargo, la licencia por las
que se rigen estas aplicaciones no es software libre y por tanto carece
de interés para los autores.

La librería OpenCV proporciona varios paquetes de alto nivel para el


desarrollo de aplicaciones de visión. Todos ellos se pueden agrupar en
librerías de C/C++ dirigidas a usuarios avanzados y en herramientas de
scripting dirigidas, en este caso, a usuarios de nivel medio (ideal para
practicar con las distintas técnicas de procesamiento de imágenes y
visión). Al primer grupo pertenecen HighGUI y CvCam, mientras que al
segundo pertenecen Hawk y OpenCV Toolbox para Matlab®.

HighGUI permite la escritura/lectura de imágenes en numerosos


formatos (BMP, JPEG, TIFF, PxM, Sun Raster, etc.) y la captura de
stream de video de capturadoras Matrox® y cámaras/capturadoras con
drivers VFW/WDM (la mayoría del mercado); la creación de ventanas
para visualizar imágenes en ellas, las ventanas HighGUI recuerdan su
51
contenido (no es necesario implementar callbacks de repintado); y
además, nos proporciona mecanismos muy fáciles de interaccionar con
ellas: trackbars, capturando la entrada del teclado y el ratón.

CvCam nos proporciona un único interfaz de captura y reproducción bajo


Linux y Win32; callbacks para la gestión de stream de vídeo o ficheros
AVI y un mecanismo fácil para implementar visión estéreo con dos
cámaras USB o una estéreo-cámara.

Hawk es un entorno visual con el intérprete ANSI C EiC como núcleo;


soporta plugins; proporciona soporte para OpenCV, IPL y HighGUI vía
plugin; y soporte de video.

Figura 5: Hawk (EiC).

Por último, la librería OpenCV proporciona un toolbox para Matlab® que


se caracteriza por lo siguiente:

• Utiliza tipos nativos de Matlab® (matrices, estructuras).

• Compatibilidad con la Image Processing Toolbox. En la figura 6


podemos ver una implementación de un seguidor de caras denominado
CamShift con el OpenCV Toolbox para Matlab®.

52
Figura : Seguidor de caras CamShift implementado con Matlab®.

2.8.1 Matrices

A diferencia de lenguajes como C, en Python no resulta intuitivo el


proceso de creación de una matriz. Nuestra matriz, llamada

apropiadamente "matriz" es una lista de python.

53
2.8.2 Crear menús interactivos
Un programa interactivo aquél que necesita la realimentación continúa
del usuario para poder ejecutarse. Este concepto se enfrenta al
de procesamiento por lotes en el cual se le indica al programa todo lo
que debe hacer antes de empezar, con lo cual el usuario se puede
desentender de la máquina. Sin embargo esto último requiere mayor
planificación.

54
Ventajas

 No es necesario conocer todas las opciones, ya que las


distintas interfaces gráficas irán preguntando todo. Luego es
adecuado para tareas que no se van a ejecutar muy a menudo y no
merece la pena perder mucho tiempo en aprenderlas.

Inconvenientes

 Requieren una mayor velocidad, ya que hay que evitar el cansancio


del usuario.
 Obliga a hacer tareas repetitivas al usuario.

55
2.9 EJEMPLOS DE PROGRAMAS INTERATIVOS

Como se comentó anteriormente, los programas interactivos tiene


comúnmente menus,que hacen que el usuario pueda interactuar de
manera dinámica con el algoritmo, todo esto se muestra en interfaces
gráficas que serán descritas en el presente capitulo.

Algunos ejemplos son:

 Cajero automático

Un sistema de menú guía al usuario para conseguir distintos propósitos:


Cargar el móvil, sacar dinero, transferencia, etc.

 Compresor de archivos

Se le dirá al programa qué debe comprimir, cuál es el archivo de salida,


tasa de compresión y algunos parámetros extra. Como programa
interactivo, se irán solicitando al usuario los distintos parámetros en
distintos menús.

2.10 INTERFAZ GRAFICA DE USUARIO

La interfaz gráfica de usuario, conocida también


como GUI (del inglés graphical user interface), es un programa
56
informático que actúa de interfaz de usuario, utilizando un conjunto de
imágenes y objetos gráficos para representar la información y acciones
disponibles en la interfaz. Su principal uso, consiste en proporcionar un
entorno visual sencillo para permitir la comunicación con el sistema
operativo de una máquina o computador.

Habitualmente las acciones se realizan mediante manipulación directa,


para facilitar la interacción del usuario con la computadora. Surge como
evolución de las interfaces de línea de comandos que se usaban para
operar los primeros sistemas operativos y es pieza fundamental en
un entorno gráfico. Como ejemplos de interfaz gráfica de usuario, cabe
citar los entornos de escritorio Windows, el X-Window de GNU/Linux o el
de Mac OS X, Aqua.

En el contexto del proceso de interacción persona-computadora, la


interfaz gráfica de usuario es el artefacto tecnológico de un sistema
interactivo que posibilita, a través del uso y la representación
del lenguaje visual, una interacción amigable con un sistema informático.

2.11 TIPOLOGÍA DE GUI O INTERFACES GRÁFICAS

Primero encontramos las GLI, Command line interface, o interfaz de


línea de comandos. Son las que encontramos en los juegos o en tareas

57
de investigación. Mezclan 3D con 2D y la interfaz de enfoque del usuario
o ZUI, Zooming User Interface.

Después está la interfaz de usuario táctil. Es la que utilizamos a diario en


nuestros teléfonos móviles, tabletas, consolas de videojuegos o en
domótica. En el mundo de la empresa la usan los restaurantes o tiendas
de autoservicio, cajeros automáticos, kioskos de información, entre otros
muchos. Son las GUI de uso específico y son las que al tocar la pantalla
con los dedos, se ejecutan los comandos del ratón sobre el software,

Por último, encontramos la interfaz natural de usuario, o NUI, son las


interfaces en las que se interactúa con un sistema o aplicación. En la
interacción con las NUI, no se usa ningún dispositivo de entrada como el
ratón o el teclado. Siempre se usan las manos o las yemas de los dedos.

58
Para poder hacer una interfaz dinámica, pues podemos utilizar cualquier
tipo de lenguaje de programación, en este caso usaremos el Python
junto con una librería muy común entre los diseñadores de interfaces, el
cual es el Tkinter.

2.12 TKINTER
Tkinter es un binding de la biblioteca gráfica Tcl/Tk para el lenguaje de
programación Python. Se considera un estándar para la interfaz gráfica
de usuario (GUI) para Python y es el que viene por defecto con la
instalación para Microsoft Windows.

Hoy en día hay otras alternativas disponibles


como wxPython, PyQt o PySide y PyGTK que cumplen con todos los
estándares de componente visual.

Para poder invocar a la biblioteca en Python, es necesario un algoritmo


simple, el cual se muestra a continuación:

59
Tkinter ayuda a crear un interfaz del usuario, combinando celdas,
colores, títulos, imágenes, tamaño de letra y ventana o cualquier tipo de
concepto para que la interfaz creada sea de buen gusto y atractivo para
el usuario.

2.13 DETECCIÓN DE ROSTROS


¿CÒMO DETECTAR UN ROSTRO?

Primero hay que diferenciar el detectar un rostro de reconocerlo, en la


detección se busca identificar si en una imagen existe o no un rostro,
mientras que en el reconocimiento lo que se intenta es identificar la
identidad de una persona en específico.

Para detectar un rostro se usa el método haar cascade el cual


consiste en repasar la imagen buscando un grupo de características o
(features) en dicha imagen.

¿CÒMO INTEPRETA LAS IMÁGENES UNA COMPUTADORA?

La resolución de las imágenes y videos se mide en píxeles, para una


computadora las fotos son solo píxeles, estos están organizados en
un vector con un número de columnas y filas determinadas por su
60
ancho y alto, por ejemplo, una imagen full HD tiene una resolución de
1920 x 1080 píxeles, en este caso el vector que representa la imagen
tendría 1920 columnas y 1080 filas.

Además, para que las imágenes tengan color una computadora debe
crear 3 vectores uno para cada canal de color RGB (Rojo, Verde y
Azul) por lo que al final terminamos con un vector que contiene 3
vectores dentro cada uno con un canal de color.

¿CÒMO FUNCIONA EL MÈTODO HAAR CASCADE?

Lo que vamos a hacer es recorrer la imagen en busca de


características.

Las características son los patrones que están presentes en el objeto


que intentamos detectar, como por ejemplo la distancia que hay entre
los ojos, nariz y boca, la cantidad de luz que ilumina la frente, etc.

¿CÓMO ES QUE UNA COMPUTADORA SABE CUALES SON LAS


CARACTERÍSTICAS QUE ESTAMOS BUSCANDO?

La computadora no lo sabe, nosotros como programadores debemos


darle un modelo de características y entrenar este modelo con varias
imágenes, entre las cuales algunas deben tener rostros y otras no,
para enseñarle a la computadora lo que es un rostro y lo que no.

Una vez entrenado el modelo, podremos recorrer la imagen en busca


de las características definidas en él.

Ejemplo de un Haar Cascade:

61
¿CÓMO RECONOCER UN ROSTRO?

Ahora se puede detectar si en una imagen hay un rostro, ¿Pero y si


quisieras ir más allá y saber a quién pertenece?

Para esto lo primero que debes hacer es etiquetar las imágenes de


muestra que usaste para entrenar el modelo. Esto se hace para una
vez detectado algún rostro lo puedas comparar con los demás y
mostrar el nombre de la persona a la que se parece más. Para
comparar los rostros tenemos que saber algunos conceptos:

 Eigenvectors y eigenfaces: Los eigenvectors son vectores en


los que se guardan las características de un rostro.
Los eigenfaces por su parte son el conjunto de eigenvectors
que hacen referencia al mismo rostro

Los conceptos anteriores son importantes para comparar


rostros detectados con los de nuestra base de datos. Cada
rostro será convertido en un eigenface y no vamos a comparar
los rostros en sí mismos, sino sus eigenfaces.

62
 Comparando rostros: Para saber de quién es el rostro que se
detectó, se debe restar la distancia entre su eigenface con
cada uno de los eigenfaces extraídos de los rostros en la base
de datos.

La distancia entre los vectores predice la probabilidad de que


dos rostros sean de la misma persona. Entre más corta sea la
distancia entre dos eigenfaces hay más posibilidad de que se
trate de la misma persona.

Para terminar, se debe tomar la etiqueta que pusiste al rostro


en el entrenamiento y mostrarla en pantalla.

CAPÍTULO III:

DISEÑO METODOLOGICO

3.1 TIPO Y DISEÑO DE LA INVESTIGACIÓN

63
3.1.1 Tipo
La investigación aplicada busca la generación de conocimiento con
aplicación directa de la tecnología a los problemas de la sociedad o el sector
productivo. Esta se basa fundamentalmente en los hallazgos tecnológicos de
la investigación básica, ocupándose del proceso de enlace entre la teoría y la
aplicación opencv para generar el S:A:S

3.1.2 Diseño

Investigación de laboratorio.- está basado en la integración de hombre,


máquina y teoría para resolver o di hacer la implementación del modelo S.A.S

Este tipo de investigación presenta las siguientes etapas:


• Presencia de un problema para el cual sea realizada una revisión
bibliográfica.

• Identificación y definición del problema.

• Definición de hipótesis y variables y la operalización de las mismas.


• Diseño del plan experimental.

• Prueba de confiabilidad de los datos.

3.2 METODO DE INVESTIGACIÓN


General a lo particular (investigación aplicada)

3.3POBLACIÓN Y MUESTRA
3.3.1 Población
“La población es el conjunto de todos los individuos a los que se desea hacer
extensivo los resultados de la investigación. Se simboliza por N. La definición y
la delimitación clara de la población permitirán concretar el alcance de una
investigación.

Población
64
La población estar compuesta por 600 alumnos de la escuela de sistemas

3.3.2 Muestra
Behar (2008, p. 51) define la muestra como “un sub conjunto de
elementos que pertenecen a ese conjunto definido en sus necesidades al

que llamamos población. De la población es conveniente extraer muestras


representativas del universo. Se debe definir el plan y, justificar, los universos
en estudio, el tamaño de la muestra, el método a utilizar y el proceso de
selección de las unidades de análisis.”

Para la presente investigación se utilizó la fórmula de muestreo simple

Formula del Tamaño de la muestra en población finita

Muestra 1
Se calcula:
Z = 95% -> 1.96
E = 5% ->0.05
p = 0.5
Q=1-0.5 = 0.5
N= 600 alumnos de la escuela de sistemas
n= 220 alumnos
65
66
REFERENCIAS BIBLIOGRÁFICAS

BIBLIOGRAFÍA
[1]https://www.vexsoluciones.com/biometria/ventajas-beneficios-
reconocimiento-facial/
IMPORTANCIA DEL RECONOCIMIENTO FACIAL

[2]https://www.practicaespanol.com/llega-el-control-de-asistencia-a-clase-
por-reconocimiento-facial/
RECONOCIMIENTO FACIAL EN ESTUDIANTES CHINOS

[3]http://itcelaya.edu.mx/ojs/index.php/pistas/article/viewFile/683/616
RECONOCIMIENTO FACIAL ORIENTADO A CLASES

[4]http://itcelaya.edu.mx/ojs/index.php/pistas/article/viewFile/683/616
RECONOCIMIENTO FACIAL APLICADO A LA TOMA DE ASISTENCIA
(GUIA PRINCIPAL)

[5]http://materias.fi.uba.ar/7500/PamelaPereira.pdf
TESIS DOCTORAL (RECONOCIMIENTO FACIAL MEDIANTE IMAGENES
ESTEREOSCOPICAS
PARA CONTROL DE INGRESO) *GUIA 2DARIA*

[6]http://cup-coffe.blogspot.com/2009/06/modelo-estatico-dinamico-y-
funcional-en.html
MODELO DINAMICO - DIAGRANA DE ESTADO - DIAGRAMA DE
SUCESOS Y DE ESTADO

[7]file:///E:/Usuario/Administrador/Downloads/Dialnet
DisenoDeUnSistemaDeReconocimientoDeRostrosMediante-4966234.pdf

67
MODELOS MATEMATICOS

68

También podría gustarte