Programovanie

Práca so súpravou Azure Kinect Developer Kit

Spoločnosť Microsoft ohlásila svoje kamerové moduly Azure Kinect spolu s HoloLens 2 začiatkom roku 2019. Obe zariadenia používajú rovnaký kamerový modul so zmiešanou realitou a na mapovanie objektov okolo kamery používajú snímač hĺbky času letu. Ale kde je HoloLens nositeľné zariadenie so zmiešanou realitou, moduly Azure Kinect sú určené na poskytovanie aplikácií strojového učenia hostených v Azure s pripojenými senzormi, ktoré je možné pripevniť kdekoľvek v pracovnom priestore.

Azure Kinect je priamym potomkom modulov Kinect druhej generácie dodávaných s Xbox One, ale namiesto poskytovania skutočných vstupov pre hry je zameraný na podnikových používateľov a aplikácie. Prvá vývojárska súprava Azure Kinect, ktorá je určená na spoluprácu s kognitívnymi službami Azure, sa začala dodávať koncom roka 2019 v Spojených štátoch a začiatkom roku 2020 pribudlo niekoľko ďalších krajín.

Otvorenie škatule

Sada pre vývojárov Azure Kinect za 399 dolárov je malá biela jednotka s dvoma objektívmi fotoaparátu, jedným pre širokouhlý fotoaparát RGB a druhým pre hĺbkový senzor Kinect a radom mikrofónov. Má orientačný snímač, ktorý umožňuje používať fotoaparát na vytváranie zložitých trojrozmerných snímok prostredí pripravených na použitie v zmiešanej realite. Môžete zreťaziť viac zariadení dohromady, aby ste mohli rýchlo skenovať 3-D alebo poskytnúť pokrytie celej miestnosti pomocou senzora orientácie, ktorý pomôže pochopiť polohu zariadenia.

Spolu s kamerovou jednotkou získate napájací zdroj, imbusový kľúč na odstránenie krytu portov reťazenia a kábel USB na pripojenie k vývojovému počítaču. Odporúčam zaobstarať si stolný statív alebo iný typ uchytenia, pretože pribalený plastový stojan je dosť malý a nefunguje s väčšinou stolov alebo monitorov. V balení nie je žiadny softvér, iba odkaz na online dokumentáciu, kde si môžete stiahnuť súpravu SDK zariadenia.

Skôr ako začnete, mali by ste aktualizovať firmvér zariadenia. Toto sa dodáva so súpravou SDK a obsahuje inštalačný nástroj príkazového riadku. Keď spustíte aktualizátor, najskôr skontroluje aktuálny stav firmvéru pred inštaláciou firmvéru fotoaparátu a zariadenia a potom reštartuje. Po reštartovaní fotoaparátu pomocou rovnakého nástroja skontrolujte, či sa aktualizácia úspešne nainštalovala. Ak sa vyskytne problém s inštaláciou, môžete použiť pôvodný obraz z výroby pomocou hardvérového resetovania fotoaparátu (skrytého pod držiakom na statív).

Cítiť svet

S nainštalovanou súpravou SDK získate prístup k senzorom zariadenia zo svojho kódu. Existujú tri SDK: jedna pre nízkoúrovňový prístup ku všetkým senzorom kamery, druhá na použitie známych funkcií sledovania tela Kinect a druhá na prepojenie mikrofónového poľa kamery s rečovými službami Azure. Predinštalovaná aplikácia Kinect Viewer zobrazuje dostupné zobrazenia kamery a streamuje údaje zo senzorov zariadenia. Získate prístup k širokouhlému fotoaparátu RGB, zobrazeniu hĺbkovej kamery a obrazu z infračervenej kamery hĺbkového snímača. Súpravy SDK sú k dispozícii pre Windows aj pre Linux, najmä pre vydanie Canonical Ubuntu 18.04 LTS, a dajú sa stiahnuť priamo z Microsoftu alebo z GitHubu.

Je dobrý nápad stráviť nejaký čas hraním sa s prehliadačom Kinect. Umožní vám vidieť, ako fungujú rôzne režimy hĺbkovej kamery, a pomôže vám zvoliť si úzke alebo široké zorné pole. Môžete vidieť údaje z polohových senzorov, akcelerometra aj gyroskopu, a z poľa mikrofónov. Keď je sada Azure Kinect Developer Kit pripojená k vývojovému počítaču a je funkčná, môžete pre ňu začať písať kód. Na zaznamenávanie údajov na prehrávanie v prehliadači je možné použiť aplikáciu na zaznamenávanie príkazového riadku a ukladať informácie o hĺbke do súboru vo formáte MKV (Matroska Video).

Vytvorte si svoju prvú aplikáciu na snímanie hĺbky

Spoločnosť Microsoft poskytuje vzorový kód na zostavenie jednoduchej aplikácie v jazyku C, ktorá bude pracovať s vývojovou súpravou Azure Kinect. Potrebná je iba jedna knižnica, ktorá poskytuje objekty a metódy potrebné na prácu s fotoaparátom. Pred konfiguráciou dátových tokov zariadenia musí každá aplikácia najskôr skontrolovať, koľko kamier je pripojených k hostiteľskému počítaču. Zariadenia sú identifikované podľa sériového čísla, takže ich môžete použiť na oslovenie konkrétnej kamery pri práci s viacerými pripojenými k rovnakému počítaču alebo spojenými dohromady.

Sada Azure Kinect Developer Kit poskytuje iba streamované dáta, takže aplikácie musia nakonfigurovať rýchlosť dát v snímkach za sekundu spolu s farebnými formátmi a rozlíšením obrázkov. Po vytvorení konfiguračného objektu môžete otvoriť pripojenie pomocou konfiguračného objektu pripraveného na streamovanie údajov. Po dokončení čítania dátového toku zastavte a zatvorte zariadenie.

Snímky sa snímajú v snímacom objekte s hĺbkovým obrázkom, infračerveným obrázkom a farebným obrázkom pre každý jednotlivý obrázok prevzatým zo streamu zariadenia. Po nasnímaní môžete extrahovať jednotlivé obrázky pripravené na použitie vo vašej aplikácii. Obrázkové objekty je možné dodávať do rozhraní API pre strojové videnie Azure a sú pripravené na rozpoznávanie alebo zisťovanie anomálií. Jedným z príkladov, ktoré spoločnosť Microsoft použila na svojich demonštráciách, je aplikácia, ktorá pomocou zachyteného videa zistí, či sa pracovník v továrni príliš priblíži k obsluhe strojov; iný zistí, že niekto fajčí v blízkosti benzínovej pumpy.

Podobný proces vám poskytne údaje zo senzorov polohy a pohybu. Pretože údaje o pohybe sú zachytávané vyššou rýchlosťou ako obrazové údaje, musíte do svojho kódu implementovať určitú formu synchronizácie, aby ste zabránili strate údajov. Zvukové údaje sa zaznamenávajú pomocou štandardných rozhraní API systému Windows vrátane rozhraní používaných rečovými službami Azure.

Aj keď hardvér Azure Kinect zachytáva veľa údajov, funkcie SDK ho pomáhajú transformovať do použiteľnej podoby; napríklad pridaním údajov o hĺbke k obrazu RGB vytvoríte obrázky RGB-D, ktoré sa transformujú do hľadiska fotoaparátu RGB (a naopak). Pretože sú tieto dva senzory posunuté, vyžaduje si to deformáciu obrazovej siete na zlúčenie uhlov pohľadu oboch kamier pomocou GPU vášho počítača. Ďalšou transformáciou sa vytvorí mračno bodov, ktoré vám umožní získať údaje o hĺbke pre každý pixel v snímke. Jednou z užitočných možností v súprave SDK je schopnosť zachytávať video a dátové toky v súbore formátu Matroska. Tento prístup umožňuje zariadeniam s obmedzenou šírkou pásma dávkovať údaje a dodávať ich povedzme zariadeniam Azure Stack Edge s kontajnermi Cognitive Services na dávkové spracovanie.

Sledovanie tela digitálnej kostry

Pôvodný hardvér Kinect predstavil sledovanie tela s kostrovým modelom, ktorý sa dal použiť na rýchle vyhodnotenie držania tela a gest. Rovnaký prístup pokračuje v súprave Azure Kinect Body Tracking SDK, ktorá využíva technológiu paralelného spracovania CUDA GPU spoločnosti Nvidia na prácu s trojrozmernými obrazovými údajmi zo snímača hĺbky vášho zariadenia. Priložená vzorová aplikácia zobrazuje niektoré funkcie súpravy SDK vrátane možnosti sledovať viac ako jednu osobu súčasne.

Sada Body Tracking SDK je založená na súprave Azure Kinect SDK a slúži na jej konfiguráciu a pripojenie k zariadeniu. Zachytené obrazové údaje sleduje sledovač a ukladá ich do dátovej štruktúry rámca tela. Obsahuje zbierku kostrových štruktúr pre identifikované telá, 2-D indexovú mapu, ktorá pomáha vizualizovať vaše údaje, spolu s podkladovými 2-D a 3-D obrázkami, ktoré boli použité na vytvorenie údajov o sledovaní. Každý rámec je možné použiť na konštrukciu animácií alebo na prenos informácií do nástrojov strojového učenia, ktoré môžu pomôcť spracovať sledované polohy vo vzťahu k mape miestnosti alebo k ideálnym pozíciám.

Kognitívne služby Azure sú výkonným nástrojom na spracovanie údajov a pridanie Azure Kinect umožňuje ich použitie v širokej škále priemyselných a podnikových scenárov. So zameraním na rozpoznávanie 3D obrazu na pracovisku sa spoločnosť Microsoft snaží ukázať, ako je možné pomocou rozpoznávania obrazu znížiť riziko a zvýšiť bezpečnosť. Existuje dokonca možnosť použiť celý rad zariadení ako systém rýchleho objemového snímania, ktorý môže pomôcť pri vytváraní prostredí so zmiešanou realitou a poskytovať zdrojové údaje pre CAD a ďalšie návrhové nástroje. Výsledkom je flexibilné zariadenie, ktoré sa s trochou kódu stane veľmi výkonným snímacím zariadením.

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