Orodha ya maudhui:

Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2: Hatua 16 (na Picha)
Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2: Hatua 16 (na Picha)

Video: Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2: Hatua 16 (na Picha)

Video: Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2: Hatua 16 (na Picha)
Video: Основы горизонтально масштабируемых вычислений Джеймса Каффа 2024, Novemba
Anonim
Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2
Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2
Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2
Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2
Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2
Je! Huo ni Mkono? (Kamera ya Raspberry Pi + Mtandao wa Neural) Sehemu ya 1/2

Siku chache zilizopita, niliumia mkono wangu wa kulia kwenye mazoezi. Baadaye kila wakati nilitumia panya yangu ya kompyuta, ilisababisha maumivu mengi kwa sababu ya pembeni ya mkono.

Hapo ndipo iliponigonga "haingekuwa nzuri ikiwa tunaweza kubadilisha uso wowote kuwa trackpad" na sijui ni kwanini lakini kwa sababu fulani nilimfikiria, sinema HER, nitawaacha nyie muigundue nje. Ilikuwa mawazo ya kufurahisha lakini sikujua ikiwa ningeweza kuifanya, niliamua kujaribu.

Nakala hii inachukua kile kilichotoka.

Kabla ya kuanza nina Kanusho-

Mwisho wa nakala hii, sikuweza kubadilisha uso wowote kuwa trackpad lakini najifunza mengi na nikaongeza zana kubwa kwenye arsenal yangu. Natumahi hiyo itakutokea wewe pia '

Tuanze.

Hatua ya 1: Video

Image
Image

Hapa kuna video ndogo ya dakika 5 inayofunika hatua zote. Angalia.

Hatua ya 2: Vifaa

Vifaa
Vifaa

Ninaweka pi ya raspberry pamoja na kamera ya rasipberry pi kwa urefu wa karibu 45 cm. Hii inatupa eneo la ufuatiliaji wa karibu 25x25 cm chini ya kamera.

Kamera ya Raspberry pi na raspberry pi inapatikana kwa urahisi, ni google tu na unapaswa kupata duka la karibu.

Angalia Kiungo hiki au moja ya orodha yangu ya kucheza ya Raspberry pi ili upate kichwa chako kisicho na kichwa.

Kufuatia usanidi huu, tunahitaji kipande cha nambari ambacho kinaamua ikiwa kuna mkono katika eneo ambalo kamera inafuatilia na ikiwa iko wapi.

Hatua ya 3: Kipande cha Nambari

Kipande cha Kanuni
Kipande cha Kanuni
Kipande cha Kanuni
Kipande cha Kanuni

Kipande cha nambari ambacho kinatuwezesha kuamua ikiwa kuna mkono katika eneo la riba hutumia kitu kinachoitwa Mtandao wa Neural. Wanaanguka chini ya kitengo cha programu ambapo hatuelezei sheria za kufanya uamuzi lakini tunaonyesha mtandao wa neva data za kutosha ambazo zinaamua sheria peke yake.

Kwa upande wetu, badala ya kuweka alama jinsi mkono unavyoonekana tunaonyesha picha za mtandao wa neva zilizonaswa kutoka kwa rasiberi pi ambayo ina mkono na ambayo haina mkono. Awamu hii inaitwa mafunzo ya mtandao wa neva na picha zilizotumiwa huitwa setaseti ya mafunzo.

Hatua ya 4: Kupata Picha

Kupata Picha
Kupata Picha

Niliingia kwa mbali kwenye pi yangu ya rasipiberi na nikachukua picha nyingi kwa kutumia amri ifuatayo.

sudo raspistill -w 640 -h 480 -rot 90 -t 250000 -t1 5000 -o fremu% 04d.jpg

Nilinasa picha 80 kwa mkono na picha 80 ambazo hazina mkono. Picha 160 hazitoshi kufundisha vizuri mtandao wa neva lakini inapaswa kuwa ya kutosha kwa uthibitisho wa dhana.

Mbali na picha 160, nilinasa picha 20 zaidi ili kujaribu mtandao wetu mara tu utakapofunzwa.

Mara dataset ilipokuwa tayari nilianza kuandika nambari ya mtandao wa neva.

Hatua ya 5: Zana na Lugha Iliyotumiwa

Zana na Lugha Iliyotumiwa
Zana na Lugha Iliyotumiwa
Zana na Lugha Iliyotumiwa
Zana na Lugha Iliyotumiwa

Niliandika mtandao wangu wa neva katika maktaba ya kina ya ujifunzaji inayoitwa Keras na nambari imeandikwa kwenye daftari la jupyter kutoka kwa baharia wa anaconda.

Hatua ya 6: Kuandaa Hifadhidata ya Mafunzo

Kuandaa Hifadhidata ya Mafunzo
Kuandaa Hifadhidata ya Mafunzo
Kuandaa Hifadhidata ya Mafunzo
Kuandaa Hifadhidata ya Mafunzo
Kuandaa Hifadhidata ya Mafunzo
Kuandaa Hifadhidata ya Mafunzo
Kuandaa Hifadhidata ya Mafunzo
Kuandaa Hifadhidata ya Mafunzo

Kwanza (Picha # 1) nilijumuisha maktaba zote zinazohitajika kwa mradi huu, ambayo ni pamoja na PIL, matplotlib, numpy, os na Keras. Katika seli ya pili ya daftari ya chatu (Picha # 2) Ninafafanua njia za hifadhidata na kuchapisha hesabu ya sampuli. Sasa tunahitaji kupakia picha zote kwenye safu isiyofaa, kwa hivyo kwenye seli ya tatu (Picha # 2) Niliunda safu isiyo na nambari ya 82 (idadi ya sampuli ya mkono) +75 (idadi ya sampuli isiyo ya mkono) i.e. 157x100x100x3. 157 ni jumla ya picha ambazo ninazo, 100x100 ni ukubwa wa picha yetu na ukubwa wa 3 ni wa safu nyekundu, kijani na bluu katika picha.

Katika seli ya nne na ya tano, tunapakia picha zilizo na mikono ikifuatiwa na picha ambazo hazina mkono katika safu ya numpy. Katika seli ya sita, tunagawanya kila thamani kwa 255 kwa hivyo kupunguza kiwango cha thamani kutoka 0 hadi 1. (Picha # 3)

Samahani ikiwa picha zilizoambatishwa hazitoshi. Hapa kuna kiunga cha hazina ya GITHUB kwa wewe kuangalia nambari. Usisahau kuchukua nafasi ya majina ya njia ya saraka na njia yako:).

Kusonga mbele.

Ifuatayo tunahitaji kuweka lebo kwa kila picha, kwa hivyo, tunaunda safu moja yenye urefu wa 157 kwa urefu. Viingilio 82 vya kwanza vimewekwa 1 na viingilio 75 vilivyobaki vimewekwa kwa 0 inayowasilisha mtandao wa neva kwamba picha 82 za kwanza zinatoka kwa darasa moja na zilizobaki ni kutoka kwa nyingine. (Picha # 4)

Sasa wacha tuunde mtandao wa neva.

Hatua ya 7: Mtandao wa Neural

Mtandao wa Neural
Mtandao wa Neural
Mtandao wa Neural
Mtandao wa Neural

Katika seli ya tisa, tunafafanua mtandao wetu wa neva. Inayo marudio matatu ya safu ya kusuluhisha ikifuatiwa na tabaka za maxpool na vichungi vya 8, 12 na 16 mtawaliwa. Kufuatia hiyo tuna nyavu mbili zenye mnene za neva. Kuunganisha picha mbili kwa hatua hii. Kwanza ni nambari ya nambari ambayo huunda mtandao wa neva na ya pili ni uwakilishi wa picha ya mtandao wa neva na mwelekeo wa pato na shughuli zilizofafanuliwa.

Hatua ya 8: Mafunzo ya Mtandao wa Neural

Mafunzo ya Mtandao wa Neural
Mafunzo ya Mtandao wa Neural

Katika seli ya kumi, tunasanidi optimizer ya mtandao wa neva kwa 'adam' na kazi ya kupoteza kwa 'binary_crossentropy'. Wanacheza jukumu kubwa katika jinsi uzito wa mtandao unasasishwa. Mwishowe tunapoendesha kiini cha kumi na moja, mtandao wa neva huanza kutoa mafunzo. Wakati mtandao ni mafunzo angalia kazi ya kupoteza na uhakikishe kuwa inapungua.

Hatua ya 9: Kupima Mtandao wa Neural

Kupima Mtandao wa Neural
Kupima Mtandao wa Neural

Mara baada ya mtandao wa neva kufundishwa, tunahitaji kuandaa data ya mtihani. Tunarudia utaratibu uliofanywa kuandaa mafunzo yaliyowekwa katika kiini cha 3, 4, 5 na 6 kwenye data ya jaribio ili kuunda seti ya jaribio. Tunatayarisha lebo pia kwa seti ya jaribio lakini wakati huu tunaendesha mfano kwenye seti hizi za data kupata utabiri na sio kutoa mafunzo.

Hatua ya 10: Matokeo na Sehemu inayofuata…

Matokeo na Sehemu Inayofuata…
Matokeo na Sehemu Inayofuata…

Nilipata usahihi wa mtihani wa 88% lakini chukua hii na chumvi kidogo kwani setaseti inayotumika kufundisha na kujaribu mtindo huu ni ndogo sana na haitoshi kufundisha mfano huu vizuri.

Kwa hivyo natumahi umefurahiya nakala hii. Kusudi langu nyuma ya zoezi hili bado halijakamilika na angalia sehemu ya 2. Nitaipakia haraka iwezekanavyo.

Katika sehemu inayofuata, tutafundisha mtandao mwingine wa neva ambao utatuambia eneo la mkono kwenye picha iliyogunduliwa kwa mkono.

Maswali yote yanakaribishwa.

Ikiwa mtu yeyote anavutiwa kutumia hifadhidata yangu ndogo nipashe katika maoni. Nitaifanya ipatikane.

Asante kwa kusoma. Nitakuona hivi karibuni na sehemu ya pili hadi wakati huo kwanini usitengeneze na kufundisha mtandao wa neva.

Hariri: - Hatua zinazofuata ni za sehemu ya pili.

Hatua ya 11: Kugundua kitu

Kugundua kitu
Kugundua kitu

Katika hatua za awali tuliunda NN ambayo inatuambia ikiwa picha ya jaribio ina mkono au la. Vipi baadaye? Ikiwa NN inaainisha picha kama iliyo na mkono tungependa kujua eneo la mkono. Hii inaitwa kugundua kitu katika fasihi ya maono ya kompyuta. Basi wacha tufundishe NN ambayo inafanya sawa kabisa.

Hatua ya 12: Video

Image
Image

Video ya dakika 3 inayoelezea hatua zote zilizobaki. Angalia.

Hatua ya 13: Kuandika

Kuandika
Kuandika
Kuandika
Kuandika
Kuandika
Kuandika

Ikiwa unataka mtandao wa neva kutoa eneo la mkono, tunahitaji kuifundisha kwa mtindo kama huo.tofauti na mtandao wa zamani wa neva ambapo kila picha iliandikwa kama kwa mkono na bila mkono. Wakati huu picha zote zilizo na mkono zitakuwa na lebo nne zinazoambatana na kuratibu za diagonal za sanduku linalofungwa karibu na mkono kwenye picha hiyo.

Picha iliyoambatishwa ya faili ya csv ina lebo kwa kila picha. Tafadhali kumbuka kuwa kuratibu zimerekebishwa na mwelekeo wa picha, ikiwa ikiwa kuratibu ya juu ya X iko kwenye pikseli ya 320 kwa picha na upana wa saizi 640, tutaiita kama 0.5.

Hatua ya 14: Kuandika GUI

Kuandika GUI
Kuandika GUI
Kuandika GUI
Kuandika GUI
Kuandika GUI
Kuandika GUI
Kuandika GUI
Kuandika GUI

Labda unashangaa jinsi nilivyofanikiwa kuweka lebo picha zote 82, vizuri niliandika GUI katika chatu ambayo ilinisaidia na kazi hii. Mara picha imepakiwa kwenye GUI. Niliacha bonyeza kwenye kuratibu ya juu na bonyeza kulia kwenye uratibu wa chini wa sanduku linalowezekana linaloweza kuzunguka mkono. Uratibu hizi zinaandikwa kwa faili kufuatia kwamba mimi bonyeza kitufe kinachofuata kupakia picha inayofuata. Nilirudia utaratibu huu kwa picha zote 82 za mafunzo na 4 za majaribio. Mara tu maandiko yalikuwa tayari, ilikuwa wakati wa mafunzo.

Hatua ya 15: Maktaba zinahitajika

Maktaba Inahitajika
Maktaba Inahitajika
Maktaba Inahitajika
Maktaba Inahitajika
Maktaba Inahitajika
Maktaba Inahitajika

Kwanza tunahitaji kupakia maktaba zote muhimu. Ambayo ni pamoja na

  • PIL kwa ujanja wa picha,
  • matplotlib kwa kupanga njama,
  • numpy kwa operesheni ya tumbo,
  • os kwa utendaji tegemezi wa mfumo wa uendeshaji na
  • kera za mtandao wa neva.

Hatua ya 16: Viini vilivyobaki

Seli zilizobaki
Seli zilizobaki
Seli zilizobaki
Seli zilizobaki
Seli zilizobaki
Seli zilizobaki
Seli zilizobaki
Seli zilizobaki

Katika kiini cha 2, 3, 4 na 5 tunapakia picha kwenye safu isiyo na nambari na kuunda safu nne kutoka kwa faili ya csv kutenda kama lebo. Katika nambari ya seli 6 tunaunda mtandao wetu wa neva. Usanifu wake unafanana na mtandao wa neva uliotumiwa kwa uainishaji isipokuwa upeo wa safu ya pato ambayo ni 4 na sio 1. Tofauti nyingine hutoka kwa kazi ya kupoteza iliyotumiwa ambayo ni makosa ya mraba. Katika nambari ya seli 8 tunaanza mafunzo ya mtandao wetu wa neva mara tu nilipofundishwa nilikimbia mfano huu kwenye seti ya jaribio ili kupata utabiri wa sanduku linalofungwa kwenye kuratibu zinazofunika za sanduku linalofungwa walionekana sawa sawa.

Asante kwa kusoma.

Ilipendekeza: