Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Утилизация сортировочного робота с помощью Google Coral

Знаете ли вы, что средний уровень загрязнения в сообществах и на предприятиях составляет до 25%? Это означает, что каждый четвертый предмет вторичной переработки, который вы выбрасываете, не перерабатывается. Это вызвано ошибкой человека в центрах утилизации. Традиционно рабочие сортируют мусор по разным контейнерам в зависимости от материала. Люди неизбежно совершают ошибки и в конечном итоге не сортируют мусор должным образом, что приводит к заражению. Поскольку загрязнение и изменение климата становятся все более значительными в современном обществе, переработка отходов играет огромную роль в защите нашей планеты. Используя роботов для сортировки мусора, уровень загрязнения резко снизится, не говоря уже о том, что он станет намного дешевле и экологичнее. Чтобы решить эту проблему, я создал робота для сортировки вторсырья, который использует машинное обучение для сортировки различных вторичных материалов.

Демо:

Код:

Пожалуйста, клонируйте мой репозиторий GitHub, чтобы следовать этому руководству.

Шаг 1. Получение данных:

Чтобы обучить модель обнаружения объектов, которая может обнаруживать и распознавать различные вторичные материалы, я использовал набор данных trashnet, который включает 2527 изображений:

Вот пример изображения:

Этот набор данных очень мал для обучения модели обнаружения объектов. Есть только около 100 изображений мусора, которых слишком мало для обучения точной модели, поэтому я решил не включать его.

Вы можете использовать эту папку на диске Google для загрузки набора данных. Обязательно загрузите файл dataset-resized.zip. Он содержит набор изображений, размер которых уже уменьшен для ускорения обучения. Если вы хотите изменить размер необработанных изображений по своему вкусу, загрузите файл dataset-original.zip.

Шаг 2. Маркировка изображений:

Затем нам нужно пометить несколько изображений различных вторсырья, чтобы мы могли обучить модель обнаружения объектов. Для этого я использовал labelImg, бесплатное программное обеспечение, которое позволяет помечать ограничивающие рамки объекта на изображениях.

Пометьте каждое изображение подходящей этикеткой. Из этого туториала Вы узнаете, как это сделать. Убедитесь, что каждая ограничивающая рамка расположена как можно ближе к границе каждого объекта, чтобы модель обнаружения была максимально точной. Сохраните все файлы .xml в папку.

Вот как пометить изображения:

Это очень утомительный и ошеломляющий опыт. К счастью для вас, я уже пометил все изображения для вас! Вы можете найти его здесь.

Шаг 3, обучение:

Что касается обучения, я решил использовать трансферное обучение с помощью Tensorflow. Это позволяет нам обучать достаточно точную модель без большого количества данных.

Есть несколько способов сделать это. Мы можем сделать это на нашем локальном настольном компьютере в облаке. Обучение на нашей локальной машине займет очень много времени в зависимости от мощности вашего компьютера и наличия мощного графического процессора. На мой взгляд, это, наверное, самый простой способ, но опять же с обратной стороной - скоростью.

Следует отметить несколько важных моментов, касающихся трансферного обучения. Вам необходимо убедиться, что предварительно обученная модель, которую вы используете для обучения, совместима с Coral Edge TPU. Здесь вы можете найти совместимые модели. Я использовал модель MobileNet SSD v2 (COCO). Не стесняйтесь экспериментировать и с другими.

Для обучения на локальном компьютере я бы порекомендовал следовать руководству Google или руководству EdjeElectronics, если он работает в Windows 10. Лично я протестировал руководство EdjeElectroncs и добился успеха на своем компьютере. Я не могу подтвердить, что учебник Google будет работать, но был бы удивлен, если он не работает.

Для обучения в облаке можно использовать AWS или GCP. Я нашел этот учебник, который вы можете попробовать. Он использует облачные TPU от Google, которые могут очень быстро обучить вашу модель обнаружения объектов. Не стесняйтесь использовать AWS.

Независимо от того, тренируетесь ли вы на локальном компьютере или в облаке, вы должны получить обученную модель тензорного потока.

Шаг 4. Компиляция обученной модели:

Чтобы ваша обученная модель могла работать с Coral Edge TPU, вам необходимо ее скомпилировать.

Вот схема рабочего процесса:

После обучения нужно сохранить его как замороженный график (файл .pb). Затем вам нужно преобразовать его в модель Tensorflow Lite. Обратите внимание, как написано «Квантование после обучения». Если вы использовали совместимые предварительно обученные модели при использовании трансферного обучения, вам не нужно этого делать. Ознакомьтесь с полной документацией по совместимости здесь.

С моделью Tensorflow Lite вам необходимо скомпилировать ее в модель Edge TPU. Подробнее о том, как это сделать, читайте здесь.

Модель обнаружения повторного использования:

Если вы не хотите тратить время на обучение, преобразование и компиляцию модели обнаружения объектов, ознакомьтесь с моей моделью обнаружения повторного использования здесь.

Шаг 5. Разверните модель:

Следующим шагом является настройка Raspberry Pi (RPI) и Edge TPU для запуска модели обнаружения обученных объектов.

Сначала настройте RPI с помощью этого руководства.

Затем настройте Edge TPU, следуя этому руководству.

Наконец, подключите модуль камеры RPI к Raspberry Pi.

Теперь вы готовы протестировать свою модель обнаружения объектов!

Если вы уже клонировали мой репозиторий, вам нужно перейти в каталог RPI и запустить файл test_detection.py:

python test_detection.py --model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03 / detect_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03 /code

Должно появиться небольшое окошко, и если вы поместите пластиковую бутылку с водой или другой переработанный материал, оно должно обнаружить это следующим образом:

Нажмите на клавиатуре букву «q», чтобы завершить программу.

Шаг 6. Создание роботизированной руки:

Роботизированная рука - это рука, напечатанная на 3D-принтере, которую я нашел здесь. Просто следуйте инструкциям по настройке.

Вот так получилась моя рука:

Убедитесь, что вы подключили выводы сервопривода к выводам ввода-вывода Arduino в моем коде. Подключите сервоприводы снизу вверх рычага в следующем порядке:3, 11, 10, 9, 6, 5. Если не подключить его в этом порядке, рычаг будет перемещать неправильный сервопривод!

Проверьте, работает ли он, перейдя в каталог Arduino и запустив файл basicMovement.ino. Это просто захватит объект, который вы поместите перед рукой, и уроните его позади.

Шаг 7. Подключение RPI и роботизированной руки:

Сначала нам нужно прикрепить модуль камеры к нижней части зажима:

Постарайтесь выровнять камеру как можно прямее, чтобы свести к минимуму ошибки при захвате распознанного вторичного материала. Вам понадобится длинный ленточный кабель модуля камеры, как показано в списке материалов.

Затем вам нужно загрузить файл roboticArm.ino на плату Arduino.

Наконец, нам просто нужно подключить USB-кабель между USB-портом RPI и USB-портом Arduino. Это позволит им общаться через последовательный порт. Следуйте этому руководству, чтобы узнать, как это настроить.

Шаг 8, последние штрихи:

Этот шаг не является обязательным, но мне нравится складывать все свои компоненты в небольшую красивую коробку для проекта.

Вот как это выглядит:

Источник:Утилизация сортировочного робота с помощью Google Coral


Производственный процесс

  1. Модель поезда
  2. Регистратор датчиков Python / MicroPython с Google Таблицами
  3. Мобильный робот с функцией обхода препятствий на основе обзора
  4. Робот Raspberry Pi с веб-управлением и видео
  5. Дезинфекция робота ультрафиолетовым светом
  6. Робот с сервомотором избегает препятствий
  7. Управление роботом Roomba с помощью Arduino и устройства Android
  8. Устройства с голосовым управлением Bluetooth с OK Google
  9. ПИД-управление захватом робота в Matlab / Simulink
  10. Токарный центр с манипулятором