
11 minute read
Propuesta de sistema de reconocimiento facial para control de acceso usando IoT optimizado mediante clases de
Machado O. Federico [[federico.machado@udb.edu.sv]Miembro, IEEE, Carías J. Héctor, Álvarez S. Pedro
Resumen
Advertisement
La seguridad es un tema de importancia en diferentes tipos de establecimientos, por lo que se procura que se permita el ingreso únicamente a las personas autorizadas. Con el aumento del rendimiento de IoT y los avances en el desarrollo de paquetes de Python para sistemas inteligentes, la aplicación de reconocimiento facial se puede utilizar para identificar rostros y autorizar el ingreso a instalaciones críticas; sin embargo, la cantidad limitada de recursos en el IoT o de ordenadores de placa única, comparada con las computadoras de uso personal, obliga a optimizar las funciones del programa y se reestructura con el uso de clases para reducir el tiempo de ejecución. El resultado obtenido es la identificación de rostros con una precisión cercana al 100% para el acceso a la oficina de Dirección, mediante rostros identificados en 72 rasgos faciales.
Palabras clave: Reconocimiento facial, IoT, Optimización, Python, Seguridad
Introducción
El tema de la seguridad es de particular importancia para conservar los bienes materiales con los que cuenta una institución, por lo que se invierte una importante suma de dinero para limitar el acceso de las personas a los diferentes recintos de un edificio. Con la posibilidad de utilizar la identificación facial como tecnología específica para proporcionar dicho acceso, se han revisado diferentes elementos, desde el uso del Internet de las cosas (IoT por sus siglas en ingles) hasta diversas aplicaciones para la identificación facial. El IoT se ha convertido en una plataforma emergente que incorpora el desarrollo e integración de aplicaciones en un nicho que ha reducido costes y ha dado lugar a un nuevo modelo de negocio. Esta plataforma incluye manufactura, transferencia y logística, telecomunicaciones y servicios entre otras industrias que potencialmente se beneficiarán, con proyecciones de entre 15 y 20 mil millones de dólares al 2020 [1]. Se espera que el mercado de IoT, solo en América del Norte, duplique para 2022 los 90 mil millones de dólares de 2017, acuñando un retorno acumulado de 12.25% en ese período [2].
Gracias a IoT, las empresas se vuelven más eficientes, ya que reducen sus costos operativos y aumentan el uso de sus activos, trabajando de la mano con inteligencia artificial (IA) ejecutada en tiempo real. Además, muchas empresas adoptan el modelo de “edge computing” (tecnología dirigida a la conectividad de los humanos y los dispositivos a Internet), para el procesamiento de la información, lo cual es muy factible con el aumento de la velocidad de procesamiento de IoT, proyectándose que para el 2025 cerca del 45% utilizará este modelo [3]. Además de esperar que el impacto de IoT sea muy amplio en el futuro cercano, hay tres industrias principales que se beneficiarán: Los fabricantes de sensores, los proveedores de sistemas de telecomunicaciones y los fabricantes de semiconductores [4].
En general, y con posibilidad de ejecutarlo en el IoT, Python es uno de los 5 lenguajes de programación de mayor crecimiento en los últimos años, incluso en países con bajos índices de ingresos; de hecho, en estos países estos ingresos son ligeramente más altos que en aquellos con ingresos altos [5]. Este indicador muestra la alta difusión de Python como lenguaje de programación en todo el mundo y, con el aporte de las bibliotecas por parte de la comunidad científica, lo convierte en una herramienta ampliamente utilizada por académicos e investigadores, quienes han puesto a disposición en línea más de 145.000 paquetes [6] Aunque Python tiene una fuerte competencia con otros lenguajes por su mayor eficiencia y capacidades especiales, como opciones de "bajo nivel", aplicaciones para navegadores web, robustez para aplicaciones largas y complejas, entre otros beneficios, Python sigue siendo el preferido por su sintaxis simple que lo hace fácil de aprender y compartir, así como su enorme disposición de paquetes desarrollados por terceros.
La visión asistida por computadora ha tomado un auge muy importante en los últimos años, para el 2019 en la conferencia de reconocimiento de patrones y visión por computadora del Instituto de ingenieros electricistas y electrónicos (IEEE), ha sido una de las tres más importantes a nivel mundial, aceptando más de 1300 artículos entre los que se encuentran temas de aprendizaje profundo, detección y reconocimiento de objetos [7].
El impacto en la tecnología abarca una amplia gama de campos de aplicaciones que utilizan computadoras para analizar imágenes. Estos campos incluyen lo militar, lo industrial, la salud, los automóviles y el procesamiento de datos, entre otros. Destaca el ámbito de la salud en el que el 90% de la información se basa en numerosas aplicaciones de visión artificial para detectar anomalías en TAC (Tomografía Computarizada) y RMN (Resonancia Magnética) con mayor grado de precisión alcanzado por algunos profesionales médicos [8]. Además, esta industria según reporta la empresa Tractica, crecerá de $ 5,7 mil millones en 2014 a $ 33,3 mil millones para 2019, acuñando una tasa de rendimiento acumulada del 42%, siendo el segmento de consumidores electrónicos el de mayor crecimiento, seguido de la robótica. y visión por computadora [9].
El reconocimiento facial ya no solo aplica para acceder a espacios de alto riesgo, como aeropuertos, plantas nucleares y edificios gubernamentales, una gran cantidad de empresas pueden mejorar su servicio al cliente y proteger sus activos de manera proactiva. Por su parte, la aplicación de técnicas de inteligencia artificial en cámaras de alta resolución conectadas a una red que permite sustituir las medidas de seguridad tradicionales [10].
Una de las aplicaciones desarrolladas ampliamente en todo el mundo se observa en las fronteras, donde el control se realiza a través del reconocimiento facial en combinación con el pasaporte. Esta medida aumenta la seguridad y facilita la revisión de documentos de viaje, reduciendo el tiempo de espera de los pasajeros [11] De igual manera, este mecanismo de revisión permite detectar pasaportes falsos [12]. Por tanto, se observa que se dispone de la tecnología necesaria para desarrollar un sistema de seguridad mediante la aplicación de detección e identificación de imágenes.
El costo de IoT seguirá reduciéndose en los próximos años, entre otras razones por las siguientes razones: cada vez más fabricantes participan en el mercado de sensores de IoT, los componentes de IoT se optimizan constantemente y los sensores fabricados más recientemente están listos para ser utilizado de inmediato [13] Entre otros elementos a destacar en el uso de IoT, se proyecta que en 2022 cerca del 70% podría utilizar la red celular como medio de comunicación, lo que se centrará en las aplicaciones de la industria a través del IoT que, por lo tanto, deberían mejorar su seguridad y la disponibilidad de sus servicios [14]. La cantidad de IoT ha aumentado sin precedentes en los últimos años, dada su rápida fabricación de productos, respuesta rápida a las demandas del mercado y optimización en tiempo real de la producción en las redes de suministro industrial. Esta expansión ha llevado a analistas y empresas industriales a predecir que, en la próxima década, se desarrollarán unas decenas de miles de millones de estos dispositivos para automatizar los controles de procesos y los sistemas de servicios de información. [15].
Problema a resolver
La Universidad Don Bosco está ubicada en el municipio de Soyapango en San Salvador, el cual tiene una alta población en condiciones de escasos recursos económicos y cuenta con una población de más de 10.000 estudiantes. Los límites de la Universidad están establecidos por un muro perimetral de baja altura dentro de un área de alrededor de 70.000 m² como se ilustra en la Fig. 1, que facilita el ingreso de personas no deseadas al campus y luego a recintos donde se ubican equipos tecnológicos de alto valor. Levantar el muro perimetral representa un costo considerable, por lo que salvaguardar selectivamente los equipos es económicamente más viable.
Figura 2: Interacción del sistema embebido IoT, utilizando la cámara para identificar al usuario y abrir la puerta mediante una cerradura eléctrica


Solución propuesta
El esquema general de la solución se presenta en la Fig. 2, la cual incluye un servidor de documentos que contiene las bases de datos correspondientes a las personas y las respectivas autorizaciones para que las personas puedan ingresar a los diferentes recintos.
Para el componente software, existe una variedad de aplicaciones que permiten detectar e identificar rostros [16] pero face_recognition [17] utiliza funciones soportadas por la librería DLIB, que según los rostros etiquetados en el “Wild Benchmark Test”, tiene un 99.38% exactitud. Este valor es muy cercano al 100%, lo que genera expectativas de cumplir con un alto nivel de seguridad para resguardar bienes de alto valor en los laboratorios de la Universidad. El programa se lleva a cabo utilizando Python 3.7 y se especifica a través de un bucle infinito dedicado a la captura de imágenes a las que se aplican diferentes pruebas:
Imágenes JPG Phyton
1. La imagen capturada se procesa para compararla con la base de datos de "personas", que contiene fotografías de las personas autorizadas a ingresar al sitio. Estas fotos han sido previamente tomadas y digitalizadas en un sistema como el que se muestra en la Fig. 3.
2. Se verifica a través de una base de datos de “permisos” si la persona identificada está autorizada para ingresar, fechas y horas específicas.
3. Finalmente, una vez que la persona es autorizada para ingresar, se alimenta una base de datos “libro de bitácora” que registra los ingresos realizados.
La aplicación basa los permisos en las bases de datos denominadas “personas” y “permisos”, las cuales a su vez deben ser administradas manual o automáticamente por un especialista.
En el hardware, el componente IoT utilizado es el Raspberry 3B+ [18], dado su bajo costo en el mercado y la posibilidad de ejecutar Python en un entorno Linux; además, ya cuenta con una cámara en el rango de luz visible con una resolución aceptable para realizar capturas de video. Las pruebas mostraron que la efectividad para reconocer los rostros almacenados en la base de datos fue muy cercana al 100%, como se esperaba en las pruebas iniciales. Sin embargo, el tiempo de procesamiento de las imágenes para detectar e identificar rostros, como la verificación de permisos, superó varios segundos, lo que provocó que la presentación de la persona a identificar requiriera entre 3 y 5 segundos frente a la cámara.
Para mitigar la lentitud del sistema, se reestructuró el programa reemplazando prácticamente todas las funciones por clases, aprovechando las mejoras que se han agregado a la gestión de sus datos en Python 3.7 respecto a versiones anteriores [19]. El diagrama de flujo para ambos casos se puede ver en la Fig. 4, donde son estructuralmente similares y la única diferencia sustancial entre a) y b) es que en el primer caso se utilizaron funciones y en el segundo, los métodos de las clases creadas.
Para conocer el tiempo requerido en la ejecución de las tareas se incorporó una “clase de tiempo”, la cual se presenta en cada ejecución la leyenda:
PC1 <07/10/2019 14:53:27.943728 | casa | 8.00E-06 | detectado | 2.70E-05 | mostrado | 1.00E-05 | a esperar | 1.30E- 05 fin>
De esta forma, fue posible comparar el tiempo de ejecución de un bucle, inicialmente utilizando funciones y en segundo lugar clases.
En la Tabla I se muestran los dos escenarios principales de ejecución del programa:

Proceso INACTIVO. El programa no ha detectado ningún rostro. Espere un tiempo predeterminado, entre 0.1 y 0.2 segundos, para volver a escanear si se detecta un rostro.

Identificación completa. Se ha detectado un rostro y el programa continúa el proceso hasta que se abre la puerta al usuario si se le garantiza o se le niega el acceso. En cualquier caso, la ejecución requiere casi el mismo tiempo.
En la tabla 1 se muestra el tiempo requerido en T1, cuando se utilizan funciones para detectar e identificar rostros, así como el otorgamiento de permisos y T2 en el uso de objetos construidos con clases para realizar el mismo trabajo.
Como es de notar, en el proceso inactivo se ha mejorado la relación de tiempos en un 70%, mientras que la identificación completa en un 33% de los tiempos. El hecho de que durante el proceso IDLE no hubiera mejor momento era de esperarse porque básicamente la ejecución del programa es bastante corta, mientras que en la Identificación completa hay una mayor cantidad de variables y manejo con bases de datos a las que una persona debe acceder el programa.
Finalmente, el funcionamiento del sistema se muestra en la Fig. 5, cuando una persona es identificada y autorizada para ingresar a alguna habitación, en pantalla aparece la leyenda “Acceso Ok”.
Conclusiones
Dados los resultados obtenidos, cercanos al 100% de aciertos en la identificación de personas a través de la base de datos, se puede aplicar el programa de reconocimiento facial como parte fundamental del procedimiento para permitir el acceso de personas debidamente autorizadas a determinados campus universitarios.
Bibliografía
Las aplicaciones que se ejecutan en IoT tienen memoria y recursos de procesamiento limitados, por lo que se debe optimizar al máximo el uso de los recursos de software. En este caso, el uso de métodos pertenecientes a objetos formados con clases ha mejorado el tiempo de ejecución global del programa, respecto al uso de funciones.
1. Colón L. 2018. 10 gráficos que desafiarán su perspectiva del crecimiento de IoT [Internet]. [Citado 31 de julio de 2021] Forbes. Disponible en: https://www.forbes.com/sites/louiscolumbus/2018/06/06/10-charts-that-will-challenge-your-perspective-ofiots-growth/#512acba83ecc
2. Cristo Petrov. 20xx. 49 impresionantes estadísticas de Internet de las cosas 20xx [El auge de IoT]. [Internet]. [Citado 31 de julio de 2021]. Teyjury. Disponible en:https://techjury.net/stats-about/internet-of-things-statistics/
3. EY. 2015. Cybersecurity and the Internet of Things. [Internet]. [Citado 31 de julio de 2021]. Disponible en: [https://www.ey.com/ Publication/vwLUAssets/EY_-_Future_of_IoT/ $FILE/EY-future-of-lot.pdf
4. Hoffman M. 2018. Las IoT se ubican al centro de las tecnologías disruptivas [Internet] [Citado 06 de octubre de 2022] Global X. Disponible en: https://www.globalxetfs.com/iot-center-of-disruptive-technologies/
5. Robinson D. 2017. El increíble crecimiento de Python. [Internet] [Citado 06 de octubre de 2022] The Overflow. Disponible en: https://stackoverflow.blog/2017/09/06/incredible-growth-python/
6. The Data Team. 2018. Python se está convirtiendo en el lenguaje de condificación más popular. [Internet] [Citado 06 de octubre de 2022] The economist. Disponible en: https://www.economist.com/graphic-detail/2018/07/26/python-is-becomingthe-worlds-most-popular-coding-language
7. Dwivedi P. 2019. Últimas tendencias en la conferencia de visión por computadora y reconocimiento de patrones 2019. [Citado 06 de octubre de 2022] Towards Data Science. Disponible en: https://towardsdatascience.com/latest-computer-vision-trendsfrom-cvpr-2019-c07806dd570b
8. Mort A. 2019. Cómo las aplicaciones de visión por computadora están cambiando el mundo. [Citado 06 de octubre de 2022] TechSee. Disponible en: https://techsee.me/blog/computer-vision-applications/

9. Hanson S. 2020. El mercado de aplicaciones en inteligencia artificial alcanzará 126 mil millones de dólares en utilidades anuales para el 2025 alrededor del mundo. [Internet] [Citado 06 de octubre de 2022] Businesswire. Disponible en: https://www.tractica. com/newsroom/press-releases/computer-vision-technology-market-to-reach-33-3-billion-by-2019/
10. Kairos Team. 2017. Proteja sus negocios y cree experiencias más agradables en sus clientes con reconocimiento facial. [Internet] [Citado 06 de octubre de 2022] Kairos. Disponible en: https://www.kairos.com/face-recognition-for-security
11. Positive technologies Team. 2022. Control de fronteras avanzado. [Internet] [Citado 06 de octubre de 2022] Positive technologies. Disponible en: https://www.ptsecurity.com/ww-en/services/control/
12.CBS noticias. 2018. Reconocimiento facial utilizado para arrestar a persona utilizando un pasaporte falso. [Internet] [Citado 06 de octubre de 2022] CBS. Disponible en: https://www.youtube.com/watch?v=58Y3uAHaBxQ
13. Dukes E. 2018. El costo de los sensores IoT está bajando rápidamente. [Internet] [Citado 06 de octubre de 2022] Office + SpaceIQ. Disponible en: https://www.iofficecorp.com/blog/cost-of-iot-sensors
14.Ericsson. 2022. Develando el poder de conectividad de los IoT. [Internet] [Citado 06 de octubre de 2022] Ericsson. Disponible en: https://www.ericsson.com/en/reports-and-papers/mobility-report/articles/unleashing-the-power-of-iot-connectivity
15. Manvitha. 2019. IoT y desempeño. [Internet] [Citado 06 de octubre de 2022] Thingsphere. Disponible en: https:// thingsphere.com/iot-and-performance/
16. Walling A. 2021. Las mejores 10 aplicaciones para reconocimiento facial en 2021. [Internet] [Citado 06 de octubre de 2022] Last Call. Disponible en: https://rapidapi.com/blog/top-facial-recognition-apis/
17. Geitgey A. 2018. Github que contiene módulos para reconocimiento facial. [Internet] [Citado 06 de octubre de 2022] Github. Disponible en: https://github.com/ageitgey/face_recognition
18. Hattersley L. 2018. Especificaciones y pruebas de la Raspberry 3B+. [Internet] [Citado 06 de octubre de 2022]. MagPi magazine. Disponible en: https://magpi.raspberrypi.org/articles/raspberry-pi-3bplus-specs-benchmarks
19. Hjelle G.A. 2018. Clases de datos en Python 3.7+. [Internet] [Citado 06 de octubre de 2022] Real Python. Disponible en: https://realpython.com/python-data-classes/