【This Web Policy】
You should make JavaScript available to read this page.
Please enable the execution of JavaScript!




【次世代Kinect for Windows Ver.2.0】


『Kinect Changes the Sensing World』
    【リンクフリー】
 【私設研究所】Neo-Tech-Lab Neo-Tech-Lab.co.uk
【報告者】 【私設研究所Neo-Tech-Lab】 上田智章
作成日 2013/09/01
ここにチェックボックス型外部コンテンツ・メニューが入ります。




【ブラウザはGoogle Chrome】
●最新版ダウンロードはこちら

【お知らせ】

Windows7でChromeがフリーズを起こす場合は、コントロールパネル⇒管理ツール⇒サービス でWindows Media Player Network Sharing Serviceを停止かつ無効にします。Micorosoftのバグです。

秀和システムさんより発売中。
『Kinect for Windows SDKプログラミング Kinect for Windows V2センサー対応版』
   単行本発売開始 – 2015/5/22
   中村 薫 (著), 杉浦 司 (著),
   高田 智広 (著), 上田 智章 (著)
   単行本 ¥3,672   Kindle版 ¥3,060

 ■本書で紹介されているサンプルプログラムの入手に関して


【講演・技術セミナー予定メモ】

【トリケップス セミナー】

【題  名】『3Dセンシング技術(Light Coding / Time of Flight / Infrared Depth)の動作原理と非接触生体センシング 』
【副  題】~Microsoft Kinect V2, Intel RealSense F-200,R-200など~
【開催日時】⑩2016年03月17日(木)10:30-17:00【予定】
【会  場】オーム ビル(千代田区神田錦町)
【開催履歴】
  (1)2013年05月24日 (2)2013年08月30日 (3)2014年02月07日
  (4)2014年06月20日 (5)2014年08月29日 (6)2014年11月28日
  (7)2015年03月18日 (8)2015年07月10日 (9)2015年11月06日
【概略内容】
デプス・センシング・アルゴリズム(Light Coding 技術[V1] / Time of Flight 技術[V2] / Infrared Depth [次世代] )の理解から、それを用いた非接触生体センシングの動作原理、ヒューマン・ ヘルスケア関連アプリケーションへの展開、及び次世代デバイス Hololens までを解説
■その他、SDKのセットアップや基本的な事例の資料は添付、あるいはサンプルプログラムのダウンロードができます。

Microsoft社のKinect V2


Intel社のRealSense F-200(左)とR-200(右)



浴室見守りシステム(KinectV2で撮影)

岩手大学 小林宏一郎教授、大川井宏明教授、Network21 佐藤恭之氏らと共同研究。平成26年中の交通事故死者数は4,113人でしたが、浴室は家庭内にありながら1年間に16,000人(浴槽内8,000人、洗い場4,000人、脱衣所4,000人)が死亡している非常に危険なゾーンです。同居家族がいる場合でもプライバシーの問題から発見までに時間を要してしまうことが影響していると考えられています。デプスカメラによる測距データによる見守りでプライバシーに配慮しながら通報時に状況を把握しやすいシステムを研究・開発しています。

最大血圧200~220時の頬の血圧脈動(RealSense F-200で撮影)

立命館大学スポーツ健康科学部 / スポーツ健康科学科 佐久間春夫教授、同大学院 笹塲育子氏との共同研究。スポーツ選手が普段の練習通りの成績が出せるように行う加圧式呼吸法によるバイオコントロールに関して、KinectV1による非接触バイタルセンシングを用いて研究を実施。加圧式呼吸法で血圧コントロールができることも判明。

【学会講演】

●第127回微小光学研究会『ランダムドットパターン投影法によるデプスカメラの動作原理』上田智章(Neo-Tech-Lab)
●日本光学会年次学術講演会 Optics & Photonics Japan 2013『ランダムドットパター投影法によるデプスカメラの動作原理』上田智章(私設研究所 Neo-Tech-Lab)
●ジェロンテクノロジーフォーラム2015『デプスカメラによる見守りシステム』上田智章(株式会社フォスメガ NeoTechLab)、小林宏一郎(岩手大学)、大川井宏明(岩手大学)
●SICE SI2015『KinectV2を用いたセンシング技術動向』上田智章(Neo-Tech-Lab)


【次世代Kinect for Windows Ver.2.0】

【次世代K4Wα版早期入手プログラム】

Be the first to get your hands on the new generation Kinect for Windows sensor

2013年12月に発売されるXBOX ONEに標準搭載のKinect2.0が2014年にパソコン向けに発売される予定です。ネットで【次世代Kinect先行販売プログラム】とでも言うような次世代Kinectを$399で購入できるプログラムの存在を知り、最終日に応募してみました。私は個人資格で申し込みました。応募欄にあった『Microsoft社があなたを選定するべき理由』欄にはこのページ【これまでKinectに関連して行ってきた内容のわかる動画を並べたページ】を見てくれとだけ記載しました。Microsoft社から該当ページにアクセスがあったのは2週間後(8月中旬)でした。
●131.107.147.187 [14/Aug/2013:05:28:59 +0900] "GET /ARsensing HTTP/1.1" "http://t.co/zHD6MPGt5m"
●131.107.147.187 [14/Aug/2013:05:29:31 +0900] "GET /Kinect/ HTTP/1.1"
 Twitterのページリンク(第1リンク)からもクローラーが飛んで来てくれたことがわかります。さらにYouTubeの動画にもアメリカからのアクセスがあったようです。ちゃんと審査してくれているようです。

応募記載内容

Application ID: ○○○○-○○○-○○-○○-○○○○○
First Name: ○○○○
Last Name: □□□□
Email: □□□□@neo-tech-lab.com
Country: Japan
Twitter Username: NeoTechLab
CodePlex Username: <none provided>
GitHub Username: <none provided>
Company/Individual: Individual
Application Idea: Non-contact bio-signal Sensing System, Human Healthcare Support System, Private maid agent system
Website (if any): http://www.neo-tech-lab.co.uk
Why Qualified: Please see this page. ( http://www.neo-tech-lab.co.uk/Kinect )

しかし、それから2週間音沙汰なしだったので、すっかり諦めていたところ、8/30に以下のメールが届きました。

K4W Wants You!

Dear ○○○(個人応募者のファーストネーム):

Congratulations! I am delighted to notify you that the Kinect for Windows team is offering you (“○○○ □□□□ (Individual)”) a place in our upcoming developer kit program :-) As you know, this program will grant a select number of developers exclusive access to pre-release hardware and software.

We received thousands of applications to the program. Due to the high volume of interest, we won't have enough alpha hardware to admit everyone who applied to the program. Over the next few months, we will continue to notify successful program applicants.

We're convinced that your combination of passion for Kinect, technical expertise, and the creativity of your idea will make you an awesome contributor to the evolution of NUI.

We are still targeting November for the release of the hardware and SDK. Running the alpha SDK and sensor will require a desktop-class machine with a modern GPU and USB 3.0 controller card (more deets on this to follow). Look for another email from us in October to finalize your program onboarding and to pre-order your developer kit.

I'm looking forward to working with you and seeing what you create with the new-generation Kinect.

Sincerely,
■■■■ ▲▲▲▲
Developer Community Manager
Kinect for Windows

Yahoo! 嬉しい!もうすっかり諦めていたのだが良かった。11月にハードとSDKの供給があるらしい。これでいろいろ楽しみだ。(^_^)
個人資格での応募※なのでGeekぶりを強調したつもりのアピールにしたのだが、返事がなかなか来なかったので実はちょっと後悔していたんだけど...取り敢えず良かった。(○^_^○)

赤字アンダーラインに記載されているように、優先順位は設けられているようですが、他の審査合格者にも今後2、3ヶ月間にわたって随時連絡の可能性があります。まだメールが届いていない人でも、アルファ版ハードウェアの個数が確保できれば残りの合格者にも連絡を行うという意味であると考えられます。
ところで、Kinect2.0の機能を出し切るにはメール(K4W Wants You!)に書いてある様に、ハイエンドなデスクトップ機(core i7くらい、高解像度高速3次元グラフィックスに対応したGPU搭載)でUSB3.0を備えたWindows機が必要とされるようです。むむむ。そっちの方のお金も用意しとかなきゃ。しかし今時デスクトップ機と言うのがちょっとあれだな。毎年PCは2,3台購入するけど、デスクトップ機購入は何年ぶりだろう。かさ張るんだよね。

(※応募を法人でなく、個人資格にしたのは、これまでアメリカ人には日本人の控え目な態度はわかってもらえないことが多く、自己主張しないとダメだったことが何回かあったのと、個人でも認めてもらえる経験が何回かあったからです。)

【Photo 1】次世代Kinect for Windows (K4W) TOF赤外線プロジェクタ、RGBカメラ、Irカメラは一か所に集められているようだ。

【Photo 2】デプスカメラの方式はTOF: Time of Flight方式。解像度は約2.5倍。手前の顔の表情だけでなく、後方のソファーのクッションまではっきりと撮影できており、真にmmの精度はあるようだ。但し、カウチ問題と呼ばれる画面周囲部分が鮮明にとれない問題はあるようだ。

【Photo 3】骨格に親指とそれ以外の指部分の関節が追加されている

【Photo 4】ボーンだけでなく面の法線も持っているので顔の向きも追尾できる

【Photo 5】物理エンジンも搭載。筋肉にかかる力や与えるエネルギーが可視化できる『スカウター』(Muscle + Force)モード

【Photo 6】次世代Kinect for Windows (K4W)の各モード
  この他、RGB,Irから心拍数を測定するモード、顔の表情を詳細分析できるExpressionモードがある。



【ベールを脱いだKinect2.0の仕様】
当初2013年末にXBOX ONEは発売される予定だったが、2014年に延期され、PC接続用Kinect2.0も同時期に発売される予定だ。つまり恐らくだが、早期取得プログラムのお陰で3カ月ほど早くKinect2.0を触れるようになるようだ。

Kinect for Windows Version 2.0 = K4W V2


【遂にK4W V2がやってきた】

記載日:2013年12月3日
遂に個人資格で応募していたKinect for Windows V2 Developer Preview Kitが11月27日に到着した。さて、本ホームページでK4W V2の内容を記述する前に、Microsoft社との守秘義務契約の関係上、公開内容には一定の制約があり、記載できない内容も多いことと、以下の免責事項を先に記載することにする。

【Disclaimer】

“This is preliminary software and/or hardware and APIs are preliminary and subject to change.”

【免責事項】

『次世代Kinect for Windowsのソフトウェアまたはハードウェア及びその両方は暫定仕様であり、APIに関しても暫定的なものであり、変更されることがあります。』

【K4W V2のセンサ本体の外観】

XBOX ONE用のKinect2.0のケースを利用したと思われる外観で、ちょっと変なモノクロのシールが貼ってある。センサ本体からはUSB3.0と電源ラインが一緒になったような特殊なコネクタの付いたケーブルが出ている。手元に届いた暫定版キットでは電源ユニットとセンサとパソコンのUSB3.0を相互に接続するための割と大きな変換器がついている。電源もかなりの大きさだ。
K4W V2のSDKを動かせるのはWindows8及び8.1だけであり、しかもi7でDirectX11に対応した高度なGPUが付属したパソコンが推奨されている。プログラム開発には、Visual Studio 2013を使う必要がある。
写真1は動作時のもので、KinectServiceというプログラムを起動すると、APIを介したセンサ利用が可能になる。このとき、中央部分の赤外線ブラスターから赤いレーザー光が確認できる。
プログラムを動作させてアクセスを開始すると左端のRGBカメラレンズ穴の右横にある白いLEDが点灯する。図1は添付のデプスカメラのデモを改変してデプス・イメージをカラー化したもののスクリーンショットだ。
TOF方式デプスカメラで取得できるデプスイメージの解像度は近くでも遠くでも変化することはなく、現行Kinect Fusionレベルの画像がリアルタイムに取得できる。試しに呼吸してみたところ、はっきりと呼吸運動に伴ってビット境界の位置が変化することが確認できたほどだ。
図2,図3も同じだが、図2で手に持っているのは赤外線を吸収する性質があるカーボンブラックで円形マーカーが印刷された紙である。カメラの方を向いているときはデプスカメラなのでマークが見えることはないのだが、角度がついて図2のような状態になると本来は見えないはずのマークが見えてくる。これは角度の警告を与えたりするのに使える機能かもしれない。
また図3は赤外線を透過する性質を持ったアクリルの場合だ。鏡面反射光がカメラに返ると距離測定が行えず、白く出ている。また、アクリル裏側にある手が映り込んでいる。
守秘義務契約によりAPIの内容は書くことができないが、現時点でも現行Kinect for Windows SDK 1.8に慣れた人ならばきっと直ぐに使えるだろうと思う。現行Kinectの知識が役に立つはずだ。

今後、K4W V2を使って、まず胸部デプス値から呼吸と心拍を抽出する非接触バイタル・センシングを移植したいと考えている。

【写真1】K4W V2の外観(暫定仕様)

【図1】K4W V2のTOFカメラで取得したカラー化したデプス・イメージの例

【図2】K4W V2のTOFカメラで取得したカラー化したデプス・イメージの例(円形マーカー)

【図3】K4W V2のTOFカメラで取得したカラー化したデプス・イメージの例(透明アクリル)

【図4】K4W V2のTOFカメラで取得したカラー化したデプス・イメージの例
  舌を含め口内もはっきりと確認することができる。

【K4W V2に少し細工して血管撮影】

記載日:2014年2月4日
K4W v2にはTOF用の赤外線ブラスターが実装されており、恐らくは1.2W級と思われる高出力で3個のレーザーがパルス駆動され、スポット光源を構成している。この光はどうやら拡散板によりレーザー特有の偏光が崩れた状態になっている。この赤外線ブラスターを照明として利用し、赤外線カメラのイメージ画像を取得すると、40cm程度の距離では明る過ぎて図1左側画像のように皮膚表面の反射のためにハレーションを起こしてしまう。そこで赤外線でも有効な特殊な偏光フィルムを赤外線ブラスターと赤外線カメラの部分にクロスニコルとなるような向きに張り付けてやると、この皮膚表面での反射を抑制し、血管を透視することができる。
本実験は、K4W V2で非接触血圧センシングを行うための予備実験として行った。
現行Kinect for Windowsで同じ細工を施した場合の参考映像を図3に示す。K4W v2の性能がお分かりいただけると思う。

【旭化成イーマテリアルズのWGF】
●WGF(Wire Grid Film)は可視光からテラヘルツ領域まで効果を有する偏光板です。これを照明側と赤外線カメラ側にクロスニコルになるように貼りつけると、皮膚表面の正反射を抑制することができ、血管の観測に適しています。

【図1】K4W V2の赤外線カメラで観測した手の映像比較事例


【図2】K4W V2の赤外線カメラで観測した手の血管の事例


【図3】現行Kinect for Windowsの赤外線カメラで観測した手の映像比較事例

【K4W V2の至近距離・長時間利用には注意を!】

記載日:2013年12月6日
K4W V2から1mの距離で2晩使用して眼に違和感を覚えたので原因を調べた。軽度のドライアイ症状。赤外線WebカメラでK4W V2を観測したところ、現行Kinectと比べて赤外線強度が半端ないことが判明。現行Kinectのレーザー出力で概ね200mW級。拡散板で単峰性に拡散されているので眼にはあまり影響しない。しかし、K4W V2は恐らく、同等レーザーを3個使用し、順次パルス駆動を行うことで、1.2W級のレーザー出力であろうと考えられる。
獣医の方から聞いた話では、近年飼い猫の失明症例が増加しているとのこと。原因は赤外線こたつ。長時間この中に潜り込むことが原因だと言う。
赤外線の人体への影響については、『人工光源からの光の人体に対する安全性の評価に関する最近の話題』(株式会社 テクノローグ 河本 康太郎 氏 )の中にあるように、
【引用】『スポット的な光源でなくても,広い面積の赤外放射源を長時間見ており, 網膜上に投影し続けるような場合でも網膜傷害が生じる可能性があります。』
という記述がある通りであり、現行Kinectでさえ、赤外線こたつの出力よりも強い光だと記載しておく。
くれぐれもK4W V2の至近距離での長時間使用については避けるよう注意した方が良いだろう。現状の仕様では、KinectService.exeが動作中は強烈な赤外線がでているので、デバッグ時にはこまめにKinectServiceを停止した方が良いだろう。

【図1】K4W V2を赤外線カメラで観測した事例


【図2】現行Kinectを赤外線カメラで観測した事例

【現在K4W V2で非接触バイタルセンシングの開発中】

記載日:2013年12月6日
K4W V2の胸部デプス画像だけを用いた呼吸・心拍の非接触バイタル・センシングを開発中です。以下にこれまでの取り組み事例を示します。

『顔・胸部追尾型バイタルモニタ(心拍・呼吸)』【Version0.17】

『顔・胸部追尾型バイタルモニタ(心拍・呼吸)』【Version0.18】

  【注意事項】
   ■サンプルプログラムVer.0.17 (SDK Ver.1.7に対応)
   ■サンプルプログラムVer.0.18 (SDK Ver.1.8に対応)
Kinectの骨格追尾(Skeleton Tracking)を利用して顔追尾(Face Tracking)と胸部追尾(Breast Tracking)を行い、心拍と呼吸を1.2m~1.5m離れた位置でセンシングします。椅子に腰かけ、安静状態でお試しください。骨格認識終了後に波形が表示されます。Depth設定は設定変更は行わずDefaultモードのままお使いください。
以前に公開したバージョンでは顔追尾(Face Tracking)を行っていないプログラムであったため、50cm程度の距離で心拍を測ることしかできませんでした。また今回のものであれば呼吸は3mから4mの距離でも測定できるとは思います。
Ver.0.17はKinect for Windows Contest 2013のデモで使用したバージョンです。Ver.0.18はこれに胸部心拍動の処理を加えたものです。実は服が身体に密着していれば、デプスカメラで胸部を観測するだけで、服の上から呼吸と心拍動(脈拍)を捕捉することができるのです。次世代KinectではTOF(Time of Flight)方式でデプスカメラを実現しているのでより遠方でもこれが可能になると考えられます。(胸部心拍動0.3mmpp)

【Kinect for Windows Contest 2013】
【技術賞受賞】


顔・胸部追尾
測定中
分厚い布団の上からでも体に密着させれば呼吸センシング可能

【Kinect for Windows Contest 2013】
【技術賞受賞】
 [2013/09/19]

MONOistさんの関連記事】

Kinect for Windows Contest 2013の記事がMONOistさんで掲載されています。

●Kinect for Windows Contest 2013 リポート(1):
またしてもハイレベル!? 美と健康は「Kinect」にお任せあれ!

●Kinect for Windows Contest 2013 リポート(2):
「ロボット」から「プロジェクションマッピング」まで
――Kinect活用でビジネス化を目指せ!!【前編】


●Kinect for Windows Contest 2013 リポート(3):
「趣味」から「健康管理」まで、Kinectはシニア市場で花開く!?
――Kinect活用でビジネス化を目指せ!!【後編】


【XBOX ONEは日本では9月発売に!】

 [2014/03/28]
XBOX ONEの日本発売時期が9月になってしまった模様。
第一市場とは10か月遅れの展開は日本市場が穴埋め的存在として取り扱われているように思える。
こうなると心配なのはKinect v2の日本での発売時期とその価格になる。
Microsoft社は、現行Kinectの開発元であるPrime Sense社の買収は行わなかったのに、
Kinect v2のTOFカメラの開発元であるCanesta社は早々に買収し、特許網戦略を取った。
普通は本気の勝負をかけるはずなのだが...

ところで、Kinect v2のSDKもアップデートがあるそうだ。

【Kinect for WindowsとK4W v2をWebSocketを使ってブラウザに接続】

 [2014/05/05]
HTML5+JavaScriptにWebSocketという機能が実装されているので、Kinectのデプスイメージと骨格トラッキング・データをC#のアプリケーションからブラウザに転送することを考えた。
HTML5+JavaScriptではWebSocketのClient側プログラムは非常に簡単に記述することができる。チャット・アプリ用のサンプルコードはそこらじゅうで発見する事ができる。しかし、イメージデータの転送に対応しているサンプルコードは本当に少ない。
WebSocketのサーバー側になると、公開されているサンプルコードの数はClientよりも少なくなるし、殆どが転送バイト数が少ないチャット用が殆どだ。理由はWebSocketによるデータ転送に用いられるバッファサイズとパケット長の制約によるようだ。
C#でWebSocketを構成するには、WebSocketサーバーとKinectアプリのクライアントの2つのプログラムを組む必要がある。具体的にはSystem.NetのHttpListenerクラスとSystem.Net.Websocketsクラスを利用する。しかしながらデフォルトバッファサイズは16kB, 最大でも64kBになってしまうため、320×240画素のARGB形式のデプス・イメージでも307,200バイトとなり複数パケットに分離してしまう。
サーバー側ではEndOfMessage=trueのパケットが一連の受信データの最後のパケットであるので、大容量のバイナリーデータを転送するために一旦全データをバッファに格納した上で、クライアントに転送する。
【もう少し試験を行った上で、プログラムを公開する予定です。】

【Server:C#, Client:HTML5+JavaScript】

【Server:C#, Client:HTML5+JavaScript】Kinect + WebCam + MMD on WebGL


【WebSocket】『Kinect for Windows SDK Ver.1.8』

WebSocketという機能を使えば、簡単にテキストやバイナリのデータをブラウザに転送して利用することが可能になります。ブラウザでHTML5+JavaScriptを使えば、KinectとWebカメラやWebGL(3次元グラフィックス), WebAudioの共存利用などが行えるわけです。
このデモではブラウザはChromeを使用。320×240画素のデプスイメージをリアルタイムに伝送することができる。
【C#サンプルプログラムのプロジェクトファイルをダウンロード】
(公開したプログラムは現行Kinect for Windows用です。)

【WebSocket】『Kinect Ver.2.0』

Kinect2.0のデプス画像は512×424画素なので、かなり重くなる。

【Disclaimer】

“This is preliminary software and/or hardware and APIs are preliminary and subject to change.”

【YouTube】【Kinect+WebCam+MMD on WebGLのデモ動画】

【Kinect for Windows Ver.2.0】『日本では税込価格21,578円で予約販売受付開始。』

購入申し込みはこちらから!


【Preview版の機能】
●現時点で実装されている機能は概ねSDK Ver.1.8相当です。Grab判定は標準で実装され、関節も25に増えてはいますが、心拍機能やMuscle & Forceなどの新機能については実装されていませんし、その兆候を示す予約語も登場しない状態です。
●非接触バイタルセンシングを行うには、赤外線照明付きの赤外線カメラ画像は、ハード的な対策を何も取らなければ皮膚表面の正反射が障害となり、心拍に起因する輝度変動も検出しにくい状態です。
(旭化成イーマテリアルズのWGF(Wire Grid Film)を使うと皮膚表面の正反射を簡単に抑制できるので劇的に改善されます。)
●K4W v2の売りであるToF(Time of Flight)カメラの画面分解能は512×424画素で30FPSで取得でき、一見するときれいなデプス画像が得られていますが、1mの位置で3mm~7mm程度のノイズがあります。(現行Kinectでは1mm)
●ToFカメラの画像は量子化誤差を持つので、100×100画素の加算平均を行っても、ランダムドット方式のv1と違って深度方向の解像度は思ったように改善する事には成功していません。(現状、100ミクロン程度。鎖骨下位置で服の上から呼吸3~5mmが非接触観測できるが、心拍動0.3mmppは困難。v1では同一条件で10ミクロン)

【その他の懸念事項】
●現時点での懸念事項は、赤外線ブラスターの光出力です。日本工業規格ではレーザーの光出力に関して規定が定められていますが、クラスⅠとは思えないほどで、十数mW位出ている可能性(クラスⅢB相当)があります。(簡易な測定の結果なので精確ではありませんが。)
“This is preliminary software and/or hardware and APIs are preliminary and subject to change.”

【Kinect for Windows Ver.2.0のToFカメラにはノイズがある】

ToFカメラには、赤外線ブラスターの照明ノイズ、散乱光によるマルチパスノイズ、暗電流ノイズが存在しますが、散乱光ノイズについて動画を作成しました。画面中央の矩形小領域内の画素を使ってある程度ノイズを除去し、100ミクロン程度の距離分解能を達成しています。この状態で、カメラから離れた位置で手を振ってみます。勿論、矩形小領域の外ですが、なんと5mmくらい測定に誤差が出てしまいます。

“This is preliminary software and/or hardware and APIs are preliminary and subject to change.”

【Kinect for Windows Ver.2.0による非接触呼吸センシング】

現状、なんとか100ミクロン程度の距離分解能を達成しています。処理手順は、①矩形領域内の画素(深度)値を平均⇒②基底遷移アルゴリズムでノイズ除去、の手順となっていますが、今後10ミクロン精度を達成するには別のアプローチが必要でしょう。
WPFはあまり動作速度が宜しくないので、Formを使っています。

“This is preliminary software and/or hardware and APIs are preliminary and subject to change.”

【Kinect for Windows Ver.2.0のKinect Fusion使用時のノイズ】

Kinect Fusionは2014年7月15日に公開されたSDK2.0オープンベータ版には含まれておりませんが、Developers Preview Kit購入者にのみ公開されているWeekly Buildに同梱されています。漸く7月になって公開されたものです。
顔形状についてどの程度の影響が出るのか確認してみました。カラーで見ると一見すると影響ないように見えますが、モノクロで凹凸を見るとやはりマルチパス・ノイズがとても目立ちます。目の周りや腕の所が顕著です。5mmの誤差と言うのは3Dプリンタ等では致命的と言えるレベルだと思います。
また、プリント柄の付いたカーテンを撮影してみたところ、模様が凹凸となって検出されてしまいました。赤外線吸光度が違うと大きな誤差を生じる可能性があります。




“This is preliminary software and/or hardware and APIs are preliminary and subject to change.”




顔や壁をご覧ください。少し凸凹していますね?これがマルチパスに起因するノイズです。衣服の模様も凹凸になってしまう欠点もあります。

これはKinect for Windows V1のKinect Fusionで撮影した頭部ですが、とても滑らかです。V2のマルチパス・ノイズの影響が良くわかると思います。

マルチパス・ノイズとは、ToFカメラが発生させる光パルスが一旦別の所に反射してから観測点にも入り込むため、距離が精確に出ない系統的誤差の事です。Kinect V2ではこの誤差が最大5mm程度になります。


現時点ではSDK(C#)にその機能は公開されていないのですが、Kinect Fusionを起動中にカメラをふさいだ状態でKinectを回転させても、グラフィック表示がその動きに同期して回転するので、3軸加速度センサが実装されている模様です。
それであればカメラをZ軸回りに90度程度回転させてみたのが、この事例です。マルチパス・ノイズが低減されている事がわかるでしょうか?


【Kinect for Windows V2オープンベータ】

●2013年5月にアナウンスされた心拍測定機能はKinectの可能性を示したプログラムであってSDKには実装されないそうです。従って、各自がプログラムを書いて実装する必要があります。これについては、Kinect V1のページWebカメラのページにサンプルソースを公開していますので、是非参考にしてください。
●6人同時に行える顔トラッキングと、非常に精細な顔トラッキング(HD Face)が公開される予定です。オープンベータにDLLのみ添付されています。
●EyeトラッキングはV2には実装できない模様。これに関しては筆者はWebカメラで実装済みなので機を見て公開する予定です。
●Muscle & Force(物理エンジン)も実装されていません。Bulletを自分で実装するかUnity3Dを使う必要があるようです。



【Kinect for Windows V2にも3軸加速度センサは実装されていた!】

Kinect Studio 2.0を使っているとき、センサを傾斜させると、カメラ穴をふさいでいても、グラフィック表示がセンサの向きに応じて変わる事に気が付きました。これは3軸加速度センサが実装されていることを示唆しています。そこでKinect V2を分解して確認してみました。
すると...ロームの子会社である米Kionix社の3軸加速度センサ(KXUD9)が赤外線カメラのあたりに実装されていることが確認できました。
なお、もしかすると製品版のKinect for Windows v2ではこのセンサはKXTI9にバージョンアップされる可能性があります。






【Kinect for Windows V2で試作中の非接触バイタルセンシング】

まず、呼吸センシングまでを実装しました。プロジェクトファイルを公開します。
所詮、試作ソフトですので、サポートはいたしません。
心拍センシングには複数のやり方があるので、現時点で試行錯誤中です。
精度は以前SDK1.8のものよりは改善されるでしょうが、時刻精度は2~3ミリ秒になる可能性が高いです。







【Kinect for Windows V2のToFノイズ除去に成功】

ToFカメラは複数のノイズ要因を持っていますが、今回ToFイメージデバイスが原因と考えられるノイズの除去を行いました。このノイズは隣接する画素間には相関性が高く除去が困難なのですが、時系列方向に観測したところ相関性が低いことが判明しました。そこで、フレームデータを1~3.3秒程保持する事が可能なFIFO(First-In First-Out)メモリをソフトウェアで用意し、リアルタイムに時系列方向の加算平均を行いました。結果は良好でした。








【Kinect for Windows V2で自前の精密なKinect Fusionを作れないか?】

Developers Preview Kit購入者にのみ公開されているKinect FusionではまだまだToFカメラの赤外線照射光の散乱によるマルチパスノイズやデバイス・ノイズが目立つ。これでは顔認証などとても無理な状況だ。Microsoft社はメディアン・フィルタがToFノイズ除去に有効だとコメントしていたが、多分それは実装負荷が最も軽いと言うだけの話だと思う。前述したように、デプスデータを30~100フレーム分位蓄積できるFIFOメモリを導入し、リアルタイムノイズ除去が行えるようになったので、高精度なデプスを取得してSTLフォーマットのポリゴンデータを作ってみた。カメラ座標に変換するのにSDKのCoordinateMapperを使ったため、実際には0.3mm分解能を達成しているが、強制的に1mmピッチに変換されている。この部分は作り直すつもり。






【Long Exposure Depth Camera(Kinect Fusion風)ソース公開】

Developers Preview Kit購入者にのみ公開されているKinect Fusionですが、ToFノイズが大きく、V1に劣ります。そこで、似たような動作をするオリジナル・アルゴリズムを開発し、試作してみました。デプスデータを100フレーム分位蓄積できるFIFOメモリを使ってリアルタイムノイズ除去を行い、0.3mm程度の解像度を実現しました。C#のプロジェクトファイルを公開します。






【Kinect for Windows V1とV2を同じプログラムで共存させる】





同一プロジェクト内ではKinect.dllが名前が同じなので共存できません。しかし、例えばFormで作ったV1のプロジェクトのプロパティーでクラス・ライブラリ(DLL)として作成を行い、V2の方のプログラムで参照することができるので、左のようなことが可能になります。