Que tal criar sua própria aplicação de reconhecimento facial e dar vida às suas próprias expressões e emoções? 😃
Neste projeto prático e divertido, usaremos como tecnologia o Vite, React JS, Styled Components, 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. Vamos começar!
Esse Mini Projeto contém um boilerplate inicial, ou seja, algumas partes do código já estão prontas para que você possoa focar nas tecnologias principais.
Caso você prefira começar do zero, não tem problema, basta utilizar outra branch ou apagar os arquivos.
Caso você utilize o boilerplate, atente-se à estrutura do código.
-
Exiba a Webcam do usuário na tela.
- A webcam deverá ser exibida nas dimensões de 600px por 450px.
- Exiba o texto Carregando vídeo... enquanto a câmera não é ativada.
👀 Dicas:
- Utilize a biblioteca
react-webcamque já está instalada no projeto. - Utilize o arquivo /src/components/WebCam
-
Utilize a
FaceAPIpara reconhecer a face do usuário e exibir seus contornos de forma dinâmica.- Exiba o texto Processando detecção... enquanto a FaceAPI não detecta o rosto.
👀 Dicas:
- No arquivo
/utils/faceApi.jsvocê irá desenvolver a lógica necessária; - A função loadModels já está implementada importando os modelos de dados necessários;
- Implemente a funcão
faceDetectione utilize a documentação como base;- 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;
-
Com base na detecção da face, exiba a emoção do usuário. Foque em 3 principais emoções:
Feliz,TristeeNeutro.- Utilize as condições abaixo como base:
- Se
happyfor maior que0.7exiba'Você parece feliz!'; - Se
sadfor maior que0.1exiba'Você parece triste!'; - Se nenhuma opção for atendida exiba
'Você parece normal.';
- Se
- Exiba um Emoji correspondendo a emoção do usuário.
- Utilize as condições abaixo como base:
-
Faça o deploy da sua solução e submeta no Codante.
- Crie um alerta de Erro inicialmente caso o site não tenha acesso a webcam com a seguinte frase
Não conseguimos acessar sua webcam!. Você pode utilizar a biblioteca sweetalert2 para exibir o alerta customizado; - Desenvolva novas reações e mensagens para as emoções de
angryesurprised;
O projeto com o design inicial já estará disponível para você na branch principal do repositório. Sua responsabilidade será apenas de implementar a lógica de acordo com o passo a passo acima.
- Estude sobre componentização, estados e passagem de Props para os componentes do React.
- Estude sobre renderização condicional para os componentes do React.
- Estude sobre Styled Components caso queria aprimorar ou modificar os estilos sugeridos.
- Não deixe de ler com calma a documentação das dependências que foram usadas.
Temos uma sugestão de design no Figma. Entretanto, fique à vontade para montar a aplicação conforme a sua criatividade.
- Tecnologias:
React JS;Styled Components;react-webcam;face-api.js;