Përmbajtje:

Bëni një klasifikues të plehrave Pi me ML !: 8 hapa (me fotografi)
Bëni një klasifikues të plehrave Pi me ML !: 8 hapa (me fotografi)

Video: Bëni një klasifikues të plehrave Pi me ML !: 8 hapa (me fotografi)

Video: Bëni një klasifikues të plehrave Pi me ML !: 8 hapa (me fotografi)
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, Nëntor
Anonim
Bëni një Klasifikues të plehrave Pi me ML!
Bëni një Klasifikues të plehrave Pi me ML!
Bëni një Klasifikues të plehrave Pi me ML!
Bëni një Klasifikues të plehrave Pi me ML!

Projekti i Klasifikuesit të Plehrave, i njohur me dashuri si "Ku shkon ?!", designedshtë krijuar për të bërë hedhjen e gjërave më shpejt dhe më të besueshme.

Ky projekt përdor një model Machine Learning (ML) të trajnuar në Lobe, një krijues i modelit ML miqësor për fillestarët (pa kod!), Për të identifikuar nëse një objekt futet në mbeturina, riciklim, plehrash ose mbeturina të rrezikshme. Modeli pastaj ngarkohet në një kompjuter Raspberry Pi 4 për ta bërë të përdorshëm kudo që mund të gjeni kosha plehrash!

Ky tutorial ju tregon se si të krijoni projektin tuaj të Trash Classifier në një Raspberry Pi nga një model Lobe TensorFlow në Python3.

Vështirësia: Fillestar ++ (disa njohuri me qarqe dhe kodim janë të dobishme)

Koha e leximit: 5 min

Koha e ndërtimit: 60 - 90 min

Kostoja: 70 dollarë (përfshirë Pi 4)

Furnizimet:

Softuer (nga ana e PC)

  • Lob
  • WinSCP (ose një metodë tjetër e transferimit të skedarëve SSH, mund të përdorë CyberDuck për Mac)
  • Terminal
  • Lidhja me Desktopin në distancë ose RealVNC

Hardware

  • Raspberry Pi, SD Card, dhe furnizim me energji USB-C (5V, 2.5A)
  • Kamera Pi
  • Butoni i butonit
  • 5 LED (4 LED tregues dhe 1 LED status)

    • LED i verdhë: mbeturina
    • LED blu: ricikloni
    • LED i gjelbër: plehrash
    • LED i kuq: mbeturina të rrezikshme
    • LED i bardhë: statusi
  • 6 rezistente 220 Ohm
  • 10 tela bluzë M-në-M
  • Breadboard, me madhësi gjysmë

Nëse zgjidhni të bashkoni:

  • 1 lidhës JST, vetëm fundi femëror
  • 2 tela kërcyes M-në-F
  • 10 tela kërcyes F-në-F
  • PCB

Rrethim

  • Kasa e projektit (p.sh. kartoni, druri ose kuti plastike, përafërsisht 6 "x 5" x 4 ")
  • Shesh plastik i qartë 0.5 "x 0.5" (2cm x 2cm)

    P.sh. nga kapaku i enës plastike të ushqimit

  • Velcro

Mjetet

  • Preres telash
  • Thikë precize (p.sh. thikë ekzakte) dhe dyshek prerës
  • Saldim (opsional)
  • Mjet i shkrirjes së nxehtë (ose ngjitës tjetër jo përçues-epoksi funksionon mirë, por është i përhershëm)

Hapi 1: Para se të fillojmë

Para se të Fillojmë
Para se të Fillojmë

Ky projekt supozon se po filloni me një Raspberry Pi të konfiguruar plotësisht në një konfigurim pa kokë. Këtu keni një udhëzues miqësor për fillestarët se si ta bëni këtë.

Gjithashtu ju ndihmon të keni njohuri për sa vijon:

  1. Njohja me Raspberry Pi

    • Këtu keni një udhëzues të dobishëm për fillimin!
    • Gjithashtu e dobishme: Fillimi me kamerën Pi
  2. Leximi dhe redaktimi i kodit Python (nuk do të keni nevojë të shkruani një program, thjesht redaktoni)

    Hyrje në Python me Raspberry Pi

  3. Leximi i diagrameve të lidhjes së ngrirjes
  4. Duke përdorur një dërrasë buke

    Si të përdorni një mësim të bordit të bukës

Zbuloni se ku shkojnë plehrat tuaja

Çdo qytet në të gjithë SHBA (dhe unë do të supozoja se globi) ka mbeturinat e tij/riciklimin/plehrash/etj. sistemi i grumbullimit. Kjo do të thotë se për të bërë një klasifikues të saktë të plehrave, do të na duhet 1) të ndërtojmë një model ML të personalizuar (këtë do ta mbulojmë në hapin tjetër - pa kod!) Dhe 2) të dimë se ku shkon çdo pjesë e plehrave.

Meqenëse nuk e njihja gjithmonë koshin e duhur për secilin artikull që kam përdorur për të stërvitur modelin tim, kam përdorur fletushkën e Seattle Utilities (Foto 1), dhe gjithashtu këtë "Ku shkon?" mjet kërkimi për qytetin e Seattle! Shikoni se cilat burime janë në dispozicion në qytetin tuaj duke kërkuar mjetin e grumbullimit të plehrave të qytetit tuaj dhe duke lexuar faqen e tij të internetit.

Hapi 2: Krijoni një Model ML të personalizuar në Lobe

Krijoni një model të personalizuar ML në Lobe
Krijoni një model të personalizuar ML në Lobe
Krijoni një model të personalizuar ML në Lobe
Krijoni një model të personalizuar ML në Lobe
Krijoni një Model ML të personalizuar në Lobe
Krijoni një Model ML të personalizuar në Lobe
Krijoni një Model ML të personalizuar në Lobe
Krijoni një Model ML të personalizuar në Lobe

Lobe është një mjet i lehtë për t’u përdorur që ka gjithçka që ju nevojitet për të sjellë në jetë idetë tuaja të mësimit të makinerisë. Tregojini shembuj të asaj që dëshironi të bëjë, dhe trajnon automatikisht një model të personalizuar të mësimit të makinerisë që mund të eksportohet për pajisjet dhe aplikacionet e përparuara. Nuk kërkon ndonjë përvojë për të filluar. Mund të stërviteni falas në kompjuterin tuaj!

Këtu keni një përmbledhje të shpejtë se si të përdorni Lobe:

1. Hapni programin Lobe dhe krijoni një projekt të ri.

2. Bëni ose importoni fotografi dhe etiketojini ato në kategoritë e duhura. (Foto 1) Këto etiketa do të na duhen më vonë në pjesën softuerike të projektit.

Ka dy mënyra për të importuar fotografi:

  1. Bëni fotografi të artikujve direkt nga kamera e internetit e kompjuterit tuaj, ose
  2. Importoni fotografi nga dosjet ekzistuese në kompjuterin tuaj.

    Mbani në mend se emri i dosjes së fotografive do të përdoret si emërtim i etiketës së kategorisë, prandaj sigurohuni që të përputhet me etiketat ekzistuese

Përveç: Përfundova duke përdorur të dyja metodat, pasi sa më shumë fotografi që keni, aq më i saktë është modeli juaj.

3. Përdorni funksionin "Luaj" për të testuar saktësinë e modelit. Ndryshoni distancat, ndriçimin, pozicionet e duarve, etj. Për të identifikuar se ku është modeli dhe nuk është i saktë. Shtoni më shumë fotografi sipas nevojës. (Fotografitë 3 - 4)

4. Kur të jeni gati, eksportoni modelin tuaj Lobe ML në një format TensorFlow (TF) Lite.

Këshilla:

  • Para se të importoni fotografi, bëni një listë të të gjitha kategorive që ju nevojiten dhe si doni t'i etiketoni ato (p.sh. "mbeturina", "riciklim", "plehrash", etj.)

    Shënim: Përdorni të njëjtat etiketa siç tregohet në foton "Lobe Model Labels" më sipër për të zvogëluar sasinë e kodit që duhet të ndryshoni

  • Përfshi një kategori për "jo plehra" që ka fotografi të çdo gjëje tjetër që mund të jetë në foto (p.sh. duart dhe krahët, sfondi, etj.)
  • Nëse është e mundur, bëni fotografi nga Kamera Pi dhe importojini në Lobe. Kjo do të përmirësojë shumë saktësinë e modelit tuaj!
  • Keni nevojë për më shumë fotografi? Shikoni grupet e të dhënave me burim të hapur në Kaggle, përfshirë këtë grup të imazhit të klasifikimit të mbeturinave!
  • Keni nevojë për më shumë ndihmë? Lidhuni me Loom Coommunity në Reddit!

Hapi 3: Ndërtoni: Hardware

Ndërtoni: Hardware!
Ndërtoni: Hardware!
Ndërtoni: Hardware!
Ndërtoni: Hardware!
Ndërtoni: Hardware!
Ndërtoni: Hardware!

1. Lidhni me kujdes Pi Kamera me Pi (vizitoni udhëzuesin e fillimit të Fondacionit Pi për më shumë informacion). (Foto 1)

2. Ndiqni diagramin e instalimeve elektrike për të lidhur butonin me buton dhe LED në kunjat e Pi GPIO.

  • Butoni i butonit: Lidhni njërën këmbë të butonit me pin GPIO 2. Lidhni tjetrën, përmes një rezistence, me një kunj GPIO GND.
  • LED i verdhë: Lidhni këmbën pozitive (më të gjatë) me kunjin GPIO 17. Lidhni këmbën tjetër, nëpërmjet një rezistori, me një kunj GPIO GND.
  • LED i kaltër: Lidhni këmbën pozitive me kunjin GPIO 27. Lidhni këmbën tjetër, nëpërmjet një rezistori, me një kunj GPIO GND.
  • LED i gjelbër: Lidhni këmbën pozitive me kunjin GPIO 22. Lidhni këmbën tjetër, nëpërmjet një rezistori, me një kunj GPIO GND.
  • LED i kuq: Lidhni këmbën pozitive me kunjin GPIO 23. Lidhni këmbën tjetër, nëpërmjet një rezistori, me një kunj GPIO GND.
  • LED i bardhë: Lidhni këmbën pozitive me kunjin GPIO 24. Lidhni këmbën tjetër, nëpërmjet një rezistori, me një kunj GPIO GND.

3. Rekomandohet të provoni qarkun tuaj në një dërrasë buke dhe të ekzekutoni programin para se të bashkoni ose bëni ndonjë prej lidhjeve të përhershme. Për ta bërë këtë, do të na duhet të shkruajmë dhe ngarkojmë programin tonë softuerik, kështu që le të shkojmë në hapin tjetër!

Hapi 4: Kodojeni atë: Softuer

Kodojeni atë: Softuer!
Kodojeni atë: Softuer!
Kodojeni atë: Softuer!
Kodojeni atë: Softuer!

1. Në kompjuterin tuaj, hapni WinSCP dhe lidheni me Pi -në tuaj. Krijoni një dosje Lobe në drejtorinë shtëpiake të Pi tuaj dhe krijoni një dosje model në atë drejtori.

2. Tërhiqni përmbajtjen e dosjes Lobe TF që rezulton në Pi. Shënoni rrugën e skedarit:/home/pi/Lobe/model

3. Në Pi, hapni një terminal dhe shkarkoni bibliotekën lobe-python për Python3 duke ekzekutuar komandat e mëposhtme bash:

pip3 instaloni

lobe instalimi pip3

4. Shkarkoni kodin e Klasifikuesit të Plehrave (rpi_trash_classifier.py) nga kjo repo në Pi (klikoni butonin "Kodi" siç tregohet në Fotografinë 1).

  • Preferoni të kopjoni/ngjisni? Merrni kodin e papërpunuar këtu.
  • Preferoni të shkarkoni në kompjuterin tuaj? Shkarkoni repon/kodin në kompjuterin tuaj, pastaj transferoni kodin Python në Pi përmes WinSCP (ose programin tuaj të preferuar të transferimit të skedarëve në distancë).

5. Pasi të keni lidhur pajisjen me kunjat GPIO të Pi, lexoni kodin shembull dhe përditësoni çdo shteg skedari sipas nevojës:

  • Linja 29: rruga e skedarit drejt modelit Lobe TF
  • Linjat 47 dhe 83: shtegu i skedarëve për imazhet e kapura përmes Kamera Pi

6. Nëse është e nevojshme, përditësoni etiketat e modelit në kod që të përputhen saktësisht me etiketat në modelin tuaj Lobe (duke përfshirë shkronjën e madhe, pikësimin, etj.):

  • Linja 57: "mbeturina"
  • Linja 60: "riciklo"
  • Linja 63: "plehrash"
  • Linja 66: "objekti i mbetjeve të rrezikshme"
  • Rreshti 69: "jo plehra!"

7. Drejtoni programin duke përdorur Python3 në dritaren e terminalit:

python3 rpi_trash_classifier.py

Hapi 5: Provojeni: Drejtoni Programin

Provojeni atë: Drejtoni programin!
Provojeni atë: Drejtoni programin!
Provojeni atë: Drejtoni programin!
Provojeni atë: Drejtoni programin!
Provojeni atë: Drejtoni programin!
Provojeni atë: Drejtoni programin!

Vështrim i përgjithshëm i programit

Kur filloni programin për herë të parë, do të duhet pak kohë për të ngarkuar bibliotekën TensorFlow dhe modelin Lobe ML. Kur programi është gati për të kapur një imazh, drita e statusit (LED e bardhë) do të pulsojë.

Pasi të keni marrë një imazh, programi do të krahasojë imazhin me modelin Lobe ML dhe do të nxjerrë parashikimin që rezulton (rreshti 83). Dalja përcakton se cila dritë ndizet: e verdhë (plehra), blu (ricikloj), jeshile (plehrash) ose e kuqe (mbeturina të rrezikshme).

Nëse asnjë nga LED -të tregues nuk ndizet dhe LED i statusit kthehet në modalitetin e pulsit, kjo do të thotë që imazhi i kapur "nuk ishte pleh", me fjalë të tjera, rimerrni foton!

Regjistrimi i një Imazhi

Shtypni butonin për të kapur një imazh. Vini re se mund t'ju duhet të mbani butonin për të paktën 1 sekonda që programi të regjistrojë shtypin. Rekomandohet të merrni disa imazhe provë, pastaj hapini ato në Desktop për të kuptuar më mirë pamjen dhe kornizën e kamerës.

Për t'i dhënë përdoruesit kohë për të pozicionuar objektin dhe për të rregulluar nivelet e dritës së kamerës, duhen rreth 5 sekonda për të kapur plotësisht një imazh. Ju mund t'i ndryshoni këto cilësime në kod (rreshtat 35 dhe 41), por mbani në mend Fondacioni Pi rekomandon një minimum prej 2 sekondash për rregullimin e nivelit të dritës.

Zgjidhja e problemeve

Sfida më e madhe është të sigurohet që imazhi i kapur është ai që ne presim, kështu që merrni pak kohë për të rishikuar imazhet dhe për të krahasuar rezultatet e pritura me daljen e treguesit LED. Nëse është e nevojshme, mund t'i kaloni imazhet modelit Lobe ML për inferenim të drejtpërdrejtë dhe krahasim më të shpejtë.

Disa gjëra për tu vënë në dukje:

  • Biblioteka TensorFlow ka të ngjarë të hedhë disa mesazhe paralajmëruese - kjo është tipike për versionin e përdorur në këtë kod mostër.
  • Etiketat e parashikimit duhet të jenë saktësisht siç janë shkruar në funksionin led_select (), duke përfshirë shkronjën e madhe, pikësimin dhe hapësirën. Sigurohuni që t'i ndryshoni këto nëse keni një model të ndryshëm Lobe.
  • Pi kërkon një furnizim të qëndrueshëm të energjisë. Drita e fuqisë Pi duhet të jetë e ndritshme, e kuqe e fortë.
  • Nëse një ose më shumë LED nuk ndizen kur pritet, kontrolloni duke i detyruar ato me komandën:

kuqe_e.me ()

Hapi 6: (Opsional) Ndërtoni atë: Përfundoni qarkun tuaj

(Opsionale) Ndërtoni: Përfundoni qarkun tuaj!
(Opsionale) Ndërtoni: Përfundoni qarkun tuaj!
(Opsionale) Ndërtoni: Përfundoni qarkun tuaj!
(Opsionale) Ndërtoni: Përfundoni qarkun tuaj!
(Opsionale) Ndërtoni: Përfundoni qarkun tuaj!
(Opsionale) Ndërtoni: Përfundoni qarkun tuaj!

Tani që ne kemi testuar dhe, nëse është e nevojshme, debuguar, projektin tonë në mënyrë që të funksionojë siç pritej, ne jemi gati të lidhim qarkun tonë!

Shënim: Nëse nuk keni një hekur bashkues, mund ta kaloni këtë hap. Një alternativë është të lyeni lidhjet e telave me zam të nxehtë (ky opsion do t'ju lejojë të rregulloni/shtoni/përdorni gjëra më vonë, por ka më shumë gjasa të prishen), ose të përdorni epoksi ose një ngjitës të ngjashëm të përhershëm (ky opsion do të jetë shumë më i qëndrueshëm por nuk do të jeni në gjendje të përdorni qarkun ose potencialisht Pi pasi ta bëni këtë)

Koment i shpejtë në lidhje me zgjedhjet e mia të dizajnit (Foto 1):

  • Zgjodha telat e bluzave femra për LED dhe Pi GPIO sepse ato më lejojnë të heq LED dhe të shkëmbej ngjyrat ose t'i lëviz ato nëse është e nevojshme. Ju mund t'i kaloni këto nëse doni t'i bëni lidhjet të përhershme.
  • Në mënyrë të ngjashme, unë zgjodha një lidhës JST për butonin shtytës.

Përpara drejt ndërtimit

1. Pritini secilën prej telave të bluzave femra në gjysmë (po, të gjitha!). Duke përdorur shirita teli, hiqni rreth 1/4 (1/2cm) të izolimit të telit.

2. Për secilën prej LED -ve, lidhni një rezistencë 220Ω në këmbën negative (më të shkurtër). (Foto 2)

3. Pritini një copë të vogël, rreth 1 (2cm) tub të tkurrjes së nxehtësisë dhe shtyjeni mbi kryqëzimin LED dhe rezistencë. Sigurohuni që këmba tjetër e rezistencës të jetë e arritshme, pastaj ngrohni tubin e tkurrjes derisa të sigurojë nyjen. (Foto 3)

4. Futni secilën LED në një palë tela kërcyes femrash. (Foto 4)

5. Etiketoni telat e kërcyesit (p.sh. me shirit), pastaj lidhni telat e kërcyesit në tabelën tuaj të qarkut të shtypur (PCB). (Foto 5)

6. Tjetra, përdorni një tel bluzë (të prerë) femër për të lidhur secilën LED me kunjën përkatëse Pi GPIO. Ngjitni dhe etiketoni një tel bluzë në mënyrë që metali i zhveshur të lidhet me këmbën LED pozitive përmes PCB. (Foto 5)

Shënim: Ku e lidhni këtë tel do të varet nga paraqitja juaj e PCB. Ju gjithashtu mund ta lidhni këtë tel direkt me telin bluzë pozitiv LED.

7. Bashkoni një rezistencë 220Ω në skajin negativ (të zi) të lidhësit JST. (Foto 6)

8. Bashkoni lidhësin JST dhe rezistencën në butonin. (Foto 6)

9. Lidhni telat e kërcyesit M-to-F midis lidhësit të butonit të shtytjes dhe kunjave GPIO (kujtesë: e zeza është GND).

10. Lyeni lidhjet PCB në zam të nxehtë ose epoksi për një lidhje më të sigurt.

Shënim: nëse zgjidhni të përdorni epoksi, mund të mos jeni në gjendje të përdorni kunjat GPIO të Pi për projekte të tjera në të ardhmen. Nëse jeni të shqetësuar për këtë, shtoni një kabllo fjongo GPIO dhe në vend të kësaj lidhni telat e kërcyesit me të.

Hapi 7: (Opsionale) Ndërtoni: Rast

(Opsionale) Ndërtoni: Rast!
(Opsionale) Ndërtoni: Rast!
(Opsionale) Ndërtoni: Rast!
(Opsionale) Ndërtoni: Rast!
(Opsionale) Ndërtoni: Rast!
(Opsionale) Ndërtoni: Rast!
(Opsionale) Ndërtoni: Rast!
(Opsionale) Ndërtoni: Rast!

Krijoni një rrethim për Pi tuaj që do të mbajë kamerën, butonin dhe LED në vend duke mbrojtur gjithashtu Pi. Dizenjoni rrethimin tuaj ose ndiqni udhëzimet tona të ndërtimit më poshtë për të prototipuar shpejt një rrethim kartoni!

  1. Në krye të kutisë së vogël të kartonit, gjurmoni vendet për butonin me buton, dritën e gjendjes, dritat identifikuese dhe dritaren e kamerës pi (Foto 1).

    Shënim: Dritarja e kamerës Pi duhet të jetë rreth 3/4 "x 1/2"

  2. Duke përdorur thikën tuaj precize, prerë gjurmët.

    Shënim: ju mund të dëshironi të provoni madhësitë ndërsa ecni (Foto 1)

  3. Opsionale: Ngjyroseni kasën! Zgjodha bojë me llak:)
  4. Pritini një kapak "dritare" drejtkëndëshe për Kamera Pi (Foto 4) dhe ngjiteni në brendësi të kutisë
  5. Së fundi, prerë vendin për kabllon e energjisë Pi.

    Rekomandohet që së pari të instaloni të gjitha pajisjet elektronike për të gjetur vendin më të mirë për folenë e kabllove të energjisë pi

Hapi 8: Instaloni dhe vendosni

Instaloni dhe vendosni!
Instaloni dhe vendosni!

Kjo eshte! Ju jeni gati për të instaluar dhe vendosur projektin tuaj! Vendoseni rrethimin mbi kazanët tuaj të plehrave, futni Pi dhe futeni në program për të marrë një mënyrë më të shpejtë dhe më të besueshme për të zvogëluar mbeturinat tona. Po!

Duke ecur perpara

  • Ndani projektet dhe idetë tuaja me njerëz të tjerë përmes komunitetit Lobe Reddit!
  • Shikoni repon Lobe Python GitHub për një pasqyrë të përgjithshme se si të përdorni Python për të vendosur një larmi më të gjerë të projekteve Lobe
  • Pyetje apo kërkesa për projekt? Lini një koment për këtë projekt ose na kontaktoni drejtpërdrejt: [email protected]

Recommended: