Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Kuinka se toimii
- Vaihe 2: Laitteiston kokoaminen
- Vaihe 3: Koodin kirjoittaminen
- Vaihe 4: Kiitos
Video: RoboPhoto - mosaiikkigeneraattori yleisölle: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:00
RoboPhoto on reaaliaikainen fotomosaikigeneraattori
RoboPhoto luo käyttäjilleen fotomosaicin odottaessasi.
Käyttämällä nykyaikaisia digitaalisia tekniikoita, kuten kuvankäsittelyä, kasvojentunnistusta ja tekoälyä, RoboPhoto pystyy luomaan fotomosaikin kaikista kävijöistä, jotka kävelevät ohi ja painavat painiketta-reaaliajassa.
Aina kun painiketta painetaan, otetaan valokuva käsillä olevasta henkilöstä. RoboPhoto skannaa ja tulkitsee jokaisen valokuvan välittömästi. RoboPhoto -ohjelmisto muuttaa sitten yksittäisiä kuvia niin, että niistä tulee osa suurempaa kuvaa, ja tulostaa tämän muutetun kuvan tarraan, joka on merkitty koordinaatistoilla, jotka osoittavat jokaisen valokuvan sijainnin suuremmassa kuvassa. Kutakin kävijää pyydetään sitten asettamaan oma valokuvatarransa suuremmalle kankaalle, joka sisältää vain vastaavan ruudukon.
RoboPhoto -toiminnon aikana luodaan uusi kuva. Näistä yksittäisistä valokuvista koostuva fotomosaikki, joka jäljittelee ennalta määriteltyä "kohdekuvaa".
RoboPhoto toimii myös yhden käyttäjän tilassa. Tällä tavalla määritettynä RoboPhoto luo täydellisen mosaiikin yhdestä käyttäjästä.
Tarvikkeet
- Windows 10 -tietokone, johon on asennettu Visual Studio- ja IoT -paketit
- Raspberry Pi 3B+, johon on asennettu Microsoft Windows 10 IoT
- Väritulostin (Brother VC-500W)
- Suuri punainen painike, joka on asennettu jalustaan käyttäjän syöttämistä varten
- HDMI-näyttö antaa käyttäjien palautetta
- Poikaltani varastettu Microsoft Xbox Kinect v2 -kamera valokuvien ottamista varten
- Verkko (Wifi, LAN)
- Kohdeverkko. Paperiarkki, johon on painettu ruudukko -täynnä koordinaatteja. Tätä paperiruudukkoa käytetään kankaana, johon kävijät voivat kiinnittää valokuvansa osoitetuille koordinaateille. Ja niin lopulta he muodostavat yhdessä lopputuloksen: kauniin uuden fotomosaikan.
Käytettiin icrosoft Kinect 2.0 -kameraa, koska se voi ottaa syvyyskuvia. Tätä ominaisuutta käytetään luomaan virtuaalinen vihreänäyttö jokaiselle valokuvaajalle. Tällä tavalla RoboPhoto voi maalata kunkin yksittäisen valokuvan taustan vastaamaan kohdekappaleen väriä tulevassa mosaiikissa.
Vaihe 1: Kuinka se toimii
RoboPhoto on asennus, joka sisältää jalustan, jossa on suuri punainen painike, tietokoneen, johon on kiinnitetty tarratulostin, ja pienen IoT -laitteen, joka käsittelee käyttöliittymää (näyttö ja painike). Minun tapauksessani: RaspBerry 3B+.
- RoboPhoto toimii julkisesti saatavilla olevassa paikassa ja toimii (sen kytkemisen jälkeen) itse. Juoksiessaan RoboPhoto kannustaa ohikulkijoita painamaan isoa punaista painiketta.
- Aina kun suurta punaista painiketta painetaan, RoboPhoto ottaa valokuvan vierailijasta, joka juuri painoi painiketta Kinect -kameralla.
-
Sitten RoboPhoto käyttää edistynyttä A. I. ja kuvankäsittelytaitoja, joilla voit muuttaa jokaisen valokuvan vastaamaan tulevaa mosaiikkia. Tämän saavuttamiseksi RoboPhoto maalaa jokaisen valokuvan taustan vastaamaan esiladatun kuvan kohdeosan väriä. Muokkaamisen jälkeen RoboPhoto tulostaa muokatun valokuvan tarraan yhdessä koordinaattien kanssa, jotka osoittavat tämän yhden tarran sijainnin mosaiikissa.
- Sitten käyttäjää pyydetään asettamaan tarra mosaiikkikohdearkille.
- Ja näin - monien ihmisten vierailun jälkeen - syntyy uusi taideteos. Mosaiikin luomiseen tarvitset paljon yksittäisiä kappaleita, ja minulla on kunnolliset tulokset, joissa on 600 kappaletta
RoboPhoto voi toimia myös yhden käyttäjän tilassa.
Tässä kokoonpanossa RoboPhoto luo täydellisen mosaiikin yhden käyttäjän muokatuista valokuvista. Painikkeen painamisen jälkeen RoboPhoto ottaa noin> 600 erilaista valokuvaa käyttäjästä ja muokkaa ja järjestää ne kaikki muodostamaan yhden uuden mosaiikin, joka on luotu ennalta valitun kohdekuvan jälkeen.
Vaihe 2: Laitteiston kokoaminen
Kuten yllä olevassa kuvassa näkyy, Win 10 -tietokone on liitetty Kinect -kameraan. Kinect on liitettävä USB 3.0: lla. RoboPhoton luomisen aikaan - Raspberry Pi USB 3.0: lla ei ollut saatavilla.*
Tietokonetta käytetään myös tulostamaan liitettyyn tarratulostimeen. Minun tapauksessani Brother VC-500W. Melko halpa kotitalouksien väritarratulostin. Se on kuitenkin hyvin hidasta. Käytä ammattilaista, jos voit.
Suuri punainen painike on kiinnitetty Raspberry Pi 3B+-laitteeseen. GPIO -laitteeseen on liitetty vain 4 johtoa. Tämä on ainoa juottaminen, joka tarvitaan tässä ohjekirjassa. Pi tarjoaa myös palautetta vieraillemme 7 tuuman TFT-näytön kautta HDMI: n kautta.
Sen siivoamiseksi rakensin puisen jalustan, joka pitää kaikki nämä komponentit.
Jalustan viereen seinää vasten asetetaan paperiarkki, joka sisältää kohderistikon ja koordinaatit (A1/A2). Koska käyttämäni tarratulostin maksimoi tarraleveyden = 2, 5 cm, kaikki tämän ruudukon neliöt ovat 2, 5 cm x 2, 5 cm.
*Nykyään Raspberry Pi4 tarjoaa USB3.0 -liitännän. Alse W10 voidaan ajaa laitteella. Joten teoreettisesti pitäisi olla mahdollista luoda RoboPhoto v2.0 ilman tietokonetta. Ehkä Covid '19 antaa minulle tarpeeksi aikaa yksin julkaista tällainen Instructable pian.
Vaihe 3: Koodin kirjoittaminen
Koodi
RoboPhoto luotiin VisualStudion avulla ratkaisuna kahdessa projektissa:
- Tietokoneen Windows Forms -sovellus isännöi TCP -palvelinta ja käsittelee Kinect -syötettä
- Raspberry Pi 3B+ isännöi TCP-asiakasta UWP-nimisessä sovelluksessa (asetettu käynnistyssovellukseksi) käsittelemään painikkeen painallustapahtumia ja antamaan käyttäjälle palautetta 7 tuuman TFT-näytön kautta.
Yllä olevassa kaaviossa olen yrittänyt antaa sinulle käsityksen siitä, mitä pehmeäni tekee. Tämän Instructable -ohjelman mukana toimitetaan Visual Studio, jonka kirjoitin tämän (täysin 100% toimivan) RoboPhoto -ratkaisun luomiseksi. Minun on kuitenkin varoitettava kaikkia tämän tiedoston poistamisesta: Kirjoittamani koodi on kaukana kauniista ja usein sidottu dev-PC: hen. Kannustan siis kaikkia luomaan paremman, mukavamman ja vakaamman ratkaisun.
1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…
Verkko
Esimerkkikoodissa Pi -koodi otetaan käyttöön Visual Studion kautta verkon IPAdress -osoitteeseen. Sinun pitäisi todennäköisesti muuttaa tämä sopivaksi. Voit tehdä tämän napsauttamalla hiiren kakkospainikkeella ARM -asiakasprojektia, kun olet avannut ratkaisun Visual Studiossa, valitse sitten ominaisuudet ja liitä arvo Etäkone omaan Pi: si IPAddressiin. Sinun on myös sallittava liikenne, joka kulkee asiakkaalta palvelimelle palvelimen (PC) Windowsin palomuurin portissa 8123. Jos suoritat ratkaisun Visual Studiosta, sen pitäisi pyytää sinua tekemään se U: lle.
Koodauksen aikana minulla on ollut paljon ongelmia saada W32 ja UWP kommunikoimaan oikein. Sain sen toimimaan käyttämällä kahta erillistä luokkaa asiakas- ja palvelimella: resp MyEchoClient.cs (ARM -asiakasohjelmassa) ja ConnectionClient.cs (hankinta -asiakasyhteydet palvelimessa).
Mosaiikkitiedostot - mukautettu luokka
RoboPhoto luo mosaiikkeja jäljittelemään kohdekuvaa. Tämä kohdekuva ja kaikki yksittäiset valokuvat, jotka yhdessä muodostavat tulevan mosaiikin, sekä jotkin muut RoboPhoton ominaisuudet, on tallennettu tiedostojärjestelmän tiedostoihin. Oheinen koodini käyttää joukkoa tiedostoja ja kansioita hakemistossa c: / tmp / MosaicBuilder. Tässä kansiossa koodi lukee kaikki alikansiot, joiden kansion nimi alkaa [prj_] mosaiikkiprojektikansioina. Kaikissa näissä [prj_] kansioissa se yrittää avata projektitiedoston nimeltä [_projectdata.txt], joka sisältää kaikki kullekin projektille tarvittavat tiedot.
Tällainen projektitiedosto koostuu:
- tämän projektin kohdekuvan koko polku ja tiedostonimi
- koko polku, johon yksittäiset valokuvat (kappaleet) tästä projektista tallennetaan
- Mosaiikin sisältämien sarakkeiden määrä
- Mosaiikin sisältämien rivien määrä
Esimerkkejä projekteista on zip -tiedostossa: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx
C# -palvelinkoodissa kaikki mosaiikkien käsittely tapahtuu mukautetun luokan kautta: BBMosaicProject.cs
Microsoft Kinect v2.0 - Vihreä näyttö
Valokuvien ottaminen millä tahansa kameralla onnistuu. Mutta olen käyttänyt Microsoft Kinect v2.0: ta värikuvien ja syvyyskuvien yhdistämiseen. Tällä tavalla voidaan luoda vihreän näytön vaikutus. Kaikkien Kinectiltä vastaanotettujen värikuvien tausta korvataan yhtenäisellä vihreällä pinnalla (BBBackgroundRemovalTool.cs).
Viittaus Microsoft. Kinectiin lisättiin palvelinprojektiin.
EMGU
Koska meidän on oltava varmoja, että henkilö on valokuvassa, joka otettiin painiketta painettaessa, kasvojentunnistusominaisuudet lisättiin RoboPhotoon.
www.nuget.org/packages/Emgu. CV/3.4.3.3016
Vasta kun henkilö on kuvan sisällä, tämän kuvan vihreä näyttö korvataan yhtenäisellä värillisellä pinnalla, jonka värikoodit vastaavat tämän kuvan tulevan mosaiikin kohdevärin keskimääräistä väriä.
Vaihe 4: Kiitos
Kiitos, että luit Instructable -teokseni. Tämä oli ensimmäinen. Toivon että nautit siitä.
Suositeltava:
DIY Raspberry Pi Downloadbox: 4 vaihetta
DIY Raspberry Pi Downloadbox: Löydätkö usein itsesi lataamasta suuria tiedostoja, kuten elokuvia, torrentteja, kursseja, TV -sarjoja jne., Niin tulet oikeaan paikkaan. Tässä Instructable -ohjelmassa muuttaisimme Raspberry Pi zero -laitteemme latauskoneeksi. Joka voi ladata minkä tahansa
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): 8 vaihetta
Akustinen levitaatio Arduino Unon kanssa Askel askeleelta (8 vaihetta): ultraäänikaiuttimet L298N DC-naarasadapterin virtalähde urospuolisella dc-nastalla ja analogiset portit koodin muuntamiseksi (C ++)
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: 3 vaihetta
4G/5G HD -videon suoratoisto DJI Dronesta alhaisella latenssilla [3 vaihetta]: Seuraava opas auttaa sinua saamaan live-HD-videovirtoja lähes mistä tahansa DJI-dronesta. FlytOS -mobiilisovelluksen ja FlytNow -verkkosovelluksen avulla voit aloittaa videon suoratoiston droonilta
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite
4 vaihetta akun sisäisen vastuksen mittaamiseksi: 4 vaihetta
4 vaihetta akun sisäisen vastuksen mittaamiseksi: Tässä on 4 yksinkertaista vaihetta, joiden avulla voit mitata taikinan sisäisen vastuksen