Turinys:
- Prekės
- 1 žingsnis: kaip tai veikia
- 2 žingsnis: Aparatūros surinkimas
- 3 žingsnis: kodo rašymas
- 4 žingsnis: ačiū
Video: „RoboPhoto“- mozaikų generatorius visuomenei: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
„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
„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+“.
- „RoboPhoto“veikia viešai prieinamoje vietoje ir (įjungus) savarankiškai. Bėgdami RoboPhoto skatina praeinančius lankytojus paspausti didelį raudoną mygtuką.
- Paspaudus tą didelį raudoną mygtuką, „RoboPhoto“nufotografuos lankytoją, kuris ką tik paspaudė mygtuką su „Kinect“fotoaparatu.
-
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.
- Tada vartotojo prašoma uždėti lipduką ant mozaikinio tikslo lapo.
- 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
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
Kodas
„RoboPhoto“buvo sukurtas naudojant „VisualStudio“kaip dviejų projektų sprendimą:
- Kompiuteryje esanti „Windows Forms“programa priglobia TCP serverį ir tvarko „Kinect“įvestį
- „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:
- visas šio projekto tikslinio vaizdo kelias ir failo pavadinimas
- visas kelias, kuriame saugomos atskiros šio projekto nuotraukos (dalys)
- Mozaikos stulpelių skaičius
- 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ū
Dėkojame, kad perskaitėte mano instrukciją. Tai buvo mano pirmasis. Tikiuosi, kad patiko.
Rekomenduojamas:
„Pragotron“- generatorius „Pulzu“: 5 žingsniai
„Pragotron“- generatorius „Pulzu“: generatorius minutovych pulsu pro hodiny pragotron
„Esp8266“laikrodis ir impulsų generatorius: 3 žingsniai
„Esp8266“laikrodis ir impulsų generatorius: ši instrukcija skirta paprastam bandymo įrenginiui; laikrodis ir impulsų generatorius. Jis naudoja „i2S“aparatinės įrangos sąsają esp8266, kad sukurtų bandomąjį laikrodį arba impulsų seką. Tai palengvina surinkimą, nes nereikia jokios specialios aparatūros
4-20ma generatorius/testeris naudojant „Arduino“: 8 žingsniai
4-20ma generatorius/testeris naudojant „Arduino“: 4–20 mA generatoriai yra prieinami „ebay“, bet aš vienas myliu „pasidaryk pats“dalykų dalį ir naudoju dalis, kurias turiu. Aš norėjau išbandyti mūsų PLC analoginius įėjimus, kad patikrintų mūsų „scada“rodmenis ir išbandyti 4-20 mA instrumentų išėjimą. Yra štai
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): 4 žingsniai (su nuotraukomis)
Orų muzikos generatorius (ESP8266 pagrįstas Midi generatorius): Sveiki, šiandien paaiškinsiu, kaip susikurti savo mažą orų muzikos generatorių. Jis pagrįstas ESP8266, kuris yra tarsi „Arduino“ir reaguoja į temperatūrą, lietų ir šviesos intensyvumas. Nesitikėkite, kad tai sukels visas dainas ar akordų programą
Generatorius - nuolatinės srovės generatorius naudojant „Reed“jungiklį: 3 žingsniai
Generatorius - nuolatinės srovės generatorius naudojant Reed jungiklį: paprastas nuolatinės srovės generatorius Nuolatinės srovės (DC) generatorius yra elektros mašina, kuri mechaninę energiją paverčia nuolatinės srovės elektros energija. Svarbu: nuolatinės srovės (DC) generatorius gali būti naudojamas kaip nuolatinės srovės variklis be jokių konstrukcinių konstrukcijų pokyčiai