Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Virginia Estrada
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
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
de desarrollo embebida llamada Raspberry Pi, la cual proporciono una solución portable con un
necesidad de modificar el hardware del dispositivo el cual se utilizó una base de datos local, se
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
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
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
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,
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
Contenido
pág.
0. Introducción 6
1. Objetivos 7
2. Justificación 8
3. Antecedentes 9
3.2 Reconocimiento en 2D y 3D 10
3.3 Reconocimiento 3D 10
3.7 Eigenfaces 12
5. Propuesta de Diseño 14
7. Implementación 25
8. Resultados 29
DESARROLLO DE CONTROL DE ACCESO IOT 5
9. Conclusiones 30
10. Recomendaciones 31
11. Referencias 33
0. Introducción
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
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
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
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
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
1. Objetivos
digital de imágenes que permita el acceso controlado de personas al hogar o las empresas.
Diseñar una estrategia que realice el reconocimiento de imágenes faciales para optimizar
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
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.
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
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
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
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
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
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
3.2 Reconocimiento en 2D y 3D
Los sistemas de información constituyen unos de los aspectos estratégicos para integrar
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
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)
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.
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
3.7 Eigenfaces
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)
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
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
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
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,
actualidad ya que esto ayudaría a tener un mayor control de acceso a las personas que vivan en la
d) ¿Si tuviera usted los recursos para adquirir un sistema de reconocimiento facial
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.
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
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
acceso IoT por medio de reconocimiento facial el cual permita validar las personas que van a
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
realimentación.
obstante, los participantes en este tipo de equipos no siempre toman un rol fijo y contribuyen con
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
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
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
c) Comparaciones
identificación
a) Pose: Las imágenes que contienen rostros varían debido a la pose relativa de la cámara
barba, bigote y gafas pueden o no estas presentes, y existe un alto grado de variabilidad
c) Expresiones faciales: La apariencia del rostro está directamente afectada por la expresión
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.
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
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
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
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
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
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
learning.
los datos que estén disponibles en la empresa. Estos son algunos ejemplos más:
b) Prever que empleados serán más rentables el año que viene (el sector de los
enviar newsletter.
Raspberry pi3
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.
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
(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
Servomotor
Micro Servo Tower-pro, Velocidad: 0.10 sec/60° @ 4.8V, Torque: 1.8 Kg-cm @ 4.8V,
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é =
Open CV
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
Python
utilizarse para el desarrollo web , apuesta por la simplicidad ,versatilidad y rapidez de desarrollo
páginas web, es interpretado por lo que no necesita compilar el código para poder ejecutarlo
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
Raspbian
Raspbian es una distribución del sistema operativo GNU/Linux y por lo tanto libre
HTML
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
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
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 cuando se combina LBP con el descriptor del Histograma de gradientes orientados (HOG),
otros realizaron una comparación de varias mejoras del LBP original en el campo de la
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:
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.
mineighbors=3, int flgs=0, size minsize=size (), size maxsize=size ()). Ver figura 19
Requisitos funcionales
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.
c) Su diseño será modular. Cada etapa estará diferenciada de la anterior, de tal manera que
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
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
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
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
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
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 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
7. Implementación
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
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
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
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
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
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
una matrix con la información de los usuarios y características de los rostros que hay
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
nuevo las variables fn_dir y fn_haar para invocar la base de datos y la detección de rostros,
alrededor de la imagen del usuario por medio de la variable cara la cual almacena el nombre de
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
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
información lo cual va permitir la apertura y cierre de la puerta. En el void loop por medio del
nuevo cliente y procedemos a leer los datos que nos transmite el cliente luego se valida si la
procede a activar el servomotor el cual abre y cierra la puerta para el debido acceso del usuario.
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ó
8. Resultados
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
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
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
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
excelente a la hora de detectar rostros al interior de una imagen además de esto como se
de tiempo real.
9. Conclusiones
plataformas embebidas por medio de un ordenador como el Raspberry Pi se logra una mayor
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.
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
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
funcionamiento.
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
apartamentos. Se hizo esta investigación para la ayuda de personas que quieran implementar un
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í
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
10. Recomendaciones
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
Revisar las herramientas adecuadas para trabajar con los sistemas electrónicos y
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
luminosidad, obtener la altura del individuo para controlar la posición de la cámara y así lograr
Se recomienda actualizar la base de datos según sea la necesario cuando existen cambios
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
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
11. Referencias
http://armeideasenguadua.com/generalidades-de-la-guadua-angustifolia-kunth/
http://www.cali.gov.co/observatorios/publicaciones/132200/informe-delitos-en-santiago-
de-cali/
en-cali-por-robos-a-viviendas-esta-es-la-guia-para-que-no-le-pase.html
http://opac.pucv.cl/pucv_txt/txt-1000/UCD1453_01.pdf
http://bibliotecadigital.agronet.gov.co/bitstream/11348/3967/2/2006718144553_Manual
%20de%20guadua.pdf
https://es.wikipedia.org/wiki/Visi%C3%B3n_artificial
1000/UCD1453_01.pdf
DESARROLLO DE CONTROL DE ACCESO IOT 34
exportación. Obtenido de
http://www.procolombia.co/sites/default/files/perfil_logistico_de_italia_2014.pdf
https://pdfs.semanticscholar.org/0cc2/fc148eef46c1141edd276d903853052fc19d.pdf
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
Tabla 1.
Tabla 2.
¿Cree usted que es importante obtener un sistema de reconocimiento facial para las residencias
cercanas?
Nota: la tabla cree usted que es importante obtener un sistema de reconocimiento facial para las
residencias cercanas.
Tabla 3.
¿Cree usted que el reconocimiento facial ayudaría a prevenir los casos de inseguridad en la
ciudad?
Nota: la tabla cree usted que el reconocimiento facial ayudaría a prevenir los casos de
inseguridad en la ciudad.
Tabla 4.
¿Si tuviera usted los recursos para adquirir un sistema de reconocimiento facial para prevenir
Nota: la tabla si tuviera los recursos para adquirir un sistema de reconocimiento facial para
Figura 2. Grafico encuesta ¿Cree usted que es importante obtener un sistema de reconocimiento
Figura 3. Grafico encuesta ¿Cree usted que el reconocimiento facial ayudaría a prevenir los
Figura 4. Grafico encuesta ¿Si tuviera usted los recursos para adquirir un sistema de
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
Figura 9. Tomada desde la aplicación la cual inicia la cámara y detecta si tiene un rostro en
Fuente: https://en.wikipedia.org/wiki/Local_binary_patterns
DESARROLLO DE CONTROL DE ACCESO IOT 49
Figura 14. Python tomada del archivo Reconocimiento.py declaración de variables, creación
Figura 15. Python tomada del archivo Reconocimiento.py activación de cámara, detección de
Figura 16. Arduino software IDE código fuente arduino para módulo ESP8266
Figura 17. Arduino software IDE código fuente arduino para módulo ESP8266
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
Figura 21. Grafica tomada desde la aplicación en Python que reconoce y almacena las imágenes
Figura 22. Grafica tomada desde carpeta orl_faces en la Raspberry convertida a escala de grises