SlideShare a Scribd company logo
1 of 22
1
洋服サイズ計測アプリの開発
~日常に溶け込むMagicLeapを目指して~
Magic Leap × docomo MeetUp vol.1
2
松下 日昇 @ ARヒノボル
ホロラボ在籍
元Mercari, Inc. R4D XR Research
Engineer
大学院ではComputer Vision /
Deep Learningを専攻
電脳コイルが好き
3
アプリの概要
アジェンダ
カメラ周辺処理の実現02
01
まとめと感想03
4
アプリの概要
Brief app introduction
5
概要
● どんなもの?
○ 洋服のサイズを簡単に計測できるML1アプリ
● なぜやった?
○ AR/MRが日常に潜む不便を解消する技術に
なり得ると示したかった
○ Magicverseの思想に繋がる(ブログ)
● いつやった?
○ メルカリR4D-XR 所属時に開発
● その他
○ AWE USA 2019 にて初公開・展示
○ 特許出願済み
(メルカリの許可を得て発表してます)
AWEでの展示の様子
6
AIとARを掛け合わせることで,洋服を一瞥し,トリガーを一回引くのみで,
サイズを測定できる簡単便利なMagicLeapOneアプリ
コンセプト
7Demo 動画リンク
8
計測の流れ① ~Detect planar of clothes~
服のある平面
エッジデバイス側で,平面が
ワールド座標系においてどこ
に存在しているのか,自分と
の位置関係がどうなっている
のかは検出できる
しかしどの平面が服のある
平面かは判断できない
なので写真撮影した瞬間,
カメラが向いている先にある
平面を「服のある平面」
として記録する
他の平面
他の平面
X
Y Z
ワールド座標系
9
計測の流れ② ~Detect keypoints by AI~
MultiPoseNet[1]の内のKeypointEstimationSubnet
を実装したサーバー
[1] Kocabas, M., Salih K., and Emre A. "Multiposenet: Fast multi-person pose estimation using pose residual network." ECCV 2018.
カメラ画像
Keypoints
アップロード
ダウンロード
10
計測の流れ③ ~Plot 2D points to 3D points by AR~
デバイスが記録している平面
(洋服がその上にあると仮定)
カメラ中心
カメラ
画像平面
X
Y Z
RaycastV
U
(u, v)
Rayが平面に衝突した場所
= 求めたい3次元点 (x, y, z)
ワールド座標系
画像座標系
3次元点が求まれば,
2点間の距離を出せばサイズが分かる!
例)肩幅なら3, 4の距離を測定
11
カメラ周辺処理の実現方法
Details about camera processing
12
【前提】カメラ周りの座標系とその変換
カメラ中心
カメラ
画像平面
V
U
ワールド原点
X
Y Z
ワールド座標系
画像座標系
X
M
Y
M
Z
M
MainCameraの座標が原点
ML1座標系
XC
YC ZC
cameraToWorldMatrix
で座標変換
撮影カメラ座標系
回転はなく、平行移動のみ
カメラ内部パラメータで変換
13
プロットを実現するために必要な情報(ワールド座標系)
②カメラ中心
カメラ
画像平面
X
Y Z
RaycastV
U
③keypoint
(u, v)
Rayが平面に衝突した場所
= 求めたい3次元点 (x, y, z)
ワールド
座標系
画像座標系
XC
YC
ZC
カメラ
座標系
① プロット先となる平面情報
= 服が置かれている平面
② RayCastの始点
= カメラ中心 = カメラ座標系の (0, 0, 0)
= ワールド座標系におけるカメラ中心
③ RayCastの方角
= カメラ中心から見てkeypointがある方向
= 画像座標系におけるkeypoint
= カメラ座標系におけるkeypoint
= ワールド座標系におけるkeypoint
ワールド中心
①
14
プロットを実現するために必要な情報(ワールド座標系)
②カメラ中心
カメラ
画像平面
X
Y Z
RaycastV
U
③keypoint
(u, v)
Rayが平面に衝突した場所
= 求めたい3次元点 (x, y, z)
ワールド
座標系
画像座標系
XC
YC ZC
カメラ
座標系
① プロット先となる平面情報
= 服が置かれている平面
② RayCastの始点
= カメラ中心 = カメラ座標系の (0, 0, 0)
= ワールド座標系におけるカメラ中心
③ RayCastの方角
= カメラ中心から見てkeypointがある方向
= 画像座標系におけるkeypoint
= カメラ座標系におけるkeypoint
= ワールド座標系におけるkeypoint
ワールド中心
①
既知未知
15
ML1 での画像キャプチャの基本(Unity の場合)
MLCamera API を使い外部カメラで
撮影した画像を取得可能
ただし、スクリーンを通して見る像
とは位置のずれが発生する
MLCamera
で利用される
外部カメラ
カメラ画像: 1960x1080
スクリーン画像: 1280x960
スクリーン画像とカメラ画像のおおよその位置関係
16
ML1 の中心点と撮影用カメラとの位置関係
ML1の中心点
撮影用カメラ
の中心点
約11.5cm
約6.6cm
X
Y
Z
XC
YC
ZC
ML1
座標系
カメラ座標系
カメラ座標の(0, 0, 0)
→z方向に+0.066, x方向に-0.115平行移動でML1座標系に変換
→cameraToWorldMatrixでワールド座標系に変換
②~RayCastの始点~への答え
実はML1の中心点と、撮影
用カメラの中心点は異なる
そのためずれが生じていた
SDK v0.19当時はこの情報が
出ていなかったので、
定規でふんわり計測した
17
カメラ/ワールド座標系でのkeypointを求める
画像座標とカメラ座標間の関係式より
と表せる
→内部パラメータが分かれば良い(zcは任意)
→カメラキャリブレーションで取得 カメラ中心
カメラ
画像平面
RaycastV
U
③keypoint
(u, v) / (xC, yC, zC)
画像座標系
XC
YC
ZC
カメラ
座標系
カメラ座標点
内部パラメータ
(未知)
画像座標点(
既知)
画像座標系のkeypoint
→上記の式からカメラ座標系に変換
→平行移動してML1座標系に変換
→cameraToWorldMatrixでワールド座標系に変換
③~RayCastの方向~への答
え
18
プロットを実現するために必要な情報(ワールド座標系)
②カメラ中心
カメラ
画像平面
X
Y Z
RaycastV
U
③keypoint
(u, v)
Rayが平面に衝突した場所
= 求めたい3次元点 (x, y, z)
ワールド
座標系
画像座標系
X
C
Y
C
Z
Cカメラ
座標系
① プロット先となる平面情報
= 服が置かれている平面
② RayCastの始点
= カメラ中心 = カメラ座標系の (0, 0, 0)
= ワールド座標系におけるカメラ中心
③ RayCastの方角
= カメラ中心から見てkeypointがある方向
= 画像座標系におけるkeypoint
= カメラ座標系におけるkeypoint
= ワールド座標系におけるkeypoint
ワールド中心
①
全て既知
19
ほかにも気を付けるべきこと
● システムによって座標系が異なる
○ 座標変換を忘れずに行う(大事)
○ cameraToWorldTransformはUnityの関数なのになぜかOpenGL形式なので罠
X
Y
Z
X
Y
ZX
Y Z
Unity OpenCV OpenGL
20
まとめと感想
Summary
21
まとめと感想
● カメラ周りの処理は、座標系が絡んで混乱しがち
○ 一度理解できれば、それ以降は楽
日常に溶け込ませるためには・・・
● ARと相性の良いAIの活用
○ カメラにより常に現実をとらえ続け、AIによってコンテキストを人間の代わりに理解し、
結果をディスプレイに分かりやすく表示できるから
○ エッジデバイスであるML1のみでGPUを利用したDLが動かせるようになってほしい
● 洗練されたUI/UX
○ 機能は完成しても、UI/UXが洗練されていないと使ってもらえない
○ (もっとML側でベースとなるようなUIを用意してほしいなぁ)
■ 弊社のたるこすがMRTKをML1に対応させたもの
22
【補足】実はアップデート(v0.22)によって
MLCamera API にカメラパラメータと、カメラ中心とワールド中心の位置関係
が取得できるようになっていた........!!!?!??
● GetIntrinsicCalibrationParameters()
○ Get camera intrinsic parameter.
● GetFramePose()
○ Get transform between world origin and the camera.
これからはこの値を使うことでより簡単に、正確に測定することが可能(血涙)

More Related Content

What's hot

目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
historia_Inc
 

What's hot (20)

カリギュラオーバードーズにおけるUE4へのデータ移植の手引き
カリギュラオーバードーズにおけるUE4へのデータ移植の手引きカリギュラオーバードーズにおけるUE4へのデータ移植の手引き
カリギュラオーバードーズにおけるUE4へのデータ移植の手引き
 
2020年8月_HoloLens 2 アプリ開発入門
2020年8月_HoloLens 2 アプリ開発入門2020年8月_HoloLens 2 アプリ開発入門
2020年8月_HoloLens 2 アプリ開発入門
 
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
【Unite Tokyo 2019】SRPで一から描画フローを作ってみた! ~Unity描画フローからの脱却~
 
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
[4.20版] UE4におけるLoadingとGCのProfilingと最適化手法
 
UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!UE4のためのより良いゲーム設計を理解しよう!
UE4のためのより良いゲーム設計を理解しよう!
 
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
点群を使いこなせ! 可視化なんて当たり前、xRと点群を組み合わせたUnityの世界 【Interact , Stipple】
 
はじめようARCore:自己位置推定・平面検出・FaceTracking
はじめようARCore:自己位置推定・平面検出・FaceTrackingはじめようARCore:自己位置推定・平面検出・FaceTracking
はじめようARCore:自己位置推定・平面検出・FaceTracking
 
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
[CEDEC2018] UE4で多数のキャラクターを生かすためのテクニック
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
 
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらいCEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
CEDEC2016: Unreal Engine 4 のレンダリングフロー総おさらい
 
Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法
 
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
 
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
目指せ脱UE4初心者!?知ってると開発が楽になる便利機能を紹介 - DataAsset, Subsystem, GameplayAbility編 -
 
UE4+Photonでネットワーク同期を行う
UE4+Photonでネットワーク同期を行うUE4+Photonでネットワーク同期を行う
UE4+Photonでネットワーク同期を行う
 
UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編
 
「宴」実装時に得られたUnityプログラムノウハウ
「宴」実装時に得られたUnityプログラムノウハウ「宴」実装時に得られたUnityプログラムノウハウ
「宴」実装時に得られたUnityプログラムノウハウ
 
なぜなにFProperty - 対応方法と改善点 -
なぜなにFProperty - 対応方法と改善点 -なぜなにFProperty - 対応方法と改善点 -
なぜなにFProperty - 対応方法と改善点 -
 
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
 
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
 
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
 

Similar to 洋服サイズ計測アプリの開発 ~日常に溶け込むMagicLeapを目指して~

MYQLO〜あなたの拡張クローゼット〜
MYQLO〜あなたの拡張クローゼット〜MYQLO〜あなたの拡張クローゼット〜
MYQLO〜あなたの拡張クローゼット〜
Ryota Aoki
 
131207 NECTJ Workshop 2
131207 NECTJ Workshop 2131207 NECTJ Workshop 2
131207 NECTJ Workshop 2
NECTJ
 
ABC2012Spring 20120324
ABC2012Spring 20120324ABC2012Spring 20120324
ABC2012Spring 20120324
Tak Inamori
 

Similar to 洋服サイズ計測アプリの開発 ~日常に溶け込むMagicLeapを目指して~ (20)

洋服サイズ計測アプリ開発・展示談とAR x e-Commerceの未来
洋服サイズ計測アプリ開発・展示談とAR x e-Commerceの未来洋服サイズ計測アプリ開発・展示談とAR x e-Commerceの未来
洋服サイズ計測アプリ開発・展示談とAR x e-Commerceの未来
 
MYQLO〜あなたの拡張クローゼット〜
MYQLO〜あなたの拡張クローゼット〜MYQLO〜あなたの拡張クローゼット〜
MYQLO〜あなたの拡張クローゼット〜
 
MRアプリを Power Apps で爆速開発 ~Low Code で 仮想世界へGo!~
MRアプリを Power Apps で爆速開発 ~Low Code で 仮想世界へGo!~MRアプリを Power Apps で爆速開発 ~Low Code で 仮想世界へGo!~
MRアプリを Power Apps で爆速開発 ~Low Code で 仮想世界へGo!~
 
AndroidでARの夢を再び 〜ARCoreの導入から応用まで
AndroidでARの夢を再び 〜ARCoreの導入から応用までAndroidでARの夢を再び 〜ARCoreの導入から応用まで
AndroidでARの夢を再び 〜ARCoreの導入から応用まで
 
【続】OpenXRでHoloLensアプリを作る
【続】OpenXRでHoloLensアプリを作る【続】OpenXRでHoloLensアプリを作る
【続】OpenXRでHoloLensアプリを作る
 
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdfソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
ソフトウェア設計原則【SOLID】を学ぶ #1 単一責務の原則(single-responsibility principle).pdf
 
リコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえるリコーUCSの開発をリーンスタートアップ的視点でふりかえる
リコーUCSの開発をリーンスタートアップ的視点でふりかえる
 
Magic Leap 2 情報
Magic Leap 2 情報Magic Leap 2 情報
Magic Leap 2 情報
 
【Unite 2018 Tokyo】AndroidでAR〜ARCoreの導入から応用、使う上での勘所まで
【Unite 2018 Tokyo】AndroidでAR〜ARCoreの導入から応用、使う上での勘所まで【Unite 2018 Tokyo】AndroidでAR〜ARCoreの導入から応用、使う上での勘所まで
【Unite 2018 Tokyo】AndroidでAR〜ARCoreの導入から応用、使う上での勘所まで
 
モバイル&コンシューマ向けのシステム開発ができるPHP&Javaプログラマの皆様へ
モバイル&コンシューマ向けのシステム開発ができるPHP&Javaプログラマの皆様へモバイル&コンシューマ向けのシステム開発ができるPHP&Javaプログラマの皆様へ
モバイル&コンシューマ向けのシステム開発ができるPHP&Javaプログラマの皆様へ
 
131207 NECTJ Workshop 2
131207 NECTJ Workshop 2131207 NECTJ Workshop 2
131207 NECTJ Workshop 2
 
『年末年始に開発したアプリの紹介』(Niantic Lightship ARDK Meetup Vol.1)
『年末年始に開発したアプリの紹介』(Niantic Lightship ARDK Meetup Vol.1)『年末年始に開発したアプリの紹介』(Niantic Lightship ARDK Meetup Vol.1)
『年末年始に開発したアプリの紹介』(Niantic Lightship ARDK Meetup Vol.1)
 
Toolsの杜 - マーベリック - 「IT×デザイン」のススメ
Toolsの杜 - マーベリック - 「IT×デザイン」のススメToolsの杜 - マーベリック - 「IT×デザイン」のススメ
Toolsの杜 - マーベリック - 「IT×デザイン」のススメ
 
「Google I/O 2018ふりかえり」What's new ARCore and ML Kit (Google APP DOJO資料)
「Google I/O 2018ふりかえり」What's new ARCore and ML Kit (Google APP DOJO資料)「Google I/O 2018ふりかえり」What's new ARCore and ML Kit (Google APP DOJO資料)
「Google I/O 2018ふりかえり」What's new ARCore and ML Kit (Google APP DOJO資料)
 
HoloLensでコンテンツを操作する方法 - Gaze And Dwell -
HoloLensでコンテンツを操作する方法 - Gaze And Dwell -HoloLensでコンテンツを操作する方法 - Gaze And Dwell -
HoloLensでコンテンツを操作する方法 - Gaze And Dwell -
 
Mixed Reality Toolkit で OpenXRのEye Trackingを使う
Mixed Reality Toolkit で OpenXRのEye Trackingを使うMixed Reality Toolkit で OpenXRのEye Trackingを使う
Mixed Reality Toolkit で OpenXRのEye Trackingを使う
 
#MRDevDaysJP HoloLens 2 アプリ開発入門
#MRDevDaysJP HoloLens 2 アプリ開発入門#MRDevDaysJP HoloLens 2 アプリ開発入門
#MRDevDaysJP HoloLens 2 アプリ開発入門
 
LiDARとSensor Fusion
LiDARとSensor FusionLiDARとSensor Fusion
LiDARとSensor Fusion
 
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
覗いてみよう。with/afterコロナ時代に輝くMixedRealityの世界。
 
ABC2012Spring 20120324
ABC2012Spring 20120324ABC2012Spring 20120324
ABC2012Spring 20120324
 

More from NishoMatsusita (6)

Magic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみたMagic Leap で WebRTC 触ってみた
Magic Leap で WebRTC 触ってみた
 
Immersal を活用した AR クラウドなシステム開発とハンズオン!
Immersal を活用した AR クラウドなシステム開発とハンズオン!Immersal を活用した AR クラウドなシステム開発とハンズオン!
Immersal を活用した AR クラウドなシステム開発とハンズオン!
 
Immersal で広がる Magic Leap の拡張範囲
Immersal で広がる Magic Leap の拡張範囲Immersal で広がる Magic Leap の拡張範囲
Immersal で広がる Magic Leap の拡張範囲
 
Spatial Computingの未来に思いを馳せて
Spatial Computingの未来に思いを馳せてSpatial Computingの未来に思いを馳せて
Spatial Computingの未来に思いを馳せて
 
AR勉強会第4回part2
AR勉強会第4回part2AR勉強会第4回part2
AR勉強会第4回part2
 
AR勉強会第4回part1
AR勉強会第4回part1AR勉強会第4回part1
AR勉強会第4回part1
 

洋服サイズ計測アプリの開発 ~日常に溶け込むMagicLeapを目指して~

Editor's Notes

  1. 発表するのは,つい2日前に正式にR4DXRに新卒としてジョインした松下日昇ことARヒノボルです.大学院ではCVを専攻していて,ここではMRやARについて取り組んでいきます.きっかけは電脳コイルなので,電脳コイル好きの方がいらっしゃればお声をかけていただければと思います.
  2. ここにメルカリで作ったものだということを書いておく
  3. ポイントはどれだけユーザの操作をなくせるかで、実際にユーザは服があれば、見てクリックするだけで今回は完結するようになっています。
  4. なるべく簡単にできることを意識したので、平面の指定をわざわざしてもらうのはよくないと思った。なので平面は撮影したときに向いている先にあるものを取得することにした。 ただ平面検出は一瞬でできるものではないので、ちゃんと平面が検出されているかのインタラクションが必要。
  5. まずはResNetによって上位の概念を学習させ,Feature Pyramid Networksによって画像の解像度を保つことができる.それらをアップサンプリングして,Keypointsの数だけ出力させたのがヒートマップになって,それぞれが一つのKeypointsに対応している.一つ一つは画像座標,つまりuvの二次元座標
  6. これだけをみると結構簡単に見えるかもしれないが、実は結構いろんな座標系が絡んでいてやってみると複雑だった
  7. 実は撮影カメラ座標系というのが存在した(名前は適当) maincamera
  8. 画像座標系の平面がカメラ座標系のz=1であったとする
  9. これらの未知を一つずつ解明する必要がある。最終的に欲しいのは衝突点のワールド座標。なので ワールド座標で最終的にそろえないと、正しく演算が行えなくなるので、全部揃える。 まずは②を解いていく
  10. ②を求めていく。 このようにずれている理由は、スクリーンで見た時の視点は、ここを中心としているから。 スクリーンとのずれを説明する必要があるかどうか
  11. なのでML1座標系というのを今回は定義しました。カメラの位置関係的に、中心から回転は生じておらず、平行移動 どうして中心点がそこかわかったかというと,原点に小さなSphereをおいてから,頭を移動させたときに 大体そこら辺にあるように見えたから。ここにその中心を出している様子を見せる。 これは実際にメジャーで測ったw なおMLの中心点は、Maincameraの座標で取得できる
  12. ③を求めていく zcはなんでもいいので、例えばzc=1としたら、一つのカメラ座標上での点が定まる。なのであとは内部パラメータが求まれば良いのだけど、少なくともv0.19では提供されていなかったので、チェッカーボードを用意して写真をいっぱいとってカメラキャリブレーションをしてました(これをスライドにするかどうか)。
  13. 全部既知になったので、もういける
  14. 今回は時間が短かったため、UI周りの反省や、AIの詳しい紹介は省きましたが、