Turinys:

„RoboPhoto“- mozaikų generatorius visuomenei: 4 žingsniai
„RoboPhoto“- mozaikų generatorius visuomenei: 4 žingsniai

Video: „RoboPhoto“- mozaikų generatorius visuomenei: 4 žingsniai

Video: „RoboPhoto“- mozaikų generatorius visuomenei: 4 žingsniai
Video: Le Mozaic Wall par le robot photo 2024, Lapkritis
Anonim
Image
Image
RoboPhoto - mozaikos generatorius visuomenei
RoboPhoto - mozaikos generatorius visuomenei
RoboPhoto - mozaikos generatorius visuomenei
RoboPhoto - mozaikos generatorius visuomenei

„RoboPhoto“yra realaus laiko fotomozaikos generatorius

„RoboPhoto“sukuria savo naudotojų fotomozaiką, kol laukiate.

Naudodama šiuolaikines skaitmenines technologijas, tokias kaip vaizdo apdorojimas, veido atpažinimas ir dirbtinis intelektas, „RoboPhoto“realiu laiku gali sukurti visų lankytojų, einančių pro šalį ir paspaudusių mygtuką, fotomozaiką.

Kiekvieną kartą paspaudus mygtuką, fotografuojamas žmogus. „RoboPhoto“akimirksniu nuskaito ir interpretuoja kiekvieną nuotrauką. Tada „RoboPhoto“programinė įranga pakeis visą atskirą vaizdą, kad jis taptų didesnio vaizdo dalimi, ir tada atspausdintų šį pakeistą paveikslėlį ant lipduko, pažymėto koordinatėmis, nurodančiomis kiekvienos nuotraukos vietą tame didesniame vaizde. Tada kiekvieno lankytojo prašoma uždėti savo nuotraukų lipduką ant didesnės drobės, kurioje yra tik atitinkamas tinklelis.

„RoboPhoto“veikimo metu bus sukurtas naujas vaizdas. Fotomozaika, sudaryta iš šių atskirų nuotraukų, imituojančių iš anksto nustatytą „tikslinį vaizdą“.

„RoboPhoto“taip pat veikia vieno vartotojo režimu. Kai taip sukonfigūruota, „RoboPhoto“sukuria pilną vieno vartotojo mozaiką.

Prekės

  • „Windows 10“kompiuteris su įdiegtais „Visual Studio“ir „IoT“paketais
  • „Raspberry Pi 3B+“su įdiegta „Microsoft Windows 10 IoT“
  • Spalvotas etikečių spausdintuvas („Brother VC-500W“)
  • Didelis raudonas mygtukas, sumontuotas ant pjedestalo vartotojo įvedimui
  • HDMI ekranas, skirtas naudotojų atsiliepimams
  • „Microsoft Xbox Kinect v2“fotoaparatas- pavogtas iš mano sūnaus- fotografuoti
  • Tinklas (Wifi, LAN)
  • Tikslinis tinklelis. Popieriaus lapas su tinkleliu, užpildytas koordinatėmis. Šis popieriaus tinklelis naudojamas kaip drobė, kur lankytojai gali klijuoti savo nuotrauką ant nurodytų koordinačių. Ir galiausiai jie kartu sudarys galutinį rezultatą: gražią naują fotomozaiką.

Buvo naudojama „icrosoft Kinect 2.0“kamera, nes ji gali fotografuoti gylio vaizdus. Ši funkcija naudojama kiekvienam fotografui sukurti virtualų žalią ekraną. Tokiu būdu „RoboPhoto“gali perdažyti kiekvienos nuotraukos foną, kad jis atitiktų būsimos mozaikos tikslinio gabalo spalvą.

1 žingsnis: kaip tai veikia

Kaip tai veikia
Kaip tai veikia
Kaip tai veikia
Kaip tai veikia
Kaip tai veikia
Kaip tai veikia
Kaip tai veikia
Kaip tai veikia

„RoboPhoto“yra instaliacija, kurioje yra pjedestalas su dideliu raudonu mygtuku, kompiuteris su etikečių spausdintuvu ir mažas daiktų interneto įrenginys, valdantis vartotojo sąsają (ekraną ir mygtuką). Mano atveju: „RaspBerry 3B+“.

  1. „RoboPhoto“veikia viešai prieinamoje vietoje ir (įjungus) savarankiškai. Bėgdami RoboPhoto skatina praeinančius lankytojus paspausti didelį raudoną mygtuką.
  2. Paspaudus tą didelį raudoną mygtuką, „RoboPhoto“nufotografuos lankytoją, kuris ką tik paspaudė mygtuką su „Kinect“fotoaparatu.
  3. Tada „RoboPhoto“naudos pažangias A. I. ir vaizdo apdorojimo įgūdžius, kad pakeistumėte kiekvieną nuotrauką, kad ji atitiktų būsimos mozaikos dalį. Kad tai pasiektų, „RoboPhoto“perdažo kiekvienos nuotraukos foną, kad jis atitiktų iš anksto įkelto vaizdo tikslinės dalies spalvą. Po redagavimo „RoboPhoto“išspausdina redaguotą nuotrauką ant lipduko kartu su koordinačių rinkiniu, kuris tiksliai nurodo šio vieno lipduko vietą mozaikoje.

  4. Tada vartotojo prašoma uždėti lipduką ant mozaikinio tikslo lapo.
  5. Taigi, apsilankius daugeliui žmonių, atsiras naujas meno kūrinys. Norėdami sukurti mozaiką, jums reikės daug atskirų gabalų. Aš gavau padorus rezultatus, kuriuose buvo 600 vienetų

„RoboPhoto“taip pat gali veikti vieno vartotojo režimu.

Šioje konfigūracijoje „RoboPhoto“sukuria pilną vieno vartotojo redaguotų nuotraukų mozaiką. Paspaudus mygtuką, „RoboPhoto“nufotografuos apie> 600 skirtingų vartotojo nuotraukų, tada jas visas redaguos ir sutvarkys, kad sudarytų vieną naują mozaiką, sukurtą po iš anksto pasirinkto tikslinio vaizdo.

2 žingsnis: Aparatūros surinkimas

Aparatūros surinkimas
Aparatūros surinkimas
Aparatūros surinkimas
Aparatūros surinkimas

Kaip parodyta paveikslėlyje aukščiau, „Win 10“kompiuteris yra prijungtas prie „Kinect“kameros. „Kinect“turi būti prijungtas prie USB 3.0. Tuo metu, kai kūriau „RoboPhoto“- nebuvo rasta „Raspberry Pi“su USB 3.0.*

Kompiuteris taip pat naudojamas spausdinti prie pridėto etikečių spausdintuvo. Mano atveju Brother VC-500W. Gana nebrangus namų spalvų etikečių spausdintuvas. Tačiau tai labai labai lėta. Jei galite, geriau naudoti profesionalų.

Didelis raudonas mygtukas pritvirtintas prie „Raspberry Pi 3B+“. Prie GPIO prijungti tik 4 laidai. Tai yra vienintelis litavimas, kurio reikia šioje instrukcijoje. „Pi“taip pat teikia grįžtamąjį ryšį mūsų lankytojui per 7 colių TFT ekraną per HDMI.

Norėdami jį sutvarkyti, aš pastatiau medinį pjedestalą, kuriame laikomi visi šie komponentai.

Šalia pjedestalo, prie sienos, dedamas popieriaus lapas, kuriame yra tikslinis tinklelis ir koordinatės (A1/A2). Kadangi naudojau etikečių spausdintuvą, kurio etiketės plotis = 2, 5 cm, visi šio tinklelio kvadratai yra 2, 5 cm x 2, 5 cm.

*Šiandien „Raspberry Pi4“siūlo USB3.0. „Alse W10“galima paleisti įrenginyje. Taigi teoriškai turėtų būti įmanoma sukurti „RoboPhoto v2.0“nenaudojant kompiuterio. Galbūt „Covid '19“suteiks man pakankamai laiko savarankiškai paskelbti tokį „Instructable“.

3 žingsnis: kodo rašymas

Kodo rašymas
Kodo rašymas
Kodo rašymas
Kodo rašymas

Kodas

„RoboPhoto“buvo sukurtas naudojant „VisualStudio“kaip dviejų projektų sprendimą:

  1. Kompiuteryje esanti „Windows Forms“programa priglobia TCP serverį ir tvarko „Kinect“įvestį
  2. „Raspberry Pi 3B+“priglobia TCP klientą programoje „UWP“(nustatyta kaip paleisties programa), kad būtų galima valdyti mygtuko paspaudimo įvykius ir pateikti naudotojui atsiliepimus per 7 colių TFT ekraną.

Aukščiau pateiktoje diagramoje aš bandžiau jums suprasti, ką daro mano minkštasis. „Visual Studio“, kurią parašiau norėdamas sukurti šį (visiškai 100% veikiantį) „RoboPhoto“sprendimą, pateikiamas kartu su šia instrukcija. Tačiau turiu įspėti visus, kurie atsisako šio failo: mano parašytas kodas toli gražu nėra ir dažnai susietas su mano „dev-PC“. Taigi raginu visus sukurti geresnį, gražesnį ir stabilesnį sprendimą.

1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…

Tinklas

Kodo pavyzdyje „Pi“kodas yra įdiegtas per „Visual Studio“į mano tinklo IPAddress. Tikriausiai turėtumėte tai pakeisti, kad atitiktų jūsų. Norėdami tai padaryti - dešiniuoju pelės mygtuku spustelėkite ARM kliento projektą, atidarę sprendimą „Visual Studio“, tada pasirinkite ypatybes ir perkelkite vertę Nuotolinis aparatas į savo „Pi“IPAdd. Taip pat turite leisti srautui pereiti iš kliento į serverį 8123 prievado serverio (kompiuterio) „Windows“užkardoje. Jei paleisite sprendimą iš „Visual Studio“, jis turėtų paprašyti tai padaryti U.

Koduodamas turėjau daug problemų, kad W32 ir UWP tinkamai bendrautų. Aš supratau, kad naudoju dvi atskiras klases kliente ir serveryje: resp MyEchoClient.cs (ARM kliente) ir ConnectionClient.cs (kliento ryšių serveryje užmezgimas).

Mozaikos failai - pasirinktinė klasė

„RoboPhoto“sukuria mozaikas, imituojančias tikslinį vaizdą. Šis tikslinis vaizdas ir visos atskiros nuotraukos, kurios kartu sudaro būsimą mozaiką, taip pat kai kurios kitos kiekvieno „RoboPhoto“savybės yra saugomos failų sistemos rinkmenose. Mano pridedamas kodas naudoja failų ir aplankų rinkinį kataloge c: / tmp / MosaicBuilder. Šiame aplanke kodas nuskaitys visus poaplankius su aplanko pavadinimu, kuris prasideda [prj_], kaip mozaikos projekto aplankai. Visuose šiuose [prj_] aplankuose jis bandys atidaryti projekto failą pavadinimu [_projectdata.txt], kuriame yra visa informacija, reikalinga kiekvienam projektui.

Tokį projekto failą sudaro:

  1. visas šio projekto tikslinio vaizdo kelias ir failo pavadinimas
  2. visas kelias, kuriame saugomos atskiros šio projekto nuotraukos (dalys)
  3. Mozaikos stulpelių skaičius
  4. Mozaikos eilučių skaičius

Pavyzdiniai projektai pateikiami ZIP faile: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx

C# serverio kode visas mozaikos tvarkymas atliekamas naudojant pasirinktinę klasę: BBMosaicProject.cs

„Microsoft Kinect v2.0“- „Greenscreen“

Jei norite tiesiog fotografuoti, tinka bet kuri kamera. Bet aš naudoju „Microsoft Kinect v2.0“, kad sujungčiau spalvotus vaizdus ir gylio vaizdus. Tokiu būdu galima sukurti žalio ekrano efektą. Visų iš „Kinect“gautų spalvotų vaizdų fonas bus pakeistas vienodu žaliu paviršiumi (BBBackgroundRemovalTool.cs).

Prie serverio projekto buvo pridėta nuoroda į „Microsoft. Kinect“.

EMGU

Kadangi turime būti tikri, kad asmuo yra nuotraukoje, kuri buvo padaryta paspaudus mygtuką, „RoboPhoto“buvo pridėtos veido atpažinimo galimybės.

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

Tik tada, kai paveikslėlyje yra žmogus, žalias ekranas šiame paveikslėlyje bus pakeistas tolygiu spalvotu paviršiumi, kurio spalvų kodai bus lygūs būsimos mozaikos taikinio vidutinei spalvai.

4 žingsnis: ačiū

Ačiū
Ačiū

Dėkojame, kad perskaitėte mano instrukciją. Tai buvo mano pirmasis. Tikiuosi, kad patiko.

Rekomenduojamas: