More Related Content
PPTX
PDF
自動LOD生成を可能にする3Dキャラクターパイプラインセミナー PPTX
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 - PDF
【Unity道場】新しいPrefabワークフロー入門 PPTX
PDF
Unityで始めるバージョン管理 Git LFS 入門編 PPTX
PPTX
First step of UX Monitoring 〜UXモニタリングこと始め〜 What's hot
PDF
Unity道場08「絵づくりの基礎」ライティング虎の巻 PPTX
PDF
PDF
【Unity道場教育スペシャル】Cinemachineで教えるゲームの3つの大切なこと PDF
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携 PDF
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』 PDF
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~ PDF
PDF
【Unite 2017 Tokyo】ゲームAI・ゲームデザインから考えるゲームの過去・現在・未来 PPTX
PDF
PDF
PDF
手乗りちょまぎょアプリ開発で学ぶ MRTK 入門 (MRTK 2.5 対応) PPTX
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit) PDF
個人開発者がアプリ音声を声優に依頼して幸せになった話 PDF
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介 PDF
国内実績ナンバーワン! UE4専門会社の取り組みをご紹介 PDF
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計 PDF
PDF
【Unite Tokyo 2018】XRで心地よい3D体験を生むための、絵画的空間構成手法とUnityへの実装 Similar to Kinect深度情報処理入門
PPTX
PPT
PDF
PPTX
PDF
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space PPT
PDF
はじめてのKinect for windows v2 PDF
Kinect for windows sdk introduction PPTX
Kinect Hacks for Dummies (Japanese / 日本語) PPTX
ViEW2013 「SS-01 画像センサと応用事例の紹介」 PDF
devsumi2012 17-D-1 Kinectで創る10年後のカタチ PPTX
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう! PDF
PDF
第2回名古屋CV・PRML勉強会 「Kinectの導入」 PDF
Kinect for windows sdk cpp PDF
Kinect for windows sdk c# PDF
KinectやRealSenseの概要とさまざまな使い方 PDF
PDF
PDF
Introduction to Kinect vNext More from 伸男 伊藤
PPTX
T119_5年間の試行錯誤で進化したMVPVMパターン PPTX
PPTX
T69 c++cli ネイティブライブラリラッピング入門 PPTX
PPTX
没セッション 知識ゼロから学んだソフトウェアテスト PPTX
Kinect深度情報処理入門
- 1.
Kinect
深度情報処理入門
伊藤 伸男 @akatukisiden
2012/11/24 新しい.NETStyle 勉強会Ver
- 2.
自己紹介
本名: 伊藤 伸男 HN: 暁 紫電
年齢: 25歳 twitter: @akatukisiden
職業: フリープログラマー
使用言語 興味分野
C++ Windows クライアントア
C++/CLI プリ
C# 画像処理
etc…
- 3.
はじめに
このセッションは2012年09月29日に
首都圏コンピュータ技術者株式会社で行われた
個人事業主文化祭というイベントで行ったセッショ
ンに
加筆修正したものです。
KinectSDKのバージョンは1.5
画像処理にはOpenCV 2.2を用いています。
- 4.
アジェンダ
Kinectとは
Kinectで出来る事
なぜ深度に注目するのか
解説とデモ
まとめ
- 5.
Kinectとは
Microsoftが販売するゲーム機
「Xbox 360」用のコントローラー
コントローラーを持つ必要が無く、身体の動きや、
ジェスチャー、音声などによる操作が可能なことが
特徴
NUI (Natural User Interface)
2010年11月発売
- 6.
Kinect ハック
もともとはXboxでしか使えなかったが、
PC用のドライバーを開発・公開する人があらわれる
PC用のKinectアプリ開発
(Kinect ハック)が ブームになる
2012年2月
Kinect for Windows 販売
Kinect for Windows SDK 公開
(Windows PC専用 商用利用可能)
- 7.
- 8.
RGBカメラ
※サンプルアプリ Kinect Explorerの映像を撮影
- 9.
深度センサー
※サンプルアプリ Kinect Explorerの映像を撮
影
0.8m~4m(通常モード) or 0.4m~3m(Nearモード)
13bit
- 10.
- 11.
全身20箇所の関節などの座標と向きを取得
上半身10箇所のみの取得も可能
2人分まで取得可能
- 12.
ユーザーの認識
※サンプルアプリ Kinect Explorerの映像を撮
影
最大6人まで認識可能(3bit)
深度データ13bitと一緒に16bitデータとして取得
- 13.
- 14.
- 15.
スケルトンがあるのに
なぜ深度に注目するのか
そもそもスケルトンは深度から計算してる
スケルトンでは体勢・距離・設置場所などに
制限がかかる
(正面に配置 全身or 上半身が写る必要がある。)
深度+画像処理 (+RGBカメラ)なら
画像処理の知識次第で様々なデータや、
ジェスチャーが取得できるはず。
- 16.
- 17.
深度情報の取得
Kinectの返す情報は、
ユーザー情報3bit,深度情報13bitの計16bit
深度情報のみを表示する場合は3bitシフトして表示
する。
1 1 1 1 1 1
9 8 7 6 5 4 3 2 1 0
5 4 3 2 1 0
深度情報(13bit) ユーザー情報(3bit)
- 18.
深度情報取得コールバック関数の
実行スレッド
深度情報の取得時に呼び出されるコールバック関数
は、
通常UIスレッドで実行されてしまう。
取得した深度情報は、表示するまでに様々な処理を
加える場合があり、これらの処理をUIスレッドで行
うと、
UIスレッドをブロックしてしまい、操作に対するレ
スポンスが悪くなってしまうため、
深度情報の処理は別スレッドで処理を行いたい。
コールバック関数の登録を別スレッドで行うことで
コールバック関数の実行も別スレッドで実行される。
- 19.
- 20.
- 23.
認識深度の絞込み
Kinectから近すぎて要らないデータ、
遠すぎて要らないデータは認識の邪魔なので、
認識する最大値、最小値を決めて取り除く
(画像処理ライブラリOpenCVを使用する場合)
処理内容によっては処理対象が
8bitの画像でなければならない場合があるので
ついでに255で割って8bit化する
- 25.
しきい値処理で二値化(白黒画像化)
0~255(8bit化済み)の適当な値を基準にして
白黒2色の画像に変換する。
白黒画像であれば、輪郭データを抽出可能
輪郭データからは外接矩形を取得できる
- 29.
不定値の対処
光の反射や、Kinectとの角度などが理由で深度を上
手く取得できない箇所がある。(不定値)
これのせいでジェスチャーなど
を思うように認識できない場合がある。
画像を不定値による穴が塞がるまで膨張させ
その後同じだけ収縮することで正常に認識させるこ
とが出来る。
※縮小するのは膨張で画像全体が広がったのを
もとに戻すため
- 30.
膨張・縮小処理
膨張処理
注目している画素を
その画素とその周囲の画素のうち一番濃い色にする。
縮小処理
注目している画素を
その画素とその周囲の画素のうち一番薄い色にする。
- 31.
- 32.
- 33.
- 35.
ろくろ回しポーズ検出に挑戦
しきい値を手の辺りになるように調整。
最も大きい2つの外接矩形が以下の条件を
みたす場合を検出状態とする。
両方とも縦長である。 (Height>Width)
重なってない
Y軸が重なっている
X軸は重なっていない。
- 37.
- 39.
輪郭画像の簡易取得
二値データからの輪郭取得は
内側でかなり複雑な処理をしてるはず。
外接矩形や、座標データなどが必要なく、
輪郭を表示だけすればいい場合、
元の画像を膨張させた画像から縮小させた画像を
引くことで簡単に輪郭を取得できる
輪郭部分だけではなく、内側にも膨張縮小は適応
されているので、
二値化すると等高線状の画像が得られる。
- 43.
まとめ
近すぎ、遠すぎて要らないデータを削除する
膨張・縮小処理で不定値による誤認識問題を解
決
しきい値処理で2値化
輪郭・外接矩形等をの取得
矩形の座標、サイズ、
角度などによりジェスチャーを定義
- 44.
最後に
画像処理を用いれば深度情報から
様々なデータが取得出来るはず。
どんな処理でどんなデータが取れるのかがわかれば、
アプリのアイデアも湧きやすいし、
アイデアを実装に写すのにも役に立つはず。
Kinectアプリに興味がある人は
一緒に画像処理も勉強してみてはどうでしょうか
- 45.
お仕事募集中
決まりました。
Itou.Nobuo@gmail.com