Sisällysluettelo:

Kierrätä lajittelurobotti: 15 vaihetta (kuvilla)
Kierrätä lajittelurobotti: 15 vaihetta (kuvilla)

Video: Kierrätä lajittelurobotti: 15 vaihetta (kuvilla)

Video: Kierrätä lajittelurobotti: 15 vaihetta (kuvilla)
Video: Kikka - Kierrätä pyöritä mua (Syksyn sävel 1991) 2024, Heinäkuu
Anonim
Image
Image
Tietojen saaminen
Tietojen saaminen

Tiesitkö, että yhteisöjen ja yritysten keskimääräinen saastumisaste vaihtelee jopa 25 prosenttiin? Tämä tarkoittaa sitä, että joka neljäs hävitettävä kierrätyskappale ei kierrätetä. Tämä johtuu inhimillisestä virheestä kierrätyskeskuksissa. Perinteisesti työntekijät lajittelevat roskat eri roskakoriin materiaalista riippuen. Ihmiset tekevät virheitä eivätkä lopulta lajittele roskia oikein, mikä johtaa saastumiseen. Kun saastuminen ja ilmastonmuutos ovat yhä merkittävämpiä nyky -yhteiskunnassa, kierrätyksellä on valtava osa planeettamme suojelemisessa. Käyttämällä robotteja roskien lajitteluun saastumisaste laskee rajusti, puhumattakaan paljon halvemmasta ja kestävämmästä. Tämän ratkaisemiseksi loin kierrätyslajittelurobotin, joka käyttää koneoppimista erilaisten kierrätysmateriaalien lajitteluun.

Vaihe 1: Osat

Varmista, että sinulla on seuraavat osat tämän opetusohjelman mukana:

3D -tulostetut osat (katso alla oleva vaihe)

Raspberry Pi RPI 4 4 Gt

Google Coral USB -kiihdytin

Arduino Uno R3

Raspberry Pi -kameramoduuli V2

5V 2A DC seinävirtalähde

DC 12V virtalähde

SG90 9g Micro Servot 4kpl.

M3 x 0,5 mm ruostumaton teräs itselukittuva nailonkuusiomutteri 100kpl.

M3x20 -nappipään titaaniruuvit 10kpl.

MG996R Metal Gear Moment Analoginen servomoottori 4kpl.

Samsung 32GB Valitse muistikortti

Adafruit Flex -kaapeli Raspberry Pi -kameralle - 1 metri

M2 urospuolinen naaras messinki välikappaleen ruuvimutterin valikoimasarja

60mm 12V tuuletin

6,69 x 5,12 x 2,95 tuuman projektilaatikko

Vaihe 2: 3D -tulostetut osat

Sinun on tulostettava 3D -robotin kaikki osat 3D -tulostuksella. Löydät kaikki tiedostot täältä.

Vaihe 3: Koodi

Kloonaa GitHub -arkistoni seurataksesi tätä opetusohjelmaa.

Vaihe 4: Tietojen hankkiminen

Koulutin kohteen tunnistusmallia, joka pystyy havaitsemaan ja tunnistamaan erilaisia kierrätysmateriaaleja, käytin roskakoritiedostoa, joka sisältää 2527 kuvaa:

  • 501 lasia
  • 594 paperia
  • 403 pahvi
  • 482 muovia
  • 410 metallia
  • 137 roskaa

Yllä oleva kuva on esimerkki yhdestä tietojoukon kuvista.

Tämä tietojoukko on hyvin pieni opettamaan kohteen havaitsemismallia. Roskakorista on vain noin 100 kuvaa, jotka ovat liian vähän tarkan mallin kouluttamiseen, joten päätin jättää sen pois.

Voit ladata tietojoukon tämän Google -aseman kansion avulla. Muista ladata dataset-resized.zip-tiedosto. Se sisältää joukon kuvia, jotka on jo muutettu pienempään kokoon nopeamman harjoittelun mahdollistamiseksi. Jos haluat muuttaa raakakuvien kokoa haluamallasi tavalla, voit ladata dataset-original.zip-tiedoston.

Vaihe 5: Kuvien merkitseminen

Kuvien merkitseminen
Kuvien merkitseminen

Seuraavaksi meidän on merkittävä useita kuvia eri kierrätysmateriaaleista, jotta voimme kouluttaa objektin tunnistusmallin. Tätä varten käytin labelImg -ilmaisohjelmistoa, jonka avulla voit merkitä objektien rajauslaatikot kuvissa.

Merkitse jokainen kuva oikealla tarralla. Tämä opetusohjelma näyttää kuinka. Varmista, että jokainen rajoituslaatikko on mahdollisimman lähellä kunkin objektin reunaa, jotta tunnistusmalli on mahdollisimman tarkka. Tallenna kaikki.xml -tiedostot kansioon.

Yllä oleva kuva näyttää kuvien merkitsemisen.

Tämä on erittäin tylsä ja mieltä järkyttävä kokemus. Onneksi olen jo merkinnyt kaikki kuvat sinulle! Löydät sen täältä.

Vaihe 6: Koulutus

Koulutuksen suhteen päätin käyttää siirto -oppimista Tensorflow'n avulla. Näin voimme kouluttaa kohtuullisen tarkan mallin ilman suurta tietomäärää.

Meillä on pari tapaa tehdä tämä. Voimme tehdä sen paikallisella pöytäkoneella pilvessä. Paikallisen koneemme harjoittelu kestää erittäin kauan riippuen siitä, kuinka tehokas tietokoneesi on ja onko sinulla tehokas GPU. Tämä on luultavasti helpoin tapa mielestäni, mutta jälleen nopeuden haittapuolen kanssa.

Siirron oppimisessa on huomioitava muutamia tärkeitä asioita. Sinun on varmistettava, että harjoitteluun käyttämäsi esikoulutettu malli on yhteensopiva Coral Edge TPU: n kanssa. Löydät yhteensopivat mallit täältä. Käytin MobileNet SSD v2 (COCO) -mallia. Kokeile rohkeasti myös muiden kanssa.

Jos haluat treenata paikallisessa koneessasi, suosittelen seuraamaan Googlen opetusohjelmaa tai EdjeElectronics -opetusohjelmaa, jos käytössäsi on Windows 10. Henkilökohtaisesti olen testannut EdjeElectroncs -opetusohjelman ja saavuttanut menestyksen työpöydälläni. En voi vahvistaa, toimiiko Googlen opetusohjelma, mutta olisin yllättynyt, jos se ei toimi.

Voit harjoitella pilvessä käyttämällä AWS: ää tai GCP: tä. Löysin tämän opetusohjelman, jota voit kokeilla. Se käyttää Googlen pilvipohjaisia TPU -laitteita, jotka voivat kouluttaa objektin tunnistusmallisi erittäin nopeasti. Voit myös käyttää AWS: ää.

Harjoitteletpa sitten paikallisella koneellasi tai pilvessä, sinun pitäisi saada koulutettu tensorflow -malli.

Vaihe 7: Koulutetun mallin kokoaminen

Koulutetun mallin kokoaminen
Koulutetun mallin kokoaminen

Jotta koulutettu mallisi toimisi Coral Edge TPU: n kanssa, sinun on koottava se.

Yllä on kaavio työnkulusta.

Harjoituksen jälkeen sinun on tallennettava se jäädytettynä kaaviona (.pb -tiedosto). Sitten sinun on muutettava se Tensorflow Lite -malliksi. Huomaa, miten siinä lukee "Koulutuksen jälkeinen kvantisointi". Jos käytit yhteensopivia esikoulutettuja malleja siirron oppimisen aikana, sinun ei tarvitse tehdä tätä. Katso kaikki yhteensopivuutta koskevat asiakirjat täältä.

Tensorflow Lite -mallissa sinun on käännettävä se Edge TPU -malliin. Katso lisätietoja tämän tekemisestä täältä.

Vaihe 8: Kierrätyksen tunnistusmalli

Jos et halua käydä läpi harjoitusta, muuntamista ja objektin tunnistusmallin kokoamista, tutustu kierrätyksen tunnistusmalliini täältä.

Vaihe 9: Ota malli käyttöön

Ota malli käyttöön
Ota malli käyttöön

Seuraava askel on määrittää Raspberry Pi (RPI) ja Edge TPU suorittamaan koulutetun kohteen tunnistusmalli.

Määritä ensin RPI tämän opetusohjelman avulla.

Määritä seuraavaksi Edge TPU tämän opetusohjelman mukaisesti.

Kytke lopuksi RPI -kameramoduuli vadelmapi: hen.

Olet nyt valmis testaamaan objektin tunnistusmallisi!

Jos olet jo kloonannut arkistoni, haluat siirtyä RPI -hakemistoon ja suorittaa test_detection.py -tiedoston:

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/labels

Pienen ikkunan pitäisi avautua, ja jos laitat muovisen vesipullon tai muun kierrätysmateriaalin, sen pitäisi havaita se yllä olevan kuvan mukaisesti.

Lopeta ohjelma painamalla näppäimistön kirjainta "q".

Vaihe 10: Rakenna robotti

Rakenna robottivarsi
Rakenna robottivarsi

Robottivarsi on 3D -painettu varsi, jonka löysin täältä. Seuraa vain opetusohjelmaa sen asettamiseksi.

Yllä oleva kuva osoittaa, kuinka robotti käsivarteni osoittautui.

Varmista, että liität servotapit koodini Arduino I/O -nastojen mukaisesti. Liitä servot käsivarren alhaalta ylöspäin tässä järjestyksessä: 3, 11, 10, 9, 6, 5. Jos et liitä sitä tässä järjestyksessä, varsi liikuttaa väärää servoa!

Testaa sen toimiminen siirtymällä Arduino -hakemistoon ja suorittamalla basicMovement.ino -tiedosto. Tämä yksinkertaisesti nappaa esineen, jonka asetat käsivarren eteen, ja pudottaa sen taakse.

Vaihe 11: RPI- ja robottivarren liittäminen

RPI: n ja robottivarren liittäminen
RPI: n ja robottivarren liittäminen

Meidän on ensin asennettava kameramoduuli kynsien pohjaan. Yllä oleva kuva näyttää, miltä sen pitäisi näyttää.

Yritä kohdistaa kamera mahdollisimman suoraan, jotta tunnistetun kierrätysmateriaalin tarttumisvirheet minimoituvat. Sinun on käytettävä pitkää kameramoduulin nauhakaapelia materiaaliluettelon mukaisesti.

Seuraavaksi sinun on ladattava roboticArm.ino -tiedosto Arduino -taululle.

Lopuksi meidän on vain liitettävä USB -kaapeli RPI: n USB -portin ja Arduinon USB -portin väliin. Näin he voivat kommunikoida sarjaliikenteen kautta. Seuraa tätä opetusohjelmaa, miten tämä määritetään.

Vaihe 12: Viimeiset kosketukset

Viimeiset kosketukset
Viimeiset kosketukset
Viimeiset kosketukset
Viimeiset kosketukset

Tämä vaihe on täysin valinnainen, mutta haluan laittaa kaikki komponentit mukavaan pieneen projektilaatikkoon.

Yllä olevat kuvat osoittavat, miltä se näyttää.

Löydät projektiruudun materiaaliluettelosta. Porasin juuri joitain reikiä ja käytin messinkisiä seinäkiinnikkeitä elektroniikan kiinnittämiseen. Asensin myös 4 jäähdytystuuletinta pitämään jatkuvan ilmavirran RPI: n ja TPU: n läpi kuumana.

Vaihe 13: Juoksu

Olet nyt valmis käynnistämään sekä robottivarren että RPI: n! RPI: ssä voit yksinkertaisesti suorittaa recycle_detection.py -tiedoston. Tämä avaa ikkunan ja robottivarsi alkaa toimia aivan kuten esittelyvideossa! Lopeta ohjelma painamalla näppäimistön kirjainta "q".

Voit vapaasti leikkiä koodilla ja pitää hauskaa!

Vaihe 14: Tulevaisuuden työ

Toivottavasti käytän R. O. S. ohjata robottivartta tarkemmilla liikkeillä. Tämä mahdollistaa kohteiden tarkemman noutamisen.

Vaihe 15: Kysymyksiä?

Jätä kommentti alle, jos sinulla on kysyttävää!

Suositeltava: