Talaan ng mga Nilalaman:
- Hakbang 1: Ang Pangunahing Idea at ang Mga Bahaging Kinakailangan
- Hakbang 2: I-install ang OpenCV Module !
- Hakbang 3: Pagpi-print sa Camera Mount
- Hakbang 4: Tinatapos ang Pag-mount ng Camera
- Hakbang 5: Ang Modelo ng Sinasanay na Machine
- Hakbang 6: Ang Code Na Gagawin Nito Lahat !
- Hakbang 7: Ang Mekanismo ng Pagbubukas ng Kahon
- Hakbang 8: Ang Paggawa ng Kahon na May Tema na Harry Potter
Video: Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision: 8 Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
"Anumang Sapat na Advanced na Teknolohiya ay Hindi makilala mula sa Magic" - Arthur C. Clarke
Ilang buwan pabalik ng aking kapatid na lalaki ay bumisita sa Japan at nagkaroon ng tunay na karanasan sa wizarding sa Wizarding World ni Harry Potter sa Universal Studios na ginawang posible sa pamamagitan ng teknolohiya ng Computer Vision.
Sa Wizarding World of Harry Potter sa Universal Studios ang mga turista ay maaaring magsagawa ng "totoong mahika" sa ilang mga lokasyon (kung saan naka-install ang system ng capture capture) gamit ang espesyal na ginawang wands na may mga retro-reflective beads sa dulo. Ang mga wands ay maaaring mabili mula sa isang tunay na Ollivander's Shop na eksaktong katulad ng ipinakita sa Harry Potter Pelikula ngunit naaalala: "Ito ang wand na pipiliin ang wizard": P
Sa mga tiyak na lokasyon kung ang tao ay gumaganap ng isang partikular na kilos na may wand, kinikilala ng system ng pagkuha ng galaw ang kilos at lahat ng kilos ay tumutugma sa isang tiyak na baybay na nagdudulot ng ilang mga aktibidad sa nakapalibot na lugar tulad ng pag-on ng fountain atbp.
Kaya, sa Instructable na ito ay ipapakita ko kung paano ka makakalikha ng isang murang at mabisang sistema ng paggalaw ng paggalaw sa bahay upang maisagawa ang "totoong mahika" sa pamamagitan ng pagbubukas ng isang kahon na may kislap ng iyong wand: D gamit lamang ang isang normal na Night Vision Camera, ilang electronics, at ilang python code gamit ang OpenCV Computer Vision library at Machine Learning !!!
Hakbang 1: Ang Pangunahing Idea at ang Mga Bahaging Kinakailangan
Ang mga wands na binili mula sa Wizarding World ni Harry Potter sa Universal Studios, ay may retroreflective bead sa kanilang dulo. Ang mga pabalik-balik na kuwintas na ito ay sumasalamin ng isang malaking halaga ng infrared light na ibinibigay ng camera sa sistema ng paggalaw ng paggalaw. Kaya, kung ano ang nakikita natin na isang tao na hindi gaanong natatanging tip ng wand na gumagalaw sa hangin, nakikita ng system ng capture ng paggalaw bilang isang maliwanag na patak na maaaring madaling ihiwalay sa video stream at subaybayan upang makilala ang pattern na iginuhit ng tao at maisagawa ang kinakailangang pagkilos. Ang lahat ng pagproseso na ito ay nagaganap sa real time at gumagamit ng Computer Vision at Machine Learning.
Ang isang simpleng camera ng Night Vision ay maaaring magamit bilang aming camera para sa paggalaw ng paggalaw dahil nagsabog din sila ng infrared light na hindi nakikita ng mga tao ngunit malinaw na makikita ng isang camera na walang Infrared Filter. Kaya, ang stream ng video mula sa camera ay pinakain sa isang raspberry pi na mayroong isang python program na tumatakbo sa OpenCV na ginagamit para sa pagtuklas, paghihiwalay at pagsubaybay sa tip ng wand. Pagkatapos ay gumagamit kami ng SVM (Simple Vector Machine) algorithm ng Pag-aaral ng Makina upang makilala ang pattern na iginuhit at naaayon sa pagkontrol sa mga GPIO ng raspberry pi upang maisagawa ang ilang mga aktibidad.
Ang Mga Kinakailangan na Materyales:
1) Isang modelo ng Raspberry Pi 3 B at mga kinakailangang accessories tulad ng keyboard at mouse
2) Raspberry Pi NoIR (Walang Infrared) Camera Module
3) Harry Potter Wand na may retroreflector sa dulo: Huwag mag-alala kung wala kang isa. Anumang may retroreflector ay maaaring magamit. Kaya, maaari mong gamitin ang anumang stick na tulad ng wand at maglagay ng retroreflector tape, pintura o kuwintas sa dulo at dapat itong gumana tulad ng ipinakita sa video ni William Osman: Panoorin ang Video
4) 10 Mga Infrared LED
5) Isang 3D printer at PLA filament na iyong pinili
6) 12V - 1A Wall Adapter at DC jack
7) Isang servo motor
8) Isang Lumang Kahon at isang Spoke mula sa gulong ng isang siklo
9) Isang mainit na baril ng pandikit
10) Mga printout ng ilang mga nauugnay na logo at imahe ng Harry Potter sa Makintab na Sheet ng papel
11) Mga sheet na berde at dilaw na pelus.
TANDAAN: Sinubukan ko rin ang paggamit ng isang lumang regular na webcam para sa night vision sa pamamagitan ng pag-alis ng Infrared Filter nito ngunit napunta sa pagkasira / pag-aalis ng lens nito na apektado ang kalidad ng video at hindi ko ito magagamit. Ngunit kung nais mong bigyan ito ng shot, maaari kang dumaan sa mahusay na itinuturo na Mag-click Dito
Hakbang 2: I-install ang OpenCV Module !
Ngayon na para sa una at marahil ang pinakamahabang hakbang ng buong proyekto na ito: Ang pag-install at pagbuo ng module ng OpenCV sa iyong Raspberry Pi.
Ang pag-install ng mga dependency para sa OpenCV module ay hindi tumatagal ng maraming oras ngunit ang proseso ng pagbuo ay maaaring tumagal ng hanggang 2 hanggang 3 oras !! Kaya, Buckle Up !!: P
Maraming mga tutorial sa online na maaari mong sundin upang mai-install ang OpenCV 4.1.0 module. Narito ang link ng isa na sinundan ko: Mag-click Dito
TANDAAN: Masidhi kong inirerekumenda ang pag-install ng module ng OpenCV sa virtual na kapaligiran tulad ng ipinakita sa tutorial dahil maiiwasan nito ang iba't ibang mga uri ng salungatan na maaaring mangyari dahil sa pag-install ng mga dependency ng iba't ibang mga module o habang nagtatrabaho sa iba't ibang mga bersyon ng sawa.
Hakbang 3: Pagpi-print sa Camera Mount
Ang NoIR picamera ay walang infrared filter, samakatuwid ay maaaring magamit bilang isang night vision camera ngunit wala pa rin itong mapagkukunan ng infrared light. Ang lahat ng mga night vision camera ay mayroong sariling infrared light source na pumutok sa mga sinag ng IR sa dilim na hindi nakikita ng mata ngunit ang mga sinag ay makikita ng camera na walang infrared filter matapos na masasalamin mula sa anumang bagay.
Kaya, kailangan namin ng isang Infrared Light Source at isang bagay upang mai-mount ang camera. Para sa mga ito ay dinisenyo ko ang isang simpleng modelo ng 3D ng isang bagay kung saan maaari naming mai-mount ang camera na papalibutan namin ng 10 IR leds sa isang bilog. Ang modelo ay nilikha sa SketchUp at naka-print sa Black PLA sa loob ng 40 minuto.
Hakbang 4: Tinatapos ang Pag-mount ng Camera
Matapos i-print ang modelo ay una kong binasahin ito ng isang 80 grit sand paper at pagkatapos ay nagsimulang ilagay ang mga IR leds sa kanilang mga butas ayon sa diagram na ibinigay sa itaas.
Siniguro ko ang mga leds sa kanilang lugar na may ilang mainit na pandikit at pagkatapos ay sumali sa positibo at negatibong mga lead ng dalawang magkakasunod na leds magkasama at pagkatapos ay hinangin ang mga ito upang lumikha ng isang serye na koneksyon ng mga leds.
Ang positibong tingga ng isang pinangunahan at ang negatibong tingga ng humantong sa tabi nito sa ilalim ay naiwang walang solder upang maiugnay ang positibo at negatibong mga dulo mula sa 12 volt wall adapter.
Hakbang 5: Ang Modelo ng Sinasanay na Machine
Para sa layunin ng pagkilala sa liham na iginuhit ng isang tao, sinanay ko ang isang modelo ng pag-aaral ng makina batay sa algorithm ng Support Vector Machine (SVM) gamit ang isang Dataset ng sulat-kamay na mga alpabetong Ingles na nakita ko dito. Ang mga SVM ay napakahusay ng mga algorithm ng pag-aaral ng makina na maaaring magbigay ng isang mataas na kawastuhan, sa paligid ng 99.2% sa kasong ito !! Magbasa nang higit pa tungkol sa mga SVM
Ang Dataset ay nasa anyo ng ang simula na naglalaman ng label, isang numero mula 0 hanggang 25, bawat isa ay tumutugma sa isang titik na ingles. Sa pamamagitan ng isang simpleng code ng sawa, hiniwa ko ang data upang makuha ang lahat ng mga imahe para lamang sa 2 titik (A at C) na nais ko at sinanay ang isang modelo para sa kanila.
Inilakip ko ang sinanay na modelo (alpabeto_classifier.pkl) at din ang code ng pagsasanay na huwag mag-atubiling dumaan dito o gumawa ng anumang mga pagbabago para sa pagsasanay ng modelo na may iba't ibang mga titik o subukan ang iba't ibang mga algorithm. Matapos patakbuhin ang programa, awtomatiko nitong nai-save ang bihasang modelo sa parehong direktoryo kung saan nai-save ang iyong code.
Hakbang 6: Ang Code Na Gagawin Nito Lahat !
Matapos likhain ang sinanay na modelo, ang pangwakas na hakbang ay magsulat ng isang programa sa sawa para sa aming Raspberry Pi na nagpapahintulot sa amin na gawin ang mga sumusunod:
- I-access ang video na form sa picamera sa realtime
- Tuklasin at subaybayan ang mga puting bloke (sa kasong ito ang dulo ng wand na sumisindi sa pangitain sa gabi) sa video
- Simulang subaybayan ang landas ng gumagalaw na patak sa video pagkatapos ng ilang kaganapan ng pag-trigger (ipinaliwanag sa ibaba)
- Ihinto ang pagsubaybay pagkatapos ng isa pang kaganapan ng pag-trigger (ipinaliwanag sa ibaba)
- Ibalik ang huling frame na may pattern na iginuhit ng gumagamit
- Magsagawa ng paunang pagproseso sa frame tulad ng threshold, pag-aalis ng ingay, pagbabago ng laki atbp.
- Gamitin ang naprosesong huling frame para sa hula.
- Gumawa ng ilang uri ng mahika sa pamamagitan ng pagkontrol sa mga GPIO ng Raspberry Pi ayon sa predcition
Para sa proyektong ito lumikha ako ng isang kahon na may temang Harry Potter na maaari kong buksan at isara gamit ang isang motor na servo na kinokontrol ng GPIO ng Raspberry Pi. Dahil ang letrang 'A' ay kumakatawan sa 'Alohamora' (isa sa pinakatanyag na spell mula sa mga pelikulang Harry Potter na nagpapahintulot sa isang wizard na buksan ang anumang kandado !!), kung ang isang tao ay gumuhit ng titik A kasama ang wand, ang pi ay nag-uutos sa servo na buksan ang Kahon. Kung iginuhit ng tao ang titik na 'C' na nangangahulugang malapit (dahil hindi ko maisip ang anumang naaangkop na spell na ginamit para sa pagsara o pag-lock: P), inuutusan ng pi ang servo upang isara ang kahon.
Ang lahat ng gawaing nauugnay sa pagproseso ng imahe / video, tulad ng pagtuklas ng blob, pagsunod sa landas ng patak, paunang pagproseso ng huling frame atbp, ay ginagawa sa pamamagitan ng module ng OpenCV.
Para sa mga kaganapan ng pag-trigger na nabanggit sa itaas, dalawang lupon ang nilikha sa real-time na video, isang berde at isang pulang bilog. Kapag pumasok ang patak sa rehiyon sa loob ng berdeng bilog, nagsisimulang subaybayan ng programa ang landas na tinahak ng patak pagkatapos ng sandaling iyon na pinapayagan ang tao na simulang lumikha ng liham. Kapag naabot ng patak ang pulang bilog, tumitigil ang video at ang huling frame ay naipasa sa isang pagpapaandar na nagsasagawa ng paunang pagproseso sa frame upang maging handa ito sa predcition.
Inilakip ko ang mga file ng code sa hakbang na ito. Huwag mag-atubiling dumaan dito at gumawa ng anumang mga pagbabago ayon sa gusto mo.
TANDAAN: Kailangan kong lumikha ng dalawang magkakahiwalay na mga file ng sawa na nagtatrabaho sa iba't ibang mga bersyon ng sawa, isa na ina-import ang module ng OpenCV (Python 2.7) at iba pa na nag-i-import ng sklearn module (Python 3.5) para sa hula pagkatapos na mai-load ang sinanay na modelo, dahil naka-install ang aking OpenCV para sa ang bersyon ng Python 2.7 habang ang sklearn ay na-install para sa python 3.5. Kaya, ginamit ko ang module ng subprocess upang patakbuhin ang file na HarryPotterWandsklearn.py (para sa hula) mula sa HarryPotterWandcv.py (para sa lahat ng opencv work at realtime video recording) at makuha ang output nito. Sa ganitong paraan kailangan ko lamang patakbuhin ang HarryPotterWandcv.py file.
Hakbang 7: Ang Mekanismo ng Pagbubukas ng Kahon
Mayroon akong isang lumang pulang kulay na kahon na nakahiga kung saan ginamit ko para sa proyektong ito.
Para sa mekanismo ng Pagbubukas ng Kahon:
- Mainit akong nakadikit ng isang servo malapit sa likurang dulo ng kahon sa isang piraso ng karton na malapit sa labi ng kahon.
- Pagkatapos ay kumuha ako ng pagsasalita mula sa gulong ng isang ikot at mainit na nakadikit ito sa braso ng servo.
- Ang kabilang dulo ng pagsasalita ay nakakabit sa talukap ng kahon gamit ang isang piraso ng kawad.
- Ang positibo ng servo ay konektado sa + 5V Pin 2 sa Raspberry Pi.
- Ang negatibo ng servo ay konektado sa GND Pin 39.
- Ang signal ng servo ay konektado sa Pin 12
Hakbang 8: Ang Paggawa ng Kahon na May Tema na Harry Potter
Para sa paggawa ng tema na Kahon Harry Potter, nag-print ako ng ilang mga may kulay na imahe ng iba't ibang mga bagay tulad ng Harry Potter Logo, The Hogwarts Crest, The Crest ng bawat isa sa apat na bahay atbp sa makintab na sheet na A4 at inilagay ang mga ito sa kahon sa iba't ibang mga lugar.
Gumamit din ako ng isang dilaw na kulay na pelus na sheet upang gupitin ang mga piraso at i-paste ang mga ito sa takip upang bigyan ang kahon ng parehong kulay sa kanila tulad ng sa Gryffindor House. Tinakpan ko ang loob ng takip at ang karton para sa servo na may berdeng sheet na pelus. Sa loob ng takip ay nag-paste ako ng maraming mga simbolo at isang sagisag na nagpapakita ng mga hayop na kumakatawan sa bawat bahay ng Hogwarts School.
Pagkatapos sa wakas ay pinalamanan ko ang lahat ng aking mga kaugnay na bagay ni Harry Potter sa kahon na may kasamang isang Gryffindor muffler, isang talaarawan na may unipormeng Hogwarts at ang Elder Wand na ginamit sa proyektong ito: D
Inirerekumendang:
Pag-hack sa Hexbug Spider XL upang Magdagdag ng Computer Vision Gamit ang isang Android Smartphone: 9 Mga Hakbang (na may Mga Larawan)
Pag-hack sa Hexbug Spider XL upang Magdagdag ng Computer Vision Gamit ang isang Android Smartphone: Ako ay isang malaking tagahanga ng orihinal na Hexbug ™ Spider. Nagmamay-ari ako ng higit sa isang dosenang at na-hack silang lahat. Anumang oras ang isa sa aking mga anak na lalaki ay pupunta sa isang kaibigan ’ birthday party, ang kaibigan ay nakakakuha ng Hexbug ™ gagamba bilang isang regalo. Na-hack ko ang o
I-upgrade ang DIY Mini DSO sa isang Tunay na Oscilloscope Na May Kahanga-hangang Mga Tampok: 10 Hakbang (na may Mga Larawan)
I-upgrade ang DIY Mini DSO sa isang Tunay na Oscilloscope Na May Kahanga-hangang Mga Tampok: Huling oras na ibinahagi ko kung paano gumawa ng isang Mini DSO sa MCU. Upang malaman kung paano ito binuo hakbang-hakbang, mangyaring sumangguni sa aking dating naituro: https: //www.instructables. com / id / Make-Your-Own-Osc … Dahil maraming tao ang interesado sa proyektong ito, ginugol ko ang ilang ti
Pagkilala sa Bituin Gamit ang Computer Vision (OpenCV): 11 Mga Hakbang (na may Mga Larawan)
Pagkilala sa Star Gamit ang Computer Vision (OpenCV): Ang itinuturo na ito ay ilalarawan sa iyo kung paano lumikha ng isang programa sa paningin ng computer upang awtomatikong makilala ang mga pattern ng bituin sa isang imahe. Gumagamit ang pamamaraan ng library ng OpenCV (Open-Source Computer Vision) upang lumikha ng isang hanay ng mga bihasang HAAR cascade na maaaring
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c
Isang Talagang Simple / madali / hindi Komplikadong Paraan upang Gawing Mga Tao / tao / hayop / robot na Mukhang Tunay na cool / maliwanag ang Heat Vision (Kulay ng Iyong Pinili) Gamit ang GIMP: 4 na Hakbang
Isang Talagang Simple / madali / hindi Komplikadong Paraan upang Gawing Ang Mga Tao / tao / hayop / robot na Mukhang Talagang cool / maliwanag ang Heat Vision (Kulay ng Iyong Pinili) Gamit ang GIMP: Basahin … ang … pamagat