Obsah:

Vytvorte klasifikátor koša Pi s ML!: 8 krokov (s obrázkami)
Vytvorte klasifikátor koša Pi s ML!: 8 krokov (s obrázkami)

Video: Vytvorte klasifikátor koša Pi s ML!: 8 krokov (s obrázkami)

Video: Vytvorte klasifikátor koša Pi s ML!: 8 krokov (s obrázkami)
Video: Избавьтесь от пластика и океаны #TeamSeas 2024, November
Anonim
Vytvorte klasifikátor koša Pi s ML!
Vytvorte klasifikátor koša Pi s ML!
Vytvorte klasifikátor koša Pi s ML!
Vytvorte klasifikátor koša Pi s ML!

Projekt Košový klasifikátor, láskyplne známy ako „Kam to ide ?!“, je navrhnutý tak, aby bolo vyhadzovanie vecí rýchlejšie a spoľahlivejšie.

Tento projekt používa model Machine Learning (ML) vycvičený v Lobe, staviteľovi modelu ML, ktorý je vhodný pre začiatočníkov (bez kódu!), Na identifikáciu toho, či sa predmet dostane do odpadu, recyklácie, kompostu alebo nebezpečného odpadu. Model je potom načítaný do počítača Raspberry Pi 4, aby bol použiteľný kdekoľvek, kde nájdete odpadkové koše!

Tento tutoriál vás prevedie tým, ako si vytvoriť vlastný projekt klasifikátora koša na Raspberry Pi z modelu Lobe TensorFlow v Pythone3.

Obtiažnosť: Začiatočník ++ (niektoré znalosti o obvodoch a kódovaní sú užitočné)

Čas na čítanie: 5 min

Čas stavby: 60 - 90 min

Cena: ~ 70 dolárov (vrátane Pi 4)

Zásoby:

Softvér (na strane PC)

  • Lobe
  • WinSCP (alebo iný spôsob prenosu súborov SSH, môže používať CyberDuck pre Mac)
  • Terminál
  • Pripojenie k vzdialenej ploche alebo RealVNC

Hardvér

  • Napájanie Raspberry Pi, karta SD a USB-C (5 V, 2,5 A)
  • Pi kamera
  • Tlačidlo
  • 5 LED diód (4 indikačné LED a 1 stavová LED)

    • Žltá LED: odpadky
    • Modrá LED: recyklovať
    • Zelená LED: kompost
    • Červená LED: nebezpečný odpad
    • Biela LED: stav
  • 6 220 ohmových rezistorov
  • 10 prepojovacích káblov M-to-M
  • Breadboard, polovičnej veľkosti

Ak sa rozhodnete spájkovať:

  • 1 konektor JST, iba zásuvka
  • 2 prepojovacie vodiče M-to-F
  • 10 prepojovacích káblov F-to-F
  • DPS

Ohrada

  • Kufrík na projekt (napr. Kartónový, drevený alebo plastový box, približne 6 palcov x 5 palcov x 4 palcov)
  • 2 cm x 2 cm) číry plastový štvorec

    Napr. z plastového veka nádoby na potraviny

  • Suchý zips

Nástroje

  • Strihač káblov
  • Presný nôž (napr. Nôž exaktný) a rezacia podložka
  • Spájkovačka (voliteľné)
  • Nástroj na tavné tavenie (alebo iné nevodivé lepidlo-epoxid funguje skvele, ale je trvalý)

Krok 1: Skôr než začneme

Než začneme
Než začneme

Tento projekt predpokladá, že začínate s plne nastaveným Raspberry Pi v konfigurácii bez hlavy. Tu je návod, ako to urobiť, pre začiatočníkov.

Pomáha tiež mať určité znalosti o nasledujúcich veciach:

  1. Zoznámenie sa s Raspberry Pi

    • Tu je užitočný sprievodca na začiatok!
    • Tiež užitočné: Začíname s kamerou Pi
  2. Čítanie a úprava kódu Python (nebudete musieť písať program, stačí upraviť)

    Úvod do Pythonu s Raspberry Pi

  3. Čítanie Fritzingových schém zapojenia
  4. Použitie breadboardu

    Ako používať výukový program na breadboarde

Zistite, kam smerujú vaše odpadky

Každé mesto v USA (a predpokladám, že na celom svete) má svoje vlastné odpadky/recykláciu/kompost/atď. zberný systém. To znamená, že na to, aby bol klasifikátor koša presný, budeme musieť 1) vytvoriť vlastný model ML (v nasledujúcom kroku sa ním budeme zaoberať - žiadny kód!) A 2) vedieť, kam každý kus odpadu smeruje.

Pretože som nie vždy poznal správny kôš pre každú položku, ktorou som trénoval svoj model, použil som leták Seattle Utilities (foto 1) a tiež toto šikovné „Kam to ide?“vyhľadávací nástroj pre mesto Seattle! Zistite, aké zdroje máte vo svojom meste k dispozícii, vyhľadajte vo svojom meste nástroj na zber odpadu a prezrite si jeho webovú stránku.

Krok 2: V Lobe vytvorte vlastný model ML

Vytvorte si vlastný model ML v Lobe
Vytvorte si vlastný model ML v Lobe
Vytvorte si vlastný model ML v Lobe
Vytvorte si vlastný model ML v Lobe
Vytvorte si vlastný model ML v Lobe
Vytvorte si vlastný model ML v Lobe
Vytvorte si vlastný model ML v Lobe
Vytvorte si vlastný model ML v Lobe

Lobe je ľahko použiteľný nástroj, ktorý má všetko, čo potrebujete na uvedenie svojich myšlienok strojového učenia do života. Ukážte mu príklady toho, čo má robiť, a automaticky natrénuje vlastný model strojového učenia, ktorý je možné exportovať pre zariadenia a aplikácie Edge. Na začiatok nie sú potrebné žiadne skúsenosti. Môžete trénovať na vlastnom počítači zadarmo!

Tu je rýchly prehľad o tom, ako používať Lobe:

1. Otvorte program Lobe a vytvorte nový projekt.

2. Vytvorte alebo importujte fotografie a označte ich príslušnými kategóriami. (Foto 1) Tieto štítky budeme potrebovať neskôr v softvérovej časti projektu.

Existujú dva spôsoby importu fotografií:

  1. Fotografujte položky priamo z webovej kamery počítača, alebo
  2. Importujte fotografie z existujúcich priečinkov v počítači.

    Majte na pamäti, že názov priečinka s fotografiami bude použitý ako názov štítka kategórie, preto sa uistite, že sa zhoduje s existujúcimi štítkami

Okrem toho: Nakoniec som použil obe metódy, pretože čím viac fotografií máte, tým presnejší je váš model.

3. Na otestovanie presnosti modelu použite funkciu „Play“. Zmeňte vzdialenosti, osvetlenie, polohy rúk atď., Aby ste zistili, kde je model a ktorý nie je presný. Podľa potreby pridajte ďalšie fotografie. (Fotografie 3 - 4)

4. Keď budete pripravení, exportujte svoj model Lobe ML vo formáte TensorFlow (TF) Lite.

Tipy:

  • Pred importovaním fotografií si vytvorte zoznam všetkých kategórií, ktoré budete potrebovať, a spôsob, akým ich chcete označiť (napr. „Odpadky“, „recyklácia“, „kompost“atď.)

    Poznámka: Na zníženie množstva kódu, ktorý potrebujete zmeniť, použite rovnaké štítky, ako sú uvedené na fotografii „Lobe Model Labels“vyššie

  • Zahrňte kategóriu „nie odpadky“, ktorá obsahuje fotografie čohokoľvek, čo môže byť na fotografii (napr. Vaše ruky a paže, pozadie atď.)
  • Ak je to možné, nasnímajte fotografie z fotoaparátu Pi a importujte ich do Lobe. To výrazne zlepší presnosť vášho modelu!
  • Potrebujete viac fotografií? Pozrite sa na súbory údajov s otvoreným zdrojovým kódom na Kaggle, vrátane tejto sady obrázkov klasifikácie odpadu!
  • Potrebujete ďalšiu pomoc? Spojte sa s Lobe Coommunity na Reddite!

Krok 3: Zostavte si: hardvér

Postavte to: hardvér!
Postavte to: hardvér!
Postavte to: hardvér!
Postavte to: hardvér!
Postavte to: hardvér!
Postavte to: hardvér!

1. Opatrne pripojte kameru Pi k počítaču Pi (ďalšie informácie nájdete v príručke Začíname so spoločnosťou Pi Foundation). (Foto 1)

2. Podľa schémy zapojenia pripojte tlačidlo a LED k pinom Pi GPIO.

  • Tlačidlo: Pripojte jednu nohu tlačidla ku kolíku GPIO 2. Druhú pripojte cez odpor k kolíku GPIO GND.
  • Žltá dióda LED: Pripojte kladnú (dlhšiu) nohu ku kolíku GPIO 17. Druhú nohu pripojte cez odpor k kolíku GPIO GND.
  • Modrá LED: Pripojte kladnú nohu na kolík GPIO 27. Druhú nohu pripojte pomocou rezistora na kolík GPIO GND.
  • Zelená LED: Pripojte kladnú nohu ku kolíku GPIO 22. Druhú nohu pripojte cez odpor k pinu GPIO GND.
  • Červená LED: Pripojte kladnú nohu na kolík GPIO 23. Druhú nohu pripojte cez odpor na pin GPIO GND.
  • Biela LED: Pripojte kladnú nohu na kolík GPIO 24. Druhú nohu pripojte cez odpor na pin GPIO GND.

3. Odporúča sa otestovať váš obvod na doske a spustiť program pred spájkovaním alebo tým, ako urobíte akékoľvek spojenie trvalým. Na to budeme potrebovať napísať a nahrať náš softvérový program, takže prejdeme k ďalšiemu kroku!

Krok 4: Kódujte: softvér

Kódujte: Softvér!
Kódujte: Softvér!
Kódujte: Softvér!
Kódujte: Softvér!

1. Na počítači otvorte WinSCP a pripojte sa k svojmu Pi. Vytvorte priečinok Lobe v domovskom adresári Pi a v tomto adresári vytvorte modelový priečinok.

2. Presuňte výsledný obsah priečinka Lobe TF na Pi. Poznačte si cestu k súboru:/home/pi/Lobe/model

3. Na Pi otvorte terminál a stiahnite si knižnicu lobe-python pre Python3 spustením nasledujúcich príkazov bash:

pip3 install

inštalačný lalok pip3

4. Stiahnite si kód klasifikátora koša (rpi_trash_classifier.py) z tohto úložiska na Pi (kliknite na tlačidlo „Kód“, ako je znázornené na fotografii 1).

  • Chcete kopírovať/prilepiť? Surový kód získate tu.
  • Preferujete sťahovanie do počítača? Stiahnite si repo/kód do počítača a potom preneste kód Pythonu na Pi pomocou WinSCP (alebo vášho preferovaného programu na vzdialený prenos súborov).

5. Akonáhle pripojíte hardvér k pinom GPIO Pi, prečítajte si vzorový kód a podľa potreby aktualizujte všetky cesty k súborom:

  • Riadok 29: cesta súboru k modelu Lobe TF
  • Riadky 47 a 83: cesta k súborom nasnímaným obrázkom prostredníctvom fotoaparátu Pi

6. V prípade potreby aktualizujte štítky modelov v kóde tak, aby sa presne zhodovali so štítkami vo vašom modeli Lobe (vrátane veľkých písmen, interpunkcie atď.):

  • Riadok 57: „odpadky“
  • Riadok 60: „Recyklovať“
  • Riadok 63: „kompost“
  • Riadok 66: „Zariadenie na nebezpečné odpady“
  • Riadok 69: „nie do koša!“

7. Spustite program pomocou programu Python3 v okne terminálu:

python3 rpi_trash_classifier.py

Krok 5: Otestujte to: Spustite program

Otestujte to: spustite program!
Otestujte to: spustite program!
Otestujte to: spustite program!
Otestujte to: spustite program!
Otestujte to: spustite program!
Otestujte to: spustite program!

Prehľad programu

Pri prvom spustení programu bude nejaký čas trvať, kým sa načíta knižnica TensorFlow a model Lobe ML. Keď je program pripravený na zachytenie obrázku, stavová kontrolka (biela LED dióda) začne pulzovať.

Akonáhle urobíte obrázok, program ho porovná s modelom Lobe ML a vydá výslednú predpoveď (riadok 83). Výstup určuje, ktoré svetlo je zapnuté: žlté (odpadky), modré (recyklácia), zelené (kompost) alebo červené (nebezpečný odpad).

Ak sa žiadna z indikačných diód LED nerozsvieti a stavová dióda LED sa vráti do pulzného režimu, znamená to, že zachytený obrázok „nebol v koši“, inými slovami, znova urobte fotografiu!

Zachytenie obrázku

Stlačením tlačidla nasnímate obrázok. Na to, aby program zaregistroval lis, môže byť potrebné, aby ste tlačidlo podržali najmenej 1 s. Odporúča sa nasnímať niekoľko testovacích snímok a potom ich otvoriť na ploche, aby ste lepšie porozumeli pohľadu a rámiku fotoaparátu.

Aby používateľovi poskytol čas na umiestnenie predmetu a na úpravu úrovní osvetlenia fotoaparátu, trvá úplné nasnímanie snímky približne 5 s. Tieto nastavenia môžete zmeniť v kóde (riadky 35 a 41), ale majte na pamäti, že Pi Foundation odporúča na úpravu úrovne svetla minimálne 2 s.

Riešenie problémov

Najväčšou výzvou je zaistiť, aby bol nasnímaný obraz taký, ako očakávame. Nájdite si preto čas na kontrolu obrázkov a porovnanie očakávaných výsledkov s výstupom indikátora LED. V prípade potreby môžete obrázky odoslať do modelu Lobe ML na priame usudzovanie a rýchlejšie porovnávanie.

Niekoľko vecí na vedomie:

  • Knižnica TensorFlow pravdepodobne vyvolá niekoľko varovných správ - to je typické pre verziu použitú v tomto ukážkovom kóde.
  • Menovky predpovedí musia byť presne také, ako sú napísané vo funkcii led_select (), vrátane veľkých písmen, interpunkcie a medzier. Ak máte iný model Lobe, určite ich zmeňte.
  • Pi vyžaduje stabilné napájanie. Kontrolka napájania pí by mala byť jasná, neprerušovane červená.
  • Ak sa jedna alebo viac diód LED nezapne podľa očakávania, skontrolujte ich zapnutím príkazom:

red_led.on ()

Krok 6: (Voliteľné) Zostavte si: Dokončite svoj obvod

(Voliteľné) Zostavte si: Dokončite svoj obvod!
(Voliteľné) Zostavte si: Dokončite svoj obvod!
(Voliteľné) Zostavte si: Dokončite svoj obvod!
(Voliteľné) Zostavte si: Dokončite svoj obvod!
(Voliteľné) Zostavte si: Dokončite svoj obvod!
(Voliteľné) Zostavte si: Dokončite svoj obvod!

Teraz, keď sme testovali a v prípade potreby ladili náš projekt, aby fungoval podľa očakávania, sme pripravení spájkovať náš obvod!

Poznámka: Ak nemáte spájkovačku, môžete tento krok vynechať. Jednou z alternatív je natrieť pripojenia drôtov horúcim lepidlom (táto možnosť vám umožní opraviť/pridať/použiť veci neskôr, ale je väčšia pravdepodobnosť, že sa zlomí), alebo použiť epoxid alebo podobné trvalé lepidlo (táto možnosť bude oveľa odolnejšia ale potom nebudete môcť použiť obvod alebo potenciálne Pi)

Rýchly komentár k mojim možnostiam dizajnu (Foto 1):

  • Rozhodol som sa pre prepojovacie vodiče pre LED a Pi GPIO, pretože mi umožňujú v prípade potreby LED diódy odstrániť a vymeniť farby alebo ich premiestniť. Ak chcete, aby boli pripojenia trvalé, môžete ich preskočiť.
  • Podobne som pre tlačidlo zvolil konektor JST.

Ďalej do budovy

1. Každý ženský prepojovací drôt prerežte na polovicu (áno, všetky!). Pomocou odizolovača odstráňte asi 1/2 palca (1/2 cm) izolácie drôtu.

2. Pre každú z diód LED pripájajte odpor 220Ω k zápornej (kratšej) nohe. (Foto 2)

3. Odrežte malý kúsok, asi 1 cm (2 cm) zmršťovacej trubice a zatlačte na spoj LED a rezistora. Zaistite, aby bola prístupná druhá noha rezistora, potom zohrievajte zmršťovaciu trubicu, kým nezabezpečí spoj. (Foto 3)

4. Vložte každú LED do dvojice prepojovacích vodičov. (Foto 4)

5. Označte prepojovacie vodiče (napr. Páskou) a potom spájajte prepojovacie vodiče na doske s plošnými spojmi (DPS). (Foto 5)

6. Ďalej pomocou (odstrihnutého) prepojovacieho vodiča prepojte každú LED s príslušným pinom Pi GPIO. Spájkujte a označte prepojovací kábel, aby sa holý kov pripojil k kladnej nohe LED pomocou dosky plošných spojov. (Foto 5)

Poznámka: Kde spájkujete tento vodič, bude závisieť od rozloženia dosky plošných spojov. Tento drôt môžete tiež spájkovať priamo s kladným prepojovacím káblom LED.

7. Spájkujte odpor 220Ω na záporný (čierny) koniec konektora JST. (Foto 6)

8. Pripojte konektor JST a odpor k tlačidlu. (Foto 6)

9. Pripojte prepojovacie vodiče M-to-F medzi konektor tlačidla a kolíky GPIO (pripomenutie: čierna je GND).

10. Pripojenie DPS potrite horúcim lepidlom alebo epoxidom, aby bolo spojenie bezpečnejšie.

Poznámka: Ak sa rozhodnete používať epoxid, v budúcnosti možno nebudete môcť použiť kolíky GPIO Pi pre iné projekty. Ak vám to robí starosti, pripojte plochý kábel GPIO a namiesto toho k nemu pripojte prepojovacie vodiče.

Krok 7: (Voliteľné) Zostavte si: Prípad

(Voliteľné) Build It: Case!
(Voliteľné) Build It: Case!
(Voliteľné) Build It: Case!
(Voliteľné) Build It: Case!
(Voliteľné) Build It: Case!
(Voliteľné) Build It: Case!
(Voliteľné) Build It: Case!
(Voliteľné) Build It: Case!

Vytvorte pre svoj Pi kryt, ktorý bude držať kameru, tlačidlo a diódy LED na svojom mieste a zároveň bude chrániť Pi. Navrhnite si svoj vlastný box alebo sa riaďte našimi pokynmi na zostavenie, aby ste rýchlo vytvorili prototyp kartónového boxu!

  1. V hornej časti malej kartónovej škatule vyznačte umiestnenie tlačidla, stavového svetla, identifikačných svetiel a okna pi kamery (foto 1).

    Poznámka: Okno kamery Pi by malo mať približne 3/4 palca x 1/2 palca

  2. Presným nožom vyrežte stopy.

    Poznámka: možno budete chcieť testovať veľkosti za pochodu (Foto 1)

  3. Voliteľné: Maľujte puzdro! Rozhodol som sa pre farbu v spreji:)
  4. Vystrihnite obdĺžnikový kryt „okna“pre kameru Pi (foto 4) a lepidlo na vnútornú stranu škatule
  5. Nakoniec vyrežte otvor pre napájací kábel Pi.

    Odporúčame najskôr nainštalovať všetku elektroniku, aby ste našli najlepšie miesto pre slot napájacieho kábla pi

Krok 8: Inštalácia a nasadenie

Inštalovať a nasadiť!
Inštalovať a nasadiť!

To je všetko! Ste pripravení nainštalovať a nasadiť svoj projekt! Umiestnite kryt nad svoje smetné koše, zapojte Pi a spustite program, aby ste získali rýchlejší a spoľahlivejší spôsob znižovania odpadu. Jéj!

Napredovať

  • Podeľte sa o svoje projekty a nápady s inými ľuďmi prostredníctvom komunity Lobe Reddit!
  • Pozrite sa na Lobe Python GitHub repo, kde nájdete všeobecný prehľad o tom, ako používať Python na nasadenie širšej škály projektov Lobe.
  • Máte otázky alebo projektové požiadavky? Zanechajte komentár k tomuto projektu alebo nás kontaktujte priamo: [email protected]

Odporúča: