次の方法で共有


Azure Kinect の既知の問題とトラブルシューティング

このページには、Azure Kinect DK で Sensor SDK を使用するときの既知の問題とトラブルシューティングのヒントが含まれています。 製品のハードウェア固有の問題については、製品 サポート ページ も参照してください。

既知の問題

  • ASMedia USB ホスト コントローラー (ASM1142 チップセットなど) との互換性の問題
    • Microsoft USB ドライバーを使用してブロックを解除できる場合があります
    • 多くの PC には代替ホスト コントローラーもあり、USB3 ポートを変更すると、

Sensor SDK に関連するその他の問題については、GitHub の問題 確認してください

ログの収集

K4A.dll のログ記録は、環境変数を使用して有効になります。 既定では、ログは stdout に送信され、エラーと重大なメッセージのみが生成されます。 これらの設定は、ログがファイルに記録されるように変更できます。 詳細度は、必要に応じて調整することもできます。 Windows の場合、k4a.logという名前のファイルへのログ記録を有効にし、警告と上位レベルのメッセージをキャプチャする例を次に示します。

  1. set K4A_ENABLE_LOG_TO_A_FILE=k4a.log
  2. set K4A_LOG_LEVEL=w
  3. コマンド プロンプトからシナリオを実行する (起動ビューアーなど)
  4. k4a.logに移動し、ファイルを共有します。

詳細については、ヘッダー ファイルの次のクリップを参照してください。

/**
* 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
*/

Body Tracking SDK K4ABT.dll のログ記録は似ていますが、ユーザーが別の環境変数名のセットを変更する必要がある点が異なります。

/**
* 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
*/

デバイス マネージャーでデバイスが列挙されない

  • デバイスの背後にある状態 LED を確認します。オレンジ色に点滅している場合は、USB 接続の問題があり、十分な電力が得られません。 電源ケーブルは、付属の電源アダプターに接続する必要があります。 電源ケーブルには USB タイプ A が接続されていますが、デバイスには PC USB ポートが供給できる以上の電力が必要です。 そのため、PC ポートまたは USB ハブに接続しないでください。
  • 電源ケーブルが接続されていること、およびデータ用に USB3 ポートを使用していることを確認してください。
  • データ接続用の USB3 ポートを変更してみてください (PC の背面など、マザーボードに近い USB ポートを使用することをお勧めします)。
  • ケーブルを確認し、ケーブルの破損や低品質が原因で、信頼性の低い列挙が発生する可能性があります (デバイス マネージャーでデバイスが "点滅" し続けます)。
  • ノート PC に接続していて、バッテリーで動作している場合、ポートへの電力が制限されている可能性があります。
  • ホスト PC を再起動します。
  • 問題が解決しない場合は、互換性の問題が発生する可能性があります。
  • ファームウェアの更新中に障害が発生し、デバイスが単独で回復していない場合は、 出荷時の設定にリセットします

Azure Kinect ビューアーが開かない

  • まず、Windows デバイス マネージャーでデバイスが列挙されていることを確認します。

    Windows デバイス マネージャーの Azure Kinect カメラ

  • デバイスを使用する他のアプリケーション (Windows カメラ アプリケーションなど) があるかどうかを確認します。 デバイスにアクセスできるアプリケーションは一度に 1 つだけです。

  • k4aviewer.err ログでエラー メッセージを確認します。

  • Windows カメラ アプリケーションを開き、その動作を確認します。

  • デバイスの電源を切る前に、ストリーミング LED の電源がオフになるまで待機します。

  • ホスト PC を再起動します。

  • PC で最新のグラフィックス ドライバーを使用していることを確認します。

  • 独自の SDK のビルドを使用している場合は、正式にリリースされたバージョンを使用して問題が修正される場合は、使用してみてください。

  • 問題が解決しない場合は、ログとファイルフィードバックを 収集 します。

マイクが見つかりません

  • まず、デバイス マネージャーでマイク配列が列挙されていることを確認します。

  • デバイスが列挙され、Windows で正常に動作する場合、ファームウェアの更新後に Windows が深度カメラに別のコンテナー ID を割り当てた可能性があります。

  • デバイス マネージャーに移動し、[Azure Kinect Microphone Array] を右クリックし、[デバイスのアンインストール] を選択してリセットを試みることができます。 完了したら、センサーを取り外して再アタッチします。

    Azure Kinect Mic Array

  • その後、Azure Kinect ビューアーを再起動して、もう一度やり直してください。

デバイス ファームウェアの更新に関する問題

  • 更新後に正しいバージョン番号が報告されない場合は、デバイスの電源を切り直す必要があります。
  • ファームウェアの更新が中断されると、正しくない状態になり、列挙に失敗する可能性があります。 デバイスをデタッチして再アタッチし、60 秒待って回復できるかどうかを確認します。 それ以外の場合は、出荷時の設定にリセットします。

画像品質の問題

  • Azure Kinect ビューアー 起動し、干渉がないか、センサーがブロックされているか、レンズが汚れているか、デバイスの位置を確認します。
  • 問題が特定のモードで発生している場合は、さまざまな動作モードを試して絞り込みます。
  • 画像品質の問題をチームと共有する場合は、次のことができます。
  1. Azure Kinect ビューアー の一時停止ビューを表示し、スクリーンショットを撮るか、
  2. Azure Kinect レコーダー 使用して記録する (例: k4arecorder.exe -l 5 -r 5 output.mkv)

デバイスのタイムスタンプに一貫性がない、または予期しない

k4a_device_set_color_control を呼び出すと、デバイスのタイミング変更が一時的に誘発され、安定するためにいくつかのキャプチャが必要になる可能性があります。 イメージ キャプチャ ループで API を呼び出さないようにして、新しいイメージごとに内部タイミング計算をリセットしないようにします。 代わりに、カメラを起動する前に API を呼び出すか、イメージ キャプチャ ループ内の値を変更する必要がある場合に呼び出します。 特に k4a_device_set_color_control(K4A_COLOR_CONTROL_AUTO_EXPOSURE_PRIORITY)を呼び出さないようにしてください。

USB3 ホスト コントローラーの互換性

デバイスがデバイス マネージャーの下に列挙されていない場合は、サポートされていない USB3 コントローラーに接続されていることが原因である可能性があります。

Windows 上の Azure Kinect DK の場合、サポートされているホスト コントローラーは Intel、Texas Instruments (TI)および Renesas だけです。 Windows プラットフォーム上の Azure Kinect SDK は統合コンテナー ID に依存しており、同じデバイスに物理的に配置されている深度、色、オーディオ デバイスを SDK が見つけられるように、USB 2.0 および 3.0 デバイスにまたがる必要があります。 Linux では、より多くのホスト コントローラーがサポートされる可能性があります。これは、そのプラットフォームがコンテナー ID に依存する数が少なく、デバイスのシリアル番号が多い場合です。

PC に複数のホスト コントローラーがインストールされている場合、USB ホスト コントローラーのトピックはさらに複雑になります。 ホスト コントローラーが混在している場合、一部のポートが正常に動作し、他のポートがまったく機能しないという問題が発生する可能性があります。 ポートがケースにどのように接続されているかに応じて、Azure Kinect に問題があるすべてのフロント ポートが表示される場合があります

ウィンドウズ: お使いのホストコントローラーを確認するには、デバイスマネージャーを開いてください。

  1. 表示 - デバイスの種類別>
  2. Azure Kinect が接続されている状態で、カメラの選択 - Azure Kinect 4K カメラ>
  3. 表示 - 接続別デバイス (>)

USB ポートのトラブルシューティング

PC に接続されている USB ポートを理解するには、AZURE Kinect DK を PC 上の異なる USB ポートに接続するときに、各 USB ポートに対してこれらの手順を繰り返します。

深度カメラの自動電源オフ

深度カメラで画像深度データを計算するために使用されるレーザーの寿命は限られています。 レーザーの寿命を最大化するために、深度カメラは深度データが消費されていないときに検出します。 デバイスが数分間ストリーミングされているが、ホスト PC がデータを読み取っていない場合、深度カメラの電源が切れます。 また、マルチデバイス同期時に、下位デバイスが深度カメラを使用して起動し、深度フレームがアクティブな状態で、マスターデバイスがキャプチャの同期を開始するのを待機する状況に影響します。 マルチデバイス キャプチャ シナリオでこの問題を回避するには、最初のサブデバイスが起動してから 1 分以内にマスターデバイスを開始するようにしてください。

Unreal での Body Tracking SDK の使用

Unreal で Body Tracking SDK を使用するには、環境変数 <SDK Installation Path>\toolsPATH を追加し、dnn_model_2_0.onnxcudnn64_7.dllProgram Files/Epic Games/UE_4.23/Engine/Binaries/Win64にコピーしていることを確認します。

ヘッドレス Linux システムでの Azure Kinect の使用

Linux 上の Azure Kinect 深度エンジンでは OpenGL が使用されます。 OpenGL には、モニターをシステムに接続する必要があるウィンドウ インスタンスが必要です。 この問題の回避策は次のとおりです。

  1. 使用する予定のユーザー アカウントの自動ログインを有効にします。 自動ログインを有効にする手順については、 この 記事を参照してください。
  2. システムの電源を切り、モニターを取り外し、システムの電源をオンにしてください。 自動ログインでは、x サーバー セッションが強制的に作成されます。
  3. ssh 経由で接続し、DISPLAY env 変数を設定 export DISPLAY=:0
  4. Azure Kinect アプリケーションを起動します。

xtrlock ユーティリティは、自動ログイン後すぐに画面をロックするために使用できます。 スタートアップ アプリケーションまたは systemd サービスに次のコマンドを追加します。

bash -c “xtrlock -b”

不足している C# ドキュメント

Sensor SDK C# のドキュメントは、こちらにあります。

Body Tracking SDK C# のドキュメントは、こちらにあります。

Body Tracking パッケージの内容の変更

MSI パッケージと NuGet パッケージの両方から、Microsoft Visual C++ 再頒布可能パッケージ ファイルが含まれなくなりました。 最新のパッケージ はこちらからダウンロードしてください

NuGet パッケージは戻ってきましたが、Microsoft DirectML、NVIDIA CUDA、TensorRT ファイルは含めなくなりました。

次のステップ

その他のサポート情報