Sadržaj:
- Korak 1: Prije nego počnemo
- Korak 2: Kreirajte prilagođeni ML model u Lobeu
- Korak 3: Napravite ga: Hardver
- Korak 4: Kodirajte ga: Softver
- Korak 5: Testirajte ga: Pokrenite program
- Korak 6: (Opcionalno) Napravite ga: dovršite svoj krug
- Korak 7: (Opcionalno) Napravite: Slučaj
- Korak 8: Instalirajte i implementirajte
Video: Napravite Pi Trassi Classifier s ML !: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:04
Projekt Trash Classifier, od milja poznat kao "Gdje ide ?!", osmišljen je kako bi bacanje stvari bilo brže i pouzdanije.
Ovaj projekt koristi model strojnog učenja (ML) obučen u Lobeu, graditelja modela prilagođenog početnicima (bez koda!), Za identifikaciju ide li predmet u smeće, recikliranje, kompost ili opasni otpad. Model se zatim učitava na Raspberry Pi 4 računar kako bi bio upotrebljiv gdje god možete pronaći kante za smeće!
Ovaj vodič vodi vas o tome kako stvoriti vlastiti projekt Trash Classifier na Raspberry Pi iz Lobe TensorFlow modela u Pythonu 3.
Poteškoća: početnik ++ (neko znanje sa krugovima i kodiranjem je od pomoći)
Vrijeme čitanja: 5 min
Vrijeme izrade: 60 - 90 min
Cijena: ~ 70 USD (uključujući Pi 4)
Potrošni materijal:
Softver (sa strane računara)
- Lobe
- WinSCP (ili neki drugi način prijenosa SSH datoteka, može koristiti CyberDuck za Mac)
- Terminal
- Veza sa udaljenom radnom površinom ili RealVNC
Hardver
- Raspberry Pi, SD kartica i USB-C napajanje (5V, 2.5A)
- Pi Camera
- Taster
-
5 LED dioda (4 LED indikatora i 1 LED statusa)
- Žuta LED: smeće
- Plava LED dioda: reciklirajte
- Zelena LED dioda: kompost
- Crvena LED dioda: opasan otpad
- Bijela LED: status
- 6 otpornika od 220 ohma
- 10 kratkospojnika M-to-M
- Oglasna ploča, pola veličine
Ako se odlučite za lemljenje:
- 1 JST konektor, samo ženski kraj
- 2 žice kratkospojnika M-to-F
- 10 žica kratkospojnika F-to-F
- PCB
Enclosure
- Kutija za projekte (npr. Kartonska, drvena ili plastična kutija, približno 6 "x 5" x 4 ")
-
0,5 "x 0,5" (2 cm x 2 cm) čisti plastični kvadrat
Npr. iz plastičnog poklopca posude za hranu
- Velcro
Alati
- Rezači žice
- Precizni nož (npr. Egzaktni nož) i prostirka za rezanje
- Lemilica (opcionalno)
- Alat za topljenje (ili drugo neprovodljivo ljepilo-epoksid odlično funkcionira, ali je postojan)
Korak 1: Prije nego počnemo
Ovaj projekt pretpostavlja da započinjete s potpuno postavljenom Raspberry Pi u konfiguraciji bez glave. Evo vodiča prilagođenog početnicima kako to učiniti.
Pomaže i znanje o sljedećem:
-
Poznavanje sa Raspberry Pi
- Evo praktičnog vodiča za početak!
- Takođe korisno: Početak rada sa Pi kamerom
-
Čitanje i uređivanje Python koda (nećete morati pisati program, samo uredite)
Uvod u Python sa Raspberry Pi
- Čitanje dijagrama ožičenja Fritzing
-
Korištenje matične ploče
Kako koristiti vodič za matičnu ploču
Saznajte gdje vam smeće odlazi
Svaki grad širom SAD -a (a pretpostavljam i globus) ima svoje smeće/recikliranje/kompost/itd. sistem naplate. To znači da ćemo za izradu preciznog klasifikatora smeća morati 1) izgraditi prilagođeni ML model (ovo ćemo obraditi u sljedećem koraku - bez koda!) I 2) znati gdje svaki komad smeća odlazi.
Budući da nisam uvijek znao odgovarajuću kantu za svaku stavku koju sam koristio za obuku svog modela, koristio sam letak Seattle Utilities (Fotografija 1), a također i ovaj zgodan "Gdje ide?" alat za pretraživanje grada Seattlea! Provjerite koji su resursi dostupni u vašem gradu tako što ćete potražiti komunalni program za prikupljanje smeća u vašem gradu i pregledati njegovu web stranicu.
Korak 2: Kreirajte prilagođeni ML model u Lobeu
Lobe je alat za korištenje koji ima sve što vam je potrebno za oživljavanje ideja o strojnom učenju. Pokažite mu primjere onoga što želite da radi, a on automatski uvježbava prilagođeni model strojnog učenja koji se može izvesti za rubne uređaje i aplikacije. Za početak nije potrebno nikakvo iskustvo. Možete trenirati na svom računaru besplatno!
Evo kratkog pregleda kako koristiti Lobe:
1. Otvorite program Lobe i kreirajte novi projekt.
2. Snimite ili uvezite fotografije i označite ih u odgovarajuće kategorije. (Fotografija 1) Ove oznake će nam trebati kasnije u softverskom dijelu projekta.
Postoje dva načina za uvoz fotografija:
- Fotografirajte stavke direktno sa web kamere vašeg računara ili
-
Uvezite fotografije iz postojećih mapa na računaru.
Imajte na umu da će se naziv foldera s fotografijama koristiti kao naziv oznake kategorije, stoga pazite da se podudara s postojećim oznakama
Osim toga: Završio sam koristeći obje metode, jer što više fotografija imate, to je vaš model precizniji.
3. Iskoristite funkciju "Play" za testiranje tačnosti modela. Promijenite udaljenosti, osvjetljenje, položaj ruku itd. Kako biste identificirali gdje je model, a koji nije tačan. Po potrebi dodajte još fotografija. (Fotografije 3 - 4)
4. Kad budete spremni, izvezite svoj Lobe ML model u TensorFlow (TF) Lite formatu.
Savjeti:
-
Prije uvoza fotografija napravite popis svih kategorija koje su vam potrebne i kako ih želite označiti (npr. "Smeće", "recikliraj", "kompost" itd.)
Napomena: Upotrijebite iste oznake kao što je prikazano na gornjoj fotografiji "Oznake modela režnja" kako biste smanjili količinu koda koju trebate promijeniti
- Uključite kategoriju za "ne smeće" koja sadrži fotografije bilo čega drugog na fotografiji (na primjer vaše ruke i ruke, pozadina itd.)
- Ako je moguće, snimite fotografije s Pi kamere i uvezite u Lobe. Ovo će uvelike poboljšati točnost vašeg modela!
- Trebate više fotografija? Pogledajte skupove podataka otvorenog koda na Kaggleu, uključujući ovaj skup slika za klasifikaciju smeća!
- Treba vam dodatna pomoć? Povežite se sa Lobe Coommunity na Redditu!
Korak 3: Napravite ga: Hardver
1. Pažljivo povežite Pi kameru s Pi (za više informacija posjetite vodič za početak rada Pi Fondacije). (Fotografija 1)
2. Pratite dijagram ožičenja za povezivanje dugmeta i LED dioda na Pi GPIO pinove.
- Taster: Spojite jednu nogu dugmeta na GPIO pin 2. Drugu, preko otpornika, spojite na GPIO GND pin.
- Žuta LED: Povežite pozitivnu (dužu) nogu na GPIO pin 17. Drugu nogu preko otpornika spojite na GPIO GND pin.
- Plava LED: Spojite pozitivnu nogu na GPIO pin 27. Drugu nogu preko otpornika spojite na GPIO GND pin.
- Zelena LED: Priključite pozitivnu nogu na GPIO pin 22. Drugu nogu preko otpornika spojite na GPIO GND pin.
- Crvena LED: Spojite pozitivnu nogu na GPIO pin 23. Drugu nogu preko otpornika spojite na GPIO GND pin.
- Bijela LED: Spojite pozitivnu nogu na GPIO pin 24. Drugu nogu preko otpornika spojite na GPIO GND pin.
3. Preporučuje se testiranje vašeg kruga na ploči i pokretanje programa prije lemljenja ili povezivanja bilo koje od veza. Da bismo to učinili, morat ćemo napisati i učitati naš softver, pa idemo na sljedeći korak!
Korak 4: Kodirajte ga: Softver
1. Na računaru otvorite WinSCP i povežite se na svoj Pi. Kreirajte mapu Lobe u početnom direktoriju vašeg Pi -a i stvorite mapu modela u tom direktoriju.
2. Povucite rezultirajući sadržaj fascikle Lobe TF na Pi. Zabilježite putanju datoteke:/home/pi/Lobe/model
3. Na Pi-u otvorite terminal i preuzmite biblioteku lobe-python za Python3 pokretanjem sljedećih bash naredbi:
pip3 instalirajte
pip3 install lobe
4. Preuzmite kôd klasifikatora otpada (rpi_trash_classifier.py) iz ovog repo -a na Pi (kliknite dugme "Kôd" kao što je prikazano na fotografiji 1).
- Radije kopirati/zalijepiti? Ovdje nabavite sirovi kod.
- Radije preuzimate na svoj računar? Preuzmite repo/kôd na svoje računalo, a zatim prenesite Python kôd u Pi putem WinSCP -a (ili željenog udaljenog programa za prijenos datoteka).
5. Nakon što spojite hardver na Pi -ove GPIO pinove, pročitajte primjer koda i ažurirajte sve putanje datoteka prema potrebi:
- Red 29: putanja datoteke do Lobe TF modela
- Linije 47 i 83: put datoteke do snimljenih slika putem Pi kamere
6. Ako je potrebno, ažurirajte oznake modela u kodu tako da se potpuno podudaraju s oznakama u vašem modelu Lobe (uključujući velika slova, interpunkciju itd.):
- Red 57: "smeće"
- Red 60: "recikliraj"
- Red 63: "kompost"
- Red 66: "postrojenje za opasni otpad"
- Red 69: "nije smeće!"
7. Pokrenite program pomoću Python3 u prozoru terminala:
python3 rpi_trash_classifier.py
Korak 5: Testirajte ga: Pokrenite program
Pregled programa
Prilikom prvog pokretanja programa bit će potrebno neko vrijeme za učitavanje biblioteke TensorFlow i modela Lobe ML. Kada je program spreman za snimanje slike, lampica statusa (bijela LED) će pulsirati.
Nakon što snimite sliku, program će uporediti sliku s Lobe ML modelom i ispisati rezultirajuće predviđanje (linija 83). Izlaz određuje koje svjetlo je uključeno: žuto (smeće), plavo (recikliraj), zeleno (kompost) ili crveno (opasni otpad).
Ako se nijedna od LED lampica indikatora ne uključi i statusna LED se vrati u pulsni način rada, to znači da snimljena slika "nije smeće", drugim riječima, ponovno snimite fotografiju!
Snimanje slike
Pritisnite dugme za snimanje slike. Imajte na umu da ćete možda morati pritisnuti dugme najmanje 1 sekundu da bi program registrirao štampu. Preporučuje se da napravite neke probne slike, a zatim ih otvorite na radnoj površini da biste bolje razumjeli prikaz kamere i okvir.
Da bi se korisniku omogućilo vrijeme za pozicioniranje objekta i za prilagođavanje nivoa osvjetljenja fotoaparata, potrebno je oko 5 sekundi za potpuno snimanje slike. Ove postavke možete promijeniti u kodu (redovi 35 i 41), ali imajte na umu da Pi Foundation preporučuje najmanje 2 sekunde za podešavanje nivoa svjetlosti.
Rješavanje problema
Najveći izazov je osigurati da snimljena slika bude ono što očekujemo, pa odvojite malo vremena da pregledate slike i uporedite očekivane rezultate s indikativnim LED izlazom. Ako je potrebno, slike možete proslijediti modelu Lobe ML radi direktnog pronalaska i bržeg poređenja.
Treba napomenuti nekoliko stvari:
- Biblioteka TensorFlow će vjerojatno baciti neke poruke upozorenja - to je tipično za verziju koja se koristi u ovom primjeru koda.
- Oznake predviđanja moraju biti točno onako kako je napisano u funkciji led_select (), uključujući velika slova, interpunkciju i razmak. Svakako ih promijenite ako imate drugačiji model Lobe.
- Za Pi je potrebno stalno napajanje. Svjetlo za napajanje Pi treba biti svijetlo, stalno crveno.
- Ako se jedna ili više LED lampica ne uključuju prema očekivanjima, provjerite prisiljavajući ih naredbom:
red_led.on ()
Korak 6: (Opcionalno) Napravite ga: dovršite svoj krug
Sada kada smo testirali i, ako je potrebno, otklonili greške, naš projekt kako bi radio kako se očekuje, spremni smo za lemljenje našeg kruga!
Napomena: Ako nemate lemilicu, ovaj korak možete preskočiti. Jedna je alternativa premazivanje žičanih spojeva vrućim ljepilom (ova opcija će vam omogućiti da kasnije popravite/dodate/upotrijebite stvari, ali je vjerojatnije da će se slomiti) ili upotrijebiti epoksid ili slično trajno ljepilo (ova će opcija biti mnogo izdržljivija ali nakon toga nećete moći koristiti kolo ili potencijalno Pi)
Brzi komentar o izboru dizajna (Fotografija 1):
- Odlučio sam se za ženske žice kratkospojnika za LED diode i Pi GPIO jer mi omogućuju uklanjanje LED dioda i zamjenu boja ili njihovo pomicanje po potrebi. Možete ih preskočiti ako želite trajne veze.
- Slično, odabrao sam JST konektor za dugme.
Napred do zgrade
1. Prerežite svaku žicu ženskog kratkospojnika na pola (da, sve!). Pomoću skidača žica uklonite oko 1/4 (1/2 cm) izolacije žice.
2. Za svaku od LED dioda lemite otpornik od 220Ω na negativnu (kraću) nogu. (Fotografija 2)
3. Odrežite mali komad termoskupljajuće cijevi (1 cm (2 cm)) i gurnite LED i spoj otpornika. Provjerite je li dostupna druga noga otpornika, a zatim zagrijte skupljajuću cijev dok ne učvrsti spoj. (Fotografija 3))
4. Umetnite svaku LED diodu u par ženskih kratkospojnika. (Fotografija 4)
5. Označite kratkospojne žice (npr. Trakom), a zatim lemite žice kratkospojnika na svoju tiskanu ploču (PCB). (Fotografija 5)
6. Zatim upotrijebite (prerezanu) žensku kratkospojnu žicu za povezivanje svake LED diode na odgovarajući Pi GPIO pin. Lemite i označite kratkospojnu žicu tako da se goli metal spoji na pozitivnu LED nogu preko PCB -a. (Fotografija 5)
Napomena: Gdje ćete lemiti ovu žicu ovisit će o rasporedu vaše PCB -a. Ovu žicu također možete lemiti direktno na pozitivnu žicu kratkospojnika LED.
7. Lemite otpornik od 220Ω na negativni (crni) kraj JST konektora. (Fotografija 6)
8. Lemite JST konektor i otpornik na dugme. (Fotografija 6)
9. Spojite žice kratkospojnika M-to-F između konektora tipke i GPIO pinova (podsjetnik: crno je GND).
10. Spojite PCB spojeve vrućim ljepilom ili epoksidom za sigurnije spajanje.
Napomena: ako odlučite koristiti epoksid, možda nećete moći koristiti Pi -ove GPIO igle za druge projekte u budućnosti. Ako ste zabrinuti zbog toga, dodajte GPIO trakasti kabel i umjesto toga na njega spojite kratkospojnike.
Korak 7: (Opcionalno) Napravite: Slučaj
Napravite kućište za svoj Pi koji će držati kameru, dugme i LED diode na mjestu, istovremeno štiteći Pi. Dizajnirajte vlastito kućište ili slijedite dolje navedene upute za izradu za brzu izradu prototipa kartonskog kućišta!
-
Na vrhu male kartonske kutije označite lokacije za dugme, svjetlo statusa, svjetla identifikatora i prozor kamere pi (fotografija 1).
Napomena: Prozor Pi kamere trebao bi biti oko 3/4 "x 1/2"
-
Preciznim nožem izrežite tragove.
Napomena: možda ćete htjeti testirati veličine dok idete (Fotografija 1)
- Opcionalno: Obojite kućište! Odlučio sam se za farbu u spreju:)
- Izrežite pravokutni poklopac "prozora" za Pi kameru (Fotografija 4) i zalijepite unutrašnjost kutije
-
Na kraju, izrežite utor za Pi kabel za napajanje.
Preporučuje se da prvo instalirate svu elektroniku kako biste pronašli najbolje mjesto za priključak pi kabela za napajanje
Korak 8: Instalirajte i implementirajte
To je to! Spremni ste za instalaciju i implementaciju vašeg projekta! Postavite kućište iznad kanti za smeće, priključite Pi i pokrenite program kako biste dobili brži i pouzdaniji način smanjenja otpada. Jej!
Ide naprijed
- Podijelite svoje projekte i ideje s drugim ljudima putem zajednice Lobe Reddit!
- Provjerite Lobe Python GitHub repo za opći pregled o tome kako koristiti Python za implementaciju šireg spektra Lobe projekata
- Pitanja ili zahtjevi za projekt? Ostavite komentar na ovaj projekat ili nas kontaktirajte direktno: [email protected]
Preporučuje se:
Napravite Arduino MIDI kontroler: 5 koraka (sa slikama)
Napravite Arduino MIDI kontroler: Zdravo svima! U ovom uputstvu ću vam pokazati kako izgraditi vlastiti MIDI kontroler sa Arduino pogonom. MIDI je kratica za digitalni interfejs muzičkih instrumenata i to je protokol koji omogućava računarima, muzičkim instrumentima i drugom hardveru da komuniciraju
Napravite beskonačni ogledalni sat: 15 koraka (sa slikama)
Napravite beskonačni ogledalni sat: U prethodnom projektu izgradio sam beskonačno ogledalo, gde mi je krajnji cilj bio da napravim sat. (Napravite šareno beskonačno ogledalo) Nisam se time bavio nakon izgradnje jer, iako je izgledalo super, bilo je nekoliko stvari s tim
Napravite LAKU Beskonačnu kocku ogledala - BEZ 3D štampanja i bez programiranja: 15 koraka (sa slikama)
Napravite LAGANU Kocku ogledala u beskonačnosti | BEZ 3D štampanja i bez programiranja: Svi vole dobru beskonačnu kocku, ali izgledaju kao da bi ih bilo teško napraviti. Moj cilj za ovaj Instructable je pokazati vam korak po korak kako ga napraviti. I ne samo to, već ćete s uputama koje vam dajem moći napraviti jednu od
Napravite Nanoleaf (Vrikxa): 9 koraka (sa slikama)
DIY Nanoleaf (Vrikxa): Zdravo svima, Ovdje sam predstavio svoj pokušaj da napravim Nanoleaf ritam. Originalni proizvod je jako skup pa sam pomislio da napravim jedan koji izgleda slično. Ako želite saznati više, pogledajte moj YouTube video u prilogu ispod ili vi
Napravite vrlo malog robota: Napravite najmanji robot na točkovima na svijetu sa hvataljkom .: 9 koraka (sa slikama)
Napravite vrlo malog robota: Napravite najmanjeg robota na točkovima na svijetu sa hvataljkom.: Izgradite robota od 1/20 kubnih inča sa hvataljkom koja može pokupiti i pomicati male predmete. Upravlja se mikrokontrolerom Picaxe. U ovom trenutku vjerujem da je ovo možda najmanji robot na kotačima sa hvataljkom na svijetu. To će bez sumnje biti