狠狠撸
Submit Search
わんくまT84 kinect深度情報処理入門
?
Download as PPTX, PDF
?
2 likes
?
4,680 views
伸男 伊藤
Follow
1 of 44
Download now
Downloaded 14 times
More Related Content
わんくまT84 kinect深度情報処理入門
1.
わんくま同盟 東京勉強会 #84 Kinect 深度情報処理入門 暁
紫電 @akatukisiden
2.
わんくま同盟 東京勉強会 #84 自己紹介 本名:
伊藤 伸男 年齢: 26歳 ? 興味分野 ? Windows クライアントア プリ ? COM ? WinAPI ? .NET/Native 相互運用 ? 使用言語 ? C++ ? C++/CLI ? C# HN: 暁 紫電 twitter: @akatukisiden 職業: フリープログラマー
3.
わんくま同盟 東京勉強会 #84 アジェンダ ?
Kinectとは(Kinectの歴史) ? Kinectで出来る事 ? なぜ深度に注目するのか ? 解説とデモ ? まとめ
4.
わんくま同盟 東京勉強会 #84 Kinect
(for Xbox 360)とは ? Microsoftが販売するゲーム機「Xbox 360」用のコ ントローラー ? コントローラーを持つ必要が無く、身体の動きや、 ジェスチャー、音声などによる操作が可能なこと が特徴 NUI (Natural User Interface) ? Kinect自体にもCPUを搭載し Xbox側の負荷を下げている。 ? 2010年11月「Kinect for Xbox 360」発売
5.
わんくま同盟 東京勉強会 #84 Kinect
ハック ? もともとはXboxでしか使えなかったが、 PC用のドライバー等を開発?公開する人があらわ れる (KinectのUSB接続はあえて暗号化されていなかっ た) ? PC用のKinectアプリ開発 (Kinect ハック)が ブームになる ? 2011年06月 「Kinect for Windows SDK」 β版公開 ? 2012年2月 Kinect for Windows 販売 Kinect for Windows SDK 公開 (Windows PC専用 商用利用可能)
6.
わんくま同盟 東京勉強会 #84 The
Kinect Effect Kinectはゲーム?エンターテイメントを目的として 作られたが、 その他の分野にも活用されており、 この広がりは「The Kinect Effect」と呼ばれてる ? ゲーム ? リビングルーム ? 医療現場 ? リハビリテーショ ン ? 見守り支援 ? 教育 ? 人流計測 ? ヒューマンエラー防止 ? 商品統計 ? アパレル ? デジタルサイネージ ? アミューズメント施設 ? 危険区域における構造調査 ? 等々…
7.
わんくま同盟 東京勉強会 #84 次世代Kinect ?
2013年5月 「Xbox One」と共に再設計された次世 代「Kinect」を公開 ? 2014年 「Xbox One(+Kinect for Xbox One)」 「次世代型 Kinect for Windows」 発売予定 ? 3Dセンサの原理を変更、解像度、奥行き方向分解 能ともに向上 ? センサーに近い場所、狭い部屋でも認識精度が向 上。 ? スケルトン、ユーザー認識(後述)精度も向上 ? 心拍数も取得可能(RGBカメラとIRカメラから推 測) ? Etc…
8.
わんくま同盟 東京勉強会 #84 Kinectで出来る事
9.
わんくま同盟 東京勉強会 #84 カメラ(RGB/YUV/Bayer) ※サンプルアプリ
Kinect Explorerの映像を撮影
10.
わんくま同盟 東京勉強会 #84 深度センサー ?
0.8m~4m(通常モード) or 0.4m~3m(Nearモー ド) ? 13bit ※サンプルアプリ Kinect Explorerの映像を撮 影
11.
わんくま同盟 東京勉強会 #84 スケルトントラッキング (簡易モーションキャプチャー) ※サンプルアプリ
Kinect Explorerの映像を撮 影
12.
わんくま同盟 東京勉強会 #84 ?
全身20箇所の関節などの座標と向きを取得 ? 上半身10箇所のみの取得も可能(Nearモード) ? 2人分まで取得可能
13.
わんくま同盟 東京勉強会 #84 ユーザーの認識 ?
最大6人まで認識可能(3bit) ? 深度データ13bitと一緒に16bitデータとして 取得 ※サンプルアプリ Kinect Explorerの映像を撮 影
14.
わんくま同盟 東京勉強会 #84 マイク ?
音声の取得 ? 音源方向の認識(指向性マイク×4) ? マイクデバイスとして使用可能
15.
わんくま同盟 東京勉強会 #84 セッションタイトルでもわかるように、 今回は深度センサー、 深度情報の扱い(画像処理) に特化した話をします。
16.
わんくま同盟 東京勉強会 #84 スケルトンがあるのに なぜ深度に注目するのか ?
そもそもスケルトンは深度から計算してる ? スケルトンでは体勢?距離?設置場所などに 制限がかかる (正面に配置 全身or 上半身が写る必要があ る。) ? 深度+画像処理 (+RGBカメラ)なら 画像処理の知識次第で様々なデータや、 ジェスチャーが取得できるはず。
17.
わんくま同盟 東京勉強会 #84 デモと解説 今回は、深度情報を元に 簡単なジェスチャーを取得します。
18.
わんくま同盟 東京勉強会 #84 深度情報の取得 ?
Kinectの返す情報は、 ユーザー情報3bit,深度情報13bitの計16bit ? 深度情報のみを表示する場合は3bitシフト して表示する。 015 14 13 12 11 10 9 8 7 6 5 4 3 2 1 深度情報(13bit) ユーザー情報(3bit)
19.
わんくま同盟 東京勉強会 #84 深度情報取得コールバック関数の 実行スレッド ?
深度情報の取得時に呼び出されるコールバック関 数は、 通常UIスレッドで実行されてしまう。 ? 取得した深度情報は、表示するまでに様々な処理 を加える場合があり、これらの処理をUIスレッド で行うと、 UIスレッドをブロックしてしまい、操作に対する レスポンスが悪くなってしまうため、 深度情報の処理は別スレッドで処理を行いたい。 ? コールバック関数の登録を別スレッド(Task)で行 うことで コールバック関数の実行も別スレッドで実行され る。
20.
わんくま同盟 東京勉強会 #84 深度情報の取得コールバック関数は 通常UIスレッドで実行されてしまう。 //UIスレッドでコールバックを 登録 深度情報の取得 画像の処理が UIスレッドで実行されて しまっている
21.
わんくま同盟 東京勉強会 #84 コールバック関数の登録を別スレッドで行うと それが実行されるのも別スレッドになる。 深度情報の取得 画像の処理が 別スレッドで実行されて いる //別スレッド
22.
わんくま同盟 東京勉強会 #84
23.
わんくま同盟 東京勉強会 #84
24.
わんくま同盟 東京勉強会 #84 認識深度の絞込み ?
Kinectから近すぎて要らないデータ、 遠すぎて要らないデータは認識の邪魔なの で、 認識する最大値、最小値を決めて取り除く ? (画像処理ライブラリOpenCVを使用する 場合) 処理内容によっては処理対象が 8bitの画像でなければならない場合があるの で ついでに256分割して8bit化する
25.
わんくま同盟 東京勉強会 #84
26.
わんくま同盟 東京勉強会 #84 しきい値処理で二値化(白黒画像化) ?
0~255(8bit化済み)の適当な値を基準にして 白黒2色の画像に変換する。 ? 白黒画像であれば、輪郭データを抽出可能 ? 輪郭データからは外接矩形を取得できる
27.
わんくま同盟 東京勉強会 #84
28.
わんくま同盟 東京勉強会 #84
29.
わんくま同盟 東京勉強会 #84
30.
わんくま同盟 東京勉強会 #84 不定値の対処(※次世代版だと改善してるかも) ?
光の反射や、Kinectとの角度などが理由で深度を 上手く取得できない箇所がある。(不定値) ? これのせいでジェスチャーなど を思うように認識できない場合がある。 ? 画像を不定値による穴が塞がるまで膨張させ その後同じだけ収縮することで正常に認識させる ことが出来る。 ※縮小するのは膨張で画像全体が広がったのを もとに戻すため
31.
わんくま同盟 東京勉強会 #84 膨張?縮小処理 ?
膨張処理 – 注目している画素を その画素とその周囲の画素のうち一番濃い色にする。 縮小処理 – 注目している画素を その画素とその周囲の画素のうち一番薄い色にする。
32.
わんくま同盟 東京勉強会 #84 周囲の定義 周囲の定義は要件に応じて8近傍、4近傍、 斜め,etc
を使い分ける 今回は8近傍を使用 8近傍 4近傍 斜め
33.
わんくま同盟 東京勉強会 #84 通常
→ 膨張
34.
わんくま同盟 東京勉強会 #84 膨張
→ 縮小
35.
わんくま同盟 東京勉強会 #84
36.
わんくま同盟 東京勉強会 #84 ろくろ回しポーズ検出に挑戦 ?
しきい値をろくろ回しポーズ時の 手の辺りになるように調整。 ? 最も大きい2つの外接矩形が以下の条件を 満たす場合を検出状態とする。 – 両方とも縦長である。 (Height>Width) – 重なってない – Y軸の値が重なっている
37.
わんくま同盟 東京勉強会 #84
38.
わんくま同盟 東京勉強会 #84 角度付き外接矩形 ?
腕の角度などが取れるので ? 工夫すれば様々なジェスチャーを取得可能
39.
わんくま同盟 東京勉強会 #84
40.
わんくま同盟 東京勉強会 #84 輪郭画像の簡易取得 ?
ここまでで行った二値データからの輪郭取得は 外接矩形が取れるということは 座標を持っているはずなので 内側でかなり複雑な処理をしてるはず。 ? 外接矩形や、座標データなどが必要なく、 輪郭を表示だけすればいい場合、 元の画像を膨張させた画像から縮小させた画像を 引くことで簡単に輪郭を取得できる
41.
わんくま同盟 東京勉強会 #84
42.
わんくま同盟 東京勉強会 #84
43.
わんくま同盟 東京勉強会 #84 まとめ ?
近すぎ、遠すぎて要らないデータを削除する ? 膨張?縮小処理で不定値による誤認識問題を解 決 ? しきい値処理で2値化 ? 輪郭?外接矩形等をの取得 ? 矩形の座標、サイズ、 角度などによりジェスチャーを定義
44.
わんくま同盟 東京勉強会 #84 最後に ?
画像処理を用いれば深度情報から 様々なデータが取得出来るはず。 ? どんな処理でどんなデータが取れるのかがわかれば、 アプリのアイデアも湧きやすいし、 アイデアを実装に写すのにも役に立つはず。 ? Kinectアプリに興味がある人は 一緒に画像処理も勉強してみてはどうでしょうか
Download