Freigeben über


Bekannte Probleme und Problembehandlung bei Azure Kinect

Diese Seite enthält bekannte Probleme und Tipps zur Problembehandlung bei der Verwendung des Sensor SDK mit Azure Kinect DK. Siehe auch Produktsupportseiten für Produkthardware- spezifische Probleme.

Bekannte Probleme

  • Kompatibilitätsprobleme mit ASMedia-USB-Hostcontrollern (z. B. ASM1142 Chipsatz)
    • In einigen Fällen kann die Blockierung mithilfe des Microsoft-USB-Treibers aufgehoben werden.
    • Viele PCs verfügen auch über alternative Hostcontroller und das Ändern des USB3-Anschlusses kann hilfreich sein

Weitere Sensor SDK-bezogene Probleme finden Sie unter GitHub-Probleme

Sammeln von Logdateien

Die Protokollierung für K4A.dll wird über Umgebungsvariablen aktiviert. Standardmäßig wird die Protokollierung an Stdout gesendet, und nur Fehler und kritische Nachrichten werden generiert. Diese Einstellungen können so geändert werden, dass die Protokollierung in eine Datei umgeleitet wird. Die Ausführlichkeit kann auch bei Bedarf angepasst werden. Im Folgenden finden Sie ein Beispiel für Windows, das die Protokollierung für eine Datei mit dem Namen k4a.log ermöglicht und Warnungen und Nachrichten höherer Ebene erfasst.

  1. set K4A_ENABLE_LOG_TO_A_FILE=k4a.log
  2. set K4A_LOG_LEVEL=w
  3. Szenario ausführen über die Eingabeaufforderung (z. B. Viewer starten)
  4. Navigieren Sie zu k4a.log und geben Sie die Datei frei.

Weitere Informationen finden Sie im folgenden Clip aus der Headerdatei:

/**
* environment variables
* K4A_ENABLE_LOG_TO_A_FILE =
*    0    - completely disable logging to a file
*    log\custom.log - log all messages to the path and file specified - must end in '.log' to
*                     be considered a valid entry
*    ** When enabled this takes precedence over the value of K4A_ENABLE_LOG_TO_STDOUT
*
* K4A_ENABLE_LOG_TO_STDOUT =
*    0    - disable logging to stdout
*    all else  - log all messages to stdout
*
* K4A_LOG_LEVEL =
*    'c'  - log all messages of level 'critical' criticality
*    'e'  - log all messages of level 'error' or higher criticality
*    'w'  - log all messages of level 'warning' or higher criticality
*    'i'  - log all messages of level 'info' or higher criticality
*    't'  - log all messages of level 'trace' or higher criticality
*    DEFAULT - log all message of level 'error' or higher criticality
*/

Die Protokollierung für das Body Tracking SDK-K4ABT.dll ist ähnlich, mit der Ausnahme, dass Benutzer einen anderen Satz von Umgebungsvariablennamen ändern sollten:

/**
* environment variables
* K4ABT_ENABLE_LOG_TO_A_FILE =
*    0    - completely disable logging to a file
*    log\custom.log - log all messages to the path and file specified - must end in '.log' to
*                     be considered a valid entry
*    ** When enabled this takes precedence over the value of K4A_ENABLE_LOG_TO_STDOUT
*
* K4ABT_ENABLE_LOG_TO_STDOUT =
*    0    - disable logging to stdout
*    all else  - log all messages to stdout
*
* K4ABT_LOG_LEVEL =
*    'c'  - log all messages of level 'critical' criticality
*    'e'  - log all messages of level 'error' or higher criticality
*    'w'  - log all messages of level 'warning' or higher criticality
*    'i'  - log all messages of level 'info' or higher criticality
*    't'  - log all messages of level 'trace' or higher criticality
*    DEFAULT - log all message of level 'error' or higher criticality
*/

Das Gerät wird im Geräte-Manager nicht aufgezählt.

  • Überprüfen Sie die Status-LED auf der Rückseite des Geräts. Falls sie gelb blinkt, liegt ein USB-Konnektivitätsproblem vor und das Gerät erhält nicht genügend Strom. Das Netzteilkabel sollte an den bereitgestellten Netzteil angeschlossen werden. Während das Netzkabel einen USB-Typ A angeschlossen hat, benötigt das Gerät mehr Strom als ein PC-USB-Anschluss kann. Schließen Sie es also nicht an einen PC-Port oder USB-Hub an.
  • Vergewissern Sie sich, dass das Netzkabel angeschlossen ist und usb3-Anschluss für Daten verwendet wird.
  • Versuchen Sie, den USB3-Anschluss für die Datenverbindung zu ändern (Empfehlung, USB-Anschluss in der Nähe der Hauptplatine zu verwenden, z. B. im Hintergrund des PCs).
  • Überprüfen Sie Ihr Kabel, beschädigte oder niedrigere Qualitätskabel können zu einer unzuverlässigen Aufzählung führen (Das Gerät blinkt im Geräte-Manager.
  • Wenn Sie einen Laptop verwenden und dieser im Akkubetrieb läuft, kann die Stromversorgung an den Anschluss gedrosselt werden.
  • Starten Sie den Host-PC neu.
  • Wenn das Problem weiterhin besteht, liegt möglicherweise ein Kompatibilitätsproblem vor.
  • Wenn während des Firmwareupdates ein Fehler aufgetreten ist und das Gerät nicht selbst wiederhergestellt wurde, führen Sie das Zurücksetzen auf die Werkseinstellungen durch.

Azure Kinect Viewer kann nicht geöffnet werden

  • Überprüfen Sie zuerst, ob Ihr Gerät im Windows Device Manager aufgezählt wird.

    Azure Kinect-Kameras im Windows-Geräte-Manager

  • Überprüfen Sie, ob Sie über eine andere Anwendung verfügen, die das Gerät verwendet (z. B. Windows-Kameraanwendung). Nur jeweils eine Anwendung kann auf das Gerät zugreifen.

  • Überprüfen Sie das k4aviewer.err-Protokoll auf Fehlermeldungen.

  • Öffnen Sie die Windows-Kameraanwendung, und überprüfen Sie, ob dies funktioniert.

  • Stromzyklusgerät, warten Sie, bis die Streaming-LED ausgeschaltet wird, bevor Sie das Gerät verwenden.

  • Starten Sie den Host-PC neu.

  • Stellen Sie sicher, dass Sie die neuesten Grafiktreiber auf Ihrem PC verwenden.

  • Wenn Sie Ihren eigenen Sdk-Build verwenden, versuchen Sie, die offiziell veröffentlichte Version zu verwenden, wenn das Problem behoben wird.

  • Wenn das Problem weiterhin besteht, sammeln Sie Protokolle und reichen Sie bitte Feedback ein.

Mikrofon kann nicht gefunden werden

  • Überprüfen Sie zuerst, ob das Mikrofonarray im Geräte-Manager aufgezählt wird.

  • Wenn ein Gerät aufgezählt wird und andernfalls in Windows ordnungsgemäß funktioniert, kann das Problem sein, dass Windows nach dem Firmwareupdate unterschiedliche Container-ID zu Depth Camera zugewiesen hat.

  • Sie können versuchen, es zurückzusetzen, indem Sie zum Geräte-Manager wechseln, mit der rechten Maustaste auf "Azure Kinect-Mikrofonarray" klicken und "Gerät deinstallieren" auswählen. Sobald dies abgeschlossen ist, trennen Sie den Sensor und stecken Sie ihn wieder an.

    Azure Kinect Mic Array

  • Danach starten Sie Azure Kinect Viewer neu, und versuchen Sie es erneut.

Gerätefirmwareupdateprobleme

  • Wenn die richtige Versionsnummer nach dem Update nicht gemeldet wird, müssen Sie möglicherweise das Gerät aus- und wieder einschalten.
  • Wenn das Firmware-Update unterbrochen wird, kann es in einen fehlerhaften Zustand geraten und die Aufzählung nicht durchführen. Trennen Sie das Gerät, schließen Sie es erneut an, und warten Sie 60 Sekunden, um festzustellen, ob es wiederhergestellt werden kann. Wenn nicht, führen Sie dann einen Werksreset durch.

Probleme mit der Bildqualität

  • Starten Sie den Azure Kinect Viewer , und überprüfen Sie die Positionierung des Geräts auf Störungen, oder wenn der Sensor blockiert ist oder objektiv schmutzig ist.
  • Probieren Sie verschiedene Betriebsmodi aus, um einzugrenzen, wenn das Problem im bestimmten Modus auftritt.
  • Um Probleme mit der Bildqualität mit dem Team zu teilen, können Sie folgende Aktionen ausführen:
  1. Pauseansicht im Azure Kinect Viewer aktivieren und einen Screenshot erstellen.
  2. Aufnehmen einer Aufzeichnung mithilfe des Azure Kinect-Recorders, z. B. k4arecorder.exe -l 5 -r 5 output.mkv

Inkonsistente oder unerwartete Gerätezeitstempel

Das Aufrufen von k4a_device_set_color_control kann vorübergehend Zeitänderungen am Gerät auslösen, was ein paar Aufzeichnungen benötigen kann, um sich zu stabilisieren. Vermeiden Sie das Aufrufen der API in der Bildaufnahmeschleife, um zu verhindern, dass die interne Zeitberechnung bei jedem neuen Bild zurückgesetzt wird. Rufen Sie stattdessen die API vor dem Starten der Kamera auf, oder nur, wenn Sie den Wert innerhalb der Bildaufnahmeschleife ändern müssen. Vermeiden Sie insbesondere Anrufe bei k4a_device_set_color_control(K4A_COLOR_CONTROL_AUTO_EXPOSURE_PRIORITY).

KOMPATIBILITÄT des USB3-Hostcontrollers

Wenn das Gerät nicht unter dem Geräte-Manager aufgezählt wird, liegt es möglicherweise daran, dass es an einen nicht unterstützten USB3-Controller angeschlossen ist.

Für azure Kinect DK unter Windows sind Intel,Texas Instruments (TI) und Renesas die einzigen Hostcontroller, die unterstützt werden. Das Azure Kinect SDK auf Windows-Plattformen basiert auf einer einheitlichen Container-ID und muss usb 2.0- und 3.0-Geräte umfassen, damit das SDK die Tiefen-, Farb- und Audiogeräte finden kann, die sich physisch auf demselben Gerät befinden. Unter Linux werden möglicherweise mehr Hostcontroller unterstützt, da diese Plattform weniger auf der Container-ID und mehr auf Seriennummern des Geräts basiert.

Das Thema der USB-Hostcontroller wird noch komplizierter, wenn ein PC mehr als einen Hostcontroller installiert hat. Wenn Hostcontroller gemischt sind, treten möglicherweise Probleme auf, bei denen einige Ports einwandfrei funktionieren und andere überhaupt nicht funktionieren. Je nachdem, wie die Ports mit dem Gehäuse verkabelt sind, können alle Frontports Probleme mit Azure Kinect aufweisen.

Windows: Um herauszufinden, welchen Hostcontroller Sie haben, öffnen Sie den Geräte-Manager.

  1. Ansicht –> Geräte nach Typ
  2. Schließen Sie die Azure Kinect an und wählen Sie dann Kameras->Azure Kinect 4K-Kamera aus.
  3. Ansicht –> Geräte nach Verbindung

Problembehandlung beim USB-Anschluss

Um besser zu verstehen, welcher USB-Anschluss auf Ihrem PC angeschlossen ist, wiederholen Sie diese Schritte für jeden USB-Anschluss, während Sie Azure Kinect DK mit verschiedenen USB-Anschlüssen auf dem PC verbinden.

Die Tiefenkamera schaltet sich automatisch ab.

Der Laser, der von der Tiefenkamera zum Berechnen von Bildtiefedaten verwendet wird, hat eine begrenzte Lebensdauer. Um die Lebensdauer der Laser zu maximieren, erkennt die Tiefenkamera, wann Tiefendaten nicht verbraucht werden. Die Tiefenkamera schaltet sich ab, wenn das Gerät einige Minuten lang kontinuierlich streamt, aber der Host-PC die Daten nicht verarbeitet. Sie wirkt sich auch auf die Multi-Geräte-Synchronisation aus, bei der untergeordnete Geräte in einem Zustand gestartet werden, in dem die Tiefenkamera streamt und Tiefenframes aktiv zurückgehalten werden, während sie auf das Mastergerät warten, um mit der Synchronisation der Aufnahmen zu beginnen. Um dieses Problem in Multi Device Capture-Szenarien zu vermeiden, stellen Sie sicher, dass das Mastergerät innerhalb einer Minute nach dem ersten untergeordneten Start gestartet wird.

Verwendung des Body Tracking SDK mit Unreal

Um das Body Tracking SDK mit Unreal zu verwenden, stellen Sie sicher, dass Sie <SDK Installation Path>\tools zur Umgebungsvariable PATH hinzugefügt haben und dnn_model_2_0.onnx und cudnn64_7.dll nach Program Files/Epic Games/UE_4.23/Engine/Binaries/Win64 kopiert haben.

Verwendung von Azure Kinect auf kopflosen Linux-Systemen

Das Azure Kinect-Tiefenmodul unter Linux verwendet OpenGL. OpenGL erfordert eine Fensterinstanz, bei der ein Monitor mit dem System verbunden werden muss. Eine Problemumgehung für dieses Problem ist:

  1. Aktivieren Sie die automatische Anmeldung für das Benutzerkonto, das Sie verwenden möchten. Anweisungen zum Aktivieren der automatischen Anmeldung finden Sie in diesem Artikel.
  2. Fahren Sie das System herunter, trennen Sie den Monitor vom System und fahren Sie das System hoch. Die automatische Anmeldung erzwingt die Erstellung einer x-Server-Sitzung.
  3. Stellen Sie eine Verbindung über ssh her, und legen Sie die DISPLAY-env-Variable fest. export DISPLAY=:0
  4. Starten Sie Ihre Azure Kinect-Anwendung.

Das xtrlock-Hilfsprogramm kann verwendet werden, um den Bildschirm nach der automatischen Anmeldung sofort zu sperren. Fügen Sie der Startanwendung oder dem Systemdienst den folgenden Befehl hinzu:

bash -c “xtrlock -b”

Fehlende C#-Dokumentation

Die Sensor SDK C#-Dokumentation befindet sich hier.

Die C#-Dokumentation zum Body Tracking SDK befindet sich hier.

Änderungen an Inhalten von Body Tracking-Paketen

Sowohl die MSI- als auch die NuGet-Pakete enthalten nicht mehr die Redistributable Package-Dateien von Microsoft Visual C++. Laden Sie das neueste Paket hier herunter.

Das NuGet-Paket ist wieder vorhanden, enthält jedoch keine Microsoft DirectML- oder NVIDIA CUDA- und TensorRT-Dateien mehr.

Nächste Schritte

Weitere Supportinformationen