Përmbajtje:
- Hapi 1: Video
- Hapi 2: Pajisje kompjuterike
- Hapi 3: Pjesë e Kodit
- Hapi 4: Marrja e imazheve
- Hapi 5: Mjetet dhe gjuha e përdorur
- Hapi 6: Përgatitja e grupit të të dhënave për trajnim
- Hapi 7: Rrjeti nervor
- Hapi 8: Trajnimi i Rrjetit Neural
- Hapi 9: Testimi i Rrjetit Neural
- Hapi 10: Rezultati dhe Pjesa Tjetër…
- Hapi 11: Zbulimi i objektit
- Hapi 12: Video
- Hapi 13: Etiketimi
- Hapi 14: Etiketimi i GUI
- Hapi 15: Kërkohen biblioteka
- Hapi 16: Qelizat e mbetura
Video: A është kjo një dorë? (Kamera Raspberry Pi + Rrjeti Neural) Pjesa 1/2: 16 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Disa ditë më parë, unë dëmtova dorën e djathtë në palestër. Më pas sa herë që kam përdorur miun kompjuterik, më shkaktoi shumë dhimbje për shkak të këndit të pjerrët të kyçit të dorës.
Atëherë ai më goditi "a nuk do të ishte mirë nëse mund të shndërronim çdo sipërfaqe në një pista" dhe nuk e di pse, por për disa arsye mendova për të, filmin HER, do t'ju lejoj ta kuptoni. jashtë Ishte një mendim emocionues, por nuk e dija nëse mund ta bëja, vendosa ta provoja.
Ky artikull kap atë që doli prej tij.
Para se të fillojmë, unë kam një mohim-
"Në fund të këtij artikulli, unë nuk mund të konvertoja asnjë sipërfaqe në një pistë, por nuk mësova shumë dhe shtova mjete të mëdha në arsenalin tim. Shpresoj qe te ndodhe edhe ty"
Le të fillojmë.
Hapi 1: Video
Këtu është një video e vogël 5 minutëshe që mbulon të gjitha hapat. Hidhi nje sy.
Hapi 2: Pajisje kompjuterike
Vendosa një pi mjedër së bashku me kamerën e mjedrës pi në një lartësi prej rreth 45 cm. Kjo na jep një zonë monitorimi prej rreth 25x25 cm nën kamerë.
Kamera Raspberry pi dhe mjedër pi janë lehtësisht të disponueshme, mjafton të kërkoni në Google dhe të jeni në gjendje të gjeni një dyqan lokal.
Hidhini një sy kësaj lidhjeje ose një prej listave të mia të luajtjes të Raspberry pi për të filluar funksionimin e pi -së tuaj pa kokë.
Pas këtij konfigurimi, ne kemi nevojë për një pjesë të kodit që vendos nëse ka një dorë në zonën që kamera po monitoron dhe nëse po ku është.
Hapi 3: Pjesë e Kodit
Një pjesë e kodit që na lejon të vendosim nëse ka një dorë në fushën e interesit përdor diçka të quajtur Rrjeti Neural. Ato bien nën kategorinë e programimit ku ne nuk përcaktojmë rregullat për të marrë vendime, por ne i tregojmë rrjetit nervor të dhëna të mjaftueshme që të nxjerrë rregulla më vete.
Në rastin tonë, në vend që të kodojmë se si duket dora, ne tregojmë imazhe të rrjetit nervor të kapur nga mjedra pi që përmban dorë dhe që nuk përmban dorë. Kjo fazë quhet trajnim i rrjetit nervor dhe imazhet e përdorura quhen të dhëna të trajnimit.
Hapi 4: Marrja e imazheve
U regjistrova në distancë në pi tim mjedër dhe kapa një mori imazhesh duke përdorur komandën e mëposhtme.
sudo raspistill -w 640 -h 480 -rot 90 -t 250000 -t1 5000 -o frame%04d.jpg
Kam kapur 80 imazhe me dorë dhe 80 imazhe që nuk përmbajnë dorë. 160 imazhe nuk janë të mjaftueshme për të trajnuar siç duhet një rrjet nervor, por duhet të jenë të mjaftueshme për të provuar konceptin.
Përveç 160 imazheve, unë kapa 20 imazhe të tjera për të testuar rrjetin tonë pasi të jetë trajnuar.
Pasi grupi i të dhënave ishte gati, fillova të shkruaj kod për rrjetin nervor.
Hapi 5: Mjetet dhe gjuha e përdorur
Shkrova rrjetin tim nervor në bibliotekën e mësimit të thellë python të quajtur Keras dhe kodi është shkruar në fletoren jupyter nga anaconda navigator.
Hapi 6: Përgatitja e grupit të të dhënave për trajnim
Së pari (Imazhi #1) Kam përfshirë të gjitha bibliotekat e nevojshme për këtë projekt, i cili përfshin PIL, matplotlib, numpy, os dhe Keras. Në qelizën e dytë të fletores python (Imazhi #2) unë përcaktoj shtigjet për në grupin e të dhënave dhe printoj numrin e mostrave. Tani duhet të ngarkojmë të gjitha imazhet në një grup të mpirë, prandaj në qelizën e tretë (Imazhi #2) krijova një grup numpy prej 82 (numri i mostrës së dorës) +75 (numri i mostrës jo me dorë) dmth. 157x100x100x3. 157 është numri i përgjithshëm i imazheve që kam, 100x100 është dimensioni ynë i madhësisë së imazhit dhe 3 është për shtresat e ngjyrave të kuqe, jeshile dhe blu në imazh.
Në qelizën e katërt dhe të pestë, ne ngarkojmë imazhe që përmbajnë dorën e ndjekur nga imazhe që nuk përmbajnë dorë në grupin numpy. Në qelizën e gjashtë, ne ndajmë secilën vlerë me 255, duke kufizuar kështu gamën e vlerës nga 0 në 1. (Imazhi #3)
Më vjen keq nëse imazhet e bashkangjitura nuk janë mjaft të mira. Këtu është lidhja me depon GITHUB që të shikoni kodin. Mos harroni të zëvendësoni emrat e drejtorive të drejtorisë me rrugën tuaj:).
Duke lëvizur së bashku.
Tjetra ne duhet të etiketojmë çdo imazh, kështu që, ne krijojmë një grup numpin dimensional prej 157 në gjatësi. 82 hyrjet e para janë vendosur në 1 dhe 75 hyrjet e tjera janë vendosur në 0 duke përcjellë rrjetin nervor që 82 imazhet e para janë nga një klasë dhe të tjerat janë nga një tjetër. (Imazhi #4)
Tani le të krijojmë një rrjet nervor.
Hapi 7: Rrjeti nervor
Në qelizën e nëntë, ne përcaktojmë rrjetin tonë nervor. Ai përmban tre përsëritje të shtresës së rrotullimit të ndjekur nga shtresa maxpool me 8, 12 dhe 16 filtra konvolucioni respektivisht. Pas kësaj kemi dy rrjeta nervore të dendura. Bashkangjit dy imazhe për këtë hap. E para është kapja e kodit që krijon rrjetin nervor dhe e dyta është përfaqësimi piktural i rrjetit nervor me dimensionin e daljes dhe operacionet e shënuara.
Hapi 8: Trajnimi i Rrjetit Neural
Në qelizën e dhjetë, ne konfigurojmë optimizuesin e rrjetit nervor në 'adam' dhe funksionin e humbjes në 'binary_crossentropy'. Ato luajnë rol të madh në mënyrën se si azhurnohen peshat e rrjetit. Më në fund kur drejtojmë qelizën e njëmbëdhjetë, rrjeti nervor fillon të stërvitet. Ndërsa rrjeti është duke u trajnuar, shikoni funksionin e humbjes dhe sigurohuni që ai po zvogëlohet.
Hapi 9: Testimi i Rrjetit Neural
Pasi të trajnohet rrjeti nervor, ne duhet të përgatisim grupin e të dhënave të testit. Ne përsërisim procedurën e bërë për të përgatitur grupin e trajnimit në qelizën e 3 -të, të 4 -të, të 5 -të dhe të 6 -të në të dhënat e testit për të krijuar grup testimi. Ne gjithashtu përgatisim etiketë për grupin e testit, por këtë herë ne ekzekutojmë modelin në këto grupe të dhënash për të marrë parashikime dhe jo për t'u stërvitur.
Hapi 10: Rezultati dhe Pjesa Tjetër…
Kam marrë saktësinë e testit prej 88%, por merre këtë me një majë kripe pasi të dhënat e përdorura për të stërvitur dhe testuar këtë model janë shumë shumë të vogla dhe të papërshtatshme për të trajnuar siç duhet këtë model.
Gjithsesi shpresoj se ju ka pëlqyer ky artikull. Synimi im pas këtij ushtrimi nuk është ende i plotë dhe shikoni pjesën e dytë. Do ta ngarkoj sa më shpejt që të mundem.
Në pjesën tjetër, ne do të trajnojmë një rrjet tjetër nervor që do të na tregojë vendndodhjen e dorës në një imazh të zbuluar me dorë.
Të gjitha pyetjet janë të mirëseardhura.
Nëse dikush është i interesuar të përdor të dhënat e mia të vogla, më tregoni në komente. Do ta vë në dispozicion.
Faleminderit per leximin. Do të shihemi së shpejti me pjesën e dytë deri atëherë pse nuk krijoni dhe stërvitni një rrjet nervor.
Ndrysho:- Hapat e ardhshëm janë për pjesën e dytë.
Hapi 11: Zbulimi i objektit
Në hapat e mëparshëm ne krijuam një NN që na tregon nëse imazhi i testit përmban dorë apo jo. Epo, çfarë tjetër? Nëse NN klasifikon imazhin si dorën që përmban, ne do të donim të dinim vendndodhjen e dorës. Ky quhet zbulimi i objekteve në literaturën e vizionit kompjuterik. Pra, le të trajnojmë NN që bën saktësisht të njëjtën gjë.
Hapi 12: Video
Një video 3 minutëshe që shpjegon të gjitha hapat e mbetur. Hidhi nje sy.
Hapi 13: Etiketimi
Nëse dëshironi që një rrjet nervor të nxjerrë vendndodhjen e dorës, ne duhet ta stërvitim atë në një mënyrë të tillë, domethënë ndryshe nga rrjeti nervor i mëparshëm ku çdo imazh ishte etiketuar ose me dorë dhe pa dorë. Këtë herë të gjitha imazhet me dorë do të kenë katër etiketa që korrespondojnë me koordinatat diagonale të kutisë kufizuese rreth dorës në atë imazh.
Imazhi i bashkangjitur i skedarit csv përmban etiketë për secilën imazh. Ju lutemi vini re se koordinatat janë normalizuar me dimensionin e figurës, domethënë nëse koordinata e sipërme X është në pikselin 320 të imazhit me gjerësi 640 piksele, ne do ta etiketojmë atë si 0.5.
Hapi 14: Etiketimi i GUI
Ju mund të pyesni veten se si arrita të etiketoj të gjitha 82 imazhet, mirë unë shkrova një GUI në python që më ndihmoi me këtë detyrë. Pasi imazhi të ngarkohet në GUI. Unë klikova majtas në koordinatën e sipërme dhe kliko djathtas në koordinatën e poshtme të kutisë së mundshme të kufizimit rreth dorës. Këto koordinata më pas shkruhen në një skedar, pas së cilës klikoj butonin tjetër për të ngarkuar imazhin tjetër. E përsërita këtë procedurë për të gjitha 82 trenat dhe 4 imazhet e provës. Pasi etiketat ishin gati, ishte koha e stërvitjes.
Hapi 15: Kërkohen biblioteka
Së pari ne duhet të ngarkojmë të gjitha bibliotekat e nevojshme. Që përfshin
- PIL për manipulimin e imazhit,
- matplotlib për komplotimin,
- i mpirë për funksionimin e matricës,
- os për funksionalitetin e varur nga sistemi operativ dhe
- keras për rrjetin nervor.
Hapi 16: Qelizat e mbetura
Në qelizën e dytë, të tretë, të katërt dhe të pestë ne i ngarkojmë imazhet në grupin numpy dhe krijojmë një grup katër dimensional nga skedari csv për të vepruar si etiketa. Në qelizën numër 6 ne krijojmë rrjetin tonë nervor. Arkitektura e tij është identike me rrjetin nervor të përdorur për klasifikim përveç dimensionit të shtresës dalëse i cili është 4 dhe jo 1. Një ndryshim tjetër vjen nga funksioni i humbjes i përdorur që është gabimi mesatar në katror. Në qelizën numër 8, ne fillojmë stërvitjen e rrjetit tonë nervor, pasi të stërvitem, e drejtova këtë model në grup provash për të marrë parashikime për kutinë kufizuese në koordinatat e mbivendosjes së kutisë kufizuese që dukeshin mjaft të sakta.
Faleminderit per leximin.
Recommended:
Një karikues i vjetër? Jo, është një amplifikues dhe pedal i kufjeve me kitarë RealTube18: 8 hapa (me fotografi)
Një karikues i vjetër? Jo, është një amplifikator dhe pedal i kufjeve të kitares RealTube18: PVERRMBLEDHJE: Çfarë duhet të bëni gjatë një pandemie, me një karikues të vjetëruar të baterisë nikel-kadmium dhe tuba radio vakumi të vjetëruara 60+ vjeçare të makinave të ulura përreth që kanë nevojë të riciklohen? Po në lidhje me projektimin dhe ndërtimin e një baterie të zakonshme të mjeteve të tensionit të ulët, vetëm me tub
Planetariumi i mundësuar nga Rrjeti Neural duke përdorur Python, Electron dhe Keras: 8 hapa
Planetariumi i mundësuar nga Rrjeti Neural duke përdorur Python, Electron dhe Keras: Në këtë udhëzues, unë do t'ju tregoj se si kam shkruar një gjenerator automatik 3D planetarium, duke përdorur Python dhe Electron. Videoja e mësipërme tregon një nga planetarët e rastësishëm të programit të krijuar. ** Shënim: Ky program nuk është në asnjë mënyrë i përsosur, dhe në një vend
Nike LED Swoosh! Ky është një dekor i shkëlqyeshëm për një dhomë. Ky është një projekt që të gjithë mund ta përsërisin .: 5 hapa
Nike LED Swoosh! Ky është një dekor i shkëlqyeshëm për një dhomë. Ky është një projekt që të gjithë mund ta përsërisin .: Mjetet -masë-kaçavidë-hekur saldimi-sharrë për përballim-stërvitje elektrike-letër zmerile Furnizon-Rrip LED (RGB) 5m-kontrollues LED-Furnizim me energji 12V 4A-lëndë drusore 50-50-1500 2x-lëndë druri 20-20-3000 2x-kompensatë 500-1000mm-vida (45mm) 150x-vida (35mm) 30x-scr
Saldimi: Kjo është ajo që bëjnë profesionistët: 5 hapa
Saldimi: Kjo është ajo që bëjnë profesionistët: A jeni inxhinier? Jeni Elektricist apo thjesht një hobi që ju pëlqen të riparoni pajisjet e tyre elektronike ose të krijoni një të tillë? Do të hasnit në një teknikë të quajtur si “ bashkim ” në jetën tuaj, dhe këtu është një video që do t'ju ndihmojë të SHTRONI
Kartë fotografike pushimi e punuar me dorë që është një dhuratë në vetvete!: 8 hapa
Kartë fotografike e punuar me dorë për pushime që është një dhuratë në vetvete!: Ky udhëzues do t'ju tregojë se si të bëni një grup kartash unike, secila prej të cilave mund të përshtatet nga marrësit pasi të ketë përfunduar sezoni i festave, dhe madje edhe më e lehtë kështu që nëse i jepni një kornizë fotografike të klipit IKEA së bashku me kartën. Këto karta mund të jenë