Giter Club home page Giter Club logo

emotion's Introduction

Emotion

Este projeto consiste-se na detecção de emoções a partir da webcam, é util caso seja utilizado como complemento de algum sistema, possibilitando a detecção da emoção de um usuário acerca de uma determinada atualização no software, ou satisfação na utilização de alguma funcionalidade contida no sistema.

O que é Deep Learning?

É uma técnica muito específica de Machine Learning, e consequentemente de Inteligência artificial. É uma maneira de implementar a técnica específica, que usa as chamadas redes neurais artificiais, correspondentes a uma classe de algoritmos de machine learning. Sendo assim, temos que Deep Learning, é uma técnica de Machine Learning, baseada em redes neurais artificiais.

O que é uma Rede Neural Convolucional?

No contexto de inteligência artificial e aprendizagem de máquina, uma Rede Neural Convolucional (Do inglês - Convolutional Neural Network) é uma classe de rede neural artificial do tipo feed-forward, que vem sendo aplicada com sucesso no processamento e análise de imagens digitais. Neste projeto fora utilizado o MobileNet. Mobilenet é uma simplificação de redes neurais para possibilitar o seu uso em aplicações web. Eles foram inicialmente projetados para economizar recursos computacionais. O nível de precisão de uma MobileNet é menor que as redes neurais tradicionais, para agilizar o tempo de processamento e economizar recursos.

O que é o Tensorflow.JS?

TensorFlow é uma biblioteca de código aberto para aprendizado de máquina aplicável a uma ampla variedade de tarefas. É um sistema para criação e treinamento de redes neurais para detectar e decifrar padrões e correlações, análogo, porém não idêntico à forma como humanos aprendem e raciocinam. Ele é usado tanto para a pesquisa quanto produção no Google. O TensorFlow foi desenvolvido para ter suporte de várias linguagens. A linguagem suportada e utilizada neste projeto foi o JavaScript, porém o melhor suporte obtido pela biblioteca é na linguagem Python.

Como testar o projeto?

Entre na pasta app e execute o comando:

docker-compse up --build

Em outro terminal, entre na pasta server e execute o mesmo comando:

docker-compse up --build

Acesse a porta 8080:

http://localhost:8080

Faça o treinamento selecioando as opções: Angry, Neutral ou Happy. Em seguida vá para o modo de teste, clique no botão 'Treine o modelo' e o resultado aparecerá logo abaixo, existe um dashboard com a contagem dos resultados.

Para acessar o dashboard acesse com a rota:

http://localhost:8080/dashboard

Próximos passos

A equipe traçou os seguintes objetivos de evolução para o projeto:

  • Lançar v0.2 - No atual momento, para realizar um treinamento, as imagens devem ser tiradas pelo próprio usuário. A ideia é que no futuro, assim que o programa for inicializado, ele utilize um banco de imagens para realizar um treinamento automático.

  • Lançar v0.3 - O passo seguinte seria realizar o deploy da aplicação, para que seja possível os usuários contribuirem com o treinamento, tornando nossa base imagens maior e a classificação cada vez melhor, além de facilitar o acesso dos usuários a aplicação.

Caso queira ajudar na evolução do projeto, confira o tópico Quero ajudar! Como contribuir?

Conheça nossa equipe

Membro E-mail Github Matricula
Lucas Siqueira [email protected] lucassiqz 15/0137567
Lucas Lermen [email protected] lucasLermen 16/0012961
Lucas Macedo [email protected] lukassxp 15/0137397
Matheus Rodrigues [email protected] matheus-rn 16/0015294
Vitor Leal [email protected] vitorl-s 16/0148375

Quero ajudar! Como contribuir?

Sua ajuda é muito bem vinda! O guia com todos os passos para contribuir ao Emotion se encontra aqui e não esqueça de seguir nosso código de conduta, para conferir basta clicar aqui.

Licença

Esse projeto utiliza a licença MIT. Para mais informações clique aqui

Referências

https://en.wikipedia.org/wiki/Convolutional_neural_network
https://en.wikipedia.org/wiki/TensorFlow
https://www.sas.com/pt_br/insights/analytics/deep-learning.html
https://blog.fellyph.com.br/javascript/o-que-e-mobilenet/

emotion's People

Contributors

lucaslermen avatar lucassiqz avatar lukassxp avatar matheus-rn avatar vitorl-s avatar

Watchers

 avatar  avatar  avatar

Forkers

matheus-rn

emotion's Issues

Configurar ambiente de desenvolvimento

Descrição:

Para melhorar a produtividade da equipe, será realizado o isolamento do ambiente de desenvolvimento.

Tarefas

Lista de tarefas para serem realizadas.

  • Criar dockerfile
  • Criar docker-compose

Avaliação

A avaliação é baseada nos 5 seguintes critérios objetivos booleanos:

  1. Proposta
    A proposta do projeto é relevante para uma comunidade, em sentido que, a aplicação dessas tecnologias podem trazer algum diferencial positivo para a comunidade que serve.

  2. Apresentação
    Julga o preparo do arquivo README.md para apresentar o problema, o raciocínio e a solução apresentada pelo projeto, assim como possíveis comparações com outras soluções.

  3. Organização
    Criação das issues para demonstrar as tarefas, bugs e novas features do projeto, de forma a deixar aberto e claro para a comunidade quais são os desafios do projeto e como ela pode contribuir.

  4. Roadmap
    Demonstrar por meio de milestones de versões do projeto, como está programada a evolução da solução.

  5. Tecnica
    Aplicação objetiva dos conhecimentos adquiridos em sala de aula.

Proposta Apresentação Organização Roadmap Técnica
1 1 1 0 0
ok ok, mas poderia ter um gif animado no readme pra facilitar a visualização ok faltou um roadmap ou milestones para elencar os próximos passos Não encontrei a parte que treina e utiliza a rede neural

[DEV] Realizar treinamento automatico ao iniciar a aplicação

Descrição:

Para evitar a necessidade de o usuário da aplicação ter sempre que realizar manualmente o treinamento, será feito um treinamento automático com outras imagens ao inicializar a aplicação.

Tarefas

Lista de tarefas para serem realizadas.

  • Procurar imagens para treinamento
  • Categorizar imagens

[DOC] Criar Código de Conduta

Descrição:

Descrever código de conduta no repositório

Tópicos do documento

Lista de tópicos para serem realizadas.

  • Promessas
  • Padrões
  • Responsabilidades
  • Escopo
  • Aplicação
  • Atribuição

[DOC] Criar readme

Descrição:

Disponibilizar um readme com informações relevantes para novos visitantes

Tópicos do documento

  • Descrição sobre o projeto
  • Integrantes do grupo
  • Como executar o projeto
  • Como contribuir
  • Licença
  • Referencias

[DOC] Criar template de pull request

Descrição:

Para padronizar os pull request criadas neste repositório serão disponibilizado templates.

Tópicos do documento

Lista de tópicos para serem realizadas.

  • Espaço para linkar a issue resolvida
  • Espaço para adicionar imagem caso necessário

[DOC] Alteração da Licença para MIT

Descrição:

Alteração da Licença para MIT

Tópicos do documento

Lista de tópicos para serem realizadas.

  • Criação da licença
  • Alterar a licença

[DOC] Criar issue templates

Descrição:

Para padronizar as issues criadas neste repositório serão disponibilizado templates.

Tarefas

  • Template issue de documentação
  • Template issue de desenvolvimento
  • Template issue de sugestão de melhoria
  • Template issue de bug

[DEV] Configurar rotas

Descrição:

Deve ser feita a configuração das rotas home e dashboard

Tarefas

Lista de tarefas para serem realizadas.

  • Home
  • Dashboard

Comentários

No dashboard contém o acompanhamento das emoções registradas

[DOC] Criar guia de contribuição

Descrição:

O documento terá como finalidade auxiliar pessoas que desejam contribuir com o projeto á seguir os padrões.

Tópicos do documento

  • Descrição
  • Fluxo de trabalho
  • Politica de branch
  • Criação de issues

[DEV] Criar home page

Descrição:

Desenvolver a pagina principal da aplicação

Tarefas

Lista de tarefas para serem realizadas.

  • Viewer da webcam.
  • Seleção de opções(Treinamento e Teste)
  • Capturar a imagem da webcam
  • Classificar imagem

Comentários

Após classificar o resultado, ele deve ser exibido na tela

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.