Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Jedes Azure Kinect DK-Gerät enthält 3,5-mm-Synchronisierungsports (Sync in und Sync out), mit denen Sie mehrere Geräte miteinander verbinden können. Nachdem Sie die Geräte verbunden haben, kann Ihre Software das Trigger-Timing zwischen ihnen koordinieren.
Dieser Artikel beschreibt, wie Sie die Geräte verbinden und synchronisieren.
Vorteile der Verwendung mehrerer Azure Kinect DK-Geräte
Es gibt viele Gründe, mehrere Azure Kinect DK-Geräte zu verwenden, einschließlich der folgenden:
- Füllen Sie Okklusionen aus. Obwohl die Azure Kinect DK-Datentransformationen ein einzelnes Bild erzeugen, sind die beiden Kameras (Tiefe und RGB) tatsächlich in einem kleinen Abstand voneinander entfernt. Der Offset ermöglicht Okklusionen. Eine Okklusion tritt auf, wenn ein Vordergrundobjekt die Ansicht eines Teils eines Hintergrundobjekts für eine der beiden Kameras auf einem Gerät 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 rechtsseitigen Kamera-IR-Strahl. Die rechte Kamera hat keine Daten für "P2".
Das Diagramm zeigt zwei Kameras, die auf denselben Punkt gerichtet sind, wobei eine davon blockiert ist.
Zusätzliche synchronisierte Geräte können die verdeckten Daten bereitstellen. - 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.
- Erfassen Sie mehrere 4K-Farbbilder derselben Szene, die alle innerhalb von 100 Mikrosekunden (μs) der Mitte der Belichtung ausgerichtet sind.
- Erhöhen Sie die Kameraabdeckung innerhalb des Raums.
Planen Sie Ihre Konfiguration für mehrere Geräte
Bevor Sie beginnen, stellen Sie sicher, dass Sie die Azure Kinect DK-Hardwarespezifikationen und die Azure Kinect DK-Tiefenkamera überprüfen.
Hinweis
Entfernen Sie die äußere Kunststoffabdeckung, um die Sync In- und Sync Out-Buchsen freizulegen.
Auswählen einer Gerätekonfiguration
Sie können eine der folgenden Methoden für die Gerätekonfiguration verwenden:
-
Daisy-Chain-Konfiguration. Synchronisieren Sie ein Mastergerät und bis zu acht untergeordnete Geräte.
-
Sternkonfiguration. Synchronisieren Sie ein Mastergerät und bis zu zwei untergeordnete Geräte.
Verwenden eines externen Synchronisierungstriggers
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 für den Synchronisierungstrigger verwenden. Sie können diese Option beispielsweise verwenden, um Bildaufnahmen mit anderen Geräten zu synchronisieren. In der Daisy-Chain-Konfiguration oder der Sternkonfiguration stellt die externe Triggerquelle eine Verbindung mit dem Mastergerät bereit.
Die externe Triggerquelle muss auf die gleiche Weise wie das Mastergerät funktionieren. Es muss ein Synchronisierungssignal mit den folgenden Merkmalen liefern:
- Aktiv hoch
- Impulsbreite: Größer als 8μs
- 5V TTL/CMOS
- Maximale Fahrkapazität: Nicht weniger als 8 Milliamps (mA)
- Frequenzunterstützung: Genau 30 FPS, 15 FPS und 5 FPS (die Häufigkeit des Farbkameramaster-VSYNC-Signals)
Die Triggerquelle muss das Signal mithilfe eines 3,5-mm-Audiokabels an den Sync in-Anschluss des Mastergeräts übermitteln. Sie können ein Stereo- oder Monokabel verwenden. Das Azure Kinect DK kurzt alle Ärmel und Ringe des Audiokabelanschlusses zusammen und begründet sie. Wie im folgenden Diagramm dargestellt, empfängt das Gerät nur das Synchronisierungssignal von der Verbinderspitze.
Weitere Informationen zum Arbeiten mit externen Geräten finden Sie unter Verwenden des Azure Kinect-Recorders mit externen synchronisierten Geräten
Hinweis
Sync Out ist die VSync für die RGB-Kamera. Die Zeitstempel für alle Geräte sind auf Null festgelegt und zählen nach oben. Microsoft hat die Mindest- und Maximalbreite des Synchronisierungspulses nicht spezifiziert und empfiehlt, den von Sync Out eines Azure Kinect DK erzeugten Puls nachzuahmen.
Planen Der Kameraeinstellungen und der Softwarekonfiguration
Informationen zum Einrichten Ihrer Software zum Steuern der Kameras und zum Verwenden der Bilddaten finden Sie im Azure Kinect Sensor SDK.
In diesem Abschnitt werden mehrere Faktoren erläutert, die sich auf synchronisierte Geräte auswirken (jedoch nicht einzelne Geräte). Ihre Software sollte diese Faktoren berücksichtigen.
Überlegungen zur Exposition
Wenn Sie die genaue Anzeigedauer jedes Geräts steuern möchten, empfiehlt es sich, eine manuelle Belichtungseinstellung zu verwenden. Unter der Einstellung für die automatische Belichtung kann jede Farbkamera die tatsächliche Belichtung dynamisch ändern. Da sich die Belichtung auf die Anzeigedauer auswirkt, pushen solche Änderungen die Kameras schnell aus der Synchronisierung heraus.
Vermeiden Sie in der Bildaufnahmeschleife wiederholt das Festlegen derselben Belichtungseinstellung. Rufen Sie die API nur einmal auf, wenn sie benötigt wird.
Vermeiden von Störungen zwischen mehreren Tiefenkameras
Wenn mehrere Tiefenkameras überlappende Sichtfelder abbilden, muss jede Kamera einen eigenen zugeordneten Laser abbilden. Um zu verhindern, dass die Laser sich gegenseitig stören, müssen die Kameraaufnahmen um 160 μs oder mehr zeitlich voneinander verschoben werden.
Für jede Tiefenkameraaufnahme schaltet der Laser neun mal ein und ist jeweils nur für 125μs aktiv. Der Laser ist dann je nach Betriebsmodus für 1450μs oder 2390μs im Leerlauf. Dieses Verhalten bedeutet, dass der Ausgangspunkt für die Offsetberechnung 125μs beträgt.
Darüber hinaus erhöhen die Unterschiede zwischen der Kamerauhr und der Gerätefirmwareuhr den minimalen Offset auf 160μs. Wenn Sie einen präziseren Offset für Ihre Konfiguration berechnen möchten, beachten Sie den tiefenmodus, den Sie verwenden, und verweisen Sie auf die rohe Anzeigedauertabelle des Tiefensensors. Mithilfe der Daten aus dieser Tabelle können Sie den minimalen Offset (die Belichtungszeit jeder Kamera) mithilfe der folgenden Formel berechnen:
Belichtungszeit = (IR-Pulse × Pulsbreite) + (Leerlaufperioden × Leerlaufzeit)
Wenn Sie einen Offset von 160μs verwenden, können Sie bis zu neun zusätzliche Tiefenkameras konfigurieren, damit jeder Laser eingeschaltet wird, während die anderen Laser im Leerlauf 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 feuert oder über ein anderes Sichtfeld verfügt.
Hinweis
Die tatsächliche Impulsbreite beträgt 125μs, aber wir geben 160us an, um etwas Spielraum zu bieten. Als Beispiel für NFOV UNBINNED folgt auf jeden 125μs-Impuls eine Leerlaufzeit von 1450μs. Insgesamt ergeben sich diese - (9 x 125) + (8 x 1450) - die Belichtungszeit von 12,8 ms. Der nächste Wert, bei dem Sie die Belichtung von zwei Geräten überlappen können, besteht darin, den ersten Impuls der zweiten Kamera in die erste Leerlaufzeitraum der ersten Kamera fallen zu lassen. Die Verzögerung zwischen den ersten und zweiten Kameras könnte so wenig wie 125μs (die Breite eines Impulss) sein, wir empfehlen jedoch etwas Spielraum daher die 160μs. Mit 160μs können Sie die Belichtungszeiträume von maximal 10 Kameras zwischenspeichern.
Vorbereiten Ihrer Geräte und anderer Hardware
Zusätzlich zu mehreren Azure Kinect DK-Geräten müssen Sie möglicherweise zusätzliche Hostcomputer und andere Hardware abrufen, um die Konfiguration zu unterstützen, die Sie erstellen möchten. Verwenden Sie die Informationen in diesem Abschnitt, um sicherzustellen, dass alle Geräte und Hardware bereit sind, bevor Sie mit der Einrichtung beginnen.
Azure Kinect DK-Geräte
Führen Sie für jedes Azure Kinect DK-Gerät, das Sie synchronisieren möchten, die folgenden Schritte aus:
- Stellen Sie sicher, dass die neueste Firmware auf dem Gerät installiert ist. Weitere Informationen zum Aktualisieren Ihrer Geräte erhalten Sie unter Aktualisieren der Azure Kinect DK-Firmware.
- Entfernen Sie die Geräteabdeckung, um die Synchronisationsanschlüsse anzuzeigen.
- Notieren Sie sich die Seriennummer für jedes Gerät. Sie verwenden diese Nummer später im Setupprozess.
Host-Computer
In der Regel verwendet jeder Azure Kinect DK einen eigenen Hostcomputer. Sie können einen dedizierten Hostcontroller verwenden, je nachdem, wie Sie das Gerät verwenden und wie viele Daten über die USB-Verbindung übertragen werden.
Stellen Sie sicher, dass das Azure Kinect Sensor SDK auf jedem Hostcomputer installiert ist. Weitere Informationen zum Installieren des Sensor SDK finden Sie in der Schnellstartanleitung: Einrichten Ihres Azure Kinect DK.
Linux-Computer: USB-Speicher auf Ubuntu
Standardmäßig weisen Linux-basierte Hostcomputer den USB-Controller nur 16 MB Kernelspeicher zu, um USB-Übertragungen zu verarbeiten. Dieser Betrag reicht in der Regel aus, um ein einzelnes Azure Kinect DK zu unterstützen. Um mehrere Geräte zu unterstützen, muss der USB-Controller jedoch mehr Arbeitsspeicher haben. Führen Sie die folgenden Schritte aus, um den Arbeitsspeicher zu erhöhen:
- Bearbeiten /etc/default/grub.
- Suchen Sie die folgende Zeile:
Ersetzen Sie sie mithilfe dieser Zeile:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"GRUB_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.usbfs_memory_mb=32"Hinweis
Mit diesen Befehlen wird der USB-Speicher auf 32 MB festgelegt. Dies ist eine Beispiel-Einstellung auf das Doppelte des Standardwerts. Sie können je nach Lösung einen viel größeren Wert festlegen.
- Führen Sie sudo update-grub aus.
- Starten Sie den Computer neu.
Kabel
Um die Geräte miteinander und mit den Hostcomputern zu verbinden, müssen Sie 3,5-mm Stecker-zu-Stecker-Kabel (auch als 3,5-mm-Audiokabel bezeichnet) verwenden. Die Kabel sollten weniger als 10 Meter lang sein und können Stereo oder Mono sein.
Die Anzahl der Kabel, die Sie benötigen, hängt von der Anzahl der Geräte ab, die Sie verwenden, und auch von der spezifischen Gerätekonfiguration. Die Azure Kinect DK-Verpackung enthält keine Kabel. Sie müssen sie separat erwerben.
Wenn Sie die Geräte in der Sternkonfiguration verbinden, müssen Sie auch über einen Kopfhörerteiler verfügen.
Verbinden von Geräten
So verbinden Sie Azure Kinect DK-Geräte in einer Daisy-Kettenkonfiguration
- Verbinden Sie jedes Azure Kinect DK mit Strom.
- Verbinden Sie jedes Gerät mit seinem Host-PC.
- Wählen Sie ein Gerät aus, das das Mastergerät sein soll, und schließen Sie ein 3,5-mm-Audiokabel an den Synchronisierungsausgangsanschluss an.
- Schließen Sie das andere Ende des Kabels an den Sync-Anschluss des ersten untergeordneten Geräts an.
- Um ein anderes Gerät zu verbinden, schließen Sie ein weiteres Kabel an den Synchronisierungsausgangsanschluss des ersten untergeordneten Geräts und an den Synchronisierungsanschluss des nächsten Geräts an.
- Wiederholen Sie den vorherigen Schritt, bis alle Geräte verbunden sind. Das letzte Gerät sollte nur über eine Kabelverbindung verfügen. Der Synchronisierungsausgangsport sollte leer sein.
So verbinden Sie Azure Kinect DK-Geräte in einer Sternkonfiguration
- Verbinden Sie jedes Azure Kinect DK mit Strom.
- Verbinden Sie jedes Gerät mit seinem Host-PC.
- Wählen Sie ein Gerät aus, das das Mastergerät sein soll, und schließen Sie das einzelne Ende des Kopfhörerteilers an den Synchronisierungsausgangsanschluss an.
- Schließen Sie 3,5-mm-Audiokabel an die "geteilten" Enden des Kopfhörerteilers an.
- Schließen Sie das andere Ende jedes Kabels an den Sync-Anschluss eines der untergeordneten Geräte an.
Überprüfen, ob die Geräte verbunden sind und kommunizieren
Um zu überprüfen, ob die Geräte ordnungsgemäß verbunden sind, verwenden Sie Azure Kinect Viewer. Wiederholen Sie dieses Verfahren nach Bedarf, um jedes untergeordnete Gerät in Kombination mit dem Mastergerät zu testen.
Wichtig
Für dieses Verfahren müssen Sie die Seriennummer jeder Azure Kinect DK kennen.
- Öffnen Sie zwei Instanzen von Azure Kinect Viewer.
- Wählen Sie unter "Gerät öffnen" die Seriennummer des untergeordneten Geräts aus, das Sie testen möchten.
Wichtig
Um eine präzise Ausrichtung der Bildaufnahme zwischen allen Geräten zu erhalten, müssen Sie das Mastergerät zuletzt starten.
- Unter Externe Synchronisierung wählen Sie Sub aus.
- Wählen Sie Starten aus.
Hinweis
Da es sich um ein untergeordnetes Gerät handelt, zeigt Azure Kinect Viewer nach dem Start des Geräts kein Bild an. Es wird kein Bild angezeigt, bis das untergeordnete Gerät ein Synchronisierungssignal vom Mastergerät empfängt.
- Nachdem das untergeordnete Gerät gestartet wurde, verwenden Sie die andere Instanz von Azure Kinect Viewer, um das Mastergerät zu öffnen.
- Wählen Sie unter "Externe Synchronisierung" den Befehl "Master" aus.
- Wählen Sie Starten aus.
Wenn das Azure Kinect-Mastergerät gestartet wird, sollten beide Instanzen von Azure Kinect Viewer Bilder anzeigen.
Kalibrieren Sie die Geräte als synchronisierte Einheit
Nachdem Sie überprüft haben, ob die Geräte ordnungsgemäß kommunizieren, können Sie sie kalibrieren, um Bilder in einer einzigen Domäne zu erzeugen.
In einem einzigen Gerät werden die Tiefen- und RGB-Kameras werkseitig kalibriert, um zusammenzuarbeiten. Wenn jedoch mehrere Geräte zusammenarbeiten müssen, müssen sie kalibriert werden, um zu bestimmen, wie ein Bild aus der Domäne der Kamera transformiert wird, die es in die Domäne der Kamera aufgenommen hat, die Sie zum Verarbeiten von Bildern verwenden möchten.
Es gibt mehrere Optionen für geräteübergreifende Kalibrierung. Microsoft stellt das GitHub-Codebeispiel für grüne Bildschirme bereit, das die OpenCV-Methode verwendet. Die Readme-Datei 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, können Sie auch lernen, wie Sie sie verwenden.