Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Конструктор LEGO нередко используют для создания корпуса какого-нибудь механизма с движком на «малинках». Чаще всего этот тандем используется в различных роботах, дронах, вездеходах. Энтузиаст Дэниел Уэст (Daniel West) пошел другим путем и создал машину с участием Raspberry Pi и LEGO для автоматической сортировки деталей этого конструктора. Естественно, на основе искусственного интеллекта. Без ИИ, наверное, и утюги скоро работать не смогут.
Под катом — описание механизма работы сортировщика, а также еще несколько любопытных проектов на базе «малинок».
Интересно, что сама машина для сортировки создана из 10 000 блоков LEGO! На ее создание ушло… два года.
Эта машина — настоящая Золушка от LEGO. Она в состоянии отсортировать любую деталь конструктора в один из 18 контейнеров со скоростью «один кубик за две секунды». Более того, сортировщик в состоянии распознать каждый из когда-либо созданных блоков LEGO, включая те, которые ему еще не попадались. Эта универсальность отличает систему от ранее созданных машин похожего назначения.
Что под капотом
Машина работает на следующем «железе»:
- Raspberry Pi 3, модель B+;
- Модуль камеры Raspberry Pi V2;
- 9 движков (управляемых через мультиплексор сервопривода, взаимодействующего с Raspberry Pi по I2C);
- 6 двигателей LEGO (управляемые контроллерами электромоторы L298N с использованием цифровых I/O-портов на Raspberry Pi).
Как уже было сказано, в основе сортировщика — алгоритмы искусственного интеллекта. В целом, довольно классическая сверточная нейронная сеть, которая используется для классификации изображений. Мы уже описывали в блоге на Хабре, как это помогает ученым в работе.
Обучение нейросети
Свою нейросеть Дэниел Уэст обучил, используя изображения 3D-моделей кубиков LEGO. При этом разработчик столкнулся с проблемой нехватки данных для обучения нейросети. Реальных качественных изображений было недостаточно, а синтетические изображения не давали корректных результатов. В итоге только комбинация синтетических и реальных изображений помогла добиться успеха. Нейросеть смогла с высокой точностью распознавать кубики LEGO, даже если ранее не взаимодействовала с ними.
К слову, для сбора данных энтузиаст оставил машину прогонять детальки через сканер на несколько дней. В итоге собрал датасет из приблизительно 300 000 изображений элементов LEGO без маркировки для обработки ИИ. Подробнее о работе ИИ и его обучении Дениэл рассказал в отдельном очень наглядном видео и описал процесс в тексте.
Лишь часть из 300 000 изображений, которые получил разработчик.
В качестве софта энтузиаст использовал Blender — открытое ПО для создания трехмерной компьютерной графики — и Tensor Flow, открытую программную библиотеку для машинного обучения от Google. Также в работе ему помогло сообщество мейкеров из конструктора LEGO — Rebrickable.
Run, деталька, run
Разработка — настоящая конвейерная машина в миниатюре. Масса деталек по гусеничному конвейеру поступает в так называемое «входное ведро». Здесь детальки идут одна за другой, чтобы на «опознание» поступал строго один блок LEGO.
Порядок достигается за счет вибрирующей платформы, которая работает на моторчике LEGO. Вибрируя, платформа распределяет детальки, добиваясь, чтобы они не лежали друг на друге и поступали на сканирование по одной.
Модуль камеры Raspberry Pi захватывает видео каждого блока, которое обрабатывает Raspberry Pi 3 Model B+ и отправляет по беспроводной сети на более мощный компьютер, где оперирует нейронная сеть, классифицируя детальки. Обработанные нейросетью данные отправляются обратно в сортировочную машину, чтобы она могла вытолкнуть деталь в один из 18 контейнеров, используя ряд самоуправляемых шлюзов.
Пока проект больше подходит под рубрику «Не пытайтесь повторить это дома», поскольку автор проделал огромную работу по обучению ИИ. Но, согласитесь, штука интересная.
Raspberry Pi в деле
А вот еще несколько последних интересных проектов с участием «малинки».
Сканер пленки RoboScan
Работать с пленкой все сложнее — сказывается все увеличивающаяся временная пропасть между технологиями. В проекте под названием RocoScan используется Raspberry Pi с цифровой зеркальной камерой. Устройство не только сканирует изображение со старой пленки, но и автоматизирует процесс записи изображений в отдельную папку.
Корпус для сервера в стиле Minecraft
Этот светящийся знакомый всем блок руды из игры Minecraft на самом деле является сервером Minecraft! Внутри — Raspberry Pi 4 вместе с SSD на 128 ГБ, на котором работает Paper MC SMP. Красота!
Отрезатель корочек
Устройство, которое мы заслужили! Если вы любитель идеальных сэндвичей, вы знаете, что в них нет места поджаренным и твердым корочкам. Эта машина на «малинке» исключит из вашей жизни рутинное избавление от бутербродных несовершенств.
Автоматизированный курятник
Очевидно, что это можно использовать не только для курятников. Но один энтузиаст автоматизировал открытие и закрытие дверей курятника, чтобы защитить свое хозяйство ночью. В основе — Raspberry Pi и несколько таймеров, которые инициируют открытие и закрытие дверей утром и вечером. А ваш курятник работает на «питоне»?
Есть ли у вас любимый проект на «малинке»? Делитесь в комментариях!