Obsah:

Skutečně fungující hůlka Harryho Pottera pomocí počítačové vize: 8 kroků (s obrázky)
Skutečně fungující hůlka Harryho Pottera pomocí počítačové vize: 8 kroků (s obrázky)

Video: Skutečně fungující hůlka Harryho Pottera pomocí počítačové vize: 8 kroků (s obrázky)

Video: Skutečně fungující hůlka Harryho Pottera pomocí počítačové vize: 8 kroků (s obrázky)
Video: LA VERDAD SOBRE LA TALLA A CUCHILLO SLOJD. En Härnösand (Suecia) (tälja knivar) de Agu el Oso Pardo 2024, Červenec
Anonim
Image
Image
Skutečně fungující hůlka Harryho Pottera využívající počítačové vidění
Skutečně fungující hůlka Harryho Pottera využívající počítačové vidění
Skutečně fungující hůlka Harryho Pottera využívající počítačové vidění
Skutečně fungující hůlka Harryho Pottera využívající počítačové vidění
Skutečně fungující hůlka Harryho Pottera využívající počítačové vidění
Skutečně fungující hůlka Harryho Pottera využívající počítačové vidění

„Jakákoli dostatečně pokročilá technologie je k nerozeznání od magie“- Arthur C. Clarke

Před několika měsíci můj bratr navštívil Japonsko a měl skutečnou kouzelnickou zkušenost v Čarodějném světě Harryho Pottera v Universal Studios umožněném díky technologii Computer Vision.

V Kouzelnickém světě Harryho Pottera v Universal Studios mohou turisté na určitých místech (kde je nainstalován systém pro zachycení pohybu) provádět „skutečné kouzlo“pomocí speciálně vyrobených hůlek s retroreflexními korálky na špičce. Hůlky lze zakoupit ve skutečném Ollivanderově obchodě, které jsou přesně stejné jako ty, které jsou uvedeny ve filmech o Harrym Potterovi, ale pamatujte si: „Je to hůlka, která si vybírá čaroděje“: P

Na těchto určitých místech, pokud osoba provádí konkrétní gesto s hůlkou, systém zachycení pohybu toto gesto rozpozná a všechna gesta odpovídají určitému kouzlu, které způsobuje určité činnosti v okolní oblasti, jako je zapnutí fontány atd.

V tomto Instructable tedy ukážu, jak si můžete doma vytvořit levný a účinný systém snímání pohybu, který bude provádět „opravdové kouzlo“otevřením krabice švihnutím hůlky: D pomocí normální kamery pro noční vidění, nějaké elektroniky, a nějaký kód pythonu pomocí knihovny OpenCV Computer Vision a strojového učení !!!

Krok 1: Základní myšlenka a požadované součásti

Základní myšlenka a požadované součásti
Základní myšlenka a požadované součásti
Základní myšlenka a požadované součásti
Základní myšlenka a požadované součásti
Základní myšlenka a požadované součásti
Základní myšlenka a požadované součásti
Základní myšlenka a požadované součásti
Základní myšlenka a požadované součásti

Hůlky zakoupené z Čarodějného světa Harryho Pottera v Universal Studios mají na špičce retroreflexní korálek. Tyto retroreflexní kuličky odrážejí velké množství infračerveného světla, které je vydáváno kamerou v systému motion capture. Takže to, co my lidé vnímáme jako ne příliš výrazný hrot hůlky pohybující se ve vzduchu, systém pro zachycení pohybu vnímá jako jasný blob, který lze snadno izolovat ve video streamu a sledovat, aby rozpoznal vzor nakreslený osobou a provedl požadovanou akci. Celé toto zpracování probíhá v reálném čase a využívá počítačové vidění a strojové učení.

Jako kameru pro snímání pohybu lze použít jednoduchou kameru Night Vision, která také vyzařuje infračervené světlo, které není pro lidi viditelné, ale je jasně vidět na kameře, která nemá infračervený filtr. Video stream z kamery je tedy veden do malinového pi, které má program python se spuštěným OpenCV, který se používá k detekci, izolaci a sledování špičky hůlky. Poté použijeme SVM (Simple Vector Machine) algoritmus Machine Learning k rozpoznání nakresleného vzoru a podle toho řídíme GPIO malinového pi k provádění některých činností.

Požadované materiály:

1) Raspberry Pi 3 model B a požadované příslušenství, jako je klávesnice a myš

2) Kamerový modul Raspberry Pi NoIR (bez infračerveného)

3) Harry Potter Wand with retroreflector at the tip: Nebojte se, pokud ji nemáte. Lze použít cokoli s retroreflektorem. Můžete tedy použít jakoukoli hůlku podobnou hůlku a na špičku použít retroreflexní pásku, barvu nebo korálky a mělo by to fungovat, jak ukazuje video William Osman: Sledujte video

4) 10 infračervených LED diod

5) 3D tiskárna a PLA filament dle vašeho výběru

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

7) Servomotor

8) Stará krabice a paprsek z kola cyklu

9) Horká lepicí pistole

10) Výtisky log a obrázků souvisejících s Harrym Potterem na lesklý list papíru

11) Sametové prostěradlo zelené a žluté.

POZNÁMKA: Zkoušel jsem také použít starou běžnou webovou kameru pro noční vidění odstraněním jejího infračerveného filtru, ale nakonec došlo k poškození/posunutí jeho čočky, což výrazně ovlivnilo kvalitu videa, a nemohl jsem ji použít. Ale pokud to chcete zkusit, můžete projít tímto skvělým instruktážním kliknutím sem

Krok 2: Nainstalujte modul OpenCV

Nyní je čas na první a pravděpodobně nejdelší krok celého tohoto projektu: Instalace a stavba modulu OpenCV ve vašem Raspberry Pi.

Instalace závislostí na modulu OpenCV nezabere mnoho času, ale proces sestavení může trvat až 2 až 3 hodiny !! Takže, připoutejte se !!: P

Existuje mnoho online návodů, které můžete sledovat při instalaci modulu OpenCV 4.1.0. Zde je odkaz na ten, který jsem sledoval: Klikněte sem

POZNÁMKA: Důrazně doporučuji nainstalovat modul OpenCV do virtuálního prostředí, jak je ukázáno v tutoriálu, protože to zabrání konfliktům různých druhů, ke kterým může dojít v důsledku instalace závislostí různých modulů nebo při práci s různými verzemi pythonu.

Krok 3: Tisk držáku fotoaparátu

Tisk držáku fotoaparátu
Tisk držáku fotoaparátu
Tisk držáku fotoaparátu
Tisk držáku fotoaparátu
Tisk držáku fotoaparátu
Tisk držáku fotoaparátu

Picamera NoIR nemá žádný infračervený filtr, proto může být použita jako kamera pro noční vidění, ale stále jí chybí zdroj infračerveného světla. Všechny kamery pro noční vidění mají svůj vlastní zdroj infračerveného světla, který ve tmě vyzařuje infračervené paprsky, které jsou pouhým okem neviditelné, ale paprsky mohou být viděny kamerou bez infračerveného filtru po odrazu od jakéhokoli předmětu.

V zásadě tedy potřebujeme infračervený světelný zdroj a něco, na co lze kameru připevnit. Za tímto účelem jsem navrhl jednoduchý 3D model objektu, na který bychom mohli namontovat kameru, kterou budeme obklopovat 10 IR LED v kruhu. Model byl vytvořen pomocí SketchUp a vytištěn pomocí Black PLA přibližně za 40 minut.

Krok 4: Dokončení držáku kamery

Dokončení montáže kamery
Dokončení montáže kamery
Dokončení montáže kamery
Dokončení montáže kamery
Dokončení montáže kamery
Dokončení montáže kamery

Po vytištění modelu jsem jej nejprve přebrousil brusným papírem o zrnitosti 80 a poté začal umísťovat IR diody do jejich otvorů podle výše uvedeného schématu.

Zajistil jsem diody na jejich místo horkým lepidlem a poté spojil kladné a záporné vývody dvou po sobě jdoucích diod dohromady a poté je pájel, abych vytvořil sériové spojení diod.

Kladný vodič jedné LED a záporný vodič LED vedle ní ve spodní části byly ponechány nepájené, aby se připojily kladné a záporné konce z 12voltového nástěnného adaptéru.

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

Za účelem rozpoznání písmene nakresleného osobou jsem natrénoval model strojového učení založený na algoritmu Support Vector Machine (SVM) pomocí datové sady ručně psaných anglických abeced, které jsem našel zde. SVM jsou velmi účinné algoritmy strojového učení, které mohou poskytnout vysokou přesnost, v tomto případě kolem 99,2% !! Přečtěte si více o SVM

Datová sada je ve formě souboru.csv, který obsahuje 785 sloupců a více než 300 000 řádků, kde každý řádek představuje obrázek 28 x 28 a každý sloupec v tomto řádku obsahuje hodnotu daného pixelu pro daný obrázek s dalším sloupcem v začátek, který obsahuje štítek, číslo od 0 do 25, každé odpovídá anglickému písmenu. Prostřednictvím jednoduchého kódu pythonu jsem data rozřezal, abych získal všechny obrázky pouze pro 2 písmena (A a C), která jsem chtěl, a vycvičil jsem pro ně model.

Připojil jsem natrénovaný model (alphabet_classifier.pkl) a také tréninkový kód, klidně si jej projděte nebo proveďte jakékoli změny pro trénování modelu s různými písmeny nebo vyzkoušejte různé algoritmy. Po spuštění programu automaticky uloží natrénovaný model do stejného adresáře, kde je uložen váš kód.

Krok 6: Kód, díky kterému se to všechno stane

Kód, díky kterému se to všechno stane !!
Kód, díky kterému se to všechno stane !!

Po vytvoření trénovaného modelu je posledním krokem napsání programu python pro náš Raspberry Pi, který nám umožní provést následující:

  • Získejte přístup k videu z pikamery v reálném čase
  • Ve videu detekujte a sledujte bílé kuličky (v tomto případě špičku hůlky, která se rozsvítí při nočním vidění)
  • Začněte trasovat pohybující se blob ve videu po nějaké spouštěcí události (vysvětleno níže)
  • Zastavit trasování po jiné spouštěcí události (vysvětleno níže)
  • Vrátí poslední snímek se vzorem nakresleným uživatelem
  • Proveďte předběžné zpracování na rámu, jako je prahování, odstranění šumu, změna velikosti atd.
  • Pro předpověď použijte zpracovaný poslední snímek.
  • Proveďte nějakou magii ovládáním GPIO Raspberry Pi podle předpokladu

Pro tento projekt jsem vytvořil krabici s motivem Harryho Pottera, kterou mohu otevřít a zavřít pomocí servomotoru, který je řízen GPIO Raspberry Pi. Protože písmeno „A“znamená „Alohamora“(jedno z nejslavnějších kouzel z filmů o Harrym Potterovi, které umožňuje čaroději otevřít jakýkoli zámek !!), nakreslí -li člověk hůlkou písmeno A, pí přikáže servu otevřete Box. Pokud osoba nakreslí písmeno „C“, které znamená blízko (protože mě nenapadlo žádné vhodné kouzlo používané k zavírání nebo zamykání: P), pí přikáže servu zavřít krabici.

Veškerá práce související se zpracováním obrazu/videa, jako je detekce blobů, trasování cesty objektu blob, předběžné zpracování posledního snímku atd., Se provádí prostřednictvím modulu OpenCV.

Pro výše uvedené spouštěcí události jsou na videu v reálném čase vytvořeny dva kruhy, zelený a červený kruh. Když blob vstoupí do oblasti v zeleném kruhu, program začne sledovat cestu, kterou blob po tomto okamžiku umožní, aby osoba mohla začít vytvářet písmeno. Když blob dosáhne červeného kruhu, video se zastaví a poslední snímek je předán funkci, která na snímku provede předběžné zpracování, aby bylo připraveno k předvídání.

V tomto kroku jsem připojil soubory kódu. Klidně si to projděte a proveďte jakékoli změny, jak chcete.

POZNÁMKA: Musel jsem vytvořit dva samostatné soubory pythonu pracující s různými verzemi pythonu, jeden, který importuje modul OpenCV (Python 2.7) a druhý, který importuje modul sklearn (Python 3.5) pro predikci po načtení trénovaného modelu, protože můj OpenCV byl nainstalován pro verze Python 2.7, zatímco sklearn byl nainstalován pro python 3.5. Takže jsem použil modul podprocesu ke spuštění souboru HarryPotterWandsklearn.py (pro předpověď) z HarryPotterWandcv.py (pro veškerou práci opencv a nahrávání videa v reálném čase) a získání jeho výstupu. Tímto způsobem musím spustit pouze soubor HarryPotterWandcv.py.

Krok 7: Mechanismus otevírání krabice

Mechanismus otevírání krabice
Mechanismus otevírání krabice
Mechanismus otevírání krabice
Mechanismus otevírání krabice
Mechanismus otevírání krabice
Mechanismus otevírání krabice

Kolem mě ležel starý červený box, který jsem použil pro tento projekt.

Pro mechanismus otevírání krabice:

  1. Za tepla jsem nalepil servo poblíž zadního konce krabice na kus lepenky poblíž okraje krabice.
  2. Pak jsem vzal paprsek z kola cyklu a za horka ho nalepil na rameno serva.
  3. Druhý konec paprsku byl připevněn k víku krabice pomocí kusu drátu.
  4. Pozitivní servo bylo připojeno k +5V Pin 2 na Raspberry Pi.
  5. Negativní servo bylo připojeno na pin 39 GND.
  6. Na pin 12 byl připojen signál serva

Krok 8: Vytvoření krabice podle motivu 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

Abych vytvořil krabici s motivem Harryho Pottera, vytiskl jsem několik barevných obrázků různých věcí, jako je logo Harryho Pottera, Hogwarts Crest, The Crest každého ze čtyř domů atd. Na lesklý list velikosti A4 a nalepil jsem je na krabici na různé míst.

Také jsem použil žlutý sametový list na řezání proužků a nalepil je na víko, aby krabice získala stejnou barvu jako v nebelvírském domě. Vnitřek víka a lepenku na servo jsem zakryl zeleným sametovým prostěradlem. Na vnitřní stranu víka jsem nalepil další symboly a znak zobrazující zvířata, která představují každý dům bradavické školy.

Pak jsem konečně nacpal všechny své věci související s Harrym Potterem do krabice, která obsahovala nebelvírský tlumič, deník s bradavickou uniformou a bezovou hůlku použitou v tomto projektu: D

Doporučuje: