Actividad 3.1 - 1851265 - SIS

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 7

lOMoARcPSD|9215748

lOMoARcPSD|9215748

Universidad Autónoma de Nuevo León


Facultad de Ingeniería Mecánica y
Eléctrica

Laboratorio de programación de sistemas


adaptativos Catedrático: Dra. Laura Patricia del
Bosque Vega Actividad 3.1 – Reporte del programa
que se va a desarrollar

Nombre Matricula Hora Carrera


Alexis Alberto Reyna Sánchez 1851265 V5 ITS

Ciudad Universitaria, a 11 de abril de 2024


lOMoARcPSD|9215748

Introducción
Tema escogido: Clasificación/reconocimiento de patrones

El reconocimiento de patrones o lectura de patrones, identificación de figuras y reconocimiento de formas consiste


en leer las señales. Los patrones se obtienen a partir de procesos de segmentación, extracción de características y
descripción donde cada objeto es representado por una colección de descriptores.

El sistema de reconocimiento debe asignar a cada objeto su categoría o clase (conjunto de entidades que
comparten alguna característica que la diferencia del resto). Para reconocer los patrones se siguen los siguientes
procesos:

 Adquisición de datos
 Extracción de características
 Toma de decisiones

Para esta práctica se desarrolló un programa que consiste en identificar los rostros de una
fotografía.

La detección de rostros es una técnica que permite encontrar en una imagen, el rostro o cara de una o varias personas,
mientras que ignora el fondo de la imagen u otros objetos que estén presentes dentro de ella.

Objetivo

Desarrollar un sistema en Python que logre identificar los rostros de la imagen proporcionada.

Justificación

Elegí este tema porque es la técnica más adecuada para la resolución del problema, lo que asegura un desarrollo
óptimo de la práctica.

Marco teórico

La detección de rostros está presente en muchas aplicaciones que usamos día a día, por ejemplo en Facebook con las
imágenes que subimos que ya detectan el rostro y lo que muchas veces nos pide es adicionar el nombre de las
personas que allí aparecen. También tenemos los filtros de Instagram en donde se necesita detectar el rostro para que
los filtros que deseamos aplicarse sean empleados. Incluso está presente en algunas aplicaciones bancarias o cuando
usamos un smartphone para tomar una foto y muestra en un recuadro o círculo los rostros de las personas que
aparecen allí.
Desarrollo
Para el desarrollo de la práctica se implementaron librerías especiales de Python, una de ellas fue
HaarCascades de OpenCV, la cual nos ofrece clasificadores pre-entrenados no solo de rostros de personas,
sino de ojos, sonrisa, etc.

Para emplear la detección de rostros con Haar Cascade en OpenCV, se instaló el módulo detectMultiScale que nos
ayuda a detectar los objetos de acuerdo al clasificador que se utilice, con esto podemos obtener un rectángulo
delimitador en donde se encuentre el objeto que se desea encontrar dentro de una imagen.

Para la detección de los rostros se utilizaron cuatro parámetros principales:

 ScaleFactor: Este parámetro especifica cuánto va a ser reducida la imagen. Por ejemplo, si se ingresa
1.1, quiere decir que se va a ir reduciendo la imagen en un 10%, con 1.3 se reducirá un 30%.
 MinNeighbors: Este parámetro especifica cuántos vecinos debe tener cada rectángulo candidato para
retenerlo.
 MinSize: Este parámetro indica el tamaño mínimo posible del objeto. Objetos más pequeños son
ignorados.
 MaxSize: Este parámetro indica el tamaño máximo posible del objeto. Objetos más grandes son
ignorados.

Para empezar a desarrollar el código, primero guardamos el archivo XML que contiene el clasificador de rostros
frontales (haarcascade_frontalface_default.xml) en la misma carpeta donde está almacenado el script de Python, junto
con la siguiente imagen que es la que vamos a usar para detectar los rostro
Código

 La función faceClassif carga el clasificador en cascada de Haar para la detección de rostros.


 La función gray convierte la imagen a escala de grises.
 La función detectMultiScale detecta rostros en la imagen.
 La función rectangle dibuja un rectángulo alrededor de cada rostro detectado.
 La función imshow muestra la imagen.
 La función waitKey espera a que el usuario presione una tecla.
 La función destroyAllWindows cierra todas las ventanas abiertas.
Resultados

El sistema funcionó correctamente. Se implementaron bien las librerías y las técnicas, y el sistema detectó los rostros de la
imagen en base a los parámetros bien establecidos.
Conclusiones
La detección de rostros es una técnica que permite encontrar en una imagen, el rostro o cara de una o varias personas,
mientras que ignora el fondo de la imagen u otros objetos que estén presentes dentro de ella.

Las técnicas utilizadas fueron adecuadas para desarrollar el sistema. Debemos tomar en cuenta que los valores de los
parámetros varían dependiendo de la aplicación. En este caso, los valores proporcionados en los parámetros fueron
los correctos para la implementación del sistema.
Referencias
 https://opencv-python- tutroals.readthedocs.io/en/latest/py_tutorials/py_objdetect/py_face_detection/py_face_
detection.html
 https://www.bogotobogo.com/python/OpenCV_Python/python_opencv3_Image_Object_
Detection_Face_Detection_Haar_Cascade_Classifiers.php
 https://realpython.com/face-recognition-with-python/

También podría gustarte