特徴点追跡による動画像からの 逐次三次元復元とその応用

SSII2015 チュートリアル
特徴点追跡による動画像からの
逐次三次元復元とその応用
-座標系の基礎から応用事例・最新研究動向まで-
奈良先端科学技術大学院大学
情報科学研究科 准教授 佐藤 智和
E-mail: [email protected]
1
チュートリアル概要
1.
2.
3.
4.
5.
6.
7.
導入
v-SLAMの応用分野
カメラ位置・姿勢推定(Localization)
特徴点追跡と三次元位置推定(Mapping)
v-SLAMのアルゴリズム
様々な課題への対応
最新研究動向
2
1
Simultaneous Localization
And Mapping (SLAM)
もともとはロボット分野の研究/用語
• Localization: ロボットの位置・姿勢推定
• Mapping: マップの推定
ロボット分野におけるSLAM
コンピュータビジョン分野に
おける(visual)SLAM
各種センサ情報
動画像情報
ロボットの位置(3DOF/6DOF)+マップ(2D/3D)
カメラの位置・姿勢(6DOF)+マップ(3D)
3
visual SLAM (v-SLAM)
-動画像からの逐次三次元復元手法-
湾曲した紙面を撮影した動画像上での
自然特徴点の追跡結果
推定されたカメラ位置姿勢
+ 特徴点の三次元位置
動画像を解析することで、逐次(できればリアルタイムで)カメラ
の位置・姿勢とシーンの三次元情報(マップ)を推定する手法
4
2
カメラを利用するメリット
• Laser scanner:
得られる情報 距離情報・反射率等
測定範囲 数m~100m程度
計測速度 数万点/秒
価格 数万円~数百万円
• カメラ:
得られる情報 カメラ位置・姿勢、シーン形状、表情・感情、天候、etc.
測定範囲 0~∞
計測速度 6千万点/秒 (Full HD)
価格 5千円以下
5
チュートリアル概要
1.
2.
3.
4.
5.
6.
7.
導入
v-SLAMの応用分野
カメラ位置・姿勢推定(Localization)
特徴点追跡と三次元位置推定(Mapping)
v-SLAMのアルゴリズム
様々な課題への対応
最新研究動向
6
3
Visual SLAM(v-SLAM)の応用分野
画像生成・可視化
•
•
•
•
拡張現実感(AR: Augmented Reality)
隠消現実感(DR: Diminished Reality)
自由視点画像生成
実物体・実シーンの三次元モデル生成/仮想化
自動化
• ロボットナビゲーション
• 車両の自動走行/運転支援
その他
• Structure from Motion法の初期値生成
7
Augmented Reality (拡張現実感)
・ 実シーンにCGによる仮想世界を合成提示する手法
・ リアルタイムにカメラの位置・姿勢を推定する必要がある
8
G. Klein et al., Parallel Tracking and Mapping for Small AR Workspace, ISMAR 2007
4
Diminished Reality (隠消現実感)
・ 実シーンから不要な物を視覚的に取り除く手法
・ リアルタイムにカメラの位置・姿勢を推定する必要がある
N. Kawai, T. Sato, and N. Yokoya: Diminished reality considering background structures, ISMAR2013
9
自由視点画像生成
・本来撮影されていない視点からの映像を合成する手法
・シーンの三次元構造と元のカメラの位置関係が必要となる
・例えばStreet view画像群から任意経路で移動するビデオが生成可能
元のカメラパス
1m
仮想カメラ
仮想カメラの
移動経路
T. Sato, H. Koshizawa, and N. Yokoya: Omnidirectional free-viewpoint rendering using a deformable
3-D mesh model, IJVR, 2010.
10
*本研究ではSfMの初期値生成にvSLAMを利用
5
自由視点画像生成による
遠隔ロボットの操縦支援システム
操縦者の頭部位置に連動した自由な視点位置からの画像生成を行い、死角領
域を確認しながらリアルタイムでのロボット操作を支援するシステム
F. Okura, Y. Ueda, T. Sato, and N. Yokoya: Free-viewpoint mobile robot teleoperation interface using
view-dependent geometry and texture, ITE Trans. on MTA. 2014.
11
*本研究ではKinectによるvisualでないSLAMを利用しているが、原理的にはvSLAMでも同様のことが実現可能
v-SLAMを用いた湾曲した
紙面のスキャンシステム
T Sato, A. Iketani, S. Ikeda, M. Kanbara, N. Nakajima, and N. Yokoya: Video mosaicing for
12
curved documents by structure from motion, ACM SIGGRAPH2006, Sketches.
6
関連研究: Structure from Motion
・動画像または画像群から、カメラの位置・姿勢とシーン中
の特徴点の三次元位置を復元する手法
・Multi-view Stereo法などと組み合わせてシーンの形状復
元に用いられる
http://www.cs.cornell.edu/~snavely/bundler/
13
全方位SfM in 東大寺大仏殿
14
7
SfM と v-SLAM の関係
SfM
v-SLAM
リアルタイム・逐次出力
オフライン・高精度
SfM
v-SLAM
入力
画像群
動画像(連続撮影画像)
リアルタイム性
不要
要
結果出力
一括
逐次
利用可能な情報
全て(復元対象から見て未 現時点までの情報のみ
来の情報も利用)
破綻時の復帰処理
比較的容易
容易ではない
特徴点追跡
容易ではない
(連続撮影でない場合)
比較的容易
(探索範囲の限定が可能)
誤差の蓄積
小~中
大
15
最も単純なSLAMの実現方法
mapping
localization
初期値
Image 1
Image 2
何らかの方法で、カメラ位置の初期値が与えられれば、
localization, mappingを繰り返すことで、推定を継続できる
16
8
チュートリアル概要
1.
2.
3.
4.
5.
6.
7.
導入
v-SLAMの応用分野
カメラ位置・姿勢推定(Localization)
特徴点追跡と三次元位置推定(Mapping)
v-SLAMのアルゴリズム
様々な課題への対応
最新研究動向
17
カメラ位置・姿勢の表現
Q. カメラはどこにありますか。またどちらを向いていますか。
A. カメラは
位置:
・青森県xxx市にある
・東京の600km北にある
・緯度135 40’xxx, 軽度34 39‘xxxにある
姿勢:
・東を向いている
・太平洋を向いている
・月の方向を向いている
基準となる座標系を設定する
必要がある
18
9
GPS座標系が良い?
緯度 135 40’xxx
経度 34 39‘xxx
高さ 10^10km
緯度 135 40’xxx
経度 34 39‘xxx
緯度 135 40’xxx
経度 34 39‘xxx
先行車両との位置関係は?
利用用途に応じてそれに適した座標系を決定する必要がある
19
ローカル座標とワールド座標
y
y
y
z
x
z
ワールド座標
x
ローカル座標
(カメラ座標)
z
ローカル座標
(カメラ座標)
x
ワールド座標: 全体の共通基盤となる座標系
ローカル座標: ワールド座標系とは独立に運動する
物体毎に設定される座標系
(カメラに対象した場合はカメラ座標)
20
10
カメラ位置・姿勢推定問題とは
y
カメラ座標系
𝐌
x
シーン
z
z
画像座標系
y
u
0
v
x
ワールド座標系
ワールド座標とカメラ座標の間の座標変換行列𝐌を求める問題
𝐌を用いることで、ワールド座標上の任意の点を画像上に射影
することができる
21
絶対位置・姿勢と相対位置・姿勢
y
絶対位置・姿勢
y
z
y
x
z
ワールド座標
相対位置・姿勢
x
カメラ座標系(位置A)
z
y
x
カメラ座標系(位置B)
z
x
カメラ座標系(位置B)
絶対位置・姿勢: 他の系から参照可能で再現可能な世界座標に
おいて推定される位置・姿勢情報
相対位置・姿勢: 再現可能でない座標系による推定
v-SLAMでは、何らかの基準を設けない限り、相対位置・姿勢しか
22
推定できない
11
カメラ位置・姿勢推定によるAR画像生成
AR ToolkitではARマーカ上に世界座標を設定し、世界座標系に
固定された3DCGをカメラ座標に変換・投影することで、画像上に
23
CGを合成提示している
ワールド座標からカメラ座標への
座標変換行列𝐌
𝐌𝑊𝑡𝑜𝐶 =
𝑟11
𝑟21
𝑟31
0
𝑟12
𝑟22
𝑟32
0
𝑟13
𝑟23
𝑟33
0
上記の𝐌を用いて、ワールド座標系の
三次元位置 𝑥𝑤 , 𝑦𝑤 , 𝑧𝑤 は、カメラ座
標系の三次元位置 𝑥𝑐 , 𝑦𝑐 , 𝑧𝑐 に,下記
の式で射影される。
𝑥𝑐
𝑥𝑤
𝑥𝑤
𝑡1
𝑦𝑐
𝑦𝑤
𝑦
𝑡
=
𝐌
=
𝐑
+
𝑤
2
𝑊𝑡𝑜𝐶 𝑧
𝑧𝑐
𝑤
𝑧𝑤
𝑡3
1
1
𝑡1
𝑡2
𝑡3
1
=
𝐑
𝟎𝑻
𝐭
1
y
x
z
𝐌𝑊𝑡𝑜𝐶
Scene
z
𝑥𝑐 , 𝑦𝑐 , 𝑧𝑐
y
𝑥𝑤 , 𝑦𝑤 , 𝑧𝑤
x
0
24
12
カメラ外部パラメータMの自由度
𝐌𝑊𝑡𝑜𝐶 =
𝑟11
𝑟21
𝑟31
0
𝑟12
𝑟22
𝑟32
0
𝑟13
𝑟23
𝑟33
0
𝑡1
𝑡2
𝑡3
1
=
𝐑
𝟎𝑻
𝐭
1
カメラ位置・姿勢推定において、この行列はカメラ外部パメータと呼
ばれ、 𝐑は回転行列、𝐭はカメラの並進ベクトルを表す。
𝐑は、何も考えなければ9自由度、𝐭は3自由度で、𝐌は合計12自由
度を持つ。
一般には、 𝐑を3自由度で表現することで、 𝐌 の自由度は6となる
25
回転行列の表現
オイラー角表現: 各軸周りの回転角度が𝛼, 𝛽, 𝛾の場合
𝑐𝑜𝑠𝛽 0 𝑠𝑖𝑛𝛽
1
0
𝑐𝑜𝑠𝛼 −𝑠𝑖𝑛𝛼 0
0
𝑐𝑜𝑠𝛾
0
1
0
𝐑 = 𝑠𝑖𝑛𝛼 𝑐𝑜𝑠𝛼 0
0
0
1 −𝑠𝑖𝑛𝛽 0 𝑐𝑜𝑠𝛽 0 𝑠𝑖𝑛𝛾
0
−𝑠𝑖𝑛𝛾
𝑐𝑜𝑠𝛾
回転軸・回転角による表現: 回転軸ベクトル𝐫 = (𝑛1 , 𝑛2 , 𝑛3 )まわりに𝜃ラジアン
回転する場合
𝑐𝑜𝑠𝜃 + 𝑛12 (1 − 𝑐𝑜𝑠𝜃)
𝐑 = 𝑛1 𝑛2 1 − 𝑐𝑜𝑠𝜃 + 𝑛3 𝑠𝑖𝑛𝜃
𝑛1 𝑛3 1 − 𝑐𝑜𝑠𝜃 − 𝑛2 𝑠𝑖𝑛𝜃
𝑛1 𝑛2 (1 − 𝑐𝑜𝑠𝜃)
𝑐𝑜𝑠𝜃 + 𝑛22 (1 − 𝑐𝑜𝑠𝜃)
𝑛2 𝑛3 1 − 𝑐𝑜𝑠𝜃 − 𝑛1 𝑠𝑖𝑛𝜃
𝑛1 𝑛3 1 − 𝑐𝑜𝑠𝜃 + 𝑛2 𝑠𝑖𝑛𝜃
𝑛2 𝑛3 1 − 𝑐𝑜𝑠𝜃 − 𝑛1 𝑠𝑖𝑛𝜃
𝑐𝑜𝑠𝜃 + 𝑛32 (1 − 𝑐𝑜𝑠𝜃)
ただし、|𝐫| = 1
クオータニオン表現: 𝑞0 , 𝑞1 , 𝑞2 , 𝑞3 =
𝑞02 + 𝑞12 − 𝑞22 − 𝑞32
𝐑=
2(𝑞1 𝑞2 + 𝑞0 𝑞3 )
2(𝑞1 𝑞3 − 𝑞0 𝑞2 )
𝜃
𝜃
𝜃
𝜃
(𝑐𝑜𝑠 , 𝑛1 𝑠𝑖𝑛 , 𝑛2 𝑠𝑖𝑛 , 𝑛3 𝑠𝑖𝑛 )とおくと、
2
2
2
2
2(𝑞1 𝑞2 − 𝑞0 𝑞3 )
𝑞02 − 𝑞12 + 𝑞22 − 𝑞32
2(𝑞2 𝑞3 + 𝑞0 𝑞1 )
2(𝑞1 𝑞3 + 𝑞0 𝑞2 )
2(𝑞2 𝑞3 − 𝑞0 𝑞1 )
𝑞02 − 𝑞12 − 𝑞22 + 𝑞32
26
13
カメラ座標系間の変換
𝐌𝐴𝑡𝑜𝐵 = 𝐌𝐵 𝐌𝐴 −1
y
𝐌𝐴
z
y
y
x
カメラ座標系(位置A)
x
𝐌𝐵
z
ワールド座標
z
x
カメラ座標系(位置B)
座標系の逆変換は、逆行列を算出することで得られるため、
カメラ座標間の変換は容易に求まる
27
投影モデル
y
カメラ座標
x
z
シーン
画像座標
z
u
y
v
0
x
カメラ座標上の三次元位置を画像上に投影した投影座標
を決定するためには、投影モデルを決定する必要がある
世界座標
28
14
代表的な投影モデル
(𝑥𝑐 , 𝑦𝑐 , 𝑧𝑐 )
• 直交投影
画像平面
(𝑢, 𝑣)
𝑢
𝑠 0 0 0
=
𝑣
0 𝑠 0 0
𝑥𝑐
𝑦𝑐
𝑧𝑐
1
• 透視投影
𝑓𝑥
𝑢
𝑣
𝜆
= 0
1
0
0
𝑓𝑦
0
𝑐𝑥 0
𝑐𝑦 0
1 0
𝑥𝑐
𝑦𝑐
𝑧𝑐
1
(𝑥𝑐 , 𝑦𝑐 , 𝑧𝑐 )
画像平面
(𝑢, 𝑣)
校正行列𝐊 (カメラ内部パラメータ)
*以後説明簡単化のため、
𝑓𝑥 = 𝑓𝑦 = 𝑓, 𝑐𝑥 = 𝑐𝑦 = 0とする
29
カメラ座標系と
透視投影(ピンホール)カメラモデル
y
f
v
z
x
u
(u, v)
画像上の点の
二次元位置
カメラ座標系における
点の三次元位置
(𝑥𝑐 , 𝑦𝑐 , 𝑧𝑐 )
単純な透視投影の式: 𝑢 = 𝑓
𝑥𝑐
𝑦𝑐
,𝑣 = 𝑓
𝑧𝑐
𝑧𝑐
30
*実際には、カメラの投影歪み、アスペクト比、等を考慮したカメラ内部パラメータが必要
15
透視投影カメラモデル
y
カメラ座標
x
z
シーン
𝐊
画像座標
z
u
y
v
𝑥𝑤
0
𝑢
x
𝑦𝑤
世界座標
𝜆 𝑣 = 𝐊 𝐌𝑊𝑡𝑜𝐶 𝑧
𝑤
1
1
v-SLAMでは、内部パラメータ𝐊は変動しないことを前提に、
事前にキャリブレーションにより取得しておくことが一般的 31
Perspective N Point (PnP)問題
𝑦
(𝑥𝑤 , 𝑦𝑤 , 𝑧𝑤 )
(𝑢, 𝑣)
𝑥
𝑧
対応点
𝑧
𝑦
ローカル座標系
画像座標
𝑥
世界座標
ワールド座標においてN点の三次元位置(𝑥𝑤 , 𝑦𝑤 , 𝑧𝑤 )と、その画像上
の座標(𝑢, 𝑣)のペアからカメラ外部パラメータ行列Mを推定する問題
32
16
PnP問題の最小解
• P3P: 3点の対応からカメラ位置を推定
最大4つの解が存在するため、一意に解を定め
るには付加的な情報が必要
• P4P: 4点の対応からカメラ位置を推定
解が一意に得られる
た だ し 、 v-SLAM で の 利 用 を 想 定 す る 場 合 に は 、
N>=20程度ないと、安定した解が得られない場合が
多い (Nが小さい場合は誤差の蓄積速度が上がる)
33
Image space errorとObject space error
カメラ位置・姿勢推定問題は、基本的には誤差最小化問題となる
が、Object space errorよりもImage space errorを最小化することで
良い推定結果が得られることが知られている。
Image space error
𝑦
(𝑢, 𝑣)
(𝑥𝑤 , 𝑦𝑤 , 𝑧𝑤 )
Object space error
𝑧
𝑧
𝑦
𝑥
カメラ座標
画像平面
𝑥
世界座標
Object space errorの最小化では線形に解が得られるため、初期値の算出に用
いられる
34
17
Object space errorの最小化
𝑢𝑝
𝜆 𝑣𝑝 = 𝐌𝑊𝑡𝑜𝐶
1
𝑥𝑤𝑝
𝑦𝑤𝑝
𝑧𝑤𝑝
1
𝑢𝑝 =
𝑥𝑤𝑝 𝑟11 + 𝑦𝑤𝑝 𝑟12 + 𝑧𝑤𝑝 𝑟13 + 𝑡1
𝑥𝑤𝑝 𝑟31 + 𝑦𝑤𝑝 𝑟32 + 𝑧𝑤𝑝 𝑟33 + 𝑡3
𝑣𝑝 =
𝑥𝑤𝑝 𝑟21 + 𝑦𝑤𝑝 𝑟22 + 𝑧𝑤𝑝 𝑟23 + 𝑡2
𝑥𝑤𝑝 𝑟31 + 𝑦𝑤𝑝 𝑟32 + 𝑧𝑤𝑝 𝑟33 + 𝑡3
*ここでは簡単化のため𝐊を省略
𝑥𝑤𝑝 𝑟31 + 𝑦𝑤𝑝 𝑟32 + 𝑧𝑤𝑝 𝑟33 + 𝑡3 𝑢𝑝 − (𝑥𝑤𝑝 𝑟11 + 𝑦𝑤𝑝 𝑟12 + 𝑧𝑤𝑝 𝑟13 + 𝑡1 ) = 0
𝑥𝑤𝑝 𝑟31 + 𝑦𝑤𝑝 𝑟32 + 𝑧𝑤𝑝 𝑟33 + 𝑡3 𝑣𝑝 − (𝑥𝑤𝑝 𝑟21 + 𝑦𝑤𝑝 𝑟22 + 𝑧𝑤𝑝 𝑟23 + 𝑡2 ) = 0
𝐀𝐬 = 0,
−𝑥𝑤𝑝 −𝑦𝑤𝑝 −𝑧𝑤𝑝
0
0
0
0
0
0
−𝑥𝑤𝑝 −𝑦𝑤𝑝 −𝑧𝑤𝑝
s = 𝑟11 𝑟12 𝑟13 𝑟21 𝑟22 𝑟23 𝑟31 𝑟32 𝑟33 𝑡1 𝑡2 𝑡3 𝑇 .
𝐀=
𝑥𝑤𝑝 𝑢𝑝
𝑥𝑤𝑝 𝑢𝑝
𝑦𝑤𝑝 𝑢𝑝
𝑦𝑤𝑝 𝑢𝑝
𝑧𝑤𝑝 𝑢𝑝
𝑧𝑤𝑝 𝑢𝑝
−1
0
0
−1
𝑢𝑝
,
𝑣𝑝
35
Direct Linear Transform
観測点が6点以上得られる場合
𝐀=
−𝑥𝑤1 −𝑦𝑤1
0
0
−𝑥𝑤2 −𝑦𝑤2
0
0
−𝑧𝑤1
0
−𝑧𝑤2
0
0
0
−𝑥𝑤1 −𝑦𝑤1
0
0
−𝑥𝑤2 −𝑦𝑤2
0
−𝑧𝑤1
0
−𝑧𝑤2
𝑥𝑤1 𝑢1
𝑥𝑤1 𝑢1
𝑥𝑤2 𝑢2
𝑥𝑤2 𝑢2
𝑦𝑤1 𝑢1
𝑦𝑤1 𝑢1
𝑦𝑤2 𝑢2
𝑦𝑤2 𝑢2
𝑧𝑤1 𝑢1
𝑧𝑤1 𝑢1
𝑧𝑤2 𝑢2
𝑧𝑤2 𝑢2
−1 0 𝑢1
0 −1 𝑣1
−1 0 𝑢2
0 −1 𝑣2
,
…
−𝑥𝑤𝑁
0
−𝑦𝑤𝑁
0
−𝑧𝑤𝑁
0
0
−𝑥𝑤𝑁
0
−𝑦𝑤𝑁
0
−𝑧𝑤𝑁
𝑥𝑤𝑁 𝑢𝑁
𝑥𝑤𝑁 𝑢𝑁
𝑦𝑤𝑁 𝑢𝑁
𝑦𝑤𝑁 𝑢𝑁
𝑧𝑤𝑁 𝑢𝑁
𝑧𝑤𝑁 𝑢𝑁
−1
0
0
−1
𝑢𝑁
𝑣𝑁
s = 𝑟11 𝑟12 𝑟13 𝑟21 𝑟22 𝑟23 𝑟31 𝑟32 𝑟33 𝑡1 𝑡2 𝑡3 𝑇 .
𝐀𝐬 = 0
𝐀は観測情報のみから成り、𝐬は未知パラメータから成る
SVD, 疑似逆行列等により解を得ることが可能
Direct Linear Transformの問題:
・回転行列の成分であるRが正規直交基底を満たさない
36
18
Image space errorの最小化による
6自由度カメラ位置・姿勢の決定
𝑦
(𝑥𝑤1 , 𝑦𝑤1 , 𝑧𝑤1 )
(𝑢1 , 𝑣1 )
𝑧
𝑥
𝑦
Image space error
カメラ座標
(𝑢𝑝 , 𝑣𝑝 )
画像平面
(𝑥𝑤𝑝 , 𝑦𝑤𝑝 , 𝑧𝑤𝑝 )
𝑥
世界座標
Image space error 𝑬𝒊𝒎 :
𝐸im
𝑥𝑤𝑝
𝑥𝑐𝑝
𝑦𝑐𝑝 = 𝐌𝑊𝑡𝑜𝐶 𝑦𝑤𝑝
= 𝑝{ 𝑢𝑝 − 𝑓𝑥𝑐𝑝 /𝑧𝑐𝑝 + 𝑣𝑝 − 𝑓𝑦𝑐𝑝 /𝑧𝑐𝑝 } ,
𝑧𝑤𝑝
𝑧𝑐𝑝
1
この問題は非線形最小化問題となるため、良い初期値が必要
2
2
37
*vSLAM/SFMでは、Re-projection error(再投影誤差)と呼ばれる
繰り返しによる
Image Space Errorの最小化
𝐸𝑖𝑚
DLT等により得られる初期値
局所解
局所解
大域最適解
0
𝐸im =
𝑝{
2
パラメータ
2
𝑢𝑝 − 𝑓𝑥𝑐𝑝 /𝑧𝑐𝑝 + 𝑣𝑝 − 𝑓𝑦𝑐𝑝 /𝑧𝑐𝑝 }
Levenberg-Marquardt法などを用いれば数回の繰り返しで最小値に到達
38
19
誤対応が存在する場合の対応
- ロバスト推定 • RANSAC
• 少数の点を繰り返しランダムにサンプリングし、inlier数
を最大化するモデルを選択する手法
• M-estimator
• 最小自乗法では、outlierの影響が極めて大きくなるた
め、例外値の重みを小さくするような誤差関数を用いる
方法
*inlier: 正しい対応点、outlier: 誤った対応点
39
RANSACによるカメラ位置姿勢推定
𝑦
inlier
Image space error
𝑥
カメラ座標
inlier
outlier
inlier
何らかの方法で、仮の対応点(2D-3D対)を決定する(tentative match)
仮の対応点群から、ランダムにn点を選択する
選択したn組の(2D-3D)点を用いてPnP問題を解くことで、カメラ位置・姿勢を推定する
推定したカメラ位置・姿勢を使って、全ての3D点を画像上に投影する。
投影点と画像上の2D点の間の距離(image space error)が閾値以上のものをoutlier,
それ以外をinlierとして、inlierの数を数える。
6. 2.~5.を繰り返し、inlier数が最大となるカメラ位置・姿勢を選択し、これによりoutlierを
排除する
40
1.
2.
3.
4.
5.
20
M-estimator(M推定)
𝐸im =
𝑝{𝑓
𝑢𝑝 − 𝑓𝑥𝑐𝑝 /𝑧𝑐𝑝 + 𝑓 𝑣𝑝 − 𝑓𝑦𝑐𝑝 /𝑧𝑐𝑝 }
𝑓(𝑥)
𝑓(𝑥) = 𝑥 2
𝑓 𝑥 =
𝑐2
𝑥
1− 1−
6
𝑐
2 3
𝑐2
6
𝑥 ≤𝑐
𝑜𝑡ℎ𝑒𝑟𝑤𝑖𝑠𝑒
𝑥
41
RANSAC / M-estimatorの特徴
• RANSAC
• 十分な繰り返し回数が確保されない場合、inlierを
outlierと判定し、処理が破綻する場合がある
• 仮の対応点に含まれるoutlierの割合が小さい場合、
outlierの影響を完全に排除することができる
• 特に誤対応が多いと想定される場合には、多くの繰り
返し回数を必要とし、処理に時間がかかる
• M-estimator
• outlierの影響を完全には排除できない
• 初期値をDLT等で与える場合、初期値がoutlierに影響
され、局所解に陥る可能性がある
42
21
人工マーカを用いた手法の問題
美観を損ねる場合がある
屋外等の広域環境にマーカを配置・維持することが難しい
43
自然特徴を用いた位置合わせ手法
特徴点
線特徴
シーン中に存在する、特徴点や線特徴を利用して位
置合わせを行う
44
22
自然特徴として何が使えるのか
• 特徴点 (輝度エッジのコーナー)
多くの環境に存在する
手動でのモデル化が比較的難しい
• 線特徴 (線状の輝度エッジ)
自然環境には少ない
手動でのモデル化が比較的容易
45
事前知識を用いた位置合わせ手法
- 三次元モデルを用いる手法
現実物体
CADモデル
現実物体またはシーンの三次元モデルをあらかじめCAD等により作成しておき、
幾何位置合わせに利用する
46
*T.Dummond et al.、Real-Time Visual Tracking of Complex Structures, PAMI, 2002
23
線特徴を用いた幾何位置合わせ
*
CADモデルを入力画像上に投影し、投影されたモデルの輪郭線と画像上の
輝度エッジの間の距離を最小化する (Visual Servo)
47
*T.Dummond et al.、Real-Time Visual Tracking of Complex Structures, PAMI, 2002
線特徴+点特徴を利用した手法(1/2)
*
* Luca Vacchetti et al., Combining edge and texture information
for real-time accurate 3D camera tracking, ISMAR 2004
48
24
線特徴+点特徴を利用した手法(2/2)
*
* Luca Vacchetti et al., Combining edge and texture information
for real-time accurate 3D camera tracking, ISMAR 2009
49
自然特徴点ランドマークを用いる手法
学習フェーズ
実践フェーズ
*
自然特徴点の三次元位置と
画像パターンを学習
CADモデル等を用いることなく
マーカレストラッキングを実現
50
* Y. Genc et al., Marker-less Tracking for AR: A Learning-Based Approach, ISMAR 2002
25
学習フェーズでSfMを用いる手法
• 全方位動画像
• 基準マーカの三次元位置,
画像上の座標
• 全方位カメラのカメラパス
• 自然特徴点の三次元位置
• 多重スケールの画像テンプレート
全方位動画像中の自然特徴点を追跡
Structure-from-motion法による
利用環境の三次元復元
*武富 貴史, 佐藤 智和, 横矢 直和: "拡張現実感のための優先度情報を付加した自然特徴点ランド
マークデータベースを用いた実時間カメラ位置・姿勢推定", 電子情報通信学会論文誌(D), Vol. J92-D,
51
No. 8, pp. 1440-1451, Aug. 2009.
ランドマークと自然特徴点の対応付けの結果
52
ランドマークと対応づいた自然特徴点の位置
52
26
マーカレスAR画像の生成結果
53
53
拡張現実感による
ユーザナビゲーション
検出されたランドマーク
ユーザに提示されるナビゲーション情報
54
27
カメラ位置・姿勢推定
に関するまとめ
• 三次元位置が既知の対象があれば、カメラ位置・
姿勢はPnP問題を解くことで推定可能
• 三次元位置が既知の対象としては、マーカ、三次
元モデル、SfM等により事前に復元した自然特徴
点の三次元位置、等が利用される
• 自然特徴点の三次元位置をリアルタイムで推定で
きれば、v-SLAMを実現可能
55
チュートリアル概要
1.
2.
3.
4.
5.
6.
7.
導入
v-SLAMの応用分野
カメラ位置・姿勢推定(Localization)
特徴点追跡と三次元位置推定(Mapping)
v-SLAMのアルゴリズム
様々な課題への対応
最新研究動向
56
28
自然特徴点の三次元位置推定
(Mapping)
推定される自然特徴点の三次元位置
Object Space Error
自然特徴点の
画像上の座標
Image Space Error
(Reprojection error: 再投影誤差)
カメラ位置・姿勢が既知、かつ特徴点の画像上の位置が既知の場
合、Object Space ErrorまたはImage Space Errorを最小化することで
57
特徴点の三次元位置を推定可能
特徴点の対応付け
(Tracking, Matching)
特徴点ベースのトラッキングの流れ
1. 特徴点の検出
2. 特徴量の抽出
3. 対応点の決定
4. 誤対応の排除
58
29
特徴点の検出
v-SLAMにおいて特徴点検出オペレータに求められる要件:
・抽出処理が高速であること
・繰り返し再現性(Repeatability)が高いこと
v-SLAMでは、一般に直前のカメラ位置・姿勢を利用するこ
とができるため、スケール不変性を考慮する必要はない
Shi-Tomasi, Harris, Fastなどの高速・軽量な検出器で十分
である場合が多い
59
v-SLAM手法で利用
されている特徴点・特徴量
特徴点
特徴量
PTAM
FAST
画素値そのもの
MonoSLAM
Shi-Tomasi
画素値そのもの
SVO
FAST with highest
Shi-Tomasi score in the cell
画素値そのもの
VideoMosaic
Shi-Tomasi
画素値そのもの
60
30
FAST特徴点 検出器
注目画素周辺の16画素の輝度値と、注目画素の輝度値の差に基づいて
3値化された16次元ベクトル(darker, similar, brighter)を作成し、あらかじめ
構築した決定木に基づいて特徴点かどうかを決定する手法
非常に高速に特徴点を検出することが可能
61
Shi-Tomasi 特徴点検出器
注目画素を中心とするウインドウ内の
輝度勾配ベクトルのヘッセ行列の固有
値分解により得られる最小固有値の値
に基づいてコーナーを決定する方法
𝑑𝐼
𝑑𝑦
第一固有ベクトル
𝑑𝐼
𝑑𝑥
第二固有ベクトル
第二固有値の値
輝度勾配
62
31
特徴量の抽出
v-SLAMでは、直前のカメラ位置・姿勢が既知である
ことから、特徴点周辺が平面であるとみなし、その
法線情報を推定・保持しておくことで、スケール変化、
回転、変形等について補正できる。
このため、比較的大きい変形にも対応可能なSIFT,
SURF等のリッチな特徴点抽出オペレータは用いられ
ず、画像テンプレートそのものを利用する場合が多
い。
63
対応点の決定・誤対応の排除
基本的には予測された範囲内の特徴点を対象に類
似度評価を行い、最も類似したものを探せばよい
対応点決定手法
誤対応排除手法
PTAM
Zero-mean SSD (Pyramid)
M-estimator in Bundle
adjustment
MonoSLAM
Normalized Cross
Correlation
Extended Kalman Filter
SVO
SSD
Probabilistic depth
Video mosaic
SSD
RANSAC
64
32
対応点の探索範囲の限定
カメラの動きについて、何らかの仮説が得られる場合には、それまでに推定
されている特徴点の三次元位置を仮のカメラ位置・姿勢を用いて画像上に
再投影することで、特徴点の出現位置を予測できる。
対応点の探索範囲
予想されるカメラ位置
また、この様な仮説が得られないとしても、画像間での最大視差を設定する
ことで、画像上での対応点の探索範囲を限定できる。
65
特徴点の三次元位置の決定:
Image space errorの最小化
(𝑥𝑤𝑝 , 𝑦𝑤𝑝 , 𝑧𝑤𝑝 )
(𝑢𝑝 , 𝑣𝑝 )
Image Space Error
(Reprojection error: 再投影誤差)
世界座標
Image space error 𝑬𝒊𝒎 :
𝐸im
𝑥𝑤𝑝
𝑥𝑐𝑝
𝑦𝑐𝑝 = 𝐌𝑊𝑡𝑜𝐶 𝑦𝑤𝑝
= 𝑝{ 𝑢𝑝 − 𝑓𝑥𝑐𝑝 /𝑧𝑐𝑝 + 𝑣𝑝 − 𝑓𝑦𝑐𝑝 /𝑧𝑐𝑝 } ,
𝑧𝑤𝑝
𝑧𝑐𝑝
1
Object space error, image space errorの順に最小化すれば
三次元位置は容易に求められる
66
2
2
33
特徴点追跡と三次元位置推定
に関するまとめ
• カメラ位置・姿勢が既知であれば、対応点を決定す
ることで特徴点の三次元位置は容易に決定可能
• V-SLAMの分野では、高速性が重視されるため、特
徴点検出オペレータとして、FAST等の軽量なものが
利用される
• 大きなパターンの変形を考える必要がなく、対応点
探索の範囲は限定可能であるため、単純な変形を
考慮したテンプレートマッチングが用いられる
67
チュートリアル概要
1.
2.
3.
4.
5.
6.
7.
導入
v-SLAMの応用分野
カメラ位置・姿勢推定(Localization)
特徴点追跡と三次元位置推定(Mapping)
v-SLAMのアルゴリズム
様々な課題への対応
最新研究動向
68
34
鶏(localization)が先か、
卵(mapping)が先か
カメラ運動を先に推定する手法
• Two-view SfM
初期位置でMAPを与える方法
• マーカ等併用型v-SLAM
同時に推定する方法
• bundle adjustment (良い初期値が必要)
69
v-SLAMアルゴリズムの分類
1) Two-view SfMの連結による手法
2) 順次復元による手法
3) TrackingとMappingの並列化による手法(PTAM)
4) Extended Kalman-filterによる手法
70
35
1) Two-view SfMの連結による手法
- エピポーラジオメトリ 𝒏
特徴点の組(𝒙0 , 𝒙1 )と、それらが作るエピポーラ平面𝐑には
以下の関係が成り立つ
𝒏 = 𝒕 × 𝐑𝒙0 = 𝒕 × 𝐑𝒙0
𝒙1𝑇 𝒏 = 0
71
基本行列(Essential matrix)
𝒏 = 𝒕 × 𝐑𝒙0
𝒙1𝑇 𝒏 = 0
𝒙1𝑇 𝒕 × 𝐑𝒙0 = 0 .
𝒕 × 𝐑 を 𝐄で置き換えると、以下の式が得られる
𝒙1𝑇 𝐄𝒙0 = 0 .
𝐄 = 𝒕 × 𝐑 は基本行列と呼ばれる。
𝐄は (𝒙0 , 𝒙1 )の組が5点以上あれば推定できる。
*D. Nister: “An efficient solution to the five-point relative pose problem”, PAMI,
26(6):756-770, 2004
72
36
SVD(特異値分解)による
基本行列の分解
𝐄を特異値分解することで、 𝐄 = 𝐔𝚺𝐕 𝐓 のように3つ
の行列の積に分解できる。ここで、𝐔と𝐕は正規直交
行列。 𝒕 × とRは、以下の式で得られる
𝒕
×
= 𝐔𝐙𝐔 T , 𝐑 = 𝐔𝐖𝐕 T 𝐨𝐫 𝐔𝐖 T 𝐕 T ,
ただし、
0 1 0
0 −1 0
𝐙 = −1 0 0 , 𝐖 = 1 0 0
0 0 0
0 0 1
73
Two-view SfMによる推定結果の連結
1. 基本行列の分解により、画像ペアの相対運動
を推定
𝐌1→2
Image 1
Image 2
𝐌2→3
Image 2
Image 3
𝐌=
𝐑
𝟎
α𝐭
1
2. 推定結果を連結
Image 1
Image 3
𝐌1→3 =𝐌2→3 𝐌1→2
Image 2
ここで、スケールの不定性を解決するためには、3画像上に
共通して観測可能な点が最低一点必要となる
74
37
Two-view SfMの
連結による手法の問題
• カメラ間の距離が短く、画像上での物体の見かけの動き
が小さい場合、特に並進ベクトル𝐭の推定結果が不安定
となりやすい
• 複数画像から共通して観測できる点が少ない場合には
誤差の蓄積が早い
解決方法
• ビデオ映像に適用する場合には、フレームを間引く等に
より、十分なベースライン距離を確保する
• ただし、ベースライン距離を離しすぎると、対応点探索が
難しくなる
75
蓄積誤差の問題
1% scale error
1% scale error 1% scale error
Image 100
Image 1
Image 3
Image 4
Image 2
仮に+1%の偏ったスケール誤差が常に与えられた場合、 100フ
レーム後のスケール誤差は、1.01100 = 2.70 = 270% となる
76
38
蓄積誤差を抑えるためには?
Image 100
Image 1
Image 3
Image 4
Image 2
・ 多数の地点から観測可能な共通の特徴点が存在する場
合、誤差の蓄積を抑える事が可能となる
・ できる限り同一の特徴点を長く追跡できることが望ましい77
Bundle adjustment
S p  ( x, y , z )
𝐌𝑖
𝐸reprojection =
𝑢𝑖𝑝 − 𝑢𝑖𝑝 ′
𝑖
2
+ 𝑣𝑖𝑝 − 𝑣𝑖𝑝 ′
2
𝑝
𝑢𝑖𝑝 , 𝑣𝑖𝑝 : 特徴点𝑝のフレーム𝑖における画像座標
𝑢𝑖𝑝 ′, 𝑣𝑖𝑝 ′ : 特徴点𝑝の三次元位置をフレーム𝑖に投影した投影座標
カメラ外部パラメータ 𝐌𝑖 と三次元位置 𝐒𝑝 をパラメータとして、再投影誤差の総
和を最小化することで誤差の蓄積を抑止
78
39
2) 順次復元によるv-SLAMの実現
新たに観測される特徴点の三次元位置を復元し、
信頼度の高いものはmapに追加する
Two-view SfM
による復元
Image 1
三次元位置を復元済みの特
徴点が観測できる限り、PnP
問題を解くことでカメラ位置
を推定可能
Image 2
Two-view SfMで初期の三次元復元を行い、以降特徴点の三次元位
置推定、カメラ位置推定を繰り返すことで、推定を継続できる 79
逐次復元によるv-SLAMの流れ
Two-view SfMによる初期推定
フレーム毎の処理
特徴点の追跡
カメラ位置・姿勢の推定
特徴点の三次元位置の推定
特徴点の追加
(option) Local / Global bundle adjustment
80
40
Bundle adjustmentの効果
81
順次復元によるv-SLAMの特徴
• 単純なアルゴリズムではあるが、それなりに動く
• 誤差の蓄積があるが、多数のフレームに渡って特
徴点の追跡を行うことで、一定レベルまでは抑止
できる
• Bundle adjustmentを併用することで、更に誤差の
蓄積を低減可能だが、何らかの工夫なしには処理
の実時間性は失われる
• 基本的には再投影誤差を逐次最小化しているの
で、Global bundle adjustment / SfMの初期値として
の性質は良い
82
41
3)TrackingとMappingの並列化
による手法
• MappingとTrackingを並列かつ非同期に行うことで、実時間処理を
実現しながら蓄積誤差の解消を図る手法
• キーフレームのみを最適化の対象とすることで、処理を効率化
Mapping thread
Tracking thread
two-view SfMによる初期化
特徴点の対応付け
カメラ位置・姿勢の推定
キーフレームを対象とした
Bundle adjustment
+
マップ点の追加
キーフレームの追加
83
PTAMの詳細
• Key-frameの画像のみを保持
• Key-frame画像はピラミッド画像として保存
• 特徴点のテンプレート画像は個別に保存せず、特徴点が最初
に観測されたキーフレーム上の座標を保存
• 特徴点の対応づけは、粗密的に実行
(1) 広めの探索範囲で50点対応づけ
(2) カメラ位置・姿勢推定
(3) 狭い探索範囲で1000点再投影・対応づけ
(4) カメラ位置・姿勢更新
• 特徴点の対応数の割合が一定を下回った場には合、マップへ
のkey-frameの追加を実行しない
• 新たなキーポイントの追加は、キーフレーム間でのエピポーラ
制約を用いた対応点探索と三角測量により実現
84
42
PTAM(Parallel Tracking and Mapping)
G. Klein et al., Parallel Tracking and Mapping for Small AR Workspace, ISMAR 200785
4)Extended-Kalman-Filterによる手法
EKFの枠組みにより現在のカメラ位置姿勢・移動速度と特徴点の三次元位置
を格納したステートベクトルの状態予測・更新を繰り返す手法
https://www.youtube.com/watch?v=mimAWVm-0qA
86
A. Davison, et al., “MonoSLAM: Real-Time Single Camera SLAM”, PAMI, Vol.29, No.6, 2007
43
MonoSLAMの概要・特徴
・EKFの予測・更新を繰り返すことで、カメラ位置と特徴点の三次元
位置を推定
・何らかの指標を用いたステートベクトルの初期化が必要
・予測におけるモーションモデルとして、一定速度の運動を仮定
・小数の特徴点が長時間観測されることを前提としている
長所
・複数センサ情報を扱うことが容易
短所
・観測情報を用いた最適化ができないため、誤差の蓄積が起こる
・共分散行列が巨大となるため大量の特徴点を扱うことは難しい
87
v-SLAM / SfMにおける精度向上
のためには?
(a)
(b)
(c)
(d)
(e)
カメラの画角を広げる(可能なら全方位カメラ)
特徴点を空間的に広く配置する(2D/3D双方)
特徴点の追跡精度を高める
推定に用いる特徴点の数を増やす
撮影対象までの距離を短くする(絶対位置推
定精度が重要な場合)
88
44
チュートリアル概要
1.
2.
3.
4.
5.
6.
7.
導入
v-SLAMの応用分野
カメラ位置・姿勢推定(Localization)
特徴点追跡と三次元位置推定(Mapping)
v-SLAMのアルゴリズム
様々な課題への対応
最新研究動向
89
v-SLAMにおける
スケールの不定性
上記の国会議事堂のミニチュアモデルと、本物の国会議事堂
は、全くサイズが異なるが、画像上の見かけ(ここでは特徴点の
位置)は同じにすることができる
本質的に、画像のみから対象のスケール情報を復元することは
できないため、何らかの外部指標が必要
90
45
絶対位置の決定
マップがその場で構築されるため、位置に依存した情報
サービスの提供には、何らかの事前指標が必要となる
*T.Lee et al., Initializing Markerless
Tracking Using a Simple Hand Gesture,
ISMAR 2007
*R. Castle et al., Video-rate Localization in
Multiple Maps for Wearable Augmented
Reality, ISWC, 2008
91
蓄積誤差の問題・追跡失敗の問題
• Loop closing・re-localization
推定されたカメラの動き
真のカメラの動き
基本的な処理の流れ
1. 類似画像探索により同一地点を検出
2. 画像間で対応点を決定
3. 全体での最適化処理
92
46
データ量の削減、高速化
• Key frame based reconstruction
全ての画像を保持する代わりに、一定の基準によって
キーフレームを選別し、キーフレームのみを利用して三
次元復元をしようとする方法
• GPU、並列計算(マルチコア)の利用
• 時間での計算打ち切り方式の採用
• 粗密探索的アプローチの採用
93
チュートリアル概要
1.
2.
3.
4.
5.
6.
7.
導入
v-SLAMの応用分野
カメラ位置・姿勢推定(Localization)
特徴点追跡と三次元位置推定(Mapping)
v-SLAMのアルゴリズム
様々な課題への対応
最新研究動向
94
47
Direct methodとは
Feature / key-point based method
• 特徴点のみを利用し、それ以外の情報は利用し
ない
Direct method
• 特徴点に限定せず、(可能なら)全ての画素の三次
元情報を利用した位置合せを行う
• 基本的には、photo consistencyを高めるようにカメ
ラ位置・姿勢を推定する枠組み
95
SVO: Fast Semi-Direct Monocular
Visual Odometry
https://www.youtube.com/watch?v=2YnIMfw6bJY
96
48
DTAM: Dense Tracking and Mapping in
Real-Time
https://www.youtube.com/watch?v=Df9WhgibCQA
97
LSD-SLAM: Large Scale Direct
Monocular SLAM
https://www.youtube.com/watch?v=GnuQzP3gty4
98
49
まとめ
• vSLAMの基本は、特徴点のトラッキング、カメラ位
置・姿勢・三次元位置推定、最適化処理の繰り返し
• 高速化のための様々な工夫があるが、リアルタイ
ム処理には実装テクニック自体もかなり重要
• 研究分野の関心は、特徴点だけでなくより密な画
素値情報を利用するDirect methodに移りつつある
• 現状OpenCVや他のオープンソースプロジェクトが
多数公開されており、特徴点ベースのvSLAMの研
究・開発に対する敷居はかなり低くなっている
99
OpenCV3.0内の使えそうな関数
Localization
•
•
•
•
•
solvePnP, solvePnPRansac
findFundamentalMat, findEssentialMat,
decomposeEssentialMat
recoverPose
Rodrigues
Tracking, Mapping
• triangulatePoints
特徴点検出
• SIFT, FAST, SURF
他多数
これらの組み合わせで簡単なvSLAMを構築することは比較
的容易
100
50
Tracking Competition
ISMAR2015(9月福岡開催)でvisual SLAMを対象とした
competitionを実施予定
下 記 Tracking Competition ペ ー ジ に 、 OpenCV と Ceres
solverの組み合わせで構成されたvisual SLAMのサンプ
ルコードが掲載される予定
http://ypcex.naist.jp/trakmark/tracking-competition/
初心者をターゲットとした電子情報通信学会PRMUアル
ゴリズムコンテストとしてのvSLAMコンペティションの共
催も予定
101
Open Source Projects:
Loop Closure detector:
• OpenFABMap: https://code.google.com/p/openfabmap/
Bundle Adjustment
・ SBA: http://users.ics.forth.gr/~lourakis/sba/
・ Ceres solver: http://ceres-solver.org/
Visual SLAM
・PTAM: http://www.robots.ox.ac.uk/~gk/PTAM/
・PTAMM: http://www.robots.ox.ac.uk/~bob/research/research_ptamm.html
・SVO: https://github.com/uzh-rpg/rpg_svo
・LSD SLAM: http://vision.in.tum.de/research/lsdslam
・Open DTAM: https://github.com/anuranbaka/OpenDTAM
102
51
参考文献
• 特徴点抽出
FAST: E. Rosten and T. Drummond. Machine learning for high-speed corner detection. In Proc.
9th European Conference on Computer Vision (ECCV’06), Graz, May 2006.
Shi-Tomasi: J. Shi and C. Tomasi, “Good features to track,” in Proceedings of the IEEE
Conference on Computer Vision and Pattern Recognition, pp. 593–600, 1994.
• v-SLAMアルゴリズム
PTAM: G. Klein et al., Parallel Tracking and Mapping for Small AR Workspace, ISMAR 2007
monoSLAM: A. Davison, et al., “MonoSLAM: Real-Time Single Camera SLAM”, PAMI, Vol.29,
No.6, 2007
SVO: C. Forster, M. Pizzoli, D. Scaramuzza, “SVO: Fast Semi-Direct Monocular Visual
Odometry”, ICRA, 2014
DTAM: R. Newcombe, S. Lovegrove and A. Davison, “DTAM: Dense Tracking and Mapping in
Real-Time”, ICCV, 2011
LSD-SLAM: J. Engel, T. Schöps, D. Cremer: “Large-Scale Direct Monocular SLAM“, In European
Conference on Computer Vision (ECCV), 2014
103
52