SlideShare a Scribd company logo
8
Most read
15
Most read
16
Most read
XR DEVELOPERなら知っておきたいカメラの基礎知識
前本 知志(Microsoft MVP for Windows Development)
@peugeot106s16
株式会社ホロラボ
株式会社システムフレンド
一般社団法人T.M.C.N
・株式会社ホロラボ Co-founder(共同創設者)
http://hololab.co.jp/
・TMCN (Tokyo MotionControl Network) Co-founder(共同創設者)
https://www.facebook.com/TokyoMotioncontrolNetwork
・著書「Intel RealSense SDK センサープログラミング」
https://www.shoeisha.co.jp/book/detail/9784798139630
・Microsoft MVP for Windows Development 2016~
https://mvp.microsoft.com/ja-jp/PublicProfile/5002154?fullName=Satoshi%20%20Maemoto
前本 知志
1
http://satoshi-maemoto.hatenablog.com/
@peugeot106s16
maemoto@hololab.co.jp
普段はグローバルなチームで
xR関係のSDK(カメラ系)を作る仕事をしています
疲れた時の息抜きはおばかアプリ開発
https://youtu.be/rbhTDwQFsNY
AGENDA
1. AR(MR)とカメラとUnity
2. カメラパラメータがわかっている場合
3. カメラパラメータがわかっていない場合
4
1.AR(MR)とカメラとUNITY
1. AR(MR)アプリの重要な機能は、現実空間にCGを重畳表示することである
2. AR(MR)アプリのメインインプットソースは、現実空間を見ているカメラの映像、またはそ
れを処理したデータである
3. 現実空間にCGを重畳表示するとは、「現実空間を見ているカメラ」と「Unity内の仮想
Camera」の映像を重ね合わせることである
4. そのために必要な事
1. とある共通の空間原点を定義し、同じ座標軸で二つのカメラの回転(Rotation)と移動量
(Translation)を合わせる
2. 二つのカメラの視野角、光学中心、歪み等を揃える ※今日の話題はこちら
これらはVuforia, ARKit, ARCoreといったARエンジンがおまかせでやってくれることです
しかしおまかせではいつまでたっても俺ARエンジンは作れません!(需要は知らん
5
カメラパラメータとは6
• 外部パラメータ (External Parameter / Extrinsics)
• カメラとカメラの相対位置(RotationとTranslation)を定義
• 複数カメラ、複数デバイスの空間シェアでは良く出てくるもの
• 今日は触れません
• 内部パラメータ (Internal Parameter / Intrinsics)
• カメラの視野角、光学中心、歪み等を定義
• 映像として綺麗に合わせるために重要
• 今日の話題
カメラパラメータが異なると…7
• Unity内に二つのカメラを置きシミュレート
• 二つのカメラは同じ位置で同じものを見る
• 視野角(内部パラメータ)が異なる
• 見える映像は全く異なる
• 重畳しても映像はうまく重ならない
重畳
1.カメラパラメータがわかっている場合
1. 1眼レフ等Specとしてカメラパラメータがわかっている場合は、Unity Camera
にその値を設定すればちゃんと映像が合います
1. Camera.Physical Camera をtrueにし、下記を現実のカメラと同じ値にする
2. Focal Length (焦点距離)
3. Sensor Size (イメージセンサーの大きさ)
8
https://docs.unity3d.com/ja/2018.4/Manual/PhysicalCameras.html
実験
1. 1.5m先の0.38mx0.25m角の物体(つまりHoloLens2の箱)を現実のカメラ
(Canon EOS 5D Mark III Sensor Size=36x24mm)とUnity内の仮想カメラで
撮影し、映像を比較する
9
Z=1.5
実験
1. Focal Length =35mm
10
Z=1.5
1. Focal Length =70mm
実験
11
1. Focal Length =105mm
実験
12
13
ぴったり合った
気持ちが良い
2.カメラパラメータがわかっていない場合
1. 大抵のカメラSDKにはIntrinsicsを取得できるAPIやToolがあります。
1. 例えばAzure Kinect
https://microsoft.github.io/Azure-Kinect-Sensor-
SDK/master/structk4a__calibration__intrinsic__parameters__t_1_1__param.html
2. APIが無い、値が信用できない場合はOpenCVを使用してカメラパラメータを求
める(皆さんおなじみの(?)チェッカーボードを使うもの)
https://docs.opencv.org/master/dc/dbb/tutorial_py_calibration.html
こちらの記事はとても参考になります!
https://kamino.hatenablog.com/entry/opencv_calibrate_camera
3. IntrinsicsをProjection Matrixに変換してUnityのCameraに設定する
Intrinsicsはリアルカメラのパラメータとは表現が異なるので、直接Inspectorから設定できま
せん。射影行列へ変換することが必要です。
https://kamino.hatenablog.com/entry/unity-import-opencv-camera-params
14
チェッカーボードを用いたキャリブレーション15
• チェッカーボードを撮影する
• 状態の良い画像が多数ある方が良い
• 様々な角度から撮影する
• OpenCVのcalibrateCamera関数等でごにょご
にょする
• Internal Parameterが求まる
• Internal Parameterは9つの数値リスト。
3x3の射影行列を表す
• fx / fy = 焦点距離
• cx / cy = 光学中心
https://docs.opencv.org/master/d9/d0c/group__calib3d.html#ga3207604e4b1a1758aa66acb6ed5aa65d
UNITYのカメラに適用する16
• UnityのCameraに射影行列を反映する
• Inspectorからは適用できない
• FoVをWidth,Hight個別に設定できない、など射影行列の表現を全て正確に設定することができないため
• Camera.projectionMatrixにMatrix3x3として設定を行う
• https://docs.unity3d.com/ja/2019.4/ScriptReference/Camera-projectionMatrix.html
• これを行うとInspectorの設定は無効になるので注意
• UnityなのにOpenGL座標系になる
• (難しいけれど、3Dグラフィックスちょっとできる気になれる)
• このスクリプトを使わせてもらうのが良いw
• https://github.com/kamino410/cv-
snippets/blob/master/unity/OpenCVCameraParams.cs
実験
1. 1.5m先のチェッカーボードを現実のカメラ(Canon EOS 5D Mark III Focal Length =70mm)
で撮影し、OpenCVでInternal Parameterを求める。
2. 求めたパラメータを設定したUnity内の仮想カメラの映像と、Physical Cameraの実験で得た
Focal Length =70mmの映像を比較する
17
Z=1.5
同じような映像が得られたら大成功!
1. Focal Length =70mm
2. 15枚の画像をOpenCVで処理
3. 求まったパラメータ
1. 1.0501518959042742e+04, 0, 2.2964267305726362e
2. 0,1.0498208083522914e+04, 2.0191220772892598e+03
3. 0, 0, 1
実験
18
1. UnityのCameraに適用すると!
実験
19
OpenCVキャリブ版 Physical Camera設定版
大違いじゃないけど、近いと言えば近いけど
ズレてる(笑)!
20
• 敗因
• 撮影枚数が少ない
• 良い写真がたくさんあれば誤差が収束してゆく
• 様々なアナログ要素がキャリブレーション精度を下げる
• 手作りチェッカーボードの精度
• 撮影時の手ブレ
• カメラのピント
• ホワイトバランスのブレ
• …
なかなか完璧なキャリブレーションを個人レベルで行うのは難しい。。
ここを良くしてゆくのがノウハウ、チャレンジポイントですw
実験
21
• 今は何でも良いソリューションが手軽に使えますが、しくみを知れば
• トラブルシューティングに役立つ
• 自分でしくみを作ることができる
• コスパの良い知識である
• 今後Unityが無くなったり、国が滅びたりしても光の性質やカメラのしくみは
簡単には変わりません。
• 単純に、知ったことを実験して確かめてゆくことは実にたのしい
まとめ
xR Developerなら知っておきたいカメラの基礎知識

More Related Content

PPTX
未来のプログラミング技術をUnityで -UniRx-
torisoup
 
PDF
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみた
Franz Weitl
 
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
 
PPTX
HoloLens2とMeta QuestではじめるWebXR
Takashi Yoshinaga
 
PDF
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
 
PDF
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
GREE VR Studio Lab
 
PDF
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
 
未来のプログラミング技術をUnityで -UniRx-
torisoup
 
猫でも分かるUE4を使った VRコンテンツ開発 超入門編 2021
エピック・ゲームズ・ジャパン Epic Games Japan
 
HoloLens で OpenCV をどう使うか レーザーポインター 認識で試してみた
Franz Weitl
 
Dockerからcontainerdへの移行
Akihiro Suda
 
HoloLens2とMeta QuestではじめるWebXR
Takashi Yoshinaga
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki
 
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
GREE VR Studio Lab
 
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
 

What's hot (20)

PDF
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
 
PDF
Jetson活用セミナー ROS2自律走行実現に向けて
Fixstars Corporation
 
PDF
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
 
PDF
Docker Compose 徹底解説
Masahito Zembutsu
 
PPTX
HoloLensでONNXを使って推論(Custom Vision - Object Detection編)
Takahiro Miyaura
 
PDF
tf,tf2完全理解
Koji Terada
 
PDF
UnityによるHoloLensアプリケーション入門
Yuichi Ishii
 
PDF
UniRx完全に理解した
torisoup
 
PDF
#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab
GREE VR Studio Lab
 
PDF
ORB-SLAMを動かしてみた
Takuya Minagawa
 
PPTX
A-Frameで始めるWebXRとハンドトラッキング (HoloLens2/Oculus Quest対応)
Takashi Yoshinaga
 
PDF
オープンソース SLAM の分類
Yoshitaka HARA
 
PDF
【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ
Unity Technologies Japan K.K.
 
PDF
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
Hideki Takase
 
PDF
Hubsカスタマイズ 行動ログ取得やバックエンドの話
hironroinakae
 
PDF
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
 
PPTX
大規模ゲーム開発における build 高速化と安定化
DeNA
 
PPTX
Arxan導入前後で変わったこと
Yusuke Shirakawa
 
PDF
Riderはいいぞ!
UnityTechnologiesJapan002
 
KEY
やはりお前らのMVCは間違っている
Koichi Tanaka
 
Immersal を活用した AR クラウドなシステム開発とハンズオン!
NishoMatsusita
 
Jetson活用セミナー ROS2自律走行実現に向けて
Fixstars Corporation
 
C#次世代非同期処理概観 - Task vs Reactive Extensions
Yoshifumi Kawai
 
Docker Compose 徹底解説
Masahito Zembutsu
 
HoloLensでONNXを使って推論(Custom Vision - Object Detection編)
Takahiro Miyaura
 
tf,tf2完全理解
Koji Terada
 
UnityによるHoloLensアプリケーション入門
Yuichi Ishii
 
UniRx完全に理解した
torisoup
 
#XRKaigi 「Mozilla Hubsを用いたバーチャルイベントのWebVR化~その可能性と実際~」[20201208] #VRStudioLab
GREE VR Studio Lab
 
ORB-SLAMを動かしてみた
Takuya Minagawa
 
A-Frameで始めるWebXRとハンドトラッキング (HoloLens2/Oculus Quest対応)
Takashi Yoshinaga
 
オープンソース SLAM の分類
Yoshitaka HARA
 
【Unity道場スペシャル 2018仙台】Unityでステージをつくるのじゃ
Unity Technologies Japan K.K.
 
つながるロボット 〜分散協調ロボットの開発を加速化するROSの紹介〜
Hideki Takase
 
Hubsカスタマイズ 行動ログ取得やバックエンドの話
hironroinakae
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
 
大規模ゲーム開発における build 高速化と安定化
DeNA
 
Arxan導入前後で変わったこと
Yusuke Shirakawa
 
Riderはいいぞ!
UnityTechnologiesJapan002
 
やはりお前らのMVCは間違っている
Koichi Tanaka
 
Ad

Similar to xR Developerなら知っておきたいカメラの基礎知識 (20)

PPTX
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
 
PPTX
Shadow gunのサンプルから学べるモバイル最適化
Katsutoshi Makino
 
PDF
はじめようArcore (修正版)
Takashi Yoshinaga
 
PDF
はじめようARCore
Takashi Yoshinaga
 
PDF
20160525はじめてのコンピュータビジョン
Takuya Minagawa
 
PPTX
SSII2020TS: 物理ベースビジョンの過去・現在・未来 〜 カメラ・物体・光のインタラクションを モデル化するには 〜
SSII
 
PPTX
関東コンピュータビジョン勉強会
nonane
 
PDF
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
UnityTechnologiesJapan002
 
PDF
KINECT Mixed Reality
Satoshi Maemoto
 
PPTX
20150328 cv関東勉強会 sumisumithパート_v1.3
sumisumith
 
PDF
DeNA TechCon2016 360VR Live Streaming
Takeyuki Ogura
 
PDF
OpenCVで作るスタンプAR
Takashi Yoshinaga
 
PDF
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
ARもVRもMRもまとめてドドンドーン!
Satoshi Maemoto
 
PDF
Unityでar
拓 小林
 
PPTX
10年後のIT未来予想図 [センサー&デバイス編]_エフスタ!!TOKYO_20141205
Takesen - Takehisa Ito
 
PPTX
20190227 第51回CV勉強会@関東
Kyohei Unno
 
PPTX
Unityで作るオリジナルウェブカメラ
Hiromichi Yamada
 
PDF
OpenCVとARCoreで作るスタンプAR in 宮崎
Takashi Yoshinaga
 
PDF
静岡Developers勉強会コンピュータビジョンvol4発表用資料
keima_12
 
OpenVRやOpenXRの基本的なことを調べてみた
Takahiro Miyaura
 
Shadow gunのサンプルから学べるモバイル最適化
Katsutoshi Makino
 
はじめようArcore (修正版)
Takashi Yoshinaga
 
はじめようARCore
Takashi Yoshinaga
 
20160525はじめてのコンピュータビジョン
Takuya Minagawa
 
SSII2020TS: 物理ベースビジョンの過去・現在・未来 〜 カメラ・物体・光のインタラクションを モデル化するには 〜
SSII
 
関東コンピュータビジョン勉強会
nonane
 
【Unite Tokyo 2018】カスタムシェーダーでモバイルでも最先端グラフィックスな格闘ゲームを!
UnityTechnologiesJapan002
 
KINECT Mixed Reality
Satoshi Maemoto
 
20150328 cv関東勉強会 sumisumithパート_v1.3
sumisumith
 
DeNA TechCon2016 360VR Live Streaming
Takeyuki Ogura
 
OpenCVで作るスタンプAR
Takashi Yoshinaga
 
Unreal Engine 4.27 ノンゲーム向け新機能まとめ
エピック・ゲームズ・ジャパン Epic Games Japan
 
ARもVRもMRもまとめてドドンドーン!
Satoshi Maemoto
 
Unityでar
拓 小林
 
10年後のIT未来予想図 [センサー&デバイス編]_エフスタ!!TOKYO_20141205
Takesen - Takehisa Ito
 
20190227 第51回CV勉強会@関東
Kyohei Unno
 
Unityで作るオリジナルウェブカメラ
Hiromichi Yamada
 
OpenCVとARCoreで作るスタンプAR in 宮崎
Takashi Yoshinaga
 
静岡Developers勉強会コンピュータビジョンvol4発表用資料
keima_12
 
Ad

More from Satoshi Maemoto (20)

PDF
MIXED REALITY に REALITY を PLUS するハプティクス技術
Satoshi Maemoto
 
PDF
広島でMixed Realityやりましょう!
Satoshi Maemoto
 
PDF
UNC progress report
Satoshi Maemoto
 
PDF
TMCN振り返り 令和ver
Satoshi Maemoto
 
PDF
SUPER HIGH-TECH UNC で実現する新しい世界
Satoshi Maemoto
 
PDF
今話題の!AIoT MR UNCで変わる世界
Satoshi Maemoto
 
PDF
FESTA de UNC
Satoshi Maemoto
 
PDF
Internet of UNCで実現する新しい共有体験
Satoshi Maemoto
 
PDF
UNC近況報告
Satoshi Maemoto
 
PDF
楽しいものづくり ファーストステップ
Satoshi Maemoto
 
PDF
HoloLensとさまざまなデバイス連携ドドンドーン
Satoshi Maemoto
 
PDF
xRLT vol.01 LT
Satoshi Maemoto
 
PDF
センサー・VR・MR 基本とオススメ
Satoshi Maemoto
 
PDF
ARもVRもMRもまとめてドーン
Satoshi Maemoto
 
PDF
LODGEのいいところあげていきます!
Satoshi Maemoto
 
PDF
ARもVRもMRもまとめてドーン
Satoshi Maemoto
 
PDF
VR/AR/MRってなんですか?
Satoshi Maemoto
 
PDF
Kinect やセンサーデバイスと連動した楽しいアプリ開発
Satoshi Maemoto
 
PDF
沖縄まで踊りに来たぜ!VR/AR/MR最前線
Satoshi Maemoto
 
PDF
Unityでホログラフィックunityちゃんを呼び出す方法
Satoshi Maemoto
 
MIXED REALITY に REALITY を PLUS するハプティクス技術
Satoshi Maemoto
 
広島でMixed Realityやりましょう!
Satoshi Maemoto
 
UNC progress report
Satoshi Maemoto
 
TMCN振り返り 令和ver
Satoshi Maemoto
 
SUPER HIGH-TECH UNC で実現する新しい世界
Satoshi Maemoto
 
今話題の!AIoT MR UNCで変わる世界
Satoshi Maemoto
 
FESTA de UNC
Satoshi Maemoto
 
Internet of UNCで実現する新しい共有体験
Satoshi Maemoto
 
UNC近況報告
Satoshi Maemoto
 
楽しいものづくり ファーストステップ
Satoshi Maemoto
 
HoloLensとさまざまなデバイス連携ドドンドーン
Satoshi Maemoto
 
xRLT vol.01 LT
Satoshi Maemoto
 
センサー・VR・MR 基本とオススメ
Satoshi Maemoto
 
ARもVRもMRもまとめてドーン
Satoshi Maemoto
 
LODGEのいいところあげていきます!
Satoshi Maemoto
 
ARもVRもMRもまとめてドーン
Satoshi Maemoto
 
VR/AR/MRってなんですか?
Satoshi Maemoto
 
Kinect やセンサーデバイスと連動した楽しいアプリ開発
Satoshi Maemoto
 
沖縄まで踊りに来たぜ!VR/AR/MR最前線
Satoshi Maemoto
 
Unityでホログラフィックunityちゃんを呼び出す方法
Satoshi Maemoto
 

Recently uploaded (9)

PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
PDF
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
PDF
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
 
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
 
20250730_QiitaBash_LT登壇資料_PDC_Kurashina.pdf
pdckurashina
 
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
 
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
 
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
 
20250729_Devin-for-Enterprise
Masaki Yamakawa
 
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
 
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
 

xR Developerなら知っておきたいカメラの基礎知識