![Ar tai ranka? („Raspberry Pi“kamera + neuroninis tinklas) 1/2 dalis: 16 žingsnių (su paveikslėliais) Ar tai ranka? („Raspberry Pi“kamera + neuroninis tinklas) 1/2 dalis: 16 žingsnių (su paveikslėliais)](https://i.howwhatproduce.com/images/002/image-3672-109-j.webp)
Turinys:
- 1 žingsnis: vaizdo įrašas
- 2 žingsnis: Aparatūra
- 3 žingsnis: kodo dalis
- 4 žingsnis: gaukite vaizdus
- 5 veiksmas: naudojami įrankiai ir kalba
- 6 veiksmas: duomenų rinkinio paruošimas mokymui
- 7 žingsnis: neuroninis tinklas
- 8 žingsnis: neuronų tinklo mokymas
- 9 veiksmas: neuroninio tinklo testavimas
- 10 veiksmas: rezultatas ir kita dalis…
- 11 veiksmas: objekto aptikimas
- 12 žingsnis: vaizdo įrašas
- 13 žingsnis: ženklinimas
- 14 žingsnis: GUI žymėjimas etiketėmis
- 15 žingsnis: reikalingos bibliotekos
- 16 žingsnis: Likusios ląstelės
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-23 14:59
![Ar tai ranka? („Raspberry Pi“kamera + neuroninis tinklas) 1/2 dalis Ar tai ranka? („Raspberry Pi“kamera + neuroninis tinklas) 1/2 dalis](https://i.howwhatproduce.com/images/002/image-3672-110-j.webp)
![Ar tai ranka? („Raspberry Pi“kamera + neuroninis tinklas) 1/2 dalis Ar tai ranka? („Raspberry Pi“kamera + neuroninis tinklas) 1/2 dalis](https://i.howwhatproduce.com/images/002/image-3672-111-j.webp)
![Ar tai ranka? („Raspberry Pi“kamera + neuroninis tinklas) 1/2 dalis Ar tai ranka? („Raspberry Pi“kamera + neuroninis tinklas) 1/2 dalis](https://i.howwhatproduce.com/images/002/image-3672-112-j.webp)
Prieš kelias dienas sporto salėje susižeidžiau dešinės rankos riešą. Vėliau kiekvieną kartą, kai naudoju savo kompiuterio pelę, ji sukeldavo daug skausmo dėl staažo riešo kampo.
Būtent tada mane užklupo „ar nebūtų puiku, jei bet kokį paviršių galėtume paversti jutikliniu kilimėliu“, ir aš nežinau kodėl, bet kažkodėl pagalvojau apie ją, filmą JA, aš leisiu jums tai suprasti išeiti. Tai buvo įdomi mintis, bet nežinojau, ar galiu tai padaryti, nusprendžiau pabandyti.
Šiame straipsnyje užfiksuota, kas iš to išėjo.
Prieš pradedant, turiu atsakomybės atsisakymą-
„Šio straipsnio pabaigoje negalėjau paversti jokio paviršiaus į jutiklinę kilimėlį, bet daug neišmokstu ir į savo arsenalą įtraukiau didelių įrankių. Tikiuosi, kad ir tau taip atsitiks '
Pradėkime.
1 žingsnis: vaizdo įrašas
![Image Image](https://i.howwhatproduce.com/images/002/image-3672-114-j.webp)
![](https://i.ytimg.com/vi/sHpu-sWhGns/hqdefault.jpg)
Čia yra nedidelis 5 minučių vaizdo įrašas, apimantis visus veiksmus. Pažiūrėk.
2 žingsnis: Aparatūra
![Techninė įranga Techninė įranga](https://i.howwhatproduce.com/images/002/image-3672-115-j.webp)
„Aviečių pi“kartu su „Raspberry pi“kamera sumontuoju maždaug 45 cm aukštyje. Tai suteikia mums apie 25x25 cm stebėjimo plotą po kamera.
„Raspberry pi“ir „Raspberry pi“fotoaparatai yra lengvai prieinami, tiesiog „google“ir turėtumėte rasti vietinę parduotuvę.
Pažvelkite į šią nuorodą arba vieną iš mano „Raspberry pi“grojaraščio, kad pradėtumėte kurti savo begalį.
Po šios sąrankos mums reikia kodo, kuris nuspręstų, ar fotoaparato stebimoje srityje yra ranka ir, jei taip, kur ji yra.
3 žingsnis: kodo dalis
![Kodo gabalas Kodo gabalas](https://i.howwhatproduce.com/images/002/image-3672-116-j.webp)
![Kodo gabalas Kodo gabalas](https://i.howwhatproduce.com/images/002/image-3672-117-j.webp)
Kodo gabalas, leidžiantis mums nuspręsti, ar yra interesų sritis, naudoja kažką, vadinamą neuroniniu tinklu. Jie patenka į programavimo kategoriją, kur mes neapibrėžiame taisyklių, kad galėtume priimti sprendimą, bet parodome pakankamai neuroninio tinklo duomenų, kad jis pats išsiaiškintų taisykles.
Mūsų atveju, užuot kodavę, kaip atrodo ranka, rodome neuroninio tinklo vaizdus, užfiksuotus iš aviečių pi, kuriame yra ranka ir kuriame nėra rankos. Šis etapas vadinamas nervų tinklo mokymu, o naudojami vaizdai - mokymo duomenų rinkiniu.
4 žingsnis: gaukite vaizdus
![Gaunami vaizdai Gaunami vaizdai](https://i.howwhatproduce.com/images/002/image-3672-118-j.webp)
Aš nuotoliniu būdu prisijungiau prie savo „Raspberry Pi“ir užfiksavau daugybę vaizdų naudodami šią komandą.
sudo raspistill -w 640 -h 480 -rot 90 -t 250000 -t1 5000 -o kadras%04d.jpg
Aš padariau 80 vaizdų ranka ir 80 vaizdų, kuriuose nėra rankos. 160 vaizdų nepakanka tinkamai apmokyti neuroninį tinklą, tačiau jų turėtų pakakti koncepcijai įrodyti.
Be 160 vaizdų, užfiksavau dar 20 vaizdų, kad išbandyčiau mūsų tinklą, kai jis bus apmokytas.
Kai duomenų rinkinys buvo paruoštas, pradėjau rašyti neuroninio tinklo kodą.
5 veiksmas: naudojami įrankiai ir kalba
![Naudojami įrankiai ir kalba Naudojami įrankiai ir kalba](https://i.howwhatproduce.com/images/002/image-3672-119-j.webp)
![Naudojami įrankiai ir kalba Naudojami įrankiai ir kalba](https://i.howwhatproduce.com/images/002/image-3672-120-j.webp)
Aš parašiau savo nervų tinklą „Python“giluminio mokymosi bibliotekoje, pavadintoje „Keras“, o kodas įrašytas į „Jupyter“sąsiuvinį iš „anaconda“navigatoriaus.
6 veiksmas: duomenų rinkinio paruošimas mokymui
![Duomenų rinkinio paruošimas mokymui Duomenų rinkinio paruošimas mokymui](https://i.howwhatproduce.com/images/002/image-3672-121-j.webp)
![Duomenų rinkinio paruošimas mokymui Duomenų rinkinio paruošimas mokymui](https://i.howwhatproduce.com/images/002/image-3672-122-j.webp)
![Duomenų rinkinio paruošimas mokymui Duomenų rinkinio paruošimas mokymui](https://i.howwhatproduce.com/images/002/image-3672-123-j.webp)
![Duomenų rinkinio paruošimas mokymui Duomenų rinkinio paruošimas mokymui](https://i.howwhatproduce.com/images/002/image-3672-124-j.webp)
Pirmiausia (1 paveikslas) įtraukiau visas šiam projektui reikalingas bibliotekas, įskaitant PIL, matplotlib, numpy, os ir Keras. Antrame „python“nešiojamojo kompiuterio langelyje (2 paveikslas) aš apibrėžiu kelius į duomenų rinkinį ir atspausdinu mėginių skaičių. Dabar turime įkelti visus vaizdus į „numpy“masyvą, taigi trečiame langelyje (vaizdas Nr. 2) sukūriau skaičiavimo masyvą 82 (rankų mėginio skaičius) +75 (ne rankinio pavyzdžio skaičius), ty 157x100x100x3. 157 yra bendras mano turimų vaizdų skaičius, 100x100 yra mūsų pakeisto vaizdo matmenys, o 3 - raudonos, žalios ir mėlynos spalvos vaizdo sluoksniai.
Ketvirtame ir penktame langeliuose įkeliame vaizdus, kuriuose yra ranka, o po to vaizdus, kuriuose nėra skaičiaus masyvo. Šeštame langelyje kiekvieną vertę padalijame iš 255, taigi ribinė reikšmių riba yra nuo 0 iki 1. (3 pav.)
Atsiprašau, jei pridėtos nuotraukos nėra pakankamai geros. Čia yra nuoroda į GITHUB saugyklą, kad galėtumėte peržiūrėti kodą. Nepamirškite pakeisti katalogo kelių pavadinimų savo keliu:).
Judėjimas kartu.
Toliau turime pažymėti kiekvieną vaizdą, todėl sukuriame 157 ilgio vienmatį skaičiavimo masyvą. Pirmieji 82 įrašai yra 1, o likę 75 įrašai - 0, perduodantys neuroninį tinklą, kuriame pirmieji 82 vaizdai yra iš vienos klasės, o likę - iš kitos. (4 pav.)
Dabar sukurkime neuronų tinklą.
7 žingsnis: neuroninis tinklas
![Neuroninis tinklas Neuroninis tinklas](https://i.howwhatproduce.com/images/002/image-3672-125-j.webp)
![Neuroninis tinklas Neuroninis tinklas](https://i.howwhatproduce.com/images/002/image-3672-126-j.webp)
Devintojoje ląstelėje mes apibrėžiame savo nervų tinklą. Jame yra trys kartotiniai konvoliucijos sluoksniai, po kurių seka maxpool sluoksniai su atitinkamai 8, 12 ir 16 konvoliucijos filtrais. Po to turime du tankius nervinius tinklus. Šiam žingsniui pridedami du vaizdai. Pirmasis yra kodo sukūrimas, sukuriantis neuroninį tinklą, o antrasis - vaizdinis neuroninio tinklo vaizdavimas su išvesties matmenimis ir operacijomis.
8 žingsnis: neuronų tinklo mokymas
![Mokymo neuronų tinklas Mokymo neuronų tinklas](https://i.howwhatproduce.com/images/002/image-3672-127-j.webp)
Dešimtajame langelyje neuronų tinklo optimizatorių sukonfigūruojame į „adam“, o praradimo funkciją į „binary_crossentropy“. Jie vaidina svarbų vaidmenį atnaujinant tinklo svorius. Galiausiai, kai paleidžiame vienuoliktą ląstelę, nervų tinklas pradeda treniruotis. Kol tinklas mokosi, pažvelkite į nuostolių funkciją ir įsitikinkite, kad ji mažėja.
9 veiksmas: neuroninio tinklo testavimas
![Neuroninio tinklo testavimas Neuroninio tinklo testavimas](https://i.howwhatproduce.com/images/002/image-3672-128-j.webp)
Išmokę neuroninį tinklą, turime paruošti bandymų duomenų rinkinį. Norėdami sukurti bandymų rinkinį, pakartojame procedūrą, atliktą ruošiant treniruočių rinkinį 3, 4, 5 ir 6 langeliuose. Mes taip pat ruošiame bandymų rinkinio etiketę, tačiau šį kartą vykdome modelį pagal šiuos duomenų rinkinius, kad gautume prognozes, o ne mokytume.
10 veiksmas: rezultatas ir kita dalis…
![Rezultatas ir kita dalis … Rezultatas ir kita dalis …](https://i.howwhatproduce.com/images/002/image-3672-129-j.webp)
Gavau 88% bandymo tikslumą, tačiau tai paimkite su žiupsneliu druskos, nes duomenų rinkinys, naudojamas šiam modeliui mokyti ir išbandyti, yra labai labai mažas ir netinkamas tinkamai mokyti šio modelio.
Bet kokiu atveju tikiuosi, kad jums patiko šis straipsnis. Mano ketinimas atlikti šį pratimą dar nėra baigtas ir saugokitės antrosios dalies. Įkelsiu, kai tik galėsiu.
Kitoje dalyje mes apmokysime kitą neuronų tinklą, kuris mums pasakys rankos vietą rankoje aptiktame vaizde.
Visos užklausos laukiamos.
Jei kas nors nori naudoti mano mažą duomenų rinkinį, praneškite man komentaruose. Aš padarysiu jį prieinamą.
Ačiū, kad perskaitėte. Netrukus pasimatysime su antrąja dalimi, kodėl gi nesukūrus ir neišmokius neuroninio tinklo.
Redaguoti:- Kiti veiksmai skirti antrai daliai.
11 veiksmas: objekto aptikimas
![Objekto aptikimas Objekto aptikimas](https://i.howwhatproduce.com/images/002/image-3672-130-j.webp)
Ankstesniuose žingsniuose mes sukūrėme NN, kuris mums nurodo, ar bandomajame vaizde yra ranka, ar ne. Na ir kas toliau? Jei NN klasifikuoja vaizdą kaip ranką, norėtume žinoti rankos vietą. Tai vadinama objektų aptikimu kompiuterinės regos literatūroje. Taigi mokykime NN, kuris daro tą patį.
12 žingsnis: vaizdo įrašas
![Image Image](https://i.howwhatproduce.com/images/002/image-3672-132-j.webp)
![](https://i.ytimg.com/vi/i4iCdwSUSU4/hqdefault.jpg)
3 minučių vaizdo įrašas, paaiškinantis visus likusius veiksmus. Pažiūrėk.
13 žingsnis: ženklinimas
![Ženklinimas Ženklinimas](https://i.howwhatproduce.com/images/002/image-3672-133-j.webp)
![Ženklinimas Ženklinimas](https://i.howwhatproduce.com/images/002/image-3672-134-j.webp)
![Ženklinimas Ženklinimas](https://i.howwhatproduce.com/images/002/image-3672-135-j.webp)
Jei norite, kad nervų tinklas išvestų rankos vietą, turime jį išmokyti tokiu būdu, ty skirtingai nei ankstesnis neuroninis tinklas, kuriame kiekvienas vaizdas buvo pažymėtas kaip ranka ir be rankos. Šį kartą visi vaizdai su ranka turės keturias etiketes, atitinkančias tame vaizde esančių ribojančių langelių įstrižąsias koordinates.
Pridėtame csv failo paveikslėlyje yra kiekvieno vaizdo etiketė. Atminkite, kad koordinatės normalizuojamos atsižvelgiant į vaizdo matmenis, t. Y. Jei viršutinė X koordinatė yra 320 -asis pikselis, kurio plotis 640 pikselių, tai pažymėsime kaip 0,5.
14 žingsnis: GUI žymėjimas etiketėmis
![Žymėjimo GUI Žymėjimo GUI](https://i.howwhatproduce.com/images/002/image-3672-136-j.webp)
![Žymėjimo GUI Žymėjimo GUI](https://i.howwhatproduce.com/images/002/image-3672-137-j.webp)
![Žymėjimo GUI Žymėjimo GUI](https://i.howwhatproduce.com/images/002/image-3672-138-j.webp)
![Žymėjimo GUI Žymėjimo GUI](https://i.howwhatproduce.com/images/002/image-3672-139-j.webp)
Jums gali būti įdomu, kaip man pavyko pažymėti visus 82 vaizdus, na, aš parašiau GUI python, kuris padėjo man atlikti šią užduotį. Kai vaizdas įkeliamas į GUI. Spustelėjau kairiuoju pelės klavišu viršutinėje koordinatėje, o dešiniuoju pelės klavišu - apatinėje galimo ribojimo langelio aplink ranką koordinatėje. Tada šios koordinatės įrašomos į failą, paspaudus mygtuką Kitas, kad įkelčiau kitą vaizdą. Šią procedūrą pakartojau visiems 82 traukinių ir 4 bandomiesiems vaizdams. Kai etiketės buvo paruoštos, atėjo treniruočių laikas.
15 žingsnis: reikalingos bibliotekos
![Reikalingos bibliotekos Reikalingos bibliotekos](https://i.howwhatproduce.com/images/002/image-3672-140-j.webp)
![Reikalingos bibliotekos Reikalingos bibliotekos](https://i.howwhatproduce.com/images/002/image-3672-141-j.webp)
![Reikalingos bibliotekos Reikalingos bibliotekos](https://i.howwhatproduce.com/images/002/image-3672-142-j.webp)
Pirmiausia turime įkelti visas reikalingas bibliotekas. Į kurį įeina
- PIL manipuliavimui vaizdais,
- matplotlib braižymui,
- matricos operacija,
- operacinės sistemos funkcinėms funkcijoms ir
- nervų tinklo keras.
16 žingsnis: Likusios ląstelės
![Likusios ląstelės Likusios ląstelės](https://i.howwhatproduce.com/images/002/image-3672-143-j.webp)
![Likusios ląstelės Likusios ląstelės](https://i.howwhatproduce.com/images/002/image-3672-144-j.webp)
![Likusios ląstelės Likusios ląstelės](https://i.howwhatproduce.com/images/002/image-3672-145-j.webp)
![Likusios ląstelės Likusios ląstelės](https://i.howwhatproduce.com/images/002/image-3672-146-j.webp)
2, 3, 4 ir 5 langeliuose įkeliame vaizdus į numpy masyvą ir iš csv failo sukuriame keturių matmenų masyvą, kuris veikia kaip etiketės. 6 ląstelėje mes sukuriame savo nervų tinklą. Jo architektūra yra identiška klasifikavimui naudojamam neuroniniam tinklui, išskyrus išvesties sluoksnio matmenį, kuris yra 4, o ne 1. Kitas skirtumas yra dėl prarastos funkcijos, kuri yra vidutinė kvadrato klaida. Ląstelėje Nr. 8 mes pradedame treniruoti savo neuroninį tinklą, kai tik išmokiau, aš išbandžiau šį modelį bandymų rinkinyje, kad gaučiau ribojimo langelio prognozes pagal ribojančios dėžutės perdengimo koordinates, jos atrodė gana tiksliai.
Ačiū, kad perskaitėte.
Rekomenduojamas:
Mojuojate ranka, kad valdytumėte OWI robotinę ranką Be jokių stygų: 10 žingsnių (su paveikslėliais)
![Mojuojate ranka, kad valdytumėte OWI robotinę ranką Be jokių stygų: 10 žingsnių (su paveikslėliais) Mojuojate ranka, kad valdytumėte OWI robotinę ranką Be jokių stygų: 10 žingsnių (su paveikslėliais)](https://i.howwhatproduce.com/images/002/image-3530-28-j.webp)
Mojuojate ranka, kad valdytumėte OWI robotinę ranką … Nėra jokių eilučių: IDĖJA: „Instructables.com“yra bent 4 kiti projektai (2015 m. Gegužės 13 d.), Skirti modifikuoti ar valdyti „OWI Robotic Arm“. Nenuostabu, nes tai yra toks puikus ir nebrangus robotų rinkinys, su kuriuo galima žaisti. Šis projektas panašus į
Robotinė ranka su „Zio“moduliais 3 dalis: 4 žingsniai
![Robotinė ranka su „Zio“moduliais 3 dalis: 4 žingsniai Robotinė ranka su „Zio“moduliais 3 dalis: 4 žingsniai](https://i.howwhatproduce.com/images/005/image-14238-8-j.webp)
Robotų ranka su „Zio“moduliais 3 dalis. Šis tinklaraščio įrašas yra „Zio Robotics“serijos dalis. Įvadas Ankstesniame tinklaraštyje paskelbėme 1 ir 2 dalių vadovėlį, kaip valdyti robotinę ranką naudojant „Zio“modulius. 1 dalis daugiausia skirta automatiniam jūsų robotų rankos letenos valdymui
Robotų ranka su „Zio“moduliais 2 dalis: 11 žingsnių
![Robotų ranka su „Zio“moduliais 2 dalis: 11 žingsnių Robotų ranka su „Zio“moduliais 2 dalis: 11 žingsnių](https://i.howwhatproduce.com/images/005/image-14334-10-j.webp)
Robotinė ranka su „Zio“moduliais 2 dalis. Šiandienos pamokoje mes naudosime visas 4 servo sistemas ir PS2 belaidį valdiklį, kad valdytume robotą. Šis tinklaraščio įrašas yra „Zio Robotics“serijos dalis. Įvadas Ankstesniame tinklaraštyje paskelbėme 1 dalį pamoka, kaip valdyti robotą
Valdykite robotinę ranką naudodami „Zio“modulius. 1 dalis: 8 žingsniai
![Valdykite robotinę ranką naudodami „Zio“modulius. 1 dalis: 8 žingsniai Valdykite robotinę ranką naudodami „Zio“modulius. 1 dalis: 8 žingsniai](https://i.howwhatproduce.com/images/005/image-14534-28-j.webp)
1 dalis. Šis dienoraščio įrašas yra „Zio Robotics“serijos dalis. Įvadas Šis projektas išmokys jus, kaip padaryti, kad jūsų robotų rankos nagai atsidarytų ir užsidarytų. Šis n
Trečioji ranka ++: daugiafunkcinė pagalbos ranka elektronikai ir kitiems subtiliems darbams: 14 žingsnių (su paveikslėliais)
![Trečioji ranka ++: daugiafunkcinė pagalbos ranka elektronikai ir kitiems subtiliems darbams: 14 žingsnių (su paveikslėliais) Trečioji ranka ++: daugiafunkcinė pagalbos ranka elektronikai ir kitiems subtiliems darbams: 14 žingsnių (su paveikslėliais)](https://i.howwhatproduce.com/images/003/image-6757-46-j.webp)
Trečioji ranka ++: daugiafunkcinė pagalbos ranka elektronikai ir kitiems subtiliems darbams .: Anksčiau aš naudoju trečiąsias/pagalbos rankas, kurias galima įsigyti grandinės elektronikos parduotuvėse, ir buvau nusivylęs jų naudojimu. Niekada negalėjau gauti klipų tiksliai ten, kur norėjau, arba prireikė daugiau laiko, nei iš tikrųjų reikėjo, kad juos nustatytų