Talaan ng mga Nilalaman:
- Hakbang 1: Video
- Hakbang 2: Hardware
- Hakbang 3: piraso ng Code
- Hakbang 4: Pagkuha ng Mga Larawan
- Hakbang 5: Ginamit ang Mga Tool at Wika
- Hakbang 6: Paghahanda ng Dataset para sa Pagsasanay
- Hakbang 7: Neural Network
- Hakbang 8: Pagsasanay Neural Network
- Hakbang 9: Pagsubok sa Neural Network
- Hakbang 10: Resulta at Susunod na Bahagi …
- Hakbang 11: Pagtuklas ng Bagay
- Hakbang 12: Video
- Hakbang 13: Pag-label
- Hakbang 14: Pag-label ng GUI
- Hakbang 15: Kailangan ng Mga Aklatan
- Hakbang 16: Mga Natitirang Selula
Video: Kamay ba Iyon? (Raspberry Pi Camera + Neural Network) Bahagi 1/2: 16 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Ilang araw na ang nakakalipas, nasugatan ko ang kanang pulso ko sa gym. Pagkatapos tuwing gagamitin ko ang aking computer mouse, nagdulot ito ng labis na sakit dahil sa matarik na anggulo ng pulso.
Iyon ay kapag ito hit sa akin "hindi ito ay mahusay kung maaari naming i-convert ang anumang ibabaw sa isang trackpad" at hindi ko alam kung bakit ngunit para sa ilang kadahilanan naisip ko siya, ang pelikulang KANYA, hahayaan ko kayong malaman ito palabas Ito ay isang nakagaganyak na pag-iisip ngunit hindi ko alam kung magagawa ko ito, nagpasya akong subukan ito.
Nakukuha ng artikulong ito kung ano ang lumabas dito.
Bago kami magsimula mayroon akong disclaimer-
'Sa pagtatapos ng artikulong ito, hindi ko mai-convert ang anumang ibabaw sa isang trackpad ngunit marami akong natutunan at nagdagdag ng malalaking tool sa aking arsenal. Sana mangyari din sa iyo '
Magsimula na tayo.
Hakbang 1: Video
Narito ang isang maliit na 5 minutong video na sumasaklaw sa lahat ng mga hakbang. Tingnan mo.
Hakbang 2: Hardware
Nag-set up ako ng isang raspberry pi kasama ang raspberry pi camera sa taas na halos 45 cm. Binibigyan kami nito ng lugar ng pagsubaybay ng tungkol sa 25x25 cm sa ilalim ng camera.
Madaling magagamit ang Raspberry pi at raspberry pi camera, i-google mo lang ito at dapat ay makahanap ka ng isang lokal na tindahan.
Tingnan ang Link na ito o isa sa aking playlist ng Raspberry pi upang makuha at tumakbo ang iyong walang ulo.
Kasunod sa pag-set up na ito, kailangan namin ng isang piraso ng code na nagpapasya kung mayroong isang kamay sa lugar na sinusubaybayan ng camera at kung gayon nasaan ito.
Hakbang 3: piraso ng Code
Ang piraso ng code na nagpapahintulot sa amin na magpasya kung mayroong isang kamay sa lugar ng interes ay gumagamit ng isang bagay na tinatawag na Neural Network. Nabibilang sila sa kategorya ng programa kung saan hindi namin tinukoy ang mga panuntunan upang magdesisyon ngunit nagpapakita kami ng neural network ng sapat na data na nalalaman nito ang mga patakaran nang mag-isa.
Sa aming kaso, sa halip na i-coding ang kamukha ng kamay ay nagpapakita kami ng mga imahe ng neural network na nakuha mula sa raspberry pi na naglalaman ng kamay at hindi naglalaman ng kamay. Ang yugto na ito ay tinatawag na pagsasanay ng neural network at ang mga imaheng ginamit ay tinatawag na training dataset.
Hakbang 4: Pagkuha ng Mga Larawan
Nailayo ko ang pag-log in sa aking raspberry pi at nakakuha ng bungkos ng mga imahe gamit ang sumusunod na utos.
sudo raspistill -w 640 -h 480 -rot 90 -t 250000 -t1 5000 -o frame% 04d.jpg
Nakuha ko ang 80 mga imahe gamit ang kamay at 80 mga imahe na hindi naglalaman ng kamay. Ang 160 na mga imahe ay hindi sapat upang maayos na sanayin ang isang neural network ngunit dapat ay sapat para sa patunay ng konsepto.
Bukod sa 160 na mga imahe, nakunan ko pa ang 20 mga imahe upang subukan ang aming network sa sandaling ito ay bihasa.
Kapag handa na ang dataset nagsimula akong magsulat ng code para sa neural network.
Hakbang 5: Ginamit ang Mga Tool at Wika
Sinulat ko ang aking neural network sa python deep learning library na tinatawag na Keras at ang code ay nakasulat sa jupyter notebook mula sa anaconda navigator.
Hakbang 6: Paghahanda ng Dataset para sa Pagsasanay
Una (Larawan # 1) Isinama ko ang lahat ng mga aklatan na kinakailangan para sa proyektong ito, na kasama ang PIL, matplotlib, numpy, os at Keras. Sa pangalawang cell ng python notebook (Larawan # 2) tinutukoy ko ang mga landas sa dataset at i-print ang bilang ng sample. Ngayon kailangan naming i-load ang lahat ng mga imahe sa isang numpy array, samakatuwid sa ikatlong cell (Larawan # 2) Lumikha ako ng isang numpy array na 82 (bilang ng sample ng kamay) +75 (bilang ng sample na hindi kamay) ie 157x100x100x3. Ang 157 ay kabuuang bilang ng mga imahe na mayroon ako, 100x100 ang aming sukat na sukat ng imahe at ang 3 ay para sa pula, berde at asul na mga layer ng kulay sa imahe.
Sa ika-apat at ikalimang cell, naglo-load kami ng mga imaheng naglalaman ng kamay na sinusundan ng mga imahe na hindi naglalaman ng kamay sa numpy array. Sa ikaanim na cell, hinati natin ang bawat halaga ng 255 samakatuwid ay nililimitahan ang saklaw ng halaga mula 0 hanggang 1. (Larawan # 3)
Humihingi ako ng paumanhin kung ang mga nakakabit na imahe ay hindi sapat. Narito ang link sa GithUB repository para sa iyo upang tingnan ang code. Huwag kalimutang palitan ang mga pangalan ng path ng direktoryo sa iyong path:).
Gumagalaw.
Susunod na kailangan naming lagyan ng label ang bawat imahe, kaya, lumikha kami ng isang dimensional na numpy array na 157 ang haba. Ang unang 82 na mga entry ay nakatakda sa 1 at ang natitirang 75 mga entry ay nakatakda sa 0 na nagpapahiwatig ng neural network na ang unang 82 na mga imahe ay mula sa isang klase at ang natitira ay mula sa isa pa. (Larawan # 4)
Ngayon gumawa tayo ng isang neural network.
Hakbang 7: Neural Network
Sa ikasiyam na cell, tinutukoy namin ang aming neural network. Naglalaman ito ng tatlong pag-uulit ng convolution layer na sinusundan ng mga maxpool layer na may 8, 12 at 16 convolution filters ayon sa pagkakabanggit. Kasunod nito ay mayroon kaming dalawang siksik na neural net. Ang paglakip ng dalawang mga imahe para sa hakbang na ito. Una ay ang snap ng code na lumilikha ng neural network at pangalawa ang nakalarawan na representasyon ng neural network na may output dimension at pagpapatakbo na may anotasyon.
Hakbang 8: Pagsasanay Neural Network
Sa ikasampung sel, i-configure namin ang neural network optimizer sa 'adam' at pagkawala ng pagpapaandar sa 'binary_crossentropy'. Ginampanan nila ang pangunahing papel sa kung paano nai-update ang timbang ng network. Panghuli kapag nagpatakbo kami ng pang-onse na cell, nagsisimula na sanayin ang neural network. Habang ang network ay pagsasanay na tingnan ang pagkawala ng pag-andar at tiyakin na ito ay bumababa.
Hakbang 9: Pagsubok sa Neural Network
Kapag nasanay ang neural network, kailangan naming maghanda ng hanay ng data ng pagsubok. Inuulit namin ang pamamaraang ginawa upang maghanda ng pagsasanay na itinakda sa ika-3, ika-4, ika-5 at ika-6 na cell sa data ng pagsubok upang lumikha ng hanay ng pagsubok. Naghahanda din kami ng label para sa hanay ng pagsubok ngunit sa oras na ito nagpapatakbo kami ng modelo sa hanay ng data na ito upang makakuha ng mga hula at hindi upang sanayin.
Hakbang 10: Resulta at Susunod na Bahagi …
Nakuha ko ang katumpakan ng pagsubok na 88% ngunit dalhin ito sa isang pakurot ng asin bilang ginamit ang data upang sanayin at subukan ang modelong ito na napakaliit at hindi sapat upang maayos na sanayin ang modelong ito.
Gayunpaman sana ay nasiyahan ka sa artikulong ito. Ang aking hangarin sa likod ng ehersisyo na ito ay hindi pa kumpleto at abangan ang ika-2 bahagi. I-upload ko ito sa lalong madaling panahon.
Sa susunod na bahagi, magsasanay kami ng isa pang neural network na magsasabi sa amin ng lokasyon ng kamay sa isang imahe na nakita ng kamay.
Malugod na tinatanggap ang lahat ng mga query.
Kung ang sinuman ay interesado sa paggamit ng aking maliit na maliit na dataset ipaalam sa akin sa mga komento. Ilalagay ko ito.
Salamat sa pagbabasa. Makikita kita sa lalong madaling panahon sa pangalawang bahagi hanggang sa gayon bakit hindi ka lumikha at sanayin ang isang neural network.
I-edit: - Ang mga susunod na hakbang ay para sa pangalawang bahagi.
Hakbang 11: Pagtuklas ng Bagay
Sa mga nakaraang hakbang nilikha namin ang isang NN na nagsasabi sa amin kung ang imahe ng pagsubok ay naglalaman ng kamay o hindi. Well ano ang susunod? Kung inuri ng NN ang imahe bilang naglalaman ng kamay nais naming malaman ang lokasyon ng kamay. Tinatawag itong object detection sa computer vision literatura. Kaya't sanayin natin ang NN na eksaktong eksaktong ginagawa.
Hakbang 12: Video
Isang 3 minutong video na nagpapaliwanag sa lahat ng natitirang mga hakbang. Tingnan mo.
Hakbang 13: Pag-label
Kung nais mo ang isang neural network upang maipakita ang lokasyon ng kamay, kailangan naming sanayin ito sa isang paraan ibig sabihin hindi tulad ng nakaraang neural network kung saan ang bawat imahe ay may label na alinman sa kamay at walang kamay. Sa oras na ito ang lahat ng mga imahe na may kamay ay magkakaroon ng apat na mga label na naaayon sa dayagonal na mga coordinate ng bounding box sa paligid ng kamay sa larawang iyon.
Ang kalakip na imahe ng csv file ay naglalaman ng label para sa bawat imahe. Mangyaring tandaan na ang mga coordinate ay na-normalize ng dimensyon ng imahe ibig sabihin kung ang itaas na coordinate ng X ay nasa 320th pixel na imahe na may lapad na 640 pixel, tatawagan namin ito bilang 0.5.
Hakbang 14: Pag-label ng GUI
Maaaring nagtataka ka kung paano ko nagawang lagyan ng label ang lahat ng 82 mga imahe, mabuti nagsulat ako ng isang GUI sa sawa na tumulong sa akin sa gawaing ito. Kapag na-load ang imahe sa GUI. Iniwan ko ang pag-click sa itaas na coordinate at pag-right click sa mas mababang coordinate ng maaaring may hangganang kahon sa paligid ng kamay. Ang mga coordinate na ito ay nakasulat sa isang file kasunod sa pag-click ko sa susunod na pindutan upang mai-load ang susunod na imahe. Inulit ko ang pamamaraang ito para sa lahat ng 82 mga larawan ng tren at 4 na pagsubok. Kapag handa na ang mga label, oras na ng pagsasanay.
Hakbang 15: Kailangan ng Mga Aklatan
Una kailangan naming i-load ang lahat ng kinakailangang mga aklatan. Alin ang kasama
- PIL para sa pagmamanipula ng imahe,
- matplotlib para sa paglalagay,
- numpy para sa operasyon ng matrix,
- os para sa operating system na umaasa sa pagpapaandar at
- keras para sa neural network.
Hakbang 16: Mga Natitirang Selula
Sa ika-2, ika-3, ika-4 at ika-5 na cell nag-load kami ng mga imahe sa numpy array at lumikha ng isang apat na dimensional na array mula sa csv file upang kumilos bilang mga label. Sa cell number 6 nilikha namin ang aming neural network. Ang arkitektura nito ay magkapareho sa neural network na ginamit para sa pag-uuri maliban sa sukat ng output layer na 4 at hindi 1. Ang isa pang pagkakaiba ay nagmula sa pagkawala ng pagpapaandar na ginamit na nangangahulugang squared error. Sa cell number 8 sinisimulan namin ang pagsasanay ng aming neural network nang sanay na pinatakbo ko ang modelong ito sa set ng pagsubok upang makakuha ng mga hula para sa bounding box sa overlaying coordinate ng bounding box na mukhang tama ang kanilang hitsura.
Salamat sa pagbabasa.
Inirerekumendang:
20 Pangalawang Kamay sa Paghugas ng Kamay para sa COVID-19: 6 Mga Hakbang (na may Mga Larawan)
20 Second Hand washing Timer para sa COVID-19: Habang kumakalat ang pandaigdigang COVID-19, dapat nating protektahan ang ating sarili hindi lamang sa pamamagitan ng pagtipon ng mas kaunti at pagsusuot ng face mask, kundi pati na rin sa paghuhugas ng kamay nang mas madalas. Hindi ito epektibo laban sa mga virus kung hindi ka t hugasan nang maayos ang iyong mga kamay. Paano hugasan nang wasto ang ating mga kamay? W
Gesture Hawk: Kamay na Kinokontrol ng Robot na Kamay Gamit ang Pagproseso ng Imahe Batay sa Interface: 13 Mga Hakbang (na may Mga Larawan)
Gesture Hawk: Kamay na Kinokontrol ng Robot na Kamay Gamit ang Pagproseso ng Imahe Batay sa Interface: Ang Gesture Hawk ay ipinakita sa TechEvince 4.0 bilang isang simpleng pagproseso ng imahe batay sa interface ng human-machine. Ang utility nito ay nakasalalay sa katotohanan na walang karagdagang mga sensor o naisusuot maliban sa isang guwantes ang kinakailangan upang makontrol ang robotic car na tumatakbo sa iba't ibang
Lead sa Kamay sa Kamay: 17 Mga Hakbang (na may Mga Larawan)
Left-Handed Camera Adapter: Isang modular camera adapter na idinisenyo upang payagan ang isang gumagamit na madaling manipulahin at buhayin ang isang camera gamit ang kaliwang kamay lamang. Ang sistemang ito ay katugma sa anumang point-and-shoot na kamera, at orihinal na idinisenyo para sa isang gumagamit na may paralisis sa kanang bahagi na
Robot ng Arduino Neural Network: 21 Mga Hakbang (na may Mga Larawan)
Arduino Neural Network Robot: Ang itinuturo na ito ay batay sa isang 3 Bahaging serye na ginawa ko para sa Gumawa ng YouTube Channel na nagpapakita sa iyo nang eksakto kung paano mag-prototype, magdisenyo, magtipon, at mag-program, ng iyong sariling Arduino neural network robot. Matapos mapanood ang buong serye, dapat kang magkaroon ng isang bette
Pangatlong Kamay ++: isang Kamay na Tumutulong sa Maraming Gamit para sa Elektronika at Iba Pang Pinong Trabaho .: 14 Mga Hakbang (na may Mga Larawan)
Pangatlong Kamay ++: isang Kamay na Tumutulong sa Maraming Gamit para sa Elektroniko at Iba Pang Maselan na Trabaho .: Noong nakaraan ginamit ko ang pangatlong kamay / pagtulong sa mga kamay na magagamit sa mga chain electronics shop at nabigo ako sa kanilang kakayahang magamit. Hindi ko makuha ang mga clip nang eksakto kung saan ko nais ang mga ito o tumagal ng mas maraming oras kaysa sa talagang dapat na mag-setup