More Related Content
PPTX
PPTX
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 - PDF
自動LOD生成を可能にする3Dキャラクターパイプラインセミナー PDF
【Unity道場】新しいPrefabワークフロー入門 PPTX
PPTX
PDF
Unityで始めるバージョン管理 Git LFS 入門編 PPTX
First step of UX Monitoring 〜UXモニタリングこと始め〜 What's hot
PDF
三次元点群処理ライブラリPCLと 統合ロボットシステム研究での 利用例の紹介 PDF
【GDM37】ゲームAIにおける意思決定と地形表現~『LEFT ALIVE』を事例に紹介~ PDF
個人開発者がアプリ音声を声優に依頼して幸せになった話 PDF
PDF
国内実績ナンバーワン! UE4専門会社の取り組みをご紹介 PPTX
PDF
PDF
【Unite 2017 Tokyo】ゲームAI・ゲームデザインから考えるゲームの過去・現在・未来 PDF
【Unity道場教育スペシャル】Cinemachineで教えるゲームの3つの大切なこと PDF
【Unite Tokyo 2018】XRで心地よい3D体験を生むための、絵画的空間構成手法とUnityへの実装 PDF
Unity道場08「絵づくりの基礎」ライティング虎の巻 PPTX
MRTKで始めるAR開発 (HoloLens 1 and 2, ARCore, ARkit) PPTX
PDF
【Unite 2018 Tokyo】60fpsのその先へ!スマホの物量限界に挑んだSTG「アカとブルー」の開発設計 PDF
Google Sheets経由でUnity Localization Packageのデータを更新する & ADXの多言語ボイス音声切り替え機能連携 PDF
PDF
PDF
PDF
【Unite Tokyo 2018】トゥーンシェーダートークセッション#1『リアルタイムトゥーンシェーダー徹底トーク』 PDF
手乗りちょまぎょアプリ開発で学ぶ MRTK 入門 (MRTK 2.5 対応) Similar to Kinect深度情報処理入門
PPTX
Kinect Hacks for Dummies (Japanese / 日本語) PPTX
PDF
Introduction to Kinect vNext PDF
PDF
Kinect for windows sdk introduction PDF
第2回名古屋CV・PRML勉強会 「Kinectの導入」 PPT
PDF
PDF
devsumi2012 17-D-1 Kinectで創る10年後のカタチ PDF
Kinect for windows sdk cpp PDF
はじめてのKinect for windows v2 PDF
PDF
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space PDF
Kinect for windows sdk c# PPTX
ViEW2013 「SS-01 画像センサと応用事例の紹介」 PPTX
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう! PDF
KinectやRealSenseの概要とさまざまな使い方 PDF
PPTX
PPT
More from 伸男 伊藤
PPTX
T119_5年間の試行錯誤で進化したMVPVMパターン PPTX
PPTX
PPTX
没セッション 知識ゼロから学んだソフトウェアテスト PPTX
PPTX
T69 c++cli ネイティブライブラリラッピング入門 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