Mundarija:

RoboPhoto - jamoatchilik uchun mozaik generator: 4 qadam
RoboPhoto - jamoatchilik uchun mozaik generator: 4 qadam

Video: RoboPhoto - jamoatchilik uchun mozaik generator: 4 qadam

Video: RoboPhoto - jamoatchilik uchun mozaik generator: 4 qadam
Video: Nintendo 3DS - Chibi-Robo! Photo Finder Trailer 2024, Noyabr
Anonim
Image
Image
RoboPhoto - hamma uchun mozaik generatori
RoboPhoto - hamma uchun mozaik generatori
RoboPhoto - hamma uchun mozaik generatori
RoboPhoto - hamma uchun mozaik generatori

RoboPhoto-bu real vaqtda fotomozayka generatori

RoboPhoto o'z foydalanuvchilarining fotomozaykasini yaratadi - siz kutasiz.

Tasvirni qayta ishlash, yuzni aniqlash va sun'iy intellekt kabi zamonaviy raqamli texnikani qo'llagan holda, RoboPhoto o'tayotgan va tashrif buyuruvchilarning fotomozaykasini yaratishga qodir-real vaqtda.

Tugma har bosilganda qo'l ostidagi odamning surati olinadi. Bir zumda har bir surat RoboPhoto tomonidan skaner qilinadi va talqin qilinadi. RoboPhoto dasturi keyinchalik har bir tasvirni o'zgartiradi, shunda u kattaroq tasvirning bir qismiga aylanadi va keyin bu o'zgartirilgan rasmni koordinatalar to'plami bilan etiketkaga bosib chiqaradi, bu esa har bir rasmning o'sha katta rasmdagi joyini ko'rsatadi. Keyin har bir tashrif buyuruvchidan o'z rasm-stikerini kattaroq tuvalga faqat mos keladigan panjara qo'yishni so'rashadi.

RoboPhoto ishlayotganda yangi tasvir yaratiladi. Oldindan aniqlangan "nishon tasvirini" taqlid qiladigan ushbu individual fotosuratlardan tashkil topgan fotomozayka.

RoboPhoto shuningdek, bitta foydalanuvchi rejimida ishlaydi. RoboPhoto shu tarzda tuzilganda, bitta foydalanuvchining to'liq mozaikasini yaratadi.

Ta'minotlar

  • Visual Studio va IoT paketlari o'rnatilgan Windows 10 kompyuter
  • Microsoft Windows 10 IoT o'rnatilgan Raspberry Pi 3B+
  • Rangli yorliqli printer (Brother VC-500W)
  • Katta qizil tugmachani foydalanuvchi kiritish uchun poydevorga o'rnatilgan
  • Foydalanuvchilarning fikr-mulohazalari uchun HDMI displey
  • Suratga olish uchun o'g'limdan o'g'irlangan Microsoft Xbox Kinect v2 kamerasi
  • Tarmoq (Wi -Fi, LAN)
  • Maqsadli tarmoq. Tarmoqli bosilgan qog'oz varag'i -koordinatalar bilan to'ldirilgan. Ushbu qog'oz panjara tuval sifatida ishlatiladi, bu erda tashrif buyuruvchilar o'z rasmlarini belgilangan koordinatalarga yopishtirishlari mumkin. Va oxir-oqibat ular birgalikda yakuniy natijani yaratadilar: chiroyli yangi fotomozayka.

ICrosoft Kinect 2.0 kamerasi ishlatilgan, chunki u chuqur tasvirlarni olishi mumkin. Bu xususiyat har bir fotosuratda virtual yashil ekran yaratish uchun ishlatiladi. Shunday qilib, RoboPhoto har bir fotosuratning fonini bo'lajak mozaikadagi maqsadli qismning rangiga mos kelishi uchun qayta bo'yashi mumkin.

1 -qadam: u qanday ishlaydi

Bu qanday ishlaydi
Bu qanday ishlaydi
Bu qanday ishlaydi
Bu qanday ishlaydi
Bu qanday ishlaydi
Bu qanday ishlaydi
Bu qanday ishlaydi
Bu qanday ishlaydi

RoboPhoto - bu katta qizil tugmachali poydevor, yorliqli printer o'rnatilgan kompyuter va foydalanuvchi interfeysi (ekran va tugma) bilan ishlaydigan kichik IoT qurilmasi. Mening holatimda: RaspBerry 3B+.

  1. RoboPhoto hamma uchun ochiq bo'lgan joyda ishlaydi va (uni yoqgandan keyin) o'z-o'zidan ishlaydi. Yugurayotganda, o'tayotgan mehmonlarni RoboPhoto katta qizil tugmani bosishga undaydi.
  2. Qizil tugma bosilganda, RoboPhoto Kinect kamerasi bilan tugmani bosgan mehmonni suratga oladi.
  3. Keyin RoboPhoto o'zining ilg'or A. I -dan foydalanadi. va har bir fotosuratni bo'lajak mozaikaning bir qismiga mos keladigan tarzda o'zgartirish uchun tasvirni qayta ishlash ko'nikmalari. Bunga erishish uchun RoboPhoto har bir fotosuratning fonini oldindan yuklangan tasvir ichidagi maqsadli bo'lak rangiga mos ravishda bo'yaydi. Tahrirlashdan so'ng, RoboPhoto tahrirlangan fotosuratni stikerga bosib chiqaradi va koordinatalar to'plami bilan bu stikerni mozaikaning ichida ko'rsatib beradi.

  4. Keyin foydalanuvchidan stikerni nishon varag'iga joylashtirish so'raladi.
  5. Shunday qilib, ko'pchilik tashrif buyurganidan so'ng, yangi san'at asari paydo bo'ladi. Mozaikani yaratish uchun sizga juda ko'p individual qismlar kerak bo'ladi. Men 600 ta yugurishda yaxshi natijalarga erishdim

RoboPhoto shuningdek, bitta foydalanuvchi rejimida ishlashi mumkin.

Bu konfiguratsiyada RoboPhoto bitta foydalanuvchidan tahrirlangan fotosuratlarning to'liq mozaikasini yaratadi. Tugmani bosgandan so'ng, RoboPhoto foydalanuvchining 600 ga yaqin turli xil fotosuratlarini suratga oladi, so'ngra ularni oldindan tanlangan maqsadli tasvirdan so'ng yaratilgan bitta yangi mozaikani yaratish uchun tartibga soladi va tartibga soladi.

2 -qadam: uskunani yig'ish

Uskunani yig'ish
Uskunani yig'ish
Uskunani yig'ish
Uskunani yig'ish

Yuqoridagi rasmda ko'rsatilgandek, Win 10 kompyuter Kinect kamerasiga ulangan. Kinect USB 3.0 orqali ulangan bo'lishi kerak. Men RoboPhoto yaratganimda - USB 3.0 bilan Raspberry Pi yo'q edi*.

Kompyuter, shuningdek, biriktirilgan yorliq printeriga chop etish uchun ishlatiladi. Mening vaziyatimda birodar VC-500W. Juda arzon uy -ro'zg'or rangli printer. Biroq, bu juda sekin. Iloji bo'lsa, professionallardan foydalanish yaxshiroqdir.

Katta qizil tugma Raspberry Pi 3B+ga ulangan. GPIO -ga faqat 4 ta sim ulangan. Bu yo'riqnomada kerak bo'lgan yagona lehim. Pi, shuningdek, HDMI orqali 7 dyuymli TFT ekrani orqali tashrif buyuruvchilarimizga ma'lumot beradi.

Tartibga solish uchun men yog'ochdan yasalgan poydevor qurdim, unda barcha komponentlar bor.

Poydevor yonida, devorga, maqsadli panjara va koordinatalarni o'z ichiga olgan qog'oz varag'i qo'yilgan (A1/A2). Men foydalanadigan yorliq printeri etiket kengligi = 2, 5 sm ga oshgani uchun, bu katakchadagi barcha kvadratchalar 2, 5 sm x 2, 5 sm.

*Bugungi kunda Raspberry Pi4 USB3.0 ni taklif qiladi. Alse W10 qurilmada ishlashi mumkin. Shunday qilib, nazariy jihatdan kompyuterdan foydalanmasdan RoboPhoto v2.0 yaratish mumkin. Ehtimol, Covid '19 menga tez orada bunday ko'rsatmalarni nashr etish uchun etarli vaqt beradi.

3 -qadam: Kodni yozish

Kodni yozish
Kodni yozish
Kodni yozish
Kodni yozish

Kod

RoboPhoto VisualStudio yordamida ikkita loyihadan iborat yechim sifatida yaratilgan:

  1. Kompyuterda Windows Forms ilovasi TCP serveriga ega va Kinect kirishini boshqaradi
  2. Raspberry Pi 3B+ UWP dasturida TCP mijozini joylashtiradi (ishga tushirish-ilova sifatida o'rnatiladi), tugmachalarni bosish hodisalarini boshqaradi va foydalanuvchiga 7 dyuymli TFT ekrani orqali fikr bildiradi.

Yuqoridagi diagrammada men sizga yumshoqligim nima qilayotgani haqida tushuncha berishga harakat qildim. Buni yaratish uchun yozgan Visual Studio (mutlaqo 100% ishlaydigan) RoboPhoto yechimi ushbu ko'rsatma bilan ta'minlangan. Shu bilan birga, men ushbu faylni pastga tushiradigan har bir kishini ogohlantirishim kerak: Men yozgan kod juda chiroyli emas va ko'pincha mening shaxsiy kompyuterim bilan bog'langan. Shunday qilib, men barchani yaxshiroq, yaxshiroq va barqaror echim yaratishga undayman.

1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…

Tarmoq

Misol kodida, Pi kodi Visual Studio orqali tarmoqdagi IPAddress -ga joylashtirilgan. Ehtimol, buni o'zingiznikiga mos ravishda o'zgartirishingiz kerak. Buni amalga oshirish uchun - Visual Studio'da echimni ochganingizdan so'ng, ARM mijoz loyihasini o'ng tugmasini bosing, so'ngra xususiyatlarni tanlang va masofadan boshqarish pultining IP manziliga kiriting. Bundan tashqari, siz serverdagi Windows Xavfsizlik devori ichidagi 8123 portdagi mijozdan serverga trafikka ruxsat berishingiz kerak. Agar siz echimni Visual Studio -dan ishlatsangiz, u buni U uchun bajarishingizni so'rashi kerak.

Kodlashda men W32 va UWP -ni to'g'ri muloqot qilishda ko'p muammolarga duch keldim. Men buni mijoz va serverda ikkita alohida sinf yordamida ishladim: resp MyEchoClient.cs (ARM mijozida) va ConnectionClient.cs (serverda mijoz ulanishlarini o'rnatish).

Mosaik fayllar - maxsus sinf

RoboPhoto nishon tasvirini taqlid qilish uchun mozaikalar yaratadi. Bu maqsadli tasvir va bo'lajak mozaikani tashkil etuvchi barcha individual fotosuratlar, shuningdek har bir RoboPhoto-ning boshqa xususiyatlari fayl tizimidagi fayllarda saqlanadi. Mening kodim c: / tmp / MosaicBuilder katalogidagi fayllar va papkalar to'plamidan foydalanadi. Ushbu papkada kod [prj_] bilan boshlanadigan papka nomi bilan barcha pastki papkalarni o'qiydi. Bu barcha [prj_] papkalarida u har bir loyiha uchun zarur bo'lgan barcha ma'lumotlarni o'z ichiga olgan [_projectdata.txt] nomli loyiha faylini ochishga harakat qiladi.

Bunday loyiha fayli quyidagilardan iborat:

  1. loyihaning maqsadli tasvirining to'liq yo'li va fayl nomi
  2. ushbu loyihaning individual fotosuratlari (bo'laklari) saqlanadigan to'liq yo'l
  3. Mozaikaning ustunlari soni
  4. Mozaikaning qatorlari soni

Misol loyihalari zip faylida keltirilgan: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx

C# server kodida barcha mozaikani qayta ishlash maxsus sinf orqali amalga oshiriladi: BBMosaicProject.cs

Microsoft Kinect v2.0 - yashil ekran

Har qanday kamera shunchaki rasmga oladi. Lekin men rangli va chuqur tasvirlarni birlashtirish uchun Microsoft Kinect v2.0 dan foydalanganman. Shunday qilib, yashil ekran effektini yaratish mumkin. Kinect -dan olingan barcha rangli tasvirlardagi fon bir xil yashil sirt bilan almashtiriladi (BBBackgroundRemovalTool.cs).

Microsoft. Kinect -ga havola server loyihasiga qo'shildi.

EMGU

Tugma bosilganda olingan fotosuratda odam borligiga ishonch hosil qilishimiz kerak, chunki RoboPhoto -ga yuzni aniqlash qobiliyati qo'shilgan.

www.nuget.org/packages/Emgu. CV/3.4.3.3016

Faqat rasmda odam bo'lganida, bu rasmdagi yashil ekran bir xil rangdagi sirt bilan almashtiriladi, bu rang mozaikadagi nishonning o'rtacha rangiga teng bo'ladi.

4 -qadam: Rahmat

Rahmat
Rahmat

Mening ko'rsatmalarni o'qiganingiz uchun tashakkur. Bu mening birinchi bo'ldi. Umid qilamanki, sizga yoqdi.

Tavsiya: