Detecção Facial que reconhece se a pessoa esta usando mascara ou não
E aí, dev? Hoje eu vim te apresentar um projeto bem interessante utilizando Python, com o intuito de detectar pessoas sem máscara facial, pois afinal, após o início da pandemia causada pelo coronavírus, vários locais determinaram como obrigatório o uso deste item. Mas sem mais enrolação, vamos lá!
👋 Introdução
Vou mostrar como detectar, de forma automática, quem está ou não utilizando máscara em determinado ambiente. Como? Com visão computacional e aprendizagem de máquina (machine learning).
🤨 Alto lá! Precisamos saber de dois termos antes de prosseguir nesta jornada.
👉 Visão computacional é o processo de modelagem e replicação da visão humana usando software e hardware. Na prática, temos como exemplo a necessidade de se identificar se alguém está ou não utilizando máscara facial, ou seja, a máquina estará replicando a visão e percepção humana sobre a situação.
👉 Aprendizagem de máquina é um subcampo da Inteligência Artificial, que trabalha com a ideia de que máquinas podem aprender sozinhas a partir de uma enorme quantidade de dados. No exemplo a ser apresentado aqui, a máquina irá aprender a detectar a existência de máscara ou não a partir de um banco de imagens com pessoas utilizando máscaras.
🤔 O que eu preciso saber para entender melhor o assunto?
👉 Linguagem de programação Python; 👉 Pip; 👉 Numpy; 👉 Open CV;
Acompanhe até o final para ter dicas de materiais de estudo!
🤯 O que usei no projeto?
Antes de mais nada, você pode ter acesso ao projeto pelos links abaixo:
👉 Versão no Google Colab; 👉 Versão em código Python;
Agora vamos às dependências que você precisará instalar:
👉 Versão 3.0 ou superior do Python; 👉 Bibliotecas:
- Tensor Flow;
- Open CV;
- Numpy;
- Cython;
- Codecov;
- Pytest-cov;
- Pytesseract;
- Tesseract-ocr;
- Wand;
- Sklearn;
- Imutils;
- Matplotlib;
- PIL.
❗️ No repositório do projeto você consegue encontrá-las no arquivo requirements.txt a fim de baixá-las facilmente. Basta usar o seguinte comando no no terminal/cmd.
pip3 install -r requirements.txt
🦾 Organização do projeto
O projeto conta com 3 arquivos:
👉 Arquivo de treino: Para treinar o modelo, basta rodar o arquivo treino.py. ( É válido destacar que o projeto conta com banco de imagens com 690 imagens de pessoas com máscaras e 686, sem elas. Para adicionar uma imagem, basta colocá-la na pasta “dataset”).
👉 Arquivo de detecção através de uma imagem: Para realizar o processo de detecção, basta utilizar o arquivo detect_image.py e passar os argumentos -i e o path da imagem.
Exemplo:
python3 detect_image.py -i testes/1.png
👉 Arquivo de detecção através de um vídeo ou câmera: Para utilizar a câmera padrão de seu dispositivo, basta rodar o arquivo detect_camera.py.
Exemplo:
python3 detect_camera.py
Entretanto, caso queira usar uma câmera externa ou o aparelho eletrônico via droidcam, basta colocar o IP da câmera na linha 63.
Exemplo:
captura_video = cv2.VideoCapture("192.168.0.102:4224")
Por fim, para fazer uso de um vídeo, basta passar o path dele na mesma linha já citada.
📚 Hora do estudo, dev!
Abaixo, cito algumas fontes de estudo para que você se aventure no mundo incrível da visão computacional e machine learning.
👉 Python:
👉 Python Open CV:
👉 Numpy:
👉 Tensor FLow:
Resultados
- Perda e Acurácia
- Acurácia
- Perda
Créditos:
Esse projeto foi baseado no projeto de Gorpo (Como não sei o nome dele, fica o nick mesmo haha).
Revizão e correção do texto –> Luisa Manoela Romão Sales