Microsoft de:code 2019 参加して Azure Kinect DK 徹底解説 （Inside Session CM04）が印象に残った話

クラスター株式会社でサーバーサイドエンジニアをしている松田です。

スタートアップにはありがちですが、普段の業務の一環として社内インフラSEとQA（社内では周辺業務と合わせて Delivery Driver と呼んでいる）もやっています。

Cluster, Inc. の業務の一環として先日開催された Microsoft de:code 2019 に参加しましたので、そのアウトプットも含めて、特に気になった Azure Kinect の紹介をさせてもらいたいと思います。



# Microsoft de:code とは？

日本 Microsoft が年に1回行っている技術カンファレンスです。

簡単なイメージでは、Google IO、Apple WWDC に近い物が（小規模に）日本で行われているイメージになります。

Microsoft も本国米国では Microsoft Build（開発者向け）と Microsoft Ignite（インフラストラクチャエンジニア向け）をやっています。


が、なかなかアメリカまでいけない、日本のエンジニアの為に日本マイクロソフトが独自に国内で実施しているイベントが初夏に行われる de:code（開発者向け） と、秋に行われる Tech Summit （インフラエンジニア向け）になります。

このあたりは [【Microsoft Tech Summitまであと33日！】インフラ、アーキテクト、セキュリティの今、そして未来に向けて – 好きな技術を好きと言える幸せ – AYA TOKURA BLOG](https://blogs.msdn.microsoft.com/ayatokura/2016/09/29/techsummit_33days/) に位置づけ資料があって詳しいです。


※小規模に、とはいっても日本でサテライトでやっているイベントとして密度は一番高いと思います。
資格有無等で参加料金が変わるのですが、一般参加・早期割引無しで参加費用は ￥80,000 (税込 ￥86,400) です。


今年の de:code 2019 は5月29日～5月30日の二日間にわたって、東京都内のホテルを会場に行われました。

キーノートでは、改めて Windows Terminal の紹介動画なんかで盛り上がりました（紹介雑すぎ？）





[![](http://img.youtube.com/vi/GtVcDo1G8r8/0.jpg)](https://youtu.be/GtVcDo1G8r8)



Session は Office 365 （Word～Excel）等の老舗系から、セキュリティ・IoT・Blockchain 等の要素技術まで 189 セッションが15の会場で平行して行われていました。

自分は 2009年頃（当時は TechEd の名前でしたが）、一昨年 2017 年頃を含めて恐らく3回目の参加だったのですが、今回は特に Microsoft が推進している HoloLens を全面に押し出した内容が印象的でした。



展示セッションにも Microsoft 主催または実際のパートナー主導（トヨタ、ホロラボその他）で HoloLens のデモセッションが多数といった感じで（写真を撮らなかったのが申し訳ないです！）

なにより、キーノートセッションには、HoloLens の開発主導したアレックス・キップマン氏も登壇していました。

* [マイクロソフトの天才、キップマンってどんな人？ \| ギズモード・ジャパン](https://www.gizmodo.jp/2015/02/alex-kipman-hololens-kinect.html)


正直、恥ずかしながらキップマン氏の名前を意識したことはなかったのです。。（見たことあるかな）程度。

でも、実は Kinect の開発をリードしたエンジニアでもあったんですね。。。

自分は Kinect が好きで、2011年頃（公式ドライバーβが出た頃）に試して、今も Prime Sence と Leap Motion を家に持っている（けど使っていない）ぐらいの 2.5次元センサー好きです。



ちなみに、HoloLens は一般向けモデルもそのうち（いつ？ 要出典）出るらしいです。楽しみですね！

* [【ホロレンズ2初上陸】｢マイクロソフトの天才｣A・キップマン氏が明言した“一般向けモデル”の可能性 \| BUSINESS INSIDER JAPAN](https://www.businessinsider.jp/post-191943)

# What's Kinect?

de:code の Kinect セッションの前に、Kinect に対する簡単な紹介をしていきたいと思います。

Kinect は通常の3色 RGB 画像を得られる Web カメラの代わりに、各ピクセルにカメラからの距離を含んだものが帰ってくる、Depth Image（距離画像・深度画像等とも呼ばれる）を取得する事のできるハードウェアと、距離画像を取得する事によって高精度の人物領域推定・骨格推定をできるソフトウェアがセットになったデバイスです。

（という解釈をしています）



距離画像の取得方法にはいくつか方法があって、Kinect は第2世代から Time of flight 方式（ToF方式）を採用しています。

（世代の呼び方は [Kinect \- Wikipedia](https://ja.wikipedia.org/wiki/Kinect) に準じました。）


| Gen           |       Active IR Stereo |    Memo    |
|:------------|------------------:|:------------------:|
| 1st             |              Stereo<br />Laser Projection & Camera |        割と新しかった。今でも iPhone のカメラに使われている。        |
| 2nd           |            ToF (Time of flight) |       この価格帯で ToF ができるというのが衝撃的だった       |
| 3rd            |              ToF <br />（多分） |        HoloLens の一部として搭載された。Kinect 好きエンジニアの嬉しいけどそれじゃない感。        |
| 4th Now！               |                ToF |         惜しまれつつ、<br />（本業では無いので！？）退場してしまった Kinect が帰ってきた！<br />Business / Studio で使える機能（Sync）も付いている。     |


		
		



Kinect 第1世代は、当時非常に効果だった ToF 方式を避けて Stereo （三角測量）を採用し、かつ高精度な骨格推定を可能にしたことで一躍有名になりました。

Stereo 方式は、物体の表面素材に影響を受けるなど割と真の値を得るのが難しい（個人の見解です）のですが、IR レーザードットを照射＋謎の（？）アルゴリズムによるマッチングにより非常に高精度な深度画像を作成し、『これで高価な ToF 方式とはおさらば！？』となったエンジニア・研究者は多いと思います。

この技術は生産元である PrimeSence 社を通じて今の iPhone X 等に使われています。

IRレーザードットが照査されたシーンを、IR 感度があるカメラで録画するとこうなります

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/70b2d4a2-3113-134b-e6d7-0fa131040ac9.png)
> 
> https://www.google.co.jp/search?q=kinect+ir



一方でそんな中で第2世代 Kinect で Microsoft がやってくれたのがまさかの ToF 方式への転換でした。。。

ToF 方式 = Time of flight で、光を照射して帰ってくるまでの時間で距離を測るという、『まぁ、、光にも速さがあるのは知ってる。。。。でも測れるの？』を素で実現してしまうセンサーです。



ToF がむっちゃ高くて、それを回避できるという点で Kinect v1 は非常に価値があったのですが、そもそも v2 では ToF を普及価格帯で市場に大量投入するという事をやってくれました。

* [Kinect v1とKinect v2の徹底比較［C\+\+］ \- Build Insider](https://www.buildinsider.net/small/kinectv2cpp/01)

『先月買った ToF センサーは100万円したんだが。。。。』となったロボット制御研究者も多かったと思います。



『コンピューターがRGB および Depth Image を通じて世界を理解すること』について Kinect が世界を大きく広げてくれたのは間違いありません。

当時は OpenCV がはやり、また Point Cloud という概念が浸透し始めた頃です。（Point Cloud Library; PCL 1.0 リリースが 2011年）



そんな Kinect ですが、2017 年に一旦生産が終了されました。

大人の事情は分かりませんが、涙を飲んだエンジニアが多かったと思います。ありがとう Kinect。



チナミニ、2019年6月現在、 Microsoft のサイトは更新されておらず（Windows 向けの記事だから？）悲しいお知らせがまだ残っていました。

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/86538fee-8371-7c7e-2ad2-296dfd11a81a.png)
> 
> 開発者の間では Kinect ハードウェアからの移行が進んでいるため、Microsoft では、開発者の皆様に Intel RealSense デプス カメラを検討することをお勧めしています。
> 
> https://developer.microsoft.com/ja-jp/windows/kinect 2019/06/17 2:29取得



# Kinect is Back.

> ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/bf4f8729-827d-6164-5803-ce5b40a7b29d.png)


これで終わりなのか・・？ 名前は HoloLens で使われてるけど・・・？

と思った矢先に Kinect が帰ってきたのが 2018年5月の Build, そして詳細が分かったのが2019年の2月でした。

* 2018年5月
  * [Microsoft、「Project Kinect for Azure」をAIエッジデバイスとして復活 \- ITmedia NEWS](https://www.itmedia.co.jp/news/articles/1805/08/news066.html)
* 2019年2月
  * [Kinectが形を変えて復活、Azure Kinectって何ができるの？ \| ギズモード・ジャパン](https://www.gizmodo.jp/2019/02/azure-kinect.html)
  * [「Kinect」がビジネス向けに復活　399ドルの「Azure Kinect」はAIカメラ端末 \- ITmedia NEWS](https://www.itmedia.co.jp/news/articles/1902/25/news086.html)


* Kinect デバイスが Windows に繋がる形で再び帰ってくる。
* 当然、生の深度画像へのアクセスもできる。
* 画像処理の文脈だけでなく（それは当然として）、AI・IoT・エッジコンピューティングという題目もひっさげて。

格好いいですね。



# Azure Kinect DK

前書きばかりが多いオタクの文章になってしまいました。。。

改めて de:code に参加することができたので、（資料はオフィシャルから入手することもできるし、Youtube にセッション動画も上がっていますが）スクリーンショットに解説（個人の見解です）つきで Azure Kinect の紹介をさせて下さい。


## 位置づけ
HoloLens と並列して存在する、MR 用デバイスです。
![Slide2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/aea8eaa0-168d-7075-1634-5730fc650abf.png)



## センサー

マイクは7つ（マジかよ！）のアレイ方式。また Kinect センサー自体に加速度角速度センサーを備えています。

つまり、センサー自体が地面に対してどの角度で設置されているか、どう動いているのかが解ります。

（ドローンとかに積んでみたくなりますね）

![Slide3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/daa7972a-9f2e-c380-989f-d7c968e2e1b7.png)



## センサー精度について

RGB カメラは　4K 解像度の取得が可能

深度センサーは1K正方形の出力が可能です。

（解像度が高まると、FPS が下がるというのはあります）


![Slide8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/15e78208-9ebd-560f-e280-bd02d7ce085e.png)




## OS

対象OS は Windows はもちろん、Linux 可です。（すぐに Mac も誰かが対応してくれそう）

![Slide11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/6638e566-c5a4-0fca-cd34-38a3f890d8c0.png)



## 骨格

24点トラッキングになります。

![Slide13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/f3a613b2-0c93-c050-1dcd-af6aeeb25abb.png)



## 世代差

ToF センサーの解像度向上がすさまじい。
左側が Azure Kinect です。

![Slide17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/041be424-800c-41dc-a230-09a06249ab85.png)


![Slide18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/3b41d801-c015-9ec6-bd18-0e9295000075.png)


## FPS

RGB 4K であれば、5 or 15FPS

ToF 1K も同じく 5 or 15FPS が可能

![Slide27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/6d887fca-5543-e017-c02b-5c6d26d67506.png)


## Debuggability

オフィシャルでレコーダー・Replay 実装がついています。

1回データレコーディングをすれば、開発環境ではそれを使い回す！ ということが可能なのでハイパー便利です。

![Slide35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/f1d00c3a-6aec-2edd-f72e-23aa8b113d10.png)


## デイジーチェーン

Business 用途の多視点要素ではたぶん望まれていた機能で、多数の Kinect 間でフレーム同期をとることができるようになりました。

![Slide40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/52956/e2e6fe31-8087-346c-f297-05747ce376ee.png)


# 終わりに

2019 年にいよいよ再起動する Kinect について、以前から Kinect の事をご存じの方向けにはなってしまいましたが、この場を借りて紹介記事を書かせて頂きました。

人間が xR 世界とやり取りするためには、その Interface が必要になります。

Base Station のような周辺デバイス＋Tracker ・コントローラといった組み合わせでは無く、非接触の Kinect が今後どう活用されていくのか。引き続き情報を追っていきたいところです。