Sadržaj:
- Korak 1: Osnovna ideja i potrebni dijelovi
- Korak 2: Instalirajte OpenCV modul
- Korak 3: Ispis nosača kamere
- Korak 4: Dovršavanje montaže kamere
- Korak 5: Model uvježbanog strojnog učenja
- Korak 6: Kod koji čini da se sve dogodi
- Korak 7: Mehanizam otvaranja kutije
- Korak 8: Izrada kutije s temom Harry Potter
Video: Pravi radni štapić Harryja Pottera pomoću računalnog vida: 8 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
"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
Š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
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
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
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
Oko mene je ležala stara kutija u crvenoj boji koju sam koristio za ovaj projekt.
Za mehanizam otvaranja kutije:
- Vruće sam zalijepio servo blizu stražnjeg kraja kutije na komad kartona blizu ruba kutije.
- Zatim sam uzeo žbicu s kotača ciklusa i vruće je zalijepio za krak servo pogona.
- Drugi kraj žbica pričvršćen je na poklopac kutije komadom žice.
- Pozitivna strana servoa bila je spojena na +5V Pin 2 na Raspberry Pi.
- Negativ servo spojen je na GND Pin 39.
- Signal servoa spojen je na pin 12
Korak 8: 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:
Premještajući portrete iz stvarnog života iz Harryja Pottera!: 11 koraka (sa slikama)
Premještajući portrete iz stvarnog života od Harryja Pottera!: &Quot; Nevjerojatno! Zadivljujuće! Ovo je poput magije! &Quot; - Gilderoy LockhartJa sam veliki obožavatelj Harryja Pottera, a jedna od stvari koje sam oduvijek volio iz Čarobnjačkog svijeta su pokretni portreti. Naletio sam na animiranu sliku Kyle Stewart-Frantz
Hakiranje Hexbug Spider XL za dodavanje računalnog vida pomoću Android pametnog telefona: 9 koraka (sa slikama)
Hakiranje Hexbug Spider XL radi dodavanja računalnog vida pomoću Android pametnog telefona: veliki sam fan originalnog Hexbuga ™ Pauk. Posjedovao sam više desetaka i sve sam ih hakirao. Kad god jedan od mojih sinova ode prijateljima ’ rođendanska zabava, prijatelj dobije Hexbug ™ pauk na dar. Hakirao sam ili
Prepoznavanje zvijezda pomoću računalnog vida (OpenCV): 11 koraka (sa slikama)
Prepoznavanje zvijezda pomoću računalnog vida (OpenCV): Ova instrukcija će vam opisati kako stvoriti program za računalni vid za automatsko prepoznavanje uzoraka zvijezda na slici. Metoda koristi biblioteku OpenCV (Open-Source Computer Vision) za stvaranje skupa obučenih HAAR kaskada koje se mogu
Radni šešir za sortiranje od Harryja Pottera: 8 koraka
Radni šešir za sortiranje od Harryja Pottera: U našem svijetu maglova ne postoji čarobni šešir koji bi nas svrstao u naše kuće. Stoga sam iskoristio ovu priliku u karanteni da napravim šešir za razvrstavanje
Stvorite pravi radni kostim (e) za iPod: 12 koraka (sa slikama)
Stvorite pravi radni kostim (e) za iPod: Na dan vjenčanja nevjesta … sve se vrti oko haljine, ali na Noć vještica … sve je u kostimu. Pa sam htio pronaći nešto oko čega bi se moja djeca mogla dogovoriti prije polaganog & započele su strateške muke njihova tate. Svi ste bili tamo