Índice:

Reconhecimento e identificação facial - Arduino Face ID usando OpenCV Python e Arduino: 6 etapas
Reconhecimento e identificação facial - Arduino Face ID usando OpenCV Python e Arduino: 6 etapas

Vídeo: Reconhecimento e identificação facial - Arduino Face ID usando OpenCV Python e Arduino: 6 etapas

Vídeo: Reconhecimento e identificação facial - Arduino Face ID usando OpenCV Python e Arduino: 6 etapas
Vídeo: Face Recognition and Identification | Arduino Face ID using openCV python and Arduino. 2024, Novembro
Anonim
Image
Image

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

Acesso à webcam
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

Identificação de rosto
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

Coleção de dados
Coleção 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

Reconhecimento facial
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: