Reconhecendo máscaras
Este repositório contém um script em Python3 que reconhece se um rosto está ou não portando uma máscara!
O código utiliza da biblioteca OpenCV para o processamento das imagens e scikit-learn para o treinamento do modelo que classifica um rosto que porta ou não uma máscara.
O conjunto de imagens utilizadas para o treinamento do modelo pode ser encontrada na pasta imagens e foi retirado desse link.
Mais sobre o código
Em open_cam.py temos um script que viabiliza que a webcam do seu computador seja iniciada.
Nesse script carregamos um dataframe partindo do conjunto de imagens que temos e treinamos um modelo K-Nearest Neighbor para classificar os rostos.
Para o reconhecimento genérico das faces, utiliza-se o CascadeClassifier, já incluso dentro da biblioteca do OpenCV. De modo geral, esse método de treinamento utiliza de um arquivo .xml, que também já é incluso no pacote, para treinar um modelo que reconheça rostos de forma genérica, utilizando o método Viola-Jones e AdaBoost para o melhoramento do desempenho.
O algoritmo de Machine Learning escolhido para classificação foi o K-Nearest Neighbor, pois foi o que apresentou melhor desempenho diante o conjunto de teste e de validação. A ideia é que, em um próximo experimento, esse mesmo código possa ser refeito utilizando uma CNN!
Alguns links
Aqui vou deixar uns links de referência com o que pesquisei sobre o assunto para desenvolver o código!
- Documentação do OpenCV
- Documentação do scikit-learn
- Playlist de Python + OpenCV do canal Universo Discreto
- Detectando Faces em Vídeo com Deep Learning (vídeo do dono do repositório de onde tirei o conjunto de dados)
- Reconhecimento de Faces | Redes Neurais em PyTorch | Programando em 10 minutos (Peixe Babel)