Giter Club home page Giter Club logo

maskdectector's Introduction

Mask Detector

Proyecto Final de fin de curso de Python para Ciencia de Datos del Diplomado de Inteligencia Artificial de la PUCP.

Puedes ver la versión usando YOLOv4 en el siguiente enlace: MaskDetector-YoloV4

Objetivo 🚀

Este proyecto contiene una implementación para detectar en una imagen o un video qué personas están usando una mascarilla que le ayude a prevenir contagiarse del COVID-19.

Resultado

Procedimiento 🛠️

El proceso general para obtener las detecciones de rostros con o sin mascarillas es el siguiente:

  1. Leer la imagen o frame de video.
  2. Aplicar modelo CNN_Face_Detector para detectar todos los rostros en la imagen.
  3. Aplicar modelo CNN_Mask_Class para determinar si el rostro tiene o no mascarilla.
  4. Insertar recuadro clasificador en rostro de imagen original.
  5. Repetir el proceso para todos los rostros en la imagen.

Conoce más sobre la arquitectura, el funcionamiento y los resultados obtenidos del proyecto en la siguiente presentación.

Pre-Requisitos 📋

Este proyecto inicialmente ha sido diseñado para poder ser ejecutado en Colab y para una optimización se activó el entorno de ejecución en GPU. Colab ya trae instaladas muchas de las librerías utilizadas en este proyecto, solo fue necesario instalar adicionalmente:

  • mtcnn (Detector de rostros: Multi-Task Cascaded Convolutional Neural Network)
!pip install mtcnn

Archivos necesarios para la ejecución 🛠️

📌 MODELOS:

  • models/mask_net.hdf5 : Model CNN entrenado desde cero con Keras.

  • models/best_model_conv_ft2.model : Modelo CNN pre-entrenado de ResNet18 en Pytorch, del cual se mantuvo la estructura de la red y se volvieron a entrenar los pesos en todas las capas.

📌 UTILITARIOS:

  • utils/bounding_box.py : Utilitario para incrementar en un porcentaje dato el cuadro delimitador de un rostro en una imagen.

  • utils/detect_faces.py : Utilitario para detectar las caras en las imágenes o frames de videos.

  • utils/predictor_keras.py : Utilitario para generar las predicciones con el modelo entrenado de Keras.

  • utils/predictor_pytorch.py : Utilitario para generar las predicciones con el modelo entrenado con Pytorch.

📌 ARCHIVO PRINCIPAL:

  • MaskDetector.ipynb : Notebook con las pruebas end-to-end para generar sobre imágenes y videos las predicciones de si una persona está usando o no una mascarilla.

📌 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 ⚙️

  • Levantar el notebook principal en Colab
  • Cargar los archivos necesarios al notebook
  • Validar que el Tipo de Entorno de Ejecución está en GPU
  • Ejecutar todo el notebook

Archivos Adicionales 📁

  • notebooks/CNN_Zero_ProyectoFinal.ipynb : Notebook para generar el modelo entrenado desde cero con Keras para predecir si un rostro en una imagen tiene una mascarilla o no.

  • notebooks/VC_MaskDetector_Transfer Learning.ipynb : Notebook con Transfer Learning del modelo pre-entrenado de ResNet18 con Pytorch para predecir si un rostro en una imagen tiene una mascarilla o no.

  • dataset/ : Este folder contiene los datasets utilizados para entrenar y validar los modelos clasificadores del uso de la mascarilla. Repositorio Fuente: facial_mask_classifier (https://bit.ly/3beau7v)

Documentación de apoyo 📚

Face Detection with Deep Learning using Multi Tasked Cascased CNN: https://towardsdatascience.com/face-detection-with-deep-learning-using-multi-tasked-cascased-cnn-8721435531d5

Basic classification: Classify images of clothing: https://www.tensorflow.org/tutorials/keras/classification

Train and evaluate with Keras: https://www.tensorflow.org/guide/keras/train_and_evaluate

Image classification from scratch in keras: https://towardsdatascience.com/image-detection-from-scratch-in-keras-f314872006c9

Transfer Learning for Computer Vision Tutorial: https://pytorch.org/tutorials/beginner/transfer_learning_tutorial.html

Autores ✒️

Licencia 📄

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

maskdectector's People

Contributors

davidfosca avatar jjrodcast avatar kevenrfc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.