Robot za razvrščanje recikliranja: 15 korakov (s slikami)
Robot za razvrščanje recikliranja: 15 korakov (s slikami)
Anonim
Image
Image
Pridobivanje podatkov
Pridobivanje podatkov

Ali ste vedeli, da se povprečna stopnja kontaminacije v skupnostih in podjetjih giblje do 25%? To pomeni, da se vsak četrti kos recikliranja, ki ga zavržete, ne reciklira. To je posledica človeške napake v centrih za recikliranje. Tradicionalno bodo delavci razvrstili smeti v različne koše, odvisno od materiala. Ljudje so dolžni narediti napake in na koncu ne razvrstijo smeti pravilno, kar vodi v kontaminacijo. Ker onesnaževanje in podnebne spremembe postajajo v današnji družbi še bolj pomembni, recikliranje igra veliko vlogo pri zaščiti našega planeta. Z uporabo robotov za razvrščanje smeti se bo stopnja onesnaženja drastično zmanjšala, da ne omenjam veliko cenejših in bolj trajnostnih. Za rešitev tega sem ustvaril robota za razvrščanje recikliranja, ki uporablja strojno učenje za razvrščanje med različnimi materiali za recikliranje.

1. korak: Deli

Skupaj s to vadnico morate upoštevati naslednje dele:

3D natisnjeni deli (glejte spodnji korak)

Raspberry Pi RPI 4 4 GB

Google Coral USB Accelerator

Arduino Uno R3

Modul kamere Raspberry Pi V2

5V 2A DC stenski napajalnik

Napajanje DC 12V

SG90 9 g mikro servomotorji 4 kosi.

M3 x 0,5 mm Najlonska šesterokotna matica iz nerjavečega jekla 100 kosov.

Vijaki iz titana z gumbno glavo M3x20 10 kosov.

MG996R Analogni servo motor s kovinskim navorom 4 kosi.

Samsung 32 GB Izberite Pomnilniška kartica

Adafruit Flex kabel za kamero Raspberry Pi - 1 meter

M2 Moški ženski medeninasti distančnik Komplet za pritrdilne vijačne matice

60 mm 12V ventilator

6,69 "x 5,12" x 2,95 "škatla za projekt

2. korak: 3D natisnjeni deli

3D dele morate natisniti za robotsko roko. Vse datoteke najdete tukaj.

3. korak: Koda

Klonirajte moje skladišče GitHub, da sledite tej vadnici.

4. korak: Pridobite podatke

Za usposabljanje modela odkrivanja predmetov, ki lahko zazna in prepozna različne materiale za recikliranje, sem uporabil nabor podatkov o smeti, ki vključuje 2527 slik:

  • 501 steklo
  • 594 papir
  • 403 karton
  • 482 plastika
  • 410 kovine
  • 137 smeti

Zgornja slika je primer ene na slikah iz nabora podatkov.

Ta nabor podatkov je zelo majhen za usposabljanje modela zaznavanja objektov. Obstaja le približno 100 slik smeti, ki so premajhne za vzgojo natančnega modela, zato sem se odločil, da jih izpustim.

S to mapo pogona Google lahko naložite nabor podatkov. Prenesite datoteko nabor podatkov-resized.zip. Vsebuje nabor slik, ki so že spremenjene na manjšo velikost, kar omogoča hitrejše usposabljanje. Če želite spremeniti velikost neobdelanih slik po svojem okusu, prenesite datoteko nabora podatkov-original.zip.

5. korak: Označevanje slik

Označevanje slik
Označevanje slik

Nato moramo označiti več slik različnih materialov za recikliranje, da lahko usposobimo model zaznavanja predmetov. Za to sem uporabil labelImg, brezplačno programsko opremo, ki vam omogoča označevanje okvirjev za omejevanje objektov na slikah.

Vsako sliko označite z ustrezno oznako. Ta vadnica vam pokaže, kako. Poskrbite, da bo vsaka omejevalna omarica čim bližje meji vsakega predmeta, da zagotovite čim natančnejši model zaznavanja. Shranite vse datoteke.xml v mapo.

Zgornja fotografija prikazuje, kako označite svoje slike.

To je zelo dolgočasna in umirjajoča izkušnja. Na vašo srečo sem že označil vse slike za vas! Najdete ga tukaj.

6. korak: Usposabljanje

Kar zadeva usposabljanje, sem se odločil za prenosno učenje z uporabo programa Tensorflow. To nam omogoča usposabljanje dostojno natančnega modela brez velike količine podatkov.

To lahko storimo na nekaj načinov. To lahko storimo na lokalnem namiznem računalniku v oblaku. Usposabljanje na našem lokalnem računalniku bo trajalo zelo dolgo, odvisno od tega, kako zmogljiv je vaš računalnik in če imate zmogljiv grafični procesor. To je po mojem mnenju najlažji način, vendar spet s pomanjkljivostjo hitrosti.

Pri transfernem učenju je treba upoštevati nekaj ključnih stvari. Prepričati se morate, da je vnaprej usposobljen model, ki ga uporabljate za usposabljanje, združljiv s TPU Coral Edge. Tu lahko najdete združljive modele. Uporabil sem model MobileNet SSD v2 (COCO). Lahko tudi eksperimentirate z drugimi.

Če želite trenirati na svojem lokalnem računalniku, priporočam, da sledite Googlovi vadnici ali vadnici EdjeElectronics, če uporabljate Windows 10. Osebno sem preizkusil vadnico EdjeElectroncs in na svojem namizju dosegel uspeh. Ne morem potrditi, ali bo Googlova vadnica delovala, vendar bi bil presenečen, če ne.

Za vadbo v oblaku lahko uporabite AWS ali GCP. Našel sem to vadnico, ki jo lahko preizkusite. Uporablja Googlove oblake TPU, ki lahko zelo hitro usposobijo vaš model zaznavanja predmetov. Uporabite lahko tudi AWS.

Ne glede na to, ali trenirate na svojem lokalnem stroju ali v oblaku, bi morali imeti usposobljen model tenzorskega toka.

7. korak: Sestavljanje usposobljenega modela

Sestavljanje usposobljenega modela
Sestavljanje usposobljenega modela

Če želite, da vaš usposobljeni model deluje s TPU Coral Edge, ga morate sestaviti.

Zgoraj je diagram za potek dela.

Po vadbi ga morate shraniti kot zamrznjen graf (datoteka.pb). Nato ga morate pretvoriti v model Tensorflow Lite. Upoštevajte, kako piše "kvantizacija po usposabljanju". Če ste pri uporabi transfernega učenja uporabljali združljive vnaprej usposobljene modele, vam tega ni treba storiti. Celotno dokumentacijo o združljivosti si oglejte tukaj.

Z modelom Tensorflow Lite ga morate prevesti v model Edge TPU. Podrobnosti o tem, kako to storiti, si oglejte tukaj.

8. korak: Model odkrivanja recikliranja

Če ne želite prenašati težav pri usposabljanju, pretvorbi in sestavljanju modela odkrivanja predmetov, si oglejte moj model zaznavanja recikliranja tukaj.

9. korak: Uvedite model

Razmestite model
Razmestite model

Naslednji korak je nastavitev Raspberry Pi (RPI) in Edge TPU za izvajanje modela zaznavanja usposobljenih predmetov.

Najprej s pomočjo te vadnice nastavite RPI.

Nato po tej vadnici nastavite Edge TPU.

Na koncu priključite modul kamere RPI na malinovo pi.

Zdaj ste pripravljeni preizkusiti svoj model odkrivanja predmetov!

Če ste že klonirali moje skladišče, se pomaknite do imenika RPI in zaženite datoteko test_detection.py:

python test_detection.py --model recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/detect_edgetpu.tflite -oznake recycle_ssd_mobilenet_v2_quantized_300x300_coco_2019_01_03/labels.txt

Odprlo bi se majhno okno, in če postavite plastično steklenico za vodo ali drug material za recikliranje, bi to moralo zaznati, kot je prikazano na zgornji sliki.

Za zaključek programa pritisnite črko "q" na tipkovnici.

10. korak: Zgradite robotsko roko

Zgradite robotsko roko
Zgradite robotsko roko

Robotska roka je 3D tiskana roka, ki sem jo našel tukaj. Samo sledite navodilom za nastavitev.

Zgornja slika prikazuje, kako se je izkazala moja robotska roka.

Poskrbite, da priključite servo zatiče v skladu z V/I zatiči Arduino v moji kodi. Servomotorje priključite od spodaj navzgor na roko v tem vrstnem redu: 3, 11, 10, 9, 6, 5. Če jih ne povežete v tem vrstnem redu, bo roka premaknila napačen servo!

Preverite, ali deluje, tako da se pomaknete do imenika Arduino in zaženete datoteko basicMovement.ino. S tem preprosto zgrabite predmet, ki ga postavite pred roko in ga spustite zadaj.

11. korak: Priključitev RPI in robotske roke

Priključitev RPI in robotske roke
Priključitev RPI in robotske roke

Najprej moramo modul kamere namestiti na dno kremplja. Zgornja slika prikazuje, kako naj bi izgledala.

Poskusite fotoaparat poravnati čim bolj naravnost, da zmanjšate napake pri prijemanju prepoznanega materiala za recikliranje. Morali boste uporabiti dolgi trak modula kamere, kot je prikazano na seznamu materialov.

Nato morate datoteko roboticArm.ino naložiti na ploščo Arduino.

Nazadnje moramo samo priključiti kabel USB med vrata USB RPI in vrata USB Arduino. To jim bo omogočilo serijsko komunikacijo. Sledite tem navodilom, kako to nastaviti.

12. korak: Zadnji dotiki

Zadnji dotiki
Zadnji dotiki
Zadnji dotiki
Zadnji dotiki

Ta korak je popolnoma neobvezen, vendar vse svoje komponente rad vložim v lepo majhno škatlo za projekt.

Zgornje slike prikazujejo, kako izgleda.

Okvir projekta najdete na seznamu materialov. Pravkar sem izvrtal nekaj lukenj in uporabil medeninasto stojalo za montažo elektronike. Namestil sem tudi 4 hladilne ventilatorje, ki ohranjajo stalen pretok zraka skozi RPI in TPU, ko je vroč.

13. korak: Tek

Zdaj ste pripravljeni za vklop robotske roke in RPI! V RPI -ju lahko preprosto zaženete datoteko recycle_detection.py. S tem se odpre okno in robotska roka bo začela delovati tako kot v predstavitvenem videu! Za zaključek programa pritisnite črko "q" na tipkovnici.

Ne pozabite se igrati s kodo in se zabavati!

14. korak: Prihodnje delo

Upam, da bom uporabil R. O. S. za natančnejše premikanje robotske roke. To bo omogočilo natančnejše pobiranje predmetov.

Korak: Vprašanja?

Če imate kakršna koli vprašanja, pustite komentar spodaj!