Talaan ng mga Nilalaman:
- Hakbang 1: Bago Kami Magsimula
- Hakbang 2: Lumikha ng isang Custom na ML Model sa Lobe
- Hakbang 3: Buuin Ito: Hardware
- Hakbang 4: Code Ito: Software
- Hakbang 5: Subukan Ito: Patakbuhin ang Programa
- Hakbang 6: (Opsyonal) Buuin Ito: I-finalize ang Iyong Circuit
- Hakbang 7: (Opsyonal) Buuin Ito: Kaso
- Hakbang 8: I-install at I-deploy
Video: Gumawa ng isang Pi Trash Classifier Sa ML !: 8 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Ang proyekto ng Trash Classifier, na may pagmamahal na kilala bilang "Saan ito pupunta ?!", ay dinisenyo upang gawing mas mabilis at mas maaasahan ang pagtatapon ng mga bagay.
Gumagamit ang proyektong ito ng isang modelo ng Machine Learning (ML) na sinanay sa Lobe, isang baguhan-friendly (walang code!) Tagabuo ng modelo ng ML, upang makilala kung ang isang bagay ay napupunta sa basura, pag-recycle, pag-aabono, o mapanganib na basura. Ang modelo ay nai-load sa isang Raspberry Pi 4 computer upang magamit ito saan ka man makahanap ng mga basurahan!
Tinuturo ka ng tutorial na ito kung paano lumikha ng iyong sariling proyekto ng Trash Classifier sa isang Raspberry Pi mula sa isang modelo ng Lobe TensorFlow sa Python3.
Pinagkakahirapan: Nagsisimula ++ (ang ilang kaalaman sa w / circuit at pag-coding ay kapaki-pakinabang)
Basahin ang Oras: 5 min
Oras ng Pagbuo: 60 - 90 min
Gastos: ~ $ 70 (kabilang ang Pi 4)
Mga Pantustos:
Software (panig sa PC)
- Lobe
- Ang WinSCP (o ibang paraan ng paglipat ng file ng SSH, ay maaaring gumamit ng CyberDuck para sa Mac)
- Terminal
- Remote na Koneksyon sa Desktop o RealVNC
Hardware
- Raspberry Pi, SD Card, at USB-C power supply (5V, 2.5A)
- Pi Camera
- Pushbutton
-
5 LEDs (4 na tagapagpahiwatig LEDs at 1 status LED)
- Dilaw na LED: basura
- Blue LED: recycle
- Green LED: compost
- Red LED: mapanganib na basura
- White LED: katayuan
- 6 220 Ohm resistors
- 10 M-to-M jumper wires
- Breadboard, kalahating sukat
Kung pipiliin mong maghinang:
- 1 konektor ng JST, dulo lamang ng babae
- 2 M-to-F jumper wires
- 10 F-to-F jumper wires
- PCB
Enclosure
- Kaso ng proyekto (hal. Karton, kahoy, o plastik na kahon, tinatayang 6 "x 5" x 4 ")
-
0.5 "x 0.5" (2cm x 2cm) malinaw na plastik na parisukat
Hal. mula sa takip ng lalagyan ng plastik na pagkain
- Velcro
Mga kasangkapan
- Mga pamutol ng wire
- Precision kutsilyo (hal. Exacto kutsilyo) at cutting mat
- Bakal na bakal (opsyonal)
- Mainit na natutunaw na tool (o iba pang di-conductive na pandikit - gumagana ang epoxy ngunit permanente)
Hakbang 1: Bago Kami Magsimula
Ipinapalagay ng proyektong ito na nagsisimula ka sa isang kumpletong pag-set-up na Raspberry Pi sa isang walang ulo na pagsasaayos. Narito ang isang gabay na nagsisimula sa pag-friendly sa kung paano ito gawin.
Nakatutulong din ito upang magkaroon ng kaunting kaalaman sa mga sumusunod:
-
Pamilyar sa Raspberry Pi
- Narito ang isang madaling gamiting gabay sa pagsisimula!
- Nakatutulong din: Pagsisimula sa Pi camera
-
Pagbasa at pag-edit ng Python code (hindi mo kailangang magsulat ng isang programa, i-edit lamang)
Panimula sa Python kasama ang Raspberry Pi
- Pagbasa ng Fritzing mga diagram ng mga kable
- Paggamit ng isang pisara
Paano gumamit ng isang tutorial sa breadboard
Alamin kung saan pumupunta ang iyong basurahan
Ang bawat lungsod sa buong US (at akala ko ang mundo) ay may sariling basura / recycling / compost / etc. sistema ng koleksyon. Nangangahulugan ito na upang makagawa ng isang tumpak na classifier ng basurahan, kakailanganin nating 1) bumuo ng isang pasadyang modelo ng ML (tatalakayin namin ito sa susunod na hakbang - walang code!) At 2) alam kung saan pumupunta ang bawat piraso ng basurahan.
Dahil hindi ko palaging alam ang tamang basurahan para sa bawat item na ginamit ko upang sanayin ang aking modelo, ginamit ko ang flyer ng Seattle Utilities (Larawan 1), at madaling gamitin din ang "Saan ito pupunta?" tool sa paghahanap para sa lungsod ng Seattle! Suriin kung anong mga mapagkukunan ang magagamit sa iyong lungsod sa iyo sa pamamagitan ng pagtingin sa utility sa pagkolekta ng basura ng iyong lungsod at pagtuklas sa website nito.
Hakbang 2: Lumikha ng isang Custom na ML Model sa Lobe
Ang Lobe ay isang madaling gamiting tool na mayroong lahat ng kailangan mo upang buhayin ang iyong mga ideya sa pag-aaral ng makina. Ipakita ito sa mga halimbawa ng kung ano ang nais mong gawin, at awtomatiko nitong sinasanay ang isang modelo ng pasadyang machine learning na maaaring ma-export para sa mga edge na aparato at app. Hindi ito nangangailangan ng anumang karanasan upang makapagsimula. Maaari kang magsanay sa iyong sariling computer nang libre!
Narito ang isang mabilis na pangkalahatang ideya sa kung paano gamitin ang Lobe:
1. Buksan ang programa ng Lobe at lumikha ng isang bagong proyekto.
2. Kumuha o mag-import ng mga larawan at lagyan ng label ang mga ito sa naaangkop na mga kategorya. (Larawan 1) Kakailanganin namin ang mga label na ito sa paglaon sa bahagi ng software ng proyekto.
Mayroong dalawang paraan upang mag-import ng mga larawan:
- Kumuha ng mga larawan ng mga item nang direkta mula sa iyong computer webcam, o
-
Mag-import ng mga larawan mula sa mga mayroon nang mga folder sa iyong computer.
Tandaan na ang pangalan ng folder ng larawan ay gagamitin bilang kategorya ng label ng kategorya, kaya tiyaking tumutugma ito sa mga umiiral nang label
Bukod: Natapos ako gamit ang parehong pamamaraan, dahil mas maraming mga larawan ang mayroon ka, mas tumpak ang iyong modelo.
3. Gamitin ang tampok na "Play" upang subukan ang katumpakan ng modelo. Baguhin ang mga distansya, ilaw, posisyon ng kamay, atbp upang makilala kung nasaan ang modelo at hindi tumpak. Magdagdag ng higit pang mga larawan kung kinakailangan. (Mga Larawan 3 - 4)
4. Kapag handa ka na, i-export ang iyong modelo ng Lobe ML sa isang format na TensorFlow (TF) Lite.
Mga Tip:
-
Bago mag-import ng mga larawan, gumawa ng isang listahan ng lahat ng mga kategorya na kakailanganin mo at kung paano mo nais na lagyan ng label ang mga ito (hal. "Basura," "recycle," "compost," atbp.)
Tandaan: Gumamit ng parehong mga label tulad ng ipinakita sa larawan ng "Lobe Model Labels" sa itaas upang mabawasan ang dami ng code na kailangan mong baguhin
- Isama ang isang kategorya para sa "hindi basurahan" na may mga larawan ng anupaman na maaaring nasa larawan (hal. Iyong mga kamay at braso, background, atbp.)
- Kung maaari, kumuha ng mga larawan mula sa Pi Camera at i-import sa Lobe. Mapapabuti nito ang kawastuhan ng iyong modelo!
- Kailangan mo ng maraming larawan? Suriin ang mga open-source na dataset sa Kaggle, kabilang ang hanay ng imahe ng pag-uuri ng basura!
- Kailangan mo pa ba ng tulong? Kumonekta sa Lobe Coommunity sa Reddit!
Hakbang 3: Buuin Ito: Hardware
1. Maingat na ikonekta ang Pi Camera kay Pi (bisitahin ang gabay sa pagsisimula ng Pi Foundation para sa karagdagang impormasyon). (Larawan 1)
2. Sundin ang diagram ng mga kable upang ikonekta ang pushbutton at LEDs sa mga pin ng Pi GPIO.
- Pushbutton: Ikonekta ang isang binti ng pushbutton sa GPIO pin 2. Ikonekta ang isa pa, sa pamamagitan ng isang risistor, sa isang GPIO GND pin.
- Dilaw na LED: Ikonekta ang positibo (mas mahabang) binti sa GPIO pin 17. Ikonekta ang iba pang mga binti, sa pamamagitan ng isang risistor, sa isang GPIO GND pin.
- Blue LED: Ikonekta ang positibong binti sa GPIO pin 27. Ikonekta ang iba pang mga binti, sa pamamagitan ng isang risistor, sa isang GPIO GND pin.
- Green LED: Ikonekta ang positibong binti sa GPIO pin 22. Ikonekta ang iba pang mga binti, sa pamamagitan ng isang risistor, sa isang GPIO GND pin.
- Red LED: Ikonekta ang positibong binti sa GPIO pin 23. Ikonekta ang iba pang mga binti, sa pamamagitan ng isang risistor, sa isang GPIO GND pin.
- White LED: Ikonekta ang positibong binti sa GPIO pin 24. Ikonekta ang iba pang mga binti, sa pamamagitan ng isang risistor, sa isang GPIO GND pin.
3. Inirerekumenda na subukan ang iyong circuit sa isang breadboard at patakbuhin ang programa bago maghinang o gawing permanenteng anuman ang mga koneksyon. Upang magawa ito, kakailanganin naming magsulat at mag-upload ng aming programa sa software, kaya't pumunta tayo sa susunod na hakbang!
Hakbang 4: Code Ito: Software
1. Sa iyong PC, buksan ang WinSCP at kumonekta sa iyong Pi. Lumikha ng isang folder ng Lobe sa direktoryo ng bahay ng iyong Pi at lumikha ng isang modelo ng folder sa direktoryong iyon.
2. I-drag ang nagresultang mga nilalaman ng folder ng Lobe TF papunta sa Pi. Itala ang landas ng file: / home / pi / Lobe / model
3. Sa Pi, buksan ang isang terminal at i-download ang lobe-python library para sa Python3 sa pamamagitan ng pagpapatakbo ng mga sumusunod na bash command:
i-install ang pip3
pip3 i-install ang lobe
4. I-download ang code ng Trash Classifier (rpi_trash_classifier.py) mula sa repo na ito papunta sa Pi (i-click ang pindutang "Code" tulad ng ipinakita sa Larawan 1).
- Mas gusto na kopyahin / i-paste? Kunin ang hilaw na code dito.
- Mas gusto na mag-download sa iyong computer? I-download ang repo / code papunta sa iyong computer pagkatapos ilipat ang code ng Python sa Pi sa pamamagitan ng WinSCP (o ang iyong ginustong program ng remote file transfer).
5. Kapag nakakonekta mo ang hardware sa mga pin ng GPIO ng Pi, basahin ang halimbawa ng code at i-update ang anumang mga landas ng file kung kinakailangan:
- Linya 29: filepath sa modelo ng Lobe TF
- Mga Linya 47 at 83: filepath sa mga nakunan ng mga imahe sa pamamagitan ng Pi Camera
6. Kung kinakailangan, i-update ang mga label ng modelo sa code upang eksaktong tumugma sa mga label sa iyong modelo ng Lobe (kasama ang malaking titik, bantas, atbp.):
- Linya 57: "basura"
- Linya 60: "recycle"
- Linya 63: "compost"
- Linya 66: "mapanganib na pasilidad sa basura"
- Linya 69: "hindi basura!"
7. Patakbuhin ang programa gamit ang Python3 sa window ng terminal:
python3 rpi_trash_classifier.py
Hakbang 5: Subukan Ito: Patakbuhin ang Programa
Pangkalahatang-ideya ng Programa
Kapag pinatakbo mo muna ang programa, magtatagal upang mai-load ang TensorFlow library at ang modelo ng Lobe ML. Kapag handa na ang programa na kumuha ng isang imahe, ang ilaw ng katayuan (puting LED) ay magpap pulso.
Kapag nakakuha ka ng isang imahe, ihahambing ng programa ang imahe sa modelo ng Lobe ML at ilalabas ang nagresultang hula (linya 83). Tinutukoy ng output kung aling ilaw ang nakabukas: dilaw (basura), asul (recycle), berde (compost), o pula (mapanganib na basura).
Kung wala sa mga tagapagpahiwatig na LED na naka-on at ang status LED ay bumalik sa mode ng pulso, nangangahulugan ito na ang nakuhang imahe ay "hindi basura", sa madaling salita, muling kunin ang larawan!
Nakukuha ang isang Imahe
Pindutin ang pushbutton upang makakuha ng isang imahe. Tandaan na maaaring kailanganin mong hawakan ang pushbutton nang hindi bababa sa 1 para sa programa upang irehistro ang pindutin. Inirerekumenda na kumuha ng ilang mga imahe ng pagsubok, pagkatapos ay buksan ang mga ito sa Desktop upang mas maunawaan ang view ng camera at frame.
Upang payagan ang oras ng gumagamit na iposisyon ang bagay at para maiayos ang mga antas ng ilaw ng camera, tumatagal ng halos 5s upang ganap na makunan ang isang imahe. Maaari mong baguhin ang mga setting na ito sa code (mga linya 35 at 41), ngunit tandaan na inirekomenda ng Pi Foundation ang isang minimum na 2 para sa pagsasaayos ng antas ng ilaw.
Pag-troubleshoot
Ang pinakamalaking hamon ay ang pagtiyak na ang nakunan ng imahe ay kung ano ang inaasahan namin, kaya maglaan ng kaunting oras upang suriin ang mga imahe at ihambing ang mga inaasahang resulta sa output na LED na nagsasaad. Kung kinakailangan, maaari kang pumasa sa mga imahe sa modelo ng Lobe ML para sa direktang paghihinuha at mas mabilis na paghahambing.
Ilang bagay na dapat tandaan:
- Ang TensorFlow library ay malamang na magtapon ng ilang mga babalang mensahe - tipikal ito para sa bersyon na ginamit sa sample code na ito.
- Ang mga label ng hula ay dapat na eksaktong nakasulat sa pagpapaandar na led_select (), kabilang ang malaking titik, bantas, at spacing. Tiyaking baguhin ang mga ito kung mayroon kang ibang modelo ng Lobe.
- Ang Pi ay nangangailangan ng isang matatag na supply ng kuryente. Ang ilaw ng kuryente ng Pi ay dapat na maliwanag, solidong pula.
- Kung ang isa o higit pang mga LED ay hindi naka-on kung inaasahan, suriin sa pamamagitan ng pagpwersa sa kanila ng utos:
red_led.on ()
Hakbang 6: (Opsyonal) Buuin Ito: I-finalize ang Iyong Circuit
Ngayong nasubukan na namin at, kung kinakailangan, na-debug ang aming proyekto upang gumana ito tulad ng inaasahan, handa na kaming maghinang ng aming circuit!
Tandaan: Kung wala kang isang panghinang na bakal, maaari mong laktawan ang hakbang na ito. Ang isang kahalili ay amerikana ang mga koneksyon sa kawad sa mainit na pandikit (papayagan ka ng pagpipiliang ito na ayusin / magdagdag / gumamit ng mga bagay sa paglaon, ngunit mas malamang na masira), o gumamit ng epoxy o isang katulad na permanenteng pandikit (ang pagpipiliang ito ay magiging mas matibay ngunit hindi mo magagamit ang circuit o potensyal na ang Pi pagkatapos gawin ito)
Mabilis na puna tungkol sa aking mga pagpipilian sa disenyo (Larawan 1):
- Nag-opt ako para sa mga babaeng jumper wires para sa mga LED at Pi GPIO dahil pinapayagan nila akong alisin ang mga LED at magpalitan ng mga kulay o ilipat ang mga ito sa paligid kung kinakailangan. Maaari mong laktawan ang mga ito kung nais mong gawing permanenteng ang mga koneksyon.
- Katulad nito, pumili ako ng isang konektor ng JST para sa pushbutton.
Nagpapatuloy sa pagbuo
1. Gupitin ang bawat isa sa mga babaeng jumper wires sa kalahati (oo, lahat ng mga ito!). Gamit ang mga wire striper, alisin ang tungkol sa 1/4 (1 / 2cm) ng pagkakabukod ng kawad.
2. Para sa bawat isa sa mga LED, maghinang ng isang 220Ω risistor sa negatibong (mas maikli) na binti. (Larawan 2)
3. Gupitin ang isang maliit na piraso, tungkol sa 1 (2cm) ng heat shrink tube at itulak ang LED at resistor junction. Siguraduhing naa-access ang iba pang binti ng risistor, pagkatapos ay painitin ang shrink tube hanggang ma-secure nito ang magkasanib. (Larawan 3)
4. Ipasok ang bawat LED sa isang pares ng mga babaeng jumper wires. (Larawan 4)
5. Lagyan ng label ang mga wire ng lumulukso (hal. Na may tape), pagkatapos ay ang mga wire ng solder jumper papunta sa iyong naka-print na circuit board (PCB). (Larawan 5)
6. Susunod, gumamit ng (putol) babaeng jumper wire upang ikonekta ang bawat LED sa kani-kanilang Pi GPIO pin. Maghinang at lagyan ng label ang isang jumper wire upang ang hubad na metal ay kumonekta sa positibong LED leg sa pamamagitan ng PCB. (Larawan 5)
Tandaan: Kung saan mo hinihinang ang kawad na ito ay nakasalalay sa iyong layout ng PCB. Maaari mo ring solder ang kawad na ito nang direkta sa positibong LED jumper wire.
7. Maghinang ng isang 220Ω risistor sa negatibong (itim) na dulo ng konektor ng JST. (Larawan 6)
8. Maghinang ng konektor ng JST at risistor sa pushbutton. (Larawan 6)
9. Ikonekta ang M-to-F jumper wires sa pagitan ng pushbutton connector at mga GPIO pin (paalala: itim ang GND).
10. Mga koneksyon sa coat PCB sa mainit na pandikit o epoxy para sa isang mas ligtas na koneksyon.
Tandaan: kung pipiliin mong gumamit ng epoxy, maaaring hindi mo magamit ang mga pin ng GPIO ng Pi para sa iba pang mga proyekto sa hinaharap. Kung nag-aalala ka tungkol dito, magdagdag sa isang GPIO ribbon cable at ikonekta ang mga jumper wires sa halip.
Hakbang 7: (Opsyonal) Buuin Ito: Kaso
Lumikha ng isang enclosure para sa iyong Pi na hahawak sa camera, pushbutton, at LEDs sa lugar habang pinoprotektahan din ang Pi. Idisenyo ang iyong sariling enclosure o sundin ang aming mga tagubilin sa pagbuo sa ibaba para sa mabilis na pag-prototyp ng isang enclosure ng karton!
-
Sa tuktok ng maliit na kahon ng karton, subaybayan ang mga lokasyon para sa pindutan ng pindutan, ilaw ng katayuan, mga ilaw ng pantukoy, at window ng pi camera (Larawan 1).
Tandaan: Ang window ng Pi camera ay dapat na tungkol sa 3/4 "x 1/2"
-
Gamit ang iyong katumpakan na kutsilyo, gupitin ang mga bakas.
Tandaan: baka gusto mong subukan ang mga laki sa iyong pagpunta (Larawan 1)
- Opsyonal: Kulayan ang kaso! Pinili ko ang spray ng pintura:)
- Gupitin ang isang hugis-parihaba na takip na "window" para sa Pi Camera (Larawan 4) at kola sa loob ng kahon
-
Sa wakas, gupitin ang puwang para sa Pi power cable.
Inirerekumenda na i-install muna ang lahat ng electronics upang mahanap ang pinakamahusay na lugar para sa pi power cable slot
Hakbang 8: I-install at I-deploy
Ayan yun! Handa ka nang mag-install at mag-deploy ng iyong proyekto! Ilagay ang enclosure sa itaas ng iyong mga basurahan, isaksak ang Pi, at patakbuhin ang programa upang makakuha ng mas mabilis, mas maaasahang paraan ng pagbabawas ng aming basura. Yay!
Pagpapatuloy
- Ibahagi ang iyong mga proyekto at ideya sa iba pang mga tao sa pamamagitan ng pamayanan ng Lobe Reddit!
- Suriin ang repo ng Lobe Python GitHub para sa isang pangkalahatang pangkalahatang ideya sa kung paano gamitin ang Python upang mag-deploy ng isang mas malawak na iba't ibang mga proyekto ng Lobe
- Mga katanungan o kahilingan sa proyekto? Mag-iwan ng komento sa proyektong ito o direktang makipag-ugnay sa amin: [email protected]
Inirerekumendang:
Paano Gumawa ng isang Drone Gamit ang Arduino UNO - Gumawa ng isang Quadcopter Gamit ang Microcontroller: 8 Hakbang (na may Mga Larawan)
Paano Gumawa ng isang Drone Gamit ang Arduino UNO | Gumawa ng isang Quadcopter Gamit ang Microcontroller: PanimulaBisitahin ang Aking Youtube Channel Ang isang Drone ay isang napakamahal na gadget (produkto) na bibilhin. Sa post na ito tatalakayin ko, kung paano ko ito magagawa sa murang ?? At Paano mo magagawa ang iyong sarili tulad nito sa murang presyo … Sa India ang lahat ng mga materyales (motor, ESC
Gumawa Tayo ng isang Walking Robot Na May Isang Coca-Cola Tin sa Bahay: 6 na Hakbang (na may Mga Larawan)
Gumawa Tayo ng isang Walking Robot Sa Isang Coca-Cola Tin sa Tahanan: Kamusta sa lahat, ako ay Merve! Gagawa kami ng isang robot na naglalakad kasama ang isang Coca-cola lata sa linggong ito. * _ * Magsimula na tayo! ** PLEASE VOTE FOR This PROJECT IN STICK IT CONTEST
Pagbuo ng isang DIY Arduino sa isang PCB at Ilang Mga Tip para sa Mga Nagsisimula: 17 Mga Hakbang (na may Mga Larawan)
Pagbuo ng isang DIY Arduino sa isang PCB at Ilang Mga Tip para sa Mga Nagsisimula: Ito ay sinadya bilang isang gabay sa sinumang paghihinang ng kanilang sariling Arduino mula sa isang kit, na maaaring mabili mula sa A2D Electronics. Naglalaman ito ng maraming mga tip at trick upang matagumpay itong mabuo. Malalaman mo rin ang tungkol sa kung ano ang lahat ng iba't ibang mga sangkap
Paano Gumawa ng isang Autonomous Basketball Playing Robot Paggamit ng isang IRobot Lumikha Bilang Base: 7 Mga Hakbang (na may Mga Larawan)
Paano Gumawa ng isang Autonomous Basketball Playing Robot Paggamit ng isang IRobot Lumikha Bilang Base: Ito ang aking entry para sa hamon sa iRobot Lumikha. Ang pinakamahirap na bahagi ng buong prosesong ito para sa akin ay ang pagpapasya kung ano ang gagawin ng robot. Nais kong ipakita ang mga cool na tampok ng Lumikha, habang nagdaragdag din sa ilang robo flair. Lahat ng akin
Gumawa ng isang IPod Speaker Mula sa isang Hallmark Music Card: 6 Mga Hakbang (na may Mga Larawan)
Gumawa ng isang IPod Speaker Mula sa isang Hallmark Music Card: Nakuha mo ba ang isa sa mga kard para sa iyong kaarawan na nagpe-play ng musika kapag binuksan mo ito? Huwag mong itapon! Sa kaunting tulong mula kay Tony the Tiger, maaari mo itong magamit bilang isang speaker para sa iyong iPod