Cuprins:

Reciclarea robotului de sortare: 15 pași (cu imagini)
Reciclarea robotului de sortare: 15 pași (cu imagini)

Video: Reciclarea robotului de sortare: 15 pași (cu imagini)

Video: Reciclarea robotului de sortare: 15 pași (cu imagini)
Video: Ce înseamna semnul tau din nastere 2024, Noiembrie
Anonim
Image
Image
Obținerea datelor
Obținerea datelor

Știați că rata medie de contaminare în comunități și companii variază până la 25%? Asta înseamnă că una din patru bucăți de reciclare aruncate nu se reciclează. Acest lucru este cauzat de o eroare umană în centrele de reciclare. În mod tradițional, lucrătorii vor sorta gunoiul în coșuri diferite, în funcție de material. Oamenii sunt obligați să comită erori și ajung să nu sorteze coșul de gunoi în mod corespunzător, ducând la contaminare. Pe măsură ce poluarea și schimbările climatice devin și mai semnificative în societatea actuală, reciclarea are un rol imens în protejarea planetei noastre. Prin utilizarea roboților pentru a sorta coșul de gunoi, ratele de contaminare vor scădea drastic, ca să nu mai vorbim de mult mai ieftine și mai durabile. Pentru a rezolva acest lucru, am creat un robot de sortare a reciclării care utilizează învățarea automată pentru a sorta între diferite materiale de reciclare.

Pasul 1: Piese

Asigurați-vă că aveți următoarele părți de urmat împreună cu acest tutorial:

Piese imprimate 3D (vezi pasul de mai jos)

Raspberry Pi RPI 4 4GB

Accelerator USB Google Coral

Arduino Uno R3

Raspberry Pi Camera Module V2

Sursă de alimentare de perete 5V 2A DC

Alimentare DC 12V

SG90 9g Micro Servo 4buc.

M3 x 0,5 mm Oțel inoxidabil autoblocant nailon hexagonal piuliță de blocare 100buc.

Șuruburi titan M3x20 cu cap buton 10buc.

Servomotor analogic cuplu cu angrenaj metalic MG996R 4buc.

Samsung 32GB Select Memory Card

Cablu flex Adafruit pentru cameră Raspberry Pi - 1 metru

M2 Tată de sex feminin alamă distanțier distanțier șurub Kit asortiment piuliță

60mm 12V ventilator

6,69 "x 5,12" x 2,95 "Casetă de proiect

Pasul 2: Părți imprimate 3D

Va trebui să imprimați 3D toate piesele pentru brațul robotizat. Puteți găsi toate fișierele aici.

Pasul 3: Cod

Vă rugăm să clonați depozitul meu GitHub pentru a urma împreună cu acest tutorial.

Pasul 4: Obținerea datelor

Pentru a instrui modelul de detectare a obiectelor care poate detecta și recunoaște diferite materiale de reciclare, am folosit setul de date de gunoi care include 2527 de imagini:

  • 501 pahar
  • 594 hârtie
  • 403 carton
  • 482 plastic
  • 410 metal
  • 137 gunoi

Imaginea de mai sus este un exemplu al uneia din imaginile din setul de date.

Acest set de date este foarte mic pentru a antrena un model de detectare a obiectelor. Există doar aproximativ 100 de imagini de coș de gunoi care sunt prea puține pentru a antrena un model precis, așa că am decis să îl las în afara.

Puteți utiliza acest folder Google Drive pentru a descărca setul de date. Asigurați-vă că descărcați fișierul dataset-resized.zip. Acesta conține setul de imagini care sunt deja redimensionate la o dimensiune mai mică pentru a permite un antrenament mai rapid. Dacă doriți să redimensionați imaginile brute după propriul dvs. gust, nu ezitați să descărcați fișierul dataset-original.zip.

Pasul 5: Etichetarea imaginilor

Etichetarea imaginilor
Etichetarea imaginilor

Apoi, trebuie să etichetăm mai multe imagini cu diferite materiale de reciclare, astfel încât să putem instrui modelul de detectare a obiectelor. Pentru a face acest lucru, am folosit labelImg, un software gratuit care vă permite să etichetați casetele de delimitare a obiectelor în imagini.

Etichetați fiecare imagine cu eticheta corespunzătoare. Acest tutorial vă arată cum. Asigurați-vă că faceți fiecare casetă de delimitare cât mai aproape de marginea fiecărui obiect pentru a vă asigura că modelul de detectare este cât mai exact posibil. Salvați toate fișierele.xml într-un folder.

Fotografia de mai sus arată cum să etichetați imaginile.

Aceasta este o experiență foarte plictisitoare și amețitoare. Din fericire pentru tine, am etichetat deja toate imaginile pentru tine! O puteți găsi aici.

Pasul 6: Antrenament

În ceea ce privește instruirea, am decis să folosesc învățarea prin transfer folosind Tensorflow. Acest lucru ne permite să instruim un model decent, fără o cantitate mare de date.

Există câteva moduri în care putem face acest lucru. O putem face pe computerul nostru local de pe cloud. Instruirea pe mașina noastră locală va dura foarte mult, în funcție de cât de puternic este computerul dvs. și dacă aveți un GPU puternic. Acesta este probabil cel mai simplu mod în opinia mea, dar din nou cu dezavantajul vitezei.

Există câteva lucruri cheie de remarcat despre învățarea prin transfer. Trebuie să vă asigurați că modelul pre-antrenat pe care îl utilizați pentru antrenament este compatibil cu TPU Coral Edge. Aici puteți găsi modele compatibile. Am folosit modelul MobileNet SSD v2 (COCO). Simțiți-vă liber să experimentați și cu alții.

Pentru a vă antrena pe mașina dvs. locală, aș recomanda să urmați tutorialul Google sau tutorialul EdjeElectronics dacă rulează pe Windows 10. Personal, am testat tutorialul EdjeElectroncs și am ajuns la succes pe desktopul meu. Nu pot confirma dacă tutorialul Google va funcționa, dar aș fi surprins dacă nu.

Pentru a vă antrena în cloud, puteți utiliza AWS sau GCP. Am găsit acest tutorial pe care îl puteți încerca. Folosește cloud-urile Google TPU care vă pot antrena modelul de detectare a obiectelor foarte rapid. Simțiți-vă liber să utilizați și AWS.

Indiferent dacă vă antrenați pe mașina dvs. locală sau în cloud, ar trebui să ajungeți la un model de tensor flux instruit.

Pasul 7: Compilarea modelului instruit

Compilarea modelului instruit
Compilarea modelului instruit

Pentru ca modelul dvs. instruit să funcționeze cu TPU Coral Edge, trebuie să îl compilați.

Mai sus este o diagramă pentru fluxul de lucru.

După antrenament, trebuie să îl salvați ca grafic înghețat (fișier.pb). Apoi, trebuie să-l convertiți într-un model Tensorflow Lite. Rețineți cum scrie „cuantificarea post-antrenament”. Dacă ați folosit modele pre-antrenate compatibile atunci când utilizați învățarea prin transfer, nu este necesar să faceți acest lucru. Consultați aici documentația completă privind compatibilitatea.

Cu modelul Tensorflow Lite, trebuie să îl compilați la un model Edge TPU. Vedeți detalii despre cum să faceți acest lucru aici.

Pasul 8: reciclați modelul de detectare

Dacă nu doriți să treceți peste dificultățile de antrenament, conversie și compilare a modelului de detectare a obiectelor, verificați aici modelul meu de detectare a reciclării.

Pasul 9: Implementați modelul

Implementați modelul
Implementați modelul

Următorul pas este să configurați Raspberry Pi (RPI) și Edge TPU pentru a rula modelul de detectare a obiectelor instruit.

Mai întâi, configurați RPI utilizând acest tutorial.

Apoi, configurați TPU-ul Edge urmând acest tutorial.

În cele din urmă, conectați modulul camerei RPI la raspberry pi.

Acum sunteți gata să vă testați modelul de detectare a obiectelor!

Dacă ați clonat deja depozitul meu, veți dori să navigați la directorul RPI și să rulați fișierul 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

O fereastră mică ar trebui să apară și dacă puneți o sticlă de apă din plastic sau alt material de reciclare, ar trebui să o detecteze ca în imaginea de mai sus.

Apăsați litera „q” de pe tastatură pentru a termina programul.

Pasul 10: Construiește brațul robotizat

Construiește brațul robotizat
Construiește brațul robotizat

Brațul robotizat este un braț tipărit 3D pe care l-am găsit aici. Doar urmați tutorialul privind configurarea acestuia.

Imaginea de mai sus arată cum mi-a ieșit brațul robotizat.

Asigurați-vă că conectați pinii servo la pinii I / O Arduino din codul meu. Conectați servo-urile de jos în partea de sus a brațului în această ordine: 3, 11, 10, 9, 6, 5. Dacă nu îl conectați în această ordine, brațul va muta servo greșit!

Testați pentru a vedea cum funcționează navigând la directorul Arduino și rulând fișierul basicMovement.ino. Aceasta va apuca pur și simplu un obiect pe care îl așezați în fața brațului și îl veți lăsa în spate.

Pasul 11: Conectarea RPI și brațul robotizat

Conectarea RPI și brațul robotizat
Conectarea RPI și brațul robotizat

Mai întâi trebuie să montăm modulul camerei în partea inferioară a ghearelor. Imaginea de mai sus arată cum ar trebui să arate.

Încercați să aliniați camera cât mai dreaptă posibil pentru a minimiza erorile la apucarea materialului reciclat recunoscut. Va trebui să utilizați cablul panglică al modulului lung al camerei, așa cum se vede în lista de materiale.

Apoi, trebuie să încărcați fișierul roboticArm.ino pe placa Arduino.

În cele din urmă, trebuie doar să conectăm un cablu USB între portul USB al RPI și portul USB al Arduino. Acest lucru le va permite să comunice prin serial. Urmați acest tutorial despre cum să configurați acest lucru.

Pasul 12: Atingeri finale

Atingeri finale
Atingeri finale
Atingeri finale
Atingeri finale

Acest pas este complet opțional, dar îmi place să pun toate componentele într-o cutie mică de proiect.

Imaginile de mai sus arată cum arată.

Puteți găsi caseta de proiect pe lista de materiale. Tocmai am făcut câteva găuri și am folosit standuri de alamă pentru a monta electronica. De asemenea, am montat 4 ventilatoare de răcire pentru a menține un flux constant de aer prin RPI și TPU când este fierbinte.

Pasul 13: Alergare

Acum sunteți gata să porniți atât brațul robot, cât și RPI! Pe RPI, puteți rula pur și simplu fișierul recycle_detection.py. Aceasta va deschide o fereastră și brațul robot va începe să ruleze la fel ca în videoclipul demo! Apăsați litera „q” de pe tastatură pentru a termina programul.

Simțiți-vă liber să jucați cu codul și să vă distrați!

Pasul 14: Munca viitoare

Sper să folosesc R. O. S. pentru a controla brațul robotizat cu mișcări mai precise. Acest lucru va permite preluarea mai precisă a obiectelor.

Pasul 15: Întrebări?

Nu ezitați să lăsați un comentariu mai jos dacă aveți întrebări!

Recomandat: