Identificador de produtos organizados e desorganizados
- Tecnologias
- Algumas biblíotecas/módulos utilizados
- Sobre a aplicação
- Rodando a aplicação
- Apresentação da aplicação
- Node.js - para a criação do servidor (API Restul).
- ReactJS - para a criação da aplicação web.
- React Native - para a criação da aplicação mobile.
- Expo - plataforma para ajudar na criação da aplicação mobile.
- IBM Watson Visual Recognition - inteligência artificial de reconhecimento visual da IBM, para ajudar a detecção de produtos organizados e desorganizados.
- express - para criação do servidor (middleware).
- ibm-watson - para usarmos o watson na aplicação.
- MongoDB (mongoose) - banco de dados na Núvem.
- cors - para permitir que a API seja acessada pela aplicação web e mobile.
- multer - para salvar as imagens que foram enviadas pela câmera.
- socket.io - permite comunicação baseada em eventos bidirecionais em tempo real.
- react-router-dom - para criação rotas.
- React Icons - para adicionar ícones relacionado com o status de cada imagem do produto (organizado, desorganizado).
- axios - para fazer requisições HTTP para a API.
- socket.io-client - framework para comunicação em tempo real do lado cliente.
- filesize - para medir o tamanho de cada imagem que for enviada pela câmera.
- axios - para fazer requisições HTTP para a API.
- react-navigation - para criação rotas.
O Products Analyzer é uma aplicação web e mobile que identifica produtos organizados e desorganizados em "prateleiras e freezers de supermercado com uma câmera apontada para eles", usando IBM Watson Visual Recognition, para reconhecimento visual dos produtos.
O servidor é uma API Restful; ele é coração das aplicações web e mobile (câmera).
A aplicação web é para monitorar os produtos que são detectados pela câmera com a ajuda da inteligência artificial de reconhecimento visual.
A aplicação mobile é a simulação da câmera que ficaria fixada na frente dos produtos nos supermercados, é a partir dessa aplicação que é tirada uma foto do produto e enviada para aplicação web em tempo real.
- Primeiro, clone o repositório rodando
git clone https://github.com/ribeiromatheus/products-analyzer.git
no seu terminal favorito. - Depois de clonar, rode
npm install
ouyarn
na pasta backend, frontend e products-analyzer. - Vá para a pasta backend e crie uma pasta chamada tmp e dentro dela uma chamda uploads.
- Vá para a pasta products-analyzer, crie uma pasta dentro de src chamada credentials depois crie um arquivo json chamado baseUrl para que você possa adicionar seu ip seguido da porta do servidor (3333).
{
"ip": "http://<ip goes here>:3333"
}
- Crie uma instância Watson Studio, depois clique no botão Get Started.
- Faça o upload do arquivo e separe o dataset.zip em duas classes:
organizado
edesorganizado
. - Agora é só treinar o dataset.zip no Visual Recognition.
- Caso você tenha alguma dúvida, veja esse vídeo.
- Agora vá para a pasta backend e renomeie o arquivo
sample.env
para.env
e insira sua credenciais. - Execute o comando
npm run dev
ouyarn dev
para rodar o servidor (certifique-se de que você está na pasta backend). - Execute o comando
npm start
ouyarn start
para roda a aplicação web (certifique-se de que você está na pasta frontend). - Run
npm start
oryarn start
para roda a aplicação mobile app (certifique-se de que você está na pasta products-analyzer).
Você pode conferir o vídeo da aplicação aqui.
Você pode ler a documentção do projeto aqui.