Skip to main content
Balneário Camboriú - SC +55 (47) 99725 1117
Siga-nos:

Neste vídeo, apresento os resultados obtidos no experimento de detecção e contagem de piscadas com a webcam.

Para realizar este experimento, foi necessário coletar o contorno dos olhos através da detecção de pontos faciais do rosto e criar um pequeno controlador que verifica a proporção do olho aberto e fechado.  Este controlador verifica se o olho foi fechado e depois verifica se o olho voltou a estar aberto, ao realizar finalizar este processo contabiliza uma piscada.

A coleta dos pontos faciais foi realizada com a biblioteca OpenCV e Dlib, que por padrão informa 6 referências para cada olho. Os posts “Detecção de pontos faciais com OpenCV” e “Detecção de pontos faciais com Dlib“, detalham melhor esta coleta.

A proporção de olho aberto é calculada apenas dividindo a altura do olho pela largura do olho, conforme ilustrado na Fig 1. abaixo.

Fig 1. Informações utilizadas para calcular a proporção de olho aberto.

Caso você esteja se perguntando, “mas por que ele não utiliza apenas a informação da altura olho?”. Na imagem abaixo (Fig 2.) espero responder esta pergunta. Note, nesta imagem, que existem diversos tamanhos de olhos, se for considerado apenas a altura do olho aberto, para saber se o olho está fechando ou não, o controlador irá identificar piscadas apenas com um único tamanho de imagem de olho, e não para qualquer tamanho de olho encontrado.

Fig 2. Olhos com diferentes tamanhos na imagem.

Para calcular a largura do olho, basta calcular a distância euclidiana entre os pontos da lateral esquerda e lateral direita do olho. A Fig 3. ilustra o cálculo da distância euclidiana.

Fig 3. Fórmula distância euclidia.

E para calcular a altura dos olhos é preciso coletar o centro da parte superior e o centro da parte inferior do olho. O centro da parte superior é obtido somando os X e Y das posições 38 e 39 do olho e dividindo por 2, conforme Fig 1. E o centro da parte inferior é obtido da mesma forma, porém utilizando as posições 42 e 41. A Fig 4. ilustra todo o cálculo realizado para calcular a proporção do olho e a condicional para verificar se o olho está aberto e fechado.

Fig 4. Cálculo de proporção de olho aberto.

Todo o código fonte do projeto está disponível para replicação do experimento no link abaixo. Caso tenham dúvidas e sugestões de melhorias no post, deixe seu comentário abaixo.

Source:
https://github.com/visaocomputacionalexemplos/experimentos_faciais/tree/main/identificar_piscada

Nenhum comentário ainda!

Seu endereço de e-mail não será publicado