Sadržaj:

Pravi radni štapić Harryja Pottera pomoću računalnog vida: 8 koraka (sa slikama)
Pravi radni štapić Harryja Pottera pomoću računalnog vida: 8 koraka (sa slikama)

Video: Pravi radni štapić Harryja Pottera pomoću računalnog vida: 8 koraka (sa slikama)

Video: Pravi radni štapić Harryja Pottera pomoću računalnog vida: 8 koraka (sa slikama)
Video: HARRY POTTER STUDIO TOUR LONDON | COMPLETE WALK THROUGH 2024, Studeni
Anonim
Image
Image
Pravi radni štapić Harryja Pottera pomoću računalnog vida
Pravi radni štapić Harryja Pottera pomoću računalnog vida
Pravi radni štapić Harryja Pottera pomoću računalnog vida
Pravi radni štapić Harryja Pottera pomoću računalnog vida
Pravi radni štapić Harryja Pottera pomoću računalnog vida
Pravi radni štapić Harryja Pottera pomoću računalnog vida

"Svaka dovoljno napredna tehnologija ne razlikuje se od magije" - Arthur C. Clarke

Prije nekoliko mjeseci moj brat je posjetio Japan i imao pravo čarobnjačko iskustvo u Čarobnjačkom svijetu Harryja Pottera u Universal Studiosu omogućeno tehnologijom Computer Vision.

U čarobnjačkom svijetu Harryja Pottera u Universal Studiosu turisti mogu izvesti "pravu magiju" na određenim mjestima (gdje je instaliran sustav za snimanje pokreta) koristeći posebno izrađene štapiće s retro-reflektirajućim perlicama na vrhu. Štapići se mogu kupiti u pravom Ollivander's Shopu koji su potpuno isti kao oni prikazani u filmovima o Harryju Potteru, ali zapamtite: "Štapić bira čarobnjaka": P

Na tim određenim mjestima, ako osoba izvede određenu kretnju štapićem, sustav snimanja pokreta prepoznaje gestu i sve geste odgovaraju određenoj čaroliji koja uzrokuje određene aktivnosti u okolici poput uključivanja fontane itd.

Dakle, u ovom Instructableu pokazat ću kako možete stvoriti jeftin i učinkovit sustav snimanja pokreta kod kuće za izvođenje "prave magije" otvaranjem kutije pokretom štapića: D koristeći samo normalnu kameru za noćno gledanje, nešto elektronike, i neki python kod koji koristi biblioteku OpenCV Computer Vision i strojno učenje !!!

Korak 1: Osnovna ideja i potrebni dijelovi

Osnovna ideja i potrebni dijelovi
Osnovna ideja i potrebni dijelovi
Osnovna ideja i potrebni dijelovi
Osnovna ideja i potrebni dijelovi
Osnovna ideja i potrebni dijelovi
Osnovna ideja i potrebni dijelovi
Osnovna ideja i potrebni dijelovi
Osnovna ideja i potrebni dijelovi

Štapići koji su kupljeni od čarobnjačkog svijeta Harryja Pottera u Universal Studiosu imaju retroreflektirajuće zrnce na vrhu. Ove retroreflektirajuće kuglice reflektiraju veliku količinu infracrvenog svjetla koje odaje kamera u sustavu za snimanje pokreta. Dakle, ono što mi ljudi percipiramo kao ne tako osebujan vrh štapića koji se kreće u zraku, sustav za snimanje pokreta opaža kao svijetla mrlja koja se može lako izolirati u video streamu i pratiti kako bi prepoznala uzorak koji je osoba nacrtala i izvršila potrebnu radnju. Sva se ova obrada odvija u stvarnom vremenu i koristi Computer Vision i Machine Learning.

Jednostavna kamera Night Vision može se koristiti kao naša kamera za snimanje pokreta, jer također izbacuje infracrveno svjetlo koje nije vidljivo ljudima, ali se može jasno vidjeti s kamerom koja nema infracrveni filter. Dakle, video stream iz kamere ubacuje se u malinu pi koja ima python program s OpenCV -om koji se koristi za otkrivanje, izoliranje i praćenje vrha štapića. Zatim koristimo SVM (Simple Vector Machine) algoritam strojnog učenja za prepoznavanje nacrtanog uzorka i sukladno tome kontroliramo GPIO -ove maline pi za izvođenje nekih aktivnosti.

Potrebni materijali:

1) Raspberry Pi 3 model B i potrebni pribor poput tipkovnice i miša

2) Modul kamere Raspberry Pi NoIR (bez infracrvene)

3) Štapić Harryja Pottera s retroreflektorom na vrhu: Ne brinite ako ga nemate. Može se koristiti sve sa retroreflektorom. Dakle, možete upotrijebiti bilo koji štapić sličan štapiću i na vrh nanijeti retroreflektorsku traku, boju ili perle i to bi trebalo djelovati kako je prikazano u videu Williama Osmana: Pogledajte video

4) 10 infracrvenih LED dioda

5) 3D pisač i PLA filament po vašem izboru

6) 12V - 1A zidni adapter i istosmjerna utičnica

7) Servo motor

8) Stara kutija i žbica s kotača ciklusa

9) Pištolj za vruće ljepilo

10) Ispisi nekih logotipa i slika povezanih s Harryjem Potterom na sjajnom listu papira

11) Zeleni i žuti baršunasti listovi.

NAPOMENA: Također sam pokušao upotrijebiti staru redovnu web kameru za noćni vid uklanjanjem njezinog infracrvenog filtra, ali na kraju sam oštetio/pomaknuo leću što je uvelike utjecalo na kvalitetu videa i nisam ga mogao koristiti. Ali ako želite pokušati, možete proći kroz ovaj izvrstan Klikni ovdje

Korak 2: Instalirajte OpenCV modul

Vrijeme je za prvi i vjerojatno najduži korak u cijelom ovom projektu: instaliranje i izgradnja OpenCV modula u vašem Raspberry Pi.

Instalacija ovisnosti za OpenCV modul ne oduzima puno vremena, ali proces izrade može potrajati do 2 do 3 sata !! Dakle, zakopčajte se !!: P

Na mreži postoji mnogo vodiča koje možete slijediti za instaliranje OpenCV 4.1.0 modula. Evo veze one koju sam slijedio: Kliknite ovdje

NAPOMENA: Toplo preporučujem instalaciju OpenCV modula u virtualnom okruženju kako je prikazano u vodiču jer će spriječiti različite vrste sukoba koji se mogu dogoditi zbog instaliranja ovisnosti različitih modula ili tijekom rada s različitim verzijama pythona.

Korak 3: Ispis nosača kamere

Ispis nosača kamere
Ispis nosača kamere
Ispis nosača kamere
Ispis nosača kamere
Ispis nosača kamere
Ispis nosača kamere

NoIR pikamera nema infracrveni filter, pa se može koristiti kao kamera za noćno osmatranje, ali još uvijek nema izvor infracrvene svjetlosti. Sve kamere za noćno osmatranje imaju vlastiti izvor infracrvene svjetlosti koji izbacuje IC zrake u mraku koje su nevidljive golim okom, ali zrake se mogu vidjeti kamerom bez infracrvenog filtra nakon što se odbiju od bilo kojeg objekta.

Dakle, u osnovi nam treba infracrveni izvor svjetlosti i nešto na što ćemo montirati kameru. Za to sam dizajnirao jednostavan 3D model objekta na koji bismo mogli postaviti kameru koju ćemo okružiti s 10 IC dioda u krug. Model je kreiran pomoću programa SketchUp i otisnut s Black PLA za oko 40 minuta.

Korak 4: Dovršavanje montaže kamere

Dovršavanje montaže kamere
Dovršavanje montaže kamere
Dovršavanje montaže kamere
Dovršavanje montaže kamere
Dovršavanje montaže kamere
Dovršavanje montaže kamere

Nakon ispisa modela, prvo sam ga izbrusio brusnim papirom granulacije 80, a zatim počeo postavljati IC diode u njihove rupe prema gore navedenom dijagramu.

Osigurao sam LED diode vrućim ljepilom na njihovom mjestu, a zatim spojio pozitivne i negativne vodiče dvije uzastopne LED diode, a zatim ih lemio kako bih stvorio serijsko povezivanje LED dioda.

Pozitivni vod jedne žice i negativna žica žice pored nje na dnu ostavljeni su lemljeni kako bi se pozitivni i negativni kraj spojili sa 12-voltnim zidnim adapterom.

Korak 5: Model uvježbanog strojnog učenja

U svrhu prepoznavanja slova koje je osoba nacrtala, obučio sam model strojnog učenja koji se temelji na algoritmu Support Vector Machine (SVM) koristeći Dataset ručno napisanih engleskih abeceda koje sam ovdje pronašao. SVM su vrlo učinkoviti algoritmi strojnog učenja koji mogu dati visoku točnost, u ovom slučaju oko 99,2% !! Pročitajte više o SVM -ovima

Skup podataka je u obliku.csv datoteke koja sadrži 785 stupaca i više od 300 000 redaka gdje svaki redak predstavlja sliku veličine 28 x 28, a svaki stupac u tom retku sadrži vrijednost tog piksela za tu sliku s dodatnim stupcem u početak koji sadrži oznaku, broj od 0 do 25, od kojih svaki odgovara engleskom slovu. Putem jednostavnog Python koda izrezao sam podatke kako bih dobio sve slike samo za 2 slova (A i C) koje sam želio i obučio model za njih.

Priložio sam obučeni model (alphabet_classifier.pkl), a također i kôd za obuku slobodno ga prođite ili unesite bilo kakve izmjene za obuku modela s različitim slovima ili isprobajte različite algoritme. Nakon pokretanja programa, automatski sprema obučeni model u isti direktorij u koji je spremljen vaš kôd.

Korak 6: Kod koji čini da se sve dogodi

Kodeks koji čini da se sve dogodi !!
Kodeks koji čini da se sve dogodi !!

Nakon izrade obučenog modela, posljednji korak je pisanje python programa za našu Raspberry Pi koji nam omogućuje sljedeće:

  • Pristupite video zapisu sa kamere u stvarnom vremenu
  • Otkrijte i pratite bijele mrlje (u ovom slučaju vrh štapića koji svijetli u noćnom vidu) u videu
  • Počnite pratiti putanju pokretne mrlje u videozapisu nakon nekog okidača (objašnjeno u nastavku)
  • Zaustavi praćenje nakon drugog događaja okidača (objašnjeno u nastavku)
  • Vratite posljednji okvir s uzorkom koji je nacrtao korisnik
  • Izvršite prethodnu obradu na okviru, poput postavljanja pragova, uklanjanja šuma, mijenjanja veličine itd.
  • Za predviđanje upotrijebite obrađeni zadnji okvir.
  • Učinite neku vrstu čarolije kontroliranjem GPIO -a Raspberry Pi prema predviđanju

Za ovaj projekt stvorio sam kutiju s temom Harry Potter koju mogu otvoriti i zatvoriti pomoću servo motora koji kontrolira GPIO Raspberry Pi. Budući da slovo 'A' znači 'Alohamora' (jedna od najpoznatijih čarolija iz filmova o Harryju Potteru koja čarobnjaku omogućuje otvaranje bilo koje brave !!), ako osoba izvuče slovo A štapićem, pi zapovijeda servo da otvori kutiju. Ako osoba nacrta slovo 'C' koje označava zatvaranje (jer mi nije palo na pamet niti jedna prikladna čarolija koja se koristi za zatvaranje ili zaključavanje: P), pi zapovijeda servo da zatvori okvir.

Sav posao vezan uz obradu slike/videa, poput otkrivanja mrlja, praćenja putanje mrlje, predprocesiranja posljednjeg kadra itd., Obavlja se putem OpenCV modula.

Za gore navedene događaje okidača, na videozapisu u stvarnom vremenu stvaraju se dva kruga, zeleni i crveni krug. Kad mrlja uđe u područje unutar zelenog kruga, program počinje trasirati put kojim je mrlja krenula nakon tog trenutka dopuštajući osobi da počne stvarati slovo. Kad mrlja dosegne crveni krug, videozapis se zaustavlja i posljednji kadar se prosljeđuje funkciji koja vrši prethodnu obradu okvira kako bi bila spremna za predviđanje.

U ovom sam koraku priložio datoteke koda. Slobodno prođite kroz to i unesite sve promjene kako želite.

NAPOMENA: Morao sam stvoriti dvije zasebne python datoteke koje rade s različitim verzijama pythona, jednu koja uvozi OpenCV modul (Python 2.7) i drugu koja uvozi sklearn modul (Python 3.5) za predviđanje nakon učitavanja obučenog modela jer je moj OpenCV instaliran za verziju Pythona 2.7 dok je sklearn instaliran za python 3.5. Dakle, koristio sam modul potprocesa da pokrenem datoteku HarryPotterWandsklearn.py (za predviđanje) iz HarryPotterWandcv.py (za sav rad na opencv -u i video snimanje u stvarnom vremenu) i dobijem njezin ispis. Na ovaj način moram pokrenuti samo datoteku HarryPotterWandcv.py.

Korak 7: Mehanizam otvaranja kutije

Mehanizam otvaranja kutije
Mehanizam otvaranja kutije
Mehanizam otvaranja kutije
Mehanizam otvaranja kutije
Mehanizam otvaranja kutije
Mehanizam otvaranja kutije

Oko mene je ležala stara kutija u crvenoj boji koju sam koristio za ovaj projekt.

Za mehanizam otvaranja kutije:

  1. Vruće sam zalijepio servo blizu stražnjeg kraja kutije na komad kartona blizu ruba kutije.
  2. Zatim sam uzeo žbicu s kotača ciklusa i vruće je zalijepio za krak servo pogona.
  3. Drugi kraj žbica pričvršćen je na poklopac kutije komadom žice.
  4. Pozitivna strana servoa bila je spojena na +5V Pin 2 na Raspberry Pi.
  5. Negativ servo spojen je na GND Pin 39.
  6. Signal servoa spojen je na pin 12

Korak 8: Izrada kutije s temom Harry Potter

Izrada kutije s temom Harry Potter
Izrada kutije s temom Harry Potter
Izrada kutije s temom Harry Potter
Izrada kutije s temom Harry Potter
Izrada kutije s temom Harry Potter
Izrada kutije s temom Harry Potter

Za izradu kutije s temom Harry Potter, ispisao sam neke slike u boji različitih stvari, poput logotipa Harryja Pottera, grba Hogwartsa, grba svake od četiri kuće itd. Na sjajnom listu veličine A4 i zalijepio ih na kutiju u raznim mjesta.

Također sam upotrijebio žuti baršunasti lim za rezanje traka i zalijepio ih na poklopac kako bih kutiji dao istu boju kao i u kući Gryffindor. Unutrašnjost poklopca i kartona za servo pokrio sam zelenim baršunastim listom. S unutarnje strane poklopca zalijepio sam još simbola i amblem koji prikazuje životinje koje predstavljaju svaku kuću škole Hogwarts.

Zatim sam napokon stavio sve svoje stvari vezane uz Harry Pottera u kutiju koja je uključivala prigušivač Gryffindor, dnevnik s uniformom Hogwartsa i stariji štapić korišteni u ovom projektu: D

Preporučeni: