![Kas see on käsi? (Vaarika Pi kaamera + närvivõrk) Osa 1/2: 16 sammu (piltidega) Kas see on käsi? (Vaarika Pi kaamera + närvivõrk) Osa 1/2: 16 sammu (piltidega)](https://i.howwhatproduce.com/images/002/image-3672-109-j.webp)
Sisukord:
- Samm: video
- Samm: riistvara
- Samm: kooditükk
- 4. samm: piltide hankimine
- Samm: kasutatud tööriistad ja keel
- 6. samm: andmekogumi ettevalmistamine treeninguks
- Samm: närvivõrk
- 8. samm: närvivõrgu koolitamine
- 9. samm: närvivõrgu testimine
- Samm 10: Tulemus ja järgmine osa…
- 11. samm: objektide tuvastamine
- 12. samm: video
- 13. samm: märgistamine
- 14. samm: GUI märgistamine
- 15. samm. Vajalikud raamatukogud
- 16. samm: ülejäänud rakud
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40
![Kas see on käsi? (Vaarika Pi kaamera + närvivõrk) Osa 1/2 Kas see on käsi? (Vaarika Pi kaamera + närvivõrk) Osa 1/2](https://i.howwhatproduce.com/images/002/image-3672-110-j.webp)
![Kas see on käsi? (Vaarika Pi kaamera + närvivõrk) Osa 1/2 Kas see on käsi? (Vaarika Pi kaamera + närvivõrk) Osa 1/2](https://i.howwhatproduce.com/images/002/image-3672-111-j.webp)
![Kas see on käsi? (Vaarika Pi kaamera + närvivõrk) Osa 1/2 Kas see on käsi? (Vaarika Pi kaamera + närvivõrk) Osa 1/2](https://i.howwhatproduce.com/images/002/image-3672-112-j.webp)
Paar päeva tagasi vigastasin jõusaalis parema käe randme. Pärast seda, kui kasutasin arvutihiiri, tekitas see järsu randmenurga tõttu palju valu.
See oli siis, kui see tabas mind "kas poleks tore, kui saaksime mis tahes pinna puuteplaadiks muuta" ja ma ei tea miks, aga mingil põhjusel mõtlesin ma temale, film TEMA, ma lasen teil seda arvata välja. See oli põnev mõte, kuid ma ei teadnud, kas saan sellega hakkama, otsustasin proovida.
See artikkel kajastab, mis sellest välja tuli.
Enne kui alustame, on mul lahtiütlemine-
"Selle artikli lõpus ei suutnud ma ühtegi pinda puuteplaadiks muuta, kuid ma ei õpi palju ja lisasin oma arsenali suured tööriistad. Loodan, et see juhtub ka teiega"
Alustame.
Samm: video
![Image Image](https://i.howwhatproduce.com/images/002/image-3672-114-j.webp)
![](https://i.ytimg.com/vi/sHpu-sWhGns/hqdefault.jpg)
Siin on väike 5 -minutiline video, mis hõlmab kõiki samme. Vaata.
Samm: riistvara
![Riistvara Riistvara](https://i.howwhatproduce.com/images/002/image-3672-115-j.webp)
Seadistasin vaarika pi koos vaarika pi kaameraga umbes 45 cm kõrgusele. See annab kaamera alla umbes 25x25 cm seireala.
Vaarika pi ja vaarika pi kaamera on kergesti kättesaadavad, lihtsalt googeldage ja peaksite leidma kohaliku poe.
Vaadake seda linki või ühte minu Raspberry pi esitusloendist, et oma peata pi üles panna.
Pärast seda seadistamist vajame koodi, mis otsustab, kas kaamera jälgitavas piirkonnas on käsi ja kui jah, siis kus see asub.
Samm: kooditükk
![Kooditükk Kooditükk](https://i.howwhatproduce.com/images/002/image-3672-116-j.webp)
![Kooditükk Kooditükk](https://i.howwhatproduce.com/images/002/image-3672-117-j.webp)
Kooditükk, mis võimaldab meil otsustada, kas huvipakkuv valdkond on olemas, kasutab nn närvivõrku. Need kuuluvad programmeerimise kategooriasse, kus me ei määratle reegleid otsuste tegemiseks, kuid näitame närvivõrgust piisavalt andmeid, et see saaks reeglid ise välja mõelda.
Meie puhul näeme käe väljanägemise kodeerimise asemel närvivõrgu pilte, mis on tehtud vaarika pi -st, mis sisaldab kätt ja mis ei sisalda kätt. Seda etappi nimetatakse närvivõrgu koolitamiseks ja kasutatud pilte koolitusandmeteks.
4. samm: piltide hankimine
![Piltide hankimine Piltide hankimine](https://i.howwhatproduce.com/images/002/image-3672-118-j.webp)
Logisin oma vaarika pi sisse sisse ja pildistasin järgmise käsu abil hulga pilte.
sudo raspistill -w 640 -h 480 -rot 90 -t 250000 -t1 5000 -o frame%04d.jpg
Pildistasin 80 pilti käsitsi ja 80 pilti, mis ei sisalda käsi. 160 pildist ei piisa närvivõrgu nõuetekohaseks koolitamiseks, kuid sellest peaks piisama kontseptsiooni tõendamiseks.
Lisaks 160 pildile tegin veel 20 pilti, et testida meie võrku, kui see on treenitud.
Kui andmekogum oli valmis, hakkasin närvivõrgu jaoks koodi kirjutama.
Samm: kasutatud tööriistad ja keel
![Kasutatud tööriistad ja keel Kasutatud tööriistad ja keel](https://i.howwhatproduce.com/images/002/image-3672-119-j.webp)
![Kasutatud tööriistad ja keel Kasutatud tööriistad ja keel](https://i.howwhatproduce.com/images/002/image-3672-120-j.webp)
Kirjutasin oma närvivõrgu pythoni süvaõppekogusse Keras ja kood on kirjutatud Anaconda navigaatori jupyteri märkmikku.
6. samm: andmekogumi ettevalmistamine treeninguks
![Andmekogumi ettevalmistamine koolituseks Andmekogumi ettevalmistamine koolituseks](https://i.howwhatproduce.com/images/002/image-3672-121-j.webp)
![Andmekogumi ettevalmistamine treeninguks Andmekogumi ettevalmistamine treeninguks](https://i.howwhatproduce.com/images/002/image-3672-122-j.webp)
![Andmekogumi ettevalmistamine treeninguks Andmekogumi ettevalmistamine treeninguks](https://i.howwhatproduce.com/images/002/image-3672-123-j.webp)
![Andmekogumi ettevalmistamine treeninguks Andmekogumi ettevalmistamine treeninguks](https://i.howwhatproduce.com/images/002/image-3672-124-j.webp)
Esiteks (pilt nr 1) kaasasin kõik selle projekti jaoks vajalikud teegid, sealhulgas PIL, matplotlib, numpy, os ja Keras. Pythoni sülearvuti teises lahtris (pilt #2) määratlen teed andmestiku juurde ja prindin välja proovide arvu. Nüüd peame laadima kõik pildid numbrimassiivi, seega lõin kolmandasse lahtrisse (pilt #2) numbrimassiivi 82 (käsiproovi arv) +75 (mittekäeproovi arv), st 157x100x100x3. 157 on minu piltide koguarv, 100x100 on meie muudetud suurusega pilt ja 3 on punase, rohelise ja sinise värvikihi jaoks.
Neljandasse ja viiendasse lahtrisse laadime pilte, mis sisaldavad kätt, millele järgnevad pildid, mis ei sisalda kätt numpy massiivis. Kuuendas lahtris jagame iga väärtuse 255 -ga ja seega piirame väärtuste vahemikku 0 kuni 1. (Pilt #3)
Vabandan, kui lisatud pildid pole piisavalt head. Siin on link GITHUBi hoidlasse, kus saate koodi vaadata. Ärge unustage kataloogiteede nimesid asendada oma teega:).
Liikudes kaasa.
Järgmisena peame iga pildi sildistama, nii et loome ühemõõtmelise numbrimassiivi pikkusega 157. Esimesed 82 kirjet on seatud väärtusele 1 ja ülejäänud 75 kirje väärtuseks on 0 edastav närvivõrk, kus esimesed 82 pilti pärinevad ühest klassist ja ülejäänud on teisest klassist. (Pilt #4)
Nüüd loome närvivõrgu.
Samm: närvivõrk
![Neuraalne võrk Neuraalne võrk](https://i.howwhatproduce.com/images/002/image-3672-125-j.webp)
![Neuraalne võrk Neuraalne võrk](https://i.howwhatproduce.com/images/002/image-3672-126-j.webp)
Üheksandas lahtris määratleme oma närvivõrgu. See sisaldab kolme konvolutsioonikihi kordust, millele järgnevad maxpool -kihid vastavalt 8, 12 ja 16 konvolutsioonifiltriga. Pärast seda on meil kaks tihedat närvivõrku. Selle sammu jaoks lisatakse kaks pilti. Esiteks on koodivõrk, mis loob närvivõrgu, ja teine on närvivõrgu piltlik esitus koos väljundimõõdu ja toimingutega.
8. samm: närvivõrgu koolitamine
![Koolituse närvivõrk Koolituse närvivõrk](https://i.howwhatproduce.com/images/002/image-3672-127-j.webp)
Kümnendas lahtris konfigureerime närvivõrgu optimeerijaks „adam” ja kadumisfunktsiooniks „binary_crossentropy”. Neil on suur roll võrgu kaalude uuendamisel. Lõpuks, kui käivitame üheteistkümnenda raku, hakkab närvivõrk treenima. Kui võrk treenib, vaadake kadude funktsiooni ja veenduge, et see väheneb.
9. samm: närvivõrgu testimine
![Närvivõrgu testimine Närvivõrgu testimine](https://i.howwhatproduce.com/images/002/image-3672-128-j.webp)
Kui närvivõrk on koolitatud, peame ette valmistama testandmete kogumi. Kordame protseduuri, mis on tehtud katseandmete 3., 4., 5. ja 6. lahtris treeningkomplekti ettevalmistamiseks, et luua testikomplekt. Valmistame ette ka testikomplekti etiketi, kuid seekord kasutame nende andmekogumite mudelit, et saada ennustusi ja mitte treenida.
Samm 10: Tulemus ja järgmine osa…
![Tulemus ja järgmine osa … Tulemus ja järgmine osa …](https://i.howwhatproduce.com/images/002/image-3672-129-j.webp)
Sain testi täpsuse 88%, kuid võtan selle näpuotsaga soola, kuna selle mudeli koolitamiseks ja testimiseks kasutatud andmekogum on väga väga väike ja selle mudeli nõuetekohaseks koolitamiseks ebapiisav.
Igatahes loodan, et teile meeldis see artikkel. Minu kavatsus selle harjutuse taga ei ole veel lõpule jõudnud ja jälgige 2. osa. Laadin selle üles nii kiiresti kui võimalik.
Järgmises osas koolitame teist närvivõrku, mis ütleb meile käe asukoha käsitsi tuvastatud pildil.
Kõik küsimused on teretulnud.
Kui keegi on huvitatud minu väikese andmekogumi kasutamisest, andke mulle sellest kommentaarides teada. Teen selle kättesaadavaks.
Täname lugemise eest. Näeme varsti teise osaga, kuni selle ajani, miks mitte luua ja treenida närvivõrku.
Muuda:- Järgmised sammud on teise osa jaoks.
11. samm: objektide tuvastamine
![Objekti tuvastamine Objekti tuvastamine](https://i.howwhatproduce.com/images/002/image-3672-130-j.webp)
Eelmistes sammudes lõime NN, mis ütleb meile, kas testpilt sisaldab kätt või mitte. No mis edasi? Kui NN liigitab pildi kätt sisaldavaks, tahaksime teada käe asukohta. Seda nimetatakse arvutinägemise kirjanduses objektide tuvastamiseks. Nii et treenime NN -i, kes teeb täpselt sama.
12. samm: video
![Image Image](https://i.howwhatproduce.com/images/002/image-3672-132-j.webp)
![](https://i.ytimg.com/vi/i4iCdwSUSU4/hqdefault.jpg)
3 -minutiline video, mis selgitab kõiki ülejäänud samme. Vaata.
13. samm: märgistamine
![Märgistamine Märgistamine](https://i.howwhatproduce.com/images/002/image-3672-133-j.webp)
![Märgistamine Märgistamine](https://i.howwhatproduce.com/images/002/image-3672-134-j.webp)
![Märgistamine Märgistamine](https://i.howwhatproduce.com/images/002/image-3672-135-j.webp)
Kui soovite, et närvivõrk väljastaks käe asukoha, peame seda koolitama sellisel viisil, st erinevalt eelmisest närvivõrgust, kus iga pilt oli märgistatud kas käega ja ilma käeta. Seekord on kõigil käega tehtud piltidel neli silti, mis vastavad selle pildi ümber oleva piirangukasti diagonaalkoordinaatidele.
Manustatud csv -faili pilt sisaldab iga pildi silti. Pange tähele, et koordinaadid normaliseeritakse pildi mõõtmetega, st kui ülemine X -koordinaat on 320. pikslil pildil laiusega 640 pikslit, märgime selle väärtuseks 0.5.
14. samm: GUI märgistamine
![Märgistamise GUI Märgistamise GUI](https://i.howwhatproduce.com/images/002/image-3672-136-j.webp)
![Märgistamise GUI Märgistamise GUI](https://i.howwhatproduce.com/images/002/image-3672-137-j.webp)
![Märgistamise GUI Märgistamise GUI](https://i.howwhatproduce.com/images/002/image-3672-138-j.webp)
![Märgistamise GUI Märgistamise GUI](https://i.howwhatproduce.com/images/002/image-3672-139-j.webp)
Teil võib tekkida küsimus, kuidas mul õnnestus kõik 82 pilti sildistada, kirjutasin pythonis graafilise kasutajaliidese, mis aitas mind selle ülesande täitmisel. Kui pilt on GUI -sse laaditud. Vasak klõps ülemisel koordinaadil ja paremklõps käe ümber asetseva tõenäolise piirikarbi alumisel koordinaadil. Need koordinaadid kirjutatakse seejärel faili, millele järgneva pildi laadimiseks klõpsan nuppu Järgmine. Kordasin seda protseduuri kõigi 82 rongi- ja 4 testpildi puhul. Kui sildid olid valmis, oli koolituse aeg.
15. samm. Vajalikud raamatukogud
![Vajalikud raamatukogud Vajalikud raamatukogud](https://i.howwhatproduce.com/images/002/image-3672-140-j.webp)
![Vajalikud raamatukogud Vajalikud raamatukogud](https://i.howwhatproduce.com/images/002/image-3672-141-j.webp)
![Vajalikud raamatukogud Vajalikud raamatukogud](https://i.howwhatproduce.com/images/002/image-3672-142-j.webp)
Esiteks peame laadima kõik vajalikud teegid. Mis sisaldab
- PIL piltide manipuleerimiseks,
- matplotlib joonistamiseks,
- numbrid maatriksi toimimiseks,
- os operatsioonisüsteemist sõltuvate funktsioonide jaoks ja
- keras närvivõrgu jaoks.
16. samm: ülejäänud rakud
![Ülejäänud rakud Ülejäänud rakud](https://i.howwhatproduce.com/images/002/image-3672-143-j.webp)
![Ülejäänud rakud Ülejäänud rakud](https://i.howwhatproduce.com/images/002/image-3672-144-j.webp)
![Ülejäänud rakud Ülejäänud rakud](https://i.howwhatproduce.com/images/002/image-3672-145-j.webp)
![Ülejäänud rakud Ülejäänud rakud](https://i.howwhatproduce.com/images/002/image-3672-146-j.webp)
Teises, kolmandas, neljandas ja viiendas lahtris laadime pildid numpy massiivi ja loome csv -failist neljamõõtmelise massiivi, mis toimib siltidena. Rakus number 6 loome oma närvivõrgu. Selle arhitektuur on identne klassifitseerimiseks kasutatava närvivõrguga, välja arvatud väljundkihi mõõde, mis on 4, mitte 1. Teine erinevus tuleneb kasutatavast kadumisfunktsioonist, mis on keskmine ruutviga. Rakus number 8 alustame oma närvivõrgu treenimist, kui olen treeninud, käivitasin selle mudeli testikomplektis, et saada piirdekasti ennustusi piirikastide katvate koordinaatide kohta, need nägid üsna täpsed.
Täname lugemise eest.
Soovitan:
Ekspressioonirobot- kui see kui see: 5 sammu
![Ekspressioonirobot- kui see kui see: 5 sammu Ekspressioonirobot- kui see kui see: 5 sammu](https://i.howwhatproduce.com/images/005/image-12107-j.webp)
Expression Robot- Kui see on see: Hallo ja tervitage Expression Robot Instructable.DIt is de instructable waar ik aan heb gewerkt tijdens mijn les van If This Than That. De Expression robot is gemaakt met als doel jou als gebruiker te stimuleren bij jezelfreflectie . Robotite koostöö
Kui see siis see ArDino: 3 sammu
![Kui see siis see ArDino: 3 sammu Kui see siis see ArDino: 3 sammu](https://i.howwhatproduce.com/images/005/image-13191-j.webp)
Kui see siis see ArDino: meie kooliprojekti jaoks, kui see siis see, et me pidime tegema arduino abil interaktiivse objekti. Otsustasin teha kaisulise Ardino. Ta on väga andekas ja ühe nupuvajutusega laulab teile jurassic pargi teema
Nike LED Swoosh! See on toa jaoks suurepärane sisustus. See on üks projekt, mida kõik saavad korrata: 5 sammu
![Nike LED Swoosh! See on toa jaoks suurepärane sisustus. See on üks projekt, mida kõik saavad korrata: 5 sammu Nike LED Swoosh! See on toa jaoks suurepärane sisustus. See on üks projekt, mida kõik saavad korrata: 5 sammu](https://i.howwhatproduce.com/images/010/image-28228-j.webp)
Nike LED Swoosh! See on toa jaoks suurepärane sisustus. See on üks projekt, mida igaüks saab korrata. Tööriistad-mõõdulint-kruvikeeraja-jootekolviga töötav saag-elektriline puur-liivapaber Toide-LED-riba (RGB) 5m-LED-kontroller-toiteallikas 12V 4A-puit 50-50-1500 2x puit 20-20-3000 2x vineer 500-1000mm-kruvid (45mm) 150x-kruvid (35mm) 30x-sc
Kui see siis see - Moodlamp: 4 sammu (piltidega)
![Kui see siis see - Moodlamp: 4 sammu (piltidega) Kui see siis see - Moodlamp: 4 sammu (piltidega)](https://i.howwhatproduce.com/images/004/image-11142-j.webp)
If This Then That - Moodlamp: Opdracht: Bouw/ ontwerp een interactief systeem (met hardware and software) dat data kan ontvangen en verwerken.Omdat ik geen enkele ervaring heb met arduino en code schrijven heel erg lastig vind, heb ik besloten om mijn project lihtne te houden kohtus
Veekindlad kõlarid, mis hõljuvad - "see hõljub, see kannab ja see raputab noote!": 7 sammu (koos piltidega)
![Veekindlad kõlarid, mis hõljuvad - "see hõljub, see kannab ja see raputab noote!": 7 sammu (koos piltidega) Veekindlad kõlarid, mis hõljuvad - "see hõljub, see kannab ja see raputab noote!": 7 sammu (koos piltidega)](https://i.howwhatproduce.com/preview/how-and-what-to-produce/11122792-waterproof-speakers-that-float-and-quotit-floats-it-totes-and-it-rocks-the-notes-7-steps-with-pictures-j.webp)
Veekindlad kõlarid, mis hõljuvad - "It Floats, It Totes and It Rocks the Notes!": See veekindel kõlarite projekt sai inspiratsiooni paljudest reisidest Gila jõele Arizonas (ja SNL -i " I'm on a Boat! &Quot; ). Me hõljume mööda jõge alla või kinnitame kaldale jooni, et meie ujukid jääksid otse meie laagriplatsi juurde. Kõik h