Programování

Práce se sadou Azure Kinect Developer Kit

Společnost Microsoft oznámila své kamerové moduly Azure Kinect spolu s HoloLens 2 počátkem roku 2019. Obě zařízení používají stejný kamerový modul se smíšenou realitou a k mapování objektů kolem kamery používají senzor hloubky času letu. Ale kde HoloLens je nositelné zařízení se smíšenou realitou, moduly Azure Kinect jsou určeny k poskytování aplikací strojového učení hostovaných v Azure s připojenými senzory, které lze připojit kdekoli v pracovním prostoru.

Azure Kinect je přímým potomkem modulů Kinect druhé generace dodávaných s Xbox One, ale místo poskytování skutečných vstupů pro hraní her je zaměřen na podnikové uživatele a aplikace. První vývojová sada Azure Kinect, která je určena pro spolupráci s Azure Cognitive Services, se začala dodávat koncem roku 2019 ve Spojených státech a začátkem roku 2020 přidala několik dalších zemí.

Otevření krabice

Sada pro vývojáře Azure Kinect za 399 $ je malá bílá jednotka se dvěma objektivy fotoaparátu, jednou pro širokoúhlou kameru RGB a druhou pro hloubkový senzor Kinect a řadou mikrofonů. Má senzor orientace, který vám umožní používat fotoaparát k vytváření složitých 3D obrazů prostředí připravených k použití ve smíšené realitě. Můžete propojit více zařízení dohromady pro rychlé 3-D skenování nebo pro pokrytí celé místnosti pomocí orientačního senzoru, který vám pomůže pochopit polohu zařízení.

Spolu s kamerovou jednotkou získáte napájecí zdroj, inbusový klíč k odstranění krytu portů řetězení a kabel USB pro připojení k vývojovému počítači. Doporučil bych pořídit si stativ pro stolní počítače nebo jiný typ držáku, protože dodávaný plastový stojan je poměrně malý a nefunguje u většiny stolů nebo monitorů. V krabici není žádný software, pouze odkaz na online dokumentaci, kde si můžete stáhnout SDK zařízení.

Než začnete, měli byste aktualizovat firmware zařízení. Dodává se s SDK a zahrnuje instalační nástroj příkazového řádku. Když spustíte aktualizátor, nejprve zkontroluje aktuální stav firmwaru před instalací firmwaru fotoaparátu a zařízení a poté restartuje. Jakmile se kamera restartuje, pomocí stejného nástroje zkontrolujte, zda se aktualizace úspěšně nainstalovala. Pokud dojde k potížím s instalací, můžete k obnovení původního továrního obrazu použít hardwarový reset fotoaparátu (skrytý pod držákem stativu).

Cítit svět

S nainstalovanou sadou SDK získáte přístup k senzorům zařízení ze svého kódu. Existují tři sady SDK: jedna pro nízkoúrovňový přístup ke všem senzorům kamery, druhá pro použití známých funkcí sledování těla Kinect a druhá pro propojení mikrofonního pole kamery s řečovými službami Azure. Předem připravená aplikace Kinect Viewer zobrazuje dostupné pohledy kamery a streamuje data ze senzorů zařízení. Získáte přístup k širokoúhlé kameře RGB, zobrazení hloubkové kamery a obrazu z infračervené kamery hloubkového snímače. SDK jsou k dispozici pro Windows i pro Linux, konkrétně pro Canonical Ubuntu 18.04 LTS, a lze je stáhnout přímo z Microsoftu nebo z GitHubu.

Je dobré strávit nějaký čas hraním s prohlížečem Kinect. Umožňuje vám vidět, jak fungují různé režimy hloubkové kamery, a pomáhá vám vybrat si úzké nebo široké zorné pole. Můžete vidět data z polohových senzorů, akcelerometru a gyroskopu, a z mikrofonního pole. Když je sada Azure Kinect Developer Kit připojena k vývojovému počítači a funguje, můžete pro ni začít psát kód. Pomocí aplikace pro záznam z příkazového řádku lze zaznamenávat data pro přehrávání v prohlížeči a ukládat informace o hloubce do souboru ve formátu MKV (Matroska Video).

Vytváření vaší první aplikace pro snímání hloubky

Microsoft poskytuje ukázkový kód pro vytváření jednoduché aplikace jazyka C pro práci s Azure Kinect Development Kit. Je zapotřebí pouze jedna knihovna, která poskytuje objekty a metody potřebné pro práci s fotoaparátem. Než nakonfigurujete datové toky zařízení, je nejprve nutné v jakékoli aplikaci zkontrolovat, kolik kamer je připojeno k hostitelskému počítači. Zařízení jsou identifikována podle sériového čísla, takže jej můžete použít k adresování konkrétní kamery při práci s několika připojenými k jednomu počítači nebo zřetězenými.

Sada Azure Kinect Developer Kit poskytuje pouze streamovaná data, takže aplikace potřebují nakonfigurovat rychlost přenosu dat v rámcích za sekundu, spolu s barevnými formáty obrázků a rozlišeními. Jakmile vytvoříte konfigurační objekt, můžete otevřít připojení pomocí konfiguračního objektu, který je připraven streamovat data. Až dočtete datový proud, zastavte a zavřete zařízení.

Snímky jsou zachyceny v snímacím objektu s hloubkovým obrázkem, infračerveným obrázkem a barevným obrázkem pro každý jednotlivý snímek pořízeným ze streamu zařízení. Jakmile máte snímek, můžete extrahovat jednotlivé obrázky připravené k použití ve vaší aplikaci. Objekty obrázků lze doručit do rozhraní API pro strojové vidění Azure, připravené pro rozpoznávání objektů nebo detekci anomálií. Jedním příkladem, který společnost Microsoft při svých demonstracích použila, je aplikace, která pomocí zachyceného videa detekuje, kdy se pracovník v továrně dostane příliš blízko k ovládání strojů; jiný zjistí, že někdo kouří v blízkosti benzínového čerpadla.

Podobný proces vám poskytne data ze snímačů polohy a pohybu. Jelikož jsou pohybová data zachycena vyšší rychlostí než obrazová data, musíte do svého kódu implementovat nějakou formu synchronizace, aby nedošlo ke ztrátě jakýchkoli dat. Zvuková data se snímají pomocí standardních rozhraní API Windows, včetně těch, která používají řečové služby Azure.

Ačkoli hardware Azure Kinect zachycuje velké množství dat, funkce sady SDK ho pomáhají transformovat do použitelné podoby; například přidání hloubkových dat do obrazu RGB za účelem vytvoření obrazů RGB-D, které jsou transformovány do pohledu kamery RGB (a naopak). Jelikož jsou oba senzory posunuty, vyžaduje to deformaci obrazové sítě a sloučení hledisek obou kamer pomocí GPU vašeho počítače. Další transformace generuje mračno bodů, což vám umožní získat hloubková data pro každý pixel ve vašem zachycení. Jednou z užitečných možností v sadě SDK je schopnost zachytit video a datové toky v souboru ve formátu Matroska. Tento přístup umožňuje zařízením s omezenou šířkou pásma dávkovat data a doručovat je, řekněme, zařízením Azure Stack Edge s kontejnery Cognitive Services pro dávkové zpracování.

Sledování těla digitální kostry

Původní hardware Kinect představil sledování těla s kosterním modelem, který lze použít k rychlému vyhodnocení polohy a gest. Stejný přístup pokračuje v sadě Azure Kinect Body Tracking SDK, která využívá technologii paralelního zpracování CUDA GPU společnosti Nvidia pro práci s 3-D obrazovými daty ze snímače hloubky vašeho zařízení. Balíček ukázkové aplikace zobrazuje některé funkce sady SDK, včetně možnosti sledovat více než jednu osobu najednou.

Sada Body Tracking SDK staví na sadě Azure Kinect SDK a používá ji ke konfiguraci a připojení k zařízení. Zachycená obrazová data jsou zpracovávána sledovačem a ukládají data v datové struktuře rámu těla. To obsahuje kolekci kosterních struktur pro identifikovaná těla, mapu 2D indexu, která vám pomůže vizualizovat vaše data, spolu s podkladovými 2D a 3D obrázky, které byly použity ke konstrukci sledovacích dat. Každý snímek lze použít ke konstrukci animací nebo k přenosu informací do nástrojů strojového učení, které mohou pomoci zpracovat sledované pozice ve vztahu k mapě místnosti nebo k ideálním pozicím.

Kognitivní služby Azure jsou výkonným nástrojem pro zpracování dat a přidání Azure Kinect umožňuje jejich použití v široké škále průmyslových a podnikových scénářů. Společnost Microsoft se zaměřuje na rozpoznávání 3D obrazu na pracovišti a pokouší se ukázat, jak lze pomocí rozpoznávání obrazu snížit riziko a zlepšit bezpečnost. K dispozici je dokonce možnost použít řadu zařízení jako systém rychlého objemového snímání, který může pomoci vytvořit prostředí smíšené reality a poskytnout zdrojová data pro CAD a další návrhové nástroje. Výsledkem je flexibilní zařízení, které se s trochou kódu stane velmi výkonným snímacím zařízením.

$config[zx-auto] not found$config[zx-overlay] not found