![Ez egy kéz? (Raspberry Pi kamera + neurális hálózat) 1/2 rész: 16 lépés (képekkel) Ez egy kéz? (Raspberry Pi kamera + neurális hálózat) 1/2 rész: 16 lépés (képekkel)](https://i.howwhatproduce.com/images/002/image-3672-109-j.webp)
Tartalomjegyzék:
- 1. lépés: Videó
- 2. lépés: Hardver
- 3. lépés: Kódrészlet
- 4. lépés: Képek készítése
- 5. lépés: Használt eszközök és nyelv
- 6. lépés: Az adatkészlet felkészítése az edzésre
- 7. lépés: Ideghálózat
- 8. lépés: A neurális hálózat képzése
- 9. lépés: A neurális hálózat tesztelése
- 10. lépés: Eredmény és következő rész…
- 11. lépés: Objektumészlelés
- 12. lépés: Videó
- 13. lépés: Címkézés
- 14. lépés: A GUI címkézése
- 15. lépés: Könyvtárak szükségesek
- 16. lépés: Maradék sejtek
2025 Szerző: John Day | [email protected]. Utoljára módosítva: 2025-01-23 14:48
![Ez egy kéz? (Málna Pi kamera + neurális hálózat) 1/2 rész Ez egy kéz? (Málna Pi kamera + neurális hálózat) 1/2 rész](https://i.howwhatproduce.com/images/002/image-3672-110-j.webp)
![Ez egy kéz? (Málna Pi kamera + neurális hálózat) 1/2 rész Ez egy kéz? (Málna Pi kamera + neurális hálózat) 1/2 rész](https://i.howwhatproduce.com/images/002/image-3672-111-j.webp)
![Ez egy kéz? (Málna Pi kamera + neurális hálózat) 1/2 rész Ez egy kéz? (Málna Pi kamera + neurális hálózat) 1/2 rész](https://i.howwhatproduce.com/images/002/image-3672-112-j.webp)
Néhány nappal ezelőtt az edzőteremben megsérült a jobb csuklóm. Később minden alkalommal, amikor a számítógépes egeret használtam, sok fájdalmat okozott a meredek csuklószög miatt.
Ekkor ütött belém "nem lenne jó, ha bármilyen felületet átalakíthatnánk trackpadre", és nem tudom miért, de valamiért rá gondoltam, az Ő filmje, hagyom, hogy kitaláljátok ki. Izgalmas gondolat volt, de nem tudtam, hogy meg tudom -e csinálni, úgy döntöttem, hogy kipróbálom.
Ez a cikk rögzíti, hogy mi sült ki belőle.
Mielőtt elkezdenénk, van egy lemondásom-
„A cikk végén egyetlen felületet sem tudtam átalakítani trackpad -re, de nem sokat tanulok, és nagy eszközöket adtam hozzá az arzenálomhoz. Remélem veled is ez történik '
Lássunk neki.
1. lépés: Videó
![Image Image](https://i.howwhatproduce.com/images/002/image-3672-114-j.webp)
![](https://i.ytimg.com/vi/sHpu-sWhGns/hqdefault.jpg)
Itt egy apró 5 perces videó, amely minden lépést tartalmaz. Nézd meg.
2. lépés: Hardver
![Hardver Hardver](https://i.howwhatproduce.com/images/002/image-3672-115-j.webp)
Egy málna pi -t a málna pi kamerával együtt beállítok körülbelül 45 cm magasságban. Ez körülbelül 25x25 cm -es megfigyelési területet biztosít a kamera alatt.
A Raspberry pi és a Raspberry pi kamera könnyen beszerezhető, csak google -olja fel, és meg kell találnia a helyi üzletet.
Nézze meg ezt a linket vagy a Raspberry pi lejátszási listám egyikét, hogy elindulhasson a fej nélküli pi.
A beállítás után szükségünk van egy kódrészletre, amely eldönti, hogy van -e kéz a területen, amelyet a kamera figyel, és ha igen, hol van.
3. lépés: Kódrészlet
![Kóddarab Kóddarab](https://i.howwhatproduce.com/images/002/image-3672-116-j.webp)
![Kóddarab Kóddarab](https://i.howwhatproduce.com/images/002/image-3672-117-j.webp)
A kódrészlet, amely lehetővé teszi számunkra, hogy eldöntsük, van -e kéz az érdeklődési körben, valami neurális hálózatot használ. A programozás kategóriájába tartoznak, ahol nem határozunk meg szabályokat a döntéshozatalhoz, de elegendő adatot mutatunk a neurális hálózatról ahhoz, hogy önmagában kitalálja a szabályokat.
Esetünkben ahelyett, hogy kódolnánk, hogy néz ki a kéz, inkább a málna pi -ből készített ideghálózati képeket mutatjuk be, amelyek tartalmazzák a kezet, és amelyek nem tartalmazzák a kezet. Ezt a fázist az ideghálózat betanításának, a használt képeket képzési adathalmaznak nevezzük.
4. lépés: Képek készítése
![Képek beszerzése Képek beszerzése](https://i.howwhatproduce.com/images/002/image-3672-118-j.webp)
A következő paranccsal távolról bejelentkeztem a málna pi-be, és rengeteg képet készítettem.
sudo raspistill -w 640 -h 480 -rot 90 -t 250000 -t1 5000 -o frame%04d.jpg
80 képet készítettem kézzel és 80 olyan képet, amely nem tartalmaz kezet. 160 kép nem elegendő a neurális hálózat megfelelő képzéséhez, de elegendő a koncepció bizonyításához.
A 160 kép mellett még 20 képet készítettem, hogy tesztelhessük hálózatunkat, miután képzett.
Miután az adatkészlet készen állt, elkezdtem kódot írni a neurális hálózathoz.
5. lépés: Használt eszközök és nyelv
![Használt eszközök és nyelv Használt eszközök és nyelv](https://i.howwhatproduce.com/images/002/image-3672-119-j.webp)
![Használt eszközök és nyelv Használt eszközök és nyelv](https://i.howwhatproduce.com/images/002/image-3672-120-j.webp)
Ideghálózatomat a Keras nevű python deep learning könyvtárba írtam, és a kódot az anaconda navigátor jupyter notebookjára írtam.
6. lépés: Az adatkészlet felkészítése az edzésre
![Az adatkészlet felkészítése az edzésre Az adatkészlet felkészítése az edzésre](https://i.howwhatproduce.com/images/002/image-3672-121-j.webp)
![Az adatkészlet felkészítése az edzésre Az adatkészlet felkészítése az edzésre](https://i.howwhatproduce.com/images/002/image-3672-122-j.webp)
![Az adatkészlet felkészítése az edzésre Az adatkészlet felkészítése az edzésre](https://i.howwhatproduce.com/images/002/image-3672-123-j.webp)
![Az adatkészlet felkészítése az edzésre Az adatkészlet felkészítése az edzésre](https://i.howwhatproduce.com/images/002/image-3672-124-j.webp)
Először (1. kép) a projekthez szükséges összes könyvtárat beleírtam, beleértve a PIL, a matplotlib, a numpy, az os és a Keras programokat. A python notebook második cellájában (2. kép) definiálom az adathalmaz elérési útjait, és kinyomtatom a minta számát. Most be kell töltenünk az összes képet egy numpy tömbbe, ezért a harmadik cellában (2. kép) létrehoztam egy 82 -es (kézi minta száma) +75 (nem kézi minta száma), azaz 157x100x100x3 számjegyű tömböt. A 157 az összes képem, 100x100 a mi átméretezett képméretünk, a 3 pedig a kép piros, zöld és kék színű rétegeire vonatkozik.
A negyedik és ötödik cellába betöltjük a kézt tartalmazó képeket, majd azokat, amelyek nem tartalmazzák a kezet a számjegy tömbben. A hatodik cellában minden értéket elosztunk 255 -tel, így a határérték 0 és 1 között van. (3. kép)
Sajnálom, ha a csatolt képek nem elég jók. Itt van egy link a GITHUB adattárhoz, ahol megtekintheti a kódot. Ne felejtse el lecserélni a könyvtárútvonalak nevét az útvonalra:).
Továbbmegy.
Ezután meg kell jelölnünk az egyes képeket, ezért létre kell hoznunk egy egydimenziós, 157 hosszú numerikus tömböt. Az első 82 bejegyzés 1 -re, a fennmaradó 75 bejegyzés pedig 0 -ra van továbbítva, és az első 82 kép az egyik osztályból származik, a többi pedig egy másikból. (4. kép)
Most hozzunk létre egy neurális hálózatot.
7. lépés: Ideghálózat
![Neurális hálózat Neurális hálózat](https://i.howwhatproduce.com/images/002/image-3672-125-j.webp)
![Neurális hálózat Neurális hálózat](https://i.howwhatproduce.com/images/002/image-3672-126-j.webp)
A kilencedik cellában definiáljuk neurális hálózatunkat. Három ismétlést tartalmaz a konvolúciós réteg, majd a maxpool rétegek, 8, 12 és 16 konvolúciós szűrővel. Ezt követően két sűrű ideghálónk van. Két kép csatolása ehhez a lépéshez. Az első a neuronhálózatot létrehozó kódrészlet, a második pedig a neurális hálózat képi megjelenítése a kimeneti dimenzióval és a műveletekkel.
8. lépés: A neurális hálózat képzése
![Képzési ideghálózat Képzési ideghálózat](https://i.howwhatproduce.com/images/002/image-3672-127-j.webp)
A tizedik cellában a neurális hálózat optimalizálóját „adam” -ra, a veszteségfüggvényt „binary_crossentropy” -ra állítjuk be. Nagy szerepet játszanak a hálózati súlyok frissítésében. Végül, amikor a tizenegyedik cellát futtatjuk, a neurális hálózat elkezd edzeni. Amíg a hálózat edz, nézze meg a veszteség funkciót, és győződjön meg arról, hogy csökken.
9. lépés: A neurális hálózat tesztelése
![A neurális hálózat tesztelése A neurális hálózat tesztelése](https://i.howwhatproduce.com/images/002/image-3672-128-j.webp)
A neurális hálózat képzése után elő kell készítenünk a tesztadatkészletet. Megismételjük az eljárást, amelyet a 3., 4., 5. és 6. cella képzési készletének előkészítésére végeztünk a tesztadatokon a tesztkészlet létrehozásához. A tesztkészlethez címkét is készítünk, de ezúttal modellt futtatunk ezeken az adatkészleteken, hogy előrejelzéseket kapjunk, és ne edzjünk.
10. lépés: Eredmény és következő rész…
![Eredmény és következő rész… Eredmény és következő rész…](https://i.howwhatproduce.com/images/002/image-3672-129-j.webp)
88% -os vizsgálati pontosságot kaptam, de vegyük ezt egy csipet sóval, mivel a modell betanításához és teszteléséhez használt adatkészlet nagyon -nagyon kicsi, és nem megfelelő a modell megfelelő betanításához.
Mindenesetre remélem tetszett ez a cikk. Szándékom e gyakorlat mögött még nem teljes, és vigyázz a 2. részre. Amint lehet feltöltöm.
A következő részben egy másik neurális hálózatot fogunk betanítani, amely meg fogja mondani a kéz helyét egy kézzel észlelt képen.
Minden kérdést szívesen fogadunk.
Ha valakit érdekel az apró adatkészletem használata, jelezze megjegyzésekben. Elérhetővé teszem.
Köszönöm, hogy elolvasta. Hamarosan találkozunk a második részben, addig miért nem hoz létre és nem képez ki egy neurális hálózatot.
Szerkesztés:- A következő lépések a második részhez tartoznak.
11. lépés: Objektumészlelés
![Objektum észlelése Objektum észlelése](https://i.howwhatproduce.com/images/002/image-3672-130-j.webp)
Az előző lépésekben létrehoztunk egy NN -t, amely megmondja, hogy a tesztkép tartalmaz -e kezet vagy sem. Nos, mi lesz ezután? Ha az NN a képet kéztartónak minősíti, szeretnénk megtudni a kéz helyét. Ezt a számítógépes látás szakirodalmában tárgyfelismerésnek nevezik. Tehát tanítsuk az NN -t, amely pontosan ugyanezt teszi.
12. lépés: Videó
![Image Image](https://i.howwhatproduce.com/images/002/image-3672-132-j.webp)
![](https://i.ytimg.com/vi/i4iCdwSUSU4/hqdefault.jpg)
Egy 3 perces videó, amely elmagyarázza az összes többi lépést. Nézd meg.
13. lépés: Címkézés
![Címkézés Címkézés](https://i.howwhatproduce.com/images/002/image-3672-133-j.webp)
![Címkézés Címkézés](https://i.howwhatproduce.com/images/002/image-3672-134-j.webp)
![Címkézés Címkézés](https://i.howwhatproduce.com/images/002/image-3672-135-j.webp)
Ha azt szeretné, hogy egy ideghálózat adja ki a kéz helyét, akkor ezt ilyen módon kell kiképeznünk, azaz ellentétben a korábbi neurális hálózattal, ahol minden kép kézzel és kéz nélkül volt megjelölve. Ezúttal minden kézzel készített képnek négy címkéje lesz, amelyek megfelelnek a kép körül lévő határoló doboz átlós koordinátáinak.
A csv fájl csatolt képe minden képhez címkét tartalmaz. Kérjük, vegye figyelembe, hogy a koordinátákat a képméret normalizálja, azaz ha a felső X koordináta a 320. pixelnél van a 640 képpont szélességű képen, akkor 0.5 -nek fogjuk címkézni.
14. lépés: A GUI címkézése
![Címkézés GUI Címkézés GUI](https://i.howwhatproduce.com/images/002/image-3672-136-j.webp)
![Címkézés GUI Címkézés GUI](https://i.howwhatproduce.com/images/002/image-3672-137-j.webp)
![Címkézés GUI Címkézés GUI](https://i.howwhatproduce.com/images/002/image-3672-138-j.webp)
![Címkézés GUI Címkézés GUI](https://i.howwhatproduce.com/images/002/image-3672-139-j.webp)
Lehet, hogy kíváncsi vagy, hogyan sikerült címkézni mind a 82 képet, nos, írtam egy GUI -t pythonban, ami segített nekem ebben a feladatban. Miután a kép betöltődött a GUI -ba. Bal klikk a felső koordinátán, jobb gombbal pedig a kéz körüli valószínű határoló mező alsó koordinátáján. Ezeket a koordinátákat egy fájlba írják, majd rákattintok a következő gombra a következő kép betöltéséhez. Ezt az eljárást megismételtem mind a 82 vonat és 4 tesztkép esetében. Amikor a címkék készen voltak, eljött az edzés ideje.
15. lépés: Könyvtárak szükségesek
![Könyvtárak szükségesek Könyvtárak szükségesek](https://i.howwhatproduce.com/images/002/image-3672-140-j.webp)
![Könyvtárak szükségesek Könyvtárak szükségesek](https://i.howwhatproduce.com/images/002/image-3672-141-j.webp)
![Könyvtárak szükségesek Könyvtárak szükségesek](https://i.howwhatproduce.com/images/002/image-3672-142-j.webp)
Először be kell töltenünk az összes szükséges könyvtárat. Ami magában foglalja
- PIL képkezeléshez,
- matplotlib a rajzoláshoz,
- mátrix mûvelet,
- os operációs rendszertől függő funkcionalitást és
- keras neurális hálózathoz.
16. lépés: Maradék sejtek
![Maradék sejtek Maradék sejtek](https://i.howwhatproduce.com/images/002/image-3672-143-j.webp)
![Maradék sejtek Maradék sejtek](https://i.howwhatproduce.com/images/002/image-3672-144-j.webp)
![Maradék sejtek Maradék sejtek](https://i.howwhatproduce.com/images/002/image-3672-145-j.webp)
![Maradék sejtek Maradék sejtek](https://i.howwhatproduce.com/images/002/image-3672-146-j.webp)
A 2., 3., 4. és 5. cellában a képeket betöltjük a numpy tömbbe, és létrehozunk egy négydimenziós tömböt a csv fájlból, hogy címkékként működjenek. A 6. számú cellában létrehozzuk ideghálózatunkat. Az architektúrája megegyezik az osztályozáshoz használt neurális hálózattal, kivéve a kimeneti réteg dimenzióját, amely 4 és nem 1. Egy másik különbség az alkalmazott veszteségfüggvényből származik, amely az átlagos négyzet hiba. A 8 -as számú cellában elkezdjük ideghálózatunk képzését, miután betanítottam. Ezt a modellt a tesztkészleten futtattam, hogy előrejelzéseket kapjak a határoló dobozról a határoló doboz átfedő koordinátáin, amelyek elég pontosnak tűntek.
Köszönöm, hogy elolvasta.
Ajánlott:
"A világ legegyszerűbb" neurális szerkezete (Men in Black Memory Eraser): 10 lépés (képekkel)
!["A világ legegyszerűbb" neurális szerkezete (Men in Black Memory Eraser): 10 lépés (képekkel) "A világ legegyszerűbb" neurális szerkezete (Men in Black Memory Eraser): 10 lépés (képekkel)](https://i.howwhatproduce.com/images/005/image-13984-j.webp)
"Világ legegyszerűbb" Neuralizer-build (Men in Black Memory Eraser): Jársz jelmezpartira néhány nap múlva, de még mindig nincs jelmezed? Akkor ez a konstrukció az Ön számára! Napszemüveggel és fekete öltönyvel ez a kellék teszi teljessé Férfi fekete ruháját. A lehető legegyszerűbb elektronikus áramkörön alapul
Robot kéz kéz nélküli vezeték nélküli kesztyűvel - NRF24L01+ - Arduino: 7 lépés (képekkel)
![Robot kéz kéz nélküli vezeték nélküli kesztyűvel - NRF24L01+ - Arduino: 7 lépés (képekkel) Robot kéz kéz nélküli vezeték nélküli kesztyűvel - NRF24L01+ - Arduino: 7 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-561-115-j.webp)
Robot kéz kéz nélküli vezeték nélküli kesztyűvel | NRF24L01+ | Arduino: Ebben a videóban; 3D robot kézi összeszerelés, szervo vezérlés, flex érzékelő vezérlés, vezeték nélküli vezérlés nRF24L01, Arduino vevő és adó forráskód áll rendelkezésre. Röviden, ebben a projektben megtanuljuk, hogyan kell egy robotkezet vezetékek segítségével irányítani
Egy segítő kéz motorkerékpár lánctisztító .: 6 lépés
![Egy segítő kéz motorkerékpár lánctisztító .: 6 lépés Egy segítő kéz motorkerékpár lánctisztító .: 6 lépés](https://i.howwhatproduce.com/images/001/image-2406-80-j.webp)
Egy segítő kéz motorkerékpár lánc tisztító: Ez az oktatóanyag a Dél -Floridai Egyetem Makecourse projektkövetelményének teljesítésével jött létre (www.makecourse.com). Ez az oktatóanyag a motorkerékpár tisztítási folyamatának hátterét, a szükséges eszközök listáját nyújtja
Arduino neurális hálózati robot: 21 lépés (képekkel)
![Arduino neurális hálózati robot: 21 lépés (képekkel) Arduino neurális hálózati robot: 21 lépés (képekkel)](https://i.howwhatproduce.com/images/001/image-1878-92-j.webp)
Arduino neurális hálózati robot: Ez az oktatható anyag a Make YouTube Channel számára készített 3 részből álló sorozaton alapul, amely pontosan bemutatja, hogyan kell prototípusozni, tervezni, összeszerelni és programozni saját Arduino neurális hálózati robotját. A teljes sorozat megtekintése után jobbnak kell lennie
Harmadik kéz ++: többfunkciós segítő kéz elektronikához és egyéb kényes munkákhoz: 14 lépés (képekkel)
![Harmadik kéz ++: többfunkciós segítő kéz elektronikához és egyéb kényes munkákhoz: 14 lépés (képekkel) Harmadik kéz ++: többfunkciós segítő kéz elektronikához és egyéb kényes munkákhoz: 14 lépés (képekkel)](https://i.howwhatproduce.com/images/003/image-6757-46-j.webp)
Harmadik kéz ++: többfunkciós segítő kéz elektronikához és egyéb kényes munkákhoz .: Korábban a lánc elektronikai üzleteiben kapható harmadik kezet/segítő kezet használtam, és csalódott voltam a használhatóságukban. Soha nem tudtam a klipeket pontosan oda hozni, ahová akartam, vagy több időbe telt, mint a beállításhoz kellett volna