Está en la página 1de 5

Informe de Laboratorio – Diseño de Sistemas de Comunicación

UNIVERSIDAD TÉCNICA DEL NORTE

FACULTAD DE INGENIERÍA EN CIENCIAS APLICADAS

CARRERA DE INGENIERÍA EN ELECTRÓNICA Y REDES DE


COMUNICACIÓN

Visión Artificial

Adonis Bladimir Narváez Zambrano

abnarvaezz@utn.edu.ec

1. Título

Aplicaciones de visión artificial con Phyton

2. Resumen

El presente documento explica que es, como funciona y


como implementar la visión artificial para el
reconocimiento facial en tiempo real, mediante la
programación de algoritmos en Phyton.

Indica paso a paso lo necesario para la implementación,


como es la captura de rostros, preparación de datos para el
entrenamiento, pruebas y actualizaciones de código para
que el algoritmo trabaje de a mejor manera.

3. Objetivos

- Realizar algoritmos de visión artificial para el


reconocimiento facial en tiempo real, mediante la
programación en Phyton.

- Instalar los programas necesarios para la


implementación del algoritmo.

- Programar los algoritmos en lenguaje Phyton.

- Realizar la captura de rostros automáticamente.

- Realizar el entrenamiento del algoritmo para la detección


del rostro.

4. Marco Teórico Figura 1 Fases del proceso de funcionamiento de la


visión artificial
Visión artificial

Computador es un área multidisciplinar que pretende, en


cierta medida, reproducir artificialmente el sentido de la Reconocimiento facial
vista mediante el procesamiento e interpretación de
imágenes, captadas con distintos tipos de sensores Es una solución biométrica que emplea un algoritmo
(fundamentalmente, cámaras), y utilizando para ello las automático para verificar o reconocer la identidad de una
prestaciones de los ordenadores [1]. persona en función de sus características fisiológicas.

Se la define como la ciencia de programar un computador


para procesar imágenes o videos e incluso entenderlos [2].

En [3] explica que es la transformación de datos desde un


fotograma o video cámara en lo que puede ser una
decisión o una nueva representación.

En la Figura 1 se presenta paso a paso el proceso que se


ejecuta en la visión artificial, indicando el orden de cada
fase que va desde la adquisición de la imagen y el
procesamiento hasta la ejecución de una acción en
particular con los datos obtenidos [4]. Figura 2 Reconocimiento facial
Informe de Laboratorio – Diseño de Sistemas de Comunicación

La tecnología de reconocimiento facial funciona a partir - Reconocimiento Facial


de comparaciones entre los atributos de la cara de la o Prueba
persona que se quiere identificar y los de millones de o Data
individuos con características similares contenidas en una
enorme base de datos [5].

El objetivo de un sistema de reconocimiento facial es que


dada una imagen de una cara “desconocida”, o imagen de
test, deberá encontrar una imagen de la misma cara en un
conjunto de imágenes “conocidas”, o imágenes de
entrenamiento [5]. Figura 5 Carpetas del programa
Phyton
 Creación de archivos

Para comenzar se va a crear los siguientes archivos .py,


en los cuales se va a trabajar.

Figura 3 Phyton

Es un lenguaje de alto nivel ya que contiene implícitas


algunas estructuras de datos como listas, diccionarios,
conjuntos y tuplas, que permiten realizar algunas tareas
complejas en pocas líneas de código y de manera legible. Figura 6 Archivos para el algoritmo
Python cuenta con facilidades para la programación
orientada a objetos, imperativa y funcional, por lo que se  Captura de rostros
considera un lenguaje multi-paradigmas.
Primero el algoritmo debe captura varios rostros,
Fue basado en el lenguaje ABC y se dice que fue específicamente 300 muestras de un video que nosotros le
influenciado por otros como C, Algol 60, Modula-3 e Icon pongamos, o de un video en tiempo real para que este
según su propio autor [6]. tenga una base de datos de este rostro.

OpenCV Para realizar este proceso se tiene el siguiente código.

Importar librerías

Figura 7 Librerías

Ubicación de los archivos

Figura 4 OpenCV

Es una biblioteca de software de visión artificial y


aprendizaje automático de código abierto. OpenCV se Figura 8 Ubicación de los archivos
creó para proporcionar una infraestructura común para
aplicaciones de visión por computadora y para acelerar el
Creación de la carpeta donde se guardarán los rostros
uso de la percepción de la máquina en los productos
comerciales. Al ser un producto con licencia BSD,
OpenCV facilita que las empresas utilicen y modifiquen
el código [7].

5. Simulación
 Creación de las carpetas
Figura 9 Carpeta de archivos del rostro
Para el desarrollo de la práctica, se va crear las siguientes
carpetas. Lectura desde la cámara de video, aquí se puede
utilizar cualquiera de las dos opciones mostradas.
Informe de Laboratorio – Diseño de Sistemas de Comunicación

Figura 10 Captura de video Figura 16 Entrenando el algoritmo


Detección del rostro Almacenamiento del modelo obtenido

Figura 17 Almacenamiento del modelo

 Reconocimiento Facial

Para el reconocimiento facial se debe tener en cuenta el


siguiente Código.

Figura 11 Detección del rostro Lectura del modelo de entrenamiento

Numero de muestras

Figura 18 Lectura del modelo de entrenamiento

Captura de video en tiempo real

Figura 12 Número de muestras


Figura 19 Captura de video en tiempo real
 Entrenamiento del algoritmo

Para el entrenamiento del algoritmo se hará lo siguiente Detección Facial


en el código.

Importar librerías

Figura 20 Detección facial


Figura 13 Librerías

Ubicación de los archivos


6. Recolección de la información y resultados
(Observaciones)
 Captura de rostros

Figura 14 Ubicación de archivos Una vez que se ejecuta el archivo, el programa empezará
a tomar muestras del rostro que se encuentre en la cámara,
Lectura de las imágenes y lo guardará en una carpeta.

Figura 15 Lectura de imágenes

Entrenamiento del algoritmo


Informe de Laboratorio – Diseño de Sistemas de Comunicación

Figura 21 Reconociendo del rostro Figura 25 Reconocimiento facial

7. Análisis de resultados

Se puede observar que el programa reconoce muy bien en


un ambiente normal, sin que la cara de la persona está
cubierta.

Figura 22 Muestras del rostro

 Entrenamiento del algoritmo

Una vez realizado la captura de los rostros, se procede al


entrenamiento del algoritmo, en donde una vez ejecutada
ira tomando de una en una cada foto, para al finalizar tener
un modelo.

Figura 26 Reconocimiento normal

En la siguiente imagen se puede observar como el


programa sigue reconociendo al individuo incluso con la
mascarilla que cubre la mitad del rostro.

Figura 23 Entrenamiento del algoritmo

Figura 24 Modelo LBPHF

 Reconocimiento facial

Una vez que el algoritmo ya entreno, se procede a realizar


el reconocimiento facial en tiempo real.

Figura 27 Reconocimiento media cara


Informe de Laboratorio – Diseño de Sistemas de Comunicación

Pero, una vez que se cubre demasiado el rostro, el 9. Referencias – Bibliografía


programa ya no logra distinguir y los pone como
desconocido, ya que no encuentra en su base de datos [1] Sanchez Calle, A. (2005). Aplicaciones de la visión
imágenes similares con las que la pueda asociar. artificial y la biometría informática. Dykinson.
https://elibro.net/es/ereader/utnorte/60927?page=9

[2] Culjak, I., & Abram, D. (2012). A brief introduction to


OpenCV. MIPRO, 1725-1730

[3] Bradski, G., & Kaebler, A. (2008). Learning OpenCV.


Cambridge: O’Reilly Media, Inc

[4] U. Enfoque, “Internet de las Cosas y Visión Artificial,


Funcionamiento y Aplicaciones: Revisión de Literatura
(Internet of Things and Artificial Vision, Performance and
Applications: Literature Review),” no. 1, pp. 244–256,
2017.

[5] “Reconocimiento facial - Kimaldi.” [Online].


Available:
https://www.kimaldi.com/blog/biometria/reconocimiento
_facial/. [Accessed: 26-Nov-2020].
Figura 28 Reconocimiento totalmente cubierto [6] C. Holguín, Y. Díaz-Ricardo, and R. Antonio Becerra-
García, “Ciencias Holguín, Revista trimestral, Año XX,
8. Conclusiones abril-junio 2014 El lenguaje de programación Python/The
La programación en un lenguaje como phyton, permite la programming language Python Ivet Challenger-Pérez.”
creación de algoritmos capaces de detectar los rasgos [7] “Acerca de - OpenCV.” [Online]. Available:
faciales, teniendo un mejor rendimiento en comparación https://opencv.org/about/. [Accessed: 26-Nov-2020].
de otros lenguajes.

La detección de rostros requiere de un entrenamiento del


algoritmo para que este sea capaz de reconocer los rostros
en diferentes ambientes, entre más entrenamiento se tengo
mejor serán los resultados.

Se pudo observar que el algoritmo trabaja muy bien en


entornos de poca luz, pero si el rostro ya se encuentra
demasiado cubierto este ya no tendrá la capacidad de
detectarlo.

También podría gustarte