Obsah:

Skutočne fungujúca hůlka Harryho Pottera pomocou počítačového videnia: 8 krokov (s obrázkami)
Skutočne fungujúca hůlka Harryho Pottera pomocou počítačového videnia: 8 krokov (s obrázkami)

Video: Skutočne fungujúca hůlka Harryho Pottera pomocou počítačového videnia: 8 krokov (s obrázkami)

Video: Skutočne fungujúca hůlka Harryho Pottera pomocou počítačového videnia: 8 krokov (s obrázkami)
Video: Nikola Tesla's Warning of the Philadelphia Experiment & Time Travel 2024, Júl
Anonim
Image
Image
Skutočne fungujúca prútik Harryho Pottera pomocou počítačového videnia
Skutočne fungujúca prútik Harryho Pottera pomocou počítačového videnia
Skutočne fungujúca prútik Harryho Pottera pomocou počítačového videnia
Skutočne fungujúca prútik Harryho Pottera pomocou počítačového videnia
Skutočne fungujúca prútik Harryho Pottera pomocou počítačového videnia
Skutočne fungujúca prútik Harryho Pottera pomocou počítačového videnia

„Akákoľvek dostatočne pokročilá technológia je na nerozoznanie od mágie“- Arthur C. Clarke

Pred niekoľkými mesiacmi môj brat navštívil Japonsko a mal skutočnú čarodejnícku skúsenosť v čarodejníckom svete Harryho Pottera v Universal Studios, ktorý bol možný vďaka technológii Computer Vision.

V čarodejníckom svete Harryho Pottera v Universal Studios môžu turisti vykonávať „skutočnú mágiu“na určitých miestach (kde je nainštalovaný systém zachytávania pohybu) pomocou špeciálne vyrobených prútikov s retro-reflexnými korálkami na špičke. Hůlky je možné kúpiť v skutočnom Ollivanderovom obchode, ktoré sú presne také, ako sú uvedené vo filmoch o Harrym Potterovi, ale pamätajte si: „čarodejníka si vyberá prútik“: P

Na týchto určitých miestach, ak daná osoba vykonáva konkrétne gesto prútikom, systém zachytávania pohybu gesto rozpozná a všetky gestá zodpovedajú určitému kúzlu, ktoré spôsobuje určité činnosti v okolí, ako je zapnutie fontány atď.

V tomto návode vám teda ukážem, ako si môžete doma vytvoriť lacný a efektívny systém snímania pohybu na vykonávanie „skutočnej mágie“otvorením škatule švihnutím prútika: D pomocou obyčajnej kamery pre nočné videnie, elektroniky, a nejaký pythonový kód pomocou knižnice OpenCV Computer Vision a strojového učenia !!!

Krok 1: Základný nápad a požadované diely

Základný nápad a požadované diely
Základný nápad a požadované diely
Základný nápad a požadované diely
Základný nápad a požadované diely
Základný nápad a požadované diely
Základný nápad a požadované diely
Základný nápad a požadované diely
Základný nápad a požadované diely

Prútiky, ktoré boli kúpené z Čarodejníckeho sveta Harryho Pottera v Universal Studios, majú na špičke retroreflexný korálik. Tieto retroreflexné guľôčky odrážajú veľké množstvo infračerveného svetla, ktoré vydáva kamera v systéme snímania pohybu. Takže to, čo my ľudia vnímame ako nie príliš výrazný hrot prútika pohybujúceho sa vo vzduchu, systém snímania pohybu vníma ako jasný blob, ktorý je možné ľahko izolovať vo video streame a sledovať, aby rozpoznal vzor nakreslený osobou a vykonal požadovanú akciu. Celé toto spracovanie prebieha v reálnom čase a využíva počítačové videnie a strojové učenie.

Na snímanie pohybu je možné použiť jednoduchú kameru Night Vision, ktorá tiež vyžaruje infračervené svetlo, ktoré nie je pre ľudí viditeľné, ale je možné ho jasne vidieť pomocou kamery, ktorá nemá infračervený filter. Video stream z kamery je teda vedený do malinového pi, ktoré má program python so systémom OpenCV, ktorý sa používa na detekciu, izoláciu a sledovanie špičky prútika. Potom použijeme SVM (Simple Vector Machine) algoritmus strojového učenia na rozpoznanie nakresleného vzoru a podľa toho riadime GPIO malinového pi na vykonávanie niektorých aktivít.

Požadované materiály:

1) Raspberry Pi 3 model B a požadované príslušenstvo, ako je klávesnica a myš

2) Modul kamery Raspberry Pi NoIR (bez infračerveného)

3) Harry Potter Wand with retroreflector at the tip: Nebojte sa, ak ho nemáte. Použiť sa dá čokoľvek s retroreflektorom. Môžete teda použiť akúkoľvek paličku podobnú prútiku a na hrot naneste retroreflektorovú pásku, farbu alebo korálky a malo by to fungovať, ako ukazuje video William Osman: Sledujte video

4) 10 infračervených diód LED

5) 3D tlačiareň a PLA filament podľa vlastného výberu

6) 12V - 1A nástenný adaptér a konektor DC

7) Servomotor

8) Starý box a lúč z kolesa cyklu

9) Horúca lepiaca pištoľ

10) Výtlačky niektorých log a fotografií súvisiacich s Harrym Potterom na lesklý list papiera

11) Zelené a žlté zamatové obliečky.

POZNÁMKA: Tiež som sa pokúsil použiť starú bežnú webovú kameru na nočné videnie odstránením jej infračerveného filtra, ale skončil som s poškodením/posunutím šošovky, čo výrazne ovplyvnilo kvalitu videa, a nemohol som ju použiť. Ale ak to chcete skúsiť, môžete prejsť týmto skvelým pokynom Kliknite sem

Krok 2: Nainštalujte modul OpenCV !

Teraz je čas na prvý a pravdepodobne najdlhší krok celého tohto projektu: Inštalácia a stavba modulu OpenCV do vášho Raspberry Pi.

Inštalácia závislostí na module OpenCV netrvá veľa času, ale proces vytvárania môže trvať 2 až 3 hodiny !! Takže, pripútajte sa !!: P

Existuje mnoho online návodov, pomocou ktorých si môžete nainštalovať modul OpenCV 4.1.0. Tu je odkaz na ten, ktorý som sledoval: Kliknite sem

POZNÁMKA: Dôrazne odporúčam nainštalovať modul OpenCV do virtuálneho prostredia, ako je uvedené v návode, pretože zabráni rôznym druhom konfliktov, ktoré môžu nastať v dôsledku inštalácie závislostí rôznych modulov alebo pri práci s rôznymi verziami pythonu.

Krok 3: Tlač držiaka fotoaparátu

Tlač držiaka fotoaparátu
Tlač držiaka fotoaparátu
Tlač držiaka fotoaparátu
Tlač držiaka fotoaparátu
Tlač držiaka fotoaparátu
Tlač držiaka fotoaparátu

Picamera NoIR nemá žiadny infračervený filter, preto môže byť použitá ako kamera pre nočné videnie, ale stále jej chýba zdroj infračerveného svetla. Všetky kamery pre nočné videnie majú svoj vlastný zdroj infračerveného svetla, ktorý v tme vyžaruje infračervené lúče, ktoré sú voľným okom neviditeľné, ale lúče môže kamera vidieť bez infračerveného filtra po odrazení od akéhokoľvek predmetu.

V zásade teda potrebujeme zdroj infračerveného svetla a niečo, na čo je možné kameru namontovať. Na tento účel som navrhol jednoduchý 3D model objektu, na ktorý by sme mohli namontovať kameru, ktorú obklopíme 10 IR diódami v kruhu. Model bol vytvorený pomocou SketchUp a vytlačený pomocou Black PLA približne za 40 minút.

Krok 4: Dokončenie montáže kamery

Dokončenie montáže kamery
Dokončenie montáže kamery
Dokončenie montáže kamery
Dokončenie montáže kamery
Dokončenie montáže kamery
Dokončenie montáže kamery

Po vytlačení modelu som ho najskôr prebrúsil brúsnym papierom s zrnitosťou 80 a potom som začal umiestňovať IR diódy do svojich otvorov podľa vyššie uvedeného diagramu.

LED diódy som zaistil na ich miesto horúcim lepidlom a potom som spojil kladné a záporné zvody dvoch po sebe idúcich LED a potom ich spájkoval, aby som vytvoril sériové spojenie LED.

Pozitívny vodič jednej diódy a záporný vodič diódy vedľa nej v spodnej časti bol ponechaný nespájkovaný, aby sa spojili kladné a záporné konce z 12-voltového nástenného adaptéra.

Krok 5: Vycvičený model strojového učenia

Na účely rozpoznania písmena nakresleného osobou som natrénoval model strojového učenia založený na algoritme Support Vector Machine (SVM) pomocou súboru údajov ručne písaných anglických abeced, ktoré som našiel tu. SVM sú veľmi účinné algoritmy strojového učenia, ktoré môžu poskytnúť vysokú presnosť, v tomto prípade okolo 99,2% !! Prečítajte si viac o SVM

Množina údajov je vo formáte súboru.csv, ktorý obsahuje 785 stĺpcov a viac ako 300 000 riadkov, pričom každý riadok predstavuje obrázok s rozmermi 28 x 28 a každý stĺpec v tomto riadku obsahuje hodnotu tohto pixelu pre daný obrázok s ďalším stĺpcom v začiatok, ktorý obsahuje štítok, číslo od 0 do 25, z ktorých každé zodpovedá anglickému písmenu. Prostredníctvom jednoduchého kódu pythonu som nakrájal údaje tak, aby som získal všetky obrázky iba na 2 písmená (A a C), ktoré som chcel, a vycvičil som pre ne model.

Priložil som natrénovaný model (alphabet_classifier.pkl) a tiež tréningový kód, môžete si ho pokojne prejsť alebo vykonať akékoľvek zmeny týkajúce sa školenia modelu s rôznymi písmenami alebo vyskúšať rôzne algoritmy. Po spustení programu automaticky uloží natrénovaný model do rovnakého adresára, kde je uložený váš kód.

Krok 6: Kód, vďaka ktorému sa to všetko stane !

Kód, vďaka ktorému sa to všetko stane !!
Kód, vďaka ktorému sa to všetko stane !!

Po vytvorení natrénovaného modelu je posledným krokom napísanie programu python pre náš Raspberry Pi, ktorý nám umožní vykonať nasledujúce kroky:

  • Prístup k videu z pikamery v reálnom čase
  • Vo videu detegujte a sledujte biele škvrny (v tomto prípade špičku prútika, ktorá sa rozsvieti pri nočnom videní)
  • Začnite sledovať cestu pohybujúceho sa objektu blob vo videu po nejakej spúšťacej udalosti (vysvetlené nižšie)
  • Zastaviť sledovanie po ďalšej spúšťacej udalosti (vysvetlené nižšie)
  • Vráťte posledný rám so vzorom, ktorý nakreslil používateľ
  • Vykonajte predbežné spracovanie na ráme, ako je prahovanie, odstránenie šumu, zmena veľkosti atď.
  • Na predikciu použite spracovaný posledný rámec.
  • Vykonajte nejaké kúzlo ovládaním GPIO Raspberry Pi podľa predpovede

Pre tento projekt som vytvoril box s tematikou Harryho Pottera, ktorý môžem otvárať a zatvárať pomocou servomotora, ktorý je riadený GPIO Raspberry Pi. Pretože písmeno „A“znamená „Alohamora“(jedno z najznámejších kúziel z filmov o Harrym Potterovi, ktoré umožňuje čarodejníkovi otvoriť akýkoľvek zámok !!), ak osoba nakreslí prútikom písmeno A, pí prikáže servu otvorte Box. Ak osoba nakreslí písmeno „C“, ktoré znamená blízko (ako som si nedokázal predstaviť žiadne vhodné kúzlo používané na zatváranie alebo zamykanie: P), pí prikáže servu, aby zatvorilo škatuľu.

Všetky práce súvisiace so spracovaním obrazu/videa, ako je detekcia blobov, sledovanie dráhy objektu blob, predbežné spracovanie posledného rámca atď., Sa vykonávajú prostredníctvom modulu OpenCV.

Pre vyššie uvedené spúšťacie udalosti sú na videu v reálnom čase vytvorené dva kruhy, zelený a červený kruh. Keď blob vstúpi do oblasti v zelenom kruhu, program začne sledovať cestu, ktorou sa blob po tomto momente stane, a umožní osobe začať vytvárať písmeno. Keď blob dosiahne červený kruh, video sa zastaví a posledný snímok sa presunie do funkcie, ktorá vykoná predbežné spracovanie v rámci snímky, aby bola pripravená na predvídanie.

V tomto kroku som pripojil súbory s kódom. Neváhajte si to prejsť a vykonať akékoľvek zmeny, ako chcete.

POZNÁMKA: Musel som vytvoriť dva samostatné pythonové súbory pracujúce s rôznymi verziami pythonu, jeden, ktorý importuje modul OpenCV (Python 2.7) a druhý, ktorý importuje modul sklearn (Python 3.5) na predikciu po načítaní natrénovaného modelu, pretože môj OpenCV bol nainštalovaný pre verzia Python 2.7, zatiaľ čo sklearn bol nainštalovaný pre python 3.5. Použil som teda modul podprocesu na spustenie súboru HarryPotterWandsklearn.py (pre predpoveď) z HarryPotterWandcv.py (pre všetku prácu s opencv a nahrávanie videa v reálnom čase) a získanie jeho výstupu. Takto budem musieť spustiť iba súbor HarryPotterWandcv.py.

Krok 7: Mechanizmus otvárania škatúľ

Mechanizmus otvárania škatúľ
Mechanizmus otvárania škatúľ
Mechanizmus otvárania škatúľ
Mechanizmus otvárania škatúľ
Mechanizmus otvárania škatúľ
Mechanizmus otvárania škatúľ

Okolo som ležal starý červený box, ktorý som použil na tento projekt.

Pre mechanizmus otvárania škatúľ:

  1. Za tepla som nalepil servo blízko zadného konca škatule na kus lepenky blízko okraja škatule.
  2. Potom som vzal lúč z kolesa cyklu a za tepla som ho prilepil k ramenu serva.
  3. Druhý koniec lúča bol pripevnený k veku škatule pomocou drôtu.
  4. Pozitívne na servo bolo pripojené k +5V pinu 2 na Raspberry Pi.
  5. Zápor serva bol pripojený k pinu 39 GND.
  6. Signál serva bol pripojený k pinu 12

Krok 8: Vytvorenie témy pre Harryho Pottera

Making the Box Harry Potter Themed
Making the Box Harry Potter Themed
Making the Box Harry Potter Themed
Making the Box Harry Potter Themed
Making the Box Harry Potter Themed
Making the Box Harry Potter Themed

Aby bola krabica s motívom Harryho Pottera, vytlačil som niekoľko farebných obrázkov rôznych vecí, ako je logo Harryho Pottera, Rokfortský hrebeň, Hrebienok každého zo štyroch domov atď. Na lesklý list veľkosti A4 a prilepil som ich na škatuľu na rôzne Miesta.

Tiež som použil žltý zamatový list na rezanie pásikov a prilepil ich na veko, aby krabica získala rovnakú farbu ako v Chrabromilskom dome. Vnútro veka a lepenku na servo som pokryl zeleným zamatovým listom. Na vnútornú stranu veka som nalepil ďalšie symboly a znak znázorňujúci zvieratá, ktoré predstavujú každý dom bradavickej školy.

Potom som konečne nacpal všetky svoje veci súvisiace s Harrym Potterom do škatule, ktorá obsahovala chrabromilský tlmič, denník s bradavickou uniformou a bezovú hůlku použitú v tomto projekte: D

Odporúča: