Tartalomjegyzék:
- 1. lépés: Mielőtt elkezdenénk
- 2. lépés: Hozzon létre egyéni ML modellt a Lobe -ban
- 3. lépés: Építsd fel: Hardver
- 4. lépés: Kódolja: Szoftver
- 5. lépés: Tesztelje: futtassa a programot
- 6. lépés: (Nem kötelező) Építsd meg: fejezd be az áramkört
- 7. lépés: (Nem kötelező) Készítse el: tok
- 8. lépés: Telepítse és telepítse
Videó: Készítsen Pi szemetes osztályozót ML -vel!: 8 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
A szemétosztályozó projekt, amelyet szeretettel "Hova megy ?!" néven, célja, hogy gyorsabban és megbízhatóbban dobja ki a dolgokat.
Ez a projekt egy Lobe-ban képzett Machine Learning (ML) modellt használ, amely egy kezdőbarát (nincs kód!) ML modellépítő, hogy meghatározza, hogy egy tárgy kerül-e a szemétbe, újrahasznosításba, komposztba vagy veszélyes hulladékba. A modellt ezután egy Raspberry Pi 4 számítógépre töltik fel, hogy használható legyen bárhol, ahol szemetet találhat!
Ez az oktatóanyag bemutatja, hogyan hozhat létre saját kukaosztályozó projektet egy Raspberry Pi -n egy Lobe TensorFlow modellből a Python3 -ban.
Nehézség: Kezdő ++ (bizonyos ismeretek áramkörökkel és kódolással hasznosak)
Olvasási idő: 5 perc
Építési idő: 60-90 perc
Költség: ~ 70 USD (beleértve a Pi 4 -et)
Kellékek:
Szoftver (PC-oldal)
- Lobe
- WinSCP (vagy más SSH fájlátviteli módszer, használhatja a CyberDuck for Mac rendszert)
- Terminál
- Távoli asztali kapcsolat vagy RealVNC
Hardver
- Raspberry Pi, SD kártya és USB-C tápegység (5V, 2.5A)
- Pi kamera
- Nyomógomb
-
5 LED (4 jelző LED és 1 állapotjelző LED)
- Sárga LED: szemét
- Kék LED: újrahasznosítás
- Zöld LED: komposzt
- Piros LED: veszélyes hulladék
- Fehér LED: állapot
- 6 220 Ohm ellenállás
- 10 M-M áthidaló vezeték
- Kenyeretábla, fél méretű
Ha a forrasztás mellett dönt:
- 1 JST csatlakozó, csak hüvelyes vég
- 2 M-F áthidaló vezeték
- 10 F-F áthidaló vezeték
- NYÁK
Burkolat
- Projekt tok (pl. Karton, fa vagy műanyag doboz, kb. 6 "x 5" x 4 ")
-
0,5 x 0,5 hüvelyk (2 x 2 cm) átlátszó műanyag négyzet
Például. műanyag edénytartó fedeléről
- Tépőzár
Eszközök
- Drótvágók
- Precíziós kés (pl. Precíziós kés) és vágószőnyeg
- Forrasztópáka (opcionális)
- Melegen olvadó szerszám (vagy más nem vezető ragasztó-az epoxi kiválóan működik, de tartós)
1. lépés: Mielőtt elkezdenénk
Ez a projekt azt feltételezi, hogy egy teljesen beállított Raspberry Pi-vel kezdi a fejét. Íme egy kezdőbarát útmutató, hogyan kell ezt megtenni.
Az is segít, ha bizonyos ismeretekkel rendelkezel az alábbiakról:
-
Ismerkedés a Raspberry Pi -vel
- Íme egy hasznos útmutató a kezdéshez!
- Szintén hasznos: Első lépések a Pi kamerával
-
Python -kód olvasása és szerkesztése (nem kell programot írnia, csak szerkesztenie)
Bevezetés a Pythonba a Raspberry Pi -vel
- Fritzing kapcsolási rajzok olvasása
- Kenyeretábla használata
Hogyan kell használni a kenyeretáblát
Tudja meg, hová kerül a szemét
Az Egyesült Államok minden városában (és feltételezném, hogy a világon) saját szemete/újrahasznosítása/komposztja/stb. gyűjtőrendszer. Ez azt jelenti, hogy ahhoz, hogy pontos szemétosztályozót készítsünk, 1) létre kell hoznunk egy egyedi ML modellt (ezt a következő lépésben tárgyaljuk - nincs kód!), És 2) tudnunk kell, hová kerül az egyes szemétdarabok.
Mivel nem mindig tudtam a megfelelő kukát a modellem betanításához használt egyes elemekhez, a Seattle Utilities szórólapot használtam (1. fotó), és ezt a praktikus "Hova megy?" keresőeszköz Seattle városához! Nézze meg, milyen erőforrások állnak rendelkezésre a városban, keresse meg városának szemétszedő segédprogramját, és tekintse át webhelyét.
2. lépés: Hozzon létre egyéni ML modellt a Lobe -ban
A Lobe egy könnyen használható eszköz, amely mindent tartalmaz, amire szüksége van a gépi tanulási ötletek életre keltéséhez. Mutasson példákat arra, hogy mit szeretne, és automatikusan betanít egy egyéni gépi tanulási modellt, amely exportálható a szélső eszközökhöz és alkalmazásokhoz. Az induláshoz semmilyen tapasztalat nem szükséges. Ingyenesen edzhet saját számítógépén!
Íme egy rövid áttekintés a Lobe használatáról:
1. Nyissa meg a Lobe programot, és hozzon létre egy új projektet.
2. Készítsen vagy importáljon fényképeket, és címkézze őket megfelelő kategóriákba. (1. fotó) Ezekre a címkékre később szükségünk lesz a projekt szoftver részében.
A fényképek importálásának két módja van:
- Fényképeket készíthet közvetlenül a számítógép webkamerájáról, vagy
-
Fotók importálása a számítógép meglévő mappáiból.
Ne feledje, hogy a fotómappa neve lesz a kategóriacímke neve, ezért győződjön meg arról, hogy megegyezik a meglévő címkékkel
Félre: végül mindkét módszert használtam, mivel minél több fotó van, annál pontosabb a modellje.
3. Használja a "Lejátszás" funkciót a modell pontosságának teszteléséhez. Változtassa meg a távolságot, a világítást, a kéz pozícióját stb., Hogy megállapítsa, hol van a modell, és hol nem pontos. Szükség esetén adjon hozzá további fényképeket. (3-4. Fénykép)
4. Ha készen áll, exportálja Lobe ML modelljét TensorFlow (TF) Lite formátumba.
Tippek:
-
A fényképek importálása előtt készítsen listát az összes szükséges kategóriáról és a címkézés módjáról (pl. "Szemét", "újrahasznosítás", "komposzt" stb.)
Megjegyzés: Használja ugyanazokat a címkéket, amelyeket a fenti "Lobe Model Labels" fotó mutat, hogy csökkentse a módosítandó kód mennyiségét
- Adjon hozzá egy kategóriát a „nem kuka” kategóriához, amely fényképeket tartalmaz a fényképen található egyéb dolgokról (például a kezeiről, karjairól, a háttérről stb.).
- Ha lehetséges, készítsen fényképeket a Pi kameráról, és importálja a Lobe -ba. Ez jelentősen javítja a modell pontosságát!
- Több fotóra van szüksége? Nézze meg a Kaggle nyílt forráskódú adatkészleteit, beleértve ezt a szemétosztályozási képkészletet!
- További segítségre van szüksége? Csatlakozzon a Lobe közösséghez a Reddit -en!
3. lépés: Építsd fel: Hardver
1. Óvatosan csatlakoztassa a Pi kamerát a Pi -hez (további információkért keresse fel a Pi Alapítvány kezdő útmutatóját). (1. fotó)
2. Kövesse a bekötési rajzot, és csatlakoztassa a nyomógombot és a LED -eket a Pi GPIO csapokhoz.
- Nyomógomb: Csatlakoztassa a nyomógomb egyik lábát a GPIO 2 tűhöz. Csatlakoztassa a másikat egy ellenálláson keresztül a GPIO GND csaphoz.
- Sárga LED: Csatlakoztassa a pozitív (hosszabb) lábat a GPIO 17 tűhöz. Csatlakoztassa a másik lábát egy ellenálláson keresztül a GPIO GND csaphoz.
- Kék LED: Csatlakoztassa a pozitív lábat a GPIO 27 csaphoz. Csatlakoztassa a másik lábát ellenálláson keresztül a GPIO GND csaphoz.
- Zöld LED: Csatlakoztassa a pozitív lábat a GPIO 22 csaphoz. Csatlakoztassa a másik lábát ellenálláson keresztül a GPIO GND csaphoz.
- Piros LED: Csatlakoztassa a pozitív lábat a GPIO 23. tűhöz. Csatlakoztassa a másik lábát ellenálláson keresztül a GPIO GND csaphoz.
- Fehér LED: Csatlakoztassa a pozitív lábat a GPIO 24 tűhöz. Csatlakoztassa a másik lábát ellenálláson keresztül a GPIO GND csaphoz.
3. Javasoljuk, hogy tesztelje áramkörét kenyérsütő táblán, és futtassa a programot, mielőtt forrasztja vagy bármely csatlakozást állandósítja. Ehhez meg kell írnunk és fel kell töltenünk a szoftverprogramunkat, ezért folytassuk a következő lépéssel!
4. lépés: Kódolja: Szoftver
1. Nyissa meg számítógépén a WinSCP -t, és csatlakozzon a Pi -hez. Hozzon létre egy Lobe mappát a Pi saját könyvtárában, és hozzon létre egy modell mappát ebben a könyvtárban.
2. Húzza a kapott Lobe TF mappa tartalmát a Pi -re. Jegyezze fel a fájl elérési útját:/home/pi/Lobe/model
3. A Pi-n nyisson meg egy terminált, és töltse le a lobe-python könyvtárat a Python3 számára a következő bash parancsok futtatásával:
pip3 telepítés
pip3 telepítse a lebenyt
4. Töltse le a szemétosztályozó kódját (rpi_trash_classifier.py) ebből a repóból a Pi -re (kattintson a "Kód" gombra az 1. képen látható módon).
- Másolni/beilleszteni inkább? Szerezd meg a nyers kódot itt.
- Inkább letölti a számítógépére? Töltse le a repót/kódot a számítógépére, majd vigye át a Python -kódot a Pi -hez WinSCP -n (vagy a kívánt távoli fájlátviteli programon) keresztül.
5. Miután csatlakoztatta a hardvert a Pi GPIO csapjaihoz, olvassa el a példakódot, és szükség szerint frissítse a fájl elérési útjait:
- 29. sor: fájlútvonal a Lobe TF modellhez
- 47. és 83. sor: a Pi Camera segítségével készített képek elérési útvonala
6. Szükség esetén frissítse a kódban szereplő modellcímkéket, hogy pontosan illeszkedjenek a Lobe modell címkéihez (beleértve a nagybetűket, írásjeleket stb.):
- 57. sor: "szemét"
- 60. sor: "újrahasznosítás"
- 63. sor: "komposzt"
- 66. sor: "veszélyes hulladék létesítmény"
- 69. sor: "nem szemét!"
7. Futtassa a programot a terminál ablak Python3 használatával:
python3 rpi_trash_classifier.py
5. lépés: Tesztelje: futtassa a programot
program áttekintés
A program első futtatásakor a TensorFlow könyvtár és a Lobe ML modell betöltése eltart egy ideig. Amikor a program készen áll a kép rögzítésére, az állapotjelző lámpa (fehér LED) villogni kezd.
Miután elkészítette a képet, a program összehasonlítja a képet a Lobe ML modellel, és kiadja a kapott előrejelzést (83. sor). A kimenet határozza meg, hogy melyik fény világít: sárga (szemét), kék (újrahasznosítás), zöld (komposzt) vagy piros (veszélyes hulladék).
Ha egyik jelzőlámpa sem gyullad ki, és az állapotjelző LED visszatér impulzus üzemmódba, az azt jelenti, hogy a rögzített kép "nem volt szemetes", más szóval, készítse el újra a fényképet!
Kép rögzítése
Nyomja meg a gombot a kép rögzítéséhez. Vegye figyelembe, hogy előfordulhat, hogy legalább 1 másodpercig le kell nyomnia a nyomógombot, hogy a program regisztrálja a sajtót. Javasoljuk, hogy készítsen néhány tesztképet, majd nyissa meg az asztalon, hogy jobban megértse a kamera nézetét és keretét.
Ahhoz, hogy a felhasználónak ideje legyen az objektum elhelyezésére és a fényképezőgép fényszintjének beállítására, körülbelül 5 másodperc szükséges a kép teljes rögzítéséhez. Ezeket a beállításokat módosíthatja a kódban (35. és 41. sor), de ne feledje, hogy a Pi Foundation legalább 2 másodpercet javasol a fényszint beállításához.
Hibaelhárítás
A legnagyobb kihívás annak biztosítása, hogy a rögzített kép megfeleljen az elvárásainknak, ezért szánjon egy kis időt a képek áttekintésére és a várt eredmények összehasonlítására a jelző LED kimenettel. Ha szükséges, képeket továbbíthat a Lobe ML modellhez a közvetlen következtetés és a gyorsabb összehasonlítás érdekében.
Néhány dolog, amit érdemes megjegyezni:
- A TensorFlow könyvtár valószínűleg figyelmeztető üzeneteket fog küldeni - ez jellemző a példakódban használt verzióra.
- Az előrejelzési címkéknek pontosan a led_select () függvényben leírtaknak kell lenniük, beleértve a nagybetűket, az írásjeleket és a távolságokat. Feltétlenül változtassa meg ezeket, ha más Lobe modellje van.
- A Pi folyamatos áramellátást igényel. A Pi tápellátásának fényének világosnak, egyszínűnek kell lennie.
- Ha egy vagy több LED nem kapcsol be a várakozásoknak megfelelően, ellenőrizze a következő paranccsal:
red_led.on ()
6. lépés: (Nem kötelező) Építsd meg: fejezd be az áramkört
Most, hogy teszteltük és szükség esetén hibakeresettük a projektünket, hogy a várt módon működjön, készen állunk az áramkör forrasztására!
Megjegyzés: Ha nincs forrasztópáka, kihagyhatja ezt a lépést. Az egyik alternatíva a huzalcsatlakozások forró ragasztóval való bevonása (ez az opció lehetővé teszi a dolgok javítását/hozzáadását/használatát később, de nagyobb valószínűséggel törik el), vagy epoxi vagy hasonló tartós ragasztó használata (ez az opció sokkal tartósabb lesz) de ezt követően nem fogja tudni használni az áramkört vagy potenciálisan a Pi -t)
Gyors megjegyzés a tervezési döntéseimről (1. fotó):
- Azért választottam a női áthidaló vezetékeket a LED -ekhez és a Pi GPIO -hoz, mert lehetővé teszik a LED -ek eltávolítását és a színek cseréjét, vagy szükség esetén mozgatását. Ha ki szeretné kapcsolni a kapcsolatokat, ezeket kihagyhatja.
- Hasonlóképpen JST csatlakozót választottam a nyomógombhoz.
Tovább az építkezéshez
1. Vágja félbe mindegyik női áthidaló vezetéket (igen, mindegyiket!). Vezetékeltávolítókkal távolítsa el a vezeték szigetelésének körülbelül 1/4 hüvelykét (1/2 cm).
2. Minden egyes LED -hez forraszoljon 220Ω -os ellenállást a negatív (rövidebb) lábhoz. (2. fotó)
3. Vágjon le egy kis darabot, körülbelül 1 cm (2 cm) hőzsugorító csövet, és nyomja át a LED és az ellenállás csomópontját. Győződjön meg arról, hogy a másik ellenállóláb hozzáférhető, majd melegítse fel a zsugorcsövet, amíg az rögzíti a kötést. (3. kép)
4. Helyezze be az egyes LED -eket egy pár női áthidaló vezetékbe. (4. fotó)
5. Címkézze fel az áthidaló vezetékeket (pl. Ragasztószalaggal), majd forrasztja az áthidaló vezetékeket a nyomtatott áramköri lapra (PCB). (5. fotó)
6. Ezt követően (vágott) női áthidaló vezetékkel csatlakoztassa az egyes LED -eket a megfelelő Pi GPIO tűhöz. Forrasztjon és címkézzen egy áthidaló vezetéket, hogy a csupasz fém csatlakozzon a pozitív LED -lábhoz a NYÁK -on keresztül. (5. fotó)
Megjegyzés: A forrasztási hely a PCB elrendezésétől függ. Ezt a vezetéket közvetlenül a pozitív LED áthidaló huzalhoz is forraszthatja.
7. Forrasztjon egy 220Ω -os ellenállást a JST csatlakozó negatív (fekete) végéhez. (6. fotó)
8. Forgassa a JST csatlakozót és ellenállást a nyomógombhoz. (6. fotó)
9. Csatlakoztassa az M-F áthidaló vezetékeket a nyomógombos csatlakozó és a GPIO csapok közé (emlékeztető: a fekete GND).
10. Bevonatkötések PCB forró ragasztóban vagy epoxigyantában a biztonságosabb csatlakozás érdekében.
Megjegyzés: ha az epoxi használata mellett dönt, előfordulhat, hogy a jövőben nem tudja használni a Pi GPIO csapjait más projektekhez. Ha aggódik emiatt, adjon hozzá egy GPIO szalagkábelt, és csatlakoztassa ehhez az áthidaló vezetékeket.
7. lépés: (Nem kötelező) Készítse el: tok
Hozzon létre egy házat a Pi számára, amely a kamerát, a nyomógombot és a LED -eket a helyén tartja, miközben védi a Pi -t. Tervezze meg saját burkolatát, vagy kövesse az alábbi építési utasításokat a kartondoboz gyors prototípusának elkészítéséhez!
-
A kis kartondoboz tetején nyomon követheti a nyomógomb, az állapotjelző, az azonosító fények és a pi kamera ablakának helyét (1. fotó).
Megjegyzés: A Pi kamera ablakának körülbelül 3/4 "x 1/2" méretűnek kell lennie
-
A precíziós késsel vágja ki a nyomokat.
Megjegyzés: érdemes tesztelni a méreteket menet közben (1. fotó)
- Választható: fesse le a tokot! Én a spray festéket választottam:)
- Vágjon ki egy téglalap alakú "ablak" fedelet a Pi kamerához (4. kép), és ragassza fel a doboz belsejét
-
Végül vágja ki a Pi tápkábel nyílását.
Javasoljuk, hogy először telepítse az összes elektronikát, hogy megtalálja a legjobb helyet a pi tápkábel nyílásához
8. lépés: Telepítse és telepítse
Ez az! Készen áll a projekt telepítésére és telepítésére! Helyezze a házat a kukák fölé, csatlakoztassa a Pi -t, és futtassa a programot, hogy gyorsabban és megbízhatóbban csökkentse hulladékunkat. Hurrá!
Előre menni
- Ossza meg projektjeit és ötleteit másokkal a Lobe Reddit közösségén keresztül!
- Tekintse meg a Lobe Python GitHub repót, hogy általános áttekintést kapjon arról, hogyan lehet a Python segítségével szélesebb körű Lobe projekteket telepíteni
- Kérdések vagy projektkérelmek? Írjon megjegyzést erről a projektről, vagy lépjen kapcsolatba velünk közvetlenül: [email protected]
Ajánlott:
Intelligens szemetes az Arduino, az ultrahangos érzékelő és a szervomotor használatával: 3 lépés
Intelligens szemetes az Arduino, az ultrahangos érzékelő és a szervomotor használatával: Ebben a projektben megmutatom, hogyan készítsünk intelligens szemetet az Arduino használatával, ahol a szemétkosár fedele automatikusan kinyílik, ha szemetes szemléletmóddal közeledik. Az intelligens szemeteskosár készítéséhez használt egyéb fontos összetevők egy HC-04 ultrahangos érzékelő
Intelligens szemetes: 6 lépés
Okos szemetes: Sziasztok srácok !!! Vedaansh Verdhan vagyok. És ma megmutatom, hogyan készítsd el saját intelligens szemetesedényedet. Kövess engem az Instragramon, hogy információt szerezz a következő projektemről. Kezdjük !!!! Instragram fiók: --- robotika_08
Intelligens szemetes a Magicbitből: 5 lépés
Intelligens hulladékgyűjtő a Magicbitből: Ebben az oktatóanyagban megtanuljuk, hogyan lehet intelligens szemetesládát készíteni a Magicbit dev segítségével. tábla Arduino IDE -vel. Kezdjük
Arduino kutyaellenes szemetes: 6 lépés (képekkel)
Arduino kutyaellenes szemetes: Ebben a projektben megmutatom, hogyan kell felépíteni egy nevetséges, de működő módszert annak megakadályozására, hogy bosszantó kutyái a kukába kerüljenek
Automata szemetes: 8 lépés (képekkel)
Automatikus szemetes: Szia barátok! Ha régóta nézed a csatornámat, akkor valószínűleg emlékszel egy olyan projektre, amely egy automatikus fedéllel ellátott kukáról szól. Ez a projekt volt az egyik első Arduino -ban, mondhatni a debütálásom. De volt egy nagyon nagy hátránya: