INHOUDSOPGAWE:
Video: RoboPhoto - 'n Mosaïese kragopwekker vir die publiek: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
RoboPhoto is 'n intydse fotomosaïekgenerator
RoboPhoto skep 'n fotomosaïek van sy gebruikers - terwyl u wag.
Deur moderne digitale tegnieke soos beeldverwerking, gesigsherkenning en kunsmatige intelligensie te gebruik, kan RoboPhoto 'n fotomosaïek skep van alle besoekers wat verbystap en op die knoppie druk-in reële tyd.
Elke keer as op die knoppie gedruk word, word 'n foto geneem van die persoon byderhand. Elke foto word onmiddellik deur RoboPhoto geskandeer en geïnterpreteer. Die RoboPhoto -sagteware verander dan elke individuele beeld - sodat dit deel van 'n groter beeld word, en druk dan die gewysigde prent op 'n plakker met 'n stel koördinate wat die ligging van elke foto in die groter beeld aandui. Elke besoeker word dan gevra om sy eie foto-plakker op 'n groter doek te plaas wat slegs 'n ooreenstemmende rooster bevat.
Tydens die werking van RoboPhoto sal 'n nuwe beeld geskep word. 'N Fotomosaïek wat bestaan uit hierdie individuele foto's wat 'n voorafbepaalde' teikenbeeld 'sal naboots.
RoboPhoto werk ook in enkelgebruikermodus. As dit op hierdie manier gekonfigureer is, skep RoboPhoto 'n volledige mosaïek van 'n enkele gebruiker.
Voorrade
- 'N Windows 10 -rekenaar met Visual Studio en IoT -pakkette geïnstalleer
- 'N Raspberry Pi 3B+ met Microsoft Windows 10 IoT geïnstalleer
- 'N Kleuretiketdrukker (Brother VC-500W)
- 'N Groot rooi drukknop gemonteer op 'n voetstuk vir gebruikersinvoer
- 'N HDMI-skerm vir terugvoer van gebruikers
- 'N Microsoft Xbox Kinect v2-kamera- van my seun gesteel- om foto's te neem
- 'N Netwerk (Wifi, LAN)
- 'N Doelrooster. 'N vel papier met 'n rooster daarop gedruk -gevul met koördinate. Hierdie papierrooster word gebruik as doek waar besoekers hul foto op die aangewese koördinate kan plak. En uiteindelik vorm hulle die eindresultaat: 'n pragtige nuwe fotomosaïek.
'N Microsoft Kinect 2.0-kamera is gebruik omdat dit dieptefoto's kan neem. Hierdie funksie word gebruik om 'n virtuele groen skerm op elke individuele fotograp te skep. Op hierdie manier kan RoboPhoto die agtergrond op elke individuele foto herverf sodat dit ooreenstem met die kleur van 'n doelstuk in die toekomstige mosaïek.
Stap 1: Hoe dit werk
RoboPhoto is 'n installasie wat bestaan uit 'n voetstuk met 'n groot rooi knoppie daarop, 'n rekenaar met etiketdrukker aangeheg en 'n klein IoT -toestel wat die gebruikerskoppelvlak hanteer (skerm en knoppie). In my geval: 'n RaspBerry 3B+.
- RoboPhoto werk op 'n openbare toeganklike plek en werk (nadat dit aangeskakel is) self. By die hardloop word verbygaande besoekers deur RoboPhoto aangemoedig om op die groot rooi knoppie te druk.
- Elke keer as op die groot rooi knoppie gedruk word, sal RoboPhoto 'n foto neem van die besoeker wat net met die Kinect -kamera op die knoppie gedruk het.
-
Dan sal RoboPhoto sy gevorderde A. I. en beeldverwerkingsvaardighede om elke foto te verander om by 'n stuk in die toekomstige mosaïek te pas. Om dit te bereik, verf RoboPhoto die agtergrond van elke foto sodat dit ooreenstem met die kleur van 'n doelstuk in 'n vooraf gelaaide prent. Na die redigering druk RoboPhoto die bewerkte foto op 'n plakker uit, tesame met 'n stel koördinate wat die ligging van hierdie een plakker in die mosaïek aandui.
- Daarna word die gebruiker gevra om die plakker op die teikenblad van die mosaïek te plaas.
- En dus - nadat baie mense besoek het - sal 'n nuwe kunswerk verskyn. Om 'n mosaïek te maak, benodig u baie individuele stukke. Ek het behoorlike resultate behaal met 600 stukke
RoboPhoto kan ook in enkelgebruikermodus werk.
In hierdie opset skep RoboPhoto 'n volledige mosaïek van foto's wat deur een gebruiker geredigeer is. Nadat u op die knoppie gedruk het, sal RoboPhoto ongeveer> 600 verskillende foto's van die gebruiker neem, en dan almal redigeer en rangskik om 'n enkele nuwe mosaïek te vorm, geskep na 'n vooraf geselekteerde teikenbeeld.
Stap 2: Monteer die hardeware
Soos in die prent hierbo getoon, is die Win 10 -rekenaar aan die Kinect -kamera gekoppel. Kinect moet via USB 3.0 verbind word. Destyds het ek RoboPhoto geskep - geen Raspberry Pi met USB 3.0 was beskikbaar nie.*
Die rekenaar word ook gebruik om drukwerk na die aangehegte etiketdrukker te hanteer. In my geval 'n Brother VC-500W. 'N Redelike goedkoop huishoudelike kleuretiket. Dit is egter baie stadig. As u kan, gebruik 'n professionele een.
Die Big Red Button is gekoppel aan 'n Raspberry Pi 3B+. Slegs 4 drade is aan die GPIO gekoppel. Dit is die enigste soldeer wat in hierdie instruksies benodig word. Die Pi bied ook terugvoer aan ons besoeker deur middel van 'n 7 '' TFT-skerm via HDMI.
Om dit op te ruim, het ek 'n hout voetstuk gebou wat al hierdie komponente bevat.
Langs die voetstuk, teen die muur, word 'n vel papier met die doelrooster en koördinate geplaas (A1/A2). Omdat die etiketdrukker wat ek gebruik het, maksimum is volgens etiketwydte = 2, 5 cm, meet alle vierkante in hierdie rooster 2, 5 cm x 2, 5 cm.
*Vandag bied Raspberry Pi4 wel USB3.0. Alse W10 kan op die toestel uitgevoer word. Dit sou dus teoreties moontlik wees om 'n RoboPhoto v2.0 te skep sonder die gebruik van 'n rekenaar. Miskien sal Covid '19 my genoeg tyd gee om binnekort so 'n Instructable te publiseer.
Stap 3: Skryf die kode
Kode
RoboPhoto is geskep met VisualStudio as 'n oplossing met twee projekte:
- 'N Windows Forms -toepassing op die rekenaar bied 'n TCP -bediener aan en hanteer Kinect -invoer
- 'N Raspberry Pi 3B+ wat 'n TCP-kliënt in 'n UWP-hoofprogram aanbied (ingestel as opstartprogram) om knopperspersgebeurtenisse te hanteer en terugvoer te gee aan die gebruiker via sy 7' 'TFT-skerm.
In die diagram hierbo het ek probeer om u 'n idee te gee van wat my sagte doen. Die Visual Studio wat ek geskryf het om hierdie (absoluut 100% werkende) RoboPhoto -oplossing te skep, word saam met hierdie instruksies voorsien. Ek moet egter almal waarsku om hierdie lêer af te laai: die kode wat ek geskryf het, is verre van mooi en is dikwels aan my dev-PC gebind. Ek moedig dus almal aan om 'n beter, mooier en bestendiger oplossing te skep.
1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…
Netwerk
In die voorbeeldkode word die Pi -kode deur Visual Studio na 'n IPAddress in my netwerk ontplooi. U moet dit waarskynlik verander sodat dit by u eie pas. Om dit te doen - klik met die rechtermuisknop op die ARM -kliëntprojek nadat u die oplossing in Visual Studio oopgemaak het, kies dan eienskappe en verander die waarde Remote -masjien na die IP -adres van u eie Pi. U moet ook toelaat dat verkeer van kliënt na bediener op poort 8123 binne die Windows Firewall op die bediener (rekenaar) gaan. As u die oplossing van Visual Studio gebruik, moet u dit vra vir U.
Tydens kodering het ek baie probleme ondervind om die W32 en UWP behoorlik te laat kommunikeer. Ek het dit reggekry deur twee aparte klasse in kliënt en bediener te gebruik: resp. MyEchoClient.cs (in die ARM -kliënt) en ConnectionClient.cs (hantering van kliëntverbindings in die bediener).
Mosaïese lêers - pasgemaakte klas
RoboPhoto skep mosaïek om 'n teikenbeeld na te boots. Hierdie doelbeeld en alle individuele foto's wat saam die toekomstige mosaïek uitmaak, asook 'n paar ander eienskappe van elke RoboPhoto, word in lêers in 'n lêerstelsel gestoor. My gepaardgaande kode gebruik 'n stel lêers en gidse in die gids c: / tmp / MosaicBuilder. Binne hierdie vouer lees die kode alle subgidse met 'n vouernaam wat begin met [prj_] as mosaïekprojekvouers. Binne al hierdie [prj_] vouers sal dit probeer om 'n projekbestand met die naam [_projectdata.txt] oop te maak wat alle inligting bevat wat vir elke projek benodig word.
So 'n projeklêer bestaan uit:
- die volledige pad en lêernaam van die doelbeeld van hierdie projek
- die volledige pad waar individuele foto's (stukke) van hierdie projek gestoor word
- Aantal kolomme wat die mosaïek sal bevat
- Aantal rye wat die mosaïek sal bevat
Voorbeeldprojekte word verskaf in die zip -lêer: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx
In die C# -bedienerkode word alle mosaïekhantering gedoen via 'n pasgemaakte klas: BBMosaicProject.cs
Microsoft Kinect v2.0 - Groenskerm
Om net foto's te neem, sal enige kamera doen. Maar ek het Microsoft Kinect v2.0 gebruik om kleurprente en dieptebeelde te kombineer. Op hierdie manier kan 'n groen skerm -effek geskep word. Die agtergrond in alle kleurbeelde wat van Kinect ontvang word, sal vervang word met 'n eenvormige groen oppervlak (BBBackgroundRemovalTool.cs).
'N Verwysing na Microsoft. Kinect is by die bedienerprojek gevoeg.
EMGU
Omdat ons seker moet wees dat 'n persoon op die foto is wat geneem is toe die knoppie ingedruk is, is gesigsherkenningsvermoëns by RoboPhoto gevoeg.
www.nuget.org/packages/Emgu. CV/3.4.3.3016
Slegs as 'n persoon binne die prentjie is, word die groen skerm in hierdie prentjie vervang deur 'n eenvormige gekleurde oppervlak, met kleurkodes gelyk aan die gemiddelde kleur van die doelstuk in die toekomstige mosaïek.
Stap 4: Dankie
Dankie dat u my Instructable gelees het. Dit was my eerste. Ek hoop jy het dit geniet.
Aanbeveel:
Hidro -elektriese kragopwekker uit die asblik?!?!: 11 stappe
Hidro -elektriese kragopwekker uit asblik?!?!: Die eindproduk moet so lyk, waar die metaalpale by die rivier in die grond sou val, die eierstruktuur as 'n waaier sou werk, deur die water gestoot word, wat die tuin veroorsaak draai om, draai die ratte. Die ratverhouding m
Die mini elektrostatiese kragopwekker: 3 stappe
Die Mini Elektrostatiese Generator: hier is 'n instruksie oor hoe om 'n klein elektrostatiese kragopwekker te maak
Instruksies vir die maak van 'n vierstaaf -koppeling vir voetsteun in die middel: 9 stappe (met foto's)
Instruksies vir die maak van 'n viertrekstang vir voetsteun in die middel: middelwielaangedrewe rolstoele (PWC) het die afgelope paar jaar gewilder geword. As gevolg van die plasing van die voorste wiele, is die tradisionele voetstutte aan die sykant egter vervang deur 'n enkele voetsteun in die middel. Ongelukkig is die sentrum
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: 9 stappe (met foto's)
Instruksies vir die voltooiing van die opmaak van die baanskyfontwerp vir die opheffing/verlaging van die middelste voetsteun op motorwielstoele: die middelste voetsteunhysers moet goed onder die sitplek geberg word en laer om te ontplooi. 'N Meganisme vir die onafhanklike werking van die opberging en ontplooiing van voetsteun is nie ingesluit by rolstoele op die mark nie, en PWC -gebruikers het die behoefte uitgespreek
Voeg 'n PC Sync-aansluiting by 'n Nikon Sc-28 Ttl-kabel (gebruik outomatiese instellings vir 'n flits op die kamera en aktiveer die flits van die kamera !!): 4 stappe
Voeg 'n Pc Sync-aansluiting by 'n Nikon Sc-28 Ttl-kabel (gebruik outomatiese instellings vir 'n flits op die kamera en aktiveer flitsers van die kamera !!): in hierdie instruksies sal ek jou wys hoe om een van die lastige eie 3-pins TTL-aansluitings op te verwyder aan die kant van 'n Nikon SC-28-kamera met TTL-kabel en vervang dit met 'n standaard rekenaar-sinchronisasie-aansluiting. Hiermee kan u 'n spesiale flits gebruik