Përmbajtje:
- Furnizimet
- Hapi 1: Si funksionon
- Hapi 2: Montimi i harduerit
- Hapi 3: Shkrimi i Kodit
- Hapi 4: Faleminderit
Video: RoboPhoto - një Gjenerator Mozaiku për Publikun: 4 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:14
RoboPhoto është një gjenerator fotomosaik në kohë reale
RoboPhoto krijon një fotomosaik të përdoruesve të tij - ndërsa prisni.
Duke përdorur teknika dixhitale moderne si përpunimi i imazhit, njohja e fytyrës dhe inteligjenca artificiale, RoboPhoto është në gjendje të krijojë një fotomozajk të të gjithë vizitorëve që kalojnë dhe shtypin butonin e tij-në kohë reale.
Sa herë që shtypet butoni, merret një fotografi e personit në dorë. Menjëherë çdo fotografi skanohet dhe interpretohet nga RoboPhoto. Softueri RoboPhoto më pas do të ndryshojë të gjithë imazhin individual - në mënyrë që të bëhet pjesë e një imazhi më të madh, dhe pastaj të printojë këtë fotografi të ndryshuar në një afishe të etiketuar me një grup koordinatash që tregojnë vendndodhjen e secilës fotografi brenda asaj imazhi më të madh. Secilit vizitor i kërkohet më pas të vendosë afishen e vet me fotografi në një kanavacë më të madhe që përmban vetëm një rrjet përkatës.
Gjatë funksionimit të RoboPhoto, do të krijohet një imazh i ri. Një fotomosaik i përbërë nga këto fotografi individuale që do të imitojnë një "imazh objektiv" të paracaktuar.
RoboPhoto gjithashtu funksionon në modalitetin e një përdoruesi të vetëm. Kur konfigurohet në këtë mënyrë, RoboPhoto krijon një mozaik të plotë të një përdoruesi të vetëm.
Furnizimet
- Një kompjuter Windows 10 me paketa Visual Studio dhe IoT të instaluara
- Një Raspberry Pi 3B+ me Microsoft Windows 10 IoT të instaluar
- Një printer me etiketë me ngjyra (Brother VC-500W)
- Një buton i madh i kuq i montuar në një piedestal për futjen e përdoruesit
- Një ekran HDMI për reagimet e përdoruesve
- Një kamerë Microsoft Xbox Kinect v2- e vjedhur nga djali im- për të bërë fotografi
- Një rrjet (Wifi, LAN)
- Një rrjet objektiv. Një fletë letre me një rrjet të shtypur mbi të -e mbushur me koordinata. Ky rrjet letre përdoret si kanavacë ku vizitorët mund të ngjisin fotografinë e tyre në koordinatat e përcaktuara. Dhe kështu përfundimisht ata do të formojnë së bashku rezultatin përfundimtar: një fotomozaik të ri të bukur.
Një aparat fotografik icrosoft Kinect 2.0 u përdor sepse mund të marrë imazhe në thellësi. Ky funksion përdoret për të krijuar një ekran të gjelbër virtual në secilin fotograf individual. Në këtë mënyrë RoboPhoto mund të pikturojë sfondin në secilën fotografi individuale që të përputhet me ngjyrën e një pjese të synuar brenda mozaikut të ardhshëm.
Hapi 1: Si funksionon
RoboPhoto është një instalim që përmban një piedestal me një buton të madh të kuq në të, një kompjuter me printer etiketë të bashkangjitur dhe një pajisje të vogël IoT që trajton Ndërfaqen e Përdoruesit (ekran dhe buton). Në rastin tim: një RaspBerry 3B+.
- RoboPhoto funksionon brenda një vendndodhjeje të arritshme për publikun dhe është (pasi e ndez atë) vetë-operues. Kur vraponi, vizitorët kalimtarë inkurajohen nga RoboPhoto të shtypin butonin e tij të madh të kuq.
- Sa herë që shtypet ai buton i madh i kuq, RoboPhoto do të bëjë një fotografi të vizitorit që sapo e ka shtypur butonin me kamerën Kinect.
-
Pastaj RoboPhoto do të përdorë AI -në e saj të përparuar. dhe aftësitë e përpunimit të imazhit për të ndryshuar secilën fotografi që të përputhet me një pjesë brenda mozaikut të ardhshëm. Për ta arritur këtë, RoboPhoto ngjyros sfondin e secilës fotografi që të përputhet me ngjyrën e një pjese të synuar brenda një imazhi të ngarkuar paraprakisht. Pas redaktimit, RoboPhoto printon foton e redaktuar në një afishe së bashku me një sërë koordinatash që përcaktojnë me saktësi vendndodhjen e kësaj afisheje brenda mozaikut.
- Pastaj përdoruesit i kërkohet të vendosë afishen në fletën e synuar të mozaikut.
- Dhe kështu - pasi të kenë vizituar shumë njerëz - do të shfaqet një vepër e re arti. Për të krijuar një mozaik do t'ju duhen shumë pjesë individuale. Kam marrë rezultate të mira me 600 copë
RoboPhoto gjithashtu mund të funksionojë në modalitetin e përdoruesit të vetëm.
Në këtë konfigurim RoboPhoto krijon një mozaik të plotë të fotografive të redaktuara nga një përdorues i vetëm. Pasi të keni shtypur butonin, RoboPhoto do të shkrepë rreth> 600 fotografi të ndryshme të përdoruesit, dhe më pas do t'i modifikojë dhe rregullojë të gjitha për të formuar një mozaik të vetëm të ri, të krijuar pas një imazhi objektiv të para-zgjedhur.
Hapi 2: Montimi i harduerit
Siç tregohet në figurën e mësipërme, PC Win 10 është i lidhur me kamerën Kinect. Kinect duhet të lidhet me USB 3.0. Në kohën kur krijova RoboPhoto - asnjë Raspberry Pi me USB 3.0 nuk ishte në dispozicion.*
PC përdoret gjithashtu për të trajtuar printimin në etiketën e bashkangjitur të etiketës. Në rastin tim një Brother VC-500W. Një etiketë mjaft e lirë e ngjyrave shtëpiake. Sidoqoftë, është shumë shumë i ngadalshëm. Më mirë përdorni një profesionist nëse mundeni.
Butoni i Madh i Kuq është i bashkangjitur me një Raspberry Pi 3B+. Vetëm 4 tela janë bashkangjitur në GPIO. Kjo është bashkimi i vetëm i nevojshëm i bërë në këtë Udhëzues. Pi gjithashtu siguron reagim për vizitorin tonë me anë të një ekrani TFT 7 me HDMI.
Për ta rregulluar atë, ndërtova një piedestal prej druri që mban të gjithë këta përbërës.
Pranë piedestalit, përballë murit, vendoset një fletë letre që përmban rrjetin e synuar dhe koordinatat (A1/A2). Për shkak se printeri i etiketës që kam përdorur maksimizohet sipas gjerësisë së etiketës = 2, 5 cm, të gjithë katrorët në këtë rrjet kanë përmasa 2, 5cm x 2, 5cm.
*Sot, Raspberry Pi4 ofron USB3.0. Alse W10 mund të ekzekutohet në pajisje. Pra, teorikisht duhet të jetë e mundur të krijohet një RoboPhoto v2.0 pa përdorimin e një kompjuteri. Ndoshta Covid '19 do të më japë kohë të mjaftueshme për të botuar një udhëzues të tillë së shpejti.
Hapi 3: Shkrimi i Kodit
Kodi
RoboPhoto u krijua me VisualStudio si një zgjidhje me dy projekte:
- Një aplikacion Windows Forms në PC po pret një server TCP dhe po trajton hyrjen e Kinect
- Një Raspberry Pi 3B+ që strehon një klient TCP brenda një aplikacioni të kryesuar nga UWP (i vendosur si aplikacion fillestar) për të trajtuar ngjarjet e shtypjes së butonit dhe për t'i siguruar përdoruesit reagime përmes ekranit të tij 7 "TFT.
Në diagramin e mësipërm, jam përpjekur t'ju jap një ide se çfarë po bën softi im. Studio Visual që kam shkruar për të krijuar këtë zgjidhje (absolutisht 100% funksionuese) RoboPhoto është e pajisur me këtë udhëzues. Sidoqoftë, unë duhet t'i paralajmëroj të gjithë duke zbritur këtë skedar: Kodi që kam shkruar nuk është aq i bukur dhe shpesh lidhet me kompjuterin tim dev. Kështu që unë i inkurajoj të gjithë të krijojnë një zgjidhje më të mirë, më të mirë dhe më të qëndrueshme.
1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…
Rrjetit
Në kodin shembull, kodi i Pi -së vendoset përmes Visual Studio në një IPAddress në rrjetin tim. Ju ndoshta duhet ta ndryshoni këtë për t'iu përshtatur tuajit. Për ta bërë këtë - klikoni me të djathtën mbi projektin e klientit ARM pasi të keni hapur zgjidhjen në Visual Studio, pastaj zgjidhni vetitë dhe kaloni vlerën e makinës në distancë në IPAdresën e Pi tuaj. Gjithashtu ju duhet të lejoni që trafiku të kalojë nga klienti në server në portin 8123 brenda Windows Firewall në server (PC). Nëse e drejtoni zgjidhjen nga Visual Studio, duhet t'ju kërkojë ta bëni atë për U.
Gjatë kodimit kam pasur shumë probleme që W32 & UWP të komunikojnë siç duhet. Unë e fillova atë duke përdorur dy klasa të veçanta në klient dhe server: resp MyEchoClient.cs (në klientin ARM) dhe ConnectionClient.cs (duke lidhur lidhjet e klientëve në server).
Skedarë mozaiku - klasë me porosi
RoboPhoto krijon mozaikë për të imituar një imazh të synuar. Ky imazh i synuar, dhe të gjitha fotografitë individuale që së bashku përbëjnë mozaikun e ardhshëm, si dhe disa veti të tjera të secilës RoboPhoto ruhen në skedarë në një sistem skedarësh. Kodi im i shoqëruar përdor një sërë skedarësh dhe dosjesh në drejtorinë c: / tmp / MosaicBuilder. Brenda këtij dosje, kodi do të lexojë të gjitha nën -dosjet me një emër dosje që fillon me [prj_] si dosje të projektit mozaik. Brenda të gjithë këtyre dosjeve [prj_] do të përpiqet të hapë një skedar projekti të quajtur [_projectdata.txt] që përmban të gjithë informacionin e kërkuar për secilin projekt.
Një skedar projekti i tillë përbëhet nga:
- shtegu i plotë dhe emri i skedarit të imazhit të synuar të këtij projekti
- shtegu i plotë ku ruhen fotografi (pjesë) të këtij projekti individual
- Numri i kolonave që do të përmbajë mozaiku
- Numri i rreshtave që do të përmbajë mozaiku
Shembuj të projekteve jepen në skedarin zip: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx
Në kodin e serverit C#, i gjithë trajtimi i mozaikut bëhet përmes një klase të personalizuar: BBMosaicProject.cs
Microsoft Kinect v2.0 - Greenscreen
Për të bërë fotografi, çdo aparat fotografik do të bëjë. Por unë kam përdorur Microsoft Kinect v2.0 për të kombinuar imazhe me ngjyra dhe imazhe të thella. Në këtë mënyrë, mund të krijohet një efekt me ekran të gjelbër. Sfondi në të gjitha imazhet me ngjyra të marra nga Kinect do të zëvendësohet me një sipërfaqe uniforme jeshile (BBBackgroundRemovalTool.cs).
Një referencë për Microsoft. Kinect u shtua në serverprojekt.
EMGU
Për shkak se ne duhet të jemi të sigurt se një person është në fotografinë e marrë kur është shtypur butoni, aftësitë e njohjes së fytyrës i janë shtuar RoboPhoto.
www.nuget.org/packages/Emgu. CV/3.4.3.3016
Vetëm kur një person është brenda figurës, ekrani i gjelbër në këtë foto do të zëvendësohet nga një sipërfaqe me ngjyrë të njëtrajtshme, me kode të ngjyrave të barabarta me ngjyrën mesatare të pjesës së synuar në mozaikun e ardhshëm, kjo fotografi do të bëhet.
Hapi 4: Faleminderit
Faleminderit që lexuat Udhëzuesin tim. Kjo ishte e para ime. Shpresoj se ju ka pelqyer.
Recommended:
Gjenerator sinjali me dy kanale për kitarë: 10 hapa
Gjenerator sinjali me dy kanale për kitarë: Ky projekt është një dizajn i thjeshtë për tu ndërtuar, origjinal për një gjenerator sinjali me dy kanale për kitarë dhe përdorime të tjera. Ai mbulon të gjithë gamën e notave të kitarës (për ju kitaristët, nga vargu i hapur Low E - 83 Hertz, deri në shqetësimin e 24 -të në lartësitë e larta
3 Faza Gjenerator Vala Sinus Bazuar në Arduino Për shkak: 5 Hapa
3 Faza Gjenerator Vala Sinus Bazuar në Arduino Due: qëllimi i këtij aksioni është të ndihmojë dikë që po përpiqet të përdorë performancën më të madhe të Due + mungesë referencash + fletë të dhënash jo të dobishme. Ky projekt është në gjendje të gjenerojë deri në 3 faza sinusale @ 256 mostra / cikël me frekuencë të ulët (< 1kHz) dhe 16 sekonda
Gjenerator - Gjenerator DC duke përdorur kallamin e kallamit: 3 hapa
Gjenerator - Gjeneratori DC duke përdorur kallamin e kallamit: Gjenerator i thjeshtë DC Një gjenerator i rrymës së drejtpërdrejtë (DC) është një makinë elektrike e cila konverton energjinë mekanike në energji elektrike me rrymë të drejtpërdrejtë. E rëndësishme: Një gjenerator i rrymës direkte (DC) mund të përdoret si motor DC pa ndonjë konstruktiv ndryshimet
Përshtatës energjie për gjenerator biçikletash .: 6 hapa (me fotografi)
Përshtatës i energjisë për gjeneratorin e biçikletave .: Mirëmëngjes. Bëhet fjalë për një përshtatës (një tjetër) për energjinë elektrike të furnizuar nga një gjenerator biçikletash. Para së gjithash, çfarë është një 'gjenerator biçikletash'? It’sshtë një gjenerator i energjisë elektrike që merr lëvizjen nga rrotat dhe pedalet e një biçiklete; në fakt, ajo konvergon
Gjenerator i energjisë kinetike për minierat kripto: 7 hapa
Gjenerator Kinetic Energy për Crypto Mining: Unë kisha një seri frymëzimesh të ndryshme të projektimit. Më pëlqeu shumë kjo vajzë më parë e cila ishte e fiksuar pas biçikletës dhe nuk kishte shumë kohë të lirë për shkak të punës dhe kolegjit. Doja të ndërtoja diçka që ajo do të donte, dhe pata një FinTech Hackathon