Mundarija:
- 1 -qadam: boshlashdan oldin
- 2 -qadam: Lobada maxsus ML modelini yarating
- 3 -qadam: Qurilish: Uskuna
- 4 -qadam: Kodlash: dasturiy ta'minot
- 5 -qadam: Sinab ko'ring: Dasturni ishga tushiring
- 6 -qadam: (Ixtiyoriy) Uni tuzing: O'z davrangizni yakunlang
- 7 -qadam: (Ixtiyoriy) Uni qurish: Case
- 8 -qadam: O'rnatish va joylashtirish
Video: ML bilan Pi axlat tasniflagichini yarating!: 8 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:22
"Qayerga ketadi?!" Deb nomlangan axlatni tasniflash loyihasi narsalarni tezroq va ishonchli tashlab yuborishga mo'ljallangan.
Loyiha Lobada o'qitilgan Machine Learning (ML) modelidan foydalanadi, bu boshlang'ichlar uchun qulay (kodsiz!) ML modeli quruvchisi, ob'ekt axlatga, qayta ishlashga, kompostga yoki xavfli chiqindilarga kirishini aniqlash uchun. Keyin model Raspberry Pi 4 kompyuteriga yuklanadi va uni axlat qutilari qaerda bo'lsa ham ishlatish mumkin bo'ladi!
Ushbu qo'llanma sizga Python3 -dagi Lobe TensorFlow modelidan Raspberry Pi -da axlatni tasniflash bo'yicha o'z loyihangizni yaratishni o'rgatadi.
Qiyinchilik: boshlang'ich ++ (sxemalar va kodlash bo'yicha ba'zi bilimlar yordam beradi)
O'qish vaqti: 5 min
Qurilish vaqti: 60-90 min
Narxi: ~ 70 dollar (Pi 4 bilan)
Ta'minot:
Dasturiy ta'minot (kompyuter tomonida)
- Lob
- WinSCP (yoki boshqa SSH fayl uzatish usuli, CyberDuck Mac uchun ishlatilishi mumkin)
- Terminal
- Masofaviy ish stoli aloqasi yoki RealVNC
Uskuna
- Raspberry Pi, SD-karta va USB-C quvvat manbai (5V, 2.5A)
- Pi kamera
- Tugma
-
5 LED (4 indikatorli LED va 1 holatli LED)
- Sariq LED: axlat
- Moviy LED: qayta ishlash
- Yashil LED: kompost
- Qizil LED: xavfli chiqindilar
- Oq LED: holat
- 6 220 Ohmli rezistorlar
- 10 ta "M-M" o'tish simlari
- Non paneli, yarim o'lchamli
Agar siz payvandlashni tanlasangiz:
- 1 JST ulagichi, faqat ayol uchi
- 2 ta M-to-F o'tish kabeli
- 10 ta "F-to-F" o'tish simlari
- PCB
Qoplama
- Loyiha qutisi (masalan, karton, yog'och yoki plastik quti, taxminan 6 "x 5" x 4 ")
-
0,5 "x 0,5" (2 sm x 2 sm) shaffof plastik kvadrat
Masalan, oziq -ovqat idishining plastik qopqog'idan
- Velcro
Asboblar
- Tel kesgichlar
- Nozik pichoq (masalan, aniq pichoq) va kesuvchi mat
- Lehimlash temir (ixtiyoriy)
- Issiq erituvchi asbob (yoki boshqa o'tkazuvchan bo'lmagan elim-epoksi juda yaxshi ishlaydi, lekin doimiy)
1 -qadam: boshlashdan oldin
Bu loyiha siz Raspberry Pi-ni boshsiz konfiguratsiyadan boshlaganingizni taxmin qiladi. Buni qanday qilish kerakligi haqida yangi boshlanuvchilar uchun qo'llanma.
Bu, shuningdek, quyidagilar haqida ma'lumotga ega bo'lishga yordam beradi:
-
Raspberry Pi bilan tanishish
- Mana, boshlash uchun qulay qo'llanma!
- Bundan tashqari, foydali: Pi kamerasini ishga tushirish
-
Python kodini o'qish va tahrirlash (dastur yozishning hojati yo'q, shunchaki tahrir qiling)
Raspberry Pi bilan Pythonga kirish
- Fritzing simlarining sxemalarini o'qish
-
Non taxtasidan foydalanish
Non paneli qo'llanmasini qanday ishlatish kerak
Axlatingiz qayerga ketayotganini bilib oling
AQShning har bir shahri (va menimcha, butun dunyo) o'z axlat/qayta ishlash/kompost/va hokazo. yig'ish tizimi. Bu shuni anglatadiki, axlatni aniq tasniflagichini yaratish uchun bizga 1) maxsus ML modelini yaratish kerak (buni keyingi bosqichda ko'rib chiqamiz - kod yo'q!) Va 2) har bir axlat bo'lagi qayerga ketishini bilish.
Men har doim o'z modelimni o'rgatgan har bir element uchun mos axlat qutisini bilmas ekanman, men Sietl kommunal xizmatlari varaqasidan foydalanardim (1 -rasm), shuningdek, bu "Qaerga ketadi?" Sietl shahrini qidirish vositasi! Shaharingizdagi axlat yig'ish dasturini qidirib, uning veb -saytini o'rganib, sizning shahringizda qanday manbalar borligini bilib oling.
2 -qadam: Lobada maxsus ML modelini yarating
Lobe-bu mashinani o'rganish g'oyalarini hayotga tatbiq etish uchun kerak bo'lgan hamma narsaga ega bo'lgan ishlatish uchun qulay vosita. Unga nima qilishni xohlayotganingizning misollarini ko'rsating va u avtomatik ravishda eng yangi qurilmalar va ilovalar uchun eksport qilinadigan maxsus mashina o'rganish modelini o'rgatadi. Boshlash uchun hech qanday tajriba kerak emas. Siz o'z kompyuteringizda bepul o'qitishingiz mumkin!
Lobeni qanday ishlatish haqida qisqacha ma'lumot:
1. Lobe dasturini oching va yangi loyiha yarating.
2. Rasmga oling yoki import qiling va ularni tegishli toifalarga belgilang. (1 -rasm) Bu yorliqlar bizga keyinchalik loyihaning dasturiy qismida kerak bo'ladi.
Rasmlarni import qilishning ikki yo'li mavjud:
- To'g'ridan -to'g'ri kompyuter veb -kamerasidan elementlarni suratga oling yoki
-
Kompyuteringizdagi mavjud papkalardan rasmlarni import qiling.
Shuni yodda tutingki, foto papkaning nomi toifadagi yorliq nomi sifatida ishlatiladi, shuning uchun u mavjud teglarga mos kelishiga ishonch hosil qiling
Chetga: Men ikkala usuldan ham foydalanishni tugatdim, chunki sizda qancha rasm bo'lsa, sizning modelingiz shunchalik aniq bo'ladi.
3. Modelning aniqligini tekshirish uchun "Play" funksiyasidan foydalaning. Model qayerda va aniq emasligini aniqlash uchun masofalarni, yoritishni, qo'llarning holatini va boshqalarni o'zgartiring. Agar kerak bo'lsa, ko'proq rasm qo'shing. (Rasmlar 3 - 4)
4. Tayyor bo'lgach, Lobe ML modelingizni TensorFlow (TF) Lite formatida eksport qiling.
Maslahatlar:
-
Rasmlarni import qilishdan oldin, sizga kerak bo'lgan barcha toifalar ro'yxatini tuzing va ularni qanday etiketlamoqchisiz (masalan, "axlat", "qayta ishlash", "kompost" va boshqalar).
Eslatma: O'zgartirishingiz kerak bo'lgan kod miqdorini kamaytirish uchun yuqoridagi "Lobe Model Labels" rasmida ko'rsatilgan yorliqlardan foydalaning
- Fotosuratda boshqa narsalar bo'lishi mumkin bo'lgan rasmlar (masalan, qo'llar, qo'llar, orqa fon va boshqalar) bo'lgan "axlat emas" toifasini kiriting.
- Iloji bo'lsa, Pi Camera -dan suratga oling va Lobe -ga import qiling. Bu sizning modelingizning aniqligini sezilarli darajada yaxshilaydi!
- Yana rasmlar kerakmi? Kaggle-dagi ochiq manbali ma'lumotlar to'plamini, shu jumladan axlat tasnifi tasvirlar to'plamini ko'rib chiqing!
- Yana yordam kerakmi? Reddit -da Lobe birlashmasi bilan bog'laning!
3 -qadam: Qurilish: Uskuna
1. Ehtiyotkorlik bilan Pi kamerasini Pi -ga ulang (qo'shimcha ma'lumot olish uchun Pi Foundation boshlang'ich qo'llanmasiga tashrif buyuring). (1 -rasm)
2. Tugma va LEDlarni Pi GPIO pinlariga ulash uchun simlar sxemasiga amal qiling.
- Tugma: Tugmachaning bir oyog'ini GPIO piniga ulang. Boshqa qismini rezistor orqali GPIO GND piniga ulang.
- Sariq LED: musbat (uzunroq) oyog'ini GPIO pin 17 ga ulang. Boshqa oyog'ini qarshilik orqali GPIO GND piniga ulang.
- Moviy LED: musbat oyoqni GPIO pin 27 ga ulang. Boshqa oyog'ini qarshilik orqali GPIO GND piniga ulang.
- Yashil LED: musbat oyoqni GPIO pin 22 ga ulang. Boshqa oyog'ini qarshilik orqali GPIO GND piniga ulang.
- Qizil LED: musbat oyoqni GPIO pin 23 ga ulang. Boshqa oyog'ini qarshilik orqali GPIO GND piniga ulang.
- Oq LED: ijobiy oyog'ini GPIO pin 24 ga ulang. Boshqa oyog'ini qarshilik orqali GPIO GND piniga ulang.
3. Lehimlashdan yoki biron -bir ulanishni doimiy holga keltirishdan oldin, sxemani non taxtasida sinab ko'rish va dasturni ishga tushirish tavsiya etiladi. Buning uchun bizga dasturiy ta'minot dasturini yozish va yuklash kerak bo'ladi, shuning uchun keyingi bosqichga o'tamiz!
4 -qadam: Kodlash: dasturiy ta'minot
1. Kompyuteringizda WinSCP -ni oching va Pi -ga ulaning. Pi uy katalogida Lobe papkasini yarating va shu katalogda namunaviy papkani yarating.
2. Olingan Lobe TF papkasining tarkibini Pi ga torting. Fayl yo'liga e'tibor bering:/home/pi/Lobe/model
3. Pi-da terminal oching va quyidagi bash buyruqlarini bajarib Python3 uchun lobe-python kutubxonasini yuklab oling:
pip3 o'rnatish
pip3 o'rnatish lob
4. Repo -dan axlatni tasniflagich kodini (rpi_trash_classifier.py) Pi -ga yuklab oling (1 -rasmda ko'rsatilgandek "Kod" tugmasini bosing).
- Nusxalash/joylashtirishni afzal ko'rasizmi? Bu erda xom kodni oling.
- Kompyuteringizga yuklab olishni afzal ko'rasizmi? Repo/kodni kompyuteringizga yuklab oling, keyin Python kodini WinSCP (yoki siz tanlagan masofaviy fayl uzatish dasturi) orqali Pi ga o'tkazing.
5. Uskunani Pi GPIO pinlariga ulaganingizdan so'ng, misol kodini o'qing va kerak bo'lganda fayl yo'llarini yangilang:
- 29 -qator: Lobe TF modeliga o'tish yo'li
- 47 va 83 -qatorlar: Pi Camera orqali olingan tasvirlarga yo'l
6. Agar kerak bo'lsa, koddagi model belgilarini Lobe modelingizdagi yorliqlarga to'liq mos keladigan tarzda yangilang (bosh harflar, tinish belgilari va h.k.):
- 57 -qator: "axlat"
- 60 -qator: "qayta ishlash"
- 63 -qator: "kompost"
- 66 -qator: "Xavfli chiqindilar inshooti"
- 69 -qator: "axlat emas!"
7. Dasturni terminal oynasida Python3 yordamida ishga tushiring:
python3 rpi_trash_classifier.py
5 -qadam: Sinab ko'ring: Dasturni ishga tushiring
Dasturning umumiy ko'rinishi
Dasturni birinchi ishga tushirganingizda, TensorFlow kutubxonasi va Lobe ML modelini yuklash uchun biroz vaqt kerak bo'ladi. Dastur tasvirni olishga tayyor bo'lganda, holat nuri (oq LED) pulsatsiyalanadi.
Siz rasm olganingizdan so'ng, dastur tasvirni Lobe ML modeli bilan taqqoslaydi va natijada bashorat qiladi (83 -qator). Chiqish qaysi yorug'lik yoqilganligini aniqlaydi: sariq (axlat), ko'k (qayta ishlash), yashil (kompost) yoki qizil (xavfli chiqindilar).
Agar indikatorli LEDlarning hech biri yoqilmasa va LED holati puls rejimiga qaytmasa, bu tasvir "axlat emas" degan ma'noni anglatadi, boshqacha aytganda, rasmni qayta oling!
Rasmga olish
Rasm olish uchun tugmachani bosing. E'tibor bering, matbuotni ro'yxatdan o'tkazish uchun dastur tugmachasini kamida 1 soniya bosib turish kerak bo'ladi. Kamera ko'rinishi va ramkasini yaxshiroq tushunish uchun bir nechta test tasvirlarini olish, keyin ularni ish stolida ochish tavsiya etiladi.
Foydalanuvchiga ob'ektni joylashtirish vaqtini berish va kameraning yorug'lik darajasini sozlash uchun, tasvirni to'liq olish uchun taxminan 5 soniya kerak bo'ladi. Siz ushbu sozlamalarni kodda o'zgartirishingiz mumkin (35 va 41 -qatorlar), lekin shuni yodda tutingki, Pi Foundation yorug'lik darajasini sozlash uchun kamida 2 soniyani tavsiya qiladi.
Muammolarni bartaraf qilish; nosozliklarni TUZATISH
Eng katta qiyinchilik - tasvirni biz kutgandek bo'lishini ta'minlash, shuning uchun tasvirlarni ko'rib chiqish va kutilgan natijalarni indikatorli LED chiqishi bilan solishtirish uchun vaqt ajrating. Agar kerak bo'lsa, siz to'g'ridan -to'g'ri xulosa chiqarish va tezroq taqqoslash uchun rasmlarni Lobe ML modeliga o'tkazishingiz mumkin.
E'tibor qilish kerak bo'lgan bir nechta narsalar:
- TensorFlow kutubxonasi, ehtimol, ba'zi ogohlantirish xabarlarini yuboradi - bu namuna kodida ishlatiladigan versiya uchun odatiy holdir.
- Bashorat yorliqlari led_select () funktsiyasida yozilganidek bo'lishi kerak, shu jumladan bosh harflar, tinish belgilari va intervallar. Agar sizda boshqa Lobe modeli bo'lsa, ularni o'zgartirganingizga ishonch hosil qiling.
- Pi doimiy elektr ta'minotini talab qiladi. Pi -ning quvvat nuri yorqin, qattiq qizil bo'lishi kerak.
- Agar bir yoki bir nechta LEDlar kutilmaganda yonmasa, ularni buyruq yordamida majburan yoqing.
red_led.on ()
6 -qadam: (Ixtiyoriy) Uni tuzing: O'z davrangizni yakunlang
Endi biz loyihamizni kutilganidek ishlashi uchun sinovdan o'tkazdik va kerak bo'lganda disk raskadrovka qildik, biz o'z sxemamizni lehimlashga tayyormiz!
Eslatma: Agar sizda lehimlantiruvchi temir bo'lmasa, siz bu bosqichni o'tkazib yuborishingiz mumkin. Boshqa variant - simlarni issiq yopishtiruvchi bilan yopish (bu variant sizga keyinchalik narsalarni tuzatish/qo'shish/ishlatishga imkon beradi, lekin sinishi ehtimoli katta) yoki epoksi yoki shunga o'xshash doimiy elimdan foydalaning (bu variant ancha bardoshli bo'ladi) lekin buni qilgandan keyin siz sxemani yoki potentsial Pi ni ishlata olmaysiz)
Dizayn tanlovim haqida tezkor izoh (1 -rasm):
- Men LEDlar va Pi GPIO uchun ayol o'tish simlarini tanladim, chunki ular menga LEDlarni olib tashlash, ranglarni almashtirish yoki kerak bo'lganda ko'chirish imkonini beradi. Agar siz aloqalarni doimiy qilishni xohlasangiz, ularni o'tkazib yuborishingiz mumkin.
- Xuddi shunday, men tugma uchun JST ulagichini tanladim.
Qurilish sari
1. Har bir ayol o'tish simlarini ikkiga bo'ling (ha, hammasi!). Tel -stripper yordamida sim izolyatsiyasining 1/4 dyuymini olib tashlang.
2. LEDlarning har biri uchun manfiy (qisqaroq) oyoqqa 220Ω qarshilikni lehimlang. (2 -rasm)
3. Kichkina bo'lakni, taxminan 1 dyuymli (2 sm) issiqlik qisish trubkasini kesib oling va LED va rezistorning o'tish joyini bosib o'ting. Boshqa rezistor oyog'iga kirish imkoni borligiga ishonch hosil qiling, so'ngra qisqich trubkasi bo'g'inni mahkamlaguncha qizdiring.)
4. Har bir LEDni bir juft ayol o'tish simlariga joylashtiring. (4 -rasm)
5. O'tish simlarini (masalan, lenta bilan) belgilang, so'ngra elektron plataga (PCB) lehim bilan ulang. (5 -rasm)
6. Keyin, har bir LEDni tegishli Pi GPIO piniga ulash uchun (kesilgan) ayol o'tish simidan foydalaning. Yalang'och metall PCB orqali musbat LED oyog'iga ulanishi uchun o'tish simini lehimlang va belgilang. (5 -rasm)
Eslatma: Bu simni qayerda lehimlaysiz, bu sizning tenglikni tuzilishiga bog'liq bo'ladi. Bundan tashqari, siz ushbu simni to'g'ridan -to'g'ri musbat LED o'tish simiga lehimlashingiz mumkin.
7. JST ulagichining manfiy (qora) uchiga 220Ω qarshilikni lehimlang. (6 -rasm)
8. JST ulagichi va rezistorini tugmachaga lehimlang. (6 -rasm)
9. M-to-F o'tish simlarini tugma ulagichi va GPIO pinlari orasiga ulang (eslatma: qora-GND).
10. Ishonchliroq ulanish uchun tenglikni issiq elim yoki epoksi bilan yopishtiring.
Eslatma: agar siz epoksi ishlatishni tanlasangiz, kelajakda Pi ning GPIO pinlarini boshqa loyihalar uchun ishlata olmasligingiz mumkin. Agar siz bundan xavotirda bo'lsangiz, GPIO tasmasini qo'shing va uning o'rniga o'tish simlarini ulang.
7 -qadam: (Ixtiyoriy) Uni qurish: Case
Pi uchun kamerani, tugmachalarni va LED -larni ushlab turadigan, shuningdek Pi -ni himoya qiladigan korpus yarating. O'zingizning korpusingizni loyihalashtiring yoki karton qutini tezda prototiplash uchun quyida keltirilgan ko'rsatmalarimizga amal qiling!
-
Kichik karton qutining yuqori qismidagi tugma, holat nuri, identifikator chiroqlari va pi kamera oynasi uchun joylarni belgilang (1 -rasm).
Eslatma: Pi kamera oynasi taxminan 3/4 "x 1/2" bo'lishi kerak
-
O'zingizning aniq pichog'ingiz bilan izlarni kesib oling.
Eslatma: siz ketayotganda o'lchamlarni sinab ko'rishingiz mumkin (1 -rasm)
- Majburiy emas: sumkani bo'yash! Men buzadigan amallar bo'yoqini tanladim:)
- Pi Camera uchun to'rtburchaklar "oyna" qopqog'ini kesib oling (4 -rasm) va qutining ichki qismiga yopishtiring
-
Nihoyat, Pi quvvat simining uyasini kesib oling.
Quvvat kabelining uyasi uchun eng yaxshi joyni topish uchun birinchi navbatda barcha elektron qurilmalarni o'rnatish tavsiya etiladi
8 -qadam: O'rnatish va joylashtirish
Bo'ldi shu! Siz loyihangizni o'rnatishga va tarqatishga tayyormiz! Chiqindilarni axlat qutilarining ustiga qo'ying, Pi -ni ulang va chiqindilarni kamaytirishning tezroq va ishonchli usulini olish uchun dasturni ishga tushiring. Vajjaj!
Oldinga
- Lobe Reddit hamjamiyati orqali o'z loyihalaringiz va g'oyalaringizni boshqa odamlar bilan baham ko'ring!
- Lobe Python GitHub repo -ni ko'rib chiqing, Python -dan Lobe loyihalarini kengroq joylashtirish uchun qanday foydalanish haqida umumiy ma'lumot.
- Savollar yoki loyiha so'rovlari? Loyihaga sharh qoldiring yoki bizga to'g'ridan -to'g'ri murojaat qiling: [email protected]
Tavsiya:
Axlat qutisidan mukammal taxta: 4 qadam (rasmlar bilan)
Axlat qutisidan mukammal taxta: Mana, deyarli hamma atrofda yotadigan materiallardan qurilgan arzon va oson. Bu Arduino loyihalari yoki faqat uy qurilishi sxemasi uchun juda mos keladi. Ushbu loyihani amalga oshirish yarim soat davom etadi
Itlarga qarshi Arduino axlat qutisi: 6 qadam (rasmlar bilan)
Arduino itlarga qarshi axlat qutisi: Ushbu loyihada men sizning jirkanch itlaringizni axlat qutisiga tushishining oldini olish uchun qanday kulgili, ammo ishchi usulni qurishni ko'rsataman
DIY aqlli axlat qutisi Arduino bilan: 6 qadam (rasmlar bilan)
DIY aqlli axlat qutisi Arduino bilan: Bu erda biz arduino va ultrasonik sensor yordamida aqlli axlat qutisini yasaymiz. Umid qilamanki, siz bolalar bu loyihani o'rganishni yoqtirasiz
Axlat qutisi BT chizilgan chizilgan bot - Mening botim: 13 qadam (rasmlar bilan)
Axlat qutisi qurilgan BT chizish chizig'i - Mening botim: Salom do'stlarim, taxminan 6 oylik tanaffusdan so'ng, men yangi loyiha bilan keldim. Cute Drawing Buddy V1, SCARA Robot - Arduino i tugaguniga qadar men boshqa chizish botini rejalashtirmoqdaman, asosiy maqsad chizish uchun katta maydonni yopishdir. Shunday qilib, mahkamlangan robot qo'llar
Axlat qutisidan "LED chirog'i": 13 qadam (rasmlar bilan)
"LED chirog'i" axlat qutisidan: Salom bolalar, bugun men bu ko'rsatmada eski lampochka lampochkasidan yangi yorqin LED chirog'ini yasadim. Bir kun oldin, tozalash ishlarida men uyimda chiroyli ko'rinadigan chiroyli mash'alani ko'rdim. Ammo u ish sharoitida emas. Men uning lampochkasini topdim