Робот-художник с искусственным интеллектом

ROB-77194

Мы решили создать робота-художника с искусственным интеллектом. Идея такова: человек рисует в воздухе рукой упрощённый эскиз и говорит, что он нарисовал, робот распознает движения и слова, затем нейронная сеть генерирует изображение на основе полученного наброска и темы рисунка, а плоттер рисует его на листе бумаги. В результате пользователь получает уникальную открытку на память. Наш робот уникален за счет своей способности опираясь на пожелания пользователя, создавать уникальные изображения, сгенерированные нейросетью и рисовать их в своем стиле.
Весь проект расположен в старом чемодане и состоит из двух основных частей: перьевого плоттера и компьютера. 
В двух углах каркаса плоттера закреплены шаговые моторы и концевые выключатели. На подвижном портале закреплена печатающая головка с подъемным креплением маркера на сервоприводе. Также на каретке закреплен датчик автоуровня, а на основе плоттера – датчик кончика маркера. 
В компьютере расположены: процессор Intel Core i5 8400, 16 GB оперативной памяти и видеокарта GTX1070 с 8 GB видеопамяти. К нему подключены камера и микрофон.
Все остальные электрические компоненты подключены к плате Arduino Mega ADK с расширение CNC Shield с загруженной прошивкой Marlin. Плата подключена к компьютеру по протоколу UART.
  Наш проект является роботом, потому что каретка печатающей головки имеет 2 степени подвижности в координатном устройстве, а также он может реагировать на окружающую среду с помощью датчиков.
Для распознавания жестов используется библиотека Mediapipe и собственный сверточный классификатор. Для взаимодействия с пользователем при помощи библиотеки Tkinter реализован интерфейс. На нем отображается изображение с камеры с нарисованными ключевыми точками руки, а также есть кнопки взаимодействия. Когда пользователь закончил рисовать, изображение догенерируется нейросетью Stable Diffusion под управлением ControlNet-Scribble. Затем из него выделяется траектория алгоритмом на С++, который был разработан самостоятельно. Для ускорения работы этого алгоритма некоторые его циклы запускаются параллельно на графическом процессоре. Затем полученный массив точек траектории переводится в команды в формате G-code и отправляется на плоттер.

Файлы

Добавлен 04.07.2024