Sdílet prostřednictvím


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

Každé zařízení Azure Kinect DK obsahuje 3,5 mm synchronizačních portů (synchronizovat a synchronizovat), které můžete použít k propojení více zařízení. Po připojení zařízení může váš software koordinovat načasování aktivační události mezi nimi.

Tento článek popisuje připojení a synchronizaci zařízení.

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

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

  • Vyplňte okluze. I když transformace dat Azure Kinect DK vytvářejí jeden obrázek, dva fotoaparáty (hloubka a RGB) jsou ve skutečnosti malé vzdálenosti od sebe. Posun umožňuje okluze. Okluze nastane, když objekt popředí blokuje zobrazení části objektu pozadí pro jeden ze dvou fotoaparátů na zařízení. Ve výsledném barevném obrázku se zdá, že objekt popředí přetypuje stín na objekt pozadí.
    Například v následujícím diagramu vidí levá kamera šedý pixel P2. Bílý objekt popředí však blokuje paprsk IR kamery na pravé straně. Pravá kamera nemá žádná data pro "P2".
    Diagram znázorňuje dvě kamery směrované na stejný bod a jeden z nich je zablokovaný.
    Další synchronizovaná zařízení můžou poskytovat odlehlá data.
  • Prohledávat objekty ve třech rozměrech.
  • Zvyšte efektivní frekvenci snímků 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) středu expozice.
  • Zvyšte pokrytí kamery v prostoru.

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

Než začnete, zkontrolujte hardwarové specifikace Azure Kinect DK a hloubkovou kameru Azure Kinect DK.

Poznámka:

Vyjměte vnější plastový kryt, aby se zpřístupnil konektory Sync In a Sync Out.

Výběr konfigurace zařízení

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

  • Konfigurace řetězu daisy 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 řetězce daisy
  • Hvězdicová konfigurace. Synchronizujte jedno hlavní zařízení a až dvě podřízená zařízení.
    Diagram znázorňující, jak nastavit několik zařízení Azure DK v konfiguraci hvězdy

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 ale můžete použít vlastní externí zdroj. Pomocí této možnosti můžete například synchronizovat snímky obrázků s jiným zařízením. V konfiguraci řetězce daisy nebo hvězdicové konfiguraci se externí zdroj triggeru připojí k hlavnímu zařízení.

Váš 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: Ne méně než 8 miliampů (mA)
  • Podpora frekvence: Přesně 30 FPS, 15 FPS a 5 FPS (frekvence hlavního signálu VSYNC barevné kamery)

Zdroj aktivační události musí signál doručit do hlavní synchronizace zařízení na portu pomocí zvukového kabelu 3,5 mm. Můžete použít stereo nebo mono kabel. Azure Kinect DK šortuje všechny rukávy a kroužky konektoru zvukového kabelu a zdůvodňuje je. Jak je znázorněno v následujícím diagramu, zařízení obdrží signál synchronizace pouze z tipu 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í azure Kinect recorderu s externími synchronizovanými zařízeními.

Poznámka:

Synchronizace je VSync pro kameru RGB. Časové razítka pro všechna zařízení jsou nastavená na nulu a započítávají se. Společnost Microsoft neoznačovala minimální a maximální šířku synchronizačního impulsu a doporučuje mimicking impulsu generovaného synchronizací z Azure Kinect DK.

Plánování nastavení fotoaparátu a konfigurace softwaru

Informace o tom, jak nastavit software pro ovládání fotoaparátů a použití dat obrázků, 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 zvážit tyto faktory.

Důležité informace o expozici

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

Ve smyčce zachycení obrázků se vyhněte opakovanému nastavení stejné expozice. Rozhraní API volejte jenom jednou, když je potřeba.

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

Pokud více hloubkových fotoaparátů znázorňuje překrývající se pole zobrazení, musí každá kamera zobrazit svůj vlastní přidružený laser. Aby se lasery navzájem nezasahovaly, měly by být snímky kamery posunuty od sebe o 160μs nebo více.

Pro každý snímek hloubkové kamery se laser zapne devětkrát a je aktivní pouze pro 125μs pokaždé. Laser je pak nečinný pro 1450μs nebo 2390μs v závislosti na režimu provozu. 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í senzoru hloubky. Pomocí dat z této tabulky můžete vypočítat minimální posun (čas 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é.

Ve vašem softwaru použijte depth_delay_off_color_usec nebo subordinate_delay_off_master_usec se ujistěte, že se každý laser IR aktivuje ve vlastním okně 160μs nebo má jiné pole zobrazení.

Poznámka:

Skutečná šířka impulsu je 125 μs, ale uvádíme 160us, abychom zajistili nějaký leeway. Když jako příklad vezmeme NFOV UNBINNED, každý 125μs pulse následuje 1450μs nečinný. Součet těchto hodnot - (9 x 125) + (8 x 1450) - vrátí dobu expozice 12,8 ms. Skříň, kterou můžete prokládání expozice 2 zařízení, je mít první impuls druhého fotoaparátu, který spadne v první nečinné období první kamery. Zpoždění mezi prvním a druhým fotoaparátem může být až 125μs (šířka impulsu), ale doporučujeme některé závětí, proto 160μs. Při použití 160μs můžete prokládání období 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, abyste mohli podporovat konfiguraci, kterou chcete sestavit. Informace v této části vám použijí k zajištění připravenosti všech zařízení a hardwaru, než začnete s nastavením.

Zařízení Azure Kinect DK

Pro každé zařízení Azure Kinect DK, které chcete synchronizovat, postupujte takto:

  • Ujistěte se, že je na zařízení nainstalovaný nejnovější firmware. Další informace o tom, jak aktualizovat zařízení, najdete v tématu Aktualizace firmwaru Azure Kinect DK.
  • Odeberte kryt zařízení, aby se zobrazily synchronizační porty.
  • Poznamenejte si sériové číslo pro každé 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č. V závislosti na tom, jak zařízení používáte a kolik dat se přenáší přes připojení USB, můžete použít vyhrazený hostitelský kontroler.

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

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

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

  1. Upravit /etc/default/grub.
  2. Vyhledejte následující řádek:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    
    Nahraďte ho tímto řádkem:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=32"
    

    Poznámka:

    Tyto příkazy nastaví paměť USB na 32 MB. Toto je ukázkové nastavení dvakrát výchozí hodnota. Pro vaše řešení můžete nastavit mnohem větší hodnotu.

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

Kabely

Chcete-li připojit zařízení k sobě a k hostitelským počítačům, musíte použít kabely 3,5 mm male-to-male (označované také jako zvukový kabel 3,5 mm). Kabely by měly být kratší než 10 metrů a mohou být stereo nebo mono.

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í. Box Azure Kinect DK neobsahuje kabely. Musíte je koupit 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 řetězce daisy

  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é má být hlavním zařízením, a připojte zvukový kabel 3,5 mm do portu Synchronizovat .
  4. Připojte druhý konec kabelu k synchronizačnímu portu prvního podřízeného zařízení.
  5. Pokud chcete připojit jiné zařízení, připojte další kabel k portu Synchronizovat mimo první podřízené zařízení a do synchronizačního portu dalšího 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 připojení kabelu. Port Synchronizovat mimo port by měl být prázdný.

Připojení zařízení Azure Kinect DK v konfiguraci hvězdičky

  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é má být hlavním zařízením, a připojte jeden konec rozdělovače sluchátek do jeho synchronizačního portu.
  4. Připojte zvukové kabely 3,5 mm k "rozděleným" koncích rozdělovače sluchátek.
  5. Zapojte druhý konec každého kabelu do synchronizačního portu jednoho 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. Opakujte tento postup podle potřeby pro testování jednotlivých podřízených 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ého 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ření 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í, Azure Kinect Viewer po spuštění zařízení nezobrazí obrázek. Dokud podřízené zařízení neobdrží synchronizační signál z hlavního zařízení, nezobrazí se žádný obrázek.

  5. Po spuštění podřízeného zařízení otevřete hlavní zařízení pomocí druhé instance Azure Kinect Vieweru.
  6. V části Externí synchronizace vyberte Hlavní.
  7. Vyberte Spustit.

Když se spustí hlavní zařízení Azure Kinect, měly by se na obou instancích prohlížeče Azure Kinect Zobrazit obrázky.

Kalibrace zařízení jako synchronizované sady

Jakmile ověříte, že zařízení komunikují správně, můžete je kalibrovat tak, aby vytvářela obrázky v jedné doméně.

V jednom zařízení jsou hloubkové a RGB kamery kalibrované tak, aby spolupracovaly. Pokud ale musí spolupracovat více zařízení, musí se kalibrovat, aby bylo možné určit, jak transformovat obrázek z domény kamery, která ji zachytila do domény fotoaparátu, kterou chcete použít ke zpracování obrázků.

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

Další informace o kalibraci najdete v tématu Použití funkcí kalibrace Azure Kinect.

Další kroky

Po nastavení synchronizovaných zařízení můžete také zjistit, jak používat