Tartalomjegyzék:

Valódi működő Harry Potter pálca a számítógépes látás segítségével: 8 lépés (képekkel)
Valódi működő Harry Potter pálca a számítógépes látás segítségével: 8 lépés (képekkel)

Videó: Valódi működő Harry Potter pálca a számítógépes látás segítségével: 8 lépés (képekkel)

Videó: Valódi működő Harry Potter pálca a számítógépes látás segítségével: 8 lépés (képekkel)
Videó: High Density 2022 2024, Július
Anonim
Image
Image
Valódi működő Harry Potter pálca a számítógépes látás segítségével
Valódi működő Harry Potter pálca a számítógépes látás segítségével
Valódi működő Harry Potter pálca a számítógépes látás segítségével
Valódi működő Harry Potter pálca a számítógépes látás segítségével
Valódi működő Harry Potter pálca a számítógépes látás segítségével
Valódi működő Harry Potter pálca a számítógépes látás segítségével

"Bármilyen kellően fejlett technológia megkülönböztethetetlen a mágiától" - Arthur C. Clarke

Néhány hónappal ezelőtt a bátyám meglátogatta Japánt, és igazi varázslói tapasztalatokat szerzett a Harry Potter varázsvilágában a Universal Studiosban, ami lehetővé tette a Computer Vision technológiáját.

A Universal Studios Harry Potter varázslóvilágában a turisták "valódi varázslatot" végezhetnek bizonyos helyeken (ahol a mozgásrögzítő rendszer telepítve van), speciálisan készített pálcák segítségével, amelyek csúcsán fényvisszaverő gyöngyök vannak. A pálcákat egy igazi Ollivander boltban lehet megvásárolni, pontosan olyanokat, mint a Harry Potter -filmekben, de ne feledje: "A varázsló a pálca"

Ezeken a bizonyos helyeken, ha a személy pálcával hajt végre egy adott gesztust, a mozgásrögzítő rendszer felismeri a gesztust, és minden gesztus egy bizonyos varázslatnak felel meg, amely bizonyos tevékenységeket okoz a környező területen, például a szökőkút bekapcsolását stb.

Tehát ebben az utasításban megmutatom, hogyan lehet otthon olcsó és hatékony mozgásrögzítő rendszert létrehozni az "igazi varázslat" elvégzéséhez, ha kinyit egy dobozt a pálcája mozdulataival: D csak egy normál Éjjellátó kamera, néhány elektronika, és néhány python kód az OpenCV Computer Vision könyvtár és a Machine Learning segítségével !!!

1. lépés: Az alapötlet és a szükséges alkatrészek

Az alapötlet és a szükséges alkatrészek
Az alapötlet és a szükséges alkatrészek
Az alapötlet és a szükséges alkatrészek
Az alapötlet és a szükséges alkatrészek
Az alapötlet és a szükséges alkatrészek
Az alapötlet és a szükséges alkatrészek
Az alapötlet és a szükséges alkatrészek
Az alapötlet és a szükséges alkatrészek

A pálcák, amelyeket a Universal Studios -ban vásároltak a Harry Potter Varázslóvilágából, csúcsukon fényvisszaverő gyöngy található. Ezek a fényvisszaverő gyöngyök nagy mennyiségű infravörös fényt tükröznek, amelyet a kamera bocsát ki a mozgásrögzítő rendszerben. Tehát amit mi emberek a levegőben mozgó pálca nem annyira megkülönböztető csúcsának érzékelünk, a mozgásrögzítő rendszer érzékeli fényes foltként, amelyet könnyen el lehet különíteni a videófolyamban, és nyomon lehet követni, hogy felismerje a személy által rajzolt mintát, és végrehajtsa a szükséges műveletet. Mindezek a feldolgozások valós időben zajlanak, és számítógépes látást és gépi tanulást használnak.

Egy egyszerű Éjjellátó kamera használható mozgásrögzítő fényképezőgépünkként, mivel az emberek számára nem látható, de infravörös szűrővel nem rendelkező kamerával jól látható infravörös fényt is elfúj. Tehát a kamerából származó videofolyam egy málna pi -be kerül, amely rendelkezik egy OpenCV -t futtató python programmal, amelyet a pálcahegy észlelésére, elkülönítésére és nyomon követésére használnak. Ezután a SVM (Simple Vector Machine) Machine Learning algoritmus segítségével felismerjük a rajzolt mintát, és ennek megfelelően ellenőrizzük a málna pi GPIO -jait bizonyos tevékenységek végrehajtásához.

Szükséges anyagok:

1) A Raspberry Pi 3 B modell és a szükséges kiegészítők, például billentyűzet és egér

2) Raspberry Pi NoIR (nincs infravörös) kamera modul

3) Harry Potter pálca fényvisszaverővel a végén: Ne aggódj, ha nincs. Bármi használható fényvisszaverővel. Tehát bármilyen pálcához hasonló botot használhat, és fényvisszaverő szalagot, festéket vagy gyöngyöket ragaszthat a hegyére, és úgy kell működnie, ahogy William Osman videója mutatja: Nézze meg a videót

4) 10 infravörös LED

5) Az Ön által választott 3D nyomtató és PLA szál

6) 12V - 1A fali adapter és DC aljzat

7) Szervómotor

8) Egy régi doboz és egy kerék a kerék kerékéből

9) Forró ragasztópisztoly

10) Néhány Harry Potterrel kapcsolatos logó és kép kinyomtatása fényes papírlapon

11) Zöld és sárga bársonylapok.

MEGJEGYZÉS: Próbáltam egy régi, normál webkamerát is használni az éjszakai látáshoz, eltávolítva az infravörös szűrőt, de végül megsérült/elmozdult a lencse, ami nagyban befolyásolta a videó minőségét, és nem tudtam használni. De ha ki akarja próbálni, akkor nézze át ezt a remek, tanulságos kattintson ide

2. lépés: Telepítse az OpenCV modult

Itt az ideje az egész projekt első és valószínűleg leghosszabb lépésének: az OpenCV modul telepítése és építése a Raspberry Pi -ben.

Az OpenCV modul függőségeinek telepítése nem sok időt vesz igénybe, de az összeállítás akár 2-3 órát is igénybe vehet !! Szóval, Csatold fel !!: P

Sok online oktatóanyag található az OpenCV 4.1.0 modul telepítéséhez. Itt a link, amit követtem: Kattintson ide

MEGJEGYZÉS: Határozottan javaslom az OpenCV modul virtuális környezetbe történő telepítését az oktatóanyagban látható módon, mivel ez megakadályozza a különféle konfliktusokat, amelyek a különböző modulok függőségeinek telepítése vagy a python különböző verzióival való munka során fordulhatnak elő.

3. lépés: A kamera tartó kinyomtatása

A kamera tartó nyomtatása
A kamera tartó nyomtatása
A kamera tartó nyomtatása
A kamera tartó nyomtatása
A kamera tartó nyomtatása
A kamera tartó nyomtatása

A NoIR picamera nem rendelkezik infravörös szűrővel, ezért éjjellátó kameraként használható, de még mindig nincs infravörös fényforrása. Minden éjjellátó kamerának saját infravörös fényforrása van, amely sötétben felrobbantja az infravörös sugarakat, amelyek szabad szemmel nem láthatók, de a sugarakat a kamera látja infravörös szűrő nélkül, miután bármilyen tárgyról visszaverődik.

Tehát alapvetően szükségünk van egy infravörös fényforrásra, és valamire, amire felszerelhetjük a kamerát. Ehhez megterveztem egy objektum egyszerű 3D -s modelljét, amelyre felszerelhetjük a kamerát, amelyet körben 10 IR led vesz körül. A modellt SketchUp segítségével hozták létre, és körülbelül 40 perc alatt kinyomtatták fekete PLA -val.

4. lépés: A kamera tartó befejezése

A kamera tartó befejezése
A kamera tartó befejezése
A kamera tartó befejezése
A kamera tartó befejezése
A kamera tartó befejezése
A kamera tartó befejezése

A modell kinyomtatása után először 80 -as csiszolópapírral csiszoltam, majd elkezdtem az IR ledeket a lyukakba helyezni a fenti ábra szerint.

A LED -eket a helyükre rögzítettem valamilyen forró ragasztóval, majd két egymást követő LED pozitív és negatív vezetékét összeillesztettem, majd forrasztottam őket, hogy soros kapcsolatot létesítsenek a LED -ekkel.

Az egyik led pozitív vezetékét és a mellette lévő alsó vezeték negatív vezetékét alul forrasztás nélkül hagyták, hogy összekapcsolják a 12 voltos fali adapter pozitív és negatív végeit.

5. lépés: A képzett gépi tanulási modell

Annak érdekében, hogy felismerjem egy személy által rajzolt betűt, betanítottam egy gépi tanulási modellt, amely a Support Vector Machine (SVM) algoritmuson alapul, és itt találtam egy kézzel írott angol ábécé adathalmazát. Az SVM -ek nagyon hatékony gépi tanulási algoritmusok, amelyek nagy pontosságot adhatnak, ebben az esetben körülbelül 99,2% -ot !! További információ az SVM -ekről

Az adathalmaz.csv fájl formájában van, amely 785 oszlopot és több mint 300 000 sort tartalmaz, ahol minden sor 28 x 28 -as képet képvisel, és az adott sor minden oszlopa tartalmazza az adott képpont értékét egy további oszloppal az eleje, amely tartalmazza a címkét, egy szám 0 és 25 között, mindegyik egy angol betűnek felel meg. Egy egyszerű python -kód segítségével felvágtam az adatokat, hogy az összes képet csak a kívánt 2 betűhöz (A és C) kapjam, és modellt képeztem ki számukra.

Csatoltam a betanított modellt (alphabet_classifier.pkl) és a képzési kódot is, bátran nézze át, vagy hajtson végre változtatásokat a modell betűkkel történő betanításában, vagy próbáljon ki különböző algoritmusokat. A program futtatása után automatikusan elmenti a betanított modellt ugyanabba a könyvtárba, ahová a kódot mentette.

6. lépés: A kód, amely mindent megtörténik

A kód, ami mindent megtörténik !!
A kód, ami mindent megtörténik !!

A betanított modell létrehozása után az utolsó lépés egy python program írása a Raspberry Pi -hez, amely lehetővé teszi számunkra, hogy a következőket tegyük:

  • Valós idejű hozzáférés a videóhoz a picamera -ról
  • Észlelje és kövesse nyomon a videóban a fehér foltokat (ebben az esetben a pálca hegyét, amely világít az éjszakai látásban)
  • Kezdje nyomon követni a mozgó folt útját a videóban valamilyen kiváltó esemény után (az alábbiakban ismertetjük)
  • A nyomkövetés leállítása egy másik trigger esemény után (az alábbiakban ismertetjük)
  • Az utolsó keretet adja vissza a felhasználó által rajzolt mintával
  • Végezzen előfeldolgozást a kereten, például küszöbérték, zajeltávolítás, átméretezés stb.
  • Használja a feldolgozott utolsó keretet az előrejelzéshez.
  • Végezzen valamilyen varázslatot a Raspberry Pi GPIO -jainak vezérlésével az előrejelzés szerint

Ehhez a projekthez létrehoztam egy Harry Potter témájú dobozt, amelyet kinyithatok és bezárhatok egy szervomotorral, amelyet a Raspberry Pi GPIO vezérel. Mivel az „A” betű az „Alohamora” (a Harry Potter -filmek egyik leghíresebb varázslata, amely lehetővé teszi a varázsló számára, hogy bármilyen zárat kinyisson !!), ha egy személy A betűt húz a pálcával, a pi megparancsolja a szervónak, hogy nyissa ki a dobozt. Ha a személy „C” betűt rajzol, amely a zárást jelöli (mivel nem jutottam eszembe a záráshoz vagy záráshoz használt megfelelő varázslathoz: P), a pi azt parancsolja a szervónak, hogy zárja be a dobozt.

A kép/videó feldolgozással kapcsolatos összes munka, például a blob észlelése, a blob útvonalának nyomon követése, az utolsó képkocka előfeldolgozása stb., Az OpenCV modulon keresztül történik.

A fent említett kiváltó eseményekhez két kör jön létre a valós idejű videón, egy zöld és egy piros kör. Amikor a folt belép a zöld körön belüli régióba, a program elkezdi nyomon követni a blob által megtett utat az adott pillanat után, lehetővé téve a személy számára, hogy elkezdje létrehozni a betűt. Amikor a folt eléri a piros kört, a videó leáll, és az utolsó képkockát átadja egy funkciónak, amely elvégzi a keret előfeldolgozását, hogy készen álljon a predikcióra.

Ebben a lépésben csatoltam a kódfájlokat. Nyugodtan menjen át rajta, és végezzen tetszés szerinti változtatásokat.

MEGJEGYZÉS: Két különálló python -fájlt kellett létrehoznom, amelyek különböző python verziókkal dolgoznak, az egyik az OpenCV modult (Python 2.7) importálja, a másik pedig a sklearn modult (Python 3.5) importálja az előrejelzéshez a betanított modell betöltése után, mivel az OpenCV -m telepítve volt a Python 2.7 verzió, míg a sklearn telepítve volt a python 3.5 számára. Tehát az alfolyamat modullal futtattam a HarryPotterWandsklearn.py fájlt (az előrejelzéshez) a HarryPotterWandcv.py -ből (minden opencv munkához és valós idejű videofelvételhez), és megkaptam a kimenetét. Így csak a HarryPotterWandcv.py fájlt kell futtatnom.

7. lépés: A doboznyitó mechanizmus

A doboznyitó mechanizmus
A doboznyitó mechanizmus
A doboznyitó mechanizmus
A doboznyitó mechanizmus
A doboznyitó mechanizmus
A doboznyitó mechanizmus

Volt egy régi piros színű dobozom, amely körül ezt a projektet használtam.

A doboznyitó mechanizmus esetében:

  1. Szervót erősen ragasztottam a doboz hátsó vége közelében egy kartondobozra a doboz pereme közelében.
  2. Aztán kivettem egy küllőt a kerék kerékéből, és forró ragasztottam a szervó karjához.
  3. A küllő másik vége egy drótdarab segítségével a doboz fedeléhez volt rögzítve.
  4. A szervo pozitív csatlakozott a Raspberry Pi +5V 2 -es tűjéhez.
  5. A szervo negatívja a GND 39 -es csaphoz volt csatlakoztatva.
  6. A szervo jele csatlakozott a 12 -es csaphoz

8. lépés: A doboz elkészítése Harry Potter témával

A doboz elkészítése Harry Potter témájú
A doboz elkészítése Harry Potter témájú
A doboz elkészítése Harry Potter témájú
A doboz elkészítése Harry Potter témájú
A doboz elkészítése Harry Potter témájú
A doboz elkészítése Harry Potter témájú

A doboz Harry Potter témájához fényes A4 -es lapra kinyomtattam néhány színes képet különböző dolgokról, például a Harry Potter logóról, a Roxforti címerről, a négy ház címereiről stb. helyeket.

Sárga színű bársonylapot is használtam csíkok vágására, és a fedélre ragasztottam, hogy a doboz ugyanolyan színű legyen, mint a Griffendél házé. Zöld bársonylappal letakartam a fedél belsejét és a szervo kartonját. A fedél belső oldalára további szimbólumokat és emblémát ragasztottam, amelyek a Roxfort Iskola minden házát ábrázoló állatokat mutatják be.

Aztán végül minden Harry Potter -hez kapcsolódó dolgot a dobozba töltöttem, amely tartalmazott egy griffendéles hangtompítót, egy naplót a Roxfort -egyenruhával és a projektben használt Elder Wand -t: D

Ajánlott: