Introduction: Colec.te - Lixeira Inteligente Qualcomm Dragonboard 410c + OpenCV
A nossa lixeira inteligente consiste na separação automática do lixo. Através de uma webcam, ela identifica o tipo de lixo e o deposita no compartimento adequado para posteriormente ser reciclado.
Step 1: Lixo, Um Problema Mundial.
Um dos principais problemas encontrado no meio urbano, especialmente nas grandes cidades é o lixo sólido, resultado de uma sociedade que a cada dia consome mais.
Para ter uma noção mais ampla do problema tomemos a cidade de São Paulo como exemplo, em média cada pessoa produz diariamente entre 800 g a 1 kg de lixo diário, ou de 4 a 6 litros de dejetos, por dia são gerados 15.000 toneladas de lixo, isso corresponde a 3.750 caminhões carregados diariamente.
Em um ano esses caminhões enfileirados cobririam o trajeto entre a cidade de São Paulo e Nova Iorque, ida e volta.
Step 2: Por Que Separar O Lixo?
Com a separação dos lixos fica mais fácil e rápida a reciclagem do material.
A reciclagem reduz consideravelmente os casos de doenças e mortes devido às enchentes e acúmulo de lixo em locais urbanos, diminui impactos sobre o meio ambiente e ajuda a cidade se tornar mais limpa.
Step 3: Qual a Solução?
Nossa solução é uma Lixeira feita com materiais também recicláveis que analisa o tipo de lixo e o descarta no compartimento correto.
O reconhecimento é através de uma câmera que utiliza um banco de dados de imagens e formas.
Há nela um algoritmo com a tecnologia de aprendizagem automática capaz de aprender e reconhecer o material do objeto descartado (papel, metal, plástico, vidro ou outros).
Após a detecção e classificação do objeto, um sinal é enviado para um motor que move uma esteira, posiciona no local adequado e outro motor é acionado para fazer o despejo.
Step 4: Quais As Tecnologias Utilizadas?
Software:
- OpenCV
- Haar cascade classifier
- Python
- MRAA
- Linux (Debian)
Hardware:
- Dragonboard 410c
- 96board Mezzanine
- Motors DC
- Driver Motor Ponte H L298N
- Fonte ATX 230W
- Webcam
Step 5: Algoritmos E Códigos
Parte 1 - OpenCV, Statistic
Como o treinamento para reconhecer os 5 tipos de materiais descritos no Step 3 demoraria muito, decididor afunilar o problema e detectar apenas latas e garrafas de plástico para comprovar a prova do conceito. Essa detecção ocorreu nos seguintes passos.
1 - Treinamento: Foram utilizadas 20 imagens divididas entre garrafas e latas
2 - Detecção:
2.1 - Converter imagem para o espaço de cor HSV. Aumentar 'V' por um fator de 2 com o objetivo de ter features mais visíveis.
2.2 - Encontrar gradiente de Sobel nos eixos x e y.
2.3 - Computar a magnitude com iguais pesos em ambas as direções.
2.4 - Aplicar o método de Otsu na imagem detectada pela câmera..
2.5 - Aplicar Closing na imagem detectada pela câmera.
2.6 - Aplicar o detector de bordas Canny
2.7 - Calcula a transformada de linha de Hough
2.8 - Enquadrar bordas do objeto num retângulo.
2.9 - Checar proporção largura x altura para comparação com o banco de dados. No banco estão armazenados diversos modelos positivos e negativos.
3 - Separação: Dado a saída da etapa anterior (garrafa ou lata), movemos a esteira (motor) para o lado esquerdo ou direito despejando o objeto e acendendo um LED para indicar que o processo ocorreu com sucesso.
3.1 - Devido a tensão de saída da DragonBoard ser de apenas 1.8V nos pinos digitais e os drivers dos motores requererem uma tensão de entrada de no mínimo 5 V, utilizamos as saídas 12 V de uma fonte ATX de 230 W.
3.2 - Nesta etapa utilizamos o mraa para mapear os dois polos do motor em pinos de entrada na mezzanine board para podermos girar a esteira em ambas as direções.
Obs.: É importante deixar claro que o mapeamentos dos pinos da mezzanine board deve estar liberado no diretório /sys/class/gpio e que o código seja executado como root (sudo).
4 - Armazenamento de dados:
Todas as informações detectadas são enviadas para uma instância da AWS IoT onde os dados podem ser acessados pelas pessoas competentes e tomar ações necessárias. Essas dados são trocados utilizando o protocolo MQTT onde é possível o envio e recebimento de informações de forma bidirecional.
Step 6: Imagens Do Protótipo Em Construção. (Versões 1.0 E 2.0)
Step 7: Autores Do Projeto
Da esquerda pra direita:
- David Carvalho
- Lucas Azevedo
- Rodrigo Alves
- Larissa Lages
- Manoela Vieira
- Bianca Lisle
- Andréa Duque
Agradecimentos:
Angelo Brito, Thiago Pinheiro, Heitor Araújo e à todos que nos ajudaram diretamente e indiretamente.