Съдържание:

Робот за сортиране на рециклиране: 15 стъпки (със снимки)
Робот за сортиране на рециклиране: 15 стъпки (със снимки)

Видео: Робот за сортиране на рециклиране: 15 стъпки (със снимки)

Видео: Робот за сортиране на рециклиране: 15 стъпки (със снимки)
Видео: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Юли
Anonim
Image
Image
Получаване на данните
Получаване на данните

Знаете ли, че средният процент на замърсяване в общностите и бизнеса варира до 25%? Това означава, че едно от всеки четири парчета рециклиране, които изхвърляте, не се рециклира. Това се дължи на човешка грешка в центровете за рециклиране. Традиционно работниците ще сортират боклука в различни контейнери в зависимост от материала. Хората са длъжни да правят грешки и в крайна сметка да не сортират боклука правилно, което води до замърсяване. Тъй като замърсяването и изменението на климата стават още по -значими в днешното общество, рециклирането играе огромна роля в защитата на нашата планета. Използвайки роботи за сортиране на боклука, степента на замърсяване ще намалее драстично, да не говорим за много по -евтини и по -устойчиви. За да разреша това, създадох робот за сортиране на рециклиране, който използва машинно обучение за сортиране между различни материали за рециклиране.

Стъпка 1: Части

Уверете се, че имате следните части, които да следвате заедно с този урок:

3D отпечатани части (вижте стъпката по -долу)

Raspberry Pi RPI 4 4GB

Google Coral USB Accelerator

Arduino Uno R3

Модул за камера на Raspberry Pi V2

5V 2A DC захранване за стена

DC 12V захранване

SG90 9g Micro Servos 4бр.

M3 x 0,5 мм Самозаключваща се найлонова шестограбна гайка от неръждаема стомана 100бр.

Титанови винтове с глава на копче M3x20 10бр.

MG996R Аналогов серво мотор с метален редуктор 4бр.

Samsung 32GB Изберете Карта с памет

Adafruit Flex кабел за Raspberry Pi камера - 1 метър

М2 Мъжки женски месингов дистанционер Стойни винтове Гайка Асортимент Комплект

60 мм 12V вентилатор

6.69 "x 5.12" x 2.95 "кутия за проекти

Стъпка 2: 3D отпечатани части

Ще трябва да отпечатате 3D частите на роботизираната ръка. Тук можете да намерите всички файлове.

Стъпка 3: Код

Моля, клонирайте моето хранилище на GitHub, за да следвате заедно с този урок.

Стъпка 4: Получаване на данните

За да обуча модела за откриване на обекти, който може да открива и разпознава различни материали за рециклиране, използвах набора от данни trashnet, който включва 2527 изображения:

  • 501 стъкло
  • 594 хартия
  • 403 картон
  • 482 пластмаса
  • 410 метал
  • 137 боклук

Снимката по -горе е пример за такава върху изображенията от набора от данни.

Този набор от данни е много малък за обучение на модел за откриване на обект. Има само около 100 изображения на боклук, които са твърде малко, за да се обучи точен модел, затова реших да го пропусна.

Можете да използвате тази папка за дискове на Google, за да изтеглите набора от данни. Не забравяйте да изтеглите файла database-resized.zip. Той съдържа набора от изображения, които вече са преоразмерени до по -малък размер, за да позволят по -бързо обучение. Ако искате да промените размера на необработените изображения по ваш вкус, не се колебайте да изтеглите файла набора от данни-original.zip.

Стъпка 5: Етикетиране на изображенията

Етикетиране на изображенията
Етикетиране на изображенията

След това трябва да маркираме няколко изображения на различни материали за рециклиране, за да можем да обучим модела за откриване на обекти. За да направя това, използвах labelImg, безплатен софтуер, който ви позволява да маркирате граници за ограничаване на обекти в изображения.

Означете всяко изображение с подходящ етикет. Този урок ви показва как. Уверете се, че всяка ограничаваща кутия е възможно най -близо до границата на всеки обект, за да сте сигурни, че моделът за откриване е възможно най -точен. Запазете всички.xml файлове в папка.

Снимката по -горе показва как да маркирате вашите изображения.

Това е много досадно и уморително преживяване. За щастие за вас, вече маркирах всички изображения за вас! Можете да го намерите тук.

Стъпка 6: Обучение

По отношение на обучението реших да използвам трансферно обучение с помощта на Tensorflow. Това ни позволява да обучим прилично точен модел без голямо количество данни.

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

Трябва да се отбележат някои ключови неща при трансферното обучение. Трябва да се уверите, че предварително обученият модел, който използвате за обучение, е съвместим с TPU Coral Edge. Тук можете да намерите съвместими модели. Използвах модела MobileNet SSD v2 (COCO). Не се колебайте да експериментирате и с другите.

За да тренирате на вашата локална машина, бих препоръчал да следвате урока на Google или урока на EdjeElectronics, ако работите с Windows 10. Лично аз съм тествал урока по EdjeElectroncs и постигнах успех на моя работен плот. Не мога да потвърдя дали урокът на Google ще работи, но бих се изненадал, ако не работи.

За да тренирате в облака, можете да използвате AWS или GCP. Намерих този урок, който можете да опитате. Той използва облачните TPU на Google, които могат да обучат вашия модел за откриване на обекти супер бързо. Чувствайте се свободни да използвате и AWS.

Независимо дали тренирате на локалната си машина или в облака, трябва да завършите с обучен модел на тензорния поток.

Стъпка 7: Съставяне на обучения модел

Съставяне на обучения модел
Съставяне на обучения модел

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

По -горе е диаграма за работния процес.

След обучението трябва да го запишете като замразена графика (.pb файл). След това трябва да го преобразувате в модел Tensorflow Lite. Обърнете внимание как пише „Квантоване след обучение“. Ако сте използвали съвместими предварително обучени модели, когато използвате трансферно обучение, не е необходимо да правите това. Разгледайте пълната документация за съвместимостта тук.

С модела Tensorflow Lite трябва да го компилирате в модел Edge TPU. Вижте подробности за това как да направите това тук.

Стъпка 8: Модел за откриване на рециклиране

Ако не искате да преминете през проблемите с обучението, конвертирането и компилирането на модела за откриване на обекти, вижте моя модел за откриване на рециклиране тук.

Стъпка 9: Разгърнете модела

Разгърнете модела
Разгърнете модела

Следващата стъпка е да настроите Raspberry Pi (RPI) и Edge TPU, за да стартирате обучения модел за откриване на обекти.

Първо, настройте RPI, като използвате този урок.

След това настройте Edge TPU, следвайки този урок.

Накрая свържете модула на RPI камерата към малиновото пи.

Вече сте готови да тествате своя модел за откриване на обекти!

Ако вече сте клонирали моето хранилище, ще искате да отидете в директорията RPI и да стартирате файла test_detection.py:

python test_detection.py --модел recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite -етикети recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/labels.txt

Трябва да се появи малък прозорец и ако поставите пластмасова бутилка за вода или друг материал за рециклиране, той трябва да го открие като изображението по -горе.

Натиснете буквата "q" на клавиатурата, за да прекратите програмата.

Стъпка 10: Изградете роботизираната ръка

Изградете роботизираната ръка
Изградете роботизираната ръка

Роботизираната ръка е 3D отпечатана ръка, която намерих тук. Просто следвайте урока за настройването му.

Изображението по -горе показва как се оказа моята роботизирана ръка.

Уверете се, че сте свързали серво щифтовете към I/O пиновете на Arduino в моя код. Свържете сервомоторите отдолу нагоре на рамото в следния ред: 3, 11, 10, 9, 6, 5. Ако не го свържете в този ред, ръката ще премести грешното серво!

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

Стъпка 11: Свързване на RPI и роботизирана ръка

Свързване на RPI и роботизирана ръка
Свързване на RPI и роботизирана ръка

Първо трябва да монтираме модула на камерата в долната част на нокътя. Изображението по -горе показва как трябва да изглежда.

Опитайте се да подредите камерата възможно най -право, за да сведете до минимум грешките при хващане на разпознатия материал за рециклиране. Ще трябва да използвате дългия лентов кабел на модула на камерата, както се вижда в списъка с материали.

След това трябва да качите файла roboticArm.ino на дъската на Arduino.

И накрая, просто трябва да свържем USB кабел между USB порта на RPI и USB порта на Arduino. Това ще им позволи да комуникират чрез сериен. Следвайте този урок за това как да го настроите.

Стъпка 12: Последни щрихи

Последни щрихи
Последни щрихи
Последни щрихи
Последни щрихи

Тази стъпка е напълно незадължителна, но обичам да поставям всичките си компоненти в хубава малка кутия за проекти.

Изображенията по -горе показват как изглежда.

Можете да намерите кутията на проекта в списъка с материали. Току -що пробих някои дупки и използвах месингови стойки за монтиране на електрониката. Монтирах и 4 охлаждащи вентилатора, за да поддържам постоянен въздушен поток през RPI и TPU, когато е горещ.

Стъпка 13: Тичане

Вече сте готови да включите както роботизираната ръка, така и RPI! На RPI можете просто да стартирате файла recycle_detection.py. Това ще отвори прозорец и роботизираната ръка ще започне да работи точно както в демонстрационното видео! Натиснете буквата "q" на клавиатурата, за да прекратите програмата.

Не се колебайте да играете с кода и да се забавлявате!

Стъпка 14: Бъдеща работа

Надявам се да използвам R. O. S. за управление на роботизираната ръка с по -прецизни движения. Това ще позволи по -точно събиране на обекти.

Стъпка 15: Въпроси?

Не се колебайте да оставите коментар по -долу, ако имате въпроси!

Препоръчано: