Kazalo:
- 1. korak: Deli
- 2. korak: 3D natisnjeni deli
- 3. korak: Koda
- 4. korak: Pridobite podatke
- 5. korak: Označevanje slik
- 6. korak: Usposabljanje
- 7. korak: Sestavljanje usposobljenega modela
- 8. korak: Model odkrivanja recikliranja
- 9. korak: Uvedite model
- 10. korak: Zgradite robotsko roko
- 11. korak: Priključitev RPI in robotske roke
- 12. korak: Zadnji dotiki
- 13. korak: Tek
- 14. korak: Prihodnje delo
- Korak: Vprašanja?
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
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
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
Č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
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
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
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
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!