Satura rādītājs:

Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi: 8 soļi (ar attēliem)
Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi: 8 soļi (ar attēliem)

Video: Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi: 8 soļi (ar attēliem)

Video: Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi: 8 soļi (ar attēliem)
Video: Воды как в дипломе. Финал ► 6 Прохождение Hogwarts Legacy 2024, Jūlijs
Anonim
Image
Image
Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi
Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi
Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi
Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi
Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi
Reāli strādājošs Harija Potera zizlis, izmantojot datora redzi

"Jebkura pietiekami uzlabota tehnoloģija nav atšķirama no maģijas" - Artūrs Klarks

Dažus mēnešus atpakaļ mans brālis apmeklēja Japānu, un viņam bija īsta burvju pieredze Harija Potera burvju pasaulē Universal Studios, kas bija iespējama, izmantojot Computer Vision tehnoloģiju.

Harija Potera burvju pasaulē Universal Studios tūristi noteiktās vietās (kur ir uzstādīta kustību uztveršanas sistēma) var veikt “īstu maģiju”, izmantojot speciāli izgatavotas nūjiņas ar atstarojošām pērlītēm galā. Nūjiņas var iegādāties īstā Olivandera veikalā, kas ir tieši tādas, kā parādīts Harija Potera filmās, taču atcerieties: "Tas ir zizlis, kas izvēlas vedni": P

Šajās noteiktās vietās, ja persona veic noteiktu žestu ar zizli, kustību uztveršanas sistēma atpazīst žestu, un visi žesti atbilst noteiktai pareizrakstībai, kas izraisa noteiktas darbības apkārtnē, piemēram, strūklakas ieslēgšanu utt.

Tātad, šajā pamācībā es parādīšu, kā jūs varat izveidot lētu un efektīvu kustību uztveršanas sistēmu mājās, lai veiktu "īstu maģiju", atverot kastīti ar zizliņa kustību: D, izmantojot tikai parastu nakts redzamības kameru, kādu elektroniku, un kāds pitona kods, izmantojot OpenCV Computer Vision bibliotēku un Machine Learning !!!

1. darbība: pamatideja un nepieciešamās detaļas

Pamatideja un nepieciešamās detaļas
Pamatideja un nepieciešamās detaļas
Pamatideja un nepieciešamās detaļas
Pamatideja un nepieciešamās detaļas
Pamatideja un nepieciešamās detaļas
Pamatideja un nepieciešamās detaļas
Pamatideja un nepieciešamās detaļas
Pamatideja un nepieciešamās detaļas

Zizļiem, kas Universal Studios iegādāti no Harija Potera burvju pasaules, to galā ir atstarojoša lodīte. Šīs atstarojošās pērlītes atspoguļo lielu daudzumu infrasarkanās gaismas, ko kustību uztveršanas sistēmā izstaro kamera. Tātad, to, ko mēs, cilvēki, uztveram kā ne tik atšķirīgu gaisā pārvietojošā zižļa galu, uztver kustības uztveršanas sistēma. kā spilgtu lāsi, ko var viegli izolēt video straumē un izsekot, lai atpazītu personas zīmēto modeli un veiktu vajadzīgo darbību. Visa šī apstrāde notiek reālā laikā, izmantojot datoru redzi un mašīnmācīšanos.

Vienkārša nakts redzamības kamera var tikt izmantota kā kustību uztveršanas kamera, jo tā arī izstaro infrasarkano gaismu, kas nav redzama cilvēkiem, bet ir skaidri redzama ar kameru, kurai nav infrasarkanā filtra. Tātad video straume no kameras tiek ievadīta aveņu pi, kurai ir python programma, kurā darbojas OpenCV, ko izmanto zižļa gala noteikšanai, izolēšanai un izsekošanai. Tad mēs izmantojam mašīnmācīšanās SVM (Simple Vector Machine) algoritmu, lai atpazītu zīmēto modeli un attiecīgi kontrolētu aveņu pi GPIO, lai veiktu dažas darbības.

Nepieciešamie materiāli:

1) A Raspberry Pi 3 modelis B un nepieciešamie piederumi, piemēram, tastatūra un pele

2) Raspberry Pi NoIR (bez infrasarkanā) kameras modulis

3) Harija Potera nūjiņa ar atstarotāju galā: Neuztraucieties, ja jums tāda nav. Ar atstarotāju var izmantot jebko. Tātad, jūs varat izmantot jebkuru nūjiņai līdzīgu nūju un uzlikt uz gala atstarojošu lenti, krāsu vai krelles, un tam vajadzētu darboties, kā parādīts Viljama Osmana videoklipā: Skatīties video

4) 10 infrasarkanās gaismas diodes

5) 3D printeris un PLA kvēldiegs pēc jūsu izvēles

6) 12V - 1A sienas adapteris un līdzstrāvas ligzda

7) Servo motors

8) Veca kaste un spieķis no cikla riteņa

9) Karsta līmes pistole

10) Dažu ar Hariju Poteru saistītu logotipu un attēlu izdrukas uz spīdīgas papīra lapas

11) Zaļas un dzeltenas samta loksnes.

PIEZĪME. Es arī mēģināju izmantot vecu regulāru tīmekļa kameru nakts redzamībai, noņemot tā infrasarkano staru filtru, bet galu galā sabojāju/nobīdīju objektīvu, kas būtiski ietekmēja video kvalitāti, un es nevarēju to izmantot. Bet, ja vēlaties to izmēģināt, varat iziet šo lielisko pamācību Noklikšķiniet šeit

2. darbība: instalējiet OpenCV moduli

Tagad ir pienācis laiks pirmajam un, iespējams, visilgākajam šī projekta solim: OpenCV moduļa instalēšana un izveidošana jūsu Raspberry Pi.

OpenCV moduļa atkarību instalēšana neaizņem daudz laika, bet veidošanas process var ilgt līdz 2 līdz 3 stundām! Tātad, piesprādzējies !!: P

Tiešsaistē ir daudz pamācību, kurām varat sekot, lai instalētu OpenCV 4.1.0 moduli. Šeit ir saite uz to, kurai sekoju: Noklikšķiniet šeit

PIEZĪME. Es ļoti iesaku instalēt OpenCV moduli virtuālajā vidē, kā parādīts apmācībā, jo tas novērsīs dažāda veida konfliktus, kas var rasties dažādu moduļu atkarību instalēšanas dēļ vai strādājot ar dažādām python versijām.

3. darbība. Kameras stiprinājuma drukāšana

Kameras stiprinājuma drukāšana
Kameras stiprinājuma drukāšana
Kameras stiprinājuma drukāšana
Kameras stiprinājuma drukāšana
Kameras stiprinājuma drukāšana
Kameras stiprinājuma drukāšana

NoIR picamera nav infrasarkanā filtra, tāpēc to var izmantot kā nakts redzamības kameru, taču tai joprojām trūkst infrasarkanā gaismas avota. Visām nakts redzamības kamerām ir savs infrasarkanais gaismas avots, kas tumsā izstaro infrasarkanos starus, kas nav redzami ar neapbruņotu aci, bet starus var redzēt kamera bez infrasarkanā filtra pēc atspulga no jebkura objekta.

Tātad, mums būtībā ir nepieciešams infrasarkanais gaismas avots un kaut kas, uz kura uzstādīt kameru. Šim nolūkam es izveidoju vienkāršu objekta 3D modeli, uz kura mēs varētu uzstādīt kameru, kuru mēs aplī ieskauj 10 IR gaismas diodes. Modelis tika izveidots ar SketchUp un aptuveni 40 minūšu laikā tika izdrukāts ar Black PLA.

4. darbība. Kameras stiprinājuma pabeigšana

Kameras stiprinājuma pabeigšana
Kameras stiprinājuma pabeigšana
Kameras stiprinājuma pabeigšana
Kameras stiprinājuma pabeigšana
Kameras stiprinājuma pabeigšana
Kameras stiprinājuma pabeigšana

Pēc modeļa drukāšanas es vispirms to noslīpēju ar smilšpapīru ar 80 smilšpapīru un pēc tam sāku ievietot IR gaismas diodes savos caurumos saskaņā ar iepriekš sniegto diagrammu.

Es nostiprināju gaismas diodes savā vietā ar kādu karstu līmi un pēc tam pievienoju divu secīgu LED pozitīvos un negatīvos vadus kopā un pēc tam pielodēju, lai izveidotu LED sērijveida savienojumu.

Viena vada pozitīvais vads un blakus esošā gaismas diodes negatīvais vads apakšā palika neizlodēti, lai savienotu 12 voltu sienas adaptera pozitīvos un negatīvos galus.

5. solis: apmācītais mašīnmācīšanās modelis

Lai atpazītu personas zīmētu burtu, es apmācīju mašīnmācīšanās modeli, kas balstīts uz atbalsta vektora mašīnas (SVM) algoritmu, izmantojot šeit atrastu ar roku rakstītu angļu alfabētu datu kopu. SVM ir ļoti efektīvi mašīnmācīšanās algoritmi, kas šajā gadījumā var dot augstu precizitāti, aptuveni 99,2%! Lasiet vairāk par SVM

Datu kopa ir.csv faila formā, kurā ir 785 kolonnas un vairāk nekā 300 000 rindu, kur katra rinda attēlo 28 x 28 attēlu, un katra šīs rindas kolonna satur šī attēla pikseļa vērtību ar papildu kolonnu sākumā, kurā ir etiķete, skaitlis no 0 līdz 25, katrs atbilst angļu burtam. Izmantojot vienkāršu pitona kodu, es sagriezu datus, lai iegūtu visus attēlus tikai par diviem burtiem (A un C), kurus es gribēju, un apmācīju viņiem modeli.

Esmu pievienojis apmācīto modeli (alphabet_classifier.pkl), kā arī apmācības kodu, nekautrējieties to apskatīt vai veikt izmaiņas modeļa apmācībā ar dažādiem burtiem vai izmēģināt dažādus algoritmus. Pēc programmas palaišanas tā automātiski saglabā apmācīto modeli tajā pašā direktorijā, kurā tiek saglabāts jūsu kods.

6. solis: Kods, kas liek tam notikt

Kods, kas liek tam notikt !!
Kods, kas liek tam notikt !!

Pēc apmācītā modeļa izveidošanas pēdējais solis ir uzrakstīt pitona programmu mūsu Raspberry Pi, kas ļauj mums rīkoties šādi:

  • Piekļūstiet video no picamera reāllaikā
  • Nosakiet un izsekojiet videoklipā baltos lāses (šajā gadījumā zižļa galu, kas iedegas nakts redzamībā)
  • Sāciet videoklipā izsekot kustīgā lāsei pēc kāda notikuma (izskaidrots zemāk)
  • Pārtraukt izsekošanu pēc cita aktivizēšanas notikuma (izskaidrots zemāk)
  • Atgrieziet pēdējo kadru ar lietotāja zīmētu zīmējumu
  • Veiciet rāmja iepriekšēju apstrādi, piemēram, sliekšņa noteikšanu, trokšņa noņemšanu, izmēru maiņu utt.
  • Prognozēšanai izmantojiet apstrādāto pēdējo kadru.
  • Veiciet sava veida maģiju, kontrolējot Raspberry Pi GPIO saskaņā ar priekšnoteikumiem

Šim projektam es izveidoju Harija Potera tēmu kastīti, kuru varu atvērt un aizvērt, izmantojot servomotoru, kuru kontrolē Raspberry Pi GPIO. Tā kā burts “A” apzīmē “Alohamora” (viena no slavenākajām burvestībām no Harija Potera filmām, kas ļauj vednim atvērt jebkuru slēdzeni !!), ja cilvēks zīmē burtu A ar zizli, pi pavada servo atveriet lodziņu. Ja persona zīmē burtu “C”, kas apzīmē aizvēršanu (jo nevarēju iedomāties nevienu piemērotu pareizrakstību slēgšanai vai bloķēšanai: P), pi komandē servo aizvērt lodziņu.

Viss darbs, kas saistīts ar attēlu/video apstrādi, piemēram, lāsteņu noteikšana, lāses ceļa izsekošana, pēdējā kadra pirmapstrāde utt., Tiek veikts, izmantojot OpenCV moduli.

Iepriekš minētajiem aktivizēšanas notikumiem reāllaika videoklipā tiek izveidoti divi apļi-zaļš un sarkans aplis. Kad lāse nonāk zaļā apļa apgabalā, programma pēc šī brīža sāk izsekot lāsei izvēlētajam ceļam, ļaujot personai sākt veidot burtu. Kad lāse sasniedz sarkano apli, video apstājas un pēdējais kadrs tiek nodots funkcijai, kas veic kadra iepriekšēju apstrādi, lai tas būtu gatavs iepriekšējai noteikšanai.

Šajā solī esmu pievienojis koda failus. Jūtieties brīvi to iziet un veikt izmaiņas, kā vēlaties.

PIEZĪME. Man bija jāizveido divi atsevišķi python faili, kas strādā ar dažādām python versijām, no kuriem viens importē OpenCV moduli (Python 2.7) un otrs importē sklearn moduli (Python 3.5) prognozēšanai pēc apmācītā modeļa ielādes, jo mans OpenCV tika instalēts Python 2.7 versija, kamēr sklearn tika instalēta python 3.5. Tātad, es izmantoju apakšprocesa moduli, lai palaistu failu HarryPotterWandsklearn.py (prognozēšanai) no HarryPotterWandcv.py (visiem opencv darbiem un reāllaika video ierakstīšanai) un iegūtu tā izvadi. Tādā veidā man tikai jāpalaiž fails HarryPotterWandcv.py.

7. darbība: kastes atvēršanas mehānisms

Kastes atvēršanas mehānisms
Kastes atvēršanas mehānisms
Kastes atvēršanas mehānisms
Kastes atvēršanas mehānisms
Kastes atvēršanas mehānisms
Kastes atvēršanas mehānisms

Man apkārt gulēja veca sarkana kastīte, kuru es izmantoju šim projektam.

Kastes atvēršanas mehānismam:

  1. Es karsti pielīmēju servo pie kastes aizmugures gala uz kartona gabala pie kastes malām.
  2. Tad es paņēmu spieķi no cikla riteņa un karsti pielīmēju to pie servo rokas.
  3. Spieķa otru galu piestiprināja pie kastes vāka, izmantojot stieples gabalu.
  4. Servo pozitīvais bija savienots ar +5V Pin 2 uz Raspberry Pi.
  5. Servo negatīvs tika pievienots GND tapai 39.
  6. Servo signāls tika pievienots 12. tapai

8. solis: padarīt kastīti par Harija Potera tēmu

Harija Potera kastes veidošana
Harija Potera kastes veidošana
Harija Potera kastes veidošana
Harija Potera kastes veidošana
Harija Potera kastes veidošana
Harija Potera kastes veidošana

Lai izveidotu Harija Potera kastes tēmu, es uz spīdīgas A4 formāta lapas izdrukāju dažus krāsainus attēlus ar dažādām lietām, piemēram, Harija Potera logotipu, Cūkkārpas cekulu, katras no četrām mājām utt., Un ielīmēju tos uz kastes dažādās vietās vietas.

Es arī izmantoju dzeltenas krāsas samta loksni, lai sagrieztu sloksnes, un ielīmēju tās uz vāka, lai kastē iegūtu tādas pašas krāsas kā Grifindoru mājā. Es pārklāju vāka iekšpusi un kartonu servo ar zaļu samta lapu. Vāka iekšpusē es ielīmēju vairāk simbolu un emblēmu, kurā parādīti dzīvnieki, kas pārstāv katru Cūkkārpas skolas māju.

Tad beidzot es saliku visas ar Hariju Poteru saistītās lietas kastītē, kurā bija Grifindora trokšņa slāpētājs, dienasgrāmata ar Cūkkārpas formas tērpu un šajā projektā izmantotais vecākais zizlis: D

Ieteicams: