cm04 azure kinect dk 徹底解説...de:code 2019 cm04 azure kinect dk 徹底解説...

Post on 27-Apr-2020

18 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

de:code 2019 CM04

Azure Kinect DK 徹底解説~進化したテクノロジーとその実装~

技術統括室

千葉慎二 Ph.D.

Mixed Reality の全体像

• 3D 空間の認識 (深度)

Kinect はただのカメラではない

人の全身の動きをとらえる

Azure Kinect

Development Environment

Azure Kinect DK 開発環境

• Sensor SDK• ローレベルセンサーとデバイスアクセス

• Body Tracking SDK• 3D で身体を追跡する

• Speech SDK• マイクアクセスと Azure クラウド

ベースのスピーチサービス

+Cognitive Vision…

Sensor SDK (機能)

• カラーカメラへのアクセスとモード制御• RGB イメージの取得

• 解像度: 1280 x 720 (16:9)

• 露出、ホワイトバランス、ISO 感度制御

• 深度カメラへのアクセスと各モード制御• 深度イメージ、IR イメージの取得

• 解像度: 1024 x 1024 (1:1) ~ 320 x 288 (10:9)

• FoV 深度モード制御 (NFoV, WFoV, パッシブ IR モード)

イルミネーションと視野

Sensor SDK –機能

• IMU へのアクセス• 加速度、角速度の取得

• カメラストリームの制御• 内部的に同期 (遅延設定可)

• 外部デバイス同期制御 (デバイス間の遅延オフセット設定も可)

• その他各種情報へのアクセス• カメラフレームメタデータ

• デバイスキャリブレーションデータ

Sensor SDK –システム要件

• Windows 10 PC / Ubuntu 18.04 (x64)• Core i3 7000 以降

• Dual Core 2.4 GHz/HD620 GPU 以降, 4GB メモリ, USB3

• シンプルな USB 接続機器 (カメラデバイス)

Body Tracking SDK –機能

• セグメンテーション• それぞれの身体を特定

• 固有の ID

• リアルタイムに身体動作を追跡• 24 箇所の骨格情報

24 箇所の骨格情報定義 親関節

0 K4ABT_JOINT_PELVIS ---

1 K4ABT_JOINT_SPINE_NAVAL K4ABT_JOINT_PELVIS

2 K4ABT_JOINT_SPINE_CHEST K4ABT_JOINT_SPINE_NAVAL

3 K4ABT_JOINT_NECK K4ABT_JOINT_SPINE_CHEST

4 K4ABT_JOINT_CLAVICLE_LEFT K4ABT_JOINT_SPINE_CHEST

5 K4ABT_JOINT_SHOULDER_LEFT K4ABT_JOINT_CLAVICLE_LEFT

6 K4ABT_JOINT_ELBOW_LEFT K4ABT_JOINT_SHOULDER_LEFT

7 K4ABT_JOINT_WRIST_LEFT K4ABT_JOINT_SHOULDER_LEFT

8 K4ABT_JOINT_CLAVICLE_RIGHT K4ABT_JOINT_SPINE_CHEST

9 K4ABT_JOINT_SHOULDER_RIGHT K4ABT_JOINT_CLAVICLE_RIGHT

10 K4ABT_JOINT_ELBOW_RIGHT K4ABT_JOINT_SHOULDER_RIGHT

11 K4ABT_JOINT_WRIST_RIGHT K4ABT_JOINT_ELBOW_RIGHT

12 K4ABT_JOINT_HIP_LEFT K4ABT_JOINT_PELVIS

13 K4ABT_JOINT_KNEE_LEFT K4ABT_JOINT_HIP_LEFT

14 K4ABT_JOINT_ANKLE_LEFT K4ABT_JOINT_KNEE_LEFT

15 K4ABT_JOINT_HIP_RIGHT K4ABT_JOINT_PELVIS

16 K4ABT_JOINT_KNEE_RIGHT K4ABT_JOINT_HIP_RIGHT

17 K4ABT_JOINT_ANKLE_RIGHT K4ABT_JOINT_KNEE_RIGHT

18 K4ABT_JOINT_HEAD K4ABT_JOINT_NECK

19 K4ABT_JOINT_NOSE K4ABT_JOINT_HEAD

20 K4ABT_JOINT_EYE_LEFT K4ABT_JOINT_HEAD

21 K4ABT_JOINT_EAR_LEFT K4ABT_JOINT_HEAD

22 K4ABT_JOINT_EYE_RIGHT K4ABT_JOINT_HEAD

23 K4ABT_JOINT_EAR_RIGHT K4ABT_JOINT_HEAD

Body Tracking SDK –システム要件

• Windows 10 PC • Core i5 以降

• NVIDIA GPU • GTX 1070 以降

• CUDA10.1, cuDNN v7.5

v2 センサーからの進化

Azure Kinect DK

Software Implementation

ソフトウェア実装Sensor

一般的な処理フロー

インターフェイス相関図

k4a_device_get_installed_count()

k4a_device_open()

k4a_device_start_cameras()

k4a_device_get_capture()

k4a_capture_get_XXX_image()

k4a_transformation_XXX_image_to_XXX_image()

k4a_calibration_Nd_to_Nd()

k4a_image_get_buffer()

k4a_image_create()

Azure Kinect DK の初期化

カメラを構成して始動、使い終えたら停止

キャプチャーとイメージアクセス

キャプチャーとイメージアクセス

イメージのフォーマット

フォーマット 解像度 縦横比 フレームレート

MJPG 3840 x 2160 16 : 9 5, 15, 30

MJPG 2560 x 1440 16 : 9 5, 15, 30

MJPG 1920 x 1080 16 : 9 5, 15, 30

MJPG

YUY2

NV12

1280 x 720 16 : 9 5, 15, 30

MJPG 4096 x 3072 4 : 3 5, 15

MJPG 2048 x 1536 4 : 3 5, 15, 30

モード 解像度 縦横比 フレームレート

NFOV unbinned 640 x 576 10 : 9 5, 15, 30

NFOV 2x2 binned (SW) 320 x 288 10 : 9 5, 15, 30

WFOV 2x2 binned 512 x 512 1 : 1 5, 15, 30

WFOV unbinned 1024 x 1024 1 : 1 5, 15

Passive IR 1024 x 1024 1 : 1 5, 15, 30

イメージのフォーマット

MJPG – JPEG 圧縮

NV12 – YYYY..UVUV..

YUY2 – YUYVYUYV..

BGRA – BGRABGRA..

16-bit 深度 – ミリメートル単位の距離情報

16-bit IR – グレースケールの輝度情報

カメラ座標

座標空間と座標変換

IMU の開始と停止

IMU サンプリングとデータアクセス

IMU のデータ構造と座標系

温度 (摂氏) float

加速度データ (x, y, z) float[3]

加速度タイムスタンプ (µs) uint64

角速度データ (x, y, z) float[3]

角速度タイムスタンプ (µs) uint64

フレームの記録と再生

https://www.matroska.org/

k4a_playback_***

インターフェイス相関図

k4a_device_get_installed_count()

k4a_device_open()

k4a_device_start_cameras()

k4a_device_start_imu()

k4a_capture_get_XXX_image()

k4a_transformation_XXX_image_to_XXX_image()

k4a_calibration_Nd_to_Nd() k4a_record_create()

k4a_record_write_XXX()

k4a_playback_open()

k4a_playback_get_XXX()

k4a_image_get_buffer()

k4a_image_create()

レコーディング API

再生 API

深度カメラとプロジェクションに関する注意

強度、反射、回折、干渉

デイジーチェイン

ソフトウェア実装Speech

Windows Audio スタック

Speech (スピーチ→テキスト)

ソフトウェア実装Body Tracking

一般的な処理フロー

• +IMU を始動

カラー/ /IR など• +IMU サンプリング

k4a_playback_***

インターフェイス相関図 k4abt_frame_***

k4abt_tracker_***

k4a_device_get_installed_count()

k4a_device_open()

k4a_device_start_cameras()

k4a_device_start_imu()

k4a_capture_get_XXX_image()

k4a_transformation_XXX_image_to_XXX_image()

k4a_calibration_Nd_to_Nd() k4a_record_create()

k4a_record_write_XXX()

k4a_playback_open()

k4a_playback_get_XXX()

k4abt_tracker_queue_capture()

k4abt_tracker_pop_result()

k4abt_frame_get_XXX()

k4a_image_get_buffer()

k4a_image_create()

トラッカーを作成

深度フレームを取得 (ボディトラッキングに必要)

トラッカーキューからボディフレームを取得

トラッカーからボディインデックスを取得

イメージのフォーマット

8-bit ボディインデックス – 人の分類

(K4ABT_BODY_INDEX_MAP_BACKGROUND=255)

カスタムイメージバッファ

例) xyz_image – 各ピクセル [X, Y, Z] / int16_t (合計 6 バイト)

Tips! –開発のポイント (その1)

Tips! –開発のポイント (その2)

© 2018 Microsoft Corporation. All rights reserved.

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

© 2019 Microsoft Corporation. All rights reserved.

本情報の内容 (添付文書、リンク先などを含む) は、de:code 2019 開催日 (2019年5月29~30日) 時点のものであり、予告なく変更される場合があります。

本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。

top related