Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Robô de classificação de reciclagem com Google Coral


Você sabia que a taxa média de contaminação em comunidades e empresas chega a 25%? Isso significa que uma em cada quatro peças de reciclagem que você joga fora não é reciclada. Isso é causado por erro humano em centros de reciclagem. Tradicionalmente, os trabalhadores separam o lixo em diferentes lixeiras, dependendo do material. Os humanos cometem erros e acabam não separando o lixo de maneira adequada, levando à contaminação. À medida que a poluição e as mudanças climáticas se tornam ainda mais significativas na sociedade de hoje, a reciclagem desempenha um papel importante na proteção do nosso planeta. Ao usar robôs para separar o lixo, as taxas de contaminação diminuirão drasticamente, sem falar que serão muito mais baratas e sustentáveis. Para resolver isso, criei um robô de triagem de reciclagem que usa aprendizado de máquina para classificar entre diferentes materiais de reciclagem.

Demonstração:

Código:


Clone meu repositório GitHub para acompanhar este tutorial.

Etapa 1, obtendo os dados:


Para treinar o modelo de detecção de objetos que pode detectar e reconhecer diferentes materiais de reciclagem, usei o conjunto de dados trashnet que inclui 2527 imagens:

Aqui está uma imagem de exemplo:

Este conjunto de dados é muito pequeno para treinar um modelo de detecção de objetos. Existem apenas cerca de 100 imagens de lixo que são muito pequenas para treinar um modelo preciso, então decidi deixá-las de fora.

Você pode usar esta pasta do Google Drive para baixar o conjunto de dados. Certifique-se de baixar o arquivo dataset-resized.zip. Ele contém o conjunto de imagens que já foram redimensionadas para um tamanho menor para permitir um treinamento mais rápido. Se desejar redimensionar as imagens brutas de acordo com sua preferência, fique à vontade para baixar o arquivo dataset-original.zip.

Etapa 2, Rotulagem das imagens:


Em seguida, precisamos rotular várias imagens de diferentes materiais de reciclagem para que possamos treinar o modelo de detecção de objetos. Para fazer isso, usei o labelImg, software gratuito que permite rotular caixas delimitadoras de objetos em imagens.

Rotule cada imagem com o rótulo adequado. Este tutorial mostra como. Certifique-se de fazer cada caixa delimitadora o mais próximo possível da borda de cada objeto para garantir que o modelo de detecção seja o mais preciso possível. Salve todos os arquivos .xml em uma pasta.

Veja como rotular suas imagens:

Esta é uma experiência muito entediante e entorpecente. Ainda bem que já etiquetei todas as imagens! Você pode encontrá-lo aqui.

Etapa 3, treinamento:


Em termos de treinamento, decidi usar a aprendizagem por transferência usando o Tensorflow. Isso nos permite treinar um modelo decentemente preciso sem uma grande quantidade de dados.

Existem algumas maneiras de fazermos isso. Podemos fazer isso em nossa máquina desktop local na nuvem. O treinamento em nossa máquina local levará muito tempo dependendo da potência do seu computador e se você tiver uma GPU potente. Esta é provavelmente a maneira mais fácil na minha opinião, mas novamente com o lado negativo da velocidade.

Existem alguns pontos importantes a serem observados sobre a aprendizagem por transferência. Você precisa se certificar de que o modelo pré-treinado usado para o treinamento é compatível com o TPU Coral Edge. Você pode encontrar modelos compatíveis aqui. Usei o modelo MobileNet SSD v2 (COCO). Sinta-se à vontade para experimentar com outras pessoas também.

Para treinar em sua máquina local, eu recomendaria seguir o tutorial do Google ou o tutorial do EdjeElectronics se estiver executando no Windows 10. Pessoalmente, testei o tutorial do EdjeElectroncs e tive sucesso no meu desktop. Não posso confirmar se o tutorial do Google funcionará, mas ficaria surpreso se não funcionasse.

Para treinar na nuvem, você pode usar AWS ou GCP. Encontrei este tutorial que você pode experimentar. Ele usa a nuvem TPU do Google, que pode treinar seu modelo de detecção de objetos de forma super rápida. Sinta-se à vontade para usar a AWS também.

Independentemente de você treinar em sua máquina local ou na nuvem, você deve acabar com um modelo de tensorflow treinado.

Etapa 4, Compilando o modelo treinado:


Para que seu modelo treinado funcione com o Coral Edge TPU, você precisa compilá-lo.

Aqui está um diagrama para o fluxo de trabalho:

Após o treinamento, você precisa salvá-lo como um gráfico congelado (arquivo .pb). Em seguida, você precisa convertê-lo em um modelo Tensorflow Lite. Observe como diz “Quantização pós-treinamento”. Se você usou os modelos pré-treinados compatíveis ao usar a aprendizagem por transferência, não é necessário fazer isso. Dê uma olhada na documentação completa sobre compatibilidade aqui.

Com o modelo Tensorflow Lite, você precisa compilá-lo em um modelo Edge TPU. Veja os detalhes de como fazer isso aqui.

Modelo de detecção de reciclagem:


Se você não quiser passar pelo aborrecimento de treinar, converter e compilar o modelo de detecção de objetos, verifique meu modelo de detecção de reciclagem aqui.

Etapa 5, implantar o modelo:


A próxima etapa é configurar o Raspberry Pi (RPI) e o Edge TPU para executar o modelo de detecção de objeto treinado.

Primeiro, configure o RPI usando este tutorial.

Em seguida, configure o Edge TPU seguindo este tutorial.

Finalmente, conecte o módulo da câmera RPI ao raspberry pi.

Agora você está pronto para testar seu modelo de detecção de objetos!

Se você já clonou meu repositório, navegue até o diretório RPI e execute o arquivo test_detection.py:

python test_detection.py --model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03 / detect_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_03_03> / labels

Uma pequena janela deve aparecer e se você colocar uma garrafa de água de plástico ou outro material de reciclagem, ela deve detectá-lo assim:

Pressione a letra “q” no teclado para encerrar o programa.

Etapa 6, construir o braço robótico:


O braço robótico é um braço impresso em 3D que encontrei aqui. Basta seguir o tutorial de configuração.

É assim que meu braço ficou:

Certifique-se de conectar os pinos do servo aos pinos de E / S do Arduino em meu código. Conecte os servos de baixo para cima do braço nesta ordem:3, 11, 10, 9, 6, 5. Não conectá-los nesta ordem fará com que o braço mova o servo errado!

Teste para ver o funcionamento navegando até o diretório Arduino e executando o arquivo basicMovement.ino. Isso simplesmente agarrará um objeto que você colocar na frente do braço e o deixará cair para trás.

Etapa 7, Conectando o RPI e o braço robótico:


Primeiro precisamos montar o módulo da câmera na parte inferior da garra:

Tente alinhar a câmera o mais reto possível para minimizar erros ao pegar o material reciclado reconhecido. Você precisará usar o cabo longo de fita do módulo da câmera, conforme visto na lista de materiais.

Em seguida, você precisa fazer o upload do arquivo roboticArm.ino para a placa Arduino.

Finalmente, só precisamos conectar um cabo USB entre a porta USB do RPI e a porta USB do Arduino. Isso permitirá que eles se comuniquem via serial. Siga este tutorial sobre como configurar isso.

Etapa 8, toques finais:


Esta etapa é totalmente opcional, mas gosto de colocar todos os meus componentes em uma pequena caixa de projeto agradável.

É assim que parece:

Fonte:Robot Sorting Recycle With Google Coral

Processo de manufatura

  1. Model Train
  2. Python / MicroPython Sensor Logger com Planilhas Google
  3. Um robô móvel com prevenção de obstáculos baseada na visão
  4. Robô controlado pela Web Raspberry Pi com vídeo
  5. Desinfecção do robô com luz ultravioleta
  6. Obstáculos para evitar o robô com servo motor
  7. Controle de um robô Roomba com Arduino e dispositivo Android
  8. Dispositivos Bluetooth controlados por voz com OK Google
  9. Controle PID da Garra do Robô em Matlab / Simulink
  10. Centro de giro equipado com braço robótico