Satura rādītājs:

Pārstrādes šķirošanas robots: 15 soļi (ar attēliem)
Pārstrādes šķirošanas robots: 15 soļi (ar attēliem)

Video: Pārstrādes šķirošanas robots: 15 soļi (ar attēliem)

Video: Pārstrādes šķirošanas robots: 15 soļi (ar attēliem)
Video: Vebinārs - Mākslīgais intelekts kvalitātes nodrošināšanai ražošanā! 07.12.2023 2024, Jūlijs
Anonim
Image
Image
Datu iegūšana
Datu iegūšana

Vai zinājāt, ka vidējais piesārņojuma līmenis kopienās un uzņēmumos ir līdz 25%? Tas nozīmē, ka viens no katriem četriem atkritumu pārstrādes gabaliem netiek pārstrādāts. Tas ir saistīts ar cilvēku kļūdām pārstrādes centros. Tradicionāli strādnieki šķiro atkritumus dažādās tvertnēs atkarībā no materiāla. Cilvēkiem ir pienākums pieļaut kļūdas un galu galā pareizi nešķirot atkritumus, izraisot piesārņojumu. Tā kā mūsdienu sabiedrībā piesārņojums un klimata pārmaiņas kļūst vēl nozīmīgākas, otrreizējai pārstrādei ir milzīga loma mūsu planētas aizsardzībā. Izmantojot robotus atkritumu šķirošanai, piesārņojuma līmenis krasi samazināsies, nemaz nerunājot par daudz lētāku un ilgtspējīgāku. Lai to atrisinātu, es izveidoju pārstrādes šķirošanas robotu, kas izmanto mašīnmācīšanos, lai kārtotu dažādus pārstrādes materiālus.

1. darbība: detaļas

Pārliecinieties, ka kopā ar šo apmācību jums ir jāievēro šādas daļas:

3D drukātas detaļas (skatiet zemāk esošo soli)

Raspberry Pi RPI 4 4GB

Google Coral USB paātrinātājs

Arduino Uno R3

Raspberry Pi kameras modulis V2

5V 2A līdzstrāvas sienas barošanas avots

12 V līdzstrāvas barošanas avots

SG90 9g Micro Servos 4gab.

M3 x 0,5 mm nerūsējošā tērauda pašbloķējošs neilona sešstūra uzgrieznis 100gab.

M3x20 pogas galvas titāna skrūves 10gab.

MG996R metāla zobrata griezes momenta analogais servomotors 4gab.

Samsung 32GB Atlasiet atmiņas karti

Adafruit Flex kabelis Raspberry Pi kamerai - 1 metrs

M2 vīriešu sieviešu misiņa starplikas skrūvju uzgriežņu sortimenta komplekts

60 mm 12V ventilators

6.69 "x 5.12" x 2.95 "projekta kaste

2. darbība: 3D drukātās detaļas

Jums būs jāizdrukā visas robota rokas daļas. Jūs varat atrast visus failus šeit.

3. darbība: kods

Lūdzu, klonējiet manu GitHub krātuvi, lai sekotu šai apmācībai.

4. darbība. Datu iegūšana

Lai apmācītu objektu noteikšanas modeli, kas spēj noteikt un atpazīt dažādus pārstrādes materiālus, es izmantoju miskastes datu kopu, kurā ir 2527 attēli:

  • 501 stikls
  • 594 papīrs
  • 403 kartons
  • 482 plastmasa
  • 410 metāls
  • 137 miskasti

Iepriekš redzamais attēls ir piemērs attēlam no datu kopas.

Šī datu kopa ir ļoti maza, lai apmācītu objektu noteikšanas modeli. Ir tikai aptuveni 100 atkritumu attēlu, kas ir par maz, lai apmācītu precīzu modeli, tāpēc es nolēmu to atstāt.

Lai lejupielādētu datu kopu, varat izmantot šo Google diska mapi. Noteikti lejupielādējiet failu dataset-resized.zip. Tajā ir attēlu kopums, kas jau ir mainīts uz mazāku izmēru, lai nodrošinātu ātrāku apmācību. Ja vēlaties mainīt neapstrādāto attēlu izmērus pēc saviem ieskatiem, lejupielādējiet failu dataset-original.zip.

5. solis: attēlu marķēšana

Attēlu marķēšana
Attēlu marķēšana

Tālāk mums ir jāmarķē vairāki dažādu pārstrādes materiālu attēli, lai mēs varētu apmācīt objektu noteikšanas modeli. Lai to izdarītu, es izmantoju labelImg - bezmaksas programmatūru, kas ļauj attēlos iezīmēt objektu ierobežojošās kastes.

Iezīmējiet katru attēlu ar atbilstošu etiķeti. Šī apmācība parāda, kā. Pārliecinieties, ka katra ierobežojošā kaste ir tik tuvu katra objekta robežai, lai nodrošinātu, ka noteikšanas modelis ir pēc iespējas precīzāks. Saglabājiet visus.xml failus mapē.

Iepriekš redzamajā fotoattēlā ir parādīts, kā iezīmēt attēlus.

Šī ir ļoti garlaicīga un prātu satraucoša pieredze. Par laimi jums, es jau esmu iezīmējis visus attēlus jums! Jūs to varat atrast šeit.

6. solis: apmācība

Apmācības ziņā es nolēmu izmantot pārneses mācīšanos, izmantojot Tensorflow. Tas ļauj mums apmācīt pienācīgi precīzu modeli bez liela datu apjoma.

Ir vairāki veidi, kā to izdarīt. Mēs to varam izdarīt savā vietējā galddatorā mākonī. Apmācība mūsu vietējā datorā prasīs ļoti ilgu laiku atkarībā no tā, cik jaudīgs ir jūsu dators un vai jums ir jaudīgs GPU. Tas, iespējams, ir vieglākais veids, manuprāt, bet atkal ar ātruma negatīvo pusi.

Ir dažas galvenās lietas, kas jāņem vērā saistībā ar pārneses mācīšanos. Jums jāpārliecinās, vai iepriekš apmācītais modelis, ko izmantojat apmācībai, ir saderīgs ar Coral Edge TPU. Šeit varat atrast saderīgus modeļus. Es izmantoju MobileNet SSD v2 (COCO) modeli. Jūtieties brīvi eksperimentēt arī ar citiem.

Lai apmācītu vietējā mašīnā, es ieteiktu sekot Google apmācībai vai EdjeElectronics apmācībai, ja tā darbojas operētājsistēmā Windows 10. Personīgi esmu pārbaudījis EdjeElectroncs apmācību un guvis panākumus savā darbvirsmā. Es nevaru apstiprināt, vai Google apmācība darbosies, bet es būtu pārsteigts, ja tā nedarbosies.

Lai trenētos mākonī, varat izmantot AWS vai GCP. Es atradu šo pamācību, kuru varat izmēģināt. Tas izmanto Google mākoņa TPU, kas var ļoti ātri apmācīt jūsu objektu noteikšanas modeli. Jūtieties brīvi izmantot arī AWS.

Neatkarīgi no tā, vai trenējaties vietējā mašīnā vai mākonī, jums vajadzētu iegūt apmācītu tenzorplūsmas modeli.

7. solis: apmācītā modeļa apkopošana

Apmācītā modeļa apkopošana
Apmācītā modeļa apkopošana

Lai jūsu apmācītais modelis darbotos ar Coral Edge TPU, tas ir jāapkopo.

Iepriekš ir diagramma darbplūsmai.

Pēc apmācības jums tas jāsaglabā kā iesaldēts grafiks (.pb fails). Pēc tam tas jāpārveido par Tensorflow Lite modeli. Ņemiet vērā, kā teikts "Kvantēšana pēc apmācības". Ja, izmantojot pārneses mācīšanos, izmantojāt saderīgus iepriekš apmācītus modeļus, tas nav jādara. Pilnu saderības dokumentāciju skatiet šeit.

Izmantojot Tensorflow Lite modeli, jums tas jāapkopo uz Edge TPU modeli. Detalizētu informāciju par to, kā to izdarīt, skatiet šeit.

8. darbība: pārstrādes noteikšanas modelis

Ja nevēlaties apgrūtināt objektu noteikšanas modeļa apmācību, konvertēšanu un apkopošanu, apskatiet manu pārstrādes noteikšanas modeli šeit.

9. darbība: izvietojiet modeli

Izvietojiet modeli
Izvietojiet modeli

Nākamais solis ir iestatīt Raspberry Pi (RPI) un Edge TPU, lai palaistu apmācīto objektu noteikšanas modeli.

Vispirms iestatiet RPI, izmantojot šo apmācību.

Pēc tam iestatiet Edge TPU, ievērojot šo apmācību.

Visbeidzot, pievienojiet RPI kameras moduli aveņu pi.

Tagad jūs esat gatavs pārbaudīt savu objektu noteikšanas modeli!

Ja jau esat klonējis manu krātuvi, jūs vēlaties doties uz RPI direktoriju un palaist failu test_detection.py:

python test_detection.py --modell recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite --labels recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/labels

Tiks parādīts neliels logs, un, ja jūs ievietojat plastmasas ūdens pudeli vai citu pārstrādājamu materiālu, tam vajadzētu to atklāt tāpat kā iepriekš redzamajā attēlā.

Lai beigtu programmu, nospiediet tastatūras burtu "q".

10. solis: izveidojiet robotu roku

Izveidojiet robotu roku
Izveidojiet robotu roku

Robotiskā roka ir 3D drukāta roka, kuru es šeit atradu. Vienkārši izpildiet apmācību, kā to iestatīt.

Augšējais attēls parāda, kā izrādījās mana robotu roka.

Pārliecinieties, ka pievienojat servo tapas atbilstoši manā kodā norādītajām Arduino I/O tapām. Pievienojiet servos no rokas apakšas uz augšu šādā secībā: 3, 11, 10, 9, 6, 5. Ja to nesavienosit šādā secībā, roka pārvietosies nepareizi!

Pārbaudiet, vai tas darbojas, pārejot uz direktoriju Arduino un palaižot failu basicMovement.ino. Tas vienkārši paķers priekšmetu, ko novietojat rokas priekšā, un nometīs to aiz muguras.

11. darbība: RPI un robotizētās rokas savienošana

RPI un robotizētās rokas savienošana
RPI un robotizētās rokas savienošana

Vispirms mums ir jāuzstāda kameras modulis spīles apakšā. Augšējais attēls parāda, kā tam vajadzētu izskatīties.

Mēģiniet izlīdzināt kameru pēc iespējas taisni, lai līdz minimumam samazinātu kļūdas atpazīstamā pārstrādes materiāla satveršanā. Jums būs jāizmanto garais kameras moduļa lentes kabelis, kā redzams materiālu sarakstā.

Tālāk jums jāaugšupielādē roboticArm.ino fails Arduino panelī.

Visbeidzot, mums vienkārši jāpievieno USB kabelis starp RPI USB portu un Arduino USB portu. Tas ļaus viņiem sazināties, izmantojot seriālu. Izpildiet šo pamācību, kā to iestatīt.

12. solis: pēdējie pieskārieni

Pēdējie pieskārieni
Pēdējie pieskārieni
Pēdējie pieskārieni
Pēdējie pieskārieni

Šis solis ir pilnīgi neobligāts, bet man patīk visus savus komponentus ievietot jaukā mazā projektu kastītē.

Augšējie attēli parāda, kā tas izskatās.

Projekta lodziņu varat atrast materiālu sarakstā. Es tikko izurbju dažus caurumus un izmantoju misiņa statīvus, lai uzstādītu elektroniku. Es arī uzstādīju 4 dzesēšanas ventilatorus, lai karstā laikā uzturētu pastāvīgu gaisa plūsmu caur RPI un TPU.

13. solis: skriešana

Tagad esat gatavs ieslēgt gan robotu roku, gan RPI! RPI varat vienkārši palaist failu recycle_detection.py. Tas atvērs logu, un robotu roka sāks darboties tāpat kā demonstrācijas video! Lai beigtu programmu, nospiediet tastatūras burtu "q".

Jūtieties brīvi spēlēties ar kodu un izklaidēties!

14. solis. Nākotnes darbs

Es ceru izmantot R. O. S. kontrolēt robotu roku ar precīzākām kustībām. Tas ļaus precīzāk uzņemt objektus.

15. solis: jautājumi?

Ja jums ir kādi jautājumi, lūdzu, atstājiet komentāru zemāk!

Ieteicams: