Sisukord:

Tehke ML abil Pi prügiklassifikaator!: 8 sammu (piltidega)
Tehke ML abil Pi prügiklassifikaator!: 8 sammu (piltidega)

Video: Tehke ML abil Pi prügiklassifikaator!: 8 sammu (piltidega)

Video: Tehke ML abil Pi prügiklassifikaator!: 8 sammu (piltidega)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, November
Anonim
Tehke ML abil Pi prügiklassifikaator!
Tehke ML abil Pi prügiklassifikaator!
Tehke ML abil Pi prügiklassifikaator!
Tehke ML abil Pi prügiklassifikaator!

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

Enne kui alustame
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.

  1. Vaarika Pi tundmine

    • Siin on mugav alustamisjuhend!
    • Samuti on abiks: Pi -kaameraga alustamine
  2. Pythoni koodi lugemine ja muutmine (te ei pea programmi kirjutama, lihtsalt muutke)

    Sissejuhatus Pythonisse koos Raspberry Pi -ga

  3. Fritzingi ühendusskeemide lugemine
  4. 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

Looge Lobes kohandatud ML -mudel
Looge Lobes kohandatud ML -mudel
Looge Lobes kohandatud ML -mudel
Looge Lobes kohandatud ML -mudel
Looge Lobes kohandatud ML -mudel
Looge Lobes kohandatud ML -mudel
Looge Lobes kohandatud ML -mudel
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.

  1. Pildistage üksusi otse arvuti veebikaamerast või
  2. 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

Ehitamine: riistvara!
Ehitamine: riistvara!
Ehitamine: riistvara!
Ehitamine: riistvara!
Ehitamine: riistvara!
Ehitamine: 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

Kodeerige see: Tarkvara!
Kodeerige see: Tarkvara!
Kodeerige see: Tarkvara!
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

Testige: käivitage programm!
Testige: käivitage programm!
Testige: käivitage programm!
Testige: käivitage programm!
Testige: käivitage programm!
Testige: 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

(Valikuline) Ehitage see: viige oma ring lõpuni!
(Valikuline) Ehitage see: viige oma ring lõpuni!
(Valikuline) Ehitage see: viige oma ring lõpuni!
(Valikuline) Ehitage see: viige oma ring lõpuni!
(Valikuline) Ehitage see: viige oma ring lõpuni!
(Valikuline) Ehitage see: viige oma ring lõpuni!

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

(Valikuline) Ehitage see: juhtum!
(Valikuline) Ehitage see: juhtum!
(Valikuline) Ehitage see: ümbris!
(Valikuline) Ehitage see: ümbris!
(Valikuline) Ehitage see: ümbris!
(Valikuline) Ehitage see: ümbris!
(Valikuline) Ehitage see: ümbris!
(Valikuline) Ehitage see: ümbris!

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!

  1. 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"

  2. Lõika oma täppisnuga jäljed välja.

    Märkus: võib -olla soovite mõõtmeid testida (foto 1)

  3. Valikuline: värvige ümbris! Valisin pihustusvärvi:)
  4. Lõigake Pi -kaamera jaoks ristkülikukujuline "akna" kate (foto 4) ja liimige karbi sisekülg
  5. 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

Installige ja juurutage!
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: