Freigeben über


Synchronisierung mehrerer Azure Kinect DK-Geräte

Jedes Azure Kinect DK-Gerät besitzt 3,5-mm-Synchronisierungsports (Sync In und Sync Out), mit denen Sie mehrere Geräte miteinander verbinden können. Nachdem Sie die Geräte angeschlossen haben, kann Ihre Software die Auslösezeiten zwischen ihnen koordinieren.

In diesem Artikel wird beschrieben, wie Sie die Geräte verbinden und synchronisieren.

Vorteile der Verwendung mehrerer Azure Kinect DK-Geräte

Es gibt viele Gründe für die Verwendung mehrerer Azure Kinect DK-Geräte einschließlich der folgenden:

  • Einfügen von Verdeckungen. Obwohl die Azure Kinect DK-Datentransformationen ein einzelnes Bild hervorbringen, sind die beiden Kameras (Tiefe und RGB) tatsächlich etwas voneinander entfernt. Der Offset macht die Verdeckung möglich. Eine Okklusion tritt auf, wenn ein Vordergrundobjekt die Ansicht eines Teils eines Hintergrundobjekts für eine der beiden Kameras eines Geräts blockiert. Im resultierenden Farbbild scheint das Vordergrundobjekt einen Schatten auf das Hintergrundobjekt zu werfen.
    Im folgenden Diagramm sieht die linke Kamera beispielsweise das graue Pixel „P2“. Das weiße Vordergrundobjekt blockiert jedoch den Infrarotstrahl der rechten Kamera. Die rechte Kamera hat keine Daten für „P2“.
    Diagramm: Zwei Kameras, die auf den gleichen Punkt gerichtet sind, und eine Kamera ist blockiert.
    Mit zusätzlichen synchronisierten Geräten können die verdeckten Daten bereitgestellt werden.
  • Scannen von Objekten in drei Dimensionen.
  • Erhöhen Sie die effektive Bildfrequenz auf einen Wert, der größer als 30 Frames pro Sekunde (FpS) ist.
  • Zeichnen Sie mehrere 4K-Farbbilder der gleichen Szene auf, die alle innerhalb von 100 Mikrosekunden (μs) von der Mitte der Aufnahme liegen.
  • Erhöhen der Kameraabdeckung im Raum.

Planen Ihrer Konfiguration mit mehreren Geräten

Bevor Sie beginnen, lesen Sie unbedingt die Artikel zu Azure Kinect DK-Hardwarespezifikationen und zur Azure Kinect DK-Tiefenkamera.

Hinweis

Nehmen Sie die äußere Plastikabdeckung ab, um an den Ein- und Ausgang für die Synchronisierung zu gelangen.

Auswählen einer Gerätekonfiguration

Sie können für Ihre Gerätekonfiguration einen der folgenden Ansätze wählen:

  • Verkettungskonfiguration. Synchronisieren Sie ein Mastergerät und bis zu acht untergeordnete Geräte.
    Diagramm: Herstellen einer Verbindung für Azure Kinect DK-Geräte in einer Verkettungskonfiguration
  • Sternkonfiguration. Synchronisieren Sie ein Mastergerät und bis zu zwei untergeordnete Geräte.
    Diagramm: Einrichten mehrerer Azure DK-Geräte in einer Sternkonfiguration

Verwenden eines externen Synchronisierungsauslösers

In beiden Konfigurationen stellt das Mastergerät das auslösende Signal für die untergeordneten Geräte bereit. Sie können jedoch eine benutzerdefinierte externe Quelle als Synchronisierungsauslöser verwenden. Beispielsweise können Sie mit dieser Option Bildaufzeichnungen mit anderen Geräten synchronisieren. Sowohl in der Verkettungs- als auch der Sternkonfiguration wird die externe Auslöserquelle mit dem Mastergerät verbunden.

Die externe Auslöserquelle muss genau so funktionieren wie das Mastergerät. Sie muss ein Synchronisierungssignal mit folgenden Eigenschaften senden:

  • Aktiv hoch
  • Impulsbreite: größer als 8 μs
  • 5 V TTL/CMOS
  • Maximale Steuerungskapazität: Nicht kleiner als 8 Milliampère (MA)
  • Frequenzunterstützung: Genau 30 FPS, 15 FPS und 5 FPS (Frequenz des Farbkameramaster-VSYNC-Signals)

Die Auslöserquelle muss das Signal über ein 3,5-mm-Audiokabel an den Sync In-Port des Mastergeräts senden. Sie können ein Stereo- oder Monokabel verwenden. Das Azure Kinect DK schließt alle Schäfte und Ringe des Audiokabelsteckers kurz und erdet sie. Wie im folgenden Diagramm gezeigt, empfängt das Gerät das Synchronisierungssignal nur über die Steckerspitze.

Kabelkonfigurationen für ein externes Auslösersignal

Weitere Informationen zum Arbeiten mit externen Geräten finden Sie unter Verwenden des Azure Kinect-Rekorders mit externen synchronisierten Geräten.

Hinweis

Bei dem Synchronisierungsausgang handelt es sich um die vertikale Synchronisierung für die RGB-Kamera. Die Zeitstempel für alle Geräte werden auf Null festgelegt und zählen vorwärts. Die Mindest- und Maximalbreite des Synchronisationsimpulses wurde von Microsoft nicht charakterisiert, und es wird empfohlen, den vom Synchronisierungsausgang eines Azure Kinect DK-Geräts generierten Impuls zu imitieren.

Planen Ihrer Kameraeinstellungen und Softwarekonfiguration

Informationen zum Einrichten Ihrer Software zum Steuern der Kameras und zum Verwenden der Bilddaten finden Sie unter Informationen zum Sensor-SDK für Azure Kinect.

In diesem Abschnitt werden verschiedene Faktoren erörtert, die synchronisierte Geräte (aber nicht einzelne Geräte) beeinflussen. Ihre Software sollte diese Faktoren berücksichtigen.

Überlegungen zur Belichtung

Wenn Sie das genaue Timing der einzelnen Geräte steuern möchten, sollten Sie eine manuelle Belichtungseinstellung verwenden. Unter der automatischen Belichtungseinstellung kann jede Farbkamera die tatsächliche Belichtung dynamisch ändern. Da sich die Belichtung auf das Timing auswirkt, entfernen solche Änderungen die Kameras schnell aus der Synchronisierung.

Vermeiden Sie in der Bildaufzeichnungsschleife Wiederholungen der gleichen Belichtungseinstellung. Rufen Sie die API nur einmal auf, wenn sie benötigt wird.

Vermeiden von Störungen zwischen mehreren Tiefenkameras

Wenn mehrere Tiefenkameras sich überlappende Sichtfelder aufnehmen, muss jede Kamera ihren einen eigenen zugeordneten Laser aufnehmen. Um zu verhindern, dass die Laser einander stören, sollten die Kameraaufzeichnungen um mindestens 160 μs voneinander versetzt sein.

Für jede Tiefenkameraaufzeichnung wird der Laser neun Mal eingeschaltet und ist jeweils nur 125 μs lang aktiv. Der Laser ist dann abhängig vom Betriebsmodus für 1.450 μs oder 2.390 μs inaktiv. Darum ist der Ausgangspunkt für die Offsetberechnung 125 μs.

Außerdem erhöhen die Unterschiede zwischen der Kamerauhr und der Firmwareuhr des Geräts den minimalen Offset auf 160 μs. Um einen präziseren Offset für Ihre Konfiguration zu berechnen, notieren Sie sich den von Ihnen verwendeten Tiefenmodus, und nutzen Sie die Rohtiminingtabelle des Tiefensensors. Anhand der Daten aus dieser Tabelle können Sie den minimalen Offset (die Belichtungszeit jeder Kamera) mithilfe der folgenden Gleichung berechnen:

Belichtungszeit = (IR-Impulse x Impulsbreite) + (Inaktivitätszeiträume x Inaktivitätszeit)

Wenn Sie einen Offset von 160 μs verwenden, können Sie bis zu neun zusätzliche Tiefenkameras konfigurieren, sodass jeder Laser eingeschaltet wird, während die anderen Laser inaktiv sind.

Verwenden Sie in Ihrer Software depth_delay_off_color_usec oder subordinate_delay_off_master_usec, um sicherzustellen, dass jeder IR-Laser in seinem eigenen 160 μs-Fenster ausgelöst wird oder ein anderes Sichtfeld hat.

Hinweis

Die tatsächliche Impulsbreite beträgt 125 μs, es werden jedoch 160 Mikrosekunden angegeben, um einen gewissen Spielraum zu haben. Bei NFOV UNBINNED folgen beispielsweise auf jeden 125 μs-Impuls 1.450 μs Inaktivität. Die Summe, (9 x 125) + (8 x 1.450), ergibt die Belichtungszeit von 12,8 ms. Sie können die Belichtung von 2 Geräten am engsten verschachteln, wenn der erste Impuls der zweiten Kamera in den ersten Leerlaufzeitraum der ersten Kamera fällt. Die Verzögerung zwischen der ersten und der zweiten Kamera könnte minimal 125 μs betragen (die Breite eines Impulses), aber ein gewisser Spielraum wird empfohlen, daher die Angabe von 160 μs. 160 μs ermöglichen es Ihnen, die Belichtungszeiten von bis zu 10 Kameras zu überlappen.

Vorbereiten von Geräten und anderer Hardware

Außer mehreren Azure Kinect DK-Geräten haben Sie möglicherweise zusätzliche Hostcomputer und andere Hardware, um die Konfiguration zu unterstützen, die Sie erstellen möchten. Bevor Sie mit der Einrichtung beginnen, stellen Sie anhand der Informationen in diesem Abschnitt sicher, dass alle Geräte und Hardware bereit sind.

Azure Kinect DK-Geräte

Führen Sie für jedes Azure Kinect DK-Gerät, das Sie synchronisieren möchten, folgende Schritte aus:

  • Stellen Sie sicher, dass auf dem Gerät die neueste Firmware installiert ist. Weitere Informationen zum Aktualisieren Ihrer Geräte finden Sie unter Aktualisieren der Azure Kinect DK-Firmware.
  • Entfernen Sie die Geräteabdeckung, um die Synchronisierungsports anzuzeigen.
  • Notieren Sie sich die Seriennummer jedes Geräts. Sie werden diese Nummer später beim Setup verwenden.

Hostcomputer

In der Regel verwendet jedes Azure Kinect DK seinen eigenen Hostcomputer. Je nachdem, wie Sie das Gerät verwenden und wie viele Daten über die USB-Verbindung übertragen werden, können Sie einen dedizierten Hostcontroller verwenden.

Stellen Sie sicher, dass das Azure Kinect Sensor SDK auf den einzelnen Hostcomputern installiert ist. Weitere Informationen über die Installation des Sensor SDK finden Sie unter Schnellstart: Einrichten Ihres Azure Kinect DK-Geräts.

Linux-Computer: USB-Arbeitsspeicher unter Ubuntu

Standardmäßig weisen Linux-basierte Hostcomputer dem USB-Controller nur 16 MB an Kernelspeicher zu, um USB-Übertragungen zu verarbeiten. Diese Menge reicht in der Regel aus, um ein einzelnes Azure Kinect DK zu unterstützen. Zur Unterstützung mehrerer Geräte benötigt der USB-Controller jedoch mehr Arbeitsspeicher. Befolgen Sie diese Schritte, um den Arbeitsspeicher heraufzusetzen:

  1. Bearbeiten Sie /etc/default/grub.
  2. Suchen Sie die folgende Zeile:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
    
    Ersetzen Sie sie mithilfe dieser Zeile:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=32"
    

    Hinweis

    Mit diesen Befehlen wird der USB-Speicher auf 32 MB festgelegt. Diese Beispieleinstellung entspricht dem doppelten Standardwert. Sie können je nach Lösung einen viel größeren Wert festlegen.

  3. Führen Sie sudo update-grub aus.
  4. Starten Sie den Computer neu.

Kabel

Um die Geräte miteinander und mit den Hostcomputern zu verbinden, müssen Sie 3,5-mm-Kabel Stecker an Stecker (auch als 3,5-mm-Audiokabel bezeichnet) verwenden. Die Kabel (Stereo oder Mono) sollten weniger als 10 Meter lang sein.

Wie viele Kabel Sie benötigen, hängt von der Anzahl der verwendeten Geräte und der spezifischen Gerätekonfiguration ab. Im Azure Kinect DK-Lieferumfang sind keine Kabel enthalten. Sie müssen sie separat kaufen.

Wenn Sie die Geräte in der Sternkonfiguration verbinden, benötigen Sie auch einen Kopfhörersplitter.

Verbinden von Geräten

So verbinden Sie Azure Kinect DK-Geräte in einer Verkettungskonfiguration

  1. Verbinden Sie jedes Azure Kinect DK mit der Stromversorgung.
  2. Verbinden Sie jedes Gerät mit seinem Host-PC.
  3. Wählen Sie ein Gerät als Mastergerät aus, und schließen Sie ein 3,5-mm-Audiokabel an seinen Sync Out-Port an.
  4. Schließen Sie das andere Ende des Kabels an den Sync In-Port des ersten untergeordneten Geräts an.
  5. Um ein anderes Gerät zu verbinden, schließen Sie ein weiteres Kabel an den Sync Out-Port des ersten untergeordneten Geräts und an den Sync In-Port des nächsten Geräts an.
  6. Wiederholen Sie den vorherigen Schritt, bis alle Geräte verbunden sind. Das letzte Gerät sollte nur über eine Kabelverbindung verfügen. Seine Synch Out-Ports sollten leer sein.

So verbinden Sie Azure Kinect DK-Geräte in einer Sternkonfiguration

  1. Verbinden Sie jedes Azure Kinect DK mit der Stromversorgung.
  2. Verbinden Sie jedes Gerät mit seinem Host-PC.
  3. Wählen Sie ein Gerät als Mastergerät aus, und schließen Sie das einzelne End des Kopfhörersplitters an seinen Sync Out-Port an.
  4. Verbinden Sie 3,5-mm-Audiokabel mit den „Split“-Enden des Kopfhörersplitters.
  5. Schließen Sie das andere Ende jedes Kabels an den Sync In-Port eines der untergeordneten Geräte an.

Überprüfen, ob die Geräte verbunden sind und kommunizieren

Überprüfen Sie mit dem Azure Kinect Viewer, ob die Geräte ordnungsgemäß verbunden sind. Wiederholen Sie diesen Vorgang so oft wie nötig, um jedes untergeordnete Gerät in Kombination mit dem Mastergerät zu testen.

Wichtig

Für diesen Vorgang müssen Sie die Seriennummer jedes Azure Kinect DK kennen.

  1. Öffnen Sie zwei Instanzen von Azure Kinect Viewer.
  2. Wählen Sie unter Gerät öffnen die Seriennummer des untergeordneten Geräts aus, das Sie testen möchten.
    Gerät öffnen

    Wichtig

    Um eine exakte Bildaufzeichnungsordnung zwischen allen Geräten zu erzielen, müssen Sie das Mastergerät zuletzt starten.

  3. Wählen Sie unter Externe Synchronisierung die Option Sub aus.
    Start der untergeordneten Kamera
  4. Wählen Sie Starten aus.

    Hinweis

    Da es sich hierbei um ein untergeordnetes Gerät handelt, zeigt Azure Kinect Viewer nach dem Start des Geräts kein Bild an. Es wird erst dann ein Bild angezeigt, wenn das untergeordnete Gerät ein Synchronisierungssignal vom Mastergerät empfängt.

  5. Öffnen Sie das Mastergerät nach dem Start des untergeordneten Geräts mit der anderen Instanz von Azure Kinect Viewer.
  6. Wählen Sie unter Externe Synchronisierung die Option Master aus.
  7. Wählen Sie Starten aus.

Wenn das Azure Kinect-Mastergerät gestartet wird, sollten beide Instanzen von Azure Kinect Viewer Bilder anzeigen.

Kalibrieren der Geräte als synchronisierte Gruppe

Nachdem Sie überprüft haben, ob die Geräte ordnungsgemäß kommunizieren, können Sie sie kalibrieren, um Bilder in einer einzelnen Domäne zu produzieren.

Auf einem einzelnen Gerät werden die Tiefen- und RGB-Kameras werkseitig für die Zusammenarbeit kalibriert. Wenn jedoch mehrere Geräte zusammenarbeiten müssen, müssen sie kalibriert werden, um festzulegen, wie ein Bild von der Domäne der Kamera, die es aufgezeichnet hat, in die Domäne der Kamera transformiert wird, die Sie zur Bildverarbeitung verwenden möchten.

Es gibt mehrere Optionen für die übergreifende Kalibrierung von Geräten. Microsoft stellt das GitHub-Green-Screen-Codebeispiel bereit, bei dem die OpenCV-Methode verwendet wird. Die Infodatei für dieses Codebeispiel enthält weitere Details und Anweisungen zum Kalibrieren der Geräte.

Weitere Informationen zur Kalibrierung finden Sie unter Verwenden von Azure Kinect-Kalibrierungsfunktionen.

Nächste Schritte

Nachdem Sie synchronisierte Geräte eingerichtet haben, informieren Sie sich auch über die Verwendung der