Azure Kinectの使い方を確認しよう!【Azure Kinect 実践講座#1】

はじめに

Azure Kinect 実践講座では以下の数回に渡ってAzure Kinectを理解していくことを目標にします!

  • Azure Kinectの使い方を確認しよう!(本記事)
  • 骨格検出で遊んでみよう!
  • Vtuberになろう!
  • Vtuberでzoomに参加しよう!
  • (準備中)

この講座の目的はAzureKinectをただ単に理解するだけではなく,実践的にAzureKinectを使いこなせることを目標にしています!したがって,技術を深堀りするというよりも,動かすためのワークロードを重点的に説明していきます.場合によっては詳細な説明に他の記事を引用し,全体像を把握することを優先します.

必要となるものとスペック

Azure Kinect DK

2020年よりAzure Kinect DKが日本で一般的に利用できるようになりました(以下適宜DKを省略または単にKinectと呼ぶ).2020年7月現在,税込み47,025円でとても安価に購入することができます.

PC

最低限Azure Kinectを動かすために必要なPCのスペックは以下の通りです.

  • 第 7 世代 Intel® CoreTM i3 プロセッサ (HD620 GPU 以上のデュアル コア 2.4 GHz)
  • 4 GB メモリ
  • 専用の USB3 ポート
  • OpenGL 4.4 または DirectX 11.0 のグラフィックス ドライバーのサポート

また,次回以降の講座において骨格検出をする場合に必要なスペックは以下の通りです.

  • 第 7 世代 Intel® CoreTM i5 プロセッサ (クアッド コア 2.4 GHz 以上)
  • 4 GB メモリ
  • NVIDIA GEFORCE GTX 1070 以上
  • 専用の USB3 ポート

スペックとしてはかなりハイエンドPCな印象です.特にGPUの条件が厳しいですが,Azure Kinectの性能を十分に発揮させるためには致し方ないでしょう.また,LinuxでもKinectは動作可能ですが本講座ではWindows10を前提に解説していきます.

参考までに十分なスペックとコストパフォーマンスの良いPCのリンクを以下に貼っておきます.最近のハイエンドPCはますます安くなってますね...(歓喜)

三脚

あると今後便利です.

Azure Kinect でできること

改めてAzure Kinectでできることを確認しておきましょう.KinectからはIR(赤外線写真),Depth(深度),RGBカラーの3種類の画像が取得できます.また,加速度センサーやマイクを搭載しており,骨格検出用のSDKやクラウドサービスを利用することで万能なセンサーとしてますます期待が高まっています.

Azure Kinectの公式ドキュメントによると以下のように述べられています.

Azure Kinect DK は、高度な AI センサーを採用した、先進的なコンピューター ビジョンと音声モデルを構築するための開発者キットです。 Kinect は、深度センサー、空間マイク配列とビデオ カメラ、および方位センサーを備えたオールインワンの小型デバイスです。

https://docs.microsoft.com/ja-jp/azure/Kinect-dk/

Azure Kinectを動かすための準備をしよう

デバイスの接続

ではさっそくKinectを付属の説明書や以下のページを参考に電源とPCに接続しましょう.かならずPCのUSB3.0ポートにつなぎましょう.Kinectは三脚等で固定すると便利です.

Azure Kinect Sensor SDK のダウンロード

以下のリンク先のページの「Microsoft インストーラ」からダウンロードしましょう.ダウンロードしたインストーラを実行し,画面にしたがってインストールします.

以下の画像が出ていればOKです

Kinectからデータを取得してみよう!

Kinectから取れる3種類の画像データおよび加速度センサーのデータ等を取得してみましょう.先程のAzure Kinect Viewerを起動して「Open Device」→「Start」でKinectから画像データおよび加速度の信号データが以下の画像のように受信できていたら成功です.

画像を保存してみよう

ただViewerでみるだけじゃつまらないですよね?画像データとして保存して分析したい場合もあります.MicrosoftはKinectで取得できるデータをmkvという形式のファイルにまとめて保存してくれるCUIツールを用意しています.

CUIを使う場合はコマンドプロンプトを開いて先程のViewerがあるディレクトリに移動します.自分の場合はC:\Program Files\Azure Kinect SDK v1.4.0\tools の中にありましたので,

> cd C:\"Program Files"\"Azure Kinect SDK v1.4.0"\tools

で移動した後,

> k4arecorder.exe output.mkv

と実行し,任意のタイミングでCTRL-C を押すとoutput.mkvがそのディレクトリ上で生成されます.こちらのoutput.mkvをAzure Kinect ViewerのOpen Recordingで開くと再生されます.

センサー情報の有無や解像度を細かく指定する場合は以下のページを参考にオプションで指定します(以下は例です).

> k4arecorder.exe -d WFOV_UNBINNED -c 3072p -r 15 -l 10 --imu OFF output.mkv

mkvファイルから特定の画像形式で取り出したい場合はmkv tool kit が必要です.適宜インストールした上で,例として以下のコマンドを打つとデプス画像が保存されます.(output.mkvの場所の指定に注意してください)

> ffmpeg -i output.mkv -map 0:1 -vsync 0 depth%04d.png
取得できるデプス画像の例

「ffmpeg が認識できない」といったエラーが表示される場合はffmpegをインストールする必要があります.Depth画像以外を取得する場合は適宜以下のページが参考に引数を変更します.

まとめ

Azure Kinectを動かすための準備と実際に取得されるデータの取得と画像データの保存を行いました.適宜Viewer上の設定を変えてみてどんなデータが取得できるのかを詳しく確認することをお勧めします.

次回は「骨格検出で遊んでみよう」です.Azure Kinectの1つの醍醐味である骨格検出を実際に体験します.

この記事が役に立ったという方はツイートで拡散しよう!

この記事を書いた人

正田 孝平

メーカー勤務 ソフトウェアエンジニア
AI,IoT,web最新技術の活用術、キャッシュレス決済と資産運用の最新トレンドや語学学習法について発信。大学在学中は人力飛行機の製作、webアプリ開発に積極的に携わった。
【趣味】
ゴルフ・温泉巡り