Mündəricat:

Həqiqi işləyən Harry Potter Çubuq Kompüter Görmə İstifadəsi: 8 Addım (Şəkillərlə birlikdə)
Həqiqi işləyən Harry Potter Çubuq Kompüter Görmə İstifadəsi: 8 Addım (Şəkillərlə birlikdə)

Video: Həqiqi işləyən Harry Potter Çubuq Kompüter Görmə İstifadəsi: 8 Addım (Şəkillərlə birlikdə)

Video: Həqiqi işləyən Harry Potter Çubuq Kompüter Görmə İstifadəsi: 8 Addım (Şəkillərlə birlikdə)
Video: 2.BÖLÜM 🍀''VADİDEKİ ZAMBAK'' 🍀HONORE DE BALZAC (SESLİ KİTAP) 2024, Noyabr
Anonim
Image
Image
Həqiqi işləyən Harry Potter Çubuğu Kompüter Vizyonundan istifadə edir
Həqiqi işləyən Harry Potter Çubuğu Kompüter Vizyonundan istifadə edir
Həqiqi işləyən Harry Potter Çubuğu Kompüter Vizyonundan istifadə edir
Həqiqi işləyən Harry Potter Çubuğu Kompüter Vizyonundan istifadə edir
Həqiqi işləyən Harry Potter Çubuğu Kompüter Vizyonundan istifadə edir
Həqiqi işləyən Harry Potter Çubuğu Kompüter Vizyonundan istifadə edir

"Kifayət qədər qabaqcıl hər hansı bir texnologiya sehrdən fərqlənmir" - Artur C. Clarke

Bir neçə ay əvvəl qardaşım Yaponiyanı ziyarət etdi və Universal Studios -da Computer Vision texnologiyası sayəsində mümkün olan Harry Potter Sihirbazlıq Dünyasında əsl sehrbazlıq təcrübəsinə sahib idi.

Universal Studios-da Harry Potter Sihirbazlıq Dünyasında, turistlər uclarında retro-yansıtıcı boncuklar olan xüsusi hazırlanmış çubuqlardan istifadə edərək müəyyən yerlərdə (hərəkət tutma sisteminin quraşdırıldığı yerlərdə) "əsl sehr" edə bilərlər. Çubuqları, Harry Potter Filmlərində göstərilənə bənzər, ancaq "Sihirbazı seçən çubuqdur" əsl Ollivander Mağazasından almaq olar: P

Şəxs çubuqla müəyyən bir jest edərsə, müəyyən yerlərdə, hərəkət tutma sistemi jesti tanıyır və bütün jestlər, ətrafdakı müəyyən fəaliyyətlərə səbəb olan çeşməni açmaq və s.

Beləliklə, bu Təlimat kitabında, çubuğunuzun çırpılması ilə bir qutu açaraq "əsl sehr" etmək üçün evdə necə ucuz və təsirli bir hərəkət tutma sistemi yarada biləcəyinizi göstərəcəyəm: D yalnız normal Gecə Görmə Kamerası, bəzi elektronika, və OpenCV Computer Vision kitabxanasından və Maşın Öyrənməsindən istifadə edən bəzi python kodu !!!

Addım 1: Əsas fikir və tələb olunan hissələr

Əsas fikir və tələb olunan hissələr
Əsas fikir və tələb olunan hissələr
Əsas fikir və tələb olunan hissələr
Əsas fikir və tələb olunan hissələr
Əsas fikir və tələb olunan hissələr
Əsas fikir və tələb olunan hissələr
Əsas fikir və tələb olunan hissələr
Əsas fikir və tələb olunan hissələr

Universal Studios -da Harry Potterin Sihirbazlıq Dünyasından alınmış çubuqların ucunda retroreflektiv bir muncuq var. Bu retroreflective muncuqlar, hərəkət tutma sistemində kamera tərəfindən verilən çox miqdarda infraqırmızı işığı əks etdirir, buna görə də biz insanların havada hərəkət edən çubuğun o qədər də fərqli olmayan bir ucu olaraq qəbul etdiyimizi, hərəkət tutma sistemi qəbul edir. video axınında asanlıqla təcrid oluna bilən və şəxsin çəkdiyi nümunəni tanımaq və lazımi hərəkəti yerinə yetirmək üçün izlənilə bilən parlaq bir ləkə kimi. Bütün bu emal real vaxtda baş verir və Kompüter Görmə və Maşın Öyrənmədən istifadə edir.

Sadə bir Gecə Görmə kamerası, insanlara görünməyən, lakin İnfraqırmızı Süzgəci olmayan bir kamera ilə aydın şəkildə görülə bilən infraqırmızı işığı söndürdükləri üçün hərəkət kamerası olaraq istifadə edilə bilər. Beləliklə, kameradan gələn video axını, çubuq ucunu aşkar etmək, təcrid etmək və izləmək üçün istifadə olunan OpenCV işləyən bir python proqramı olan bir moruq pi -yə verilir. Sonra çəkilmiş nümunəni tanımaq və buna görə də bəzi fəaliyyətləri yerinə yetirmək üçün moruq pi -nin GPIO -larına nəzarət etmək üçün Machine Learning -in SVM (Simple Vector Machine) alqoritmindən istifadə edirik.

Tələb olunan materiallar:

1) Raspberry Pi 3 model B və klaviatura və siçan kimi lazım olan aksesuarlar

2) Raspberry Pi NoIR (İnfraqırmızı) Kamera Modulu

3) ucunda retroreflektoru olan Harry Potter Çubuğu: Əgər yoxdursa narahat olmayın. Geri reflektorlu hər şey istifadə edilə bilər. Beləliklə, hər hansı bir çubuq kimi çubuqdan istifadə edə bilərsiniz və ucunda retroreflektor lent, boya və ya muncuq tətbiq edə bilərsiniz və William Osmanın videoda göstərildiyi kimi işləməlidir: Videoya baxın

4) 10 infraqırmızı LED

5) İstədiyiniz 3D printer və PLA filamenti

6) 12V - 1A Divar Adapteri və DC jakı

7) Servo motor

8) Köhnə bir qutu və bir dövrün təkərindən bir söz

9) İsti yapışqan silahı

10) Parlaq Vərəqdə Harry Potter ilə əlaqəli bəzi logo və şəkillərin çapları

11) Yaşıl və sarı məxmər çarşaflar.

DİQQƏT: İnfraqırmızı Filtrini çıxarıb gecə görmə üçün köhnə adi bir veb kameradan istifadə etməyə çalışdım, amma videonun keyfiyyətinə çox təsir edən lensini zədələdim/yerindən çıxardım və istifadə edə bilmədim. Ancaq bir şans vermək istəyirsinizsə, bu böyük təlimatlandırıcıdan keçə bilərsiniz Bura vurun

Addım 2: OpenCV Modulunu quraşdırın

İndi bütün bu layihənin ilk və bəlkə də ən uzun addımının vaxtıdır: Raspberry Pi -də OpenCV modulunun quraşdırılması və qurulması.

OpenCV modulu üçün asılılıqların quraşdırılması çox vaxt çəkmir, lakin qurma prosesi 2 ilə 3 saata qədər davam edə bilər !! Belə ki, Toka Up !!: P.

OpenCV 4.1.0 modulunu quraşdırmaq üçün izləyə biləcəyiniz bir çox onlayn dərslər var. İzlədiyim link budur: Bura Tıklayın

DİQQƏT: Dərslikdə göstərildiyi kimi OpenCV modulunu virtual mühitdə quraşdırmağı şiddətlə tövsiyyə edirəm, çünki fərqli modulların asılılıqlarını quraşdırmaq və ya fərqli python versiyaları ilə işləyərkən baş verə biləcək müxtəlif ziddiyyətləri önləyər.

Addım 3: Kamera Dəstinin Çap Edilməsi

Kamera Dəstinin Çap Edilməsi
Kamera Dəstinin Çap Edilməsi
Kamera Dəstinin Çap Edilməsi
Kamera Dəstinin Çap Edilməsi
Kamera Dəstinin Çap Edilməsi
Kamera Dəstinin Çap Edilməsi

NoIR pikamerasında infraqırmızı filtr yoxdur, buna görə də gecə görmə kamerası kimi istifadə oluna bilər, lakin hələ də infraqırmızı işıq mənbəyi yoxdur. Bütün gecə görmə kameralarının qaranlıqda çılpaq gözlə görünməyən İK şüalarını çıxaran öz infraqırmızı işıq mənbəyi var, lakin hər hansı bir obyektdən əks olunduqdan sonra şüaları heç bir infraqırmızı filtri olmayan kamera görə bilər.

Beləliklə, əsasən infraqırmızı işıq mənbəyinə və kameranı bağlayacaq bir şeyə ehtiyacımız var. Bunun üçün, bir dairədə 10 İK LED ilə əhatə edəcəyimiz kameranı quraşdıra biləcəyimiz bir obyektin sadə bir 3D modelini hazırladım. Model SketchUp ilə yaradılıb və təxminən 40 dəqiqə ərzində Black PLA ilə çap edilib.

Addım 4: Kamera Montajını bitirmək

Kamera Montajını bitirmək
Kamera Montajını bitirmək
Kamera Montajını bitirmək
Kamera Montajını bitirmək
Kamera Montajını bitirmək
Kamera Montajını bitirmək

Modeli çap etdikdən sonra əvvəlcə 80 qum qum kağızı ilə zımparaladım və sonra yuxarıda göstərilən sxemə uyğun olaraq İQ LED -lərini deliklərinə yerləşdirməyə başladım.

Ledləri bir az isti yapışqanla yerlərində bağladım və sonra ardıcıl iki ledin müsbət və mənfi qurğularını bir araya gətirdim və sonra ledlərin bir sıra bağlantısı yaratmaq üçün onları lehimlədim.

Müsbət və mənfi uclarını 12 voltluq divar adapterindən bağlamaq üçün altdakı yanındakı pozitiv ucu və yanındakı mənfi mənfi qurğusu lehimsiz qaldı.

Addım 5: Təlim Edilmiş Maşın Öyrənmə Modeli

Bir şəxsin çəkdiyi məktubu tanımaq üçün, burada tapdığım əlyazma İngilis əlifbalarından ibarət Dataset istifadə edərək Support Vector Machine (SVM) alqoritminə əsaslanan maşın öyrənmə modelini öyrətdim. SVM'ler, bu vəziyyətdə təxminən 99.2% yüksək dəqiqlik verə bilən çox səmərəli maşın öyrənmə alqoritmləridir !! SVM -lər haqqında daha çox oxuyun

Dataset, 785 sütun və 300.000 -dən çox sətirdən ibarət olan.csv faylı formasındadır və burada hər bir sətir 28 x 28 təsviri təmsil edir və bu sətirdəki hər bir sütunda əlavə bir sütun ilə həmin görüntü üçün həmin pikselin dəyərini ehtiva edir. hər biri ingilis hərfinə uyğun gələn 0 -dan 25 -ə qədər olan bir etiket olan başlanğıc. Sadə bir python kodu vasitəsilə istədiyim 2 hərfin (A və C) bütün şəkillərini əldə etmək üçün məlumatları kəsdim və onlar üçün bir model öyrətdim.

Təlim edilmiş modeli (alpha_classifier.pkl) əlavə etdim və eyni zamanda təlim kodunu keçməkdən və ya modeli fərqli hərflərlə öyrətmək və ya fərqli alqoritmləri sınamaq üçün hər hansı bir dəyişiklik etməkdən çəkinməyin. Proqramı işə saldıqdan sonra təlim keçmiş modeli avtomatik olaraq kodunuzun saxlandığı qovluğa saxlayır.

Addım 6: Hər şeyi Baş verən Kod

Hər Şey Olunan Kod !!
Hər Şey Olunan Kod !!

Təlim edilmiş modeli yaratdıqdan sonra son addım Raspberry Pi üçün aşağıdakıları etməyə imkan verən bir python proqramı yazmaqdır:

  • Pikamerdən real vaxt rejimində video əldə edin
  • Videodakı ağ ləkələri (bu vəziyyətdə gecə görmə qabiliyyətində olan çubuqun ucunu) aşkar edin və izləyin
  • Bəzi tetikleyici hadisədən sonra videoda hərəkət edən ləkənin yolunu izləməyə başlayın (aşağıda izah olunur)
  • Başqa bir tətik hadisəsindən sonra izləməyi dayandırın (aşağıda izah olunur)
  • İstifadəçinin çəkdiyi nümunə ilə son çərçivəni qaytarın
  • Eşik, səs-küyün aradan qaldırılması, ölçüsünün dəyişdirilməsi kimi çərçivədə əvvəlcədən işləmə aparın.
  • Proqnozlaşdırmaq üçün işlənmiş son çərçivəni istifadə edin.
  • Raspberry Pi -nin GPIO'larını əvvəlcədən təyin edərək bir növ sehr tətbiq edin

Bu layihə üçün Raspberry Pi -nin GPIO tərəfindən idarə olunan bir servo motoru istifadə edərək aça və bağlaya biləcəyim Harry Potter temalı qutu yaratdım. 'A' hərfi 'Alohamora' (bir sehrbazın hər hansı bir kilidi açmasına imkan verən Harry Potter filmlərinin ən məşhur sehrlərindən biri) mənasını verdiyindən, bir adam çubuqla A hərfini çəkərsə, pi servoya əmr verir. qutunu açın. Şəxs yaxınlaşan "C" hərfini çəkərsə (bağlamaq və ya kilidləmək üçün istifadə edilən uyğun bir sehr haqqında düşünə bilmədiyim üçün: P), pi servoya qutunu bağlamağı əmr edir.

Şəkil/video emalı ilə əlaqəli bütün işlər, məsələn, blobun aşkarlanması, blobun yolunun izlənməsi, son çərçivənin əvvəlcədən işlənməsi və s., OpenCV modulu vasitəsilə aparılır.

Yuxarıda qeyd olunan tətik hadisələri üçün, real vaxtdakı videoda yaşıl və qırmızı bir dairə yaradılır. Blob yaşıl dairə daxilində bölgəyə daxil olduqda, proqram həmin andan sonra şəxsin məktubu yaratmağa başlamasına imkan verən blobun keçdiyi yolu izləməyə başlayır. Blob qırmızı dairəyə çatdıqda, video dayanır və son çərçivə, onu əvvəlcədən təyin etməyə hazır etmək üçün çərçivədə əvvəlcədən işləmə aparan bir funksiyaya ötürülür.

Bu addımda kod fayllarını əlavə etdim. Keçməkdən və istədiyiniz kimi hər hansı bir dəyişiklik etməkdən çekinmeyin.

DİQQƏT: OpenCV yükləndikdən sonra, öyrədilmiş modeli yüklədikdən sonra proqnoz vermək üçün OpenCV modulunu (Python 2.7) və sklearn modulunu (Python 3.5) idxal edən fərqli python versiyaları ilə işləyən iki ayrı python faylı yaratmalı oldum. python 3.5 üçün sklearn quraşdırılarkən Python 2.7 versiyası. Beləliklə, HarryPotterWandcv.py -dən (bütün açıq iş və real vaxt video qeydləri üçün) HarryPotterWandsklearn.py (proqnoz üçün) faylını işə salmaq və onun çıxışını əldə etmək üçün alt proses modulundan istifadə etdim. Bu şəkildə yalnız HarryPotterWandcv.py faylını işə salmalıyam.

Addım 7: Qutunun Açılma Mexanizmi

Qutunun Açılma Mexanizmi
Qutunun Açılma Mexanizmi
Qutunun Açılma Mexanizmi
Qutunun Açılma Mexanizmi
Qutunun Açılma Mexanizmi
Qutunun Açılma Mexanizmi

Ətrafımda bu layihə üçün istifadə etdiyim qırmızı rəngli köhnə bir qutu vardı.

Qutunun açılması mexanizmi üçün:

  1. Qutunun kənarına yaxın bir kartona, qutunun arxa ucuna yaxın bir servo yapışdırdım.
  2. Sonra bir dövrənin təkərindən bir çıxış aldım və servonun qoluna isti bir şəkildə yapışdırdım.
  3. Çubuğun digər ucu bir tel parçası ilə qutunun qapağına yapışdırıldı.
  4. Servo müsbət, Raspberry Pi -də +5V Pin 2 -ə qoşuldu.
  5. Servo mənfi GND Pin 39 -a qoşuldu.
  6. Servo siqnalı Pin 12 -yə qoşuldu

Addım 8: Qutunu Harry Potter Temalı Edin

Qutu hazırlanması Harry Potter Temalı
Qutu hazırlanması Harry Potter Temalı
Qutu hazırlanması Harry Potter Temalı
Qutu hazırlanması Harry Potter Temalı
Qutu hazırlanması Harry Potter Temalı
Qutu hazırlanması Harry Potter Temalı

Harry Potter qutusunu temalı etmək üçün, Harry Potter Logosu, The Hogwarts Crest, The Crest of the four house of each of etc. yerlər.

Zolaqları kəsmək üçün sarı rəngli bir məxmər vərəqindən istifadə etdim və qutuya Gryffindor Evi ilə eyni rəng vermək üçün qapağa yapışdırdım. Qapağın içini və servo üçün kartonu yaşıl məxmər təbəqə ilə örtmüşəm. Qapağın içərisinə daha çox simvol və Hogwarts Məktəbinin hər evini təmsil edən heyvanları göstərən bir emblem yapışdırdım.

Sonra nəhayət, Harry Potter ilə əlaqəli bütün şeylərimi Gryffindor səsboğucusu, Hogwarts forması olan bir gündəlik və bu layihədə istifadə olunan Yaşlı Çubuq olan qutuya doldurdum: D

Tövsiyə: