Synchronizace několika zařízení Azure Kinect DK

Každé zařízení Azure Kinect DK obsahuje 3,5mm synchronizační porty (sync in a sync out), které můžete použít k propojení více zařízení dohromady. Po připojení zařízení může software koordinovat časování triggerů mezi nimi.

Tento článek popisuje, jak připojit a synchronizovat zařízení.

Výhody používání více zařízení Azure Kinect DK

Existuje mnoho důvodů, proč používat více zařízení Azure Kinect DK, včetně následujících:

  • Vyplňte okluze. I když transformace dat Azure Kinect DK vytvoří jeden obrázek, tyto dvě kamery (hloubka a RGB) jsou od sebe ve skutečnosti malé vzdálenosti. Posun umožňuje okluze. Okluze nastane, když objekt popředí blokuje zobrazení části objektu pozadí pro jednu ze dvou fotoaparátů na zařízení. Ve výsledném barevném obrázku se zdá, že objekt popředí vrhá stín na objekt pozadí.
    Například v následujícím diagramu levá kamera vidí šedý pixel "P2". Bílý objekt popředí ale blokuje infračervený paprsek pravé strany kamery. Pravá kamera neobsahuje žádná data pro P2.
    Diagram znázorňuje dvě kamery směrované na stejný bod, přičemž jedna z nich je blokovaná.
    Další synchronizovaná zařízení můžou poskytovat uzavřená data.
  • Prohledávat objekty ve třech rozměrech.
  • Zvyšte efektivní snímkovou frekvenci na hodnotu, která je větší než 30 snímků za sekundu (FPS).
  • Zachyťte několik barevných obrázků 4K stejné scény, které jsou zarovnané do 100 mikrosekund (μs) od středu expozice.
  • Zvětšete pokrytí kamery v prostoru.

Plánování konfigurace s více zařízeními

Než začnete, nezapomeňte si projít hardwarové specifikace Azure Kinect DK a hloubkovou kameru Azure Kinect DK.

Poznámka

Odstraňte vnější plastový kryt, aby se odhalily konektory Sync In a Sync Out.

Vyberte konfiguraci zařízení.

Ke konfiguraci zařízení můžete použít některý z následujících přístupů:

  • Konfigurace daisy-chain. Synchronizujte jedno hlavní zařízení a až osm podřízených zařízení.
    Diagram znázorňující, jak připojit zařízení Azure Kinect DK v konfiguraci daisy chain
  • Hvězdicová konfigurace. Synchronizujte jedno hlavní zařízení a až dvě podřízená zařízení.
    Diagram znázorňující, jak nastavit více zařízení Azure DK v konfiguraci s hvězdičkou

Použití triggeru externí synchronizace

V obou konfiguracích hlavní zařízení poskytuje aktivační signál pro podřízená zařízení. Pro aktivační událost synchronizace však můžete použít vlastní externí zdroj. Tuto možnost můžete například použít k synchronizaci snímků s jiným zařízením. V konfiguraci daisy chain nebo hvězdicové konfiguraci se externí zdroj triggeru připojí k hlavnímu zařízení.

Externí zdroj triggeru musí fungovat stejným způsobem jako hlavní zařízení. Musí poskytovat synchronizační signál, který má následující vlastnosti:

  • Aktivní vysoké
  • Šířka impulsu: větší než 8 μs
  • 5V TTL/CMOS
  • Maximální kapacita jízdy: Nejméně 8 miliamps (mA)
  • Podpora frekvence: Přesně 30 FPS, 15 FPS a 5 FPS (frekvence hlavního signálu VSYNC barevné kamery)

Zdroj triggeru musí signál doručit do hlavního zařízení Sync v portu pomocí zvukového kabelu 3,5 mm. Můžete použít stereofonní nebo mono kabel. Azure Kinect DK zkrátí všechny rukávy a kroužky konektoru zvukového kabelu a zasunou je. Jak je znázorněno na následujícím diagramu, zařízení přijímá synchronizační signál pouze ze špičky konektoru.

Konfigurace kabelů pro externí aktivační signál

Další informace o tom, jak pracovat s externím zařízením, najdete v tématu Použití zařízení Azure Kinect Recorder s externími synchronizovanými zařízeními.

Poznámka

Sync Out je VSync pro kameru RGB. Časová razítka pro všechna zařízení jsou nastavená na nulu a počítají se. Společnost Microsoft ne charakterizuje minimální a maximální šířku synchronizačního impulsu a doporučuje napodobovat puls vygenerovaný funkcí Synchronizace z Azure Kinect DK.

Plánování nastavení kamery a konfigurace softwaru

Informace o tom, jak nastavit software pro ovládání fotoaparátů a použití obrazových dat, najdete v sadě Azure Kinect Sensor SDK.

Tato část popisuje několik faktorů, které ovlivňují synchronizovaná zařízení (ale ne jednotlivá zařízení). Váš software by měl vzít v úvahu tyto faktory.

Aspekty expozice

Pokud chcete řídit přesné načasování každého zařízení, doporučujeme použít ruční nastavení expozice. Při automatickém nastavení expozice může každá barevná kamera dynamicky měnit skutečnou expozici. Vzhledem k tomu, že expozice ovlivňuje časování, tyto změny rychle odsunou kamery mimo synchronizaci.

Ve smyčce zachytávání obrázků se vyhněte opakovanému nastavování stejného nastavení expozice. V případě potřeby volejte rozhraní API jenom jednou.

Zabránění rušení mezi několika hloubkovými kamerami

Pokud se překrývají pole zobrazení více hloubkových kamer, musí každá kamera zobrazovat svůj vlastní přidružený laser. Aby se zabránilo vzájemnému rušení laserů, měly by být snímky fotoaparátu vzájemně posunuty o 160 μs nebo více.

Pro každý záznam hloubkové kamery se laser zapne devětkrát a pokaždé je aktivní pouze 125 μs. Laser je pak v nečinnosti 1450 μs nebo 2390 μs v závislosti na provozním režimu. Toto chování znamená, že výchozí bod pro výpočet posunu je 125 μs.

Rozdíly mezi hodinami fotoaparátu a hodinami firmwaru zařízení navíc zvyšují minimální posun na 160 μs. Pokud chcete vypočítat přesnější posun konfigurace, poznamenejte si režim hloubky, který používáte, a podívejte se na nezpracovanou tabulku časování snímače hloubky. Pomocí dat z této tabulky můžete vypočítat minimální posun (dobu expozice jednotlivých fotoaparátů) pomocí následující rovnice:

Doba expozice = (IR pulses × pulse width) + (období nečinnosti × doba nečinnosti)

Při použití posunu 160 μs můžete nakonfigurovat až devět dalších hloubkových kamer tak, aby se každý laser zapíná, zatímco ostatní lasery jsou nečinné.

V softwaru použijte nebo depth_delay_off_color_usecsubordinate_delay_off_master_usec , abyste měli jistotu, že každý IR laser vystřelí ve vlastním okně 160 μs nebo má jiné zorné pole.

Poznámka

Skutečná šířka impulsu je 125 μs, ale uvádíme 160us, abychom zajistili určitou závětří. Když jako příklad vezmeme NFOV UNBINNED, každý 125μs puls následuje 1450 μs nečinný. Součet těchto hodnot - (9 x 125) + (8 x 1450) - dává dobu expozice 12,8ms. Skříň, kterou můžete proklánět expozici 2 zařízení, je mít první puls druhého fotoaparátu, který spadne v prvním období nečinnosti první kamery. Zpoždění mezi první a druhou kamerou může být i jen 125 μs (šířka impulsu), ale doporučujeme nějakou volnost, a proto 160 μs. Při 160 μs můžete proklánět dobu expozice maximálně 10 fotoaparátů.

Příprava zařízení a dalšího hardwaru

Kromě několika zařízení Azure Kinect DK možná budete muset získat další hostitelské počítače a další hardware, aby podporovaly konfiguraci, kterou chcete vytvořit. Pomocí informací v této části se před zahájením nastavení ujistěte, že jsou všechna zařízení a hardware připravené.

Zařízení Azure Kinect DK

Pro každé zařízení Azure Kinect DK, které chcete synchronizovat, udělejte toto:

  • Ujistěte se, že je na zařízení nainstalovaný nejnovější firmware. Další informace o aktualizaci zařízení najdete v článku Aktualizace firmwaru Azure Kinect DK.
  • Odeberte kryt zařízení, aby se zobrazily porty synchronizace.
  • Poznamenejte si sériové číslo každého zařízení. Toto číslo použijete později v procesu nastavení.

Hostitelské počítače

Každý Azure Kinect DK obvykle používá svůj vlastní hostitelský počítač. Můžete použít vyhrazený hostitelský řadič v závislosti na tom, jak zařízení používáte a kolik dat se přenáší přes připojení USB.

Ujistěte se, že je sada Azure Kinect Sensor SDK nainstalovaná na každém hostitelském počítači. Další informace o instalaci sady Sensor SDK najdete v článku Rychlý start: Nastavení Azure Kinect DK.

Počítače s Linuxem: Paměť USB na Ubuntu

Hostitelské počítače s Linuxem ve výchozím nastavení přidělují řadiči USB pouze 16 MB paměti jádra pro zpracování přenosů PŘES USB. Tato částka je obvykle dostatečná na podporu jednoho Azure Kinect DK. Pokud ale chcete podporovat více zařízení, musí mít řadič USB více paměti. Chcete-li zvětšit paměť, postupujte takto:

  1. Upravte /etc/default/grub.
  2. Vyhledejte následující řádek:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    
    Nahraďte ho pomocí tohoto řádku:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=32"
    

    Poznámka

    Tyto příkazy nastaví paměť USB na 32 MB. Toto je příklad nastavení na dvojnásobek výchozí hodnoty. Můžete nastavit mnohem větší hodnotu, která je vhodná pro vaše řešení.

  3. Spusťte příkaz sudo update-grub.
  4. Restartujte počítač.

Kabely

Pokud chcete zařízení připojit k sobě navzájem a k hostitelským počítačům, musíte použít 3,5mm kabel mezi muži (označovaný také jako 3,5mm zvukový kabel). Kabely by měly být kratší než 10 metrů a mohou být stereofonní nebo monofonní.

Počet kabelů, které musíte mít, závisí na počtu zařízení, která používáte, a také na konkrétní konfiguraci zařízení. Azure Kinect DK box neobsahuje kabely. Musíte je zakoupit samostatně.

Pokud připojíte zařízení v konfiguraci hvězdic, musíte mít také jeden rozdělovač sluchátek.

Připojení zařízení

Připojení zařízení Azure Kinect DK v konfiguraci daisy chain

  1. Připojte každý Azure Kinect DK k napájení.
  2. Připojte každé zařízení k hostitelskému počítači.
  3. Vyberte jedno zařízení, které se má stát hlavním zařízením, a připojte zvukový kabel 3,5 mm k jeho portu Pro synchronizaci .
  4. Druhý konec kabelu zapojte do portu Synchronizace prvního podřízeného zařízení.
  5. Pokud chcete připojit jiné zařízení, připojte další kabel k portu Synchronizace prvního podřízeného zařízení a k portu Synchronizovat v dalším zařízení.
  6. Opakujte předchozí krok, dokud nebudou připojena všechna zařízení. Poslední zařízení by mělo mít pouze jedno kabelové připojení. Port synchronizace by měl být prázdný.

Připojení zařízení Azure Kinect DK pomocí hvězdicové konfigurace

  1. Připojte každý Azure Kinect DK k napájení.
  2. Připojte každé zařízení k hostitelskému počítači.
  3. Vyberte jedno zařízení, které se má stát hlavním zařízením, a připojte jeden konec rozdělovače sluchátek k jeho portu Synchronizovat.
  4. Připojte 3,5mm zvukové kabely k "rozděleným" koncům rozdělovače sluchátek.
  5. Druhý konec každého kabelu zapojte do portu Synchronizace na jednom z podřízených zařízení.

Ověřte, že jsou zařízení připojená a komunikují.

Pokud chcete ověřit, že jsou zařízení správně připojená, použijte Azure Kinect Viewer. Podle potřeby tento postup opakujte a otestujte každé podřízené zařízení v kombinaci s hlavním zařízením.

Důležité

Pro účely tohoto postupu musíte znát sériové číslo každé sady Azure Kinect DK.

  1. Otevřete dvě instance Azure Kinect Vieweru.
  2. V části Otevřít zařízení vyberte sériové číslo podřízeného zařízení, které chcete otestovat.
    Otevřít zařízení

    Důležité

    Pokud chcete získat přesné zarovnání zachytávání obrázků mezi všemi zařízeními, musíte spustit hlavní zařízení jako poslední.

  3. V části Externí synchronizace vyberte Sub.
    Spuštění podřízené kamery
  4. Vyberte Spustit.

    Poznámka

    Vzhledem k tomu, že se jedná o podřízené zařízení, prohlížeč Azure Kinect po spuštění zařízení nezobrazuje obrázek. Dokud podřízené zařízení neobdrží signál synchronizace z hlavního zařízení, nezobrazí se žádný obrázek.

  5. Po spuštění podřízeného zařízení použijte k otevření hlavního zařízení jinou instanci prohlížeče Azure Kinect Viewer.
  6. V části Externí synchronizace vyberte Předloha.
  7. Vyberte Spustit.

Když se spustí hlavní zařízení Azure Kinect, měly by obě instance Prohlížeče Azure Kinect zobrazovat obrázky.

Kalibrace zařízení jako synchronizované sady

Jakmile ověříte, že zařízení komunikují správně, můžete je kalibrovat a vytvářet image v jedné doméně.

Na jednom zařízení jsou hloubkové kamery a kamery RGB kalibrované tak, aby spolupracovaly. Pokud ale musí spolupracovat více zařízení, musí být kalibrována, aby bylo možné určit, jak transformovat obrázek z domény kamery, která ho zachytila, na doménu kamery, kterou chcete použít ke zpracování obrázků.

Existuje několik možností křížové kalibrace zařízení. Microsoft poskytuje ukázku kódu zelené obrazovky GitHubu, která používá metodu OpenCV. Soubor Readme pro tuto ukázku kódu obsahuje další podrobnosti a pokyny pro kalibraci zařízení.

Další informace o kalibraci najdete v tématu Použití kalibračních funkcí Azure Kinect.

Další kroky

Po nastavení synchronizovaných zařízení se můžete také dozvědět, jak používat