GithubHelp home page GithubHelp logo

zakenobi / cvhall Goto Github PK

View Code? Open in Web Editor NEW
4.0 2.0 1.0 22.43 MB

Projet challenge EPF Montpellier pour la détection de masque et fièvre sur système embarquer

License: MIT License

Python 97.53% Shell 2.47%

cvhall's Introduction

Projet Challenge EPF : FMDE (Face Mask Detection EPF)


Project description and Context

In the context of the COVID pandemy of 2020, public places have become sensitive spots where it is important to apply health measures, including wearing a mask. This project aims to provide a Python application able to detect if people wear their mask or not using AI and measure their body temperature using a thermal camera. The application uses OpenCV and the Yolov4 algorithm for the detection and PyQt5 for the interface, it is designed to run on a Jetson Nano. Here are the different functionalities supported by the application :

  • Face mask detection and display of a green square around the user if the mask is worn, a red one if it isn't
  • Display of body temperature
  • Collecting data (number and date of the different activations) and display of statistic charts
  • Display of the project description and user manual
  • Sending emails in case of detection (functional but not implemented)

How to install

To install the application please run the install_dependencies_jetson_nano.sh file, with these commands :

foo@bar:~$ sudo chmod +x install_dependencies_jetson_nano.sh`

foo@bar:~$ sudo ./install_dependencies_jetson_nano.sh`

The following libraries will be installed :

  • PyQt5
  • OpenCV
  • Pandas
  • matplotlib
  • numpy
  • adafruit
  • pathlib
  • mailer
  • busio

User manual

To run the application, open the terminal and enter

python3 face_mask_detection.py

The interface is fairly easy to use, each button has a functionality :

  • The green camera button runs the camera and starts the mask detection
  • The red button shuts down the camera
  • The button titled 'Afficher température' displays a blue square on the screen where the maximum temperature is detected
  • The button 'Statistiques' displays a bar plot generated in function of the data collected by the application, the proportion between the two types of detection (the mask is worn or not) is also displayed.
  • The button 'Description du projet' displays the project description and a QR Code linked to a graphic user manual

The interface is made to fit a 1280 x 720 screen and is displayed in full screen by default. To exit the app, just press alt+f4.


A word on data collection

To display the statistic charts, the app is recording the different detections in a text file. This file is available at app\resources\data.csv and is pre-filled with data collected during the development phase.

The syntax of the CSV file is the following (positive detections means mask worn correcly, negative detection means mask not worn) :

Date ; Time ; number of positive detection ; number of negative detections ; Sum of positive detections ; Sum of negative detections

14/06/2000 ; 08 ; 13 ; 82 ; 1594 ; 1603

14/06/2000 ; 09 ; 9 ; 8 ;;

A functionality was designed to allow the application to take screenshots in case of negative detection but was deleted from the code for confidentiality reasons.

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.