Sisällysluettelo:

Todellinen toimiva Harry Potter -sauva tietokonenäön avulla: 8 vaihetta (kuvilla)
Todellinen toimiva Harry Potter -sauva tietokonenäön avulla: 8 vaihetta (kuvilla)

Video: Todellinen toimiva Harry Potter -sauva tietokonenäön avulla: 8 vaihetta (kuvilla)

Video: Todellinen toimiva Harry Potter -sauva tietokonenäön avulla: 8 vaihetta (kuvilla)
Video: HARRY POTTER GAME FROM SCRATCH 2024, Marraskuu
Anonim
Image
Image
Todellinen toimiva Harry Potter -sauva tietokonenäön avulla
Todellinen toimiva Harry Potter -sauva tietokonenäön avulla
Todellinen toimiva Harry Potter -sauva tietokonenäön avulla
Todellinen toimiva Harry Potter -sauva tietokonenäön avulla
Todellinen toimiva Harry Potter -sauva tietokonenäön avulla
Todellinen toimiva Harry Potter -sauva tietokonenäön avulla

"Kaikki riittävän kehittynyt tekniikka on erottamaton taikuudesta" - Arthur C. Clarke

Muutama kuukausi sitten veljeni vieraili Japanissa ja hänellä oli todellinen velho -kokemus Harry Potterin velhojen maailmassa Universal Studiosissa, mikä mahdollisti Computer Vision -tekniikan.

Universal Studiosin Harry Potterin velhomaailmassa turistit voivat tehdä "todellista taikuutta" tietyissä paikoissa (joihin liikkeen sieppausjärjestelmä on asennettu) käyttämällä erityisesti tehtyjä sauvoja, joiden kärjessä on heijastavia helmiä. Sauvat voidaan ostaa oikeasta Ollivander's Shopista, jotka ovat täsmälleen samanlaisia kuin Harry Potter -elokuvissa, mutta muista: "Se sauva valitsee velhon": P

Tietyissä paikoissa, jos henkilö suorittaa tietyn eleen sauvalla, liikkeen sieppausjärjestelmä tunnistaa eleen ja kaikki eleet vastaavat tiettyä loitsua, joka aiheuttaa tiettyjä toimintoja ympäröivällä alueella, kuten suihkulähteen käynnistäminen jne.

Joten tässä opetusohjelmassa näytän, kuinka voit luoda halvan ja tehokkaan liikkeen sieppausjärjestelmän kotona suorittamaan "todellista taikuutta" avaamalla laatikon sauvan heilautuksella: D käyttämällä tavallista yönäkökameraa, jotakin elektroniikkaa, ja jotain python -koodia käyttämällä OpenCV Computer Vision -kirjastoa ja koneoppimista !!!

Vaihe 1: Perusidea ja tarvittavat osat

Perusidea ja tarvittavat osat
Perusidea ja tarvittavat osat
Perusidea ja tarvittavat osat
Perusidea ja tarvittavat osat
Perusidea ja tarvittavat osat
Perusidea ja tarvittavat osat
Perusidea ja tarvittavat osat
Perusidea ja tarvittavat osat

Wandarding World of Harry Potterin Universal Studiosista ostetuissa sauvoissa on heijastava helmi. Nämä heijastavat helmet heijastavat suuren määrän infrapunavaloa, jonka kamera antaa liikkeentunnistusjärjestelmässä. kirkkaana möykkynä, joka voidaan helposti eristää videovirrasta ja jota voidaan seurata tunnistamaan henkilön piirtämä kuvio ja suorittamaan vaaditut toimet. Kaikki tämä käsittely tapahtuu reaaliajassa ja hyödyntää Computer Visionia ja koneoppimista.

Yksinkertaista Night Vision -kameraa voidaan käyttää kamerana liikkeen sieppaamiseen, koska se myös räjäyttää infrapunavalon, joka ei ole ihmisten nähtävissä, mutta joka näkyy selvästi kameralla, jossa ei ole infrapunasuodatinta. Joten videovirta kamerasta syötetään vadelmapi: hen, jolla on OpenCV: tä käyttävä python -ohjelma, jota käytetään sauvan kärjen havaitsemiseen, eristämiseen ja seurantaan. Sitten käytämme koneoppimisen SVM (Simple Vector Machine) -algoritmia tunnistamaan piirretty kuvio ja ohjaamaan sen mukaisesti vadelmapi GPIO: ita joidenkin toimintojen suorittamiseen.

Tarvittavat materiaalit:

1) Raspberry Pi 3 -malli B ja tarvittavat lisävarusteet, kuten näppäimistö ja hiiri

2) Raspberry Pi NoIR (ei infrapuna) -moduuli

3) Harry Potter Wand ja heijastin kärjessä: Älä huoli, jos sinulla ei ole sellaista. Mitä tahansa, jossa on heijastin, voidaan käyttää. Joten voit käyttää mitä tahansa sauvamaista tikkua ja levittää heijastinnauhaa, maalia tai helmiä kärkeen, ja sen pitäisi toimia William Osmanin videon mukaisesti: Katso video

4) 10 infrapuna -LEDiä

5) 3D -tulostin ja valitsemasi PLA -filamentti

6) 12V - 1A seinäadapteri ja tasavirtaliitin

7) Servomoottori

8) Vanha laatikko ja puola pyörän pyörästä

9) Kuuma liimapistooli

10) Tulosteita joistakin Harry Potteriin liittyvistä logoista ja kuvista kiiltävälle paperiarkille

11) Vihreät ja keltaiset samettilevyt.

HUOMAUTUS: Yritin myös käyttää vanhaa tavallista verkkokameraa pimeänäköön poistamalla sen infrapunasuodattimen, mutta päädyin vahingoittamaan/siirtämään objektiivin, mikä vaikutti videon laatuun suuresti, enkä voinut käyttää sitä. Mutta jos haluat kokeilla sitä, voit käydä läpi tämän suuren opastettavan napsauttamalla tätä

Vaihe 2: Asenna OpenCV -moduuli

Nyt on ensimmäinen ja luultavasti pisin vaihe koko projektissa: OpenCV -moduulin asentaminen ja rakentaminen Raspberry Pi -laitteeseesi.

OpenCV -moduulin riippuvuuksien asennus ei vie paljon aikaa, mutta rakennusprosessi voi kestää jopa 2-3 tuntia !! Joten, solki ylös !!: P

Internetissä on monia opetusohjelmia, joiden avulla voit asentaa OpenCV 4.1.0 -moduulin. Tässä on linkki seuraamaani linkkiin: Klikkaa tästä

HUOMAUTUS: Suosittelen voimakkaasti OpenCV -moduulin asentamista virtuaaliseen ympäristöön opetusohjelman mukaisesti, koska se estää erilaisia ristiriitoja, joita voi ilmetä eri moduulien riippuvuuksien asentamisen tai python -versioiden kanssa työskentelyn vuoksi.

Vaihe 3: Kameratelineen tulostaminen

Kameratelineen tulostaminen
Kameratelineen tulostaminen
Kameratelineen tulostaminen
Kameratelineen tulostaminen
Kameratelineen tulostaminen
Kameratelineen tulostaminen

NoIR -pikakamerassa ei ole infrapunasuodatinta, joten sitä voidaan käyttää pimeänäkökamerana, mutta siitä puuttuu silti infrapunavalonlähde. Kaikissa pimeänäkökameroissa on oma infrapunavalonlähde, joka räjäyttää pimeässä IR -säteet, jotka ovat paljaalle silmälle näkymättömiä, mutta kamera näkee säteet ilman infrapunasuodatinta heijastuessaan mistä tahansa kohteesta.

Tarvitsemme siis pohjimmiltaan infrapunavalonlähteen ja jotain kameran kiinnittämistä varten. Tätä varten suunnittelin yksinkertaisen 3D -mallin kohteesta, johon voimme kiinnittää kameran, jota ympäröi 10 IR -lediä ympyrässä. Malli luotiin SketchUpilla ja tulostettiin mustalla PLA: lla noin 40 minuutissa.

Vaihe 4: Kameratelineen viimeistely

Kameratelineen viimeistely
Kameratelineen viimeistely
Kameratelineen viimeistely
Kameratelineen viimeistely
Kameratelineen viimeistely
Kameratelineen viimeistely

Mallin tulostamisen jälkeen hioin sen ensin 80 -karkealla hiekkapaperilla ja aloitin sitten IR -ledien asettamisen reikiinsä yllä olevan kaavion mukaisesti.

Kiinnitin ledit paikalleen kuumalla liimalla ja liitin sitten kahden peräkkäisen ledin positiiviset ja negatiiviset johdot yhteen ja juotin ne sitten LEDien sarjayhteyden luomiseksi.

Yhden ledin positiivinen johto ja sen vieressä olevan johtimen negatiivinen johto jätettiin juottamatta 12 voltin seinäsovittimen positiivisten ja negatiivisten päiden liittämiseksi.

Vaihe 5: Koulutettu koneoppimismalli

Henkilön piirtämän kirjaimen tunnistamiseksi olen kouluttanut SVM (Support Vector Machine) -algoritmiin perustuvan koneoppimismallin käyttämällä täällä löytämääni käsinkirjoitettujen englanninkielisten aakkosten tietojoukkoa. SVM: t ovat erittäin tehokkaita koneoppimisalgoritmeja, jotka voivat antaa suuren tarkkuuden, noin 99,2% tässä tapauksessa! Lue lisää SVM -laitteista

Tietojoukko on.csv -tiedostomuoto, joka sisältää 785 saraketta ja yli 300 000 riviä, joissa jokainen rivi edustaa 28 x 28 kuvaa ja jokaisen rivin sarake sisältää kyseisen kuvan pikselin arvon ja lisäsarakkeen alku, joka sisältää tarran, numero 0–25, joista jokainen vastaa englanninkielistä kirjainta. Yksinkertaisen python -koodin avulla viipaloin tiedot saadakseni kaikki kuvat vain kahdelle haluamalleni kirjaimelle (A ja C) ja koulutin heille mallin.

Olen liittänyt koulutetun mallin (alphabet_classifier.pkl) ja myös koulutuskoodin, voit käydä sen läpi tai tehdä muutoksia mallin kouluttamiseen eri kirjaimilla tai kokeilla erilaisia algoritmeja. Ohjelman suorittamisen jälkeen se tallentaa automaattisesti koulutetun mallin samaan hakemistoon, johon koodisi on tallennettu.

Vaihe 6: Koodi, joka saa kaiken tapahtumaan

Koodi, joka saa kaiken tapahtumaan !!
Koodi, joka saa kaiken tapahtumaan !!

Koulutetun mallin luomisen jälkeen viimeinen vaihe on kirjoittaa python -ohjelma Raspberry Pi: lle, jonka avulla voimme tehdä seuraavat asiat:

  • Käytä videokameraa pikakamerasta reaaliajassa
  • Tunnista ja seuraa videossa valkoisia möykkyjä (tässä tapauksessa sauvakärki, joka syttyy pimeänäkössä)
  • Aloita liikkuvan läiskän polun jäljittäminen videossa jonkin laukaisutapahtuman jälkeen (selitetty alla)
  • Lopeta jäljitys toisen laukaisutapahtuman jälkeen (selitetty alla)
  • Palauta viimeinen kehys käyttäjän piirtämällä kuviolla
  • Suorita kehyksen esikäsittely, kuten kynnys, kohinan poisto, koon muuttaminen jne.
  • Käytä käsiteltyä viimeistä kehystä ennustamiseen.
  • Suorita jonkinlainen taikuus ohjaamalla Raspberry Pi: n GPIO: ita ennalta määrätyn mukaisesti

Tätä projektia varten olen luonut Harry Potter -aiheisen laatikon, jonka voin avata ja sulkea servomoottorilla, jota ohjaa Raspberry Pi: n GPIO. Koska kirjain 'A' tarkoittaa 'Alohamoraa' (yksi Harry Potter -elokuvien tunnetuimmista loitsuista, jonka avulla velho voi avata minkä tahansa lukon !!), jos henkilö piirtää kirjaimen A sauvalla, pi käskee servoa avaa laatikko. Jos henkilö piirtää C -kirjaimen, joka tarkoittaa sulkeutumista (koska en keksinyt sopivaa loitsua sulkemiseen tai lukitsemiseen: P), pi käskee servoa sulkemaan laatikon.

Kaikki kuva-/videokäsittelyyn liittyvät työt, kuten blob-tunnistus, blob-polun jäljittäminen, viimeisen kehyksen esikäsittely jne., Tehdään OpenCV-moduulin kautta.

Edellä mainituille laukaisutapahtumille luodaan reaaliaikaiseen videoon kaksi ympyrää, vihreä ja punainen ympyrä. Kun möykky tulee vihreän ympyrän alueelle, ohjelma alkaa jäljitellä möykkyyn kulkevaa polkua kyseisen hetken jälkeen, jolloin henkilö voi aloittaa kirjaimen luomisen. Kun möykky saavuttaa punaisen ympyrän, video pysähtyy ja viimeinen kehys välitetään toiminnolle, joka suorittaa kehyksen esikäsittelyn, jotta se on valmis ennakointia varten.

Olen liittänyt kooditiedostot tässä vaiheessa. Voit vapaasti käydä sen läpi ja tehdä muutoksia haluamallasi tavalla.

HUOMAUTUS: Minun piti luoda kaksi erillistä python -tiedostoa, jotka toimivat eri python -versioiden kanssa, joista toinen tuo OpenCV -moduulin (Python 2.7) ja toinen sklearn -moduulin (Python 3.5) ennustamista varten koulutetun mallin lataamisen jälkeen, koska OpenCV on asennettu Python 2.7 -versio, kun sklearn oli asennettu python 3.5: lle. Joten käytin aliprosessimoduulia suorittamaan HarryPotterWandsklearn.py -tiedoston (ennustamiseksi) HarryPotterWandcv.py -tiedostosta (kaikille avoimille työ- ja reaaliaikaisille videotallenteille) ja saamaan sen tuotoksen. Tällä tavalla minun on suoritettava vain HarryPotterWandcv.py -tiedosto.

Vaihe 7: Laatikon avausmekanismi

Laatikon avausmekanismi
Laatikon avausmekanismi
Laatikon avausmekanismi
Laatikon avausmekanismi
Laatikon avausmekanismi
Laatikon avausmekanismi

Minulla oli vanha punainen laatikko, jonka ympärillä käytin tätä projektia.

Laatikon avausmekanismi:

  1. Liimasin kuuman servon lähellä laatikon takapäätä pahvipalaan lähellä laatikon reunaa.
  2. Sitten otin puolan pyörän pyörästä ja liimasin sen kuumasti servon varteen.
  3. Pinnan toinen pää kiinnitettiin laatikon kanteen lankakappaleella.
  4. Servon positiivinen liitettiin Raspberry Pi: n +5V nastaan 2.
  5. Servon negatiivi liitettiin GND -nastaan 39.
  6. Servosignaali liitettiin nastaan 12

Vaihe 8: Laatikon tekeminen Harry Potter -aiheiseksi

Laatikon tekeminen Harry Potter -teemana
Laatikon tekeminen Harry Potter -teemana
Laatikon tekeminen Harry Potter -teemana
Laatikon tekeminen Harry Potter -teemana
Laatikon tekeminen Harry Potter -teemana
Laatikon tekeminen Harry Potter -teemana

Laatikon Harry Potter -aiheisen teeman tekemiseksi tulostin kiiltävälle A4 -kokoiselle arkille värikuvia eri asioista, kuten Harry Potter -logosta, Tylypahkan harjasta, jokaisen neljän talon harjasta jne., Ja liimasin ne laatikkoon eri paikkoja.

Leikkasin myös nauhoja keltaisella samettilevyllä ja liimasin ne kannen päälle, jotta laatikko saisi saman värin kuin Gryffindor House. Peitin kannen sisäpuolen ja servon pahvin vihreällä samettilevyllä. Liitin kannen sisäpuolelle lisää symboleja ja tunnuksen, joka näytti eläimiä, jotka edustavat Tylypahkan koulun jokaista taloa.

Sitten lopulta laitoin kaikki Harry Potteriin liittyvät asiat laatikkoon, joka sisälsi Gryffindor -äänenvaimentimen, päiväkirjan Tylypahkan univormulla ja vanhin sauva, jota käytettiin tässä projektissa: D

Suositeltava: