Obsah:
Video: RoboPhoto - generátor mozaiky pro veřejnost: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:20
RoboPhoto je generátor fotomozaiky v reálném čase
RoboPhoto vytváří fotomozaiku svých uživatelů - na počkání.
Pomocí moderních digitálních technik, jako je zpracování obrazu, rozpoznávání obličejů a umělá inteligence, je RoboPhoto schopen vytvořit fotomozaiku všech návštěvníků, kteří procházejí kolem a stisknou jeho tlačítko-v reálném čase.
Při každém stisknutí tlačítka se pořídí fotografie osoby, která je po ruce. Každá fotografie je okamžitě naskenována a interpretována pomocí RoboPhoto. Software RoboPhoto poté změní veškerý jednotlivý obrázek - tak, aby se stal součástí většího obrázku, a poté tento upravený obrázek vytiskne na nálepku označenou sadou souřadnic, které označují umístění každé fotografie v rámci tohoto většího obrázku. Každý návštěvník je poté požádán, aby umístil svou vlastní fotografickou samolepku na větší plátno obsahující pouze odpovídající mřížku.
Během provozu RoboPhoto bude vytvořen nový obrázek. Fotomozaika složená z těchto jednotlivých fotografií, které budou napodobovat předem definovaný „cílový obraz“.
RoboPhoto také pracuje v režimu pro jednoho uživatele. Když je takto nakonfigurován, RoboPhoto vytvoří úplnou mozaiku jednoho uživatele.
Zásoby
- Počítač s Windows 10 s nainstalovanými balíčky Visual Studio a IoT
- Raspberry Pi 3B+ s nainstalovaným IoT Microsoft Windows 10
- Barevná tiskárna štítků (Brother VC-500W)
- Velké červené tlačítko namontované na podstavci pro vstup uživatele
- Obrazovka HDMI pro zpětnou vazbu od uživatelů
- Fotoaparát Microsoft Xbox Kinect v2- ukradený mému synovi- k fotografování
- Síť (Wifi, LAN)
- Cílová mřížka. List papíru s vytištěnou mřížkou -vyplněný souřadnicemi. Tato papírová mřížka se používá jako plátno, kde mohou návštěvníci nalepit svoji fotografii na určené souřadnice. A tak nakonec společně vytvoří konečný výsledek: nádhernou novou fotomozaiku.
Byla použita kamera Microsoft Kinect 2.0, protože dokáže pořizovat hloubkové snímky. Tato funkce slouží k vytvoření virtuální obrazovky na každém jednotlivém fotografii. Tímto způsobem může RoboPhoto překreslit pozadí na každé jednotlivé fotografii tak, aby odpovídalo barvě cílového kusu v budoucí mozaice.
Krok 1: Jak to funguje
RoboPhoto je instalace obsahující podstavec s velkým červeným tlačítkem, počítač s připojenou tiskárnou štítků a malé zařízení IoT obsluhující uživatelské rozhraní (obrazovka a tlačítko). V mém případě: RaspBerry 3B+.
- RoboPhoto funguje na veřejně přístupném místě a (po zapnutí) funguje samostatně. Při běhu nabádá procházející návštěvníky RoboPhoto, aby zmáčkli jeho velké červené tlačítko.
- Kdykoli je toto velké červené tlačítko stisknuto, RoboPhoto pořídí fotografii návštěvníka, který právě stiskl tlačítko fotoaparátem Kinect.
-
Pak RoboPhoto použije svůj pokročilý A. I. a dovednosti zpracování obrazu, které upraví každou fotografii tak, aby odpovídala kousku v budoucí mozaice. Aby toho bylo dosaženo, RoboPhoto překreslí pozadí každé fotografie tak, aby odpovídalo barvě cílového kusu v předem načteném obrázku. Po úpravě RoboPhoto vytiskne upravenou fotografii na nálepku spolu se sadou souřadnic, které přesně určují umístění této jedné nálepky v mozaice.
- Poté je uživatel požádán, aby nálepku umístil na cílový list mozaiky.
- A tak - po návštěvě mnoha pleople - vznikne nové umělecké dílo. Chcete -li vytvořit mozaiku, budete potřebovat spoustu jednotlivých kusů. Získal jsem slušné výsledky se 600 kusy
RoboPhoto může také fungovat v režimu pro jednoho uživatele.
V této konfiguraci RoboPhoto vytváří úplnou mozaiku upravených fotografií od jednoho uživatele. Po stisknutí tlačítka RoboPhoto pořídí přibližně> 600 různých fotografií uživatele a poté je všechny upraví a uspořádá tak, aby vytvořily jedinou novou mozaiku vytvořenou podle předem zvoleného cílového obrázku.
Krok 2: Sestavení hardwaru
Jak je znázorněno na obrázku výše, počítač Win 10 je připojen ke kameře Kinect. Kinect musí být připojen pomocí USB 3.0. V době, kdy jsem vytvořil RoboPhoto - nebyl k dispozici žádný Raspberry Pi s USB 3.0.*
Počítač se také používá ke zpracování tisku na připojenou tiskárnu štítků. V mém případě Brother VC-500W. Poměrně levná domácí barevná tiskárna štítků. Je to však velmi velmi pomalé. Pokud je to možné, použijte raději profesionální.
Velké červené tlačítko je připojeno k Raspberry Pi 3B+. K GPIO jsou připojeny pouze 4 vodiče. Toto je jediné potřebné pájení provedené v tomto Instructable. Pi také poskytuje zpětnou vazbu našemu návštěvníkovi prostřednictvím 7 '' TFT obrazovky přes HDMI.
Abych to uklidil, postavil jsem dřevěný podstavec, který drží všechny tyto komponenty.
Vedle podstavce ke zdi je umístěn list papíru obsahující cílovou mřížku a souřadnice (A1/A2). Protože tiskárna štítků, kterou jsem použil, byla maximálně šířkou štítku = 2, 5 cm, všechny čtverce v této mřížce měří 2, 5 cm x 2, 5 cm.
*Dnes Raspberry Pi4 nabízí USB3.0. Alse W10 lze spustit na zařízení. Teoreticky by tedy mělo být možné vytvořit RoboPhoto v2.0 bez použití PC. Možná mi Covid '19 poskytne dostatek času na to, abych brzy vydal takový Instructable.
Krok 3: Psaní kódu
Kód
RoboPhoto byl vytvořen pomocí VisualStudio jako řešení se dvěma projekty:
- Aplikace Windows Forms v počítači hostuje server TCP a zpracovává vstup Kinect
- Raspberry Pi 3B+ hostující klienta TCP v aplikaci s hlavičkou UWP (nastavenou jako spouštěcí aplikace), která zvládne události stisknutí tlačítka a poskytne uživateli zpětnou vazbu prostřednictvím 7 '' TFT obrazovky.
Ve výše uvedeném diagramu jsem se pokusil poskytnout vám představu o tom, co moje soft dělá. Visual Studio, které jsem napsal k vytvoření tohoto (absolutně 100% funkčního) řešení RoboPhoto, je součástí tohoto Instructable. Nicméně musím varovat všechny, kteří stahují tento soubor: Kód, který jsem napsal, není zdaleka hezký a často vázán na můj dev-PC. Doporučuji proto všem, aby vytvořili lepší, hezčí a stabilnější řešení.
1drv.ms/u/s!Aq7eBym1bHDKkKcigYzt8az9WEYOOg…
Síť
V ukázkovém kódu je kód Pi nasazen prostřednictvím sady Visual Studio na adresu IPAddress v mé síti. Pravděpodobně byste to měli změnit, aby vyhovovalo vašim vlastním. Chcete -li to provést - klikněte pravým tlačítkem na projekt klienta ARM po otevření řešení v aplikaci Visual Studio, poté vyberte vlastnosti a hodnotu Vzdálený počítač můžete zařadit do IP adresy vašeho vlastního Pi. Také musíte povolit provoz z klienta na server na portu 8123 v bráně Windows Firewall na serveru (PC). Pokud spustíte řešení ze sady Visual Studio, mělo by vás požádat, abyste to udělali pro U.
Při kódování jsem měl spoustu problémů se správnou komunikací W32 a UWP. Začal jsem pracovat pomocí dvou samostatných tříd v klientu a serveru: resp. MyEchoClient.cs (v klientovi ARM) a ConnectionClient.cs (hanlding připojení klienta na serveru).
Soubory mozaiky - vlastní třída
RoboPhoto vytváří mozaiky napodobující cílový obrázek. Tento cílový obrázek a všechny jednotlivé fotografie, které dohromady tvoří budoucí mozaiku, a také některé další vlastnosti každého RoboPhoto jsou uloženy v souborech v souborovém systému. Můj doprovázený kód používá sadu souborů a složek v adresáři c: / tmp / MosaicBuilder. V této složce bude kód číst všechny podsložky s názvem složky, který začíná na [prj_], jako složky projektu mozaiky. Ve všech těchto složkách [prj_] se pokusí otevřít soubor projektu s názvem [_projectdata.txt], který obsahuje všechny informace požadované pro každý projekt.
Takový soubor projektu se skládá z:
- úplnou cestu a název souboru cílového obrázku tohoto projektu
- úplná cesta, kde jsou uloženy jednotlivé fotografie (kousky) tohoto projektu
- Počet sloupců, které bude mozaika obsahovat
- Počet řádků, které bude mozaika obsahovat
Ukázkové projekty jsou k dispozici v souboru zip: / slnBBMosaic2 / wfMosaicServerKinect / bin / x86 / Debug / prj_xxx
V kódu serveru C# se veškeré zpracování mozaiky provádí prostřednictvím vlastní třídy: BBMosaicProject.cs
Microsoft Kinect v2.0 - Greenscreen
K fotografování stačí fotoaparát. Ale já jsem použil Microsoft Kinect v2.0 ke kombinaci barevných obrázků a hloubkových obrazů. Tímto způsobem lze vytvořit efekt greenscreen. Pozadí ve všech barevných obrázcích přijatých od Kinectu bude nahrazeno jednotným zeleným povrchem (BBBackgroundRemovalTool.cs).
Do serveru serverproject byl přidán odkaz na Microsoft. Kinect.
EMGU
Protože potřebujeme mít jistotu, že je osoba na fotografii, která byla pořízena při stisknutí tlačítka, byly do RoboPhoto přidány funkce rozpoznávání obličeje.
www.nuget.org/packages/Emgu. CV/3.4.3.3016
Pouze když je na obrázku osoba, zelená obrazovka na tomto obrázku bude nahrazena jednotným barevným povrchem, přičemž barevné kódy budou stejné jako průměrná barva cílového kusu v mozaice, ze které se tento obrázek stane.
Krok 4: Děkuji
Děkuji za přečtení mého Instructable. Toto bylo moje první. Doufám, že sis to užil.
Doporučuje:
Prototypové brýle pro noční vidění pro airsoft/paintball: 4 kroky
Prototypové brýle pro noční vidění pro Airsoft/Paintball: Krátká poznámka k brýlím pro noční vidění Pravé brýle pro noční vidění (gen 1, gen2 a gen 3) obvykle fungují zesílením okolního světla, nicméně brýle pro noční vidění, které zde vyrobíme, fungují na jiném principu. Budeme používat kameru Pi NoIR, která
Deska plošných spojů pro robota pro sledování linek - Arnab Kumar Das: 4 kroky
Návrh desky plošných spojů pro robota pro sledování linek - Arnab Kumar Das: Tento projekt předpokládá, že jsme již provedli výběr komponent. Aby systém správně fungoval, je důležité porozumět tomu, co každá součást vyžaduje, pokud jde o výkon, napětí, proud, prostor, chlazení atd. Je také důležité porozumět
Nástavec pro únos nohou pro dětskou chůzi: 4 kroky
Příloha k únosu nohou pro dětskou chůzi: Tento návod vám ukáže, jak jsem vytvořil průvodce pro chodce mého syna, který by pomohl zabránit „nůžkování“nebo překřížení nohou při chůzi. Nástavec „trvanlivého lékařského vybavení“od výrobce vás bude stát stovky dolarů; toto je s
Jak rychle realizovat návrh mozaiky v AD / Protel: 3 kroky
Jak rychle zrealizovat návrh mozaiky v AD / Protel: V návrhu DPS často používáme montáž, jak dosáhnout rychlé montáže? Jsou představeny následující metody; Kliknutím sem si vyrobíte vlastní desku plošných spojů: http://www.starivergroup.com/ Způsob montáže v Altium/Protel Takzvaná montáž je ve skutečnosti
Sonda pro měření hladiny podzemní vody pro nastavení nízkých zdrojů: 4 kroky (s obrázky)
Sonda pro měření hladiny podzemní vody pro nastavení nízkých zdrojů: Úvod Od Oxfam jsme obdrželi žádost o vyvinutí jednoduchého způsobu, jakým by školní děti v Afghánistánu mohly monitorovat hladiny podzemní vody v blízkých studních. Tato stránka byla přeložena do Dari Dr. Amirem Haidarim a překlad může být