Sisukord:

Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil: 8 sammu (piltidega)
Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil: 8 sammu (piltidega)

Video: Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil: 8 sammu (piltidega)

Video: Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil: 8 sammu (piltidega)
Video: Tehdään TAIKASAUVA arvonnan voittajalle! ✨ #harrypotter 2024, Juuni
Anonim
Image
Image
Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil
Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil
Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil
Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil
Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil
Tõeline töötav Harry Potteri võlukepp arvutinägemuse abil

"Igasugune piisavalt arenenud tehnoloogia on maagiast eristamatu" - Arthur C. Clarke

Mõni kuu tagasi külastas mu vend Jaapanit ja sai tõelise võlurikogemuse Universal Studios Harry Potteri võlurite maailmas, mis sai võimalikuks Computer Visioni tehnoloogia abil.

Universal Studios Harry Potteri võlurite maailmas saavad turistid teatud kohtades (kuhu on paigaldatud liikumisvõtte süsteem) teha tõelist maagiat, kasutades selleks spetsiaalselt valmistatud võlukeppe, mille otsas on helkurhelmed. Vardaid saab osta tõelisest Ollivanderi poest, mis on täpselt sellised, nagu näidatud Harry Potteri filmides, kuid pidage meeles: "võlukepp valib võluri": P

Nendes kindlates kohtades, kui inimene sooritab teatud žesti võlukepiga, tunneb liikumisvõtte süsteem žesti ära ja kõik liigutused vastavad teatud loitsule, mis põhjustab ümbritsevas piirkonnas teatud tegevusi, näiteks purskkaevu sisselülitamine jne.

Niisiis, selles juhendis näitan, kuidas saate kodus luua odava ja tõhusa liikumissüsteemi, et teostada "tõelist maagiat", avades oma võlukepi liigutusega karbi: D kasutades tavalist Öise nägemise kaamerat, mõnda elektroonikat, ja mõned python -koodid OpenCV Computer Vision raamatukogu ja masinõppe abil !!!

Samm: põhiidee ja vajalikud osad

Põhiidee ja vajalikud osad
Põhiidee ja vajalikud osad
Põhiidee ja vajalikud osad
Põhiidee ja vajalikud osad
Põhiidee ja vajalikud osad
Põhiidee ja vajalikud osad
Põhiidee ja vajalikud osad
Põhiidee ja vajalikud osad

Universaalses stuudios Harry Potteri võlurite maailmast ostetud võlukeppide otsas on helkiv helmes. Need helkivad helmed peegeldavad suurel hulgal infrapunavalgust, mille kaamera annab välja liikumise jäädvustamise süsteemis. Niisiis, mida meie, inimesed, tajume õhus liikuva võlukepi mitte nii eristava otsana, tajub liikumisvõtte süsteem. ereda plekina, mida saab videovoos hõlpsalt eraldada ja jälgida, et ära tunda inimese joonistatud muster ja sooritada nõutud toiming. Kogu see töötlemine toimub reaalajas ning kasutab arvuti nägemist ja masinõpet.

Liigutuste jäädvustamiseks saab meie kaamerana kasutada lihtsat öise nägemise kaamerat, kuna see lööb välja ka inimestele nähtamatu infrapunavalguse, kuid on selgelt nähtav kaameraga, millel pole infrapunafiltrit. Niisiis, kaamerast saadav videovoog sisestatakse vaarikapi pi, millel on OpenCV -d käivitav python -programm, mida kasutatakse võlukepi otsiku tuvastamiseks, eraldamiseks ja jälgimiseks. Seejärel kasutame masinõppe SVM -i (Simple Vector Machine) algoritmi, et tuvastada joonistatud muster ja vastavalt juhtida mõningate toimingute tegemiseks vaarika pi GPIO -sid.

Nõutavad materjalid:

1) A Raspberry Pi 3 mudel B ja vajalikud tarvikud, näiteks klaviatuur ja hiir

2) Raspberry Pi NoIR (infrapuna puudub) kaameramoodul

3) Harry Potteri võlukepp, mille otsas on helkur: ärge muretsege, kui teil seda pole. Kasutada võib kõike, millel on helkur. Niisiis, võite kasutada mis tahes võlukepitaolist pulka ja rakendada otsale helkurlinti, värvi või helmeid ning see peaks toimima, nagu on näidatud William Osmani videos: Vaata videot

4) 10 infrapuna LED -i

5) 3D -printer ja teie valitud PLA -hõõgniit

6) 12V - 1A seinaadapter ja alalisvoolu pistik

7) Servomootor

8) Vana kast ja koda rattarattalt

9) Kuum liimipüstol

10) Mõned Harry Potteriga seotud logode ja piltide väljatrükid läikivale paberilehele

11) Rohelised ja kollased sametlinad.

MÄRKUS. Proovisin öise nägemise jaoks kasutada ka vana tavalist veebikaamerat, eemaldades selle infrapunafiltri, kuid lõpuks kahjustasin/nihutasin objektiivi, mis mõjutas oluliselt video kvaliteeti ja ma ei saanud seda kasutada. Aga kui soovite seda proovida, võite selle suurepärase juhendatava klõpsata siin

Samm: installige OpenCV moodul

Nüüd on käes selle projekti esimene ja ilmselt pikim samm: OpenCV mooduli installimine ja ehitamine teie Raspberry Pi -sse.

OpenCV mooduli sõltuvuste installimine ei võta palju aega, kuid koostamisprotsess võib kesta kuni 2 kuni 3 tundi !! Nii, pange kinni !!: P

Internetis on palju õpetusi, mida saate järgida OpenCV 4.1.0 mooduli installimiseks. Siin on link sellele, mida ma järgisin: klõpsake siin

MÄRKUS. Soovitan tungivalt installida OpenCV moodul virtuaalsesse keskkonda, nagu õpetuses näidatud, kuna see hoiab ära mitmesugused konfliktid, mis võivad tekkida erinevate moodulite sõltuvuste installimisel või python erinevate versioonidega töötamisel.

3. samm. Kaamera kinnituse printimine

Kaamera kinnituse printimine
Kaamera kinnituse printimine
Kaamera kinnituse printimine
Kaamera kinnituse printimine
Kaamera kinnituse printimine
Kaamera kinnituse printimine

NoIR picamera ei sisalda infrapunafiltrit, seega saab seda kasutada öise nägemise kaamerana, kuid sellel puudub infrapuna valgusallikas. Kõigil öise nägemise kaameratel on oma infrapunavalgusallikas, mis lööb pimedas välja palja silmaga nähtamatuid IR -kiirgusi, kuid kaamera saab pärast mis tahes objektilt peegeldumist näha kiiri ilma infrapunafiltrita.

Niisiis, meil on põhimõtteliselt vaja infrapunavalgusallikat ja midagi kaamera paigaldamiseks. Selleks kavandasin objekti lihtsa 3D -mudeli, millele saaksime paigaldada kaamera, mida ümbritseme ringis 10 IR -valgusdioodiga. Mudel loodi SketchUpi abil ja trükiti musta PLA -ga umbes 40 minutiga.

4. samm: kaamera kinnituse viimistlemine

Kaamera kinnituse viimistlemine
Kaamera kinnituse viimistlemine
Kaamera kinnituse viimistlemine
Kaamera kinnituse viimistlemine
Kaamera kinnituse viimistlemine
Kaamera kinnituse viimistlemine

Pärast mudeli printimist lihvisin selle esmalt 80 -liivapaberiga ja hakkasin seejärel IR -valgusdioode nende aukudesse asetama vastavalt ülaltoodud skeemile.

Kinnitasin valgusdioodid oma kohale mõne kuuma liimiga ja ühendasin seejärel kahe järjestikuse LED -i positiivsed ja negatiivsed juhtmed kokku ja jootsin need, et luua LED -ide jadaühendus.

Ühe juhtme positiivne juhe ja selle kõrval asuva juhtme negatiivne juhe põhjas jäeti jootmata, et ühendada 12-voldise seinaadapteri positiivsed ja negatiivsed otsad.

5. samm: koolitatud masinõppe mudel

Inimese joonistatud tähe äratundmiseks treenisin masinõppemudelit, mis põhineb tugivektormasina (SVM) algoritmil, kasutades siin leitud käsitsi kirjutatud inglise tähestiku andmestikku. SVM -id on väga tõhusad masinõppe algoritmid, mis võivad anda suure täpsuse, antud juhul umbes 99,2%! Lugege lisateavet SVM -ide kohta

Andmekogum on.csv -faili kujul, mis sisaldab 785 veergu ja üle 300 000 rea, kus iga rida tähistab 28 x 28 kujutist ja selle rea iga veerg sisaldab selle pildi piksli väärtust koos täiendava veeruga algus, mis sisaldab silti, number 0–25, millest igaüks vastab ingliskeelsele tähele. Lihtsa python -koodi abil lõikasin andmed viiludeks, et saada kõik pildid ainult kahe tähe (A ja C) jaoks, mida tahtsin, ja koolitasin neile mudeli.

Olen lisanud koolitatud mudeli (alphabet_classifier.pkl) ja ka koolituskoodi, minge julgelt läbi või tehke muudatusi mudeli koolitamiseks erinevate tähtedega või proovige erinevaid algoritme. Pärast programmi käivitamist salvestab see koolitatud mudeli automaatselt samasse kataloogi, kuhu teie kood salvestatakse.

6. samm: kood, mis paneb kõik juhtuma

Kood, mis paneb kõik juhtuma !!
Kood, mis paneb kõik juhtuma !!

Pärast koolitatud mudeli loomist on viimane samm kirjutada meie Raspberry Pi jaoks python -programm, mis võimaldab meil teha järgmist.

  • Juurdepääs videokaameratele reaalajas
  • Tuvastage ja jälgige videos valgeid plekke (antud juhul pulk, mis süttib öises nägemises)
  • Alustage pärast mõne käivitussündmuse jälgimist videos liikuva pleki teekonda (selgitatud allpool)
  • Lõpetage jälgimine pärast teist käivitussündmust (selgitatud allpool)
  • Tagastage viimane kaader koos kasutaja joonistatud mustriga
  • Tehke raami eeltöötlus, näiteks lävimine, müra eemaldamine, suuruse muutmine jne.
  • Kasutage ennustamiseks töödeldud viimast kaadrit.
  • Tehke mingit maagiat, kontrollides Raspberry Pi GPIO -sid vastavalt ettekirjutusele

Selle projekti jaoks lõin Harry Potteri teemalise kasti, mida saan avada ja sulgeda, kasutades servomootorit, mida juhib Raspberry Pi GPIO. Kuna täht "A" tähistab "Alohamorat" (üks kuulsamaid loitsu Harry Potteri filmidest, mis võimaldab võluril mis tahes luku avada !!), siis kui inimene tõmbab võlukepiga tähe A, käsib pi servot avage kast. Kui inimene joonistab tähe "C", mis tähistab sulgemist (kuna ma ei suutnud välja mõelda ühtegi sobivat õigekirja, mida kasutatakse sulgemiseks või lukustamiseks: P), käsib pi käsutada servo kasti sulgema.

Kõik pildi-/videotöötlusega seotud tööd, nagu blobide tuvastamine, blobi tee jälgimine, viimase kaadri eeltöötlus jne, tehakse OpenCV mooduli kaudu.

Eespool nimetatud käivitavate sündmuste jaoks luuakse reaalajas videole kaks ringi, roheline ja punane ring. Kui kämp siseneb rohelise ringi piirkonda, hakkab programm jälgima pärast seda hetke kulgenud teed, võimaldades inimesel alustada kirja loomist. Kui kämp jõuab punasele ringile, video peatub ja viimane kaader edastatakse funktsioonile, mis teostab kaadri eeltöötluse, et see oleks etteandmiseks valmis.

Lisasin selles etapis koodifailid. Minge julgelt läbi ja tehke soovitud muudatusi.

MÄRKUS. Ma pidin looma kaks eraldi pythoni faili, mis töötavad erinevate pythoni versioonidega, millest üks impordib OpenCV mooduli (Python 2.7) ja teine impordib sklearn mooduli (Python 3.5) ennustamiseks pärast koolitatud mudeli laadimist, kuna minu OpenCV installiti versioon Python 2.7, samal ajal kui sklearn oli installitud python 3.5 jaoks. Niisiis kasutasin alamprotsessi moodulit, et käivitada HarryPotterWandsklearn.py (ennustamiseks) fail HarryPotterWandcv.py (kogu avatud töö ja reaalajas videosalvestus) ja saada selle väljund. Nii pean ma käivitama ainult faili HarryPotterWandcv.py.

7. samm: kasti avamise mehhanism

Kasti avamise mehhanism
Kasti avamise mehhanism
Kasti avamise mehhanism
Kasti avamise mehhanism
Kasti avamise mehhanism
Kasti avamise mehhanism

Mul oli vana punane kast, mille ümber ma seda projekti kasutasin.

Kasti avamismehhanismi puhul:

  1. Kuuma liimisin servo karbi tagumise otsa lähedal papitükile karbi ääre lähedal.
  2. Siis võtsin tsiklirattalt kodara ja liimisin kuumalt servo käe külge.
  3. Kodara teine ots kinnitati traadi abil karbi kaane külge.
  4. Servo positiivne ühendati Raspberry Pi +5V pin 2 -ga.
  5. Servo negatiivne oli ühendatud GND tihvtiga 39.
  6. Servo signaal ühendati tihvtiga 12

8. samm: kasti tegemine Harry Potteri temaatikaga

Karpi tegemine Harry Potteri teemal
Karpi tegemine Harry Potteri teemal
Karpi tegemine Harry Potteri teemal
Karpi tegemine Harry Potteri teemal
Karpi tegemine Harry Potteri teemal
Karpi tegemine Harry Potteri teemal

Karpi Harry Potteri teemalise tegemise jaoks printisin läikivale A4 -formaadis lehele mõned värvilised pildid erinevatest asjadest, nagu Harry Potteri logo, Sigatüüka hari, iga nelja maja hari jne. kohad.

Ribade lõikamiseks kasutasin ka kollast sametist lehte ja kleepisin need kaanele, et anda karbile sama värvi kui Gryffindor House'il. Katsin kaane sisekülje ja servo jaoks mõeldud papi rohelise sametplekiga. Kaane siseküljele kleepisin rohkem sümboleid ja embleemi, mis näitasid Sigatüüka kooli kõiki maju esindavaid loomi.

Siis lõpuks toppisin kõik oma Harry Potteriga seotud asjad karpi, mis sisaldas Griffendori summutit, Sigatüüka mundriga päevikut ja selles projektis kasutatud vanemat võlukeppi: D

Soovitan: