Brincar com Lego se torna cada vez mais legal à medida que sua coleção cresce, até o ponto em que sua pilha de tijolos de plástico se torna tão grande que é impossível encontrar a peça que você está procurando. Nesse momento, você precisa desenvolver um sistema de classificação ou fazer o que Daniel West fez e usar suas peças de Lego para construir uma máquina que classifique automaticamente o resto das peças para você.

Não é a primeira vez que o Lego é usado para construir uma engenhoca como essa. Mas todas as tentativas anteriores exigiram algum nível de pré-classificação e são muito limitadas quando se trata de categorizar as peças e colocá-las em caixas separadas. A máquina de West foi projetada com um mecanismo complexo que suporta 18 caixas e categorias diferentes de peças, mas seus recursos gerais permitem que elas sejam classificadas em milhares de categorias e caixas – supondo que alguém tenha peças suficientes para construir um dispositivo desses.

West estima que foram necessárias cerca de 10.000 peças de Lego para construir seu classificador, incluindo seis motores Lego, além de alguns outros componentes não-Lego, como servomotores, um Raspberry Pi, iluminação para a câmera e um laptop que alimenta a rede neural convolucional que identifica cada peça. Fazer com que a máquina aceite pilhas de peças, mas eventualmente apresente apenas um de cada vez à câmera, foi um grande desafio que West resolveu com um par de placas vibratórias que garante que as peças passem individualmente. A máquina em si levou seis meses para ser construída, mas a rede neural e o software por trás dela levaram dois anos e meio para serem aperfeiçoados.

Para treinar a rede neural para reconhecer as imagens de cada parte capturada pela câmera de vídeo do classificador, West precisava acessar um banco de dados de imagens de todas as peças que a Lego já produziu. Isso não é algo que a Lego compartilha prontamente com o público, e é impossível West ter encontrado e fotografado todas essas peças por conta própria. Sua solução foi confiar nas imagens geradas em 3D daquelas partes que os bancos de dados online, como LDraw.org e Rebrickable, criaram ao longo dos anos.

Fazer com que o software de reconhecimento de imagem combinasse a foto de uma peça tirada com iluminação regular em uma esteira em movimento feita de Lego a uma renderização 3D primitiva da mesma peça é praticamente impossível; as diferenças sutis seriam completamente confusas. Mas foi aí que a rede neural convolucional entrou em ação, ela aprendeu a combinar renderizações 3D de peças de Lego às fotos da coisa real e a uma velocidade que permite que a máquina de West processe aproximadamente duas peças a cada segundo.

Além de documentar detalhadamente a sua criação e tudo o que aprendeu no processo, West planeja escrever um artigo acadêmico sobre ela. O que ele não tem intenção de fazer é dar instruções para que os fãs de Lego construam seus próprios. Ele pode lançar o software de graça, mas vai deixar a máquina classificadora para a engenhosidade de outros entusiastas de Lego que terão que criar seus próprios mecanismos.