Submit Search
Azure kinect DKハンズオン
10 likes
14,514 views
T
Takashi Yoshinaga
ARコンテンツ作成勉強会でのAzureKinectハンズオン資料
Technology
Related topics:
Insights on Augmented Reality
•
Mixed-Reality
Read more
1 of 94
1
2
3
4
5
6
7
8
9
10
11
12
Most read
13
14
Most read
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
More Related Content
PDF
tf,tf2完全理解
Koji Terada
PDF
画像生成・生成モデル メタサーベイ
cvpaper. challenge
PDF
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜
SSII
PPTX
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
PPTX
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
PPTX
[DL輪読会]Pay Attention to MLPs (gMLP)
Deep Learning JP
PDF
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
Hiroshi Yamaguchi
PDF
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
tf,tf2完全理解
Koji Terada
画像生成・生成モデル メタサーベイ
cvpaper. challenge
SSII2022 [SS1] ニューラル3D表現の最新動向〜 ニューラルネットでなんでも表せる?? 〜
SSII
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
[DL輪読会]Pay Attention to MLPs (gMLP)
Deep Learning JP
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成
Hiroshi Yamaguchi
Python 3.9からの新定番zoneinfoを使いこなそう
Ryuji Tsutsui
What's hot
(20)
PDF
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
MobileRoboticsResear
PDF
第126回 ロボット工学セミナー 三次元点群と深層学習
Naoya Chiba
PDF
20180527 ORB SLAM Code Reading
Takuya Minagawa
PDF
【Unity道場】物理シミュレーション完全マスター
Unity Technologies Japan K.K.
PDF
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII
PDF
[DL輪読会]An Image is Worth 16x16 Words: Transformers for Image Recognition at S...
Deep Learning JP
PPTX
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
Deep Learning JP
PDF
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
Naoya Chiba
PDF
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Masaya Kaneko
PDF
SLAMチュートリアル大会資料(ORB-SLAM)
Masaya Kaneko
PPTX
3次元計測とフィルタリング
Norishige Fukushima
PPTX
ORB-SLAMの手法解説
Masaya Kaneko
PDF
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII
PDF
3次元レジストレーション(PCLデモとコード付き)
Toru Tamaki
PDF
【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス
Unite2017Tokyo
PDF
【Unity】 Behavior TreeでAIを作る
torisoup
PPTX
分散深層学習 @ NIPS'17
Takuya Akiba
PDF
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
PDF
[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural Networks
Deep Learning JP
PPTX
デプスセンサとその応用
Norishige Fukushima
大域マッチングコスト最小化とLiDAR-IMUタイトカップリングに基づく三次元地図生成
MobileRoboticsResear
第126回 ロボット工学セミナー 三次元点群と深層学習
Naoya Chiba
20180527 ORB SLAM Code Reading
Takuya Minagawa
【Unity道場】物理シミュレーション完全マスター
Unity Technologies Japan K.K.
SSII2019TS: 実践カメラキャリブレーション ~カメラを用いた実世界計測の基礎と応用~
SSII
[DL輪読会]An Image is Worth 16x16 Words: Transformers for Image Recognition at S...
Deep Learning JP
【DL輪読会】"Instant Neural Graphics Primitives with a Multiresolution Hash Encoding"
Deep Learning JP
論文紹介「PointNetLK: Robust & Efficient Point Cloud Registration Using PointNet」
Naoya Chiba
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Masaya Kaneko
SLAMチュートリアル大会資料(ORB-SLAM)
Masaya Kaneko
3次元計測とフィルタリング
Norishige Fukushima
ORB-SLAMの手法解説
Masaya Kaneko
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII
3次元レジストレーション(PCLデモとコード付き)
Toru Tamaki
【Unite 2017 Tokyo】Unityで楽しむノンフォトリアルな絵づくり講座:トゥーンシェーダー・マニアクス
Unite2017Tokyo
【Unity】 Behavior TreeでAIを作る
torisoup
分散深層学習 @ NIPS'17
Takuya Akiba
NDTスキャンマッチング 第1回3D勉強会@PFN 2018年5月27日
Kitsukawa Yuki
[DLHacks 実装] DeepPose: Human Pose Estimation via Deep Neural Networks
Deep Learning JP
デプスセンサとその応用
Norishige Fukushima
Ad
Similar to Azure kinect DKハンズオン
(20)
PDF
Kinect技術紹介20140407
fukuoka-t
PDF
Hands on
Keiji Kamebuchi
PDF
KinectでAR空間に入り込もう
Takashi Yoshinaga
PPTX
Build 2021のDigital Twinsセションを読み解く ~Azure関連サービス概要とラーニングパスの詳説~
Takahiro Miyaura
PPTX
Mixed Realityを活用したIot Edgeの管理と情報の可視化による「Digital Twins」の実現
Takahiro Miyaura
PPTX
Azure Object Anchors のQuick Startで理解を深めたい
Takahiro Miyaura
PPTX
ラーニングパス「Azure Digital Twins と Unity を使用して Mixed Reality デジタル ツインを構築する」にAzure ...
Takahiro Miyaura
PDF
はじめようRGB-Dセンシングと画像処理
Takashi Yoshinaga
PPTX
Mixed RealityとAzure Digital Twinsを組合わせてデジタルツインを可視化するためのTips
Takahiro Miyaura
PPTX
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Takahiro Miyaura
PDF
OpenCVとRGB-Dセンサで作ろう壁面タッチパネル
Takashi Yoshinaga
PPTX
KinectプログラミングStepByStep
信之 岩永
PPTX
Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて
Takahiro Miyaura
PDF
Elixirでディープラーニング! Keras+PyTorchみたいな DL入門向けライブラリ「Axon」
Yuisho Takafuji
PPTX
World Locking Tools でAzure Spatial Anchorsが使えるようになった
Takahiro Miyaura
PPTX
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Tomoaki Shimizu
PPT
Kinect
エンジニア勉強会 エスキュービズム
PDF
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
PPTX
Mixed Reality関連のSDKの状況を調べてみた
Takahiro Miyaura
PDF
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
Takashi Yoshinaga
Kinect技術紹介20140407
fukuoka-t
Hands on
Keiji Kamebuchi
KinectでAR空間に入り込もう
Takashi Yoshinaga
Build 2021のDigital Twinsセションを読み解く ~Azure関連サービス概要とラーニングパスの詳説~
Takahiro Miyaura
Mixed Realityを活用したIot Edgeの管理と情報の可視化による「Digital Twins」の実現
Takahiro Miyaura
Azure Object Anchors のQuick Startで理解を深めたい
Takahiro Miyaura
ラーニングパス「Azure Digital Twins と Unity を使用して Mixed Reality デジタル ツインを構築する」にAzure ...
Takahiro Miyaura
はじめようRGB-Dセンシングと画像処理
Takashi Yoshinaga
Mixed RealityとAzure Digital Twinsを組合わせてデジタルツインを可視化するためのTips
Takahiro Miyaura
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Takahiro Miyaura
OpenCVとRGB-Dセンサで作ろう壁面タッチパネル
Takashi Yoshinaga
KinectプログラミングStepByStep
信之 岩永
Azure Digital TwinとUnreal Engineを統合するADTLink Pluginについて
Takahiro Miyaura
Elixirでディープラーニング! Keras+PyTorchみたいな DL入門向けライブラリ「Axon」
Yuisho Takafuji
World Locking Tools でAzure Spatial Anchorsが使えるようになった
Takahiro Miyaura
Cocos2d-x(JS) ハンズオン #07「新エディタ Cocos Creator v1.0」
Tomoaki Shimizu
Kinect
エンジニア勉強会 エスキュービズム
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
Mixed Reality関連のSDKの状況を調べてみた
Takahiro Miyaura
ももち浜TECHカフェ:OpenCVとKinectで作ろう壁面タッチパネル
Takashi Yoshinaga
Ad
More from Takashi Yoshinaga
(20)
PPTX
HoloLens2とMeta QuestではじめるWebXR
Takashi Yoshinaga
PPTX
【準備編】OculusQuest/HoloLens2対応WebXR開発
Takashi Yoshinaga
PPTX
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
Takashi Yoshinaga
PPTX
AI x WebAR: MediaPipeのハンドトラッキングを使ってみよう
Takashi Yoshinaga
PPTX
iPad LiDARでエンジニアカフェを3Dスキャン
Takashi Yoshinaga
PPTX
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
Takashi Yoshinaga
PPTX
Web技術ではじめようAR/VRアプリ開発
Takashi Yoshinaga
PPTX
MRTKをNreal Lightに対応させてみた
Takashi Yoshinaga
PPTX
Nreal Lightハンズオン
Takashi Yoshinaga
PPTX
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
Takashi Yoshinaga
PPTX
A-Frameで始めるWebXRとハンドトラッキング (HoloLens2/Oculus Quest対応)
Takashi Yoshinaga
PPTX
Holo-SDKハンズオン:はじめようヘッドトラッキングを用いた3D表現
Takashi Yoshinaga
PPTX
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
Takashi Yoshinaga
PPTX
Voxon Photonics VX1で遊んでみた
Takashi Yoshinaga
PPTX
AR-Frame x AR.js入門
Takashi Yoshinaga
PPTX
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
Takashi Yoshinaga
PPTX
コロナ禍中のコミュニティ活動
Takashi Yoshinaga
PPTX
Project HoloBox
Takashi Yoshinaga
PPTX
AR Fukuoka紹介2020
Takashi Yoshinaga
PPTX
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
Takashi Yoshinaga
HoloLens2とMeta QuestではじめるWebXR
Takashi Yoshinaga
【準備編】OculusQuest/HoloLens2対応WebXR開発
Takashi Yoshinaga
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
Takashi Yoshinaga
AI x WebAR: MediaPipeのハンドトラッキングを使ってみよう
Takashi Yoshinaga
iPad LiDARでエンジニアカフェを3Dスキャン
Takashi Yoshinaga
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
Takashi Yoshinaga
Web技術ではじめようAR/VRアプリ開発
Takashi Yoshinaga
MRTKをNreal Lightに対応させてみた
Takashi Yoshinaga
Nreal Lightハンズオン
Takashi Yoshinaga
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
Takashi Yoshinaga
A-Frameで始めるWebXRとハンドトラッキング (HoloLens2/Oculus Quest対応)
Takashi Yoshinaga
Holo-SDKハンズオン:はじめようヘッドトラッキングを用いた3D表現
Takashi Yoshinaga
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
Takashi Yoshinaga
Voxon Photonics VX1で遊んでみた
Takashi Yoshinaga
AR-Frame x AR.js入門
Takashi Yoshinaga
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
Takashi Yoshinaga
コロナ禍中のコミュニティ活動
Takashi Yoshinaga
Project HoloBox
Takashi Yoshinaga
AR Fukuoka紹介2020
Takashi Yoshinaga
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
Takashi Yoshinaga
Azure kinect DKハンズオン
1.
ARコンテンツ作成勉強会 Azure Kinectハンズオン
2.
ビルド済みのSDKや演習用素材のDL http://arfukuoka.lolipop.jp/Azure Kinect/Sample.zip
3.
自己紹介 氏名:吉永崇(Takashi Yoshinaga) 所属:九州先端科学技術研究所(ISIT) 専門:ARを用いた医療支援や運動計測 コミュニティ:ARコンテンツ作成勉強会 主催
4.
#AR_Fukuoka #AzureKinect ハッシュタグ
5.
Kinect Kinect(キネクト)とはMicrosoft社のゲーム機、XBOX360 専用のジェスチャー入力コントローラとして発売された機器 カラー画像・深度(Depth)情報の取得や身体の認識等が可能 深度センサ(赤外線プロジェクタ+赤外線カメラ) カラーカメラ
6.
Kinectの歴史 ハックされた後、ロボットやxR系の研究者やアーティストに普及 バージョンアップが繰り返されたがV2が2017年に生産中止 XBOX版 Kinect
for Windows Kinect V2 DevKit Kinect V2 for Windows/XBOX
7.
Azure Kinect DK
2019年6月末に発売開始(米国・中国のみ) ゲーム用ではなくビジネス向けの計測機器として販売
8.
Azure Kinect DKの機器概要
Depth、カラー画像、音声、加速度・角速度 複数のKinectの間での同期も可能 7つのマイク Depthカメラ (TOF方式) Colorカメラ 加速度・各速度 複数Kinectの同期
9.
特徴①:Point Cloud 従来と比べてDepth(点群)のデータが低ノイズ
10.
Azure Kinect vs
Kinect V2 http://azure-v2.glitch.me
11.
特徴②:計測設定のバリエーション 広角 挟角 視野角は広角/挟角から選択可能
解像度を犠牲して奥行きの範囲の拡大も可能 カラー画像やIMUやマイクなど様々なセンサと併用可能
12.
Azure Kinect Viewerで動かそう Open
Device
13.
Azure Kinect Viewerで動かそう [Depth計測の設定] NFOV:視野角→狭い WFOV:視野角→広い Binned:計測距離→長い ただし解像度低下 Startで計測開始
14.
Azure Kinect Viewerで動かそう 赤外線画像
Depth画像 Color画像 IMU (加速度・角速度) マイク
15.
Azure Kinect Viewerで動かそう ①
3D ②マウスで視点変更
16.
今回のゴール AzureKinectで取得した点群 (Point Cloud)をリアルタイムにAR表示
17.
注意! • SDKの更新はGitHub上で頻繁に行われて いるので今日のサンプルが明日使える保証はあり ません。 • 現状、開発のための情報も少ないので、GitHubで 公開されているサンプル(C#)を読み解けると役に 立つと思ったため、ハンズオンのコードも公式サンプ ルに近い形にしています。 そのためUnity的にあまり良いコードでは無い と思いますのでご了承ください。
18.
プロジェクトの作成 New
19.
プロジェクトの作成 Create Project プロジェクト名 保存場所
20.
プロジェクトの作成
21.
.NET環境の切り替え ①File ②Build Setting
22.
.NET環境の切り替え Player Settings
23.
.NET環境の切り替え Other Settings
24.
.NET環境の切り替え Scripting Runtime Versionを .NET
4.X Equivalent Api Compatibility Levelを .NET 4.X
25.
AzureKinect SDKの導入 Assetsを右クリック
26.
AzureKinect SDKの導入 ①Create ②Folder
27.
AzureKinect SDKの導入 New FolderをPluginsにリネーム
28.
AzureKinect SDKの導入 Pluginsを開いておく
29.
AzureKinect SDKの導入 ①Sample¥Pluginsフォルダ ②全ファイルをPlugins フォルダにドラッグ&ドロップ
30.
AzureKinect SDKの導入 ①SDKがインストールされたフォルダを開く C:¥Program Files¥Azure
Kinect SDK v1.2.0¥sdk¥windows-desktop¥amd64¥release¥bin ②depthengine_2_0.dllを Pluginsフォルダにドラッグ&ドロップ
31.
PointCloud表示用オブジェクトの作成 右クリック
32.
PointCloud表示用オブジェクトの作成 Create Empty
33.
PointCloud表示用オブジェクトの作成 ①GameObject ②PointCloudにリネーム
34.
PointCloud表示用オブジェクトの作成 Add Component
35.
PointCloud表示用オブジェクトの作成 ①meshで検索 ②Mesh Filter
36.
PointCloud表示用オブジェクトの作成 Add Component
37.
PointCloud表示用オブジェクトの作成 Mesh Renderer
38.
PointCloud表示用オブジェクトの作成 Materialsを開く
39.
PointCloud表示用オブジェクトの作成 Element0を確認 ※このあと色つきのPoint Cloud描画を設定する
40.
Point Cloud描画用マテリアルの追加 ①Sampleフォルダ ②PointCloudをダブルクリック ③Import
41.
Point Cloud描画用マテリアルの追加 ①Assets ②ColoredVertexとPointCloudが追加されている
42.
Point Cloud描画用マテリアルの追加 ①PointCloud ②PointCloudをElement0に ドラッグ&ドロップ
43.
Point Cloud描画用マテリアルの追加 Custom/ColoredVertex
44.
Point Cloud描画用スクリプトの作成 ①Point Cloud ②Add
Component
45.
Point Cloud描画用スクリプトの作成 ①検索ワードを消す ②New Script ③KinectScript ④Create
and Add
46.
Point Cloud描画用スクリプトの作成 Scriptが追加されている
47.
Ctrl +S
48.
Point Cloud描画用スクリプトの作成 KinectScriptをダブルクリック
49.
Point Cloud描画用スクリプトの作成
50.
AzureKinectの起動と終了 using UnityEngine; using Microsoft.Azure.Kinect.Sensor; public
class KinectScript : MonoBehaviour { Device device; //Kinectの情報を扱う変数 void Start() { InitKinect(); //Kinectを初期化 } void InitKinect() { //Kinectの初期化を行う(次のページ) } /*スペースの都合上割愛*/ }
51.
AzureKinectの起動と終了 void InitKinect() { device =
Device.Open(0); //Kinectに接続 device.StartCameras(new DeviceConfiguration { ColorFormat = ImageFormat.ColorBGRA32, ColorResolution = ColorResolution.R720p, DepthMode = DepthMode.NFOV_Unbinned, SynchronizedImagesOnly = true, CameraFPS = FPS.FPS30, }); } void OnDestroy() { device.StopCameras(); }
52.
動作確認 Play
53.
動作確認 LEDが点灯
54.
動作確認 再度Playをクリックして停止
55.
PointCloud描画の準備 Device device; int width,
height, num; //Depth画像の縦幅・横幅・全ピクセル数 void Start(){ /*スペースの都合により割愛*/ } void InitKinect() { device = Device.Open(0); device.StartCameras ( /*スペースの都合により割愛*/ ); //Depth画像の横幅と縦幅を取得し、全点数を算出 width = device.GetCalibration(). depth_camera_calibration.resolution_width; height = device.GetCalibration(). depth_camera_calibration.resolution_height; num = height * width; }
56.
PointCloud描画の準備 int width, height,
num; Mesh mesh; //点(図形)の集合を描画するために使用 Vector3[] vertices; //点群(PointCloud)の各座標を格納 Color32[] colors; //各頂点の色情報を格納 int[] indices; //描画する頂点のリスト void Start() { InitKinect(); InitMesh(); //メッシュ情報の初期化 } void InitMesh() { //次のページで解説 }
57.
PointCloud描画の準備 void InitMesh() { mesh =
new Mesh(); //65535点以上描画する際に下記を記述 mesh.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32; //Depth画像の総ピクセル数分の頂点や色の記憶領域を確保 vertices = new Vector3[num]; colors = new Color32[num]; indices = new int[num]; //次のページに続く }
58.
これから描画するもの まずは試しにDepth画像と同数の点を縦横に並べてみる
59.
PointCloud描画の準備 /*前ページの続き(InitMesh内)*/ int index =
0; //何番目の点を操作するのかを表す変数 for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { vertices[index].x = x ; vertices[index].y = y ; vertices[index].z = 2; colors[index].r = 0; colors [index].g = 0; colors [index].b = 255; colors [index].a = 255; indices[index] = index; index++; } } 各頂点の座標を仮置き 各頂点の色を仮置き(=青) index番目の点は描画する
60.
PointCloud描画の準備 /*前頁の続き*/ int index =
0; for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { /*スペースの都合により割愛*/ } } //頂点座標と色をmeshに渡す mesh.vertices = vertices; mesh.colors32 = colors; //リストに格納した番号の頂点座標を点として描画 mesh.SetIndices(indices, MeshTopology.Points, 0); //メッシュをこのオブジェクトのMeshFilterに適用 gameObject.GetComponent<MeshFilter>().mesh = mesh;
61.
動作確認 ちょっと見づらい
62.
動作確認 ①Sceneタブ ②Point Cloudをダブルクリック
63.
AzureKinectからのデータ取得 Int[] indices; Transformation trans;
//座標変換(Depth画像→xyzなど) void Start() { /*割愛*/ } void InitKinect() { /*割愛*/ width = device.GetCalibration(). depth_camera_calibration.resolution_width; height = device.GetCalibration(). depth_camera_calibration.resolution_height; num = height * width; /*Depth画像(pixel)を実空間の座標系(mm)に変換したり カラー画像との座標を合わせたりするのに使用する*/ trans = device.GetCalibration().CreateTransformation(); }
64.
AzureKinectからのデータ取得 using UnityEngine; using Microsoft.Azure.Kinect.Sensor; //非同期処理を行う準備 using
System.Threading.Tasks; public class KinectScript : MonoBehaviour { Device device; int width, height, num; Mesh mesh; Vector3[] vertices; Color32[] colors; int[] indices; /*以下割愛*/
65.
AzureKinectからのデータ取得 void Start() { InitKinect(); InitMesh(); Task t
= KinectLoop( ); } private async Task KinectLoop( ) { while (true) { //この中でAzureKinectからデータを取り続ける } }
66.
AzureKinectからのデータ取得 While (true) { //GetCaptureでKinectから送られてくるフレームを取得 using (Capture
capture = await Task.Run(() => device.GetCapture()).ConfigureAwait(true)) { //capture.Depthデプス画像を取得。 //さらにDeptuImageToPointCloudでxyzに変換 Image pImage = trans.DepthImageToPointCloud(capture.Depth); //変換後のデータから純粋に点の座標のデータのみを取得 Short3[] pointCloud = pImage.GetPixels<Short3>().ToArray(); /*このあとPointCloudを描画する*/ } }
67.
AzureKinectからのデータ取得 using (Capture capture
= await Task.Run(() => device.GetCapture()).ConfigureAwait(true)) { Image pImage = trans.DepthImageToPointCloud(capture.Depth); Short3[] pointCloud = pImage.GetPixels<Short3>().ToArray(); //Kinectで取得した全点の座標をmeshで使用する頂点配列に代入 for (int i = 0; i < num; i++) { vertices[i].x = pointCloud[i].X * 0.001f; vertices[i].y = pointCloud[i].Y * 0.001f; vertices[i].z = pointCloud[i].Z * 0.001f; } //meshに情報を反映 mesh.vertices = vertices; mesh.RecalculateBounds(); }
68.
動作確認、の前に。。。 ①MainCameraを選択 ②Positionを0 0 0
69.
動作確認 実行中にSceneタブに切り替えると いろいろな視点から観察できる
70.
Azure Kinectの座標系
71.
AzureKinectからのデータ取得 using (Capture capture
= await Task.Run(() => device.GetCapture()).ConfigureAwait(true)) { Image pImage = trans.DepthImageToPointCloud(capture.Depth); Short3[] pointCloud = pImage.GetPixels<Short3>().ToArray(); //Kinectで取得した全点の座標をmeshで使用する頂点配列に代入 for (int i = 0; i < num; i++) { vertices[i].x = pointCloud[i].X * 0.001f; vertices[i].y = -pointCloud[i].Y * 0.001f; vertices[i].z = pointCloud[i].Z * 0.001f; } //meshに情報を反映 mesh.vertices = vertices; mesh.RecalculateBounds(); }
72.
動作確認 実行中にSceneタブに切り替えると いろいろな視点から観察できる
73.
色情報の反映 (KinectLoop内) while (true) { using
(Capture capture = await Task.Run(() => device.GetCapture()).ConfigureAwait(true)) { //Depth画像との位置・サイズ合わせ済みの画像を取得 Image modifiedColor = trans.ColorImageToDepthCamera(capture); //純粋に各ピクセルの色情報だけを抜き出す BGRA[] colorArray = modifiedColor.GetPixels<BGRA>().ToArray(); Image pImage = trans.DepthImageToPointCloud(capture.Depth); Short3[] pointCloud = pImage.GetPixels<Short3>().ToArray(); /*次のページに続く*/
74.
色情報の反映 (KinectLoop内) /*前頁からの続き*/ //Kinectで取得した全点の座標をmeshで使用する頂点配列に代入 for (int
i = 0; i < num; i++) { vertices[i].x = pointCloud[i].X * 0.001f; vertices[i].y = -pointCloud[i].Y * 0.001f; vertices[i].z = pointCloud[i].Z * 0.001f; colors[i].a = 255; colors [i].b = colorArray[i].B; colors [i].g = colorArray[i].G; colors [i].r = colorArray[i].R; } //meshに情報を反映 mesh.vertices = vertices; mesh.colors32 = colors; mesh.RecalculateBounds();
75.
動作確認
76.
VuforiaでAR化しよう File
77.
Vuforia Build Settings
78.
Vuforia PlayerSettings
79.
Vuforia 下のほうにスクロール
80.
Vuforia ①XR Settings ②Vuforia Augmented
Reality
81.
Vuforia Accept
82.
Vuforia チェックされてればOK
83.
Vuforia MainCameraを削除
84.
Vuforia 空白を右クリック
85.
Vuforia ①VuforiaEngine ②ARCamera
86.
Vuforia ①空白を右クリック ②Vuforia Engine ③Image
87.
Vuforia ①ImageTargetをダブルクリック
88.
Vuforia PointCloudをImageTargetに ドラッグ&ドロップ
89.
Vuforia PointCloudがImageTarget の子要素になればOK
90.
位置や大きさを整える ①PointCloud ②位置と大きさを調整 Position 0 0.5
-1 Scale 1 1 1
91.
カメラの選択 ②Open Vuforia Engine
Configuration ①ARCamera
92.
カメラの選択 Camera DeviceでUSBカメラを選択
93.
このマーカーを使って動作確認
94.
完成