Sisukord:
Video: RoboPhoto - üldsusele mõeldud mosaiigigeneraator: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
RoboPhoto on reaalajas fotomooside generaator
RoboPhoto loob kasutajatest fotomosaici - kuni ootate.
Kasutades kaasaegseid digitaalseid tehnikaid, nagu pilditöötlus, näotuvastus ja tehisintellekt, on RoboPhoto võimeline looma fotomosaici kõigist külastajatest, kes kõnnivad mööda ja vajutavad selle nuppu-reaalajas.
Iga kord, kui nuppu vajutatakse, tehakse käepärast isikust foto. RoboPhoto skaneerib ja tõlgendab koheselt iga foto. RoboPhoto tarkvara muudab seejärel kogu üksikut pilti, nii et sellest saab osa suuremast pildist, ja prindib selle muudetud pildi kleebisele, millel on koordinaatide komplekt, mis näitab iga foto asukohta sellel suuremal pildil. Seejärel palutakse igal külastajal panna oma fotokleebis suuremale lõuendile, mis sisaldab ainult vastavat ruudustikku.
RoboPhoto töötamise ajal luuakse uus pilt. Fotomoosik, mis koosneb nendest üksikutest fotodest ja mis jäljendab eelnevalt määratletud sihtmärki.
RoboPhoto töötab ka ühe kasutaja režiimis. Sel viisil konfigureerides loob RoboPhoto ühe kasutaja täieliku mosaiigi.
Tarvikud
- Windows 10 arvuti, kuhu on installitud Visual Studio ja IoT paketid
- Raspberry Pi 3B+, millele on installitud Microsoft Windows 10 IoT
- Värviline etiketiprinter (Brother VC-500W)
- Suur punane nupp, mis on paigaldatud pjedestaalile kasutaja sisestamiseks
- HDMI-ekraan kasutaja tagasiside saamiseks
- Microsofti Xbox Kinect v2 kaamera- varastati minu pojalt- pildistamiseks
- Võrk (Wifi, LAN)
- Sihtvõrk. Paberileht, millele on trükitud ruudustik -täidetud koordinaatidega. Seda paberivõrku kasutatakse lõuendina, kuhu külastajad saavad kleepida oma foto määratud koordinaatidele. Ja nii moodustavad nad lõpuks koos lõpptulemuse: uue ilusa fotomosaici.
Kasutati icrosoft Kinect 2.0 kaamerat, kuna see suudab pildistada sügavust. Seda funktsiooni kasutatakse igale pildistajale virtuaalse rohelise ekraani loomiseks. Nii saab RoboPhoto iga üksiku foto tausta uuesti värvida, et see vastaks tulevase mosaiigi sihtmärgi värvile.
Samm: kuidas see toimib
RoboPhoto on installatsioon, mis sisaldab pjedestaali, millel on suur punane nupp, arvutit, millele on kinnitatud etiketiprinter, ja väikest IoT -seadet, mis haldab kasutajaliidest (ekraan ja nupp). Minu puhul: RaspBerry 3B+.
- RoboPhoto töötab avalikult ligipääsetavas kohas ja töötab (pärast selle sisselülitamist) ise. Jooksmisel julgustab RoboPhoto mööduvaid külastajaid vajutama selle suurt punast nuppu.
- Iga kord, kui seda suurt punast nuppu vajutatakse, teeb RoboPhoto pildi külastajast, kes just vajutas nuppu Kinect kaameraga.
-
Seejärel kasutab RoboPhoto oma täiustatud A. I. ja pilditöötlusoskusi, et muuta iga foto sobivaks tulevase mosaiigi tükiks. Selle saavutamiseks värvib RoboPhoto iga foto tausta ümber, et see vastaks eellaaditud pildi sihtmärgi värvile. Pärast redigeerimist prindib RoboPhoto redigeeritud foto kleebisele koos koordinaatide komplektiga, mis määrab selle ühe kleebise asukoha mosaiigis.
- Seejärel palutakse kasutajal kleebis mosaiigi sihtlehele asetada.
- Ja nii - pärast paljude inimeste külastamist - ilmub uus kunstiteos. Mosaiigi loomiseks vajate palju üksikuid tükke. Sain korralikud tulemused, mis jooksid 600 tükki
RoboPhoto saab töötada ka ühe kasutaja režiimis.
Selles konfiguratsioonis loob RoboPhoto ühe mosaiigi ühest kasutajast tehtud redigeeritud fotodest. Pärast nupule vajutamist teeb RoboPhoto kasutajast umbes> 600 erinevat fotot ning seejärel redigeerib ja korraldab need kõik, et moodustada üks uus mosaiik, mis on loodud pärast eelnevalt valitud sihtpilti.
Samm: riistvara kokkupanek
Nagu ülaltoodud pildil näidatud, on Win 10 arvuti ühendatud Kinecti kaameraga. Kinect peab olema ühendatud USB 3.0 kaudu. RoboPhoto loomise ajal - Raspberry Pi koos USB 3.0 -ga polnud saadaval.*
Arvutit kasutatakse ka lisatud etiketiprinteri printimiseks. Minu puhul Brother VC-500W. Üsna odav majapidamises kasutatav värvipaber. See on aga väga väga aeglane. Kasutage parem professionaalset, kui saate.
Suur punane nupp on kinnitatud Raspberry Pi 3B+külge. GPIO külge on ühendatud ainult 4 juhet. See on ainus selles juhendis vajalik jootmine. Pi pakub meie külastajale tagasisidet ka 7-tollise TFT-ekraani kaudu HDMI kaudu.
Selle korrastamiseks ehitasin puidust pjedestaali, mis hoiab kõiki neid komponente.
Pjedestaali kõrvale, vastu seina, asetatakse paberileht, mis sisaldab sihtvõrku ja koordinaate (A1/A2). Kuna etiketiprinter, mida ma kasutasin, on maksimaalselt etiketi laius = 2, 5 cm, on selle ruudustiku kõigi ruutude suurus 2, 5 cm x 2, 5 cm.
*Täna pakub Raspberry Pi4 USB3.0. Alse W10 saab seadmes käivitada. Seega peaks teoreetiliselt olema võimalik luua RoboPhoto v2.0 ilma arvutit kasutamata. Võib -olla annab Covid '19 mulle piisavalt aega iseseisvalt sellise Instructable'i avaldamiseks.
Samm: koodi kirjutamine
Kood
RoboPhoto loodi koos VisualStudioga kahe projekti lahendusena:
- Windowsi vormide rakendus arvutis majutab TCP -serverit ja haldab Kinecti sisendit
- Raspberry Pi 3B+ majutab TCP-klienti UWP-juhises (seatud käivitusrakenduseks), et hallata nupuvajutusega seotud sündmusi ja anda kasutajale tagasisidet oma 7-tollise TFT-ekraani kaudu.
Ülaltoodud skeemil olen püüdnud anda teile aimu, mida mu pehme teeb. Visual Studio, mille kirjutasin selle (absoluutselt 100% töötava) RoboPhoto lahenduse loomiseks, on selle juhendiga kaasas. Siiski pean hoiatama kõiki selle faili allalaadimisi: minu kirjutatud kood pole kaugeltki ilus ja sageli seotud minu dev-PC-ga. Seega julgustan kõiki looma paremat, kenamat ja stabiilsemat lahendust.
1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…
Võrk
Näitekoodis on Pi kood Visual Studio kaudu minu võrgu IPAdressi kaudu juurutatud. Tõenäoliselt peaksite selle muutma omale sobivaks. Selleks paremklõpsake pärast lahenduse Visual Studio avamist ARM -kliendiprojektil, seejärel valige atribuudid ja teisaldage väärtus Remote machine oma PI -aadressile. Samuti peate lubama serveri (arvuti) Windowsi tulemüüri pordil 8123 liikluse, mis liigub kliendilt serverile. Kui käivitate lahenduse Visual Studio'ist, peaks see paluma teil seda U jaoks teha.
Kodeerimise ajal on mul olnud palju probleeme, et W32 ja UWP korralikult suhelda. Sain selle tööle, kasutades kahte eraldi klassi kliendis ja serveris: resp MyEchoClient.cs (ARM -kliendis) ja ConnectionClient.cs (kliendiühenduste ühendamine serveris).
Mosaiikfailid - kohandatud klass
RoboPhoto loob mosaiike sihtpildi jäljendamiseks. See sihtpilt ja kõik üksikud fotod, mis koos moodustavad tulevase mosaiigi, samuti mõned muud RoboPhoto omadused on salvestatud failisüsteemi failidesse. Minu kaasasolev kood kasutab kataloogis c: / tmp / MosaicBuilder failide ja kaustade komplekti. Selles kaustas loeb kood mosaiikprojektide kaustadena kõiki alamkaustu, mille kaustajanimi algab [prj_]. Kõigis neis [prj_] kaustades proovib see avada projektifaili nimega [_projectdata.txt], mis sisaldab kogu teavet, mis on iga projekti jaoks vajalik.
Selline projektifail koosneb:
- selle projekti sihtpildi täielik tee ja failinimi
- kogu tee, kuhu selle projekti üksikud fotod (tükid) salvestatakse
- Mosaiigi veergude arv
- Mosaiigi ridade arv
Näidisprojektid on pakitud ZIP -faili: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx
C# serveri koodis toimub kogu mosaiikide käsitlemine kohandatud klassi kaudu: BBMosaicProject.cs
Microsoft Kinect v2.0 - Greenscreen
Lihtsalt fotode tegemiseks sobib iga kaamera. Kuid ma olen kasutanud Microsoft Kinect v2.0, et kombineerida värvilisi pilte ja sügavust. Nii saab luua rohelise ekraani efekti. Kõigi Kinectilt saadud värvipiltide taust asendatakse ühtlase rohelise pinnaga (BBBackgroundRemovalTool.cs).
Serveriprojektile lisati viide Microsoft. Kinectile.
EMGU
Kuna peame olema kindlad, et nupu vajutamisel tehtud fotol on inimene, lisati RoboPhotole näotuvastuse võimalused.
www.nuget.org/packages/Emgu. CV/3.4.3.3016
Alles siis, kui inimene on pildil, asendab selle pildi rohelise ekraani ühtlane värviline pind, mille värvikoodid võrduvad tulevase mosaiigi sihtmärgi keskmise värviga.
4. samm: aitäh
Täname, et lugesite minu juhendit. See oli minu esimene. Loodan, et teile meeldis.
Soovitan:
Kriimustamiseks mõeldud käsnaandur: 23 sammu (piltidega)
Sponge Sensor for Scratch: (redigeerin seda juhendit Micro: Bit kasutamiseks uuesti! Kuna Scratch 3.0 seda ei toeta ja Micro: Bit toetab) käsn. Kuna käsn on rohkem kokku surutud
Painutusefekt: plaatide painutamiseks mõeldud roboti lõppefekt: 6 sammu
Bend Effector: plaatide painutamiseks mõeldud roboti lõppefekt: Eesmärk: tertsiaarsete painutusaktiivsete elementide moodustamine ja kinnitamine esmasele/sekundaarsele konstruktsioonielemendile/raamile. Rühma liikmed: Babasola Thomas, Niloofar Imani, Plant Songkhroh
Armastus on mängijatele, Arduino projekt, mis on mõeldud üksikisikutele: 5 sammu
Armastus mänguritele, Arduino projekt, mis on mõeldud üksikisikutele: see juhendab minu Arduino projekti nimega "Armastus on mängijatele" mis sai alguse itsitamise ja lõbustamise vahendina. See pole täiuslik ega midagi, aga see toimib
Veel üks välklambi hajuti (mõeldud Canon 580EX II jaoks): 5 sammu
Veel üks välklambi hajuti (mõeldud Canon 580EX II -le): ma tean, et neid on seal miljon, kuid kujundasin siiski oma. Tahtsin sellist, mis oleks odav ja kaasaskantav, kuid mõnevõrra professionaalse väljanägemisega, nii et mu kliendid ei arvaks, et olen täielik amatöör. See hajuti on mõeldud Canon 580
Strobe sein või ühekordseks kasutamiseks mõeldud kaamera ringlussevõtt: 6 sammu
Strobe sein või ühekordseks kasutamiseks mõeldud kaamera ümbertöötlemine: see juhend näitab teile, kuidas ühekordselt kasutatavaid kaameraid hõlpsasti uuesti kasutada ja muuta vilkuvaks seinaks. Tegelikult, kui viskate ära ühekordselt kasutatava kaamera, viskad ka selle. See on kahetsusväärne, sest see osa on endiselt järjekorras