Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yasutomo Imairi
PPTX, PDF
2,532 views
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
関西MSP勉強会~Kinect編~ Kinectで身長を計測しよう! のハンズオン資料です
Technology
◦
Read more
3
Save
Share
Embed
Embed presentation
Download
Downloaded 10 times
1
/ 36
2
/ 36
3
/ 36
4
/ 36
5
/ 36
6
/ 36
7
/ 36
8
/ 36
9
/ 36
10
/ 36
11
/ 36
12
/ 36
13
/ 36
14
/ 36
15
/ 36
16
/ 36
17
/ 36
18
/ 36
19
/ 36
20
/ 36
21
/ 36
22
/ 36
23
/ 36
24
/ 36
25
/ 36
26
/ 36
27
/ 36
28
/ 36
29
/ 36
30
/ 36
31
/ 36
32
/ 36
33
/ 36
34
/ 36
35
/ 36
36
/ 36
More Related Content
PPTX
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
by
Daisuke Masubuchi
PDF
【Unite Tokyo 2019】AWS for Unity Developers
by
UnityTechnologiesJapan002
PDF
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
by
YutoNishine
PDF
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
by
Daisuke Masubuchi
PDF
REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
by
gree_tech
PDF
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
by
Daisuke Masubuchi
PPT
【Unity道場】使って覚えるTileMap
by
Unity Technologies Japan K.K.
PDF
俺的 Ignite 2021 Spring Update まとめ ミニ
by
Yui Ashikaga
PPT Full version: 世界中のゲーム分析をしてきたPlayFabが大進化!一緒に裏側の最新データ探索の仕組みを覗いてみよう
by
Daisuke Masubuchi
【Unite Tokyo 2019】AWS for Unity Developers
by
UnityTechnologiesJapan002
リアルタイムコマンドバトルのゲームで PlayFab を使ってみた
by
YutoNishine
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ LiveOps とデータ分析編 ~
by
Daisuke Masubuchi
REALITY低遅延モード配信を支えるリアルタイムサーバとデータパイプライン
by
gree_tech
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
by
Daisuke Masubuchi
【Unity道場】使って覚えるTileMap
by
Unity Technologies Japan K.K.
俺的 Ignite 2021 Spring Update まとめ ミニ
by
Yui Ashikaga
What's hot
PPT
マイクロソフトのクラウドテクノロジーでゲーム開発(2019年7月)
by
Daisuke Masubuchi
PDF
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
by
Daisuke Masubuchi
PDF
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
by
gree_tech
PPTX
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
by
YutoNishine
PPTX
Azure Functionsを業務利用する時の勘所
by
裕之 木下
PPTX
AzureStorageのオブジェクトレプリケートを試してみた
by
裕之 木下
PPTX
PFN x Microsoft Alliance
by
Hirono Jumpei
PDF
TB / Day規模のゲーム向けデータパイプラインを開発運用する日々
by
gree_tech
マイクロソフトのクラウドテクノロジーでゲーム開発(2019年7月)
by
Daisuke Masubuchi
2020 年も最高のゲームをつくろう! Game Stack でゲーム開発をしよう! ~ マルチプレイサーバー編 ~
by
Daisuke Masubuchi
アナザーエデンにおける非同期オートセーブを用いた通信待ちストレスのないゲーム体験の実現
by
gree_tech
リアルタイムなゲームの開発でコンテナを使ってみたら簡単便利で激安だったのでオススメしたい
by
YutoNishine
Azure Functionsを業務利用する時の勘所
by
裕之 木下
AzureStorageのオブジェクトレプリケートを試してみた
by
裕之 木下
PFN x Microsoft Alliance
by
Hirono Jumpei
TB / Day規模のゲーム向けデータパイプラインを開発運用する日々
by
gree_tech
Similar to 関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
PDF
FMCN Kinectハンズオン
by
Keizo Nagamine
PDF
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
by
Akira Hatsune
PDF
Hands on
by
Keiji Kamebuchi
PDF
Media Kinect2014 day7
by
Akihiko Shirai
PDF
はじめようRGB-Dセンシングと画像処理
by
Takashi Yoshinaga
PDF
Kinectプログラミング Step by Step
by
Akira Hatsune
PPTX
KinectプログラミングStepByStep
by
信之 岩永
PDF
Azure kinect DKハンズオン
by
Takashi Yoshinaga
PDF
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
by
Mori Tetsuya
PPTX
2012 kanemotolablecture7
by
ytanno
PPT
Kinect導入講座
by
nitmic
PPTX
Kinect深度情報処理入門
by
伸男 伊藤
PPTX
Kinect 2セミナー
by
Akira Hatsune
PDF
Kinect for windows sdk introduction
by
Kaoru NAKAMURA
PPTX
Kinect Hacks for Dummies (Japanese / 日本語)
by
Tomoto Washio
PDF
KinectでAR空間に入り込もう
by
Takashi Yoshinaga
PDF
はじめてのKinect for windows v2
by
Kaoru NAKAMURA
PDF
GCS2014 TMCN
by
Kaoru NAKAMURA
PDF
第19回SOIL水曜セミナー:RGB-DカメラでAR空間に入り込もう
by
Takashi Yoshinaga
PDF
ARコンテンツ作成勉強会 はじめてのKinect openFrameworks編
by
Yusuke Matsumoto
FMCN Kinectハンズオン
by
Keizo Nagamine
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
by
Akira Hatsune
Hands on
by
Keiji Kamebuchi
Media Kinect2014 day7
by
Akihiko Shirai
はじめようRGB-Dセンシングと画像処理
by
Takashi Yoshinaga
Kinectプログラミング Step by Step
by
Akira Hatsune
KinectプログラミングStepByStep
by
信之 岩永
Azure kinect DKハンズオン
by
Takashi Yoshinaga
Unity meets Kinect -Unity で NUI を扱ってみた- / 2015.06.23 at TechBuzz Space
by
Mori Tetsuya
2012 kanemotolablecture7
by
ytanno
Kinect導入講座
by
nitmic
Kinect深度情報処理入門
by
伸男 伊藤
Kinect 2セミナー
by
Akira Hatsune
Kinect for windows sdk introduction
by
Kaoru NAKAMURA
Kinect Hacks for Dummies (Japanese / 日本語)
by
Tomoto Washio
KinectでAR空間に入り込もう
by
Takashi Yoshinaga
はじめてのKinect for windows v2
by
Kaoru NAKAMURA
GCS2014 TMCN
by
Kaoru NAKAMURA
第19回SOIL水曜セミナー:RGB-DカメラでAR空間に入り込もう
by
Takashi Yoshinaga
ARコンテンツ作成勉強会 はじめてのKinect openFrameworks編
by
Yusuke Matsumoto
Recently uploaded
PDF
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
by
NTT DATA Technology & Innovation
PDF
第25回FA設備技術勉強会_自宅で勉強するROS・フィジカルAIアイテム.pdf
by
TomohiroKusu
PDF
PCCC25(設立25年記念PCクラスタシンポジウム):東京大学情報基盤センター テーマ1/2/3「Society5.0の実現を目指す『計算・データ・学習...
by
PC Cluster Consortium
PDF
安価な ロジック・アナライザを アナライズ(?),Analyze report of some cheap logic analyzers
by
たけおか しょうぞう
PDF
visionOS TC「新しいマイホームで過ごすApple Vision Proとの新生活」
by
Sugiyama Yugo
PPTX
DrupalCon Nara 2025の記録 .
by
iPride Co., Ltd.
基礎から学ぶ PostgreSQL の性能監視 (PostgreSQL Conference Japan 2025 発表資料)
by
NTT DATA Technology & Innovation
第25回FA設備技術勉強会_自宅で勉強するROS・フィジカルAIアイテム.pdf
by
TomohiroKusu
PCCC25(設立25年記念PCクラスタシンポジウム):東京大学情報基盤センター テーマ1/2/3「Society5.0の実現を目指す『計算・データ・学習...
by
PC Cluster Consortium
安価な ロジック・アナライザを アナライズ(?),Analyze report of some cheap logic analyzers
by
たけおか しょうぞう
visionOS TC「新しいマイホームで過ごすApple Vision Proとの新生活」
by
Sugiyama Yugo
DrupalCon Nara 2025の記録 .
by
iPride Co., Ltd.
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
1.
ハンズオン講座 ~Kinectで身長を計測しよう!~ Microsoft
Student Partners Fellow 同志社大学大学院 今入康友(通称:いまにゅー) Twitter: @imanyu Facebook: facebook.com/imanyu
2.
ハンズオンの概要 • Kinectセンサーを使ったデスクトップアプリを作る
• 骨格情報から頭と足の位置をセンサーで取得し,その距離を基に計算 • 頭の座標にずれがあるので,深度情報より頭の頂点を求める
3.
WPFアプリケーション • WPF|Windows
Presentation Foundation • 魅力的な外観のユーザーエクスペリエンスを持つ Windowsクライアントアプリケーションを作成するための 次世代プレゼンテーションシステム ザムル • ビュー(XAML)とロジック(C#/VisualBasic)を分けて作成 • XAMLとC#/VBが連携してプログラムが動きます • もっと詳しいことを知りたい人は MSDNのWindows Presentation Foundationをご覧ください (http://msdn.microsoft.com/ja-jp/library/ms754130%28v=vs.110%29.aspx)
4.
XAMLとC#について XAML C#
Button Clickイベント Clickイベント { 丸の色を青色に変える; 三角を移動させる; } 目に見える部分を担当 (ユーザが見る・使うものを提供) 目に見えない部分を担当 (計算したり,XAMLに命令したり) Hello World!
5.
Kinectセンサー|Kinect for Windows
• ジェスチャーや音声を認識できるセンサーデバイス • XBOX 360のゲームシステムとして登場 • 3D深度センサー,RGBカメラ,指向性マイクアレイを搭載
6.
開発環境 • Windows
8.1 • Windows 7 環境でも大丈夫です • Visual Studio Professional 2013 • Kinect for Windows SDK v1.8 • グループで1台の機材なので,分担してプログラミングをしよう!
7.
プロジェクトの作成 • ファイル→
新規作成→ プロジェクト • Visual C# → Windows デスクトップ→ WPFアプリケーションを選ぶ • 名前を「KinectHeightMeasure」と入力して,OKを押す
8.
参考資料 • プロジェクトの中身
• Properties|プロジェクトの設定が色々入ってる • 参照設定|ライブラリやアセンブリなどの管理 • App.config|Settings.settingsの中身が記述されてる • App.xaml/App.xaml.cs|起動時の設定など • MainWindow.xaml/MainWindow.xaml.cs |メインのプログラムが記述されてる • 今日使うのは,参照設定とMainWindow.xamlと MainWindow.xaml.csを使います
9.
MainWindow.xamlを見てみよう • 初期画面はこんな感じ
デザイナウィンドウ XAMLで書かれたものが グラフィカルに表示されるところ これがXAML
10.
とりあえず実行してみよう • プロジェクト作成直後の状態で実行できます
• デバッグ→ デバッグ開始/ デバッグなしで開始を押してみましょう • F5 またはCtrl + F5 でもOK • 何も表示されないウィンドウが 表示されます • ×で閉じてください
11.
ちょこっと勉強会のための用意 • 今作ったプロジェクト内のソースを別のものに置き換えます
• MainWindow.xaml内のソースを デスクトップ上「kinect_source_xaml.txt」の中身をコピーして 置き換えてください • MainWindow.xaml.cs内のソースを デスクトップ上「kinect_source_cs.txt」の中身をコピーして 置き換えてください
12.
MainWindow.xamlに書き足そう • ウィンドウサイズを変更
• <Window>内のHeightとWidthの数値を変更する • Height|350 → 511 • Width|525 → 648 • ウィンドウタイトルを変更 • <Window>内のTitleを変更する • Title|MainWindow → Kinectで身長計測
13.
MainWindow.xamlに書き足そう • KinectのRGBカメラの映像を出すコントロールを追加
• <Image>コントロールを使用 • x:Name=“Kinect_image”|コントロールの名前 • Height=“480”|コントロールの高さ • Width=“640”|コントロールの幅 • <Image x:Name=“kinect_image” Height=“480” Width=“640” /> 【1】
14.
参照設定を追加しよう • Kinect
SDKをプログラムで使用するために参照設定を追加する • 参照設定を右クリック→ 参照の追加→ 左ペインの参照→参照をクリック 「C:Program FilesMicrosoft SDKsKinectv1.8Assemblies」 の中からMicrosoft.Kinect.dllを選択して追加を押す • 参照設定にMicrosoft.Kinectが追加されたらOK
15.
MainWindow.xaml.csに書き足そう • Kinect
SDKを使えるようにしましょう • usingを追加しよう • using Microsoft.Kinect; 【2】
16.
MainWindow.xaml.csに書き足そう • Kinectセンサーを用意しよう
• private KinectSensor kinect;|Kinectセンサーを格納するインスタンス 【3】 • try { … } catch { … }|例外処理 • KinectSensor.KinectSensors.Count()|接続されているKinectセンサーの数を数える • kinect = KinectSensor.KinectSensors[0];|Kinectセンサーを取得する 【4】
17.
MainWindow.xaml.csに書き足そう • ColorStream,SkeletonStream,DepthStreamを設定しよう
• RGBストリームを許可する|640×480の大きさ,30フレーム/秒に設定 • 深度ストリームを許可する|640×480の大きさ,30フレーム/秒に設定 • 骨格ストリームを許可する ※Streamとは… 【5】 Kinectから送られてくるデータの流れのこと
18.
MainWindow.xaml.csに書き足そう • フレームが届いた時の処理を設定する
• kinect.AllFramesReady += kinect_AllFramesReady; • += と書いて,TABキーを2回押すと,自動的にkinect_AllFramesReadyメソッドが生成 • Kinectを開始する • kinect.Start(); 【6】 【7】
19.
MainWindow.xaml.csに書き足そう • ColorImageFrameが届いた時の処理
• ColorImageFrame colorFrame = e.OpenColorImageFrame() • ColorImageFrameを取得する • colorFrame.CopyPixelDataTo(colorPixel); • colorFrameのピクセルデータをcolorPixel(byte配列)にコピーする • kinect_image.Source = BitmapSource.Create(~~~~); • XAMLのkinect_imageのSourceにBitmapSourceを代入する 【8】
20.
MainWindow.xaml.csに書き足そう • DepthImageFrameとSkeletonFrameが届いた時の処理
• DepthImageFrame depthFrame = e.OpenDepthImageFrame() • DepthImageFrameを取得する • SkeletonFrame skeletonFrame = e.OpenSkeletonFrame() • SkeletonFrameを取得する 【9】
21.
MainWindow.xaml.csに書き足そう • 身長計測用メソッド「MeasureHeightメソッド」を呼び出す
• kinect_AllFramesReadyメソッド内で呼び出す 【10】
22.
MainWindow.xaml.csに書き足そう • 身長計測用メソッド「MeasureHeightメソッド」を作ろう
• メソッド名:MeasureHeight • 戻り値の型:void • 引数1:DepthImageFrame • 引数2:SkeletonFrame • private void MeasureHeight(DepthImageFrame depthFrame, SkeletonFrame skeletonFrame) { }
23.
MainWindow.xaml.csに書き足そう • 骨格情報を取得しよう
• Skeleton[] skeletons = new skeleton[skeletonFrame.SkeletonArrayLength]; • 骨格情報を格納する配列を用意 • skeletonFrame.CopySkeletonDataTo(skeletons); • 骨格情報を取得する【11】
24.
MainWindow.xaml.csに書き足そう • トラッキングされている人物を検出
• skeletons[playerIndex].TrackingState == SkeletonTrackingState.Tracked • TrackedになるまでplayerIndexを1ずつ多くしていく • if (playerIndex == skeletons.Length) • もしTrackedのものがなければ,処理を中断 • Skeleton skeleton = skeletons[playerIndex++]; • トラッキングされている人物のSkeletonだけを取得 • ※DepthImagePixel内のplayerIndexは1から始まるので,playerIndex++とする 【12】 【13】
25.
MainWindow.xaml.csに書き足そう • 各種骨格を取得する
• Joint head_joint = skeleton.Joints[JointType.Head]; • Joint footLeft_joint = skeleton.Joints[JointType.FootLeft]; • Joint footRight_joint = skeleton.Joints[JointType.FootRight]; • 各ジョイントがTrackedされていなければ処理を中断 【14】
26.
MainWindow.xaml.csに書き足そう • 深度イメージのデータを取得する
• DepthImagePixel[] depthPixel = new DepthImagePixel[depthFrame.PixelDataLength]; • DepthImagePixel構造体の配列を用意 • 16bitの深度情報 • プレイヤーインデックス • depthFrame.CopyDepthImagePixelDataTo(depthPixel); • depthPixelに深度データを取得する 【15】
27.
MainWindow.xaml.csに書き足そう • 頭の頂点を探そう
• kinect.CoordinateMapper.MapSkeletonPointToDepthPoint(); • 骨格データから深度データに座標変換をする 【16】 • 認識しているプレイヤーの頭のY座標を1ずつ小さくしていき頂点を探す • headDepth.Yを更新して,元の骨格データに座標変換する top headDepth.Y y x 【17】 【18】
28.
MainWindow.xaml.csに書き足そう • foot_jointを作成する
• Joint foot_joint = footLeft_joint.Position.Y < footRight_joint.Position.Y ? footLeft_joint : footRight_joint; • 左右のY座標が小さい方を足のY座標とする • 三項演算子| “条件? trueの時: falseの時;” • 頭と足のY座標を取得する • double head_y = head_joint.Position.Y; • double foot_y = foot_joint.Position.Y; 【19】 【20】
29.
MainWindow.xamlに書き足そう • 身長を表示するコントロールを用意しよう
• <TextBlock>コントロールを使用 • x:Name=“height_textblock”|名前 • FontSize=“35”|文字の大きさ • FontWeight=“Bold”|太文字に • Foregroud=“Red”|文字色を赤色 • Text=“---cm”|表示する文字 • HorizontalAlignment=“Left”|左を基準 • VerticalAlignment=“Top”|上を基準 • <TextBlock x:Name=“height_textblock” Text=“---cm” HorizontalAlignment=“Left” VerticalAlignment=“Top” Foreground=“Red” FontSize=“35” FontWeight=“Bold” /> 【21】
30.
MainWindow.xaml.csに書き足そう • 身長を計算しよう
• 頭のY座標– 足のY座標の絶対値が身長となる(単位:メートル) • Math.Abs()を使用して絶対値を計算する • 単位がメートルなので100倍してセンチメートルに変換する • ToStringメソッドで,小数点第一位までを表示する • 小数点第二位で四捨五入される • 計算結果をXAMLのheight_textblockに表示させる 【22】
31.
MainWindow.xaml.csに書き足そう • 身長をわかりやすく表示させよう
• 体の横に線(細い四角)を描画する • 線の真ん中に,身長を表示させる • 身長をわかりやすく表示するメソッド「DrawHeightメソッド」を作成する • メソッド名:DrawHeight • 戻り値の型:void • 引数1:SkeletonPoint|頭 • 引数2:SkeletonPoint|足
32.
MainWindow.xaml.csに書き足そう • 身長をわかりやすく表示させるメソッド「DrawHeightメソッド」を
呼び出す • MeasureHeightメソッド内で呼び出す 【23】
33.
MainWindow.xaml.csに書き足そう • SkeletonPointをColorImagePointに座標変換する
• kinect.CoordinateMapper.MapSkeletonPointToColorPointを使用する 【24】
34.
MainWindow.xamlに書き足そう • 追加の情報を載せるコントロールを用意しよう
• <Canvas>コントロールを使用 • x:Name=“height_canvas”|コントロールの名前 • Height=“480”|コントロールの高さ • Width=“640”|コントロールの幅 【25】 • <Canvas x:Name=“height_canvas” Height=“480” Width=“640” />
35.
MainWindow.xaml.csに書き足そう • 線(細い四角形)を作成して,height_canvasに追加しよう
• Rectangleで四角形を作成 • Margin:左上右下の位置を設定する • height_canvas.Children.Addで四角形を追加 • height_canvas.Children.Clear();|追加する前に以前追加されたものをすべてクリアする • height_textblockの位置を調整 【26】 【27】 【28】
36.
完成!!
Download