Tutorial

Reconhecimento facial com TensorFlow e React

Nível
14 aulas
1h13

Assistir agora

1. Apresentando o Projeto

Sobre o Tutorial

Esse tutorial mostra o passo-a-passo para resolver o Mini Projeto Reconhecimento facial com React e TensorFlow.

Descrição do projeto

Você faz parte da equipe da Feely 🟡, uma hipotética startup cujo produto principal é um reconhecimento facial que capta as expressões e emoções dos seus usuário. 😃

Neste projeto prático e divertido, usaremos como tecnologias o React com Typescript, Vite, TailwindCSS, junto com a Face Api, uma biblioteca JavaScript de código aberto construída com base no famoso TensorFlow.

Com esta aplicação, você poderá ver em tempo real, por meio de sua webcam, como as expressões faciais se relacionam com diferentes emoções, como felicidade, tristeza, surpresa e raiva. É uma oportunidade para aprender e se divertir explorando o mundo do reconhecimento facial de maneira prática e interativa.

🤓 Antes de começar

Esse Mini Projeto contém um template inicial para você focar nas tecnologias principais. Dessa forma você não precisará de muito tempo para a parte de HTML e CSS.

As duas fontes que serão utilizadas (Fresca e Roboto Condensed) já estão instaladas e configuradas como display e secondary. Dá uma olhada no tailwind.config.js quando for utilizá-las

Caso você prefira começar do zero, não tem problema, basta apagar os arquivos.

🔨 Requisitos

  • Exiba a Webcam do usuário na tela.

    • Este é o primeiro requisito básico.
    • A webcam deverá ser exibida no local determinado no projeto.

    👀 Dicas:

    • Utilize a Media Stream API do browser, a implementação é relativamente simples.
  • Exiba um spinner enquanto a FaceAPI não detecta o rosto.
  • Utilize a FaceAPI para reconhecer a face do usuário e exibir seus contornos de forma dinâmica.

    • Existem alguns passos para que a FaceAPI funcione corretamente:

        1. Você precisará carregar os modelos do TensorFlow usando a FaceAPI. Os modelos já estão no respositório no caminho /public/models
        1. Em seguida, você irá fazer a detecção do rosto usando o método correspondente da FaceAPI
        1. Você também deverá usar o método da FaceAPI que "desenha" o a captura na tela. O desenho será feito em um <canvas> que estará sobreposto ao vídeo.
        1. Por fim, você deverá capturar a expressão mais provável da face detectada para que ela seja utilizada no card de resultado da aplicação.
        1. Não se esqueça que a detecção deve ocorrer em tempo real, isto é, deverá ocorrer a cada X segundos (ou milissegundos, como preferir).

    👀 Dicas:

    • Tire as dúvidas de uso na documentação Reconhecendo Expressões;
    • Após a captura é necessário desenhar o resultado no canvas;
    • Tire as dúvidas de uso na documentação Exibindo Resultados;
    • Talvez a forma mais eficaz para "aprender" a FaceAPI é rodando algum dos exemplos presentes no repositório.
  • Exiba um Emoji correspondendo a emoção do usuário e uma frase de efeito de acordo com a expressão:

    • Feliz: Você está feliz. Aproveite!
    • Triste: Você está um pouco triste hoje..
    • Brava: Por que a expressão brava?
    • Surpresa: Parece que há alguma surpresa por aí!
    • Medo: Do que você tem medo?
    • Enjoada: Sua expressão é enjoada.
  • Faça o deploy da sua solução e submeta no Codante.

🔍 Dicas

  • Estude sobre componentização, estados e passagem de Props para os componentes do React.
  • Esse Mini Projeto é uma ótima forma de treinar manipulação do DOM com refs no React caso você opte por componentizar algumas partes da aplicação.
  • Não deixe de ler com calma a documentação das dependências que foram usadas.

🎨 Design Sugerido

Temos uma sugestão de design no Figma. Mas claro, fique à vontade para montar a aplicação conforme a sua criatividade.

Figma

🔗 Link do design

👉🏽 Sobre esse mini-projeto

O que você irá praticar

Media Stream API (Browser)

  • Capturar e exibir uma webcam no navegador

React

  • Refs e manipulação do DOM
  • Componentização
  • useEffect e useState

TailwindCSS

  • Habilidades básicas de estilização com a biblioteca

TensorFlow (FaceApi)

  • Vamos utilizar uma biblioteca que está construída com base no TensorFlow
  • Praticar com as APIs de alto nível da biblioteca FaceAPI

Seu Instrutor

Roberto Cestari

Codante.io

Aulas

  1. Introdução
  2. 1.

    Apresentando o Projeto

    06:54
  3. O repositório do Projeto

    02:56
  4. Acessando a Webcam
  5. 3.

    Acessando a webcam com JS vanilla

    07:00
  6. Acessando a webcam em uma aplicação React

    06:23
  7. Reconhecimento Facial
  8. 5.

    Iniciando com o FaceAPI.js

    02:15
  9. Carregando os modelos de Machine Learning

    03:23
  10. Detectando uma face no Vídeo

    04:19
  11. Desenhando a detecção no Vídeo

    11:14
  12. Desenhando os Landmarks e Expressões Faciais

    02:13
  13. Capturando a expressão mais provável

    04:31
  14. Refatoração e Finalização
  15. Criando o card de resultado da expressão

    11:13
  16. Criando o estado de loading quando estiver carregando

    02:46
  17. Refatorando e limpando o código

    07:22
  18. 14.

    Finalização

    01:29