Skip to content

This repository contains an implementation of YOLOv4 in the context of Detecting People Wearing Mask

License

Notifications You must be signed in to change notification settings

jjrodcast/MaskDetector-YoloV4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mask Detector con YOLOv4

Actualización del proyecto usando como detector de Rostros con Mascarilla usando YOLOv4. Las configuraciones realizadas están basadas en el repositorio original de Darknet-YOLOv4.

En caso de tener alguna duda:

✉️ [email protected]

Objetivo 🚀

Este proyecto contiene la configuración de YOLOv4 para detectar en una imagen o un video que personas están usando mascarilla, con el fin de prevenir la expansión del COVID-19.

Resultado Detección de mascarillas con YOLOv4

Procedimiento 🛠️

  1. El proceso para poder generar un modelo con un dataset propio de mascarillas, se encuentra descrito paso a paso en el notebook PY1_Configuración_YOLOv4_Objetos_Personalizados.ipynb (este paso se puede omitir si se desea usar los pesos ya entrenados que se encuentra en ruta yolo-obj_final.weights)

  2. Luego de tener los pesos de la red YOLOv4 para el detector de mascarillas, se debe pasar estos pasos a Tensorflow o Tensorflow-Lite, por lo cual todos los pasos para realizar esta tarea están en el notebook PY1_Conversión_YOLOv4_to_Tensorflow.ipynb

Pre-Requisitos 📋

  • Los notebooks que se presentan en esta versión usando YOLOv4 fueron diseñados para ser ejecutados en Google Colab usando GPU, por lo cual si se desea ejecutar localmente se recomienda tener una máquina con GPU.

  • A diferencia del notebook del repositorio MaskDetector no se usa Multi-Task Cascaded Convolutional Neural Network

Archivos del Repositorio 🛠️

📌 ARCHIVOS GENERALES:

📌 UTILITARIOS:

  • utils/predict.py : Este utilitario contiene la clase Predictor que se utiliza para realizar las predicciones en las imágenes.

  • utils/model_utils : Este utilitario contiene una función para poder dibujar los cuadros delimitadores de las personas que no tienen mascarilla, tienen mascarilla o se han puesto mal la mascarilla.

📌 ARCHIVO PRINCIPAL:

  • MaskDetector_YOLOv4.ipynb : Notebook con las pruebas end-to-end para generar sobre imágenes las predicciones de si una persona está usando o no una mascarilla. (No está optimizado para ser usado en video)

📌 ARCHIVOS MULTIMEDIA:

Básicamente puedes cargar imágenes o videos propios, pero por defecto puedes utilizar las imágenes presentes en la carpeta "multimedia/".

Proceso de Ejecución ⚙️

  • Validar que el Tipo de Entorno de Ejecución está en GPU en todos los Notebooks
  • Ejecutar el Notebook PY1_Configuración_YOLOv4_Objetos_Personalizados.ipynb (puede que demore dependiendo de el tamaño de las imágenes y la configuración)
  • Ejecutar el Notebook PY1_Conversión_YOLOv4_to_Tensorflow.ipynb
  • Ejecutar el Notebook MaskDetector_YOLOv4.ipynb
  • Fin 😃

Archivos Adicionales 📁

  • notebooks/PY1_Configuración_YOLOv4_Objetos_Personalizados.ipynb : Notebook para generar el modelo entrenado desde cero con YOLOv4 para predecir si un rostro en una imagen tiene una mascarilla o no. Tener en cuenta que este Notebook puede ser usado de manera independiente si sólo se quiere generar un modelo YOLOv4 sin se exportado a Tensorflow.

  • notebooks/PY1_Conversión_YOLOv4_to_Tensorflow.ipynb : Notebook que permite convertir el modelo generado de YOLOv4 del notebook PY1_Configuración_YOLOv4_Objetos_Personalizados.ipynb hacia Tensorflow 2.x. Este notebook requiere únicamente el archivo de pesos para poder ser ejecutado por lo cual se debe ejecutar el primer notebook (para su simplicidad ya se provee dichos pesos para que pueda ser ejecutado independientemente, estos pesos se mencionaron en el punto 1 del apartado Procedimiento)

Documentación de apoyo 📚

RoboFlow - Transformar imágenes para ser entrenadas: https://roboflow.com/

Darknet-YOLOv4 - Configuración de YOLOv4 para detección de objetos: https://github.com/pjreddie/darknet

Autor ✒️

Licencia 📄

Este proyecto está bajo la Licencia GNU General Public License v3.0 - mira el archivo LICENSE.md para más detalles.

About

This repository contains an implementation of YOLOv4 in the context of Detecting People Wearing Mask

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published