Sisukord:
- Samm: enne kui alustame
- 2. samm: looge Lobes kohandatud ML -mudel
- Samm: ehitage see üles: riistvara
- Samm: kodeerige see: tarkvara
- Samm: testige seda: käivitage programm
- 6. samm: (valikuline) Ehitage see: viimistlege oma ahel
- 7. samm: (valikuline) Ehitage see: juhtum
- Samm: installige ja juurutage
Video: Tehke ML abil Pi prügiklassifikaator!: 8 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:45
Prügiklassifikaatori projekt, mida tuntakse hellitavalt nimega "Kuhu see läheb ?!", on loodud selleks, et muuta asjade äraviskamine kiiremaks ja usaldusväärsemaks.
See projekt kasutab algajasõbraliku (koodita!) ML-mudeli looja Lobes koolitatud masinõppe (ML) mudelit, et teha kindlaks, kas ese läheb prügi, ringlussevõtu, komposti või ohtlike jäätmete hulka. Seejärel laaditakse mudel Raspberry Pi 4 arvutisse, et seda saaks kasutada kõikjal, kus prügikaste leiate!
See õpetus õpetab teile, kuidas luua Python3 -s Lobe TensorFlow mudelist Raspberry Pi -le oma prügiklassifikaatori projekt.
Raskusaste: algaja ++ (mõned teadmised ahelate ja kodeerimise kohta on kasulikud)
Lugemisaeg: 5 min
Ehitusaeg: 60-90 min
Maksumus: ~ 70 dollarit (sh Pi 4)
Tarvikud:
Tarkvara (arvuti pool)
- Lobe
- WinSCP (või muu SSH -failiedastusmeetod, saab kasutada Maci jaoks CyberDucki)
- Terminal
- Kaugtöölauaühendus või RealVNC
Riistvara
- Raspberry Pi, SD-kaart ja USB-C toiteallikas (5V, 2.5A)
- Pi kaamera
- Nupp
-
5 LED -i (4 indikaatortuld ja 1 oleku LED)
- Kollane LED: prügi
- Sinine LED: ringlusse võtta
- Roheline LED: kompost
- Punane LED: ohtlikud jäätmed
- Valge LED: olek
- 6220 oomi takistid
- 10 M-to-M hüppaja juhet
- Leivalaud, poole väiksem
Kui valite jootmise:
- 1 JST -pistik, ainult naissoost ots
- 2 M-to-F hüppaja juhtmed
- 10 F-to-F hüppajajuhet
- PCB
Korpus
- Projektiümbris (nt papp-, puit- või plastkarp, umbes 6 x 5 tolli x 4 tolli)
-
0,5 x 0,5 tolli (2 x 2 cm) läbipaistev plastikust ruut
Nt. plastikust toidunõude kaanelt
- Velcro
Tööriistad
- Traadilõikurid
- Täppisnuga (nt täpne nuga) ja lõikematt
- Jootekolb (valikuline)
- Kuumsulamistööriist (või muu mittejuhtiv liim-epoksü töötab suurepäraselt, kuid on püsiv)
Samm: enne kui alustame
See projekt eeldab, et alustate täielikult seadistatud Raspberry Pi-ga peata konfiguratsioonis. Siin on algajatele sobiv juhend selle kohta, kuidas seda teha.
Samuti aitab see teadmisi järgmistest asjadest.
-
Vaarika Pi tundmine
- Siin on mugav alustamisjuhend!
- Samuti on abiks: Pi -kaameraga alustamine
-
Pythoni koodi lugemine ja muutmine (te ei pea programmi kirjutama, lihtsalt muutke)
Sissejuhatus Pythonisse koos Raspberry Pi -ga
- Fritzingi ühendusskeemide lugemine
-
Leivalaua kasutamine
Leivalaua õpetuse kasutamine
Uurige, kuhu teie prügi läheb
Igal USA linnal (ja ma eeldan, et maakera) on oma prügi/ringlussevõtt/kompost/jne. kogumissüsteem. See tähendab, et täpse prügiklassifikaatori koostamiseks peame 1) koostama kohandatud ML -mudeli (seda käsitleme järgmises etapis - koodi pole!) Ja 2) teadma, kuhu iga prügikast läheb.
Kuna ma ei teadnud alati iga mudeli koolitamiseks kasutatud eseme jaoks õiget prügikasti, kasutasin Seattle Utilities flaierit (foto 1) ja ka seda käepärast "Kus see läheb?" otsingutööriist Seattle'i linna jaoks! Vaadake, millised ressursid on teie linnas saadaval, otsides oma linna prügiveo utiliiti ja tutvudes selle veebisaidiga.
2. samm: looge Lobes kohandatud ML -mudel
Lobe on hõlpsasti kasutatav tööriist, millel on kõik vajalik masinaõppe ideede elluviimiseks. Näidake sellele näiteid selle kohta, mida soovite, ja see koolitab automaatselt kohandatud masinõppemudeli, mida saab eksportida serva seadmete ja rakenduste jaoks. See ei nõua alustamiseks kogemusi. Treenida saab oma arvutis tasuta!
Siin on kiire ülevaade Lobe kasutamise kohta:
1. Avage Lobe programm ja looge uus projekt.
2. Tehke või importige fotosid ja sildistage need sobivatesse kategooriatesse. (Foto 1) Neid silte vajame hiljem projekti tarkvaraosas.
Fotode importimiseks on kaks võimalust.
- Pildistage üksusi otse arvuti veebikaamerast või
-
Fotode importimine arvuti olemasolevatest kaustadest.
Pidage meeles, et fotode kausta nime kasutatakse kategooria sildi nimena, seega veenduge, et see vastaks olemasolevatele siltidele
Peale selle: kasutasin mõlemat meetodit, sest mida rohkem fotosid teil on, seda täpsem on teie mudel.
3. Kasutage mudeli täpsuse testimiseks funktsiooni "Esita". Muutke kaugusi, valgustust, käeasendeid jne, et teha kindlaks, kus mudel asub ja pole täpne. Vajadusel lisage rohkem fotosid. (Fotod 3–4)
4. Kui olete valmis, eksportige oma Lobe ML mudel TensorFlow (TF) Lite formaadis.
Nõuanded:
-
Enne fotode importimist koostage nimekiri kõigist vajalikest kategooriatest ja sellest, kuidas soovite neid sildistada (nt „prügi”, „ringlusse võtta”, „kompost” jne).
Märkus. Muutmiseks vajaliku koodi hulga vähendamiseks kasutage samu silte, mis on näidatud ülaltoodud fotol "Lobe'i mudelimärgid"
- Kaasake kategooria „mitte prügikasti”, mis sisaldab fotosid kõigest muust, mis fotol võib olla (nt käed ja käsivarred, taust jne).
- Võimalusel tehke Pi -kaamerast fotosid ja importige need Lobe'i. See parandab oluliselt teie mudeli täpsust!
- Kas vajate rohkem fotosid? Vaadake Kaggle'i avatud lähtekoodiga andmekogumeid, sealhulgas seda prügiklasside pildikomplekti!
- Kas vajate rohkem abi? Võtke ühendust Lobe kogukonnaga Redditis!
Samm: ehitage see üles: riistvara
1. Ühendage Pi -kaamera ettevaatlikult Pi -ga (lisateabe saamiseks külastage Pi Foundationi alustamisjuhendit). (Foto 1)
2. Järgige ühendusskeemi, et ühendada nupp ja LED -id Pi GPIO tihvtidega.
- Nupp: Ühendage nupu üks jalg GPIO tihvtiga 2. Ühendage teine takisti kaudu GPIO GND tihvtiga.
- Kollane LED: ühendage positiivne (pikem) jalg GPIO tihvtiga 17. Ühendage teine jalg takisti kaudu GPIO GND tihvtiga.
- Sinine LED: ühendage positiivne jalg GPIO tihvtiga 27. Ühendage teine jalg takisti kaudu GPIO GND tihvtiga.
- Roheline LED: ühendage positiivne jalg GPIO tihvtiga 22. Ühendage teine jalg takisti kaudu GPIO GND tihvtiga.
- Punane LED: ühendage positiivne jalg GPIO tihvtiga 23. Ühendage teine jalg takisti kaudu GPIO GND tihvtiga.
- Valge LED: ühendage positiivne jalg GPIO tihvtiga 24. Ühendage teine jalg takisti kaudu GPIO GND tihvtiga.
3. Soovitatav on enne vooluahela jootmist või mis tahes ühenduse püsivaks muutmist testida oma vooluahelat leivaplaadil ja käivitada programm. Selleks peame oma tarkvaraprogrammi kirjutama ja üles laadima, seega läheme järgmise sammu juurde!
Samm: kodeerige see: tarkvara
1. Avage arvutis WinSCP ja looge ühendus oma Pi -ga. Looge oma Pi kodukataloogi kaust Lobe ja looge sellesse kataloogi mudelikaust.
2. Lohistage saadud Lobe TF kausta sisu Pi peale. Märkige failitee:/home/pi/Lobe/model
3. Avage Pi-l terminal ja laadige alla lobe-python raamatukogu Python3 jaoks, käivitades järgmised bash-käsud:
pip3 install
pip3 paigaldage lobe
4. Laadige sellest repost alla prügiklassifikaatori kood (rpi_trash_classifier.py) Pi -le (klõpsake nuppu "Kood", nagu on näidatud fotol 1).
- Kas eelistate kopeerida/kleepida? Too toores kood siit.
- Kas eelistate arvutisse alla laadida? Laadige repo/kood oma arvutisse ja seejärel viige Pythoni kood PiSC -le WinSCP (või teie eelistatud failifailide edastusprogrammi) kaudu.
5. Kui olete riistvara Pi GPIO tihvtidega ühendanud, lugege näidiskood läbi ja värskendage vajadusel kõiki failiteid:
- Rida 29: failitee Lobe TF mudelile
- Ridad 47 ja 83: PiP kaamera kaudu jäädvustatud piltide failitee
6. Vajadusel värskendage mudelisildid koodis, et need vastaksid täpselt teie Lobe mudeli siltidele (sh suurtähed, kirjavahemärgid jne):
- Rida 57: "prügi"
- Rida 60: ringlussevõtt
- Rida 63: "kompost"
- Rida 66: "ohtlike jäätmete käitluskoht"
- Rida 69: "mitte prügi!"
7. Käivitage programm terminaliaknas Python3 abil:
python3 rpi_trash_classifier.py
Samm: testige seda: käivitage programm
Programmi ülevaade
Programmi esmakordsel käivitamisel kulub TensorFlow raamatukogu ja mudeli Lobe ML laadimiseks veidi aega. Kui programm on pildistamiseks valmis, vilgub olekutuli (valge LED).
Kui olete pildi teinud, võrdleb programm pilti Lobe ML mudeliga ja väljastab saadud ennustuse (rida 83). Väljund määrab, milline tuli sisse lülitatakse: kollane (prügi), sinine (ringlusse võtta), roheline (kompost) või punane (ohtlikud jäätmed).
Kui ükski märgutuli ei sütti ja oleku LED naaseb impulssrežiimi, tähendab see, et jäädvustatud pilt oli "mitte prügikast", teisisõnu, tehke foto uuesti!
Pildi jäädvustamine
Pildistamiseks vajutage nupule. Pange tähele, et programmi vajutamiseks peate võib -olla hoidma vähemalt 1 sekundit nuppu all. Kaamera vaate ja kaadri paremaks mõistmiseks on soovitatav teha mõned testpildid, seejärel avada need töölaual.
Et anda kasutajale aega objekti paigutamiseks ja kaamera valgustuse reguleerimiseks, kulub pildi täielikuks jäädvustamiseks umbes 5 sekundit. Saate neid sätteid koodis muuta (read 35 ja 41), kuid pidage meeles, et Pi Foundation soovitab valguse taseme reguleerimiseks vähemalt 2 sekundit.
Tõrkeotsing
Suurim väljakutse on tagada, et jäädvustatud pilt oleks see, mida me ootame, seega võtke aega piltide ülevaatamiseks ja oodatud tulemuste võrdlemiseks LED -väljundiga. Vajadusel saate pilte edastada Lobe ML mudelile otsese järelduse tegemiseks ja kiiremaks võrdlemiseks.
Mõned asjad, mida tähele panna:
- TensorFlow raamatukogu viskab tõenäoliselt mõned hoiatusteated - see on tüüpiline selles näidiskoodis kasutatud versiooni jaoks.
- Ennustussildid peavad olema täpselt sellised, nagu on kirjutatud funktsioonis led_select (), sealhulgas suurtähed, kirjavahemärgid ja vahekaugused. Muutke neid kindlasti, kui teil on teistsugune Lobe mudel.
- Pi vajab pidevat toiteallikat. Pi toite tuli peaks olema ere, ühtlaselt punane.
- Kui üks või mitu LED -i ei sütti ootuspäraselt, kontrollige neid, sundides neid käsuga:
red_led.on ()
6. samm: (valikuline) Ehitage see: viimistlege oma ahel
Nüüd, kui oleme oma projekti testinud ja vajadusel silunud, nii et see töötab ootuspäraselt, oleme valmis oma vooluringi jootma!
Märkus. Kui teil pole jootekolvi, võite selle sammu vahele jätta. Üks alternatiiv on juhtmete ühendamine kuuma liimiga (see valik võimaldab teil asju hiljem parandada/lisada/kasutada, kuid on tõenäolisem, et need purunevad) või kasutada epoksüüd või muud sarnast püsiliimi (see valik on palju vastupidavam) kuid te ei saa pärast seda teha vooluringi ega potentsiaalselt Pi -d)
Kiire kommentaar minu disainivalikute kohta (foto 1):
- Valisin LED -ide ja Pi GPIO jaoks naissoost hüppajajuhtmed, kuna need võimaldavad mul LED -e eemaldada ja värve vahetada või neid vajadusel liigutada. Kui soovite ühendused püsivaks muuta, võite need vahele jätta.
- Samamoodi valisin nupule JST -pistiku.
Edasi ehitamisele
1. Lõika kõik naissoost hüppajajuhtmed pooleks (jah, kõik!). Eemaldage traadi eemaldajate abil umbes 1/4 tolli (1/2 cm) traadi isolatsioonist.
2. Joote iga LED -i jaoks 220Ω takisti negatiivse (lühema) jala külge. (Foto 2)
3. Lõigake väike tükk, umbes 1 cm (2 cm) termokahanevast torust ja lükake üle LED -i ja takisti ristmiku. Veenduge, et teine takisti jalg on ligipääsetav, seejärel soojendage kokkutõmbumistoru, kuni see kinnitab liigendi. (Foto 3)
4. Sisestage iga valgusdiood naissoost hüppajajuhtmepaari. (Foto 4)
5. Märgistage hüppaja juhtmed (nt teibiga), seejärel jootke hüppaja juhtmed oma trükkplaadile (PCB). (Foto 5)
6. Järgmisena kasutage (lõigatud) naissoost hüppajajuhet, et ühendada iga LED oma vastava Pi GPIO tihvtiga. Jootke ja märgistage hüppaja traat nii, et paljas metall ühenduks PCB kaudu positiivse LED -jalaga. (Foto 5)
Märkus. Selle juhtme jootmise koht sõltub teie trükkplaadi paigutusest. Samuti saate selle traadi jootma otse positiivse LED -hüppaja juhtme külge.
7. Jootke 220Ω takisti JST -pistiku negatiivse (musta) otsa külge. (Foto 6)
8. Jootke JST -pistik ja takisti nupule. (Foto 6)
9. Ühendage M-to-F hüppajajuhtmed surunupu pistiku ja GPIO tihvtide vahele (meeldetuletus: must on GND).
10. Katteühendused PCB kuuma liimi või epoksiidiga, et ühendus oleks turvalisem.
Märkus: kui otsustate kasutada epoksüvaiku, ei pruugi te tulevikus kasutada Pi GPIO tihvte teiste projektide jaoks. Kui olete selle pärast mures, lisage GPIO lintkaabel ja ühendage selle asemel hüppaja juhtmed.
7. samm: (valikuline) Ehitage see: juhtum
Looge oma Pi jaoks ümbris, mis hoiab kaamerat, surunuppu ja LED -e paigal, kaitstes samal ajal ka Pi -d. Papist korpuse kiireks prototüübiks kujundage oma ümbris või järgige allolevaid meie koostamisjuhiseid!
-
Jälgige väikese pappkarbi ülaosas surunupu, olekutule, identifikaatoritulede ja pi -kaamera akna asukohta (foto 1).
Märkus: Pi kaamera aken peaks olema umbes 3/4 "x 1/2"
-
Lõika oma täppisnuga jäljed välja.
Märkus: võib -olla soovite mõõtmeid testida (foto 1)
- Valikuline: värvige ümbris! Valisin pihustusvärvi:)
- Lõigake Pi -kaamera jaoks ristkülikukujuline "akna" kate (foto 4) ja liimige karbi sisekülg
-
Lõpuks lõigake välja Pi toitekaabli pesa.
Pi toitekaabli pesa jaoks sobivaima koha leidmiseks on soovitatav esmalt paigaldada kogu elektroonika
Samm: installige ja juurutage
See on kõik! Olete valmis oma projekti installima ja juurutama! Asetage ümbris prügikastide kohale, ühendage Pi ja käivitage programm, et saada kiirem ja usaldusväärsem viis meie jäätmete vähendamiseks. Jaa!
Läheb edasi
- Jagage oma projekte ja ideid teiste inimestega Lobe Redditi kogukonna kaudu!
- Vaadake Lobe Python GitHubi repost üldist ülevaadet selle kohta, kuidas kasutada Pythoni laiemate Lobe projektide juurutamiseks
- Küsimused või projektitaotlused? Jäta selle projekti kohta kommentaar või võta meiega otse ühendust: [email protected]
Soovitan:
Tehke RTC abil oma retro Nixie kell!: 7 sammu (piltidega)
Tehke oma Retro Nixie kell RTC -ga!: Selles projektis näitan teile, kuidas luua retro -nixie -kella. See tähendab, et näitan teile, kuidas saate juhtida nixie -torusid kõrgepinge alalisvoolu toiteallikaga, ja siis ühendan 4 nixie -toru koos Arduino, reaalajas kella (RTC) ja seadmega
Tehke oma ümbritsev valgustus Raspberry Pi Zero abil: 5 sammu (piltidega)
Tehke oma ümbritsev valgustus Raspberry Pi Zero abil: Selles projektis näitan teile, kuidas ühendada Raspberry Pi Zero paari täiendava osaga, et lisada telerile ümbritsev valgusefekt, mis parandab vaatamiskogemust. Alustame
Tehke oma ostsilloskoop (mini DSO) hõlpsalt STC MCU abil: 9 sammu (piltidega)
Tehke oma ostsilloskoop (Mini DSO) hõlpsalt STC MCU abil: see on lihtne ostsilloskoop, mis on valmistatud STC MCU -ga. Seda Mini DSO -d saate kasutada lainekuju jälgimiseks. Ajavahemik: 100us-500ms Pingevahemik: 0-30V Joonistusrežiim: vektor või punktid
Tehke raadioteleskoop Raspberry Pi abil: 6 sammu (piltidega)
Tehke raadioteleskoop Raspberry Pi abil: optilise teleskoobi hankimine on tõesti lihtne. Sellise teleskoobi tootjalt saate selle lihtsalt osta. Seda aga ei saa tegelikult öelda raadioteleskoopide kohta. Tavaliselt peate need ise valmistama. Selles juhendis näitan, kuidas
Tehke Fusion abil uhke ehtekarp: 7 sammu (piltidega)
Tehke Fusioni abil väljamõeldud ehtekarp: see on üks tüdrukulisemaid asju, mida ma Fusioniga tegin. Olen kasutanud materjalina klaasi, sest see aitab mul läbi näha. Ma tean, kui valus on ehteid otsida;)