O construtor LEGO é frequentemente usado para criar a caixa de algum mecanismo com um motor em "framboesas". Na maioria das vezes, esse tandem é usado em vários robôs, drones, veículos todo-o-terreno. O entusiasta Daniel West foi por outro caminho e criou uma máquina com Raspberry Pi e LEGO para classificar automaticamente as partes desse conjunto. Naturalmente baseado em inteligência artificial. Sem IA, os ferros provavelmente não funcionarão em breve.
Sob o corte - uma descrição do mecanismo do classificador, bem como alguns projetos mais interessantes baseados em "framboesas".
Curiosamente, a própria máquina de classificação é feita de 10.000 blocos de LEGO! Demorou ... dois anos para criá-lo.
Este carro é uma verdadeira LEGO Cinderela. Ela é capaz de classificar qualquer parte do construtor em um dos 18 contêineres a uma velocidade de "um cubo em dois segundos". Além do mais, o classificador é capaz de reconhecer todos os tijolos de LEGO já criados, incluindo aqueles que ainda não foram encontrados. Essa versatilidade distingue o sistema de máquinas criadas anteriormente para uma finalidade semelhante.
O que está sob o capô
A máquina funciona no seguinte hardware:
- Raspberry Pi 3 Modelo B +
- Módulo de câmera Raspberry Pi V2;
- 9 motores (controlados através de um servo multiplexador que se comunica com o Raspberry Pi via I 2C );
- 6 motores LEGO (motores elétricos L298N controlados por controlador usando portas de E / S digitais no Raspberry Pi).
Como já mencionado, o classificador é baseado em algoritmos de inteligência artificial. No geral, uma rede neural convolucional bastante clássica que é usada para classificar imagens. Já descrevemos em um blog no Habré como isso ajuda os cientistas em seu trabalho.
Treinamento de rede neural
Daniel West treinou sua rede neural usando imagens de modelos 3D de peças de LEGO. Ao mesmo tempo, o desenvolvedor enfrentou o problema de falta de dados para treinar a rede neural. Imagens de qualidade real não eram suficientes e as imagens sintéticas não davam resultados corretos. No final, apenas uma combinação de imagens sintéticas e reais ajudou a alcançar o sucesso. A rede neural foi capaz de reconhecer blocos de LEGO com alta precisão, mesmo que não tenha interagido com eles anteriormente.
Aliás, para coletar dados, o entusiasta deixou o carro para passar as peças no scanner por vários dias. Como resultado, reuni um conjunto de dados de aproximadamente 300.000 imagens LEGO não marcadas para processamento de IA. Daniel falou com mais detalhes sobre o trabalho da IA e seu treinamento em um vídeo visual separado e descreveu o processo no texto .
Como software, o entusiasta usou o Blender, um software de código aberto para a criação de gráficos de computador 3D, e o Tensor Flow, uma biblioteca de software de aprendizado de máquina de código aberto do Google. Ele também foi ajudado em seu trabalho pela comunidade de fabricantes do construtor LEGO - Rebrickable.
Corra, detalhe, corra
O desenvolvimento é uma verdadeira máquina de transporte em miniatura. A massa das peças é alimentada através do transportador de esteira para o chamado "balde de entrada". Aqui as peças vão uma após a outra, de forma que estritamente um bloco de LEGO é enviado para "identificação".
O pedido é realizado por uma plataforma vibratória movida por um motor LEGO. Por meio da vibração, a plataforma distribui as peças, garantindo que não fiquem em cima umas das outras e venham para a digitalização uma a uma.
O módulo de câmera Raspberry Pi captura o vídeo de cada bloco, que processa o Raspberry Pi 3 Modelo B + e o envia sem fio para um computador mais potente, onde opera uma rede neural, classificando as peças. Os dados processados pela rede neural são enviados de volta para a máquina de triagem para que ela possa empurrar a peça para um dos 18 contêineres usando uma série de gateways automáticos.
Até agora, o projeto é mais adequado sob o título "Não tente isso em casa", porque o autor fez um ótimo trabalhopara treinamento de IA. Mas, você vê, a coisa é interessante.
Raspberry Pi em ação
E aqui estão alguns projetos interessantes mais recentes com a participação de "Malinka".
RoboScan Film Scanner
Trabalhar com filme está se tornando cada vez mais difícil devido ao fosso cada vez maior entre as tecnologias. Um projeto chamado RocoScan usa um Raspberry Pi com uma câmera SLR digital. O dispositivo não apenas digitaliza a imagem do filme antigo, mas também automatiza o processo de gravação de imagens em uma pasta separada.
Caixa de servidor estilo Minecraft
Este bloco de minério familiar brilhante do Minecraft é na verdade um servidor do Minecraft! Dentro está um Raspberry Pi 4 junto com um SSD de 128GB rodando o Paper MC SMP. A beleza!
Cortador de crosta
O dispositivo que merecemos! Se você é fã de sanduíches perfeitos, sabe que não há espaço para crostas torradas e crocantes. Esta máquina em "malinka" vai excluir de sua vida a rotina de se livrar das imperfeições do sanduíche.
Galinheiro automatizado
Obviamente, isso não pode ser usado apenas para galinheiros. Mas um entusiasta automatizou a abertura e o fechamento das portas do galinheiro para proteger sua fazenda à noite. É baseado em um Raspberry Pi e vários timers que iniciam a abertura e o fechamento das portas pela manhã e à noite. O seu galinheiro funciona em python?
Você tem um projeto favorito em Malinka? Compartilhe nos comentários!