Está en la página 1de 59

TITULILLO: DESARROLLO DE CONTROL DE ACCESO IOT 1

Diseño y Desarrollo de un Prototipo de un Sistema de Control de Acceso IoT Mediante el

Reconocimiento Facial Usando Raspberry

Giovanni Paramo, Luis Carlos Montaño,

Virginia Estrada

Fundación Tecnológica Autónoma del Pacifico

Facultad de Ciencias de la Comunicación y Sistemas

Cali – febrero de 2019

Nota del Autor

Este Informe del Curso de Grado Internet de las cosas con Raspberry PI y

aplicaciones web se realizó como requisito para optar al Título de Tecnólogo en Desarrollo

de sistemas informáticos y Tecnología en Informática, fue asesorado por el Ingeniero

Electrónico Felipe Palta

La correspondencia referida a este documento debe dirigirse a Virginia Estrada,

Luis Carlos Montaño, Giovanni Paramo Urbano, dirección electrónica:

viriginia.estrada.0ds@utap.edu.co, luis.montano.0ds@utap.edu.co,

giovanni.paramo.0ti@utap.edu.co
DESARROLLO DE CONTROL DE ACCESO IOT 2

Resumen

Este proyecto fue realizado por estudiantes de la fundación tecnológica autónoma del pacífico, se

estudió, implemento y evalúo un sistema de reconocimiento facial al interior de una plataforma

de desarrollo embebida llamada Raspberry Pi, la cual proporciono una solución portable con un

costo reducido y la posibilidad de actualizaciones del sistema de reconocimiento sencillas, sin

necesidad de modificar el hardware del dispositivo el cual se utilizó una base de datos local, se

llevó a cabo un análisis antropométrico sobre el entorno controlado, probando su potencial,

además de un análisis de cada uno de los rasgos faciales.

Se llevó a cabo unos experimentos de cada una de las etapas del sistema de modo que se pudo

evaluar el sistema desarrollado de forma detallada con sus puntos fuertes y débiles. Los

experimentos fueron centrados en observar el potencial del detector de los puntos faciales

desarrollado en el proyecto, tanto en entornos controlados, como entornos no controlados. Para la

realización de un análisis exhaustivo de la cara, se desarrollaron dos segmentadores (uno basado

en las proporciones faciales, y otro basado en el punto medio de cada rasgo facial), el cual

permitió, la extracción de los rasgos faciales de manera individual, dando lugar a una mayor

precisión en dicho análisis. Con esto se observó que el algoritmo es más eficiente en trabajar el

reconocimiento facial y efectivo al controlar el acceso a las residencias.

Palabras clave: Reconocimiento facial, Raspberry Pi.


DESARROLLO DE CONTROL DE ACCESO IOT 3

Abstract

This project was carried out by students of the Fundación Tecnológica Autónoma del

Pacifico. A system of facial recognition was studied, implemented and evaluated inside an

embedded development platform called Raspberry Pi, which provided a portable solution with a

reduced cost and the possibility of updates. of the simple recognition system, without the need to

modify the hardware of the device which used a local database, an anthropometric analysis was

carried out on the controlled environment, proving its potential, as well as an analysis of each of

the features facial

Experiments were carried out on each of the stages of the system so that the developed

system could be evaluated in detail with its strengths and weaknesses. The experiments were

focused on observing the potential of the detector of the facial points developed in the project,

both in controlled environments and uncontrolled environments. In order to carry out an

exhaustive analysis of the face, two segmenters were developed (one based on the facial

proportions, and the other based on the midpoint of each facial feature), which allowed the

extraction of the facial features individually, resulting in greater precision in said analysis. With

this it was observed that the algorithm is more efficient in working facial recognition and

effective when controlling access to residences.

Keywords: Facial Recognition, Raspberry Pi.


DESARROLLO DE CONTROL DE ACCESO IOT 4

Contenido

pág.

0. Introducción 6

1. Objetivos 7

1.1 Objetivo General 7

1.2 Objetivos Específicos 7

2. Justificación 8

3. Antecedentes 9

3.1 Primeras Pruebas Reconocimiento Facial 9

3.2 Reconocimiento en 2D y 3D 10

3.3 Reconocimiento 3D 10

3.4 Migración de Reconocimiento por Huella a Reconocimiento Facial 10

3.5 Algoritmo de Viola-Jones 11

3.6 Características de Haar 11

3.7 Eigenfaces 12

3.8 Visión Artificial 12

4. Adquisición y Análisis de Datos Estadísticos 12

4.1 Análisis de Datos 14

5. Propuesta de Diseño 14

5.1 Diagrama de conexiones 21

6. Diseño de Interfaz Grafica 22

7. Implementación 25

8. Resultados 29
DESARROLLO DE CONTROL DE ACCESO IOT 5

9. Conclusiones 30

10. Recomendaciones 31

11. Referencias 33

12. Tablas y Figuras 35


DESARROLLO DE CONTROL DE ACCESO IOT 6

Diseño y desarrollo de un prototipo de un sistema de control de acceso IoT mediante el

reconocimiento facial usando Raspberry

0. Introducción

En la actualidad se han logrado grandes avances en el área de la seguridad electrónica

debido a que con el tiempo se vuelve más necesario incrementar los niveles de seguridad tanto en

los hogares como en las empresas, es por eso que ha tenido gran acogida la autenticación

biométrica que consiste en validar la identidad de una persona mediante diferentes características

físicas, lo cual nos permite lograr resultados más seguros, agiles y automatizados, existen varias

formas de autenticación biométrica algunas de ellas son por medio de huella dactilar, escaneo de

retina, reconocimiento de voz y reconocimiento facial, esta última es la forma de autenticación

biométrica que se va implementar, para por medio de esto realizar un sistema de control de

acceso IoT que valide por medio del reconocimiento de rostros si una persona está autorizada

para permitirle el ingreso por medio de apertura de puertas automáticamente, logrando de esta

forma evitar el ingreso de personas no autorizadas en áreas restringidas.

El reconocimiento de rostros es un problema que fue considerado desde las primeras

etapas de visión por computadora. Este problema ha sido estudiado más a fondo en los últimos

años, gracias a los avances del poder computacional que han permitido implementar algoritmos

más complejos utilizando diferentes técnicas. Entre estas técnicas se puede hacer mención de la

basada en igualamiento de plantillas, eigenface, igualamiento basadas en características, y las

técnicas basadas en redes neuronales.

Para el desarrollo de este proyecto se aplicó la metodología de desarrollo ágil XP

(Extreme Programming) debido a que es flexible a los cambios y se tiene retroalimentación


DESARROLLO DE CONTROL DE ACCESO IOT 7

constante por medio de pruebas realizadas en todo el proceso de desarrollo. El tipo de estudio fue

el descriptivo ya que este se enfoca en estudiar situaciones que ocurren en condiciones naturales.

Este trabajo fue organizado de forma que se expone como se realizó, se planteó unos

objetivos los cuales ayudo a lograr lo que se requiere para la solución del problema, luego se

pasó por los antecedentes como apoyo en información de investigaciones pasadas, lo cual llevo a

la etapa de adquisición y análisis de datos estadísticos donde se enfocó en la población

directamente relacionada con la problemática, para con esta información realizar la propuesta de

diseño de acuerdo a las necesidades que se evidenciaron, logrando pasar de esta forma a la etapa

de diseño de la interfaz gráfica y posterior implementación del prototipo lo cual nos arrojó los

resultados de todo el proceso.

1. Objetivos

1.1 Objetivo General

Diseñar y desarrollar un prototipo de control de acceso IoT por medio de reconocimiento

facial implementando el ordenador Raspberry Pi, para su uso en estrategias de seguridad en el

hogar y las empresas.

1.2 Objetivos Específicos

Aplicar los métodos de reconocimiento de rostros, mediante técnicas de procesamiento

digital de imágenes que permita el acceso controlado de personas al hogar o las empresas.

Desarrollar un sistema de adquisición IoT de imágenes faciales conveniente para el

procesamiento de los datos e identificación de personas.

Diseñar una estrategia que realice el reconocimiento de imágenes faciales para optimizar

funcionamiento del prototipo.

Definir los alcances y limitaciones del sistema para su aplicación en hogares y empresas.
DESARROLLO DE CONTROL DE ACCESO IOT 8

2. Justificación

Con la implementación a nivel mundial de nuevas formas de seguridad electrónica para la

autenticación de usuarios ha tomado mucha fuerza la autenticación biométrica la cual es la

aplicación de técnicas matemáticas y estadísticas sobre los rasgos físicos o de conducta de un

individuo, para verificar su identidad. Esto con el fin de que la autenticación sea más

personalizada y dejando atrás tener que recordar contraseñas lo cual eleva el nivel de seguridad

en muchos aspectos.

En Colombia no se ha explotado en su totalidad esta tecnología por lo cual hay muchas

oportunidades de mejora con respecto a las aplicaciones que se pueden llegar a tener en el

reconocimiento facial, actualmente se encuentra que en la ciudad de Cali hay muchas opciones

de entrar con fácil acceso para delinquir o hurtar en varios lugares según informe de delitos de la

alcaldía de Santiago de Cali en el año 2016 hubo 857 hurtos a residencias y en el 2017 hubo 916

hurtos lo cual indica un aumento del 7 por ciento (Cali, 2017), con el reconocimiento facial se

pretende hacer más útil y fácil la seguridad a las personas, gracias a esto se ha identificado una

problemática a nivel nacional que puede abarcar desde el ingreso a sitios residenciales de gran

afluencia de personas como también el ingreso en áreas restringidas de empresas la cual se puede

atacar gracias a este modelo de autenticación, surge una pregunta a la problemática: ¿ Cómo

diseñar e implementar un prototipo de un sistemas de control de acceso IoT mediante

reconocimiento facial implementando Raspberry, el cual permita por medio de la información

obtenida, identificar si las personas están autorizadas para ingresar en un área determinada y

posteriormente permitir el ingreso en caso de estar autorizado por medio de un control de acceso

el cual controlara las puertas, facilitando el manejo de la seguridad electrónica en áreas de acceso

restringido.
DESARROLLO DE CONTROL DE ACCESO IOT 9

3. Antecedentes

A medida que va evolucionando la tecnología, también lo hacen las diferentes técnicas

que permiten realizar trabajos computacionales específicos de una manera más eficiente. En

cuestiones de sistemas de seguridad, se han utilizado por mucho tiempo los números personales

de identificación (PIN), contraseñas, tarjetas inteligentes entre otros, para permitir el acceso a

lugares u objetos restringidos a un personal en específico.

El problema con este tipo de métodos es que la seguridad que se desea con ellos es

fácilmente burlada si algún intruso logra conseguir uno de los elementos anteriores, que entonces

le concede un acceso no autorizado a información o áreas restringidas.

Como una solución al problema mencionado, se han desarrollado técnicas que miden la

condición fisiológica de una persona, y que permiten una identificación un poco más única de la

persona, pues es necesario que este se encuentre presente en el momento de la identificación.

Este tipo de técnicas de identificación hacen parte del área de la biometría.

3.1 Primeras Pruebas Reconocimiento Facial

El reconocimiento facial es una herramienta que nos permite identificar una persona

automáticamente por una imagen digital es una forma de seguridad biométrica que se ha

desarrollado crecientemente desde las primeras pruebas en 1995 en la actualidad los algoritmos

posee un 100% más de exactitud que aquella época en un comienzo solo se utilizan imágenes en

2D las cuales solo permitían ver el rostro de la persona a la cual queremos identificar pero en

los últimos años han habido actualizaciones de esta herramienta que permiten en este momento y

aun en desarrollo verlas en 3d, esta dará mayor precisión y eficacia al momento que la imagen

que esta almacenada en la base de datos. (Guillen, 2015).


DESARROLLO DE CONTROL DE ACCESO IOT 10

3.2 Reconocimiento en 2D y 3D

Los sistemas de información constituyen unos de los aspectos estratégicos para integrar

los procesos y tareas aprovechando la tecnología, en la universidad de México hicieron una

investigación en reconocimiento facial en 2d y en 3d.

“En 2D fue tratado como un reconocimiento de patrones de imágenes y con las


investigaciones se implementó los métodos basados en características que extraen rasgos
o características de cada cara como ojo, nariz, boca. Por geometría los métodos genéricos
utilizan bordes, líneas y curvas para reconocer caras diferentes otros utilizan plantillas o
algunas restricciones en las características”. (Santana, 2017).

“Utilizaron un enfoque basado en características usando los datos de intensidad de la

imagen para adquirir las características faciales” (Santana, 2017).

En la aproximación holística el rostro completo del sujeto se toma como datos de entrada
en el sistema de reconocimiento uno de los métodos holísticos más utilizados hasta ahora,
este método que implementa un modelo matemático conocido como análisis de
componentes principales que toma una imagen de un rostro y los linealiza para crear un
vector de longitud después de eso con una galería se obtiene un rostro medio y se
calcula la matrix para encontrar sus eigenvectores y eigenvalores. Para averiguar, si un
nuevo rostro pertenece a un sujeto de la base de datos se calcula si dicha distancia es
menor que un parámetro el rostro pertenece al k-esimo sujeto de la base de datos”
(Santana, 2017).

3.3 Reconocimiento 3D

En las técnicas basadas en imágenes 2D algunas caracterizas se pierden debido a que la


estructuras 3D de la cara las variaciones son en la pose e iluminación son los principales
problemas de las imágenes en 2d por lo que los investigadores han elegido imágenes 3D
para el reconocimiento facial y compensar esta desventaja, hay dos maneras de
representar la imagen en 3D a través de imágenes de rango o imágenes 2.5D y 3D
representadas por mallas poligonales la imagen de rango es una representación de los
puntos en 3D establecidos donde los puntos x y z donde los punto z son un valor de
profundidad y corresponde al valor de intensidad de cada pixel en el plano x y. Si una
imagen en 2.5D se toma desde un único punto de vista solo una superficie facial podría
ser modelada en un lugar de la cabeza entera para un modelo de cabeza completo se
requiere varias tomas de diferentes puntos de vista (Santana, 2017).

3.4 Migración de Reconocimiento por Huella a Reconocimiento Facial

En chile en la universidad católica Valparaíso hicieron un estudio de reconocimiento


facial, la herramienta biométrica más utilizada es la huella dactilar que es menos costosa
de implementar, fácil de utilizar y con un marco de error mínimo, pero a la vez se han
DESARROLLO DE CONTROL DE ACCESO IOT 11

encontrado métodos para clonar la mano completa de una persona cosa que con el
reconocimiento facial no sucedería ya que clonar un rostro es mucho más complicado, lo
que limita implementar un software de reconocimiento facial en nuestro país es su alto
valor, son pocas las empresas en Colombia que utilizan el reconocimiento facial para
autenticar al usuario siendo que esta herramienta es una de las más seguras y con los
años se ha ido disminuyendo la taza de error a través de nuevos métodos implementados
en las técnicas y algoritmos. (Mellado, 2015)

Es por esto que se comenzó a desarrollar un software de reconocimiento facial el cual en

su primera versión tendrá las funcionalidades de detectar el rostro y verificarlo con la base de

datos para así confirmar de la identidad de la persona, todo esto lo implementaron en una interfaz

sencilla para facilitar su uso a los usuarios. Con los algoritmos más utilizados y eficientes.

3.5 Algoritmo de Viola-Jones

En el 2001 Paul Viola y Michael Jones desarrollaron al algoritmo de Viola-Jones, este


sistema de detección de rostros representa un gran avance debido a su rapidez para
identificar caras humanas, ya que realiza la clasificación mediante características
extraídas en una escala de grises, a diferencia de sus predecesores que la realizaban pixel
a pixel y en imágenes de color. (Morris, 2004)

En el método de Viola –Jones se definen los siguientes conceptos:


a) Integral de la Imagen, usada para la rápida detección de las características.
b) Características de rectángulos, llamados características de Haar.
c) AdaBoost, un método machine-learning, que consiste en reconocimiento de
patrones y el estudio y construcción de algoritmos que aprenden y predicen el
comportamiento en un conjunto de datos
d) Una cascada de decisión para combinar características de manera eficiente.
(Morris, 2004)

3.6 Características de Haar

Son descriptores que permiten obtener información de una zona en particular mediante

operaciones aritméticas, la principal razón para usar esto es que permite gran eficiencia

de cálculo. (Olguín, 2015)

La extracción de características e realizada aplicando filtros con bases Haar. En el

algoritmo de Viola-Jones se usan tres características de Haar:

a) Característica de los rectángulos: es la diferencia entre la suma de los pixeles de


ambas regiones rectangulares.
DESARROLLO DE CONTROL DE ACCESO IOT 12

b) Característica de tres rectángulos: Es la suma de los pixeles de los rectángulos


exteriores menos la suma del rectángulo central.
c) Característica de cuatro rectángulos: Es la diferencia entre los pares diagonales de
los rectángulos.

3.7 Eigenfaces

Es una imagen de entrada existen principal de entrada de componentes principales o


características comunes como: ojos, labios, nariz y distancias entre componentes, esos
componentes principales son llamados eigenfaces.
El algoritmo de reconocimiento de rostros Eigenfaces sigue los siguientes pasos:
El primer paso es poseer un conjunto de imágenes de entrenamiento de diferentes
personas, compuesto en lo posible de subconjuntos de imágenes para cada persona que
contengan diferentes posturas, condiciones de iluminación, etc. Este proceso es conocido
como etapa de entrenamiento, donde las imágenes poseen el mismo tamaño.
Eigenfaces no trabaja directamente en las imágenes, primero las convierte en una matrix
(vector) es decir una imagen n x n pixeles (cada pixel posee un valor entre 0 y 255) es
trasformada en un vector n x 1 se calcula un promedio con todos los vectores, llamado
“vector promedio del rostro”. Se resta cada vector con este promedio, obteniendo los
vectores normalizados. (Morris, 2004)

3.8 Visión Artificial

La visión artificial o visión por ordenador es una disciplina científica que incluye
métodos para adquirir, procesar, analizar y comprender las imágenes del mundo real con
el fin de producir información numérica o simbólica para que puedan ser tratados por un
ordenador. Tal y como los humanos usamos nuestros ojos y cerebros para comprender el
mundo que nos rodea, la visión artificial trata de producir el mismo efecto para que los
ordenadores puedan percibir y comprender una imagen o secuencia de imágenes y actuar
según convenga en una determinada situación. Esta comprensión se consigue gracias a
distintos campos como la geometría, la estadística, la física y otras disciplinas. La
adquisición de los datos se consigue por varios medios como secuencias de imágenes,
vistas desde varias cámaras de video o datos multidimensionales desde un escáner
médico. (Morris, 2004)

4. Adquisición y Análisis de Datos Estadísticos

En el estudio del reconocimiento facial se pudo determinar que este tema es considerado

importante para la sociedad, por lo que se hizo una encuesta a 30 personas, las cuales fueron

seleccionadas aleatoriamente, teniendo como población objetivo a los habitantes que viven en
DESARROLLO DE CONTROL DE ACCESO IOT 13

algunas residencias de la ciudad de Cali, para saber que tanto conocen del tema y de los

beneficios del reconocimiento facial, lo cual contribuyen con la investigación.

a) ¿Sabe usted que es un sistema de reconocimiento facial? Véase tabla 1.

En esta encuesta el 83% de los encuestados reconoce tener conocimiento de lo que es

un sistema de reconocimiento facial, mientras que el otro 17% afirma no saber del

tema. Lo que evidencia que es poco el desconocimiento del tema. Véase figura 1.

b) ¿Cree usted que es importante obtener un sistema de reconocimiento facial para las

residencias cercanas? Véase tabla 2.

De las 30 personas encuestadas, el 80% que representa a 24 personas, considera estos

dispositivos importantes, pues dicen que ayudaría a disminuir los robos y la inseguridad, pero

para el otro 20% que representa a 6 personas, como 5 no tiene conocimientos de estos de estos

dispositivos, no saben de su importancia, y la otra persona considera que es más la inversión que

haría, que el beneficio que obtendría, lo cual es respetable. Véase figura 2.

c) ¿Cree usted que el reconocimiento facial ayudaría a prevenir los casos de

inseguridad en la ciudad? Véase tabla 3.

Del 100% de las personas encuestadas el 77% respondió que el reconocimiento facial

ayuda a prevenir casos delictivos en la ciudad, mientras que el 23% de los encuestados

respondió que no, pues consideran que este lujo, seria para un grupo de personas muy reducido,

de manera que se puede interpretar que el reconocimiento facial es de suma importancia en la

actualidad ya que esto ayudaría a tener un mayor control de acceso a las personas que vivan en la

residencia. Véase figura 3.

d) ¿Si tuviera usted los recursos para adquirir un sistema de reconocimiento facial

para prevenir la inseguridad de su residencia, lo compraría? Véase tabla 4.


DESARROLLO DE CONTROL DE ACCESO IOT 14

El 87 % de los encuestados reconoce que, si tuvieran la capacidad económica para

adquirir este sistema, lo harían solo el 13% dijo que no, lo que muestra que este producto puede

ser muy viable porque está orientado a satisfacer una necesidad. Véase figura 4.

4.1 Análisis de Datos

Teniendo en cuenta los resultados de la encuesta, se puede afirmar que los ciudadanos

tienen conocimiento de los sistemas de reconocimiento facial, pero no están siendo prevenidos

de los hurtos o robos que pueden ocurrir en las residencias de la ciudad de Cali, ya que Las

denuncias de hurtos a residencias han aumentado considerablemente.

Mes a mes, desde enero del 2018, se ha presentado un aumento en los casos. Solo en
octubre pasado, según Cali Cómo Vamos, los robos reportados fueron 169, una diferencia
de 88 casos más, si se compara con el mismo mes de 2017.Con este proyecto se busca
contrarrestar la inseguridad, por medio del uso de un sistema de reconocimiento facial
que sea asequible para los diversos estratos sociales, que les brinde seguridad y por ende
bienestar y tranquilidad que es lo que busca todo cabeza de familia. (El País, 2018)

5. Propuesta de Diseño

Debido a la problemática que se ha encontrado con respecto a la intrusión en lugares

residenciales y empresariales a la cual le hemos realizado varias investigaciones y apoyándonos

en todos los antecedentes consultados.

Nuestra propuesta de solución a la problemática es realizar un prototipo de control de

acceso IoT por medio de reconocimiento facial el cual permita validar las personas que van a

ingresar ya sea en zonas residenciales o zonas empresariales, esta tecnología elimina la

suplantación y de esta manera se logra confianza en la información registrada.

En el proceso de desarrollo de software se trabajó con la metodología XP o Extreme

Programming la cual es una metodología de desarrollo que pertenece a las conocidas como

metodologías agiles (otras son Scrum, Kanban...), cuyo objetivo es el desarrollo y gestión de

proyectos con eficacia, flexibilidad y control. Ambos conceptos, relacionados estrechamente, son
DESARROLLO DE CONTROL DE ACCESO IOT 15

distintos. Agile es el marco de trabajo para el desarrollo del software, se hace mediante un

proceso iterativo y define las prácticas y roles del equipo. Por su lado, el XP programming es una

metodología basada en la comunicación, la reutilización del código desarrollado y la

realimentación.

Los equipos de un proyecto de esta tipología y magnitud tienen normalmente las

siguientes figuras y roles: Clientes, Programadores, Testers, Coach, Manager. En general, no

obstante, los participantes en este tipo de equipos no siempre toman un rol fijo y contribuyen con

los conocimientos de cada uno en aras del beneficio colectivo.

Las planificaciones, por una parte, se deben planificar los plazos temporales del proyecto

basándose en las exigencias del cliente. En base a las estimaciones de coste y dificultad del

proyecto se marcan las prioridades y las fechas, no siempre de forma precisa, pero si orientativa.

Las pruebas se efectúan continuamente por medio de una serie de pruebas automatizadas

en base a los requisitos del cliente para comprobar que todo funcione correctamente. Estas han

de hacerse de forma periódica y automática.

El diseño y la programación en XP suele ser simple y basado en la funcionalidad del

sistema y se lleva a cabo durante todo el proyecto, tanto durante la planificación de la entrega

como en el de la iteración.

Para lograr este prototipo en principio se indago acerca de que es y cómo funciona el

reconocimiento facial ya que es una tecnología biométrica la cual ha sido cambiante debido a

que se han implementado mejoras a lo largo de los años con el propósito que sea más precisa y

confiable. El reconocimiento facial es un sistema y proceso informático que consta de unas

etapas las cuales forman un ciclo que se repite, estas etapas se pueden dividir en 4 puntos

generales:
DESARROLLO DE CONTROL DE ACCESO IOT 16

a) Detección y extracción

b) Registro: A partir de las plantillas faciales el sistema genera un patrón que almacenara

en la base de datos y usara en el futuro para nuevas comparaciones

c) Comparaciones

d) Reentrenamiento: Actualización de las plantillas faciales para hacer más eficaz la

identificación

Se debe solucionar el problema de la localización de rostros en imágenes lo cual implica

Una serie de complicaciones a considerar:

a) Pose: Las imágenes que contienen rostros varían debido a la pose relativa de la cámara

(frontal, 45 grados, perfil, al revés), y algunas características como un ojo o la nariz

pueden ser parcialmente o totalmente ocluidas.

b) Presencia o ausencia de componentes estructurales: Características faciales como la

barba, bigote y gafas pueden o no estas presentes, y existe un alto grado de variabilidad

en estos componentes incluyendo forma, color y tamaño.

c) Expresiones faciales: La apariencia del rostro está directamente afectada por la expresión

facial de una persona.

d) Oclusión: Los rostros pueden estar parcialmente ocluidos por los otros objetos. En una

imagen con un grupo de personas, algunos rostros pueden ocluir parcialmente otros

rostros.

e) Orientación de la imagen: Imágenes que contengan rostros varían directamente para

diferentes rotaciones alrededor del eje óptico de la cámara.

f) Condiciones de toma de la imagen: Cuando se toma la imagen, factores como la

iluminación y las características de la cámara afectan la apariencia de un rostro.


DESARROLLO DE CONTROL DE ACCESO IOT 17

Para solucionar estos problemas se han propuesto diferentes métodos, con diferentes

niveles de complejidad y eficiencia, sin embargo, debido a que en la mayoría de las aplicaciones

la detección de rostros se hace un pre-procesamiento de imagen para el reconocimiento de

rostros, se hace necesario que la detección de rostros en la imagen sea lo más eficiente posible,

por lo cual para el diseño y desarrollo de este proyecto se va utilizar una de las técnicas más

utilizadas debido a su capacidad de procesar imágenes rápidamente y sus altos grados de

detección, es el uso de clasificadores en cascada como lo establecieron por primera vez Paul

Viola y Michael Jones en su trabajo[Viola y Jones (2001)]. Es una técnica que utiliza un nuevo

concepto conocido como Imagen Integral introducido por los autores, que permite calcular de

manera muy rápida y en tiempo constante una serie de características extraídas de la imagen, con

las que se puede determinar la existencia o no de rostros.

En la actualidad hay sistemas de reconocimiento facial que están preparados para tener en

cuenta los cambios mínimos y cotidianos en la apariencia del usuario como el uso de gafas,

crecimiento del cabello, el afeitado, los sombreros, entre otros, esto es posible gracias a lo que se

conoce como machine learning que permite a los dispositivos aprender de las variaciones

faciales del usuario y adaptarse a estos cambios en el momento de la identificación.

Machine Learning es una disciplina científica del ámbito de la inteligencia artificial que

crea sistemas que aprenden automáticamente. Aprender en este contexto quiere decir identificar

patrones complejos en millones de datos. La máquina lo que realmente aprende es un algoritmo

que revisa los datos y es capaz de predecir comportamientos futuros automáticamente, también

en este contexto, implica que estos sistemas se mejoran de forma autónoma con el tiempo, sin
DESARROLLO DE CONTROL DE ACCESO IOT 18

intervención humana. Muchas actividades actualmente ya se están aprovechando del machine

learning.

El campo de aplicación práctica del Machine Learning depende de la imaginación y de

los datos que estén disponibles en la empresa. Estos son algunos ejemplos más:

Detectar fraude en transacciones.

a) Predecir fallos en equipos tecnológicos.

b) Prever que empleados serán más rentables el año que viene (el sector de los

Recursos Humanos está apostando seriamente por el Machine Learning)

c) Seleccionar clientes potenciales basándose en comportamientos en las redes

sociales, interacciones en la web.

d) Predecir el tráfico urbano

e) Saber cuál es el mejor momento para publicar tuits, actualizaciones de Facebook o

enviar newsletter.

f) Hacer pre diagnósticos médicos basados en síntomas del paciente.

g) Cambiar el comportamiento de una app móvil para adaptarse a las costumbres y

necesidades de cada usuario,

h) Detectar intrusiones en una red de comunicaciones de datos.

i) Decidir cuál es la mejor hora para llamar a un cliente.

Raspberry pi3

Consiste en un computador de placa reducida, sobre la cual se encuentra montado un

procesador, un chip gráfico y una memoria RAM, donde se tiene montado en unidad flash SD el

sistema Linux Raspbian para la configuración de la placa con código Python para el uso de
DESARROLLO DE CONTROL DE ACCESO IOT 19

sensores respectivos, capaz de corregir distintos tipos de sistemas operativos incluyendo sistemas

operativos embebidos; ofrece herramienta de gran utilidad para este tipo de proyectos.

Cámara Web USB JW-0037

La cámara web USB jw-0037 posee una resolución de 640*480 con 3 luces led, es una

cámara tipo clip de acrílico transparente, con rotación de 180° grados dentro de su propia base.

Módulo ESP8266

El módulo ESP8266 es un SoC (System on Chip), con capacidades de 2.4Ghz WI-FI

(802.11 b/g/n, soporte WPA /WPA2), 16 GPIO de propósito general (entrada/salida), convertidor

analógico-digital (ADC de 10 bits), SPI, I²S, UART y modulación de ancho de pulso (PWM),

emplea un CPU RISC de 32 bits basado en el Tensilica Xtensa LX106 funcionando a 80 MHz (o

overclocked a 160 MHz). Tiene una memoria ROM de inicio de 64 KB, memoria RAM de

instrucciones de 64 KB y 96 KB de RAM de datos. Memoria flash externa de 4MB, pero este

último varía entre diferentes versiones de modulo.

Servomotor

Micro Servo Tower-pro, Velocidad: 0.10 sec/60° @ 4.8V, Torque: 1.8 Kg-cm @ 4.8V,

Voltaje de funcionamiento: 3.0-7.2V, Temperatura de funcionamiento: -30 ℃ ~ 60 ℃, Ángulo

de rotación: 180°, Ancho de pulso: 500-2400 µs, Longitud de cable de conector: 24.5cm, Los

cables en el conector están distribuidos de la siguiente forma: Rojo =Alimentación (+), Café =

Alimentación (–) o tierra, Naranja= Señal PWM.

Open CV

(open source computer visión) es una biblioteca de funciones de programación dirigida

principalmente a la visión por ordenador en tiempo real esta biblioteca es una multiplataforma
DESARROLLO DE CONTROL DE ACCESO IOT 20

gratuita para su uso bajo la licencia BSD de código abierto para algoritmos de detección y

reconocimiento fácil se usa esta librería.

Python

Lenguaje de programación de multipropósito ,orientado a objetos que a su vez pueden

utilizarse para el desarrollo web , apuesta por la simplicidad ,versatilidad y rapidez de desarrollo

independiente de plataforma, desde aplicaciones Windows a servidores de red, como también

páginas web, es interpretado por lo que no necesita compilar el código para poder ejecutarlo

ofreciendo ventajas de rapidez de desarrollo inconvenientes con respecto a la velocidad, siendo

para el proyecto de uso en la Raspberry en él envió de datos.

Arduino Software (IDE)

El entorno de desarrollo integrado de Arduino es una aplicación multiplataforma que está

escrita en el lenguaje de programación Java. Se utiliza para escribir y cargar programas en

tableros compatibles con Arduino, pero también, con la ayuda de núcleos de terceros, tableros de

desarrollo de otros proveedores como lo es el caso del módulo ESP8266 el cual vamos a

configurar con este software.

Raspbian

Raspbian es una distribución del sistema operativo GNU/Linux y por lo tanto libre

basado en Debían para la placa computadora Raspberry Pi, orientado a la enseñanza de

informática. El lanzamiento inicial fue en junio de 2012.


DESARROLLO DE CONTROL DE ACCESO IOT 21

HTML

Es un lenguaje de programación que se utiliza para el desarrollo de páginas de Internet.

Se trata de la sigla que corresponden a HyperText Markup Language, es decir, Lenguaje de

Marcas de Hipertexto.

Apache Server

Apache es una popular aplicación de servidor web que puede instalar en la Raspberry Pi

para permitirle servir páginas web. Por sí solo, Apache puede servir archivos HTML a través de

HTTP, y con módulos adicionales puede servir páginas web dinámicas usando lenguajes de

scripting como PHP.

5.1 Diagrama de conexiones

En el diagrama se muestra la conexión y funcionamiento de los equipos donde podemos

observar los dispositivos de hardware y apreciar que la cámara web va conectada por cable USB

a la Raspberry, la cual a su vez debe ir conectada a la red wifi de un router o acces point para que

tenga acceso a internet y poder enviar datos a la plataforma IoT Ubidots y por supuesto

comunicarse con el módulo ESP8266, se debe configurar el módulo ESP8266 para que se

conecte a la misma red wifi ya teniendo los dispositivos dentro de la misma red logramos que se

comuniquen por medio de wifi y gracias al protocolo TCP enviar y recibir información

mutuamente, el módulo ESP8266 también va conectado al servomotor el cual para este caso se

conectó en el puerto D8 por el cual le vamos a enviar las ordenes de apertura y cierre al

servomotor, también al puerto de voltaje y tierra para su alimentación.. Véase la figura 12


DESARROLLO DE CONTROL DE ACCESO IOT 22

6. Diseño de Interfaz Grafica

Los patrones binarios locales (LBP) es un tipo de descriptor visual utilizado para la

clasificación en visión artificial. LBP es el caso particular del modelo de espectro de textura

propuesto en 1990. LBP se describió por primera vez en 1994. Desde entonces se ha encontrado

que es una característica poderosa para la clasificación de texturas; además, se ha determinado

que cuando se combina LBP con el descriptor del Histograma de gradientes orientados (HOG),

mejora considerablemente el rendimiento de detección en algunos conjuntos de datos. Silva y

otros realizaron una comparación de varias mejoras del LBP original en el campo de la

sustracción de fondo. LBP Divide la ventana examinada en celdas Véase la figura 11

Convertir la imagen a escala de grises, necesario para el correcto funcionamiento de los

algoritmos de detección de caras usados por la biblioteca. Para convertir una imagen a escala de

grises o a otro formato contamos con la función cvtcolor la utilizamos del siguiente modo:

Cvtcolor (imagen, imagen, cv_BGR2GRAY):

Para detectar rostros en tiempo real solo debemos leer las imágenes de la webcam y

aplicarle a cada una de ellas el procedimiento descrito anteriormente, para ver cómo usar la

webcam.

Código ejemplo para detectar rostros en tiempo real mediante el uso de la cámara web.

Parámetros de la función de detención de rostros:

Detectmultiscale (cons mat& image, vector<rect>& objects, doublé scalefactor=1.1 int

mineighbors=3, int flgs=0, size minsize=size (), size maxsize=size ()). Ver figura 19

Requisitos funcionales

a) Será capaz de decidir si el rostro de entrada se asemeja o no alguno de los almacenados

en la base de datos suficientemente para saber si es identificado o no


DESARROLLO DE CONTROL DE ACCESO IOT 23

b) Buscará en la base de datos de rostros, aquel que más se parezca al rostro de entrada que

se quiere conocer.

Requisitos no funcionales

a) Se pretende que sea lo suficientemente rápido como para poder usarlo en tiempo real, y

que pueda competir con una persona tanto en fiabilidad como en rapidez.

b) Necesita poca memoria para facilitar su ejecución en paralelo, en los equipos de

reconocimiento de ser necesario en un futuro.

c) Su diseño será modular. Cada etapa estará diferenciada de la anterior, de tal manera que

cada fase se pueda ejecutar en un equipo o procesador distinto

Desarrollo

Para el desarrollo del proyecto se creó en el Raspberry una carpeta llamada recoFacial la

cual contiene todos los archivos ejecutables y la base de datos la cual va ser local debido a que

todos los rostros se almacenan en una carpeta dentro de esta llamada orl_faces la cual a su vez

está dentro de la carpeta att_faces, en la carpeta orl_faces se almacenan los usuarios por carpetas

donde cada carpeta posee el nombre del usuario con las debidas fotografías que se le han

realizado para enrolarlo al sistema.

También tenemos en la carpeta recoFacial el archivo Capture.py el cual es el aplicativo

desarrollado en Python que se encarga de enrolar los usuarios esto lo realiza tomando una

imagen del usuario de la cual si detecta un rostro ubica un recuadro alrededor de él y nos

pregunta cuantas imágenes queremos almacenar luego de darle la cantidad de imágenes que

queremos almacenar el procede a realizar la toma de las fotografías y guardarlas en la base de


DESARROLLO DE CONTROL DE ACCESO IOT 24

datos con el nombre del usuario, después de este proceso nos pregunta si queremos entrenar el

modelo con una matrix de las imágenes obtenidas de los usuarios y este a su vez cuando termina

de entrenar el modelo genera un archivo llamado Entrenador.yml, el cual almacena la matrix con

la información de todos los usuarios para su posterior validación. Ver Figura 13

Se desarrolló el archivo Reconocimiento.py el cual es el aplicativo desarrollado en

Python que se encarga de reconocer los rostros y validar si el rostro se encuentra almacenado en

la base de datos, lo primero que hace es cargar el archivo Entrenador.yml generado por la

aplicación Capture.py, luego nos pregunta el nivel de seguridad que deseamos manejar, procede

a realizar la validación del rostro en caso que el rostro se encuentre almacenado en la base de

datos mostramos el nombre de la persona en un recuadro que aparece en pantalla sobre el rostro

de la persona y luego de esto se da un aviso donde se visualiza también el nombre de la persona

y se muestra ingreso autorizado luego este se conecta el módulo ESP8266 y le envía una señal

para abrir la puerta, luego de esto también envía por medio de internet el registro de fecha y hora

exactos en que se abrió la puerta para llevar un log de eventos el cual se almacena en la

plataforma IoT Ubidots en una variable que se ha creado llamada Apertura Puerta, una vez

finalizado este proceso la aplicación nos muestra un mensaje confirmando si la queremos cerrar

o queremos validar otro rostro, si se presiona 1 valida un nuevo rostro en caso de presionar 0 la

aplicación se cierra. Ver Figura 9

Se incluye el archivo haarcascade_frontalface_alt.xml es cual es un archivo que nos

ayuda a realizar el reconocimiento y se carga en ambas aplicaciones tanto en la de guardar los

usuarios nuevos como en la de reconocer los usuarios almacenados debido a que nos facilita la

tarea de detectar rostros o caras pues se trata de un clasificador en cascada entrenado para esta

tarea, estos son almacenados en archivos XML, en caso de que lo necesitemos podemos crear
DESARROLLO DE CONTROL DE ACCESO IOT 25

nuestros propios clasificadores para detectar el objeto para el que haya sido entrenado, por

ejemplo: carros, animales, frutas, etc., en el archivo de descarga de la librería Open CV vienen

incluidas varios de estos archivos y las aplicaciones necesarios para construir los nuestros.

Para el módulo ESP8266 se desarrolló en Arduino Software (IDE) el código necesario

para que este ejecutara las acciones de recibir la información enviada desde la Raspberry

configurando la librería server y luego activar el servomotor para realizar apertura de la puerta,

en el código se llama la librería Servo la cual nos va permitir enviar comandos de activación al

servomotor.

Contamos con vistas desarrolladas en HTML para el acceso por medio de la web debido a

que se realizó la instalación de Apache server para por medio de la web poder ejecutar también

el aplicativo, las vistas que se desarrollaron fueron la vista de Login por medio de la cual con un

usuario y contraseña accedemos al sistema y luego esto nos pasa a la vista reconocimiento la cual

permite por medio de dos botones uno llamado Reconocer rostro para almacenar usuarios nuevos

y otro llamado Validar rostro para detectar usuarios autorizados en la aplicación.

7. Implementación

Para el prototipo se creó un diagrama de bloques el cual representa la interacción de los

usuarios con el sistema en este diagrama podemos apreciar el momento en que el usuario

interactúa con la cámara web de la Raspberry realiza la detección del rostro por medio del

algoritmo en la Raspberry, luego de esto va y almacena al nuevo usuario en la base de datos local

o en caso de validación lo que hace es verificar si el usuario se encuentra almacenado en la base

de datos, en caso que el usuario se encuentre en la base de datos se ubica un recuadro con el

nombre del usuario en la imagen y se valida su acceso, enviado por medio del protocolo TCP y a
DESARROLLO DE CONTROL DE ACCESO IOT 26

través de wifi un mando de apertura de puerta a el módulo ESP8266 el cual recibe esta

información y envía el pulso de apertura el servomotor el cual hace que la puerta se abra,

también las Raspberry a su vez envía por medio de internet un informe de apertura de puerta el

cual se registra en la plataforma IoT Ubidots para llevar registro de a qué hora se ha realizado

apertura de la puerta en caso de alguna novedad. Véase figura 5.

Se creó carpeta recoFacial la cual almacena toda la información de la aplicación y la base

de datos que almacena los rostros la cual es local puesto que se guardan las imágenes de los

rostros en una carpeta con el nombre de cada usuario la ruta de esta carpeta que almacena los

usuarios es /home/pi/recoFacial/att_faces/orl_faces. Véase figura 6

Se codifico el archivo Capture.py el cual es la aplicación en Python que activa la cámara

web para lograr identificar cuando hay un rostro para almacenarlo en la base de datos, en este se

asigna la ruta de la base de datos a una variable llamada fn_dir, para poder de esta forma usar la

ruta en cualquier parte del código, también se asigna el archivo haardcascade_frontalface_alt.xml

a la variable fn_haar, para poder llamarlo en cualquier parte del código y de esta forma detectar

rostros. Se crea la variable fn_name la cual almacena el nombre del usuario nuevo y lo almacena

en el directorio de la base de datos, luego se le pregunta a el usuario por medio de consola

cuantas fotos desea tomarle a el nuevo usuario, captura el valor en la variable NumeroFotos y

procede a tomar las fotos y almacenarlas en una carpeta con el nombre del usuario, también crea

una matrix con la imágenes y nombre del usuario que se acaba de crear, para proceder a

preguntar por consola si desea entrenar el modelo para que actualice la información y lo exporte

en una archivo llamado Entrenador.yml, crea el modelo por medio de la propiedad

cv2.face.LBPHFaceReconizer_create(), lo que queda contenido en el archivo Entrenador.yml es


DESARROLLO DE CONTROL DE ACCESO IOT 27

una matrix con la información de los usuarios y características de los rostros que hay

almacenados en la base de datos. Véase figura 7 y 8.

Luego se procedió a codificar el archivo Reconocimiento.py en el cual declaramos la

variable host la cual va almacenar la IP que tenga el módulo ESP8266 para lograr comunicarnos

con este y enviar información, luego le asignamos el puerto para conexión por TCP en la

variable port, procedemos a invocar ubidots y asignarle los valores de api y variables que

anteriormente hemos revisado en la plataforma para poder enviarle información, declaramos de

nuevo las variables fn_dir y fn_haar para invocar la base de datos y la detección de rostros,

procedemos a crear una matrix de imágenes y nombres y luego cargamos el archivo

Entrenador.yml que habíamos generado anteriormente por medio del comando

model1.read(“Entrenador.yml”), luego solicita al usuario el nivel de seguridad que desea manejar

donde de 1 a 9 es seguridad baja, de 10 a 29 el seguridad media y 30 es seguridad alta.

Procedemos a activar la cámara en busca de rostros y utilizar la opción cv.2CascadeClassifier

para analizarlos, en caso de detectar un rostro conocido se imprime el nombre en un recuadro

alrededor de la imagen del usuario por medio de la variable cara la cual almacena el nombre de

la persona luego imprimimos por consola el nombre de la persona y se muestra el mensaje de

Ingreso autorizado, también procede a enviar la información de apertura de puerta a la

plataforma Ubidots para llevar registro de las aperturas que se realizaron, se envía por medio del

protocolo TCP el mensaje de “ABRE” el cual indica al módulo ESP8266 que realice apertura de

la puerta en caso que la aplicación no pueda enviar el mensaje muestra un error de envió fallo

para notificar al usuario, en caso de haber enviado el mensaje exitosamente muestra el mensaje

“Abriendo puerta” el cual significa que ya se comunicó con el modulo WIFI ESP8266 . Luego se
DESARROLLO DE CONTROL DE ACCESO IOT 28

procede a mostrar el usuario si desea reconocer otro rostro digitando 1 o finalizar la aplicación

digitando 0. Véase figura 14 y 15.

Se procedió a realizar código de configuración módulo ESP8266 por medio del software

arduino IDE en el cual declaramos las librerías necesarias para trabajar con el servo motor

Servo.h y las librerías para que el modulo se conecte y comunique por medio de WIFI a través

del protocolo TCP esto permite que tengamos conexión con la Raspberry, se declaran las

variables para comunicación, manejo del servomotor y activación de los puertos que

necesitamos, luego se configura la conexión a la red WIFI que deseamos. En el void setup

iniciamos el puerto serial el led del módulo ESP8266 y mostramos mensaje de conexión a la red,

luego mostramos la IP del módulo para poder conectarnos a él desde cualquier equipo y

compartir información, le asignamos al servo motor el puerto D8 para la transmisión de

información lo cual va permitir la apertura y cierre de la puerta. En el void loop por medio del

código desarrollado buscamos un cliente para conexión si se encuentra se muestra el mensaje de

nuevo cliente y procedemos a leer los datos que nos transmite el cliente luego se valida si la

información enviada correspondiente corresponde al mensaje “ABRE” en caso de ser así se

procede a activar el servomotor el cual abre y cierra la puerta para el debido acceso del usuario.

Véase figura 16, 17 y 18.

Se realizó instalación del software apache server en la Raspberry para proceder al

desarrollo en HTML de dos páginas web para la interfaz del usuario web, una llamada Login el

cual valida con usuario y contraseña los usuarios autorizados y otra página llamada

Reconocimiento en la cual podemos encontrar dos botones uno para reconocer el usuario y

almacenarlos en la base de datos y otro para validar la identidad del usuario esto se desarrolló

para futuro manejo desde la web. Véase figura 19 y 20


DESARROLLO DE CONTROL DE ACCESO IOT 29

8. Resultados

Después de desarrollar la investigación, se continuo con la implementación al interior de

la plataforma embebida, se realizó la instalación de las librerías necesarias para el

reconocimiento facial tales como OpenCV, simultáneamente se efectuaron pruebas para verificar

el correcto funcionamiento del sistema las cuales se realizaron inicialmente con imágenes que

contenían rostros y otras que no los poseían para de esta forma confirmar que se realizara la

correcta detección de rostros de las cuales el 100% que poseían rostros fueron detectadas por el

sistema, posteriormente se procedió a realizar pruebas con detección de rostros almacenándolos

en la base de datos para confirmar que validara la identidad de cada persona sin errores y que no

fuera a validar un rostro que no está registrado como usuario con permiso de acceso en la base de

datos, al realizar esta prueba se pudo comprobar que el sistema es muy confiable ya que no dio

permisos de ingreso a nadie que no estuviera registrado en la base de datos por lo cual se podría

concluir que el sistema es casi impenetrable con respecto a la suplantación de identidad o fallos

al darle ingreso a alguien no registrado. Véase en la figura 21 y 22

En términos generales los resultados fueron muy satisfactorios, se deben incluir mejoras

para que el sistema sea perfecto lo cual se puede ir implementando de acuerdo a las necesidades

y el comportamiento que tenga el prototipo de acuerdo a los sitios donde se implemente.

Durante unas pruebas que se realizaron se obtuvo que un 94% de las imágenes con

rostros fueron detectadas, mientras que el 100% de las imágenes que no contenía rostros fueron

rechazadas completamente por el clasificador en consecuencia este algoritmo es una técnica

excelente a la hora de detectar rostros al interior de una imagen además de esto como se

evidencio en los resultados. El algoritmo es lo bastante rápido con un tiempo promedio de


DESARROLLO DE CONTROL DE ACCESO IOT 30

detención de 0,18 segundos aproximados, dando la posibilidad de implementar este en sistemas

de tiempo real.

9. Conclusiones

Cuando implementamos sistemas de procesamiento de imágenes al interior de

plataformas embebidas por medio de un ordenador como el Raspberry Pi se logra una mayor

versatilidad y un menor costo en el desarrollo de distintas problemáticas podemos afirmar que

tuvimos una aplicación la cual es orientada principalmente a los sistemas de seguridad capaz de

detectar y reconocer los rostros de las personas contenidas en una base de datos.

En este proyecto fue de vital importancia aplicar métodos de reconocimiento de rostros

los cuales nos ayudaron a identificar con mayor precisión a las personas.

Por medio de una cámara web se logró la adquisición adecuada de imágenes faciales para

procesarlas por la aplicación y almacenarlas en la base de datos.

Se establecieron estándares para lograr que el reconocimiento facial se realizara de forma

adecuada logrando optimizar el funcionamiento del prototipo.

En conclusión, el sistema es una herramienta muy útil para hogares o empresas, logrando

brindar una mayor seguridad para ingreso en áreas controladas, se debe tener en cuenta las

recomendaciones de uso y protección de los dispositivos lo cual puede limitar su correcto

funcionamiento.

En este proyecto de reconocimiento facial se pudo observar que, en las unidades

residenciales, oficinas, centro comerciales etc. se puede tener un fácil ingreso a lugares

restringidos a personal no autorizados, se observó que en las unidades residenciales es muy fácil

de tener acceso a la entrada ya que no cuenta con un sistema de seguridad para la entrada de las
DESARROLLO DE CONTROL DE ACCESO IOT 31

personas visitantes, y aun el personal de seguridad no sabe quiénes conviven en los

apartamentos. Se hizo esta investigación para la ayuda de personas que quieran implementar un

sistema diferente a las cámaras de seguridad y huella dactilar.

Una de las ventajas de los sistemas de procesamiento facial radica que se basa en

plataformas programables y se pueden corregir errores de manera sencilla y rápida para así

mejorar u optimizar las funcionalidades de la aplicación. El hardware utilizado representa una

opción de bajo costo, además combina módulos sencillos y puertos dedicados directamente a

ciertas funciones programables en el sistema operativo permitiendo interactuar con una gran

cantidad de dispositivos externos como pantallas, sensores dispositivos de almacenamiento.

10. Recomendaciones

Es muy importante recolectar información de fuentes confiables para tener en cuenta el

grado de responsabilidad que se hace al desarrollar un trabajo de reconocimiento facial.

Es importante elegir materiales y métodos realmente eficaz para realizar un trabajo de

investigación, verificar que las placas como Raspberry, modulo Wifi ESP8266MOD y demás

compuestos electrónicos estén en perfecto estado para evitar mal funcionamiento o el desarme de

estos y garantizar un buen trabajo al realizarlo.

Revisar las herramientas adecuadas para trabajar con los sistemas electrónicos y

herramientas certificadas para evitar accidentes. Se recomienda implementar el sistema en un

lugar con un ambiente controlado de esta forma si se tiene algún error se puede rectificar de

inmediato y realizar pruebas para comprobar que el sistema funcione perfectamente, y no cuando

el sistema esté instalado en el lugar donde su uso sea continuo y de gran demanda. Cuando se

tenga el sistema implementado hacer pruebas periódicamente durante unas horas especificas del
DESARROLLO DE CONTROL DE ACCESO IOT 32

día cambiado las posturas, gestos y distancias para así tener una mayor efectividad sobre el

reconocimiento.

Para el mejoramiento del futuro del prototipo de acceso por reconocimiento facial se

podría implementar diferentes sensores, donde se logra controlar la luz y el ambiente la

luminosidad, obtener la altura del individuo para controlar la posición de la cámara y así lograr

un funcionamiento eficiente de la autenticación.

Se recomienda actualizar la base de datos según sea la necesario cuando existen cambios

en la apariencia de las personas registradas en la base de datos para así garantizar el

reconocimiento del rostro, con el mismo número de imágenes o fotografías para no hacerlo lento

y evitar errores.

Para un correcto funcionamiento del prototipo este debe instalarse en un ambiente estable

o controlable de iluminación, para que no haya problemas en la autenticación facial.

Implementado otro tipo de código para el reconocimiento facial, se puede lograr obtener

una autenticación facial para rostros artificiales (gafas, gorros) y no solo rostros naturales.

Es de vital importancia tener una conexión constante y segura a internet que permita

enviar a la plataforma Ubidots la información de apertura de la puerta, de lo contrario en el

prototipo genera errores en este proceso.


DESARROLLO DE CONTROL DE ACCESO IOT 33

11. Referencias

ARME ideas en guadua. (22 de 05 de 2016). Producción y Contricción Sostenible. Obtenido de

http://armeideasenguadua.com/generalidades-de-la-guadua-angustifolia-kunth/

Cali, A. d. (08 de 06 de 2017). www.cali.gov.co. Obtenido de

http://www.cali.gov.co/observatorios/publicaciones/132200/informe-delitos-en-santiago-

de-cali/

El País. (28 de 11 de 2018). El País.com. Obtenido de https://www.elpais.com.co/judicial/alerta-

en-cali-por-robos-a-viviendas-esta-es-la-guia-para-que-no-le-pase.html

Guillen, P. I. (06 de 2015). PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO.

Obtenido de Reconocimiento Facial, Descripción del proyecto:

http://opac.pucv.cl/pucv_txt/txt-1000/UCD1453_01.pdf

I.A, J. d. (2003). Ministerio de agricultura y desarrollo rural . Obtenido de

http://bibliotecadigital.agronet.gov.co/bitstream/11348/3967/2/2006718144553_Manual

%20de%20guadua.pdf

Mellado, R. (06 de 2015). PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO.

Obtenido de Problema: http://opac.pucv.cl/pucv_txt/txt-1000/UCD1453_01.pdf

Morris, T. (06 de 2004). Wikipedia. Obtenido de Vision artificial:

https://es.wikipedia.org/wiki/Visi%C3%B3n_artificial

Olguín, D. E. (06 de 2015). PONTIFICIA UNIVERSIDAD CATÓLICA DE VALPARAÍSO.

Obtenido de Caracteristicas de Haar: http://opac.pucv.cl/pucv_txt/txt-

1000/UCD1453_01.pdf
DESARROLLO DE CONTROL DE ACCESO IOT 34

PROEXPORT COLOMBIA. (19 de 03 de 2014). Promocion de turismo, inversión y

exportación. Obtenido de

http://www.procolombia.co/sites/default/files/perfil_logistico_de_italia_2014.pdf

Santana, M. A. (11 de 05 de 2017). Universidad Autónoma del Estado de México, Toluca,

México. Obtenido de Estado del arte en reconocimiento facial:

https://pdfs.semanticscholar.org/0cc2/fc148eef46c1141edd276d903853052fc19d.pdf

Vergara, R. F. (2016). TecnoESUFA: revista de tecnología aeronáutica. Obtenido de Perfil

logístico de Colombia:

https://www.publicacionesfac.com/index.php/TecnoESUFA/article/view/250

Zapata, L. P. (22 de 05 de 2009). CVN centro virtual de noticias. Obtenido de Agenda Ejecutiva:

https://www.mineducacion.gov.co/cvn/1665/article-187526.html
DESARROLLO DE CONTROL DE ACCESO IOT 35

12. Tablas y Figuras

Tabla 1.

¿Sabe usted que es un sistema de reconocimiento facial?

ALTERNATIVAS RESPUESTAS PORCENTAJE


SI 25 83%
NO 5 17%
TOTAL 30 100%

Nota: la tabla sabe usted que es un sistema de reconocimiento facial, es de

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 36

Tabla 2.

¿Cree usted que es importante obtener un sistema de reconocimiento facial para las residencias

cercanas?

ALTERNATIVAS RESPUESTAS PORCENTAJE


SI 24 80%
NO 6 20%
TOTAL 30 100%

Nota: la tabla cree usted que es importante obtener un sistema de reconocimiento facial para las

residencias cercanas.

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 37

Tabla 3.

¿Cree usted que el reconocimiento facial ayudaría a prevenir los casos de inseguridad en la

ciudad?

ALTERNATIVAS RESPUESTAS PORCENTAJE


SI 23 77%
NO 7 23%
TOTAL 30 100%

Nota: la tabla cree usted que el reconocimiento facial ayudaría a prevenir los casos de

inseguridad en la ciudad.

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 38

Tabla 4.

¿Si tuviera usted los recursos para adquirir un sistema de reconocimiento facial para prevenir

la inseguridad de su residencia, lo compraría?

ALTERNATIVAS RESPUESTAS PORCENTAJE


SI 26 87%
NO 4 13%
TOTAL 30 100%

Nota: la tabla si tuviera los recursos para adquirir un sistema de reconocimiento facial para

prevenir la inseguridad de su residencia, lo compraría.

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 39

Figura 1. Grafico encuesta ¿Sabe usted que es un sistema de reconocimiento facial?

Fuente: Elaboración propia


DESARROLLO DE CONTROL DE ACCESO IOT 40

Figura 2. Grafico encuesta ¿Cree usted que es importante obtener un sistema de reconocimiento

facial para las residencias cercanas?

Fuente: Elaboración propia


DESARROLLO DE CONTROL DE ACCESO IOT 41

Figura 3. Grafico encuesta ¿Cree usted que el reconocimiento facial ayudaría a prevenir los

casos de inseguridad en la ciudad?

Fuente: Elaboración propia


DESARROLLO DE CONTROL DE ACCESO IOT 42

Figura 4. Grafico encuesta ¿Si tuviera usted los recursos para adquirir un sistema de

reconocimiento facial para prevenir la inseguridad de su residencia, lo compraría?

Fuente: Elaboración propia


DESARROLLO DE CONTROL DE ACCESO IOT 43

Figura 5. Diagrama de bloques control de acceso IoT

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 44

Figura 6. Tomada en la carpeta orl_faces, base de datos de usuarios

Fuente. Elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 45

Figura 7. Python toma de archivo capture.py declaración de variables, activación de cámara,

detección de rostro y captura de imágenes.

Fuente. Elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 46

Figura 8. Python toma de archivo capture.py creación de lista de imágenes, creación de matrix

con la lista de imágenes y nombres de usuarios, entrenamiento de modelo para general archivo

Entrenador.yml

Fuente. Elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 47

Figura 9. Tomada desde la aplicación la cual inicia la cámara y detecta si tiene un rostro en

frente y le toma unas imágenes para almacenarlas

Fuente. Elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 48

Figura 11. Grafica de comparación método LBPH.

Fuente: https://en.wikipedia.org/wiki/Local_binary_patterns
DESARROLLO DE CONTROL DE ACCESO IOT 49

Figura 12. Esquema General de la Solución

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 50

Figura 13. Flujo de trabajo sistema de reconocimiento facial

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 51

Figura 14. Python tomada del archivo Reconocimiento.py declaración de variables, creación

matriz con lista de imágenes y nombres, carga archivo Entrenador.yml

Fuente: elaboración propia


DESARROLLO DE CONTROL DE ACCESO IOT 52

Figura 15. Python tomada del archivo Reconocimiento.py activación de cámara, detección de

rostro y muestra de variable cara con el nombre del usuario.

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 53

Figura 16. Arduino software IDE código fuente arduino para módulo ESP8266

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 54

Figura 17. Arduino software IDE código fuente arduino para módulo ESP8266

Fuente: elaboración propia.


DESARROLLO DE CONTROL DE ACCESO IOT 55

Figura 18. Imagen módulo ESP8266 conectándose a la red WIFI, muestra IP asignada por la red,

recibe información enviada por cliente y envía respuesta a puerto D8 donde está conectado el

servomotor

Fuente: elaboración propia


DESARROLLO DE CONTROL DE ACCESO IOT 56

Figura 19. Interfaz Web de Login en Raspberry

Fuente: elaboración propia


DESARROLLO DE CONTROL DE ACCESO IOT 57

Figura 20. Interfaz Web de Reconocimiento en Raspberry

Fuente. Elaboración propia


DESARROLLO DE CONTROL DE ACCESO IOT 58

Figura 21. Grafica tomada desde la aplicación en Python que reconoce y almacena las imágenes

Fuente: Elaboración propia


DESARROLLO DE CONTROL DE ACCESO IOT 59

Figura 22. Grafica tomada desde carpeta orl_faces en la Raspberry convertida a escala de grises

formato RGB de 8 bits.

Fuente: Elaboración propia

También podría gustarte