Mundarija:

Haqiqiy ishlaydigan Garri Potter tayog'i, kompyuter ko'rish yordamida: 8 qadam (rasmlar bilan)
Haqiqiy ishlaydigan Garri Potter tayog'i, kompyuter ko'rish yordamida: 8 qadam (rasmlar bilan)

Video: Haqiqiy ishlaydigan Garri Potter tayog'i, kompyuter ko'rish yordamida: 8 qadam (rasmlar bilan)

Video: Haqiqiy ishlaydigan Garri Potter tayog'i, kompyuter ko'rish yordamida: 8 qadam (rasmlar bilan)
Video: ЙЕНГИЛ ВА ОСОН ПУЛ ТОПИШ 2024, Dekabr
Anonim
Image
Image
Haqiqiy ishlaydigan Garri Potter tayoqchasi, kompyuter ko'rish yordamida
Haqiqiy ishlaydigan Garri Potter tayoqchasi, kompyuter ko'rish yordamida
Haqiqiy ishlaydigan Garri Potter tayog'i, kompyuter ko'rish yordamida
Haqiqiy ishlaydigan Garri Potter tayog'i, kompyuter ko'rish yordamida
Haqiqiy ishlaydigan Garri Potter tayog'i, kompyuter ko'rish yordamida
Haqiqiy ishlaydigan Garri Potter tayog'i, kompyuter ko'rish yordamida

"Har qanday etarlicha ilg'or texnologiyani sehrdan ajratib bo'lmaydi" - Artur C. Klark

Bir necha oy oldin akam Yaponiyaga tashrif buyurdi va Universal Studios -da Garri Potterning sehrgarlar dunyosida haqiqiy sehrgarlik tajribasiga ega edi, bu Vision Computer texnologiyasi yordamida amalga oshdi.

Universal studiyalaridagi Garri Potter olamining sehrgarlar olamida, sayyohlar uchida retro-reflektorli munchoqlari bo'lgan maxsus tayyorlangan tayoqchalardan foydalanib, ma'lum joylarda (harakatni suratga olish tizimi o'rnatilgan) "haqiqiy sehr" ni bajarishlari mumkin. Tayoqlarni haqiqiy Ollivander do'konidan sotib olish mumkin, xuddi Garri Potter filmlarida bo'lgani kabi, lekin esda tuting: "Sehrgarni tayoq tanlaydi": P

Agar ma'lum joylarda, agar odam tayoq bilan biron bir ishorani qilsa, harakatni ushlab turish tizimi imo -ishorani taniydi va barcha imo -ishoralar ma'lum sehrga mos keladi, bu esa atrofdagi favvorani yoqish va hk.

Shunday qilib, men "Ko'rsatma" da uyingizda qanday qilib "haqiqiy sehr" qilish uchun tayoqchangiz bilan qutini ochib, "haqiqiy sehr" qilish uchun arzon va samarali harakatlanishni yozish tizimini yaratishingiz mumkinligini ko'rsataman: D oddiy tungi ko'rish kamerasi, ba'zi elektronika, va OpenCV Computer Vision kutubxonasi va Machine Learning yordamida ba'zi python kodlari !!!

1 -qadam: asosiy g'oya va kerakli qismlar

Asosiy fikr va kerakli qismlar
Asosiy fikr va kerakli qismlar
Asosiy fikr va kerakli qismlar
Asosiy fikr va kerakli qismlar
Asosiy g'oya va kerakli qismlar
Asosiy g'oya va kerakli qismlar
Asosiy fikr va kerakli qismlar
Asosiy fikr va kerakli qismlar

Universal studiyalarda Garri Potterning sehrgarlar olamidan sotib olingan tayoqchalarning uchida retroreflektiv munchoq bor. Bu retroreflektiv boncuklar ko'p sonli infraqizil nurni aks ettiradi, bu kamerani harakatga olish tizimida beradi, shuning uchun biz odamlar havoda harakat qilayotgan tayoqchaning unchalik farq qilmaydigan uchi deb bilamiz. video oqimida osongina ajratib olinadigan va odam chizgan naqshni tanib olish va kerakli harakatni bajarish uchun kuzatilishi mumkin bo'lgan yorqin plyonka sifatida. Bu jarayonlarning barchasi real vaqtda amalga oshiriladi va kompyuterni ko'rish va mashinani o'rganishdan foydalanadi.

Oddiy Night Vision kamerasini harakatga keltirish uchun bizning kamera sifatida ishlatish mumkin, chunki ular odamlarga ko'rinmaydigan infraqizil nurni o'chiradi, lekin uni infraqizil filtrsiz kamerada aniq ko'rish mumkin. Shunday qilib, kameradan olingan video oqimi tayoq uchini aniqlash, izolyatsiya qilish va kuzatish uchun ishlatiladigan OpenCV ishlaydigan python dasturiga ega bo'lgan malina pi ga uzatiladi. Keyin biz chizilgan naqshni tanib olish va shunga mos ravishda malina pi ning GPIOlarini nazorat qilish uchun SVM (Simple Vector Machine) algoritmidan foydalanamiz.

Kerakli materiallar:

1) Raspberry Pi 3 model B va klaviatura va sichqon kabi kerakli aksessuarlar

2) Raspberry Pi NoIR (infraqizil bo'lmagan) kamera moduli

3) Garri Potter tayog'i uchida retroreflektor bilan: Agar sizda yo'q bo'lsa, xavotir olmang. Qayta reflektorli har qanday narsadan foydalanish mumkin. Shunday qilib, siz tayoqchaga o'xshash har qanday tayoqchani ishlatishingiz va uchida retroreflektor tasmasini, bo'yoq yoki boncukni qo'llashingiz mumkin va u Uilyam Usmon videoda ko'rsatilgandek ishlashi kerak: Videoni tomosha qiling

4) 10 ta infraqizil LED

5) 3D printer va siz tanlagan PLA filamenti

6) 12V - 1A devor adapteri va shahar uyasi

7) servo dvigatel

8) Eski quti va tsikl g'ildiragidan gap

9) issiq yopishtiruvchi qurol

10) Garri Potter bilan bog'liq ba'zi logotiplar va rasmlarning nashrida

11) Yashil va sariq baxmal choyshablar.

QAYD: Men tungi ko'rish uchun eski oddiy veb -kameradan foydalanib, uning infraqizil filtrini olib tashladim, lekin uning linzalarini shikastlab qo'ydim, bu video sifatiga katta ta'sir ko'rsatdi va men uni ishlata olmadim. Ammo, agar siz buni ko'rishni xohlasangiz, bu ajoyib ko'rsatmaga o'tishingiz mumkin Bu yerni bosing

2 -qadam: OpenCV modulini o'rnating !

Endi bu loyihaning birinchi va ehtimol eng uzun bosqichi: Raspberry Pi -da OpenCV modulini o'rnatish va qurish.

OpenCV moduliga bog'liqliklarni o'rnatish ko'p vaqtni talab qilmaydi, lekin qurish jarayoni 2 dan 3 soatgacha davom etishi mumkin !! Shunday qilib, tokka oling !!: P.

OpenCV 4.1.0 modulini o'rnatish uchun Internetda ko'plab darsliklar mavjud. Mana men kuzatgan havola: Bu yerni bosing

QAYD: Men OpenCV modulini qo'llanmada ko'rsatilgandek virtual muhitga o'rnatishni qat'iy tavsiya qilaman, chunki u turli modullarning bog'liqliklarini o'rnatish yoki pythonning turli xil versiyalari bilan ishlash natijasida yuzaga kelishi mumkin bo'lgan har xil nizolarni oldini oladi.

3 -qadam: Kamera o'rnatish moslamasini chop etish

Kamera tog'ini bosib chiqarish
Kamera tog'ini bosib chiqarish
Kamera tog'ini bosib chiqarish
Kamera tog'ini bosib chiqarish
Kamera tog'ini bosib chiqarish
Kamera tog'ini bosib chiqarish

NoIR pikamerasida infraqizil filtr yo'q, shuning uchun uni tungi ko'rish kamerasi sifatida ishlatish mumkin, lekin u hali ham infraqizil nur manbai yo'q. Barcha tungi ko'rish kameralari o'zlarining infraqizil nur manbalariga ega, ular yalang'och ko'zga ko'rinmas qorong'ilikda IQ nurlarini chiqaradi, lekin nurlar kamerada infraqizil filtrsiz, har qanday narsadan aks etgandan keyin ko'rinadi.

Shunday qilib, bizga asosan infraqizil nur manbai va kamerani o'rnatish uchun biror narsa kerak. Buning uchun men ob'ektning oddiy 3D modelini ishlab chiqdim, uning yordamida biz kamerani aylanada 10 ta IQ LED bilan o'rab olamiz. Model SketchUp yordamida yaratilgan va taxminan 40 daqiqada Black PLA yordamida chop etilgan.

4 -qadam: Kamera o'rnatilishini tugatish

Kamera o'rnatilishini tugatish
Kamera o'rnatilishini tugatish
Kamera o'rnatilishini tugatish
Kamera o'rnatilishini tugatish
Kamera o'rnatilishini tugatish
Kamera o'rnatilishini tugatish

Modelni chop etgandan so'ng, avval uni 80 dona qumli qog'oz bilan silliqladim, so'ng yuqorida ko'rsatilgan sxema bo'yicha IQ chiroqlarini teshiklariga joylashtira boshladim.

Men chiroqlarni o'z o'rnida issiq elim bilan mahkamladim, so'ngra ketma -ket ikkita svetodiodning ijobiy va salbiy simlarini birlashtirdim, so'ngra ularni bir -biriga ulab, ularni bir -biriga ulashdi.

Musbat va manfiy uchlarini 12 voltli devor adapteridan ulash uchun bitta va bitta yonboshining pastki qismidagi manfiy simi lehimsiz qoldirilgan.

5 -qadam: o'rgatilgan mashinani o'rganish modeli

Odam chizgan xatni tanib olish uchun men bu erda topilgan ingliz alifbosining qo'lda yozilgan ma'lumotlar bazasi yordamida Support Vector Machine (SVM) algoritmiga asoslangan mashinani o'rganish modelini o'rgatdim. SVM - bu juda aniq mashinani o'rganish algoritmlari bo'lib, ular yuqori aniqlikni berishi mumkin, bu holda taxminan 99,2% !! SVM haqida ko'proq o'qing

Ma'lumotlar to'plami.csv fayli bo'lib, u 785 ta ustun va 300 000 dan ortiq satrlarni o'z ichiga oladi, bu erda har bir satr 28 x 28 tasvirni ifodalaydi va bu satrdagi har bir ustunda o'sha tasvir uchun pikselning qiymati qo'shimcha ustun bilan boshi, har biri ingliz harfiga mos keladigan, 0 dan 25 gacha bo'lgan raqamni o'z ichiga oladi. Oddiy python kodi orqali men xohlagan 2 ta harf (A va C) uchun barcha tasvirlarni olish uchun ma'lumotlarni kesib, ularga model o'rgatdim.

Men o'rgatilgan modelni (alpha_classifier.pkl) biriktirdim, shuningdek, o'quv kodi uni bosib o'tishi yoki modelni turli harflar bilan o'rgatish yoki har xil algoritmlarni sinab ko'rish uchun o'zgartirish kiritishi mumkin. Dasturni ishga tushirgandan so'ng, u avtomatik ravishda o'qitilgan modelni sizning kodingiz saqlanadigan katalogga saqlaydi.

6 -qadam: Hammasini sodir etadigan kod !

Hammasini sodir etadigan kod !!
Hammasini sodir etadigan kod !!

Tayyorlangan modelni yaratgandan so'ng, oxirgi qadam bizning Raspberry Pi uchun quyidagilarni bajarishga imkon beradigan python dasturini yozishdir:

  • Haqiqiy vaqtda videokameradan videoga kiring
  • Videodagi oq pufakchalarni aniqlang va kuzatib boring (bu holda tayoqchaning uchi tunda ko'rinishda yonadi)
  • Voqea sodir bo'lganidan keyin videodagi harakatlanuvchi chiziq yo'lini kuzatishni boshlang (quyida tushuntiriladi)
  • Boshqa tetik hodisasidan keyin kuzatishni to'xtating (quyida tushuntiriladi)
  • Foydalanuvchi chizgan naqsh bilan oxirgi kadrni qaytaring
  • Cheklov, shovqinni o'chirish, o'lchamlarini o'zgartirish va hk kabi ramkada oldindan ishlov berishni bajaring.
  • Bashorat qilish uchun qayta ishlangan oxirgi kadrdan foydalaning.
  • Oldindan aytilganidek, Raspberry Pi ning GPIOlarini boshqarish orqali qandaydir sehr -jodu qiling

Ushbu loyiha uchun men Garri Potter nomli qutini yaratdim, uni Raspberry Pi GPIO tomonidan boshqariladigan servo dvigatel yordamida ochish va yopish mumkin. "A" harfi "Alohamora" (Garri Potter filmidagi sehrgarga har qanday qulfni ochishga imkon beradigan eng mashhur afsunlardan biri) degan ma'noni anglatsa, agar odam tayoq bilan A harfini chizsa, pi servoga buyruq beradi. qutini oching. Agar biror kishi "C" harfini chizsa, u yopilishni anglatadi (men yopilish yoki qulflash uchun tegishli sehr haqida o'ylamagan edim: P), pi servoga qutini yopishni buyuradi.

Tasvirni/videoni qayta ishlash bilan bog'liq barcha ishlar, masalan, bloklarni aniqlash, blokning yo'lini kuzatish, oxirgi kadrni oldindan qayta ishlash va boshqalar OpenCV moduli orqali amalga oshiriladi.

Yuqorida aytib o'tilgan tetik hodisalar uchun real vaqtda videoda ikkita aylana-yashil va qizil aylana yaratiladi. Yashil doira yashil doiraga kirganda, dastur o'sha paytdan keyin odamning maktubini yaratishga ruxsat beradigan yo'lni kuzatishni boshlaydi. Blok qizil doiraga etib kelganida, video to'xtaydi va oxirgi kadr oldindan belgilashga tayyor bo'lishi uchun kadrda oldindan ishlov beradigan funktsiyaga o'tkaziladi.

Men bu qadamda kod fayllarini biriktirdim. O'zingizni erkin his qiling va xohlaganingizcha o'zgartiring.

QAYD: Men turli xil python versiyalari bilan ishlaydigan ikkita alohida python faylini yaratishim kerak edi, ulardan biri OpenCV modulini (Python 2.7) import qiladi, ikkinchisi sklearn modulini (Python 3.5) import qilingan modelni yuklaganidan keyin bashorat qilish uchun, chunki mening OpenCV o'rnatilgan. python 3.5 uchun sklearn o'rnatilgan bo'lsa, Python 2.7 versiyasi. Shunday qilib, men HarryPotterWandsklearn.py faylini (bashorat qilish uchun) HarryPotterWandcv.py (barcha ochiq ish va real vaqtda video yozish uchun) faylini ishga tushirish va uning chiqishini olish uchun pastki jarayon modulidan foydalandim. Shunday qilib, men faqat HarryPotterWandcv.py faylini ishlatishim kerak.

7 -qadam: qutini ochish mexanizmi

Qutini ochish mexanizmi
Qutini ochish mexanizmi
Qutini ochish mexanizmi
Qutini ochish mexanizmi
Qutini ochish mexanizmi
Qutini ochish mexanizmi

Menda bu loyiha uchun ishlatilgan eski qizil rangli quti bor edi.

Qutini ochish mexanizmi uchun:

  1. Men qutini chetiga yaqin kartonga qutining orqa uchi yaqinida servo yopishtirdim.
  2. Keyin men tsikl g'ildiragidan tayoqchani oldim va uni servo qo'ltig'iga issiq qilib yopishtirdim.
  3. Naychaning ikkinchi uchi bir bo'lak sim yordamida qutining qopqog'iga mahkamlangan.
  4. Servo ijobiy Raspberry Pi -dagi +5V Pin 2 ga ulangan.
  5. Servo salbiy GND Pin 39 ga ulangan.
  6. Servo signal 12 -pin bilan bog'langan

8 -qadam: qutini Garri Potterga bag'ishlash

Garri Potter uchun quti yaratish
Garri Potter uchun quti yaratish
Garri Potter uchun quti yaratish
Garri Potter uchun quti yaratish
Garri Potter uchun quti yaratish
Garri Potter uchun quti yaratish

"Garri Potter" qutisini yaratish uchun men A4 formatidagi yaltiroq varaqqa "Garri Potter" logotipi, "Xogvarts cho'qqisi", "To'rt uyning har birining cho'qqisi" kabi turli xil narsalarning rangli tasvirlarini chop etdim va ularni turli qutilarga yopishtirdim. joylar.

Men, shuningdek, chiziqlarni kesish uchun sariq rangli baxmal choyshabdan foydalanardim va ularni qopqog'iga yopishtirib qo'ydim. Men qopqoqning ichki qismini va servo uchun kartonni yashil baxmal choyshab bilan yopdim. Qopqoqning ichki qismiga men Xogvarts maktabining har bir uyini tasvirlaydigan hayvonlar tasvirlangan ramzlar va emblemani yopishtirdim.

Va nihoyat, men Harry Potter bilan bog'liq bo'lgan barcha narsalarni qutiga Gryffindor susturucusu, Xogvarts formasi bilan kundalik va bu loyihada ishlatilgan oqsoqol tayoqchasini qo'ydim: D

Tavsiya: