Talaan ng mga Nilalaman:

Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision: 8 Hakbang (na may Mga Larawan)
Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision: 8 Hakbang (na may Mga Larawan)

Video: Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision: 8 Hakbang (na may Mga Larawan)

Video: Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision: 8 Hakbang (na may Mga Larawan)
Video: 3-часовой марафон паранормальных и необъяснимых историй 2024, Nobyembre
Anonim
Image
Image
Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision
Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision
Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision
Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision
Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision
Tunay na Nagtatrabaho Harry Potter Wand Gamit ang Computer Vision

"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 Pangunahing Idea at ang Mga Bahaging Kinakailangan
Ang Pangunahing Idea at ang Mga Bahaging Kinakailangan
Ang Pangunahing Idea at ang Mga Bahaging Kinakailangan
Ang Pangunahing Idea at ang Mga Bahaging Kinakailangan
Ang Pangunahing Idea at ang Mga Bahaging Kinakailangan
Ang Pangunahing Idea at ang Mga Bahaging Kinakailangan
Ang Pangunahing Idea at ang Mga Bahaging Kinakailangan
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

Pagpi-print sa Camera Mount
Pagpi-print sa Camera Mount
Pagpi-print sa Camera Mount
Pagpi-print sa Camera Mount
Pagpi-print sa Camera Mount
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

Tinatapos ang Pag-mount ng Camera
Tinatapos ang Pag-mount ng Camera
Tinatapos ang Pag-mount ng Camera
Tinatapos ang Pag-mount ng Camera
Tinatapos ang Pag-mount ng Camera
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 !

Ang Kodigo na Nangyayari sa Lahat ng Ito !!
Ang Kodigo na Nangyayari sa Lahat ng Ito !!

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

Mekanismo ng Pagbubukas ng Kahon
Mekanismo ng Pagbubukas ng Kahon
Mekanismo ng Pagbubukas ng Kahon
Mekanismo ng Pagbubukas ng Kahon
Mekanismo ng Pagbubukas ng Kahon
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:

  1. Mainit akong nakadikit ng isang servo malapit sa likurang dulo ng kahon sa isang piraso ng karton na malapit sa labi ng kahon.
  2. Pagkatapos ay kumuha ako ng pagsasalita mula sa gulong ng isang ikot at mainit na nakadikit ito sa braso ng servo.
  3. Ang kabilang dulo ng pagsasalita ay nakakabit sa talukap ng kahon gamit ang isang piraso ng kawad.
  4. Ang positibo ng servo ay konektado sa + 5V Pin 2 sa Raspberry Pi.
  5. Ang negatibo ng servo ay konektado sa GND Pin 39.
  6. Ang signal ng servo ay konektado sa Pin 12

Hakbang 8: Ang Paggawa ng Kahon na May Tema na Harry Potter

Paggawa ng Kahong Harry Potter na May Tema
Paggawa ng Kahong Harry Potter na May Tema
Paggawa ng Kahong Harry Potter na May Tema
Paggawa ng Kahong Harry Potter na May Tema
Paggawa ng Kahon na May Tema na Harry Potter
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: