Mundarija:

ML bilan Pi axlat tasniflagichini yarating!: 8 qadam (rasmlar bilan)
ML bilan Pi axlat tasniflagichini yarating!: 8 qadam (rasmlar bilan)

Video: ML bilan Pi axlat tasniflagichini yarating!: 8 qadam (rasmlar bilan)

Video: ML bilan Pi axlat tasniflagichini yarating!: 8 qadam (rasmlar bilan)
Video: Праздник. Новогодняя комедия 2024, Noyabr
Anonim
ML yordamida Pi axlat klassifikatorini yarating!
ML yordamida Pi axlat klassifikatorini yarating!
ML yordamida Pi axlat klassifikatorini yarating!
ML yordamida Pi axlat klassifikatorini yarating!

"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

Boshlashdan oldin
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:

  1. Raspberry Pi bilan tanishish

    • Mana, boshlash uchun qulay qo'llanma!
    • Bundan tashqari, foydali: Pi kamerasini ishga tushirish
  2. Python kodini o'qish va tahrirlash (dastur yozishning hojati yo'q, shunchaki tahrir qiling)

    Raspberry Pi bilan Pythonga kirish

  3. Fritzing simlarining sxemalarini o'qish
  4. 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

Lobada maxsus ML modelini yarating
Lobada maxsus ML modelini yarating
Lobada maxsus ML modelini yarating
Lobada maxsus ML modelini yarating
Lobada maxsus ML modelini yarating
Lobada maxsus ML modelini yarating
Lobada maxsus ML modelini yarating
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:

  1. To'g'ridan -to'g'ri kompyuter veb -kamerasidan elementlarni suratga oling yoki
  2. 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

Qurilish: Uskuna!
Qurilish: Uskuna!
Qurilish: Uskuna!
Qurilish: Uskuna!
Qurilish: Uskuna!
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

Kodlash: dasturiy ta'minot!
Kodlash: dasturiy ta'minot!
Kodlash: dasturiy ta'minot!
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

Sinab ko'ring: dasturni ishga tushiring!
Sinab ko'ring: dasturni ishga tushiring!
Sinab ko'ring: dasturni ishga tushiring!
Sinab ko'ring: dasturni ishga tushiring!
Sinab ko'ring: dasturni ishga tushiring!
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

(Ixtiyoriy) Uni qurish: davrangizni yakunlang!
(Ixtiyoriy) Uni qurish: davrangizni yakunlang!
(Ixtiyoriy) Uni tuzing: O'z davrangizni yakunlang!
(Ixtiyoriy) Uni tuzing: O'z davrangizni yakunlang!
(Ixtiyoriy) Uni tuzing: O'z davrangizni yakunlang!
(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

(Ixtiyoriy) Uni qurish: Case!
(Ixtiyoriy) Uni qurish: Case!
(Ixtiyoriy) Uni qurish: Case!
(Ixtiyoriy) Uni qurish: Case!
(Ixtiyoriy) Uni qurish: Case!
(Ixtiyoriy) Uni qurish: Case!
(Ixtiyoriy) Uni qurish: Case!
(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!

  1. 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

  2. O'zingizning aniq pichog'ingiz bilan izlarni kesib oling.

    Eslatma: siz ketayotganda o'lchamlarni sinab ko'rishingiz mumkin (1 -rasm)

  3. Majburiy emas: sumkani bo'yash! Men buzadigan amallar bo'yoqini tanladim:)
  4. Pi Camera uchun to'rtburchaklar "oyna" qopqog'ini kesib oling (4 -rasm) va qutining ichki qismiga yopishtiring
  5. 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

O'rnatish va joylashtirish!
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: