INSTITUTO POLITÉCNICO NACIONAL · 2017. 9. 4. · instituto politÉcnico nacional escuela superior...

90
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD ZACATENCO DISEÑO DE SISTEMA DE CONTROL DE ASISTENCIA BIOMÉTRICO DACTILAR UTILIZANDO TECNOLOGÍA .NETQUE PARA OBTENER EL TÍTULO DE: INGENIERO EN COMUNICACIONES Y ELECTRÓNICA P R E S E N T A N Jiménez Ramos Julio César Zepeda Cabezas Víctor Hugo ASESORES: Ing. Armando Mancilla León M. en C. Genaro Zavala Mejía M. en C. Roberto Galicia Galicia

Transcript of INSTITUTO POLITÉCNICO NACIONAL · 2017. 9. 4. · instituto politÉcnico nacional escuela superior...

INSTITUTO POLITÉCNICO NACIONAL

ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

UNIDAD ZACATENCO

“DISEÑO DE SISTEMA DE CONTROL DE ASISTENCIA BIOMÉTRICO DACTILAR UTILIZANDO TECNOLOGÍA .NET”

QUE PARA OBTENER EL TÍTULO DE:

INGENIERO EN COMUNICACIONES Y ELECTRÓNICA

P R E S E N T A N

Jiménez Ramos Julio César

Zepeda Cabezas Víctor Hugo

ASESORES:

Ing. Armando Mancilla León

M. en C. Genaro Zavala Mejía

M. en C. Roberto Galicia Galicia

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 1

Í ndice

Índice de Ilustraciones _____________________________________________________ 3

Índice de Tablas __________________________________________________________ 5

Resumen ________________________________________________________________ 6

Capítulo 1. Introducción ____________________________________________________ 7

1.1. Planteamiento del Problema __________________________________________________ 8

1.2. Justificación _________________________________________________________________ 8

1.3. Hipótesis ___________________________________________________________________ 9

1.4. Objetivos __________________________________________________________________ 10

1.3.1. Objetivo General ______________________________________________________________ 10

1.3.2. Objetivos Particulares _______________________________________________________ 10

1.5. Desarrollo de la Investigación _______________________________________________ 11

1.6. Alcance del Trabajo _________________________________________________________ 12

Capítulo 2. Estado del Arte ________________________________________________ 13

2.1 Bases de Datos que usan algún patrón Biométrico ______________________________ 13

2.2 Hardware __________________________________________________________________ 15

Capítulo 3. Marco Teórico _________________________________________________ 19

3.1 Modelo del Proceso de Identificación Personal _________________________________ 20

3.2. Características de un Sistema Biométrico ______________________________________ 21

3.3. Arquitectura y Medidas de Desempeño de un Sistema Biométrico ________________ 24

3.4. Módulo de Inscripción _______________________________________________________ 25

3.5. Módulo de Identificación ____________________________________________________ 26

3.6. Reconocimiento de Huella Dactilar ___________________________________________ 26

3.7. Adquisición de Huella Dactilar _______________________________________________ 33

3.8. Procesamiento de la Huella Dactilar __________________________________________ 33

3.9. Estandarización de los Sistemas Biométricos __________________________________ 35

3.9.1. Asociación Mexicana de Biometría e Identidad (AMBI) ________________________________ 35

3.9.2. Norma Oficial Mexicana _________________________________________________________ 37

3.10. C Sharp ____________________________________________________________________ 38

Escuela Superior de Ingeniería Mecánica y Eléctrica

Capítulo 4. Diseño del Sistema de Control de Asistencia _________________________ 39

4.1. Introducción _______________________________________________________________ 39

4.2. Diseño de interfaz para el reconocimiento de las huellas dactilares ______________ 39

4.3. Diseño de la Base de Datos ___________________________________________________ 54

Capítulo 5. Pruebas ______________________________________________________ 56

5.1. Pruebas del Algoritmo _______________________________________________________ 57

I. Características del Sensor ________________________________________________ 64

II. Análisis de Costos ______________________________________________________ 65

III. Código de la Aplicación_________________________________________________ 67

V. Conclusiones _________________________________________________________ 84

V. Glosario _____________________________________________________________ 86

VI. Bibliografía __________________________________________________________ 87

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 3

Í ndice de Ílustraciones

Ilustración 3- 1 Esquema de un sistema de reconocimiento de patrones ____________________________ 19

Ilustración 3- 2 Arquitectura de un Sistema Biométrico __________________________________________ 24

Ilustración 3- 3 Huella Dactilar _____________________________________________________________ 26

Ilustración 3- 4 A. Sistema Marginal, B. Sistema Nuclear, C. Sistema Basilar _________________________ 29

Ilustración 3- 5 Puntos Singulares de la Huella Dactilar. _________________________________________ 30

Ilustración 3- 6 Arco ______________________________________________________________________ 31

Ilustración 3- 7 Presilla Interna _____________________________________________________________ 31

Ilustración 3- 8 Presilla Externa _____________________________________________________________ 32

Ilustración 3- 9 Verticilo ___________________________________________________________________ 32

Ilustración 4- 1 Herramientas de Visual Studio 2012 ____________________________________________ 41

Ilustración 4- 2 Formulario de Visual Studio ___________________________________________________ 42

Ilustración 4- 3 Formulario Sistema de Control de Asistencia Biométrico Dactilar _____________________ 44

Ilustración 4- 4 Diagrama de Flujo del Formulario Principal ______________________________________ 46

Ilustración 4- 5 Formulario Secundario Ingresar Huella __________________________________________ 47

Ilustración 4- 6 Formulario Ingresar Datos de Trabajador ________________________________________ 48

Ilustración 4- 7 Diagrama de Flujo de Ingresar Huella ___________________________________________ 49

Ilustración 4- 8 Diagrama de Flujo de Ingresar Datos ___________________________________________ 49

Ilustración 4- 9 Formulario Editar Datos ______________________________________________________ 50

Ilustración 4- 10 Diagrama de Flujo de Edición de Datos _________________________________________ 51

Ilustración 4- 11 Formulario Checador _______________________________________________________ 52

Ilustración 4- 12 Formulario Verificar Huella __________________________________________________ 52

Ilustración 4- 13 Diagrama de Flujo de Checar _________________________________________________ 53

Ilustración 5- 1 Ingresando Usuario y Contraseña de Administrador _______________________________ 57

Ilustración 5- 2 Ingreso de la primera muestra de la huella _______________________________________ 58

Ilustración 5- 3 Creación del template de la huella ______________________________________________ 58

Ilustración 5- 4 Llenado del formulario para el registro __________________________________________ 58

Ilustración 5- 5 Registro exitoso de trabajador _________________________________________________ 59

Ilustración 5- 6 Mensaje de Usuario y Contraseña del trabajador __________________________________ 59

Escuela Superior de Ingeniería Mecánica y Eléctrica

Ilustración 5- 7 Edición de Registro de Trabajador ______________________________________________ 60

Ilustración 5- 8 Eliminación de Registro y Usuario ______________________________________________ 60

Ilustración 5- 9 Ingresar a las características de Personal ________________________________________ 61

Ilustración 5- 10 Ingreso a la base de datos de las huellas dactilares _______________________________ 61

Ilustración 5- 11 Intento de suplantación de identidad __________________________________________ 62

Ilustración 5- 12 Verificación de huella aceptada _______________________________________________ 62

Ilustración 5- 13 Registro hecho de Entrada o Salida ____________________________________________ 63

Ilustración I- 1 Sensor Digital Persona U.are.U 4000b ...................................................................................... 64

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 5

Í ndice de Tablas

Tabla 1- 1 Diferencia entre Sistemas Biométricos _______________________________________________ 9

Tabla 1- 2 Sistemas Biométricos Internacionales _______________________________________________ 14

Tabla 1- 3 Sistemas Biométricos Nacionales e Internacionales ____________________________________ 15

Tabla 1- 4 Características del Suprema BioStation _____________________________________________ 17

Tabla 1- 5 Características de Suprema BioStation T2 ____________________________________________ 18

Tabla 3- 1 Análisis de Características Físicas __________________________________________________ 21

Tabla II- 1 Costo de equipo para el Sistema ___________________________________________________ 65

Tabla II- 2 Costo total de implementación del Sistema __________________________________________ 66

Tabla II- 3 Salario Mensual promedio en México _______________________________________________ 66

Tabla II- 4 Costo total de desarrollo del software _______________________________________________ 66

Tabla II- 5 Costo total del Sistema de Control de Asistencia Biométrico Dactilar ______________________ 66

Escuela Superior de Ingeniería Mecánica y Eléctrica

Resumen

Hace muchos años, era viable manejar un sistema de horarios y asistencia, tan sólo con

usar unas cuantas hojas de papel. Dichos días son historia, para la mayoría de las

empresas, puesto que estos sistemas pueden ser catastróficos.

Un sistema de asistencia, que haga uso de papel, implica un enorme gasto de tiempo al

día, a la semana, al mes, etc. Del mismo modo, se requiere de muchas personas para que

hagan reportes de pagos, basándose en dichos papeles. Dichos reportes pueden presentar

inconsistencias debido a varias razones: por un lado, el sistema en sí se presta para eso,

mientras que por otro lado, no se sabe en realidad si los empleados usan el sistema con

honestidad. Con mucha frecuencia, algunos empleados tienden a colocarse más horas

laboradas, a tapar retrasos y hasta a firmar por otros. Aunque los trabajadores que acuden

a estas prácticas no las ven como algo grave, lo cierto es que éstas ocasionan pérdidas

alarmantes en una empresa.

Los sistemas modernos, para el control laboral, no sólo son mucho más precisos que sus

antecesores, sino también reflejan las horas que han sido trabajadas en realidad y

permiten acceder a esta información de manera más rápida y organizada. Por otra parte,

los sistemas modernos hacen uso de la biometría, la cual es una práctica que identifica a

las personas, al analizar sus rasgos particulares. Al basarse en estas particularidades es

imposible que un trabajador reporte la asistencia de otro, porque no hay manera de

prestarse las huellas digitales. Además, con estos sistemas biométricos se reducen

pérdidas y se mejoran los márgenes de ganancia de una empresa.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 7

Capí tulo 1. Íntroduccio n

Como parte de la modernización a nivel mundial, es necesario tener sistemas más fiables,

por lo cual, el proyecto está enfocado en utilizar un sistema biométrico dactilar enlazado a

una base de datos, para evitar errores o corrupción por terceras personas o agentes

externos al control de asistencia, como el remplazo de identidad para pasar asistencia.

La identidad permite distinguir a un individuo entre millones de personas, mediante

rasgos fisiológicos como el rostro, conformación dental, huella dactilar, iris, voz, etc.,

tanto como rasgos sociales que en gran parte, son el resultado de la interacción del

individuo con su medio.

El uso de sistemas de identificación personal se han ocupado durante la historia de la

humanidad, desde la grafología hasta el sistema de identificación ciudadana de un país,

tanto para elecciones como para poder sacar un pasaporte o hacer cualquier trámite.

El uso de la tecnología para la identificación de un individuo que se enfoca en los rasgos

fisiológicos, se le llama Biometría Informática, por lo que la identidad construida por el

sistema, se le llama Identidad Biométrica del Individuo.

Un ejemplo de los sistemas biométricos informáticos, es al momento de hablar por

teléfono celular, se relaciona la identidad del individuo que habla, mediante el número

que registre el receptor, y en ese mismo ejemplo podemos conocer un sistema biométrico

natural, como el tratar de reconocer la voz del transmisor, con la información que se ha

recopilado en el transcurso de la vida, y si el cerebro encuentra las similitudes de la voz, el

receptor es capaz de reconocer quién le habla. Esto puede sonar a que se crea una base

de datos que va enriqueciendo día a día.

Las bases de datos, se han constituido como una de las herramientas más ampliamente

difundidas, en la actual sociedad de la información, utilizadas como fuentes secundarias,

Escuela Superior de Ingeniería Mecánica y Eléctrica

en cuanto a recuperación y almacenamiento de información en todos los campos, a nivel

científico, social, económico, político y cultural.

“Como parte de la informática las bases de datos han sido parte primordial, pues en el

manejo de la información no se puede simplemente manejar, si no tenemos un lugar de

almacenamiento.”

“Las bases de datos se usan para hacer un manejo eficiente de la información”

El uso de sistemas de bases de datos automatizadas, se desarrolló a partir de la necesidad

de almacenar grandes cantidades de datos, para su posterior consulta, producidas por las

nuevas industrias que creaban gran cantidad de información.

1.1. Planteamiento del Problema

Durante años se ha presentado una gran cantidad de problemas en los checadores a

nivel general, debido a problemas físicos, simple suplantación de identidad para evitar

descuentos en la nómina, o para evitar retardos y que no tengan bonos por

puntualidad.

En ocasiones, el personal sólo checa y se retira de su sitio de trabajo, dejando a un

lado sus deberes dentro de la empresa o escuela.

1.2. Justificación

Actualmente, los sistemas tradicionales para la identificación no son totalmente seguros, y

no se dan abasto para la demanda de seguridad que se desea, puesto que se requiere la

identificación para ingresar a diferentes partes de la empresa, o incluso sitios restringidos,

que necesitan aún una mayor seguridad para controlar información de carácter personal.

Por lo mismo, la necesidad de implementar sistemas que empleen la biometría, con todas

su ventajas como método de identificación, e incluida una base de datos confiable y

segura, donde se pueda evitar que se compartan las claves, códigos de ingreso o tarjetas

de acceso e incluso, se pueda evitar la suplantación de identidad.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 9

Definitivamente, ningún sistema biométrico está exento de errores mediante

suplantación, pero las diferentes características de los diversos sistemas biométricos,

muestran las debilidades y las fortalezas de cada sistema, como la tabla 1-1.

Ojo (Iris) Ojo

(Retina)

Huella

Dactilar

Geometría

de la mano

Escritura y

Firma

Voz Cara

Fiabilidad Muy Alta Muy Alta Alta Alta Media Alta Alta

Facilidad de

uso

Media Baja Alta Alta Alta Alta Alta

Prevención

de ataques

Muy Alta Muy Alta Alta Alta Media Media Media

Aceptación Media Baja Alta Alta Muy Alta Alta Alta

Estabilidad Alta Alta Alta Media Baja Media Media

Tabla 1- 1 Diferencia entre Sistemas Biométricos

La tabla 1 muestra que el sistema más estable es el de huella dactilar,

independientemente de que pueda ser utilizado un molde o simplemente disponer de la

huella dactilar.

“Encontrar un sistema infalible e inequívoco para reconocer personas es el objetivo de la

biometría.”1

1.3. Hipótesis

Cuanto mayor sea el control de asistencia en una empresa o escuela, a través de un control

de asistencia por sistema biométrico apoyado por una base de datos, que contenga la

información del trabajador, la suplantación de identidad al momento de marcar asistencia,

se verá disminuida, por lo tanto se verá obligado a llegar a tiempo.

Escuela Superior de Ingeniería Mecánica y Eléctrica

1.4. Objetivos

1.3.1. Objetivo General

Diseñar un prototipo de un sistema con interfaz gráfica para el control de asistencia,

dedicado a una empresa o escuela para impulsar una mayor eficiencia, usando un sistema

biométrico que detecte huellas dactilares, y que éstas sean guardadas en una base de

datos para tener un sistema ágil.

1.3.2. Objetivos Particulares

Diseñar un prototipo de interfaz gráfica para la interacción Usuario-Sistema mediante la tecnología

.NET.

Crear una base de datos para alojar la información del control de asistencia y de los usuarios que

lo ocupen.

Usar un sistema biométrico que detecte huellas dactilares que sea compatible con Windows.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 11

1.5. Desarrollo de la Investigación

El presente escrito, se ha desarrollado con el fin de explicar de manera detallada el

desarrollo del control de asistencia por sistema biométrico dactilar, diseñado en Visual

Studio 2012® en lenguaje de programación C#.

Este escrito se conforma de 5 capítulos:

Capítulo 1. Introducción

Plantea describir brevemente la evolución del control de asistencia, además de explicar

la justificación del diseño de un control de asistencia asistido por un sistema

biométrico, que reconoce huellas dactilares.

Capítulo 2. Estado del Arte

Detalla cuál es el mercado en donde se ubican estos sistemas por diferentes formas de

verificación, así como los avances tecnológicos que se han presentado en los últimos

años.

Capítulo 3. Marco Teórico

Se presentan los conceptos y explicaciones necesarias para la compresión del

mecanismo de trabajo, y cuáles son los rasgos importantes de reconocimiento y

verificación.

Capítulo 4. Diseño

Explica de manera concisa los elementos que integran al control de asistencia, la forma

en que fue diseñado, programado y relacionado entre sí, así como la consolidación del

sistema de manera íntegra.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Capítulo 5. Pruebas y Resultados

Se exponen las pruebas que se llevaron a cabo durante el desarrollo del proyecto, y los

resultados obtenidos una vez que fue implementado.

1.6. Alcance del Trabajo

El desarrollo del control de asistencia por sistema biométrico dactilar, se limita hasta su

completo diseño y pruebas de factibilidad, lo que no abarca es su implementación en

los checadores de ESIME, sin embargo, se dejan las bases para que dicha

implementación se pueda llevar a cabo en un futuro.

En cuanto a las pruebas, se limitó trabajar con los alumnos del grupo 9CM11-2012 para

conocer la fiabilidad y velocidad que el sistema posee.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 13

Capí tulo 2. Estado del Arte

2.1 Bases de Datos que usan algún patrón Biométrico

Existen diversas bases de datos que utilizan sistemas biométricos para su reconocimiento,

desde bases de datos para ADN hasta documentos oficiales, como Licencias, Armas y

Sistemas Electorales.

En el país existen 3,045 bases de datos personales (a través del Sistema Persona).

De ellos, 234 prevé algún tipo de datos biométrico (huella dactilar o iris del ojo).

Algunos sistemas, que incluyen una base de datos por sistema biométrico a nivel nacional

e internacional, se muestran en la tabla 1-2 y 1-3:

Asia Pacífico 27 países de la

región

Visa que facilita

la movilidad de

las personas de

negocios

A través del I-

24/7 (sistema

en línea de

Interpol)

contribuye con

la Lista de Robo

y Extravío de

Documentos de

Viaje de

Interpol

Fotografía,

huellas

dactilares e iris

Escuela Superior de Ingeniería Mecánica y Eléctrica

Zona Schengen 25 países: 22

miembros de la

UE y 3 no

miembros de la

UE

Lista biométrica De aquellos que

han cometido

algún crimen

Fotografías y

huellas

dactilares

Interpol 190 países

miembros

Intercambio de

información a

través del I-

24/7

Varias bases de

datos

biométricas

ADN, fotografía,

huellas

dactilares.

Tabla 1- 2 Sistemas Biométricos Internacionales

Países Bases criminales Sistemas migratorios

Australia

• Sistema Nacional de Huellas

Dactilares (NAFIS)

• Bases de Datos Nacional de

Investigación Criminal de

ADN (NCIDD)

• Puertas inteligentes

(Smart Gates)

• Visa de Negocios

(APEC)

• Alerta de Lista de

Movimientos (MAL)

México • Plataforma México

• Sistema Integral de

Operación Migratoria

(SIOM)

• Sistema Integral de

Administración

Consular (SIAC)

• Visa de Negocios

(APEC)

Nueva Zelanda • Base Nacional de ADN • Puertas inteligentes

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 15

• Base de Datos de Evidencias

de Crimen

• Sistema de Huellas

Dactilares (AFIS)

(Smart Gates)

• Visa de Negocios

(APEC)

• Alerta de Lista de

Movimientos (MAL)

España

• Base de Datos Única de ADN

en materia Criminal

• Schengen I y II

• Sistema Nacional de Huellas

Dactilares

• Eurodac

• Schengen I y II

• Sistema de

Información de Visas

(VIS)

Tabla 1- 3 Sistemas Biométricos Nacionales e Internacionales

2.2 Hardware

Existen los relojes checadores dedicados, dichos relojes como su nombre lo dice, son

dispositivos que sólo tienen una función específica, la cual es almacenar la huella digital, y

en forma independiente reconocer las huellas. Este tipo de reloj almacena la fecha y hora

en que se reconoce una huella, para que posteriormente dicha información sea extraída

por otro ordenador.

Existen diversos tipos de sensores detectores de huellas dactilares modernos, pero los

más reconocidos son los siguientes:

Sensores con ventana de algodón

El tiempo de vida de éste depende del uso correcto al momento de hacer contacto

con el dedo, debido a que tiene una capa delgada de silicón. Si la superficie que

detecta sufra algún daño (rayaduras), tiene un porcentaje de probabilidad alto de

que deje de funcionar en sus condiciones normales. Si su uso es el correcto, su

tiempo de vida puede ser mayor a 5 años.

Sensores con ventana a prueba de rayones

Escuela Superior de Ingeniería Mecánica y Eléctrica

Este sensor óptico tiene una ventana más resistente que el vidrio y se limpia con

un trapo húmedo. El tiempo de vida de éste es indefinido. Los sensores CA-8 y CA-

680 de la marca “Bioaxo”(1) cuentan con este sensor.

Sensor óptico multiespectral

Es un sensor a prueba de rayones y utiliza luz ultravioleta, infrarroja y normal para

leer la huella, es un sensor de alta precisión que puede detectar huellas borradas

con el uso, pues la luz ultra violeta, la lee bajo la piel. Es una tecnología más cara,

puede leer huellas de personas de edad avanzada y niños.

Algunos ejemplos de estos tipos de sensores, son los creados por Kimaldi, llamado

Terminal biométrico de huella dactilar Suprema BioStation (2), con las ventajas de:

Algoritmo rápido y preciso, hasta 3,000 huellas por segundo.

Memoria para 400,000 huellas (1:1) y 1,000,000 de registros

Tecnología Dual CPU System, mayor precisión y rapidez en la identificación

Múltiples sensores: óptico, capacitivo

Fácil instalación en red: TCP/IP, RS 485

Pantalla color LCD con una interfaz gráfica muy intuitiva

Entrada USB para descarga de eventos

Múltiples modos de funcionamiento: biométrico, RFID, teclado (combinables)

Dispone de software de control de acceso.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 17

Las características principales de este sistema, son:

CPU Dual CPU (32bit RISC + 400MHz DSP)

Memoria 1GB Flash + 34 MB RAM

Pantalla 2.5" QVGA 16M Color LCD

Velocidad identificación

biométrica

1 a 3.000 huellas en 1 seg.

Capacidad de huellas 400.000 huellas (1:1), 20.000 huellas

(1:N)

Capacidad de registros 1.000.000 eventos

Interfaz Wireless LAN (opcional), TCP/IP, RS485

PC Interfaz USB, RS232

Ranura USB USB Host

Relé de salida Deadbolt, EM lock, door strike,

automatic door

External I/O Wiegand I/O, 4 TTL I/O

Modos de operación Biométrico, PIN, PIN + Biométrico

Interfono Micrófono y altavoz para interfono

Tecla de navegación Tecla para navegar por el menú

Tecla de función 4 teclas de función para definir

funciones

Temperatura de operación - 20℃~ 50℃

Tamaño 135 x 128 x 50mm (W x H x D)

Tabla 1- 4 Características del Suprema BioStation

El software Suprema, es uno de los sistemas más confiables a nivel comercial, puesto

que cuenta con grandes características, como la inclusión de una cámara, para evitar

la suplantación de identidad.

Y el sucesor de este sistema es su segunda versión Suprema BioStation T2, con

características de hardware más completas:

Escuela Superior de Ingeniería Mecánica y Eléctrica

CPU 667MHz RISC, 533MHz DSP

Memoria Flash 1GB, 256MB RAM

LCD Pantalla táctil WVGA 5.0 pulgadas

Sensor de Huella Óptico

Cámara Detección de rostro y

videoteléfono

Opciones de Tarjeta RF EM 25KHz, Mifare 13.56 MHz

Capacidad de Huellas 400,000 (1:1), 20,000 (1:N)

Máximo de Usuarios 200,000

Capacidad de Registros Huellas: 1,000,000 / Imágenes:

5,000

PoE (cable que reduce el consumo

de energía)

Interfaces Wireless LAN (opcional)

TCP/IP

Wiegand 2 canales

RS485, RS232

4 x TTL E/S

2 x Relevador USB (Host y

Esclavo)

Entrada para tarjeta SD

Tamper Switch

Sonido Indicación de voz y sonido 16 bit

Hi-Fi

Temperatura de Operación - 20’C ~ 50’C

Voltaje de Operación 12 VDC

Dimensiones (mm) 155 (Ancho) x 155 (Alto) x 40

(profundidad)

Tabla 1- 5 Características de Suprema BioStation T2

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 19

Capí tulo 3. Marco Teo rico

El reconocimiento de patrones, es la ciencia que se encarga de la descripción y

clasificación de objetos, personas, representaciones, etc. Esta ciencia trabaja con base a

un conjunto de patrones individuales previamente establecidos. Las aplicaciones creadas

de reconocimiento de patrones es muy basto, sin embargo, las dos más importantes se

relacionan con la visión y audición por parte de un sistema, haciendo una analogía de los

seres humanos.

Un sistema de reconocimiento de patrones (Ilustración 3-1), consta de varias etapas

relacionadas.

Ilustración 3- 1 Esquema de un sistema de reconocimiento de patrones

El sensor tiene como propósito, hacer una representación viable del patrón que se

clasificará. Es la parte crucial del sistema, ya que éste, determina de manera notable el

rendimiento de todo el sistema. La extracción de las características, es la etapa que se

encarga, a partir del patrón obtenido, extraer la información comprimida, eliminando

información insignificante y repetida. Por último, la etapa de clasificador, es la encargada

de la toma de decisiones en el sistema, asignando los patrones a una categoría apropiada.

Sensor

Extractor de Características

Clasificador

Universo

(Objetos, conceptos)

Patrón

Características

Decisión

Escuela Superior de Ingeniería Mecánica y Eléctrica

El reconocimiento de patrones es la base teórica fundamental de la Biometría, ya que un

Sistema Biométrico, es un sistema de reconocimiento de patrones por lo que la

fundamentación matemática, es de gran importancia para los fabricantes de tecnología

biométrica, no así para el desarrollo de este trabajo de tesis, cuyo objetivo es diseñar un

Sistema de Control de Asistencia Biométrico Dactilar, con tecnología creada por “Digital

Persona” para el control seguro de la asistencia en una empresa o escuela.

3.1 Modelo del Proceso de Identificación Personal

El modelo del proceso de la identificación personal, insta de tres indicadores de identidad,

que determinan la identificación de un individuo:

1. Posesión, lo que el individuo tiene.

2. Conocimiento, lo que sabe.

3. Característica, características físicas o conductuales, por la cual puede ser

identificada.

El último indicador necesita 4 requisitos básicos para poder ser considerado como un

indicador de identidad:

• Universalidad: Se define como algo que poseen todos los seres humanos o una

especie en común, por lo que el indicador de identidad que se seleccione deberá

estar presente en todos los individuos o especie que deseen estar dentro del

sistema de reconocimiento.

• Singularidad: Hace referencia a algo que es único en su especie, lo que quiere

decir que la probabilidad de que existan dos personas o dos elementos de la

especie es casi nula.

• Estabilidad: Debe ser un rasgo o característica que debe permanecer invariable e

indefinidamente en el mismo estado, situación o lugar, por lo que este rasgo debe

de estar presente a lo largo de la vida del humano o miembro de su especie.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 21

• Cuantificación: Debe ser posible medir y/o conocer, la cantidad exacta que posee

el identificador de identificación que se ha seleccionado.

Estos requerimientos, sirven como criterio para descartar o aprobar alguna característica

física o conductual, como indicador biométrico.

Indicador Universalidad Singularidad Estabilidad Cuantificación

Cabello No No No Si

Estatura Si No No Si

Distancia entre los ojos Si No Si Si

Huella Dactilar Si Si Si Si

Peso Corporal Si No No Si

Geometría de la mano Si Si Si Si

Tabla 3- 1 Análisis de Características Físicas

Como se observa en la tabla 3-1, sólo dos características físicas del humano de 6 que se

seleccionaron, cumplen con los 4 requisitos necesarios para poder ser considerados como

patrones de identificación biométricos. Por lo que, tomando en cuenta el resultado de

éste análisis, se puede concluir que no todos las características de los humanos pueden

ser considerados como patrones de identificación biométrico, por lo que es necesario que

las empresas dedicadas a la identificación de personas por algún patrón biométrico, lleven

a cabo una exhaustivo estudio del patrón que deseen ocupar, para que éste pueda

cumplir con el objetivo de manera correcta.

3.2. Características de un Sistema Biométrico

Un sistema biométrico, es una técnica automática de identificación y verificación de un

individuo, usando una o más características físicas y/o de comportamiento determinante.

Éstos deben cumplir con características básicas para poder ser tomado en cuenta como un

sistema estable y seguro son: desempeño, aceptabilidad y fiabilidad, con lo que puede

obtener una utilidad práctica.

Escuela Superior de Ingeniería Mecánica y Eléctrica

I. Desempeño:

Se refiere a la exactitud, rapidez y robustez alcanzada para la identificación de los

individuos por parte del sistema biométrico. Otros elementos que se toman en

cuenta para calificar el desempeño son:

Los recursos tecnológicos para su fabricación.

Costos asociados.

Efecto de factores ambientales y/u operacionales.

Esta característica tiene como objetivo, comprobar si el sistema es exacto, rápido y

aceptable, con los recursos necesarios.

II. Aceptabilidad:

Se refiere a que tan dispuesta esta la gente en aceptar un sistema biométrico, en

su vida diaria. Dicho sistema, debe de ser de fácil uso, no debe de representar

algún peligro para los usuarios y debe de inspirar confianza a los usuarios.

Un ejemplo de un sistema biométrico que debido a factores psicológicos puede

afectar en esta característica con el dispositivo de reconocimiento, es el

reconocimiento de retina debido que el usuario requiere un contacto cercano

entre el dispositivo y el ojo del usuario, ya que el ojo del usuario no tiene

protección frente al dispositivo.

III. Fiabilidad:

Esta característica expresa qué tan difícil es burlar al sistema. Para que un sistema

biométrico sea fiable totalmente, debe de reconocer características de personas

vivas, ya que es posible crear grabaciones digitales de voz, dedos de látex, prótesis

de ojos, entre otros, para poder burlar la seguridad del sistema y obtener acceso a

donde deseen entrar

“Recientemente, investigadores de la Universidad de Clarkson (Postdam, N.Y.), con

ayuda del financiamiento de instituciones gubernamentales de Estados Unidos,

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 23

como el Departamento de Defensa y la Fundación Nacional para las Ciencias,

probaron que es posible engañar a este tipo de dispositivos, con métodos

relativamente sencillos. En su experimento, el equipo de investigadores creó 60

dedos falsos, que lograron engañar a los dispositivos lectores de huellas digitales, -

y su software correspondiente- en 9 de cada 10 intentos. De acuerdo con los

especialistas, las huellas dactilares falsas pueden ser extraídas de cadáveres o de

personas vivas, y ser moldeadas en plástico, o inclusive plastilina o gelatina. Los

resultados de la investigación servirían para encontrar nuevos métodos, para

determinar si la característica bajo estudio corresponde o no a la de una persona

viva, y de esta forma impedir fraudes relacionados con los sistemas biométricos.

Expertos en el área, aseguran que otra forma de evitar fraudes en este tipo de

sistemas es, combinando los distintos rasgos biométricos que pueden ser

utilizados, como identificadores de identidad. Por ejemplo, se pueden fabricar

sistemas que reconozcan la huella dactilar, y una vez que ésta sea verificada, se

proceda al reconocimiento de la voz del usuario. Otro ejemplo podría ser, la

creación de sistemas que verifiquen la identidad de un individuo, escaneando su

iris o retina, y que además, requieran de una contraseña que al momento de ser

introducida a través de un teclado, será verificada y pasará por un análisis de

velocidad de tecleo y presión ejercida sobre las teclas, es decir, se llevará a cabo el

reconocimiento del patrón de tecleo del usuario. De esta forma se volverá mucho

más difícil para los impostores, poder falsificar todos los rasgos biométricos

utilizados en este tipo de “sistemas combinados”. No obstante, el elevado costo de

este tipo de sistemas será una desventaja, tanto para los fabricantes, como para

las empresas o particulares que decidan adquirirlos, esto debido a que la cantidad

de hardware y software necesarios, para que los sistemas operen como es

deseado, se verá incrementado y dependerá de la cantidad de características

biométricas utilizadas.” (3)

Actualmente, existen métodos que son empleados para evitar la suplantación de

identidad, cómo el sistema basado en reconocimiento de iris, el cual, revisa patrones

Escuela Superior de Ingeniería Mecánica y Eléctrica

característicos en las manchas de éste y un sistema infrarrojo revisa las venas de la mano,

detectando flujo de sangre.

Actualmente, se ha desarrollado sistemas más fiables pero aún falta mucha investigación

para desarrollar sistemas biométricos totalmente fiables.

3.3. Arquitectura y Medidas de Desempeño de un Sistema

Biométrico

Los sistemas biométricos poseen tres componentes esenciales:

1. El que se encarga de la adquisición análoga o digital del patrón biométrico

(adquisición de la huella dactilar mediante el escáner).

2. Compresión, procesamiento, almacenamiento y comparación de los datos

obtenidos.

3. Interfaz gráfica para la utilización del sistema.

La arquitectura de los sistemas biométricos se pueden dividir en dos módulos: El Módulo

de Inscripción y el Módulo de Identificación.

Ilustración 3- 2 Arquitectura de un Sistema Biométrico

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 25

3.4. Módulo de Inscripción

Éste módulo, es el encargado de adquirir y almacenar la información obtenida del

indicador biométrico, con el propósito de poder verificar esta información con la que se

proporcionará en ingresos posteriores al sistema. Las tareas ejecutadas por este módulo,

son gracias a la acción del lector biométrico y del extractor de características.

El lector biométrico se encarga de obtener los datos relativos del indicador biométrico y

hacer una representación digital de éstos. El extractor, como su nombre lo indica, extrae,

a partir de la salida del lector, las características representativas del patrón biométrico.

En este proceso de recolección de datos, se presenta uno de los primeros problemas, las

muestras, están sujetas a la calidad y características del sensor utilizado, lo que lleva a que

las características del sensor sean estandarizadas, con el fin de garantizar que las muestras

obtenidas de un usuario, sean compatibles.

En el almacenamiento, existen diferentes formas de almacenar los datos previamente

reunidos y procesados, que al momento de almacenarse reciben el nombre de patrón

(template). La organización de la estructura de los datos debe ser flexible, permitiendo su

reestructuración, en un caso necesario. De este modo es posible definir entre varias

formas de almacenar para los diferentes sistemas biométricos, dependiendo de sus

características se pueden almacenar de las siguientes formas:

1. Sistema protegido dentro del dispositivo biométrico.

2. Base de datos convencional.

3. Token portátil, por ejemplo, una tarjeta inteligente.

Escuela Superior de Ingeniería Mecánica y Eléctrica

3.5. Módulo de Identificación

Éste módulo, es el responsable del reconocimiento de los individuos, por ejemplo, en el

Sistema de Control de Acceso Biométrico Dactilar. El proceso de identificación, empieza

cuando el lector biométrico, captura la característica de la persona a ser identificada, la

convierte en forma digital, para que el extractor de características produzca una

representación compacta, con el mismo formato del patrón.

La representación de la información ingresada en este módulo se denomina “query”, que

es enviada al comparador de características que confronta a éste, para buscar la identidad

de la persona con uno o varios patrones reconocidos.

Los procesos realizados por el módulo de inscripción, reciben el nombre de fase de

inscripción y los procesos realizados por el módulo de identificación, se denominan como

la fase operacional.

3.6. Reconocimiento de Huella Dactilar

El reconocimiento de huellas dactilares, es el método de identificación más utilizado y por

ende, más estudiado, debido a la facilidad de adquirir, usar y tiene una gran aceptación,

por parte de los usuarios.

Ilustración 3- 3 Huella Dactilar

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 27

La huella dactilar, es una característica física única en cada ser humano y la ciencia

encargada del estudio se llama Dactiloscopía (de los vocablos griegos “daktilos”, que

significa dedos y “skopein”, que significa examen o estudio).

La Dactiloscopía es usada como un método de identificación que se basa en el estudio y

clasificación de las crestas presentes en la huella dactilares, éste estudio se inicia desde la

antigua China, en la cual los emperadores realizaban operaciones comerciales o de

cualquier índole marcando con la huella dactilar, los documentos más importantes; a

partir de entonces, diversos investigadores realizaron estudios a dichos dibujos dejados

por los dedos, desde Marcelo Malpigui en 1656, el cual al investigar acerca del sentido del

tacto, descubre la diversidad de formas en dichos dibujos dejados por los dedos, hasta

Vúcetich, el cual realiza estudios para establecer el Sistema que lleva su nombre, el cual es

utilizado actualmente en diversos países para la clasificación dactilar de diferentes

organismos gubernamentales como el ejército, en el ámbito civil y penal.

Los sistemas que ocupan la dactiloscopia se basan en las siguientes características de las

huellas dactilares:

• Inmutabilidad de los dibujos dactilares desde que aparecen en la vida

intrauterina, los cuales perduran hasta ciertos procesos avanzados de

putrefacción.

• Inalterabilidad a lo largo de la vida, a excepción de heridas profundas que

produzcan alguna lesión, sin embargo, las lesiones que dejan huellas o

cicatrices, son también características de elementos de identificación.

• Diversidad Infinita, las huellas dactilares son únicas e irrepetibles, cada ser

humano posee huellas dactilares con características individuales. Hasta este

momento, no se ha encontrado a un par de personas con la misma huella

dactilar.

A simple vista, las personas pueden observar que la piel no es totalmente lisa o uniforme,

sino que está cubierta de rugosidades, protuberancias y depresiones en la dermis. Las

rugosidades son las siguientes:

Escuela Superior de Ingeniería Mecánica y Eléctrica

a. Papilas: Son pequeñas protuberancias que nacen la dermis y sobresalen en la

epidermis, son variadas las formas que tienen, unas son cónicas, otras

hemisféricas y otras piramidales. El número de papilas agrupadas por milímetro

cuadrado, son aproximadamente 36 y su tamaño es de 55 a 225 milésimas de

milímetros de altura.

b. Crestas: Son los bordes que sobresalen de la piel, que están formados por una

continuación de papilas, estos borden siguen las ondulaciones de los surcos en

todas direcciones y forman infinidad de figuras de las yemas de los dedos, son

más amplios en su base que en la cúspide, dan el aspecto de una montaña en

miniatura.

c. Surcos: Son los espacios hundidos, se encuentran entre las papilas. También son

llamados surcos interpapilares, ya que al entintar los dedos, la tinta no cubre

toda la yema y al hacer la impresión de la huella sobre una superficie plana,

quedan espacios en blanco.

d. Poros: Son los pequeños orificios, que se encuentran situados en las cúspides de

las crestas o cerca de los vértices, su función es segregar el sudor. Éstos, tienen

diferentes formas, como son: circulares, ovoidales, triangulares, etc.

Los dibujos o formas que se forman en los dedos, reciben el nombre de dactilogramas

(deriva de los vocablos griegos: “daktylos”, que significa dedos y “grammas” que significa

escrito). Si el dactilograma proviene de algún dedo de la mano, se denomina dactilograma

papilar y si proviene de un dedo del pie o de la palma de la mano, se denominan

dactilogramas plantares.

Los dactilogramas se pueden dividir en tres tipos:

• Dactilograma natural: Formado por las crestas papilares de forma natural.

• Dactilograma artificial: Formado por el resultado de entintar un dactilograma

natural e imprimirlo en una zona.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 29

• Dactilograma latente: Es la huella dejada por cualquier dactilograma natural al

tocar un objeto o superficie. Este dactilograma es invisible al ojo humano, para su

revelación se requiere aplicar un reactivo adecuado.

Un dactilograma se puede dividir en tres partes, conocidas como: Sistema Basilar,

Sistema Marginal y Sistema Nuclear. (5)

Sistema Basilar: Está constituido por las crestas que forman la base de la última

falange, limitan por la parte inferior con el pliegue de flexión, tienen una dirección

transversal o ligeramente oblicua y en algunos casos toman una dirección

ascendente formando ligeros arcos u ondulaciones. La cresta altas de este sistema

se llama “Limitante Basilar” y contribuye a formar los deltas por su rama inferior.

(7)

Sistema Marginal: Como su nombre lo indica, se encuentra situado en el margen o

contorno del dactilograma, lo forma las crestas que parten de los costados del

dibujo, paralelamente a las crestas basilares, de las cuales se separan para elevarse

marginalmente describiendo curvas de convexidad hacia arriba para descender

luego por el lado opuesto al de la partida y unirse o aproximarse nuevamente a las

basilares. La cresta más inferior o interna de este sistema, recibe el nombre de

“Limitante Marginal” y contribuye a formar el delta por so lado externo. (7)

Sistema Nuclear: Está formado por el dibujo de crestas que aparecen en el centro

o núcleo del dactilograma, encerradas por las limitantes basilar y marginal,

formando dibujos muy diversos y variados. La cresta más externa de este sistema

se llama “Limitante Nuclear”. (7)

Ilustración 3- 4 Ilustración 3-4 A. Sistema Marginal, B. Sistema Nuclear, C. Sistema Basilar

Escuela Superior de Ingeniería Mecánica y Eléctrica

Todos los dactilogramas coinciden que las crestas no describen formas aleatorias, sino que

constituyen sistemas definidos por su orientación y figura. Se pueden distinguir cuatro

grupos de configuraciones dérmicas, según la Clasificación de Henry.

Antes de conocer las cuatro características, se debe de estudiar dos singularidades

presentes en las huellas dactilares, llamadas Núcleo (Core) y Delta, para así conocer las

características generales de un dactilograma.

Delta: Es la figura triangular, formada por la aproximación o fusión de las

limitantes de los sistemas de tres crestas. Se le llama Delta, por su semejanza con

la letra griega Delta (Δ).. El punto déltico está situado en el vértice de la bifurcación

de la cresta.

Núcleo: Se da el nombre de núcleo a un punto fijo situado aproximadamente en el

centro de una impresión dactilar. La localización de este punto central es de capital

importancia en los dactilogramas clasificados como presillas, ya que la

subclasificación de éstos tiene como base la cuenta de crestas entre el delta y el

núcleo.

Ilustración 3- 5 Ilustración 3-5 Puntos Singulares de la Huella Dactilar.

A continuación, se detallan las cuatro clases propias de la clasificación de Henry:

1. Arco: Éstos carecen de puntos delta y núcleos. Se caracterizan debido a que al

inicio, las crestas son casi rectas y paulatinamente se van arqueando, para dar la

forma como un medio círculo.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 31

Ilustración 3- 6 Arco

2. Presillas Internas: Se caracterizan porque las crestas que forman su núcleo nacen

en el costado izquierdo del dibujo, y hacen su recorrido a la derecha, para luego

dar vuelta sobre sí mismas y regresar al mismo punto de partida. Cuentan con un

punto Delta, que como se puede observar en la Ilustración 3-7, se ubica del lado

derecho del observador.

Ilustración 3- 7 Presilla Interna

3. Presillas Externas: Al igual que las presillas Internas, cuentan con un punto Delta,

pero éste se ubica del lado izquierdo del observador. Las crestas papilares que

forman el núcleo, nacen a la derecha y su recorrido es a la izquierda, para dar

vuelta sobre sí mismas y regresar al mismo punto de partida.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Ilustración 3- 8 Presilla Externa

4. Verticilo: Se denomina verticilo, debido a que sus dibujos en muchos casos son

similares a las flores; su característica más importante es que cuenta con dos

puntos Delta, uno del lado derecho y otro del lado izquierdo, su núcleo puede

adoptar formas circulares, elípticas y espirales. Se pueden encontrar verticilos con

tres deltas, llamados también trideltos, aunque esto sucede con poca frecuencia.

Ilustración 3- 9 Verticilo

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 33

3.7. Adquisición de Huella Dactilar

Existen dos métodos de adquisición de huellas dactilares: método off-line y el método

online. El primer método obtiene la huella digitalizada con una resolución espacial de 500

PPP(Puntos por pulgada), y a 256 niveles de profundidad de gris, esto según

recomendaciones del FBI, mediante el escaneo de una huella impresa en papel, obtenido

a partir de la operación tradicional de calcado del dedo tintado sobre papel satinado. Esta

metodología de funcionamiento requiere de un costo importante de tiempo, y es la que

suele usarse en aplicaciones criminalistas. En cambio el segundo método, se realiza en

tiempo real mediante el escaneo directo de la huella, a través del uso de escáneres tipo

inkless. Esta metodología, es la que frecuentemente se utiliza en aplicaciones civiles.

Tras la captura de la huella, se realizará una valoración cualitativa de la misma, el

resultado de la cual será:

a) Huella apta para ser procesada.

b) Huella recuperable mediante técnicas de pre-procesado digital de imagen.

c) Huella inutilizable debido a la baja calidad de la adquisición.

3.8. Procesamiento de la Huella Dactilar

Los pasos para el procesamiento de la huella dactilar, por un sistema automatizado de

identificación de impresiones dactilares, son:

1. Mejora de la Imagen: Este proceso consiste en eliminar las zonas confusas de la

imagen original (ruido), dejando sólo zonas con información de máxima fiabilidad.

2. Binarización: El objetivo de esta etapa, es pasar la imagen original en tonos de gris

a blanco y negro, reconstruyendo posibles cortes y mejorando la calidad global de

la imagen.

3. Adelgazamiento: Con este proceso, todas las crestas de las líneas dactilares tienen

el mismo grosor (1 píxel), haciendo que los puntos característicos de la huella

dactilar, se puedan identificar con más facilidad.

Escuela Superior de Ingeniería Mecánica y Eléctrica

4. Extracción de puntos característicos: A partir de la imagen adelgazada, el sistema

es capaz de detectar y extraer la posición exacta de los puntos característicos.

Dentro de esta etapa cabe destacar:

a) Construcción de un índice o vector: Este es el proceso final, que mediante

algoritmos matemáticos completa la creación de un índice matemático, el

cual constituye la esencia de la huella dactilar analizada, según las

características consideradas, almacenándolo en forma de fichero (este

fichero ocupa aproximadamente 300 bytes).

b) Identificación y Verificación: Una vez que se tienen el índice o vector de

muchas huellas, el sistema es capaz de realizar búsquedas 1:1, para

verificar la identidad de una persona ó 1: N para identificarla.

La extracción de puntos característicos, es por lo tanto, el proceso final que completa la

obtención de la plantilla de la huella, o patrón biométrico dactilar. La cantidad mínima de

puntos característicos necesarios, para proceder a comparaciones eficaces entre imágenes

dactilares, es de 15. La extracción de puntos característicos es un área en la que la

investigación es continua, y al día de hoy, se puede llevar a cabo con diversas técnicas:

Extracción de puntos característicos desde la imagen de la huella. En esta técnica

se apuesta por hacer un pre-procesado de la huella, antes de detectar las

características de la misma. Una vez hecho esto, se buscan los patrones a

identificar sobre la huella pre-procesada, en la cual la anchura de las crestas es de

un píxel. El pre-procesamiento de la huella, hace que el sistema de extracción

pueda trabajar con huellas con un amplio rango de calidades. Esta es la técnica

más clásica y típica, dentro de la extracción de puntos característicos de huella

dactilar.

Extracción de los puntos característicos mediante un banco de filtros de Gabor.

Ésta es una técnica bastante novedosa, y utiliza una extracción de los puntos

característicos de las huellas dactilares, basada en un banco de filtros de Gabor.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 35

Esta técnica, es usada para capturar la información útil en las bandas de los canales

de la imagen, y descomponer la información en componentes ortogonales, en

términos de frecuencias espaciales. La técnica presenta buenas características de

precisión, pero en cuanto a la velocidad de extracción presenta resultados pobres,

siempre peores que las técnicas de extracción más clásicas.

Extracción de los puntos característicos sobre la propia imagen de la huella en

escala de grises. Esta técnica se caracteriza por realizar la extracción sobre la

propia huella, y no sobre la imagen adelgazada o mejorada de la misma. Esto

presenta muchos inconvenientes y hace que la extracción sea más lenta, inexacta y

dependiente de la calidad de la huella. Además, trabajando directamente sobre la

huella en escala de grises, se detectarán un gran número de puntos característicos

falsos, y habrá otros muchos auténticos que no se detecten. Debido a estos

inconvenientes, la técnica no es muy utilizada.

3.9. Estandarización de los Sistemas Biométricos

La falta de estandarización de los sistemas biométricos a nivel industrial, ha obstaculizado

el desarrollo de algunos tipos de sistemas biométricos y por ende, el crecimiento de este

sector industrial. A pesar de esto, la industria biométrica tiene un papel muy importante y

activo, para la solución de la falta de estándares, creando resultados que empiezan a ser

considerablemente aceptables por la industria y marcando el camino hacia el futuro,

como la definición de API (Interface de Programación de Aplicaciones hasta el formato de

ficheros con la información del parámetro biométrico y su encriptación e interacción con

los diferentes dispositivos biométricos.

3.9.1. Asociación Mexicana de Biometría e Identidad (AMBI)

Esta asociación fue creada por el ingeniero mexicano Humberto López Gallegos, en el

2007, con el propósito de promover un mejor unos de prácticas, que pudieran favorecer a

lograr una mayor eficiencia y seguridad, en el uso masivo de identificaciones biométricas y

Escuela Superior de Ingeniería Mecánica y Eléctrica

soluciones de éstas, así como posicionar el desarrollo hecho en México, en otros países,

como objetivo, Estados Unidos, Europa y Latinoamérica.

Un aspecto importante que el presidente de la Asociación, consideró crucial, es el marco

jurídico alrededor del uso de la tecnología biométrica, debido a que no existen

regulaciones en México para el uso de datos biométricos de los ciudadanos, por lo que

una de las principales iniciativas de esta asociación, es la de participar activamente en la

generación de estándares y normas para la identificación de las personas con esta

tecnología en México y en otros países, tratando de convertir a México en un modelo

estandarizado a seguir mundialmente.

La AMBI, cuenta con el apoyo de compañías como: Bioscrypt, LG Iris, SAGEM, Digital

Persona, Crossmatch, L1, Quometrics, HID, Kimaldi, Ingressio y Nitgeny, que tiene una

misión en común, la consolidación de la industria de la tecnología biométrica.

Los servicios que ofrece la AMBI (9), están:

Análisis de desempeño de Identificación

Certificación de Aplicaciones

Capacitación especializada por medio de cursos

Asesorías especializadas para proyectos de identificación

Sin embargo, para poder obtener estos servicios, debes ser miembro activo de la

asociación.

Por el momento, la AMBI no ha desarrollado algún estándar para el uso de las tecnologías

biométricas en el país ni en la creación o mejora de estándares internacionales, a pesar de

contar con el apoyo de las compañías mencionadas anteriormente.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 37

3.9.2. Norma Oficial Mexicana

Conforme a la Ley Federal sobre Metrología y Normalización, una Norma Oficial Mexicana,

es la regulación técnica de observancia obligatoria expedida por las dependencias

competentes, conforme a las finalidades establecidas en el artículo 40, que establece

reglas, especificaciones, atributos, directrices, características o prescripciones aplicables a

un producto, proceso, instalación, sistema, actividad, servicio o método de producción u

operación, así como, aquellas relativas a terminología, simbología, embalaje, marcado o

etiquetado y las que se refieran a su cumplimiento o aplicación.

En materia de normalización, esta ley tiene como objetivos(10):

Fomentar la transparencia y eficiencia en la elaboración y observancia de

normas oficiales mexicanas y normas mexicanas.

Instituir la Comisión Nacional de Normalización, para que coadyuve en las

actividades que sobre normalización corresponde realizar, a las distintas

dependencias de la administración pública federal.

Establecer un procedimiento uniforme para la elaboración de normas

oficiales mexicanas, por las dependencias de la administración pública

federal.

Promover la concurrencia de los sectores público, privado, científico y de

consumidores en la elaboración y observancia de normas oficiales

mexicanas y normas mexicanas.

Coordinar las actividades de normalización, certificación, verificación y

laboratorios de prueba de las dependencias de administración pública

federal.

Establecer el sistema nacional de acreditamiento de organismos de

normalización y de certificación, unidades de verificación y de laboratorios

de prueba y de calibración.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Las normas mexicanas son realizadas por los organismos nacionales de normalización y si

ésta falta, será la Secretaria de Economía la que se responsabilice de su elaboración, en

los términos dispuestos por los artículos 51-A y 51-B de la Ley Federal sobre Metrología y

Normalización.

Las normas mexicanas son de aplicación voluntaria, salvo en los casos que las empresas

manifiesten que sus productos, procesos o servicios, son adecuados y requieran de una

norma oficial para poder sacarlos a la venta o para fines determinados. Estas normas

pueden ser aplicadas a nivel nacional, regional o local.

Existen algunos distribuidores de tecnología biométrica en México, que aseguran cumplir

con la Norma Oficial Mexicana, sin embargo, no existe una NOM que abarque las reglas,

especificaciones y atributos que deben cumplir estas tecnologías por separado o en

conjunto.

3.10. C Sharp

C# (C Sharp) es un lenguaje de programación de propósito general orientado a objetos,

creado por Microsoft para la plataforma .NET.

La creación del nombre de éste lenguaje proviene de dibujar dos signos positivos encima

de los dos signos positivos de C++, queriendo innovar y evolucionar al igual que ocurrió

con el salto de C a C++

Su sintaxis básica deriva de C y C++, utilizando el modelo de objetos de la plataforma .NET

el cual es similar al de Java aunque incluye mejoras derivadas de otros lenguajes.

La principal ventaja es el entorno de trabajo debido a que facilita la interacción entre

objetos y código, dejando que interactúen para crear diversas aplicaciones. Visual Studio

es la plataforma visual en la cual C# trabaja en conjunto con Visual Basic, dando aún más

ventajas debido a la compatibilidad con versiones anteriores .NET.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 39

Capí tulo 4. Disen o del Sistema de

Control de Asistencia

4.1. Introducción

Como se planteó al inicio de este trabajo, el diseño del Control de Asistencias por Sistema

Biométrico Dactilar se compone de los siguientes elementos esenciales:

Aplicación de reconocimiento de huellas dactilares creada en Visual Studio 2012.

Una base de datos creada en SQL Server 2012.

El diseño del control de asistencia fue realizado de forma paralela, debido a que cada

parte del Control de Asistencia representa un análisis independiente, además de que al

desarrollarlo así, la atención en cada una de las etapas es centralizada, aparte de proveer

mayor precisión en cuanto al manejo de la aplicación.

Al final de la programación de las etapas, se procede a la unión del sistema de

reconocimiento dactilar y la base de datos, para que trabajen de manera conjunta.

La unión de los elementos de software, es posible puesto que SQL Server 2012 y Visual

Studio 2012, son entornos de programación diferentes pero compatibles, al momento de

compartir información entre aplicaciones.

4.2. Diseño de interfaz para el reconocimiento de las

huellas dactilares

Para el desarrollo del Control de Asistencia por Sistema Biométrico Dactilar, se desarrolló

una profunda búsqueda de elementos de desarrollo de software compatible con Visual

Studio 2012, que facilitara el reconocimiento de las huellas dactilares en dicha aplicación.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Después de investigar y tomar en cuenta varias opciones de apoyo al desarrollo, como

librerías propias de la aplicación que han sido generadas para el reconocimiento de

huellas en C#, se sometieron a evaluaciones para saber si cumplían con las características

mencionadas a continuación:

Licencia Libre

Compatibilidad con Visual Studio 2012

Costo bajo de uso

Al encontrar una alternativa, al momento de adquirir el hardware de reconocimiento de

huellas dactilares Digital Persona U. are U. 4000, se evaluó el SDK de éste, para conocer si

era apto para su aplicación en el proyecto, se dedujo que las librerías eran aptas para

aplicarlas en la aplicación.

Es así que para el análisis y reconocimiento de las huellas dactilares, se ocuparon las

librerías (dll) del SDK, llamadas:

DPFPDevNET

DPFPEngNET

DPFPGuiNET

DPFPShrNET

DPFPVerNET

Las librerías mencionadas anteriormente, se ocuparon para el reconocimiento y

compatibilidad del hardware con Visual Studio, para la obtención de los patrones de las

huellas dactilares y su visualización.

La modalidad de programación que se ocupó fue la orientada a plataforma Windows

Form. La ventaja primordial de ésta, es que permite crear una aplicación con entorno

gráfico y amigable para el usuario, a través de herramientas de formulario de Visual Studio

2012.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 41

El hecho de querer hacer una aplicación amigable para el usuario, es debido a la intención

de facilitar la interacción Usuario-Sistema, para evitar pasos confusos con comandos que

provoquen errores en el sistema, por causa de falta de capacitación para manejar

comandos o elementos de programación orientada a consola.

Por medio de la programación orientada a plataforma, el usuario se encuentra con un

ambiente basado en botones e imágenes, con los cuales ha estado familiarizado

previamente, al manejar cualquier programa o sistema operativo de diferentes

plataformas. En el diseño del Control de Asistencia por Sistema Biométrico Dactilar, basta

con que el usuario final se familiarice con los botones, abren la aplicación que llevan el

reconocimiento e ingreso de datos y la verificación de éstos. Algunas de las herramientas

de diseño implementadas en la aplicación de Control de Asistencia, se emplearon

elementos de Visual Studio 2012 que se muestran en la ilustración 4-1.

Estos elementos se encuentran como herramientas de uso común, en el entorno de

diseño de formularios en Visual Studio 2012, en la barra de herramientas.

La herramienta Etiqueta (Label), permite colocar texto como una indicación para un

botón, una caja de texto (TextBox) o simplemente un título.

Botón (Button), sirve para generar un botón dentro del formulario, previamente

programado para que lleve a cabo una tarea determinada.

Ilustración 4- 1 Herramientas de Visual Studio 2012

Escuela Superior de Ingeniería Mecánica y Eléctrica

Caja de Texto (TextBox), permite que el usuario pueda comunicarse con el sistema,

insertando los datos necesarios para la inserción de ellos en la base de datos o para la

autentificación de los usuarios.

Temporizador (Timer), genera un contador en el formulario para controlar los procesos

que necesiten un reloj, ocupando el reloj interno de la computadora.

Visor de tabla de datos (Datagridview), permite visualizar las columnas y filas que se

generan dentro de la base de datos que se desee visualizar en el formulario.

Caja de Imágenes (PictureBox), es la herramienta base para la visualización, extracción y

sustracción de las huellas dactilares en la base de datos y dentro del formulario.

Botón tipo Radio (RadioButton), es una herramienta con las mismas características que la

de Button pero ésta sólo tiene un selector circular.

Un “Form” o formulario (ilustración 4-2) es una ventana, que se genera al momento de

crear un nuevo proyecto, que no contiene ninguna herramienta. Sobre esta ventana, se

pueden insertar todo tipo de herramienta que está marcada en la barra para el diseño de

los proyectos. Fuera de éstos es imposible insertar alguna herramienta.

Estos formularios ayudan a los usuarios familiarizados con las aplicaciones de Windows a

crear nuevas aplicaciones y aceptar de manera más fácil los controles de éstos.

Ilustración 4- 2 Formulario de Visual Studio

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 43

Para la programación del Sistema de Control de Asistencia Biométrico Dactilar, se

ocuparon 4 formularios base, uno destinado para la autentificación de los usuarios con

permiso general o permisos de personal, uno encargado para el Registro del Personal, el

tercero para el Registro de Entrada y Salida del mismo y el último para la edición de datos

de los trabajadores, también se ocuparon dos formularios auxiliares, uno para el ingreso

de la huella dactilar y otro para la verificación de ésta.

Esta división se realizó para tener una mayor seguridad en el sistema, debido a que si no

hubiera seguridad para el registro del personal, cualquier persona podría registrarse o

suplantar la identidad.

A cada formulario se le proporcionó un nombré afín a la función de éste, el formulario

principal, donde se encuentran los botones para ingresar a los otros formularios se llama

“Sistema de Control de Asistencia Biométrico Dactilar”, el formulario donde se ingresan

los datos del trabajador se llama “Ingresar Datos de Trabajador”, el de edición de datos se

llama “Edición de Datos” y por último donde se checa la entrada y salida se llama

“Checador”, a los formularios de ingreso y verificación de la huella dactilar se les dieron el

nombre de “Ingreso de Huella” y “Verificación de Huella” respectivamente.

Formulario Sistema de Control de Asistencia Biométrico Dactilar

En el formulario “Sistema de Control de Asistencia Biométrico Dactilar” (Ilustración 4-3)

se insertaron 6 Label, 2 PictureBox, 2 TextBox, 5 Button, 2 RadioButton y un Timer. Los

label fueron ocupados para el título del proyecto, para poner la fecha y hora y para titular

los TextBox; los PictureBox se ocuparon para poner los escudos; el del Instituto Politécnico

Nacional y el de la Escuela Superior de Ingeniería Mecánica y Eléctrica; los TextBox se

ocuparon para ingresar el usuario y contraseña para poder ingresar con todas las

propiedades del formulario e ingresar a tu cuenta para checar la hora de entrada y salida;

los Radio Button se ocuparon para ingresar a las tablas de datos, siendo administrador o

de personal; los cinco botones fueron ocupados para tener acceso a los formularios

mencionados anteriormente y para guardar la huella dactilar.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Ilustración 4- 3 Formulario Sistema de Control de Asistencia Biométrico Dactilar

Los 2dos TextBox son, donde se debe de ingresar el usuario y contraseña para poder

ingresar a todas las propiedades del Sistema o propiedades del Personal y para validar los

datos se ocupa el botón Habilitar.

Los Radio Button habilitan el “query” para buscar en las tablas de la base de datos,

buscando en la tabla “Usuarios” o “UsuarioPersonal”

Con el botón Habilitar, se ingresa a la base de datos para buscar si en realidad los datos

ingresados son reales, por lo que dentro de la programación del botón, se ubica el

siguiente código:

Usuario ob = new Usuario();

ob.USUARIO = textBox1.Text;

ob.CONTRASEÑA = textBox2.Text;

if (textBox1.Text == "" || textBox2.Text == "")

{

MessageBox.Show("Un campo o ambos estan vacíos, ingresa ambos

datos", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

}

else if (ob.Buscar() == true)

{

MessageBox.Show(ob.Mensaje, "Sesión Iniciada, Bienvenido");

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 45

Registro.Enabled = true;

Modificar.Enabled = true;

}

else

{

MessageBox.Show(ob.Mensaje, "ERROR", MessageBoxButtons.OK,

MessageBoxIcon.Error);

}

Donde el objeto creado de la clase Usuario se crea para poder buscar en la base de datos,

el usuario y la contraseña.

Después de que se habilitan las propiedades, podemos ingresar a los formularios para la

edición y para el registro de los trabajadores, tomando en cuenta que ambos botones

están deshabilitados previo a la habilitación.

Las instrucciones básicas para poder ingresar a los formularios restantes son:

Para el botón de Modificar Datos:

EditarDatos edit = new EditarDatos();

edit.Show();

Para el botón de Ingresar Nuevo:

IngresarDatosTrabajador abrir=new IngresarDatosTrabajador();

abrir.Show();

Para el botón de Checar:

Checar abrir=new Checar();

abrir.Show();

Para el botón de Guardar Configuración de Registro:

SaveFileDialog save = new SaveFileDialog(); save.InitialDirectory = @"C:\Users\Vicho\Desktop\Enrollment\bin\Debug"; save.Filter = "Fingerprint Template File (*.fpt)|*.fpt"; if (save.ShowDialog() == DialogResult.OK) {

Escuela Superior de Ingeniería Mecánica y Eléctrica

using (FileStream fs = File.Open(save.FileName, FileMode.Create, FileAccess.Write)) { Template.Serialize(fs); } }

Resumiendo de forma sencilla el algoritmo del formulario principal, tenemos el siguiente

diagrama de flujo (Ilustración 4-4) que presenta el funcionamiento.

INICIO

Ingresar Usuario y Contraseña de Administrador

Existe en la BD?

Activa botonesIngresar Datos, Modificar

Datos y Guardar Configuración de Registro

No activa botones

Si No

Ingresaron los 2 datos?

Si

No

Seleccionas el RadioButton llamado Personal

Ilustración 4- 4 Diagrama de Flujo del Formulario Principal

Formulario Ingresar datos del Trabajador

El diseño del formulario “Ingresar datos del Trabajador” (Ilustración 4-6) fue más

complejo, debido a que es la parte medular del Sistema, teniendo en cuenta que previo a

visualizar este formulario, se muestra uno de los formularios secundarios para el ingreso

de la huella dactilar (Ilustración 4-5).

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 47

Ilustración 4- 5 Formulario Secundario Ingresar Huella

Dentro de éste se agregó al formulario un PictureBox para poder visualizar la huella

dactilar para posteriormente, al ingresar tu huella mediante un TextBox visualizar en la

pantalla que la obtención de la huella fue satisfactoria. Cabe mencionar que el Label que

aparece en la parte inferior izquierda, indica el número de muestras necesarias para crear

el Template de la huella dactilar para subsiguientemente, guardarla en la base de datos.

Para el formulario de “Ingresar Datos del Trabajador” (Ilustración 4-5), se ocuparon 5

TextBox y 4 ListBox, 2 Labels, 1 Timer y 1 Button; los TextBox fueron ocupados para el

ingreso de los datos de Clave del Trabajador, Matrícula del Trabajador, Nombre(s),

Apellido Paterno y Apellido Materno; los ListBox fueron ocupados para ingresar los

siguientes datos:

Tipo de Trabajador: Base, Interino o Con Licencia

Turno: Matutino, Vespertino o Ambos

Hora de Entrada: Según el Turno aparecen las horas de cada turno( Matutino: de

7:00. a 14:00 horas; Vespertino: de 14:00 a 22:00 horas; Ambos, aparece desde las

7 hasta las 22 horas)

Hora de Salida: Al igual que el campo Hora de Entrada muestra las mismas horas

para los diferentes turnos.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Los Label, junto con el Timer, se ocuparon para general la fecha y hora actual.

Ilustración 4- 6 Formulario Ingresar Datos de Trabajador

Después de ingresar todos los datos en el formulario mencionado anteriormente y dar

click en el Button, se genera el query para guardar los datos en la base de datos:

string sql = "insert into Registros1 (Clave,Nombres,AP,AM,TB,HoraEntrada,HoraSalida,Turno) values ('" + this.Cl.Text + "','" + this.Nm.Text + "','" + this.AP1.Text + "','" + this.AM.Text + "','" + this.comboBox1.Text + "','" + this.comboBox3.Text + "','" + this.comboBox4.Text + "','" + this.comboBox2.Text + "')"; string sql1 = "insert into UsuarioPersonal (Usuarios, Contraseña) values ('" + this.Cl.Text + "','" + this.Mat.Text + "')"; if (registro.insertar(sql) && registro.insertar(sql1)) { MessageBox.Show("Registro Hecho"); MessageBox.Show("Anota el Usuario y Contraseña\nUsuario:" + Cl.Text + "\nContraseña:" + Mat.Text + ""); Close(); } else MessageBox.Show("Error al Registrar");

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 49

Simplificando lo mencionado anteriormente el diagrama de flujo de la Ilustración 4-7

muestra el funcionamiento del formulario secundario “Ingresar Huella” y el diagrama de

flujo de la Ilustración 4-8 muestra el funcionamiento de “Ingresar Datos”.

INICIO

Captura las 4 huellas dactilares

Genera Template

Abre Formulario Ingresar Datos

1

Ilustración 4- 7 Diagrama de Flujo de Ingresar Huella

INICIO

Ingresar todos los datos requeridos

Se hizo el Registro en la

BD?

Se guarda el registro en la base de datos

No se guarda el registro en la base de datos

Si No

Ingresaste todos los datos?

Si

No

FIN

Ilustración 4- 8 Diagrama de Flujo de Ingresar Datos

Escuela Superior de Ingeniería Mecánica y Eléctrica

Formulario Edición de Datos

En el formulario “Edición de Datos” (Ilustración 4-9) se ocuparon 3 GroupBox, 1

Datagridview, 6 Label, 6 TextBox y 2 Button.

Los GroupBox fueron ocupados para agrupar las diferentes opciones que tiene el

formulario para la edición de datos; el Datagridview se ocupó para visualizar los registros

hechos en la tabla “Registros1” de la base de datos; Los Textbox fueron ocupados para

ingresar los datos para editar o para eliminar el registro deseado; los Label fueron

ocupados para señalar a los TextBox; Los Button, uno para editar y otro para eliminar, se

les añadieron el siguiente código:

Para editar:

string campos = "Turno='" + this.Turno.Text + "', TB='" + this.TT.Text + "', HoraEntrada='" + this.HE.Text + "', HoraSalida='" + this.HS.Text + "'"; string campos1 = "Usuario='" + Clave.Text + "'"; if (regis.actualizar("Registros1", campos, "Clave ='" + Clave.Text + "'") && regis.actualizar("UsuarioPersonal", campos1, "Usuarios='" + Clave.Text + "'")) MessageBox.Show("Se actualizo exitosamente la Información y el Usuario"); else MessageBox.Show("Error al actualizar, intenta de nuevo"); dataGridView1.Refresh();

Ilustración 4- 9 Formulario Editar Datos

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 51

Para eliminar:

if(regis.eliminar("Registros1"," Clave='" + Clave1.Text + "'") && regis.eliminar("UsuarioPersonal", " Usuarios='" + Clave1.Text + "'") )

MessageBox.Show("Registro y Usuario Eliminado"); else MessageBox.Show("Error al eliminar"); dataGridView1.Refresh();

Para simplificar el código que se mostró anteriormente, se muestra el diagrama de flujo

(Ilustración 4-10) del funcionamiento de éste formulario.

INICIO

Visualizar Registros de la Tabla Registros1

Ingresar Clave del Trabajador

GroupBox Consulta General

de Registros

GroupBox Consulta General

de Registros

GroupBox Editar Información de

Trabajador

GroupBox Editar Información de

Trabajador

Ingresar datos a editar

La clave esta registrada en la BD?

Se edita el registro

SiNo

Ingresar Clave del Trabajador

La clave esta registrada en la BD?

Se elimina el registro

Si

No

GroupBox Eliminar Registro

de Trabajador

GroupBox Eliminar Registro

de Trabajador

Ilustración 4- 10 Diagrama de Flujo de Edición de Datos

Formulario Checador

El formulario “Checador” (Ilustración 4-11) se activa después de ingresar la huella de datos

para verificar si te encuentras registrado en el Sistema en el formulario “Verificar Huella”

(Ilustración 4-12).

Escuela Superior de Ingeniería Mecánica y Eléctrica

Ilustración 4- 11 Formulario Checador

Ilustración 4- 12 Formulario Verificar Huella

En “Checador”, se ocuparon 2 Label, 2 Datagridview, 2 Button y 1 TextBox, los Label se

ocuparon para intitular los Datagridview para diferenciar entre la tabla de

“ChecarEntrada” de “ChecarSalida”; los Datagridview se usaron para mostrar los datos

que se encuentran en las tablas mencionadas anteriormente; los Button se ocuparon para

guardar los registros de entrada y salida a sus correspondientes tablas.

El query ocupado para ambas tablas es el siguiente:

string sql = "insert into ChecarEntrada (Clave, Fecha, HoraEntrada) values ('"+ Cl.Text + "','" + label11.Text + "','" + label8.Text + "')"; if (regis.insertar(sql)) MessageBox.Show("Registro Hecho");

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 53

else MessageBox.Show("Error al Registrar");

El único cambio en el query para checar la salida es el nombre de la tabla.

El formulario “Verificar Huella”, al igual que el formulario “Ingresar Huella”, tienen los

mismos controles con las mismas funciones, con la excepción de que “Verificar Huella”

verifica en la base de datos de las huellas si coincide con la huella ingresada.

Lo mencionado anteriormente se resume con el diagrama de flujo de la Ilustración 4-13.

INICIO

Ingresas Usuario y Contraseña de Personal en

el Formulario Principal

Seleccionas el RadioButton llamado Personal del Formulario Principal

Existe en la BD?

Abre archivo de la huella del usuario en

uso

Existe en la BD?

Abre Formulario Ingresar Datos

Se genera un reporte de falsa

indentidad

Fin

Checa Entrada y Salida

Si

Si No

No

Fin

Ilustración 4- 13 Diagrama de Flujo de Checar

Escuela Superior de Ingeniería Mecánica y Eléctrica

4.3. Diseño de la Base de Datos

Para el diseño de la base de datos, se optó trabajar con SQL Server 2012 (Ilustración 4-14)

debido a que es un software generador de bases de datos que se acopla adecuadamente

con interfaces y aplicaciones generadas en Visual Studio, además de que es fácil de

adaptar a distintas plataformas y es de uso comercial.

Ilustración 4- 14 SQL Server 2012

La ventaja más significativa de SQL Server, es la utilidad LINQ (Language Integrated Query)

la cual agrega consultas nativas semejantes a las de SQL a los lenguajes de la plataforma

.NET, creando código que facilita el uso de herramientas como el DataGridView, ListBox,

etc.

Para determinar cuáles serían las tablas de datos necesarias para almacenar la

información de la plantilla del personal, se realizó un pequeño estudio para conocer los

datos necesarios para mantener un adecuado control de asistencia, así como los datos

básicos del personal.

Después del estudio generado en el checador del edificio 1 de ESIME Zacatenco, se decidió

generar tres tablas que contienen los datos esenciales para mantener estable y funcional

el sistema, las tablas son:

Tabla de Registros1: En esta tabla se almacenará la información básica del

personal.

Tabla ChecarEntrada: En esta tabla se almacenará la fecha y la hora de entrada del

personal.

Tabla para ChecarSalida: En esta tabla se almacenará la fecha y la hora de salida

del personal.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 55

Tabla Seguridad: En ésta, se crean los usuarios y contraseñas de los

administradores.

Tabla UsuarioPersonal: En ésta se generan los usuarios y contraseñas del personal

para poder checar su salida y entrada con la huella dactilar.

En la Ilustración 4-15 se muestra el diagrama entidad relación de las tablas que conforman

la base de datos del Sistema de Control de Asistencia Biométrico Dactilar.

Ilustración 4- 15 Diagrama de Tablas de la base de datos generada

Escuela Superior de Ingeniería Mecánica y Eléctrica

Capí tulo 5. Pruebas

Para llevar a cabo la valoración adecuada sobre el funcionamiento del Sistema de Control

de Asistencia Biométrico Dactilar, se llevaron a cabo pruebas con alumnos del grupo

9CM11 del año 2012, creando 11 templates de huellas dactilares.

Para llevar a cabo las pruebas necesarias, se crearon los templates de las huellas dactilares

de 11 alumnos del salón 9CM11 del año 2012, guardándose en una carpeta con seguridad

de administrador para tener una seguridad contra la suplantación de identidad en la base

de datos.

Para determinar los posibles escenarios de prueba, se consideraron los siguientes casos:

Cuando el administrador ingresa su usuario y contraseña.

Cuando se hace un nuevo registro.

Cuando se modifica y elimina un registro.

Cuando un trabajador ingresa su usuario y contraseña.

Cuando se intenta suplantar la identidad.

Cuando se verifica la huella.

Cuando se checa.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 57

5.1. Pruebas del Algoritmo

Para mostrar el funcionamiento del algoritmo de Control de Asistencia Biométrico

Dactilar, se dividió el conjunto de pruebas realizadas en los siete casos que se describieron

al inicio de este capítulo.

Caso 1: Cuando el administrador ingresa su usuario y contraseña.

1. Para poder acceder a las opciones de ingresar nuevo, modificar datos y guardar

configuración de registro, es necesario seleccionar la opción Administrador para

después, ingresar el usuario y contraseña del administrador (Ilustración 5-1).

Ilustración 5- 1 Ingresando Usuario y Contraseña de Administrador

Caso 2: Cuando se hace un nuevo registro

1. Después de acceder a las opciones de Administrador, damos clic en el botón

“Ingresar Nuevo”, aparecerá el formulario para ingresar la huella dactilar 4 veces

(Ilustración 5-2 e Ilustración 5-3).

Escuela Superior de Ingeniería Mecánica y Eléctrica

Ilustración 5- 2 Ingreso de la primera muestra de la huella

Ilustración 5- 3 Creación del template de la huella

2. Después de ingresar la huella, se abre el formulario para el registro de los datos del

trabajador y genera un aviso de que se ha hecho el registro exitoso (Ilustración 5-4 e

Ilustración 5-5).

Ilustración 5- 4 Llenado del formulario para el registro

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 59

Ilustración 5- 5 Registro exitoso de trabajador

3. Después de dar aceptar al mensaje de “Registro Hecho” se genera otro mensaje

donde nos indica que se ha creado el usuario y contraseña del trabajador (Ilustración

5-6), el cual le servirá para checar su entrada y salida.

Ilustración 5- 6 Mensaje de Usuario y Contraseña del trabajador

Caso 3: Cuando se modifica y elimina un registro.

1. Ya que podemos ingresar a las opciones de Administrador, damos clic en el botón

“Modificar”, aparecerá el formulario para la edición y eliminación de registros

(Ilustración 5-7), donde primero, se editara el registro que se creó en los casos

anteriores.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Ilustración 5- 7 Edición de Registro de Trabajador

2. Ahora procederemos a eliminar el registro (Ilustración 5-8).

Ilustración 5- 8 Eliminación de Registro y Usuario

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 61

Caso 4: Cuando un trabajador ingresa su usuario y contraseña.

1. Primero seleccionamos la opción para poder ingresar a las características para el

personal, después ingresamos el usuario y contraseña que se creó al momento de

ingresar los datos del trabajador (Ilustración 5-9).

Ilustración 5- 9 Ingresar a las características de Personal

Caso 5: Cuando se intenta suplantar la identidad.

1. Se ingresa el usuario y contraseña como se hizo en la Ilustración 5-9 para poder

verificar la huella dactilar y así poder checar (Ilustración 5-10).

Ilustración 5- 10 Ingreso a la base de datos de las huellas dactilares

Escuela Superior de Ingeniería Mecánica y Eléctrica

2. Después aparecerá el formulario para verificar la huella y se abrirá el formulario para

checar si es que la huella coincide con la que está en la base de datos, si no es la

huella, se crea un aviso de intento de suplantación de identidad (Ilustración 5-11).

Ilustración 5- 11 Intento de suplantación de identidad

Caso 7: Cuando se verifica la huella.

1. Al igual que en el caso 6, se ingresa el usuario y contraseña (véase Ilustración 5-10)

para después dar clic en checar y verificar la huella (Ilustración 5-12).

Ilustración 5- 12 Verificación de huella aceptada

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 63

Caso 8: Cuando se checa.

1. Después de verificar la huella (véase Ilustración 5-12), se abre el formulario para

checar para después, dar clic en Checar Entrada o Salid, según sea el caso (Ilustración

5-13).

Ilustración 5- 13 Registro hecho de Entrada o Salida

Escuela Superior de Ingeniería Mecánica y Eléctrica

Í. Caracterí sticas del Sensor

El sensor utilizado en la aplicación de Sistema de Control de Asistencia Biométrico

Dactilar, es el modelo U.are.U 4000b (Ilustración II.1) de la marca Digital Persona.

Ilustración I- 1 Sensor Digital Persona U.are.U 4000b

La decisión fue tomada debido a sus características generales como:

Tamaño compacto (79 mm X 49 mm X 19 mm)

Excelente calidad

Encriptación de huella dactilar para su uso en base de datos

Reconoce las huellas de dedos con humedad, secas o con superficie áspera

Compatibilidad con Windows 98/2000/ME/XP/7 y Windows Server 2000/2003

Y sus especificaciones técnicas:

Resolución de pixel: 512 PPP

Área de Captura: 14.6 mm (ancho) y 18.1 mm (largo)

Trabaja con imágenes en escala de grises (8 bits)

Compatible con USB 1.0, 1.1 y 2.0

Voltaje: 5V

Corriente (Modo Activo): 190 mA.

Corriente (Modo Ocioso): 140 mA.

Corriente (Modo de Suspensión): 1.5 mA.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 65

ÍÍ. Ana lisis de Costos

Para la adecuada realización del Sistema de Control de Asistencia Biométrico Dactilar, se

requiere una inversión de capital mínima, si comparamos el costo total del proyecto, con

el precio de un Sistema Biométrico Dactilar comercial, puesto que el precio de este tipo de

sistemas oscila entre los $15 000 a $ 30 000 por cada hardware y software instalado.

Para desarrollar el sistema, no fue necesario invertir en paquetería de software, ya que se

puede obtener la paquetería de Visual Studio y Sql Server 2012 gratuitamente desde la

página de Microsoft.

El equipo básico para desarrollar el sistema son dos, una computadora que trabajará

como cliente y el sensor óptico para el reconocimiento de huellas dactilares.

Equipo Costo

Computadora de escritorio marca Acer

modelo Aspire Revo R1600

$3 400

Sensor Óptico Digital Persona U.areU.

4000b

$700

Tabla II- 1 Costo de equipo para el Sistema

Teniendo en cuenta todos los gastos necesarios para instalar y que el Sistema de Control

de Asistencia Biométrico Dactilar trabaje adecuadamente, se tienen los siguientes

resultados:

Elementos Requeridos Costo

Computadora de escritorio marca Acer

modelo Aspire Revo R1600

$3 400

Sensor Óptico Digital Persona U.areU.

4000b

$700

Total $4100

Escuela Superior de Ingeniería Mecánica y Eléctrica

Tabla II- 2 Costo total de implementación del Sistema

Los costos anteriores son para implementar este sistema en un solo lugar, si se requiere

implementar en más lugares sólo se debe de duplicar el costo total de la tabla II.2.

Para determinar el pago de honorarios a los desarrolladores de software, se tomó como

base el salario mensual establecido para “Programadores de Software” en el portal de

Empleo del gobierno de la República Mexicana (8):

Puesto Salario Mensual (m/n)

Desarrollador de Software $ 7 500

Tabla II- 3 Salario Mensual promedio en México

El tiempo del desarrollo del Sistema de Control de Asistencia Biométrico Dactilar, es de

dos meses, garantizando su integridad y buen funcionamiento, por lo que el costo total

para el desarrollo del software se muestra en la tabla II.4.

Puesto Costo por el desarrollo del Sistema

Desarrollador de Software y base de datos $ 7 500

Desarrollador de Software y base de datos $ 7 500

Total $ 15 000

Tabla II- 4 Costo total de desarrollo del software

Haciendo la suma de los elementos necesarios, para la programación y funcionamiento

del sistema, así como el pago a los diseñadores es el que se muestra en la tabla II.5.

Puesto Costo por el desarrollo del Sistema

Pago a programadores $ 15 000

Material Requerido $ 4 100

Total $ 19 100

Tabla II- 5 Costo total del Sistema de Control de Asistencia Biométrico Dactilar

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 67

ÍÍÍ. Co digo de la Aplicacio n

La programación se hizo en Visual Studio 2012 con el SDK de Digital Persona, ocupando 5

de sus librerías.

Para hacer la programación más óptima se crearon 3 clases para ayudar al sistema a

comunicarse con SQL Server 2012

//////////////////////////////////////////Clase BD////////////////////////////////////////////

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; namespace Sistema_de_Control_de_Asistencia { class BD { public string cadenaconexion; protected string sql; protected int resultado; protected SqlConnection cnn; protected SqlCommand comandosql; protected string mensaje; public BD() { cadenaconexion = (@"Data Source=VICHO-PC\CASB;Initial Catalog=Control de Acceso por Sistema Biométrico Dactilar; integrated security=true"); cnn = new SqlConnection(this.cadenaconexion); } public string Mensaje { get { return this.mensaje; } } } }

///////////////////////////////////////Clase Registro/////////////////////////////////////////

using System; using System.Collections.Generic; using System.Linq;

Escuela Superior de Ingeniería Mecánica y Eléctrica

using System.Text; using System.Threading.Tasks; using System.Data; using System.Data.SqlClient; namespace Sistema_de_Control_de_Asistencia { class Registro { private string cadena = @"Data Source=VICHO-PC\CASB;Initial Catalog=Control de Acceso por Sistema Biométrico Dactilar; integrated security=true"; public SqlConnection cnn; private SqlCommandBuilder cmb; public DataSet ds = new DataSet(); public SqlDataAdapter da; public SqlCommand comando; private void conectar() { cnn = new SqlConnection(cadena); } public Registro() { conectar(); } //CONSULTAR public void consultar(string sql, string tabla) { ds.Tables.Clear(); da = new SqlDataAdapter(sql, cnn); cmb = new SqlCommandBuilder(da); da.Fill(ds, tabla); } //ELIMINAR public bool eliminar(string tabla, string condicion) { cnn.Open(); string sql = "delete from" + tabla + "where" + condicion; comando = new SqlCommand(sql, cnn); int i = comando.ExecuteNonQuery(); cnn.Close(); if (i > 0) return true; else return false; } //ACTUALIZAR public bool actualizar(string tabla, string campos, string condicion) { cnn.Open(); string sql = " UPDATE " + tabla + " SET " + " WHERE " + condicion; comando = new SqlCommand(sql, cnn); int i = comando.ExecuteNonQuery(); cnn.Close(); if (i > 0)

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 69

return true; else return false; } //CONSULTAR2 public DataTable consultar2(string tabla) { string sql = "select * from" + tabla; da = new SqlDataAdapter(sql, cnn); DataSet dts = new DataSet(); da.Fill(dts, tabla); DataTable dt = new DataTable(); dt = dts.Tables[tabla]; return dt; } //INSERTAR public bool insertar(string sql) { cnn.Open(); comando = new SqlCommand(sql, cnn); int i = comando.ExecuteNonQuery(); cnn.Close(); if (i > 0) return true; else return false; } } }

///////////////////////////////////////Clase Usuario//////////////////////////////////////////

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; namespace Sistema_de_Control_de_Asistencia { class Usuario : BD { private string usuario; private string contraseña; public Usuario() { usuario = string.Empty; contraseña = string.Empty; this.sql = string.Empty; } public string USUARIO { get { return usuario; } set { usuario = value; } }

Escuela Superior de Ingeniería Mecánica y Eléctrica

public string CONTRASEÑA { get { return contraseña; } set { contraseña = value; } } public bool Buscar() { bool Resultado = false; cnn.Open(); this.sql = string.Format(@"SELECT Usuario FROM Seguridad WHERE Usuario='{0}' AND Contraseña='{1}'", this.USUARIO, this.CONTRASEÑA); this.comandosql = new SqlCommand(sql, cnn); SqlDataReader Reg = null; Reg = this.comandosql.ExecuteReader(); if (Reg.Read()) { Resultado = true; this.mensaje = "Bienvenido " + USUARIO; } else { this.mensaje = "El usuario o contraseña no son válidos"; } this.cnn.Close(); return Resultado; } } }

////////////////////////////////////////Formulario Principal//////////////////////////////////

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; namespace Enrollment { delegate void Function(); public partial class MainForm : Form { public MainForm() { InitializeComponent();

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 71

if (Administrador.Checked) VerifyButton.Enabled = false; else VerifyButton.Enabled = true; } private void EnrollButton_Click(object sender, EventArgs e) { EnrollmentForm Enroller = new EnrollmentForm(); Enroller.OnTemplate += this.OnTemplate; Enroller.ShowDialog(); Ingresar_Datos ingresa = new Ingresar_Datos(); ingresa.ShowDialog(); } private void VerifyButton_Click(object sender, EventArgs e) { VerificationForm Verifier = new VerificationForm(); Verifier.Verify(Template, textBox1.Text); } private void OnTemplate(DPFP.Template template) { this.Invoke(new Function(delegate() { Template = template; VerifyButton.Enabled = (Template != null); if (Template != null) { MessageBox.Show("La huella esta lista .", "Base de Datos de Huellas"); } else MessageBox.Show("La huella no esta lista .Repite el paso anterior", "Base de Datos de Huellas"); })); } private DPFP.Template Template; private void MainForm_Load(object sender, EventArgs e) { } private void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToString("dd-MM-yyyy"); label4.Text = DateTime.Now.ToString("hh:mm:ss"); } private void button1_Click(object sender, EventArgs e) {

Escuela Superior de Ingeniería Mecánica y Eléctrica

Usuario ob = new Usuario(); ob.USUARIO = textBox1.Text; ob.CONTRASEÑA = textBox2.Text; if (Administrador.Checked) { if (textBox1.Text == "" || textBox2.Text == "") { MessageBox.Show("Un campo o ambos estan vacíos, ingresa ambos datos", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); textBox1.Text = ""; textBox2.Text = ""; } else if (ob.Buscar() == true) { MessageBox.Show(ob.Mensaje, "Sesión Iniciada, Bienvenido"); EnrollButton.Enabled = true; Modificar.Enabled = true; GuardarHuella.Enabled = true; textBox1.Text = ""; textBox2.Text = ""; } else { MessageBox.Show(ob.Mensaje, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); textBox1.Text = ""; textBox2.Text = ""; } } if (Personal.Checked) { EnrollButton.Enabled = false; Modificar.Enabled = false; GuardarHuella.Enabled = false; if (textBox1.Text == "" || textBox2.Text == "") { MessageBox.Show("Un campo o ambos estan vacíos, ingresa ambos datos", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else if (ob.BuscarPersonal() == true) { MessageBox.Show(ob.Mensaje, "Sesión Iniciada, Bienvenido"); EnrollButton.Enabled = false; Modificar.Enabled = false; textBox2.Text = ""; OpenFileDialog open = new OpenFileDialog(); open.FileName = textBox1.Text+".fpt"; FileStream fs = File.OpenRead(open.FileName); DPFP.Template template = new DPFP.Template(fs); OnTemplate(template);

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 73

} else { textBox2.Text = ""; MessageBox.Show(ob.Mensaje, "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } private void VerifyButton2_Click(object sender, EventArgs e) { } private void Modificar_Click(object sender, EventArgs e) { EditarDatos edit = new EditarDatos(); edit.Show(); } private void label1_Click(object sender, EventArgs e) { } private void button2_Click(object sender, EventArgs e) { SaveFileDialog save = new SaveFileDialog(); save.InitialDirectory = @"C:\Users\Vicho\Desktop\Enrollment\bin\Debug"; save.Filter = "Fingerprint Template File (*.fpt)|*.fpt"; if (save.ShowDialog() == DialogResult.OK) { using (FileStream fs = File.Open(save.FileName, FileMode.Create, FileAccess.Write)) { Template.Serialize(fs); } } } public Stream fs { get; set; } private void Administrador_CheckedChanged(object sender, EventArgs e) { } private void textBox1_TextChanged(object sender, EventArgs e) { } } }

Escuela Superior de Ingeniería Mecánica y Eléctrica

///////////////////////////////CAPTURAR HUELLA DACTILAR/////////////////////////////

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Enrollment { public partial class clave : Form, DPFP.Capture.EventHandler { public clave() { InitializeComponent(); } Registro registro = new Registro(); protected virtual void Init() { try { Capturer = new DPFP.Capture.Capture(); if ( null != Capturer ) Capturer.EventHandler = this; else SetPrompt("No se puede iniciar la captura!"); } catch { MessageBox.Show("No se puede iniciar la captura!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } protected virtual void Process(DPFP.Sample Sample) { DrawPicture(ConvertSampleToBitmap(Sample)); } protected void Start() { if (null != Capturer) { try { Capturer.StartCapture(); SetPrompt("Pon tu dedo en el dispositivo para ingresar tu huella."); } catch {

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 75

SetPrompt("No se puede iniciar la captura!"); } } } protected void Stop() { if (null != Capturer) { try { Capturer.StopCapture(); } catch { SetPrompt("No se pudo terminar la captura!"); } } } private void CaptureForm_Load(object sender, EventArgs e) { BD ob = new BD(); Init(); Start(); } private void CaptureForm_FormClosed(object sender, FormClosedEventArgs e) { Stop(); } public void OnComplete(object Capture, string ReaderSerialNumber, DPFP.Sample Sample) { MessageBox.Show("Retira el dedo."); SetPrompt("Pon tu dedo otra vez."); Process(Sample); } public void OnFingerGone(object Capture, string ReaderSerialNumber) { //MakeReport("Se ha quitado el dedo del scanner"); } public void OnFingerTouch(object Capture, string ReaderSerialNumber) { //MakeReport("El dispositivo esta listo para leer"); } public void OnReaderConnect(object Capture, string ReaderSerialNumber) { //MakeReport("El dispositivo esta conectado");

Escuela Superior de Ingeniería Mecánica y Eléctrica

} public void OnReaderDisconnect(object Capture, string ReaderSerialNumber) { //MakeReport("El dispositivo esta desconectado"); } public void OnSampleQuality(object Capture, string ReaderSerialNumber, DPFP.Capture.CaptureFeedback CaptureFeedback) { if (CaptureFeedback == DPFP.Capture.CaptureFeedback.Good) MakeReport("La calidad de la muestra es buena."); else MakeReport("La calidad de la muestra es pobre."); } protected Bitmap ConvertSampleToBitmap(DPFP.Sample Sample) { DPFP.Capture.SampleConversion Convertor = new DPFP.Capture.SampleConversion(); Bitmap bitmap = null; Convertor.ConvertToPicture(Sample, ref bitmap); return bitmap; } protected DPFP.FeatureSet ExtractFeatures(DPFP.Sample Sample, DPFP.Processing.DataPurpose Purpose) { DPFP.Processing.FeatureExtraction Extractor = new DPFP.Processing.FeatureExtraction(); DPFP.Capture.CaptureFeedback feedback = DPFP.Capture.CaptureFeedback.None; DPFP.FeatureSet features = new DPFP.FeatureSet(); Extractor.CreateFeatureSet(Sample, Purpose, ref feedback, ref features); if (feedback == DPFP.Capture.CaptureFeedback.Good) return features; else return null; } protected void SetStatus(string status) { this.Invoke(new Function(delegate() { StatusLine.Text = status; })); } protected void SetPrompt(string prompt) { this.Invoke(new Function(delegate() { Prompt.Text = prompt; })); }

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 77

protected void MakeReport(string message) { this.Invoke(new Function(delegate() { StatusText.AppendText(message + "\r\n"); })); } private void DrawPicture(Bitmap bitmap) { this.Invoke(new Function(delegate() { Picture.Image = new Bitmap(bitmap, Picture.Size); })); } private DPFP.Capture.Capture Capturer; private void EditarDatos_Click(object sender, EventArgs e) { EditarDatos mostrar = new EditarDatos(); mostrar.Show(); } } }

/////////////////////////////////INGRESAR REGISTROS/////////////////////////////////

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace Enrollment { public partial class Ingresar_Datos : Form { public Ingresar_Datos() { InitializeComponent(); comboBox1.Items.Add("Base"); comboBox1.Items.Add("Temporal"); comboBox1.Items.Add("Con Licencia"); comboBox2.Items.Add("Matutino"); comboBox2.Items.Add("Vespertino"); comboBox2.Items.Add("Ambos"); } Registro registro = new Registro();

Escuela Superior de Ingeniería Mecánica y Eléctrica

private void timer1_Tick(object sender, EventArgs e) { label7.Text = DateTime.Now.ToString("dd-MM-yyyy"); label8.Text = DateTime.Now.ToString("hh:mm:ss"); } private void button1_Click(object sender, EventArgs e) { string sql = "insert into Registros1 (Clave,Nombres,AP,AM,TB,HoraEntrada,HoraSalida,Turno) values ('" + this.Cl.Text + "','" + this.Nm.Text + "','" + this.AP1.Text + "','" + this.AM.Text + "','" + this.comboBox1.Text + "','" + this.comboBox3.Text + "','" + this.comboBox4.Text + "','" + this.comboBox2.Text + "')"; string sql1 = "insert into UsuarioPersonal (Usuarios, Contraseña) values ('" + this.Cl.Text + "','" + this.Mat.Text + "')"; if (registro.insertar(sql) && registro.insertar(sql1)) { MessageBox.Show("Registro Hecho"); MessageBox.Show("Anota el Usuario y Contraseña\nUsuario:" + Cl.Text + "\nContraseña:" + Mat.Text + ""); Close(); } else MessageBox.Show("Error al Registrar"); } private void Ingresar_Datos_Load(object sender, EventArgs e) { } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox2.SelectedIndex == 0) { comboBox3.Items.Clear(); comboBox4.Items.Clear(); comboBox3.Items.Add("7:00"); comboBox3.Items.Add("8:00"); comboBox3.Items.Add("9:00"); comboBox3.Items.Add("10:00"); comboBox3.Items.Add("11:00"); comboBox3.Items.Add("12:00"); comboBox3.Items.Add("13:00"); comboBox3.Items.Add("14:00"); comboBox4.Items.Add("7:00"); comboBox4.Items.Add("8:00"); comboBox4.Items.Add("9:00"); comboBox4.Items.Add("10:00"); comboBox4.Items.Add("11:00"); comboBox4.Items.Add("12:00"); comboBox4.Items.Add("13:00"); comboBox4.Items.Add("14:00");

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 79

} if (comboBox2.SelectedIndex == 1) { comboBox3.Items.Clear(); comboBox4.Items.Clear(); comboBox3.Items.Add("14:00"); comboBox3.Items.Add("15:00"); comboBox3.Items.Add("16:00"); comboBox3.Items.Add("17:00"); comboBox3.Items.Add("18:00"); comboBox3.Items.Add("19:00"); comboBox3.Items.Add("20:00"); comboBox3.Items.Add("21:00"); comboBox3.Items.Add("22.00"); comboBox4.Items.Add("14:00"); comboBox4.Items.Add("15:00"); comboBox4.Items.Add("16:00"); comboBox4.Items.Add("17:00"); comboBox4.Items.Add("18:00"); comboBox4.Items.Add("19:00"); comboBox4.Items.Add("20:00"); comboBox4.Items.Add("21:00"); comboBox4.Items.Add("22.00"); } if (comboBox2.SelectedIndex == 2) { comboBox3.Items.Clear(); comboBox4.Items.Clear(); comboBox3.Items.Add("7:00"); comboBox3.Items.Add("8:00"); comboBox3.Items.Add("9:00"); comboBox3.Items.Add("10:00"); comboBox3.Items.Add("11:00"); comboBox3.Items.Add("12:00"); comboBox3.Items.Add("13:00"); comboBox3.Items.Add("14:00"); comboBox3.Items.Add("15:00"); comboBox3.Items.Add("16:00"); comboBox3.Items.Add("17:00"); comboBox3.Items.Add("18:00"); comboBox3.Items.Add("19:00"); comboBox3.Items.Add("20:00"); comboBox3.Items.Add("21:00"); comboBox3.Items.Add("22.00"); comboBox4.Items.Add("7:00"); comboBox4.Items.Add("8:00"); comboBox4.Items.Add("9:00"); comboBox4.Items.Add("10:00"); comboBox4.Items.Add("11:00"); comboBox4.Items.Add("12:00"); comboBox4.Items.Add("13:00"); comboBox4.Items.Add("14:00"); comboBox4.Items.Add("15:00"); comboBox4.Items.Add("16:00");

Escuela Superior de Ingeniería Mecánica y Eléctrica

comboBox4.Items.Add("17:00"); comboBox4.Items.Add("18:00"); comboBox4.Items.Add("19:00"); comboBox4.Items.Add("20:00"); comboBox4.Items.Add("21:00"); comboBox4.Items.Add("22.00"); } } } }

//////////////////////////////GUARDAR HUELLA DACTILAR///////////////////////////////

SaveFileDialog save = new SaveFileDialog(); save.InitialDirectory = @"C:\Users\Vicho\Desktop\Enrollment\bin\Debug"; save.Filter = "Fingerprint Template File (*.fpt)|*.fpt"; if (save.ShowDialog() == DialogResult.OK) { using (FileStream fs = File.Open(save.FileName, FileMode.Create, FileAccess.Write)) { Template.Serialize(fs); } }

//////////////////////////////////EDITAR REGISTROS//////////////////////////////////

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace Enrollment { public partial class EditarDatos : Form { public EditarDatos() { InitializeComponent(); } Registro regis = new Registro(); private void groupBox2_Enter(object sender, EventArgs e) { } private void EditarDatos_Load(object sender, EventArgs e) { regis.consultar("select Clave,Nombres,AP,AM,TB,Turno,HoraEntrada,HoraSalida from Registros1", "Registros1"); this.dataGridView1.DataSource = regis.ds.Tables["Registros1"]; dataGridView1.Refresh();

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 81

} private void Eliminar_Click(object sender, EventArgs e) { if(regis.eliminar("Registros1"," Clave='" + Clave1.Text + "'") && regis.eliminar("UsuarioPersonal", " Usuarios='" + Clave1.Text + "'") ) MessageBox.Show("Registro y Usuario Eliminado"); else MessageBox.Show("Error al eliminar"); dataGridView1.Refresh(); } private void Editar_Click(object sender, EventArgs e) { string campos = "Turno='" + this.Turno.Text + "', TB='" + this.TT.Text + "', HoraEntrada='" + this.HE.Text + "', HoraSalida='" + this.HS.Text + "'"; string campos1 = "Usuario='" + Clave.Text + "'"; if (regis.actualizar("Registros1", campos, "Clave ='" + Clave.Text + "'") && regis.actualizar("UsuarioPersonal", campos1, "Usuarios='" + Clave.Text + "'")) MessageBox.Show("Se actualizo exitosamente la Información y el Usuario"); else MessageBox.Show("Error al actualizar, intenta de nuevo"); dataGridView1.Refresh(); } } }

//////////////////////////////CHECAR HUELLA DACTILAR///////////////////////////////

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using Microsoft.Office.Interop.Excel; using System.Reflection; namespace Enrollment { public partial class Checar : Form { private string clave; public Checar(string clave) { InitializeComponent(); this.clave = clave; Cl.Text = clave; }

Escuela Superior de Ingeniería Mecánica y Eléctrica

private void timer1_Tick(object sender, EventArgs e) { label11.Text = DateTime.Now.ToString("dd-MM-yyyy"); label8.Text = DateTime.Now.ToString("hh:mm:ss"); } Registro regis = new Registro(); private void Editar_Click(object sender, EventArgs e) { string sql = "insert into ChecarEntrada (Clave, Fecha, HoraEntrada) values ('"+ Cl.Text + "','" + label11.Text + "','" + label8.Text + "')"; if (regis.insertar(sql)) MessageBox.Show("Registro Hecho"); else MessageBox.Show("Error al Registrar"); } private void ChecarSalida_Click(object sender, EventArgs e) { string sql = "insert into ChecarSalida (Clave, Fecha, HoraEntrada) values ('" + Cl.Text + "','" + label11.Text + "','" + label8.Text + "')"; if (regis.insertar(sql)) { MessageBox.Show("Registro Hecho"); } else MessageBox.Show("Error al Registrar"); } private void Checar_Load(object sender, EventArgs e) { regis.consultar("select Clave,Día,Fecha,HoraEntrada from ChecarEntrada", "ChecarEntrada"); ChecEnt.DataSource = regis.ds.Tables["ChecarEntrada"]; ChecEnt.Refresh(); regis.consultar("select Clave,Día,Fecha,HoraSalida from ChecarSalida", "ChecarSalida"); ChecSal.DataSource = regis.ds.Tables["ChecarSalida"]; ChecEnt.Refresh(); } private void ExportarDataGridViewExcelEntrada(DataGridView ChecEnt) { SaveFileDialog fichero = new SaveFileDialog(); fichero.Filter = "Excel (*.xls)|*.xls"; if (fichero.ShowDialog() == DialogResult.OK) { Microsoft.Office.Interop.Excel.Application aplicacion; Microsoft.Office.Interop.Excel.Workbook libros_trabajo; Microsoft.Office.Interop.Excel.Worksheet hoja_trabajo; aplicacion = new Microsoft.Office.Interop.Excel.Application(); libros_trabajo = aplicacion.Workbooks.Add(); hoja_trabajo = new Microsoft.Office.Interop.Excel.Worksheet();

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 83

libros_trabajo.Worksheets.get_Item(1); for (int i = 0; i < ChecEnt.Rows.Count - 1; i++) { for (int j = 0; j < ChecEnt.Columns.Count; j++) { hoja_trabajo.Cells[i + 1, j + 1] = ChecEnt.Rows[i].Cells[j].Value.ToString(); } } libros_trabajo.SaveAs(fichero.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal); libros_trabajo.Close(true); aplicacion.Quit(); } } private void ExportarDataGridViewExcelSalida(DataGridView ChecEnt) { SaveFileDialog fichero = new SaveFileDialog(); fichero.Filter = "Excel (*.xls)|*.xls"; if (fichero.ShowDialog() == DialogResult.OK) { Microsoft.Office.Interop.Excel.Application aplicacion; Microsoft.Office.Interop.Excel.Workbook libros_trabajo; Microsoft.Office.Interop.Excel.Worksheet hoja_trabajo; aplicacion = new Microsoft.Office.Interop.Excel.Application(); libros_trabajo = aplicacion.Workbooks.Add(); hoja_trabajo = new Microsoft.Office.Interop.Excel.Worksheet(); libros_trabajo.Worksheets.get_Item(1); //Recorremos el DataGridView rellenando la hoja de trabajo for (int i = 0; i < ChecSal.Rows.Count - 1; i++) { for (int j = 0; j < ChecSal.Columns.Count; j++) { hoja_trabajo.Cells[i + 1, j + 1] = ChecSal.Rows[i].Cells[j].Value.ToString(); } } libros_trabajo.SaveAs(fichero.FileName, Microsoft.Office.Interop.Excel.XlFileFormat.xlWorkbookNormal); libros_trabajo.Close(true); aplicacion.Quit(); } } private void Cl_TextChanged(object sender, EventArgs e) { } } }

Escuela Superior de Ingeniería Mecánica y Eléctrica

V. Conclusiones

El desarrollo del Sistema de Control de Asistencia Biométrico Dactilar utilizando tecnología

.NET, ha sido una gran experiencia y un gran acervo cultural para nuestra formación como

estudiantes de Ingeniería en la Escuela Superior de Ingeniería Mecánica y Eléctrica, ya que

nos ha ayudado a utilizar los conocimientos que hemos adquirido día a día en clase,

además que nos ha ayudado a trabajar en equipo y resolver problemas más hábilmente.

El Sistema de Control de Asistencia Biométrico Dactilar utilizando tecnología .NET, es un

proyecto que se ha generado para resolver mediante su diseño, la falta de control de

asistencia de trabajadores docentes y personal en los edificios de la Escuela Superior de

Ingeniería Mecánica y Eléctrica; las principales ventajas de este proyecto son:

1. No es necesario que una persona esté al tanto del reloj checador, debido a que el

programa tiene su propio reloj y no puede ser vulnerado ya que trabaja con el reloj

interno de la computadora.

2. El desarrollo del sistema en Visual Studio 2012, permite que el programa diseñado

sea propiedad de los diseñadores de él, ya que Microsoft cede el uso de las

propiedades de sus herramientas de diseño como las de Visual Studio a quienes

tienen una licencia de sus programas o como en este caso obtienen los derechos

vía internet así, evitando problemas de patentes.

3. Las aplicaciones realizadas con entorno de gráficos Windows, tienen una gran

aceptación a nivel industrial o personal, debido a su fácil uso y su gran flexibilidad

de ejecutarse en diferentes plataformas de sistemas operativos al momento de

crearse la aplicación ejecutable.

4. SQL Server es una herramienta potente que brindan una gran seguridad para el

resguardo de información de las bases de datos ya que se pueden obtener

respaldos de la información.

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 85

5. Las características del Sistema, lo hacen competente para ser aplicado en lugares

diferentes, pudiéndose adaptar a las necesidades del lugar, siendo que su diseño

es flexible y pueden aumentarse sus características.

A través del Sistema de Control de Asistencia Biométrico Dactilar utilizando tecnología

.NET, se ha tratado de implementar los conocimientos adquiridos en nuestra estancia en

ESIME Zacatenco, por medio de la tecnología más novedosa en cuanto a programación,

por lo que la estructura y diseño de éste ha sido un gran reto, al tener que actualizarnos

diariamente y en el que al desarrollar el sistema nos hemos encontrado con problemas

que no han sido totalmente explorados debido a que aún no tienen una solución

determinada, por lo que debieron ser hallados por los programadores.

Sin duda, el resultado de la realización de este Sistema ha sido satisfactorio como se ha

demostrado a lo largo del trabajo, el Sistema de Control de Asistencia Biométrico Dactilar

utilizando tecnología .NET, representa para nosotros el máximo logro que hemos tenido

como estudiantes de la Ingeniería en Comunicaciones y Electrónica en la especialidad de

Computación.

Escuela Superior de Ingeniería Mecánica y Eléctrica

V. Glosario

Activo: Son reactivos que se usan para revelar huellas latentes, son fórmulas únicas, cada

una con un propósito específico y para un tipo específico de superficie.

Dermis: La dermis es la capa de la piel situada bajo la epidermis y firmemente conectada a

ella. La cara interna de la membrana basal de la epidermis se le une a la dermis.

Desempeña una función protectora, representa la segunda línea de defensa contra los

traumatismos (su grosor es entre 20 y 30 veces mayor que el de la epidermis).

Dll (Dynamic-link library): Es el término con el que se refiere a los archivos con código

ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo.

Esta denominación es exclusiva para los sistemas operativos Windows.

Epidermis: La epidermis es la barrera más importante del cuerpo al ambiente externo

hostil.

Hardware: Elementos físicos de un sistema informático.

PPP (Puntos por pulgada): Es una unidad de medida para resoluciones de impresión,

concretamente, el número de puntos individuales de tinta que

una impresora o tóner puede producir en un espacio lineal de una pulgada.

Query: Es una búsqueda, inserción, actualización o eliminación de datos almacenados en

una base de datos.

Software: Conjunto de programas e instrucciones asociadas a una computadora. Es la

parte intangible de un sistema informático, puede ser modificada con facilidad.

Template (Plantilla): Plantilla creada de la huella dactilar que se ingresa, se extraen sus

características, se codifica y se guarda en un archivo .fpt (fingerprint template file).

Escuela Superior de Ingeniería Mecánica y Eléctrica

Página 87

VÍ. Bibliografí a

1. Rejo de Huella. http://www.relojdehuella.com.

2. Suprema. http://www.supremainc.com.

3. UNAM - Facultad de ingeniería biometria informatica. http://redyseguridad.fi-

p.unam.mx/proyectos/biometria/basesteoricas/caracteristicassistema.html.

4. SEMEFO. http://www.semefo.gob.mx/swb/SEMEFO/Dactiloscopia.

5. Salvador, Trujillo Arriaga. El estudio Científico de la Dactiloscopia. México : Limusa, 2011.

6. Rosendo, Ibánez Reséndiz. La Huella Digital y el Derecho Mexicano. México : SISTA, 1989.

7. Dactiloscopía. lofoscopia-y-dactiloscopia.wikispaces.com.

8. Portal del Empleo México. http://www.empleo.gob.mx.

9. AMBI. http://www.ambi.org.mx/.

10. México. Ley Federal sobre Metrología y Normalización. México : s.n., 1992.