Obsah:

Vytvořte klasifikátor koše Pi s ML !: 8 kroků (s obrázky)
Vytvořte klasifikátor koše Pi s ML !: 8 kroků (s obrázky)

Video: Vytvořte klasifikátor koše Pi s ML !: 8 kroků (s obrázky)

Video: Vytvořte klasifikátor koše Pi s ML !: 8 kroků (s obrázky)
Video: Šokující pravda o nelidských UFO: John Greenewald odhaluje vše 2024, Prosinec
Anonim
Vytvořte klasifikátor koše Pi s ML!
Vytvořte klasifikátor koše Pi s ML!
Vytvořte klasifikátor koše Pi s ML!
Vytvořte klasifikátor koše Pi s ML!

Projekt Trash Classifier, láskyplně známý jako „Kam to jde ?!“, je navržen tak, aby bylo vyhazování věcí rychlejší a spolehlivější.

Tento projekt využívá model Machine Learning (ML) vycvičený v Lobe, tvůrci modelů ML pro začátečníky (bez kódu!), K identifikaci, zda se předmět dostane do odpadu, recyklace, kompostu nebo nebezpečného odpadu. Model je poté načten do počítače Raspberry Pi 4, aby byl použitelný kdekoli, kde najdete popelnice!

Tento tutoriál vás provede vytvořením vlastního projektu Trash Classifier na Raspberry Pi z modelu Lobe TensorFlow v Pythonu3.

Obtížnost: začátečník ++ (některé znalosti w/ obvodů a kódování jsou užitečné)

Doba čtení: 5 min

Doba stavby: 60 - 90 min

Cena: ~ 70 $ (včetně Pi 4)

Zásoby:

Software (na straně PC)

  • Lalok
  • WinSCP (nebo jiný způsob přenosu souborů SSH, lze použít CyberDuck pro Mac)
  • Terminál
  • Připojení ke vzdálené ploše nebo RealVNC

Hardware

  • Napájení Raspberry Pi, SD karta a USB-C (5 V, 2,5 A)
  • Pi kamera
  • Stiskněte tlačítko
  • 5 LED diod (4 indikační LED a 1 stavová LED)

    • Žlutá LED: odpadky
    • Modrá LED: recyklovat
    • Zelená LED: kompost
    • Červená LED: nebezpečný odpad
    • Bílá LED: stav
  • 6 220 ohmových rezistorů
  • 10 propojovacích vodičů M-to-M
  • Breadboard, poloviční velikosti

Pokud se rozhodnete pájet:

  • 1 konektor JST, pouze vnitřní konec
  • 2 propojovací vodiče M-to-F
  • 10 propojovacích vodičů F-to-F
  • PCB

Ohrada

  • Pouzdro na projekt (např. Karton, dřevo nebo plastová krabice, přibližně 6 palců x 5 palců x 4 palce)
  • Čirý plastový čtverec 0,5 palce x 0,5 palce (2 cm x 2 cm)

    Např. z plastového víka nádoby na potraviny

  • Suchý zip

Nástroje

  • Nůžky na drát
  • Přesný nůž (např. Přesný nůž) a řezací podložka
  • Páječka (volitelně)
  • Nástroj pro tavné lepení (nebo jiné nevodivé lepidlo-epoxid funguje skvěle, ale je trvalý)

Krok 1: Než začneme

Než začneme
Než začneme

Tento projekt předpokládá, že začínáte s plně nastaveným Raspberry Pi v bezhlavé konfiguraci. Zde je průvodce pro začátečníky, jak to udělat.

Pomáhá také mít určité znalosti o následujícím:

  1. Seznámení s Raspberry Pi

    • Zde je praktický průvodce pro začátek!
    • Také užitečné: Začínáme s kamerou Pi
  2. Čtení a úpravy kódu Pythonu (nebudete muset psát program, stačí upravit)

    Úvod do Pythonu s Raspberry Pi

  3. Čtení Fritzingových schémat zapojení
  4. Pomocí prkénka

    Jak používat výukový program na breadboardu

Zjistěte, kam putují vaše odpadky

Každé město v USA (a předpokládal bych, že zeměkoule) má své vlastní odpadky/recyklaci/kompost/atd. sběrný systém. To znamená, že k vytvoření přesného klasifikátoru koše budeme muset 1) vytvořit vlastní model ML (v dalším kroku se jím budeme zabývat - žádný kód!) A 2) vědět, kam každý kus koše jde.

Protože jsem vždy neznal správný koš pro každou položku, kterou jsem použil k trénování svého modelu, použil jsem leták Seattle Utilities (Foto 1) a také toto šikovné „Kam to jde?“vyhledávací nástroj pro město Seattle! Podívejte se, jaké zdroje jsou ve vašem městě k dispozici, vyhledejte ve svém městě nástroj pro sběr odpadků a prohlédněte si jeho webové stránky.

Krok 2: Vytvořte vlastní model ML v Lobe

Vytvořte si vlastní model ML v Lobe
Vytvořte si vlastní model ML v Lobe
Vytvořte si vlastní model ML v Lobe
Vytvořte si vlastní model ML v Lobe
Vytvořte si vlastní model ML v Lobe
Vytvořte si vlastní model ML v Lobe
Vytvořte si vlastní model ML v Lobe
Vytvořte si vlastní model ML v Lobe

Lobe je snadno použitelný nástroj, který má vše, co potřebujete k tomu, abyste své nápady v oblasti strojového učení uvedli v život. Ukažte mu příklady toho, co chcete, aby to dělalo, a automaticky to trénuje vlastní model strojového učení, který lze exportovat pro zařízení a aplikace edge. K zahájení nevyžaduje žádné zkušenosti. Můžete trénovat na vlastním počítači zdarma!

Zde je rychlý přehled používání Lobe:

1. Otevřete program Lobe a vytvořte nový projekt.

2. Pořiďte nebo importujte fotografie a označte je příslušnými kategoriemi. (Foto 1) Tyto štítky budeme potřebovat později v softwarové části projektu.

Fotografie lze importovat dvěma způsoby:

  1. Pořizujte fotografie položek přímo z webové kamery počítače, popř
  2. Importujte fotografie ze stávajících složek v počítači.

    Mějte na paměti, že název složky s fotografií bude použit jako název štítku kategorie, takže se ujistěte, že odpovídá stávajícím štítkům

Kromě toho: Nakonec jsem použil obě metody, protože čím více fotografií máte, tím přesnější je váš model.

3. Pomocí funkce „Přehrát“otestujte přesnost modelu. Změňte vzdálenosti, osvětlení, polohy rukou atd., Abyste zjistili, kde model je a není přesný. Podle potřeby přidejte další fotografie. (Fotografie 3-4)

4. Až budete připraveni, exportujte svůj model Lobe ML ve formátu TensorFlow (TF) Lite.

Tipy:

  • Před importem fotografií si vytvořte seznam všech kategorií, které budete potřebovat, a způsob, jakým je chcete označit (např. „Odpadky“, „recyklace“, „kompost“atd.)

    Poznámka: Ke snížení množství kódu, který potřebujete změnit, použijte stejné štítky, jaké jsou uvedeny na fotografii „Lobe Model Labels“výše

  • Zahrňte kategorii „ne odpadky“, která obsahuje fotografie čehokoli, co na fotografii může být (např. Vaše ruce a paže, pozadí atd.)
  • Pokud je to možné, pořiďte fotografie z Pi kamery a importujte je do Lobe. To výrazně zlepší přesnost vašeho modelu!
  • Potřebujete více fotek? Podívejte se na datové sady open source na Kaggle, včetně této sady obrázků klasifikace odpadků!
  • Potřebujete další pomoc? Spojte se s Lobe Coommunity na Redditu!

Krok 3: Postavte to: Hardware

Postavte to: Hardware!
Postavte to: Hardware!
Postavte to: Hardware!
Postavte to: Hardware!
Postavte to: Hardware!
Postavte to: Hardware!

1. Opatrně připojte kameru Pi k Pi (další informace najdete v příručce Začínáme s Pi Foundation). (Foto 1)

2. Podle schématu zapojení připojte tlačítko a LED k pinům Pi GPIO.

  • Tlačítko: Připojte jednu nohu tlačítka ke kolíku GPIO 2. Druhou připojte přes odpor ke kolíku GPIO GND.
  • Žlutá LED: Připojte kladnou (delší) nohu ke kolíku GPIO 17. Druhou nohu připojte přes odpor ke kolíku GPIO GND.
  • Modrá LED: Připojte kladnou nohu ke kolíku GPIO 27. Druhou nohu připojte přes odpor ke kolíku GPIO GND.
  • Zelená LED: Připojte kladnou nohu ke kolíku GPIO 22. Druhou nohu připojte přes odpor ke kolíku GPIO GND.
  • Červená LED: Připojte kladnou nohu ke kolíku GPIO 23. Druhou nohu připojte přes odpor ke kolíku GPIO GND.
  • Bílá LED: Připojte kladnou nohu ke kolíku GPIO 24. Druhou nohu připojte přes odpor ke kolíku GPIO GND.

3. Doporučujeme vyzkoušet váš obvod na prkénku a spustit program před pájením nebo provedením trvalého připojení. K tomu budeme muset napsat a nahrát náš softwarový program, takže přejdeme k dalšímu kroku!

Krok 4: Kódujte: Software

Kódujte: Software!
Kódujte: Software!
Kódujte: Software!
Kódujte: Software!

1. Na počítači otevřete WinSCP a připojte se ke svému Pi. Vytvořte složku Lobe v domovském adresáři vašeho Pi a vytvořte v tomto adresáři složku modelu.

2. Přetáhněte výsledný obsah složky Lobe TF na Pi. Poznamenejte si cestu k souboru:/home/pi/Lobe/model

3. Na Pi otevřete terminál a stáhněte si knihovnu lobe-python pro Python3 spuštěním následujících příkazů bash:

pip3 install

pip3 instalujte lalok

4. Stáhněte si kód klasifikátoru koše (rpi_trash_classifier.py) z tohoto úložiště na Pi (klikněte na tlačítko „Kód“, jak ukazuje obrázek 1).

  • Dáváte přednost kopírování/vkládání? Získejte surový kód zde.
  • Dáváte přednost stahování do počítače? Stáhněte si repo/kód do počítače a poté přeneste kód Pythonu na Pi pomocí WinSCP (nebo vašeho preferovaného programu pro vzdálený přenos souborů).

5. Jakmile připojíte hardware k pinům GPIO Pi, přečtěte si ukázkový kód a podle potřeby aktualizujte všechny cesty k souborům:

  • Řádek 29: cesta souboru k modelu Lobe TF
  • Řádky 47 a 83: cesta k zachyceným snímkům pomocí Pi Camera

6. V případě potřeby aktualizujte popisky modelu v kódu, aby přesně odpovídaly štítkům ve vašem modelu Lobe (včetně velkých písmen, interpunkce atd.):

  • Řádek 57: „odpadky“
  • Řádek 60: „recyklovat“
  • Řádek 63: „kompost“
  • Řádek 66: „zařízení na nebezpečný odpad“
  • Řádek 69: „ne odpadky!“

7. Spusťte program pomocí Pythonu3 v okně terminálu:

python3 rpi_trash_classifier.py

Krok 5: Otestujte: Spusťte program

Otestujte: Spusťte program!
Otestujte: Spusťte program!
Otestujte: Spusťte program!
Otestujte: Spusťte program!
Otestujte: Spusťte program!
Otestujte: Spusťte program!

přehled programu

Při prvním spuštění programu bude nějakou dobu trvat, než se načte knihovna TensorFlow a model Lobe ML. Když je program připraven zachytit obrázek, stavová kontrolka (bílá LED) začne pulzovat.

Jakmile pořídíte snímek, program jej porovná s modelem Lobe ML a vydá výslednou predikci (řádek 83). Výstup určuje, které světlo je zapnuto: žlutá (odpadky), modrá (recyklace), zelená (kompost) nebo červená (nebezpečný odpad).

Pokud se nerozsvítí žádná z LED diod a stavová LED se nevrátí do pulzního režimu, znamená to, že zachycený obrázek „nebyl v koši“, jinými slovy, znovu pořiďte fotografii!

Pořízení obrázku

Stisknutím tlačítka pořídíte snímek. Aby program zaregistroval lis, může být nutné podržet tlačítko alespoň 1 s. Doporučuje se pořídit několik testovacích snímků a poté je otevřít na ploše, abyste lépe porozuměli pohledu kamery a rámu.

Aby měl uživatel čas na umístění objektu a úpravu úrovní osvětlení kamery, trvá úplné pořízení snímku přibližně 5 s. Tato nastavení můžete změnit v kódu (řádky 35 a 41), ale mějte na paměti, že Pi Foundation doporučuje minimálně 2 s pro úpravu úrovně světla.

Odstraňování problémů

Největší výzvou je zajistit, aby zachycený obraz odpovídal tomu, co očekáváme, a proto věnujte nějaký čas kontrole snímků a porovnání očekávaných výsledků s indikačním výstupem LED. V případě potřeby můžete obrázky předat modelu Lobe ML pro přímé odvozování a rychlejší porovnávání.

Několik věcí, které je třeba poznamenat:

  • Knihovna TensorFlow pravděpodobně vyvolá některé varovné zprávy - to je typické pro verzi použitou v tomto ukázkovém kódu.
  • Štítky predikce musí být přesně tak, jak jsou zapsány ve funkci led_select (), včetně velkých písmen, interpunkce a mezer. Pokud máte jiný model Lobe, určitě je změňte.
  • Pi vyžaduje stabilní napájení. Kontrolka napájení Pi by měla být jasná, plná červená.
  • Pokud se podle očekávání nerozsvítí jedna nebo více kontrolek LED, zkontrolujte je zapnutím příkazu:

red_led.on ()

Krok 6: (Volitelné) Postavte to: Dokončete svůj obvod

(Volitelné) Postavte to: Dokončete svůj obvod!
(Volitelné) Postavte to: Dokončete svůj obvod!
(Volitelné) Postavte to: Dokončete svůj obvod!
(Volitelné) Postavte to: Dokončete svůj obvod!
(Volitelné) Postavte to: Dokončete svůj obvod!
(Volitelné) Postavte to: Dokončete svůj obvod!

Nyní, když jsme otestovali a v případě potřeby odladili náš projekt tak, aby fungoval podle očekávání, jsme připraveni pájet náš obvod!

Poznámka: Pokud nemáte páječku, můžete tento krok přeskočit. Jednou z alternativ je natřít připojení vodičů horkým lepidlem (tato možnost vám umožní opravit/přidat/použít věci později, ale je pravděpodobnější, že se rozbije), nebo použít epoxid nebo podobné trvalé lepidlo (tato možnost bude mnohem odolnější ale po tom nebudete moci použít obvod nebo potenciálně Pi)

Rychlý komentář k mým návrhovým volbám (Foto 1):

  • Rozhodl jsem se pro propojovací vodiče pro LED diody a Pi GPIO, protože mi umožňují odstranit LED diody a vyměnit barvy nebo je v případě potřeby přesunout. Pokud chcete, aby byla připojení trvalá, můžete je přeskočit.
  • Podobně jsem pro tlačítko zvolil konektor JST.

Dále do budovy

1. Přeřízněte každý z propojovacích vodičů na polovinu (ano, všechny!). Pomocí odizolovače odstraňte asi 1/2cm izolace drátu.

2. Pro každou z LED diod připájejte odpor 220Ω k záporné (kratší) noze. (Foto 2)

3. Odřízněte malý kousek, asi 2 cm (2 cm) smršťovací bužírky a zatlačte na spojení LED a rezistoru. Ujistěte se, že je přístupná druhá noha rezistoru, poté zahřívejte smršťovací bužírku, dokud nezajistí spoj. (Foto 3)

4. Vložte každou LED do dvojice propojovacích vodičů. (Foto 4)

5. Označte propojovací vodiče (např. Páskou) a poté připájejte propojovací vodiče na desku plošných spojů (PCB). (Foto 5)

6. Dále použijte (oříznutý) zásuvkový propojovací vodič pro připojení každé LED k příslušnému pinu Pi GPIO. Zapájejte a označte propojovací vodič tak, aby se holý kov připojil k kladné noze LED prostřednictvím desky plošných spojů. (Foto 5)

Poznámka: Kde pájíte tento vodič, bude záviset na rozvržení desky plošných spojů. Tento vodič můžete také pájet přímo na kladný propojovací vodič LED.

7. Na záporný (černý) konec konektoru JST připájejte odpor 220Ω. (Foto 6)

8. Připájejte konektor JST a odpor k tlačítku. (Foto 6)

9. Připojte propojovací vodiče M-to-F mezi konektor tlačítka a piny GPIO (připomenutí: černá je GND).

10. Potřete spoje DPS horkým lepidlem nebo epoxidem pro bezpečnější spojení.

Poznámka: pokud se rozhodnete použít epoxid, možná nebudete moci v budoucnu používat piny GPIO piny pro jiné projekty. Pokud vás to znepokojuje, připojte plochý kabel GPIO a místo toho připojte propojovací vodiče.

Krok 7: (Volitelné) Postavte: Případ

(Volitelné) Build It: Case!
(Volitelné) Build It: Case!
(Volitelné) Build It: Case!
(Volitelné) Build It: Case!
(Volitelné) Build It: Case!
(Volitelné) Build It: Case!
(Volitelné) Build It: Case!
(Volitelné) Build It: Case!

Vytvořte pro svůj Pi kryt, který bude držet kameru, tlačítko a diody LED na místě a zároveň bude chránit Pi. Navrhněte si vlastní pouzdro nebo se řiďte našimi níže uvedenými pokyny pro rychlé prototypování lepenkové skříně!

  1. V horní části malé lepenkové krabice vyznačte umístění tlačítka, stavové kontrolky, identifikačních kontrolek a okna pi kamery (Foto 1).

    Poznámka: Okno kamery Pi by mělo mít přibližně 3/4 "x 1/2"

  2. Pomocí přesného nože vyřízněte stopy.

    Poznámka: možná budete chtít vyzkoušet velikosti za pochodu (Foto 1)

  3. Volitelné: Malovat případ! Rozhodl jsem se pro barvu ve spreji:)
  4. Vyřízněte obdélníkový kryt „okna“pro Pi kameru (Foto 4) a lepte na vnitřní stranu krabice
  5. Nakonec vyřízněte slot pro napájecí kabel Pi.

    Doporučujeme nejprve nainstalovat veškerou elektroniku, abyste našli nejlepší místo pro slot napájecího kabelu pi

Krok 8: Nainstalujte a nasaďte

Nainstalujte a nasaďte!
Nainstalujte a nasaďte!

A je to! Jste připraveni nainstalovat a nasadit svůj projekt! Umístěte skříň nad odpadkové koše, zapojte Pi a spusťte program, abyste získali rychlejší a spolehlivější způsob snižování odpadu. Jé!

Jdeme vpřed

  • Sdílejte své projekty a nápady s ostatními lidmi prostřednictvím komunity Lobe Reddit!
  • Podívejte se na úložiště Lobe Python GitHub, kde najdete obecný přehled o tom, jak pomocí Pythonu nasadit širší škálu projektů Lobe
  • Máte dotazy nebo žádosti o projekt? Zanechte komentář k tomuto projektu nebo nás kontaktujte přímo: [email protected]

Doporučuje: