Índice:
- Etapa 1: acesso à webcam
- Etapa 2: Identificação de rosto
- Etapa 3: coleta de dados
- Etapa 4: Treinamento
- Etapa 5: reconhecimento facial
- Etapa 6: Programação do Arduino
Vídeo: Reconhecimento e identificação facial - Arduino Face ID usando OpenCV Python e Arduino: 6 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
O reconhecimento facial, também conhecido como ID facial, é um dos recursos mais importantes dos telefones celulares atualmente.
Então, eu tinha uma pergunta "posso ter uma identificação de rosto para meu projeto Arduino" e a resposta é sim …
Minha jornada começou da seguinte maneira:
Etapa 1: acesso à webcam
passo 2: identificação facial.
passo 3: coleta de dados
Etapa 4: Treinamento
passo 5: reconhecimento facial
etapa 6: Programação do Arduino
Vou explicar todas as etapas abaixo. Espero que isso ajude você.
Etapa 1: acesso à webcam
O primeiro passo para o reconhecimento facial era ter acesso a uma câmera ou visão computacional. Como a Índia está bloqueada, a solução mais barata que encontrei foi usar a webcam do meu computador, a qual tive acesso com um programa python usando o módulo openCV.
Você pode estar pensando o que é OpenCV, não é?
OpenCV (Open Source Computer Vision Library) é uma biblioteca de software de visão computacional e aprendizado de máquina de código aberto. O OpenCV foi construído para fornecer uma infraestrutura comum para aplicativos de visão computacional e para acelerar o uso da percepção da máquina em produtos comerciais.
Se o Opencv estiver instalado no seu computador, você está pronto para continuar. Caso contrário, siga esta etapa.
Abra o prompt de comando e digite "pip install opencv".
Aviso: Você pode obter um erro, pois "'pip' não é reconhecido como um comando interno ou externo". para o qual você precisa adicionar o caminho de sua instalação pip para sua variável de sistema PATH. Percorra este post, ele pode te ajudar.
stackoverflow.com/questions/23708898/pip-i…
Assim que o OpenCV estiver instalado, podemos prosseguir … Para verificar se está instalado corretamente, abra seu interpretador Python e importe a biblioteca. Veja a imagem acima que deve ser sua saída.
Baixe o arquivo python "AccessTo_webcam.py" e execute-o. Eu forneci todos os comentários necessários lá.
Pronto, agora você tem acesso à webcam. Bem feito. vamos prosseguir para a etapa 2.
Etapa 2: Identificação de rosto
com a ajuda do mesmo módulo OpenCV, temos que identificar se há um rosto no stream de vídeo ou não.
O OpenCV fornece um método de treinamento ou modelos pré-treinados chamados Cascade Classifier. Os modelos pré-treinados estão localizados na pasta de dados na instalação do OpenCV. Estou fornecendo esse arquivo, basta fazer o download e colocá-lo na pasta do projeto. A pasta onde o arquivo "AccessTo_webcam.py" está armazenado. Se você ainda não criou um, faça-o.
Baixe "haarcascade_frontalface_default" e coloque-o na pasta do projeto principal.
Baixe "Face_identification.py" e coloque-o na pasta principal do projeto. Toda a explicação é fornecida nele.
Agora você pode identificar os rostos em um stream de vídeo. Então, vamos prosseguir para a etapa 3.
Etapa 3: coleta de dados
Para reconhecer os rostos, precisamos treinar nosso programa Python. Para o qual precisamos de alguns dados.
A coleta de dados é a etapa mais fácil neste projeto. crie uma pasta chamada "image_data" na pasta principal do seu projeto. Dentro da pasta "image_data" crie algumas pastas adicionais com o nome da pessoa, onde armazenaremos os dados. por exemplo:
Na pasta "image_data", criei mais duas pastas chamadas "HRK" e "Yahiya". como mostrado na imagem acima.
Agora vá em frente, crie suas próprias pastas e nomeie-as.
Assim que as pastas forem criadas, comece a coletar imagens dessa pessoa específica. Eu recomendo coletar cerca de 20 imagens por pessoa. Você também pode adicionar mais imagens, mas certifique-se de que os dados coletados para todas as pessoas contenham o mesmo número de imagens. Isso ajuda a fornecer precisão.
é isso agora, vamos passar para a etapa 4.
Etapa 4: Treinamento
Em resumo, percorreremos todas as pastas e imagens que estão presentes na pasta "image_data" e criaremos um dicionário que conterá o ID do rótulo e o nome correspondente. Simultaneamente, vamos carregar a imagem para detectar o rosto em cada uma das imagens que chamamos de "Região de interesse" e criar um arquivo ".yml" que contém essa informação.
Supondo que você tenha dados coletados para as pessoas X e Y.
rotularemos a pessoa X como 1, que será seu ID de rótulo e o nome será o próprio X. Carregamos a imagem para encontrar seu rosto, ou seja, região de interesse e anexamos os dados a uma lista.
etapas semelhantes serão seguidas para a pessoa Y. E, finalmente, criaremos um arquivo ".yml".
Baixe o arquivo "face_trainer.py" e coloque-o na pasta principal do projeto. Todas as explicações necessárias são fornecidas no próprio arquivo.
Quando você executa este programa, ele percorre todas as imagens e cria dois arquivos chamados "labels.pickle" e "trainner.yml". Agora você treinou seu próprio modelo. então, vamos prosseguir para a etapa 5.
Etapa 5: reconhecimento facial
Se você executou todas as etapas corretamente, pode ter criado seus próprios dados treinados. Agora usaremos esses dados para reconhecimento de rosto.
Basicamente, carregaremos nossos modelos treinados no arquivo python, acessaremos nossa webcam e identificaremos Faces no stream de vídeo e faremos uma comparação ou previsão entre o rosto atual que é identificado no stream de vídeo e o modelo que foi treinado. se os dados forem correspondidos, então dizemos que a pessoa é reconhecida, é simples assim …
Baixe "face_recognise.py" e execute-o. Todas as informações necessárias são fornecidas nele. Agora seu rosto pode ter sido reconhecido. se a precisão não for boa, tente atualizar os dados. se você está pronto para ir, vamos prosseguir para a etapa 6 /
Etapa 6: Programação do Arduino
A última e última etapa é programar o Arduino, e fornecer um modo de comunicação entre o python e o Arduino. Para comunicação, usei "Comunicação Serial". Vá até o vídeo que vinculei acima para descobrir como funciona a comunicação serial e estabelecer uma. Você encontrará todos os arquivos necessários na descrição do vídeo.
Se você assistiu ao vídeo, deixe-me explicar o que eu fiz. Quando meu rosto é reconhecido, o ID do rótulo fornecido é 2. Assim que o ID do rótulo for 2, enviarei '1' como os dados seriais para meu Arduino. O que ligará meu circuito chaser de LED. Se o ID do rótulo for diferente de 2, enviarei '0' como os dados seriais, o que desligará meu circuito de perseguidor de LED.
Baixe o arquivo "ard_chaser.ino". É um programa simples de perseguidor de LED que usa comunicação serial.
Baixe simultaneamente "face_recogniser1.py" que estabelecerá a comunicação serial entre o Arduino e o programa python.
Ai está. Espero que você tenha aprendido algo novo. Inscreva-se no meu canal do youtube para obter mais informações relacionadas a python e Arduino. Compartilhe isso se você gostou. Continue apoiando.
Obrigada.
Recomendado:
Abellcadabra (sistema de travamento de porta com reconhecimento facial): 9 etapas
Abellcadabra (Sistema de Trava de Porta de Reconhecimento de Rosto): Durante a quarentena, tentei encontrar uma maneira de matar o tempo construindo um sistema de reconhecimento de rosto para a porta da casa. Eu chamei de Abellcadabra - que é a combinação entre Abracadabra, uma frase mágica com campainha que eu só pego a campainha. LOL
Espelho de reconhecimento facial com compartimento secreto: 15 etapas (com fotos)
Espelho de reconhecimento facial com compartimento secreto: Sempre fiquei intrigado com os compartimentos secretos sempre criativos usados em histórias, filmes e coisas do gênero. Então, quando eu vi o Concurso de Compartimento Secreto, decidi experimentar a ideia sozinho e fazer um espelho de aparência comum que abre um s
Fechadura de reconhecimento facial: 8 etapas
Fechadura de reconhecimento facial: Em construção há cerca de um mês, apresento a fechadura de reconhecimento facial! Tentei fazer com que parecesse o mais elegante possível, mas só consigo fazer tanto quanto um garoto de 13 anos. Esta fechadura de reconhecimento facial é operada por um Raspberry Pi 4, com uma batente portátil especial
Reconhecimento facial na prática: 21 etapas
Reconhecimento Facial na Prática: Este é um assunto que me fascina tanto que me faz perder o sono: Visão computacional, a detecção de objetos e pessoas através de um modelo pré-treinado
Reconhecimento facial Opencv: 4 etapas
Opencv Face Recognition: O reconhecimento facial é algo bastante comum hoje em dia, em muitas aplicações como telefones inteligentes, muitos dispositivos eletrônicos. Este tipo de tecnologia envolve muitos algoritmos e ferramentas etc. que usa algumas plataformas de SOC embutidas como o Raspberry