カメラを搭載した移動ロボットによる 画像列を用いた物体の3次元形状

筑波大学大学院博士課程
システム情報工学研究科修士論文
カメラを搭載した移動ロボットによる
画像列を用いた物体の3次元形状モデリング
山崎 公俊
(知能機能システム専攻)
指導教官 坪内 孝司
2004 年 1 月
概要
本論文は、移動ロボットによる物体の3次元形状モデリングに関するものである。実環境に
存在する物体の正確な位置・形状・スケールに関する情報を持たない状態から、正確な3次元
形状モデルの獲得を、移動ロボットが走行しながら自律的におこなう。(1) ロボットが走行し
ながら可能な高速でロバストな処理、(2) ロボットの経路計画を同時におこなうことを考慮し
た逐次的な処理、(3) 簡便なセンサである単眼カメラを用いた画像列のみによる処理、といっ
た特徴を持つ形状モデリング手法を提案する。
本研究では、ロボットの動作を以下の2段階に分けている。
• 対象物の発見
• 対象物の形状モデリング
形状モデリングの対象物は未知であるため、対象物の発見処理では、環境中に存在する複
数の物体の中から、移動ロボットが自律的にモデリングの対象物を特定する。対象物の形状
モデリングでは、特定された物体に対し 、その詳細な形状情報を得る。これらの処理では、コ
ンピュータビジョンの分野で提案されている種々の手法を適切に組み合わせ、ロボットが実
環境で動作するが故に発生する様々な誤差に対処できるようなアルゴ リズムを構築する。
移動ロボット「山彦」に単眼カメラを搭載した実験システムを構成し 、実際にロボットを
走行させながら取得した画像列を用いて実験をおこない、提案する形状モデリング手法の有
効性を示す。
目次
第 1 章 序論
1.1 背景 . . . . . . . . . . . . .
1.2 目的 . . . . . . . . . . . . .
1.3 関連研究 . . . . . . . . . . .
1.3.1 3次元形状復元 . . .
1.3.2 マップ構築 . . . . .
1.4 本論文の構成 . . . . . . . .
1.5 本論文で用いる用語について
第2章
2.1
2.2
2.3
2.4
本研究の方針
ロボットシステム
対象物の条件 . .
課題 . . . . . . .
アプローチ . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
第 3 章 処理の方法
3.1 画像と空間 . . . . . . . . . . . . . . . .
3.1.1 座標系の表現 . . . . . . . . . . .
3.1.2 カメラの投影モデル . . . . . . .
3.1.3 画像上の点と空間上の点 . . . . .
3.1.4 エピポーラ幾何 . . . . . . . . . .
3.2 画像からの情報取得 . . . . . . . . . . .
3.2.1 特徴点の抽出・追跡 . . . . . . .
3.2.2 色情報の利用 . . . . . . . . . . .
3.3 コンピュータ・ビジョン手法 . . . . . . .
3.3.1 モーションステレオ . . . . . . .
3.3.2 因子分解法 . . . . . . . . . . . .
3.3.3 非線形最小化 . . . . . . . . . . .
3.3.4 Space Carving . . . . . . . . . . .
3.4 本研究でのカメラの位置・姿勢表現 . . .
3.4.1 ロボットとカメラのシステム構成
3.4.2 カメラ視点の位置・姿勢表現 . .
i
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
2
2
3
4
4
.
.
.
.
6
6
9
9
10
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
12
12
12
13
15
15
16
17
18
20
20
20
21
21
22
22
22
3.4.3
パン・チルトカメラのための回転行列表現 . . . . . . . . . . . . . . .
第 4 章 対象物の発見
4.1 課題とアプローチ . . . . . . . . . . . . .
4.2 実環境での問題点と対処 . . . . . . . . .
4.2.1 不要な特徴点への対処 . . . . . .
4.2.2 移動ロボットの測位誤差への対処
4.3 対象物の発見アルゴ リズム . . . . . . . .
4.4 アルゴ リズムの高速化・高精度化 . . . .
4.5 基礎実験 . . . . . . . . . . . . . . . . . .
4.5.1 実験方法 . . . . . . . . . . . . . .
4.5.2 評価 . . . . . . . . . . . . . . . .
23
.
.
.
.
.
.
.
.
.
25
25
26
26
28
31
32
34
34
35
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
39
39
41
41
43
44
44
45
46
48
48
48
48
49
53
53
55
55
55
57
第 6 章 統合に向けて
6.1 画像の取捨選択 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 ロボットの動作計画 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
67
67
67
第7章
68
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
第 5 章 対象物の形状モデリング
5.1 課題とアプローチ . . . . . . . . . . . . . . . . .
5.2 実環境での問題と対処 . . . . . . . . . . . . . .
5.2.1 KLT-Tracker の改良 . . . . . . . . . . . .
5.2.2 RANSAC の利用 . . . . . . . . . . . . .
5.3 対象物の密な形状復元 . . . . . . . . . . . . . .
5.3.1 アフィン不変量を利用した密な形状復元
5.3.2 Voxel 空間への統合 . . . . . . . . . . . .
5.3.3 Space Carving による形状の補正 . . . . .
5.4 形状モデリングアルゴ リズムの統合 . . . . . . .
5.4.1 統合アルゴ リズムの構成 . . . . . . . . .
5.4.2 前提条件 . . . . . . . . . . . . . . . . . .
5.4.3 初期フェーズ . . . . . . . . . . . . . . .
5.4.4 逐次フェーズ . . . . . . . . . . . . . . .
5.4.5 最終フェーズ . . . . . . . . . . . . . . .
5.4.6 提案方式のポイント . . . . . . . . . . .
5.5 基礎実験 . . . . . . . . . . . . . . . . . . . . . .
5.5.1 実験方法 . . . . . . . . . . . . . . . . . .
5.5.2 カメラの注視制御 . . . . . . . . . . . . .
5.5.3 評価 . . . . . . . . . . . . . . . . . . . .
まとめ
ii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
付録A
A.1
A.2
A.3
A.4
A.5
コンピュータビジョン手法
モーションステレオ . . .
因子分解法 . . . . . . . .
本研究での因子分解法 . .
非線形最小化 . . . . . . .
エピポーラ幾何 . . . . . .
付録B
カメラキャリブレーション
82
付録C
KLT-Tracker の特徴点追跡・抽出方法
84
付録D
L*a*b*表色系の変換式
86
参考文献
86
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
70
71
73
76
78
81
図目次
2.1
2.2
2.3
2.4
ロボットシステム . . . .
パン・チルトカメラ . .
画像処理モジュール . .
ロボットの動作イメージ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
8
8
10
3.1
3.2
3.3
3.4
3.5
3.6
座標系の定義 . . . . . . . . . . . .
カメラモデル . . . . . . . . . . . .
エピポーラ幾何 . . . . . . . . . . .
画像 . . . . . . . . . . . . . . . . .
KLT-Tracker による特徴点追跡の例
L*a*b*表色系による床面除去の例 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
14
16
17
18
19
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.11
4.12
クラスタリングによる対象物の特定 . . . . . . . . . . .
環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ロボット上から取得した画像 . . . . . . . . . . . . . . .
特徴点の3次元復元結果( 視点は床面から垂直な方向)
対象物の発見アルゴ リズム . . . . . . . . . . . . . . . .
発見処理とデータの流れ . . . . . . . . . . . . . . . . .
対象物の発見の実験環境 . . . . . . . . . . . . . . . . .
取得画像と特徴点抽出 . . . . . . . . . . . . . . . . . .
モーションステレオによる結果 . . . . . . . . . . . . .
不要な特徴点を除去した結果 . . . . . . . . . . . . . . .
非線形最小化により補正した結果 . . . . . . . . . . . .
クラスタリングにより対象物が発見された結果 . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
27
29
29
30
32
33
35
36
37
37
38
38
5.1
5.2
5.3
5.4
5.5
5.6
5.7
特徴点の追加抽出 . . . . . . . .
対象物発見後のロボットの動き
セルフオクルージョンの影響 . .
KLT-Tracker の改良 . . . . . . .
KLT-Tracker の追跡ミス . . . . .
アフィン不変量 . . . . . . . . .
Voxel 空間への統合 . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
40
41
42
43
44
45
46
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
iv
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.8
5.9
5.10
5.11
5.12
5.13
5.14
5.15
5.16
5.17
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
Space Carving . . . . . . . . . . . . . . .
モーションステレオの原理 . . . . . . . .
アフィン基底の生成 . . . . . . . . . . .
提案アルゴ リズムのポイント . . . . . . .
形状モデリングアルゴ リズム . . . . . . .
ロボットの走行経路 . . . . . . . . . . .
システム構成 . . . . . . . . . . . . . . .
ロボットの走行経路 . . . . . . . . . . .
全周囲画像の例 . . . . . . . . . . . . . .
特徴点の抽出・追跡 . . . . . . . . . . .
初期フェーズでの特徴点追跡結果 . . . .
特徴点の入れ替わり . . . . . . . . . . .
形状モデリングの改良(1) . . . . . . .
形状モデリングの改良(2) . . . . . . .
カメラ位置・姿勢と特徴点の3次元位置
最終フェーズの結果 . . . . . . . . . . .
対象物(グローブ )の画像列 . . . . . . .
対象物(グローブ )のモデリング結果 . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
47
51
52
53
54
55
56
57
58
59
60
61
62
62
63
64
65
66
B.1 キャリブレーションツール . . . . . . . . . . . . . . . . . . . . . . . . . . . .
83
v
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
第 1 章 序論
1.1
背景
オフィスや一般家庭などの実環境で動作する移動ロボットには、周囲をとりまく環境を観
察することで、行動を決定し実行することが求められる。現在、様々な技術の発達により、複
雑な機構や能力を持つロボットが、我々の普段生活する実環境に浸透するようになってきた。
特に、家庭やオフィスなどの環境では、掃除ロボット、警備ロボットなど 、様々な役割を果た
す実用的なロボットが登場している。あるいは、愛玩性の高いペットロボットも種々販売さ
れている。これらのロボットはいずれも、人間や環境とのインタラクションをおこなう機能
を備えており、また人間が常に操作する必要はなく、ロボットが自身の行動を決定する、す
なわち自律性を有している。このインタラクションと自律性の機能は、移動ロボットにとっ
て非常に重要な要素であり、これらの機能を我々の生活の中でさらに生かすことができれば 、
様々な事柄に役立つロボットの実現が期待できる。
一方で、現状で一般家庭やオフィスなどの実環境に存在するロボットの機能を考えてみる
と、環境中の物体を操作できるロボット、例えば 、引き出しやド アの開閉などが可能なロボッ
トや、部屋の中に散乱した物体を所定の場所に戻して整理整頓をおこなうロボットは未だに
例を見ず、ロボット研究の世界であっても、これらの動作の実例は都合よく整理された環境
を対象とした場合に限られている。工場などで物体を操作し作業をおこなう据え付け型のロ
ボットが発展してきたことと比較し 、普段の生活環境で動作するロボットは、環境へのイン
タラクションの機能、すなわち物体を操り人間に有益な作業をおこなう機能において、まだ
まだ我々の要求を満たしていないと言える。
この際に欠くことができない言葉は、
「実環境」である。我々人間は普段、流動的で多種多
様な、沢山の物体の存在する環境で生活しているが 、この「実環境」は、ロボットが周囲に
インタラクションをおこなうには過酷な環境である。ロボットは非常に大量の環境情報から
自分に必要な情報のみを抽出する必要があり、また抽出した情報に対し自分がどんな行動を
取るべきかを判断しなければならない。このような問題は、ロボット工学の技術や理論、ま
た計算機が発展した現在でも、困難な課題として残っている。
筆者は、実環境において物体をひろいあげ、操作し 、人間に有益な作業をおこなう自律ロ
ボットの実現に興味がある。しかしこれには、上述したような実環境における困難さが大き
な課題となる。すなわち、多くの物体が存在する実環境から、ロボットが操作したい物体は
何なのか、その物体はどこにあるのか、どんな形をしているのか、といった知識がなければ 、
物体への働きかけをおこなう自律ロボットは実現できない。
本研究は、実環境で物体へインタラクションをおこなう自律ロボットの実現を目指し 、環
1
境中を動作するロボットが 、物体に関する情報を自律的に収集するという、重要かつ困難な
課題に挑むものである。
1.2
目的
本研究ではロボットに、対象物の位置や形状が未知の状態から、実環境中の物体の詳細な
3次元形状モデリングを自律的におこなわせることを目的とする。
ロボットが環境中の物体の3次元形状モデルを持つことは、その物体に対する直接的な操
作や、またその物体の認識といった詳細な環境理解を可能にし 、ロボットの行動能力の向上
に欠かせない重要な要素だと考えられる。従来の研究では、あらかじめ物体の形状モデルを
定義しておき、実環境を移動するロボットがそれらの物体を操作しながら動作する例 [10][22]
や、環境中のナビゲーションに役立てる例が存在している [9][13][29][33][41][44][45]。
しかし 、我々が普段生活している実環境には非常に多くの物体が存在しており、またその
環境は時々刻々と変化していく。このような状況で、ロボットに日常の作業をおこなわせる
ことを考えた場合、必要な物体全ての形状モデルをあらかじめ持たせておくことは非常に困
難であり、ロボットが動作する環境に新たに出現した物体に対しては、形状モデルを逐一与
えなければならない。すなわち、ロボットが自律的に物体のモデルを生成することは、実環
境で動作する移動ロボットには有用な機能である。
これらの理由から本研究では、移動ロボットが自律的に、実環境に存在する物体の形状モ
デルを生成する機能を開発することを目指す。外界センサとしては、得られる情報量が多く、
小型・軽量で移動ロボットへの搭載に適した単眼カメラを用いて、取得した画像列から対象
物の形状モデリングをおこなわせることを目指す。
1.3
関連研究
1.3.1 3次元形状復元
センサ情報から物体の形状モデルを得る方法としては、カメラから得た画像データを用い
て、物体の3次元形状を復元する研究が 、コンピュータビジョンの分野で非常に盛んにおこ
なわれている [17][20][32][39]。本研究での3次元形状モデリングは、ロボットに搭載したカ
メラより得た画像列を用いており、この分野の手法や考え方に因るところが大きい。一方で、
従来の研究例と比較し 、以下の3項を全て満たすような困難な問題設定でモデリングを実現
しているところに特徴がある。
• 画像列のみから、カメラの位置・姿勢を推定し 、対象物の密な形状を獲得する。
• 実環境を背景とするため、モデリングの対象物以外の物体が周囲に存在する。
• 対象物にはマーカなどをつけず、正確な大きさ、位置、形状の事前知識を持たせない。
2
移動カメラから得た複数の画像データから、物体の疎な3次元形状と、カメラの位置・姿
勢を得るアプローチは、SFM( Structure from Motion )問題として知られ、様々な手法が提案
されている。因子分解法 [2][21] は、多数枚の画像より抽出・追跡した多数のテクスチャの対
応情報から、カメラの位置・姿勢と対象物の疎な3次元形状を同時に獲得でき、誤差にもロ
バストであるため、非常に強力な手法として知られている。この手法は本来、カメラモデル
を平行投影モデルに線形近似することで得られる条件により、画像特徴点を並べた行列を因
子分解し 、カメラの姿勢と特徴点の3次元座標を算出するものであった。その後様々な研究
により手法の拡張が提案され、カメラモデルを弱透視投影や、透視投影モデルに拡張した例
[5][47][48]、逐次型の例 [3] 、広範囲から取得した画像を対象とした例 [26] など 、SFM 問題を
解くための代表的な手法となっている。また、エピポーラ幾何を用いた手法 [12][55] は、射
影幾何学の立場から、2枚の画像間でのテクスチャの対応情報を利用して、カメラの位置・姿
勢と、物体の疎な形状を幾何学的な近似を含まずに求めることができる。ここでは、カメラ
の焦点距離などの内部パラメータの情報が無くても、線形近似を含まない物体の形状が復元
できることが示されており [39]、この考え方は透視投影モデルに基づく因子分解法などにも
応用されている。その他にも、オイラー角推定を利用した方法 [18]、カルマンフィルタを用
いた方法 [23]、PnP 補正 [35] など 、様々なアプローチが提案されている。
また、カメラ位置・姿勢が既知である条件から、物体の密な形状を復元する手法として、相
関ステレオ法や、Voxel を用いた方法が提案されている。Okutomi らは、マルチベースライン
ステレオ法 [30] を提案し 、カメラの位置・姿勢が既知の画像列から、対象の詳細な形状を求
めている。Seitz らは、Voxel Coloring[38] を提案し 、カメラの位置・姿勢が既知の多視点色画
像から、物体を小さな立方体の集まりとして表現した。現在では、Voxel Coloring の拡張とし
て、Space Carving[27]、Generated Voxel Coloring[57]、などが提案されている [24][34][54]。
最近では、種々の手法を統合して、カメラの動きデータが未知の画像列から物体の密な形
状を復元する研究もおこなわれている。Sato らは、あらかじめ指定したマーカと自動で追跡
した画像特徴点からカメラの位置・姿勢を求め、それらを元にマルチベースラインステレオ
法、Voxel 空間への統合をおこない、屋外環境の密な3次元形状モデルを生成した [43]。Sainz
らは、透視投影モデルに基づく因子分解法により求めたカメラの位置・姿勢を用いて、Space
Carving をおこない、密な形状を得た [37]。本研究の形状モデリングもこれらの統合の研究に
類するものである。
1.3.2 マップ構築
移動ロボットに搭載したセンサ情報を基に、未知の環境において地図を生成するマップ構
築の研究がおこなわれている。本研究とは、生成するものが環境の局所的な部分である物体
の形状モデルか、大域的な環境地図かが異なるが 、基本的には未知の外界情報を獲得し復元
する点において、同じアプローチと言える。
ロボットの動作モデルと、搭載したセンサから得たデータを基に、ロボットのポジショニ
ングと環境地図の構築を同時におこなう SLAM(Simultaneous Localization And Mapping) は、
3
近年特に盛んな研究分野である。Thrun らは、LRF(Laser Range Finder) から得た2次元の距
離データを用いて、2次元もしくは3次元の屋内外の環境マップの構築に成功している [46]。
同様の研究例も多く存在している [15]。また、環境中の個々の物体の形状モデルをあらかじ
め定義しておき、ロボットがその環境を走行しながら物体によるマップを生成する例もある
[44][45]。環境の大域的な情報を獲得することができ、ロボットのナビゲーションなどの目的
に適した環境情報が取得できる。
これらの研究例は、未知、もし くは断片的な情報しか持たない状態から、周囲の環境の情
報を獲得している点で、本研究と関連がある。一方、マップは環境の大域的な情報であり、ナ
ビゲーションなどには有用であるが 、個々の物体の操作などを目的とした場合、不十分であ
る。本研究では、物体操作などが可能な情報の取得を目的とし 、環境を局所ごと、すなわち
物体単位で獲得する。
1.4
本論文の構成
第2章以降の構成は、以下のようになっている。第2章では、3次元形状モデリングを移
動ロボットにおこなわせる際の、本研究の方針について述べる。第3章では、本研究で用い
る画像列を用いた処理手法について、要素技術を説明する。第4章では、形状モデリングを
おこなうための対象物の特定方法について、
「対象物の発見」としてまとめ、手法の詳細と、
アルゴ リズムについて述べる。第5章では、発見した対象物について、その精密な形状モデ
ルの生成方法について、
「対象物の形状モデリング」としてまとめ、手法の詳細とアルゴ リズ
ムについて述べる。第6章では、実験をおこなった結果について報告し 、提案手法の有効性
を示す。第7章はまとめである。
なお、本研究で用いているコンピュータビジョン手法の概要は第3章で説明しているが、詳
細な数式表現などについては、付録を参照されたい。
1.5
本論文で用いる用語について
本論文での用語について、定義を説明する。
3次元形状モデリング
物体の形状、姿勢、スケールを3次元の電子データとして再現すること。
オクルージョン・セルフオクルージョン
オクルージョン(隠蔽)とは、取得した画像に、ある物体が他の物体の影になって投影
される現象。また、セルフオクルージョン(自己隠蔽)とは、別の視点から見えていた
物体のある部分が、視点を移動したことで他の部分の影になり見えなくなる現象を指す。
オド メト リ
車輪型移動ロボットの車輪の回転数の累積に基づくロボットの自己位置推定法。
4
動作モデル
本研究においては、オド メトリと、カメラのパン・チルト角を含めて表されるロボット
の位置・姿勢とする。
5
第 2 章 本研究の方針
筆者は、車輪型移動ロボットに搭載したセンサから得た情報を用いて物体の形状モデルを生
成し 、その物体に対しひろいあげや操作などの働きかけをおこなうことに興味がある。以降、
本論文では、モデリングの対象とする物体を「対象物」と称する。
2.1 ロボットシステム
第1章で述べたように、本研究では、物体操作などを考慮した高精度な形状モデリングを
目的とする。また、移動ロボットによってシステムを構成するため、外界センサは小型・軽
量なものが望まれる。これらを踏まえ、実験システムを構成した。構成したロボットを図 2.1
に示す。車体部分は、筆者が所属する筑波大学知能ロボット研究室において開発された車輪
型移動ロボット「山彦」である。センサとして、2自由度の角度可変機構を有するパン・チ
ルトカメラ( Canon VC-C4 、有効画素数 38 万画素、図 2.2 )を搭載する。車体やカメラから
データを獲得し処理するシステムには2世代あり、4章で用いるシステムでは、オド メトリ
や画像取得、取得した画像列の処理を全てデスクトップ PC 上でおこなう。ロボットとデスク
トップ PC は有線でつながれている。5章で用いるシステムでは、オド メトリ取得やカメラ
のパン・チルト角の制御にはロボットに搭載したノート PC を用い、画像は HITACHI 製の画
像処理モジュール IP7500(図 2.3 )により取得する。取得した画像列の処理は、デスクトップ
PC にてオフラインでおこなう。
山彦の走行部は、左右の動輪を独立に制御する PWS( Power Wheel Steering)方式のノンホ
ロノミックな車両である。走行中のロボットの位置・姿勢については、オド メトリと呼ばれ
る自己位置推定手法を用いて、並進成分 (tx , ty ) を mm 単位で、姿勢 (ψrobot ) を 1 度単位で得
ることができる。カメラの稼働範囲について、パン角は左右 100 度、チルト角は上方向に 90
度、下方向に 30 度である。これらの角度制御は、シリアル通信を介して 1 度単位でコマンド
を送ることができ、視点を上下・左右に変更することが可能である。また、焦点距離や画像
中心などのカメラの内部パラメータについては、MatLab Calibration Tool[58] を用いてあらか
じめ求めておく。カメラの内部パラメータの導出については、付録に詳細を記す。
本研究では、ロボットの位置・姿勢を取得し 、その情報を用いてカメラのパン・チルト角
を操作し 、床面や対象物に対する視点制御をおこなう。ただし 、この視点制御の位置精度は
形状モデリングの目的には十分でないため、モデリングに利用するカメラの位置・姿勢の推
定については、これらの値を補正したり、別の情報から推定する手法をとる。
6
図 2.1: ロボットシステム
7
FRONT
SIDE
図 2.2: パン・チルトカメラ
図 2.3: 画像処理モジュール
8
BACK
2.2
対象物の条件
本研究における形状モデリングの対象物は、環境を構成する要素である個々の物体、特に、
移動ロボットにとってひろいあげのような操作が可能な小型の物体とする。
対象物に関しては、以下の仮定を置く。
1. ロボットが走行する床面上に存在する。
2. 形状に曲面を含んでも良いが、テクスチャ( 模様)を有する。
特に2.の仮定は、本研究で用いる形状モデリングの手法に関係する。カメラから画像列を
取得し 、画像中に映り込んだ対象物から抽出したテクスチャを利用して物体形状を求める。
ここでは、物体の形状や見た目に関する事前情報を持たせていない。物体が簡単な形状要
素で構成されていると仮定したり、物体にあらかじめマーカを付加しておくといった従来の
研究例と比較し 、困難な問題設定である。
2.3
課題
前節で述べた問題設定のもとで、形状モデリングをおこなう際、
• 対象物の位置・形状が未知である
• カメラの位置・姿勢が誤差を含む
といった、モデリングのための計算処理が複雑になる問題設定をしている。これらの困難
さに対処した形状モデリングをおこなうことが 、本研究での大きな課題となる。詳細につい
て、以下で述べる。 対象物の位置・形状が未知
ロボットには「前方の床面上に存在する」こと以外に対象物の事前情報を与えず、対象
物には他の物体と区別が付くような特別な条件を設けない。すなわち処理開始時のロ
ボットには、モデリングの対象物が、どこに存在するか、どのくらいの大きさか、どん
な形状をしているかなどが未知である。このため、ロボットの行動には、単に精密な形
状モデリングをおこなうだけでなく、以下のような事柄も考慮されなければならない。
• 形状モデリングをおこなう対象物の特定
• 対象物と背景を区別しながら、形状モデルを生成
移動ロボットには、環境を大域的に観察し対象物を決定する動作が要求される一方、対
象物を注視、すなわち環境を局所的に観察し 、他の環境情報と区別しながら精密な形状
モデリングをおこなう必要がある。これらを基にした処理のアプローチ方法について
は、次節に示す。
9
Object Modeling
Target
Object
Object Finding
Start
Camera
ath
dP
te
rea
Robot
C
図 2.4: ロボットの動作イメージ
カメラの位置・姿勢の誤差
移動ロボットにおいては、搭載したカメラの位置・姿勢を直接的に知る手段は、オド メ
トリ(車輪の回転数から測位するロボットの自己位置)とカメラのパン・チルト角の変
化、すなわちロボットの動作モデルである。しかし 、ロボットの動作モデルから得るカ
メラの位置・姿勢は、画像取得とオド メトリ取得の同期のずれや、車体のスリップ、カ
メラの角度の誤差などの要因により、正確ではない。
一方、本研究ではロボット上に搭載したカメラから多数枚の画像を取得し 、コンピュー
タビジョンの手法を用いて対象物の3次元情報を復元する。これらの復元手法は、画像
情報と、対象の3次元情報、画像を取得したカメラの位置・姿勢の関係を数学的に定式
化したものである。既知の情報から未知の情報を求めたい場合、例えば 、既知のカメラ
の位置・姿勢と画像情報から、未知の対象の3次元形状を求める際、既知としている情
報に誤差が含まれていれば 、求まる形状も正確ではない。本研究では、ロボットの測位
情報から取得するカメラの位置・姿勢に誤差が含まれるため、そのままでは対象物の正
確な3次元情報を獲得できない。誤差を修正する方法、もしくはロボットの動作モデル
に頼らずカメラの位置・姿勢を求める手法をとる。
2.4 アプローチ
前節の困難さに対応するために、本研究では、処理を2段階に分ける( 図 2.4 )
。
1. 対象物を移動しながら発見する
(対象物の発見)
2. 発見した対象物の形状モデルを生成する
(対象物の形状モデリング )
10
対象物の発見
対象物の発見処理では、ロボットは環境中を移動しながら、形状モデリングの対象物を
自動で決定する。具体的には、ロボットは床面上の物体の有無を探索しながら直進走行
し 、周囲の物体の中から決定した対象物について、その正確な位置と、一部の形状を求
める。このとき、ロボットの動作モデルから得られるカメラの位置・姿勢は、走行経路
が単純なため、ある程度の推定精度を保っている。そこで、カメラの位置・姿勢につい
ては、動作モデルから得た値に補正を加えることで、正確なカメラの位置・姿勢を得る。
この詳細は、4章に述べる。
対象物の形状モデリング
対象物の形状モデリングでは、ロボットは発見した対象物に接近した後、対象物の全体
像が得られるようにその周囲を走行する。3次元形状モデルは、搭載したカメラにより
取得した対象物に関する画像列から、高精度で獲得される。このとき、ロボットの走行
経路は複雑になり、ロボットの動作モデルから得られるカメラの位置・姿勢は、形状モ
デリングにとって十分な推定精度を持たない。そこで、対象物の形状モデリングでは、
カメラの位置・姿勢と対象物の3次元形状を、画像列のみから獲得する手法を提案する。
この詳細は、5章に述べる。
環境を大域的に観察して対象物を特定するための処理と、特定した物体に対し詳細な形状
情報を得る処理の2段階に分けることで、未知の環境から、ひとつの物体の形状モデルを獲
得することを目指す。
11
第 3 章 処理の方法
本研究では、3 次元形状モデリングのために、ロボットに搭載したカメラより得た画像列を用
いる。本章では、画像データから処理をおこなう際の、設定と手法について述べる。
3.1
3.1.1
画像と空間
座標系の表現
本研究では、対象物はロボットが走行する床面上に存在する。この床面をカメラを搭載し
たロボットが走行することから、4つの座標系を定義する。ワールド 座標系、モデリング座
標系、カメラ座標系、物体座標系である。図 3.1 に、これらの座標系の関係を示す。
ワールド 座標系
ロボットが動作する環境内に張られ、全ての処理を通して変えられることのない座標系
である。本研究では、処理開始時にロボットが置かれていた位置の床面を基準として、
ワールド 座標系を設定する。
モデリング座標系
ロボットは、実環境を広範囲に渡って探索し 、形状モデリングの対象物を決定する。モ
デリング座標系は、対象物の形状モデリングを開始する際に、動作の起点として設定さ
れる座標系である。この座標系は、ロボットが対象物を発見しその物体の周囲の軌道に
入る際、ロボットの存在する位置の床面上に設定される。形状モデリング時のカメラの
位置・姿勢と、復元された対象物の位置・姿勢は、この座標系に従う。
カメラ座標系
ロボットに搭載されたカメラの動きに伴って変化する座標系である。対象物の3次元形
状情報を画像列を用いて生成する処理の過程では、まずカメラ座標系から見た3次元形
状の位置・姿勢が得られ、後にワールド 座標系から見た3次元形状の位置・姿勢に変換
される。また、連続した2枚の画像間に置けるカメラの相対的な位置・姿勢を求める際
に、この座標系が利用される。
物体座標系
形状モデリングの対象物に張りついた座標系である。画像列の情報から3次元形状を復
元する際、画像内に映り込んでいるシーンについて座標系を設定する。この座標系は参
12
カメラ座標系(移動)
Z
Z
Z
X
Y
Z
Y
物体座標系(カメラ依存)
X
Y
Y
Z
Y
X
X
ワールド座標系(固定)
処理開始
X
モデリング座標系(固定)
対象物を発見
図 3.1: 座標系の定義
照している画像列により変化するものであり、本研究で用いるコンピュータビジョンの
手法の中で、因子分解法において定義される。
3.1.2 カメラの投影モデル
カメラから得られる画像は、3次元空間がレンズを通して撮像面に射影されるものであり、
2次元の画素配列で構成される。本章では、カメラの仕組みのモデル化に関して、本研究に
関連するものについて説明する。
透視投影モデル( 図 3.2, (1) )
カメラのモデルとしては、ピンホールカメラが一般的に用いられる。ピンホールカメラ
による射影は、中心射影と呼ばれる。これは我々の目から普段見えている光景と同じ投
影モデルであり、本論文では、このモデルを透視投影モデルと称する。[16]
まず、画像座標系と基準座標系( カメラ中心と同じ 位置・姿勢)を 、右手系で定義す
る。これより、空間中の点の3次元座標 (X, Y, Z)T と、画像上に投影された2次元座標
(u, v)T の間には、以下の式が成り立つ。
u = f1 X
Z
(3.1)
v = f2 Y
Z
(f が
f1 、f2 は、カメラの焦点距離を表し 、使用するカメラによって決まる値である。
1であるとき、これを正規化カメラと呼ぶ。)ここで、画像平面に平行な成分を奥行き
成分で割っていることから、透視投影モデルが非線形のモデルであることが判る。
13
(1) 透視投影モデル
Y
カメラ中心
Z
C
X
画像平面
(2) 弱透視投影モデル
Y
G
カメラ中心
Z
C
X
通常、仮想平面は
物体の重心Gを通り
画像平面に平行である
仮想平面
画像平面
図 3.2: カメラモデル
線形近似による投影モデル( 図 3.2, (2) )
透視投影モデルは非線形であり、この非線形性により多くの困難が生じる。奥行きの範
囲が小さい場合、透視投影モデルを用いた復元解は不安定になりやすい。そのため、透
視投影モデルを線形に近似した投影モデルが提案されている。以下では、本研究で用い
る弱透視投影モデルについて説明する。
正規化カメラ( 焦点距離が1の中心射影カメラ)を考え、映り込んでいる対象物の重
心の3次元座標を (Xc , Yc , Zc )T とする。このとき、各点の3次元座標は (X, Y, Z)T =
(Xc + ∆X, Yc + ∆Y, Zc + ∆Z)T と表され 、以下の式が成り立つ。
u
v
=
Xc + ∆X
Yc + ∆Y
1
Zc + ∆Z
(3.2)
上記の透視投影モデルの式を、物体の重心においてテイラー展開する。
u
v
=
Xc + ∆X
Yc + ∆Y
1
Zc
ここで、 ZZc の零次項までで近似する。
u
v
1
=
Zc
14
∆Z
Zc
1−
+O
Zc
Z
X
Y
2 (3.3)
(3.4)
弱透視投影モデルでは、正射影の方向は光軸と平行である。すなわち、画像に映り込む
物体の像は、光軸からの距離に影響されない。これを図示すると図 3.2 のようになる。
物体の重心を通り、画像面に平行な平面を、仮想平面と呼ぶ。本研究では、因子分解法
を用いる際、この投影モデルを利用する。因子分解法については、後述する。
3.1.3
画像上の点と空間上の点
画像上の点と空間上の点の関係は以下の式で表される [6]。



u




w  v  = A(R| − RT) 


1
X
Y
Z
1






(3.5)
式 (3.5) は、カメラから観察されるある点の3次元座標 (X, Y, Z) と、それが画像上に投影さ
れた座標値 (u, v) の関係を示すものである。ここで、R はカメラの姿勢を表す 3 × 3 の回転行
列、T はカメラの位置を表す 3 × 1 の平行移動ベクトルを表す。A はカメラの内部パラメー
タ行列と呼ばれ 、カメラにより固有の値を持つ 3 × 3 の行列である。(R| − RT) は、行列 R
と、R と T の積である 3 × 1 のベクトルを並べた、3 × 4 の行列を意味する。
3.1.4 エピポーラ幾何
空間上の存在する1つの点 P を、ある視点 C1 と、カメラを移動した別の視点 C2 から捕ら
えたとする。この時、空間上の点とカメラには、式 (3.5) よりそれぞれ以下のような関係が成
り立つ。
w1 m1 = A(R1 | − R1 T1 )M
(3.6)
w2 m2 = A(R2 | − R2 T2 )M
m は点の画像座標 (u, v) の拡張ベクトル、M は点の3次元位置 (X, Y, Z) を表す。エピポー
(導出の詳細は付録 A を参照)
ラ幾何は、これら2式から M を消去することで求められる。
mT1 Fm2 = 0
(3.7)
F は基礎行列を呼ばれる 3 × 3 の行列である。この式では、2枚の画像間のカメラの相対位
置・姿勢が判っていれば 、1枚目の画像上の点 m1 に対応する2枚目の画像上での画像座標
m2 が 、エピ極線 au2 + bv2 + c = 0 上に存在することを意味する( 図 3.3 )
。m1 、m2 の関係
を逆にしても同様の性質がある。本研究では、Space Carving をおこなう際、判定のためにこ
の性質を利用している。
15
ワールド座標系
R1, T1
R2, T2
O
エピ極線
(C1とMを通る直線の投影)
M(空間上の点)
m1
エピ極面
C1
m2
C2
Image2
Image1
図 3.3: エピポーラ幾何
3.2
画像からの情報取得
取得した画像列には非常に多くの情報は含まれているため、必要な情報のみを抽出する処
理をおこなう。本研究においては、画像列から情報を抽出し 、対象物の3次元形状情報とロ
ボットに搭載したカメラの位置・姿勢を求める。
従来、画像からの情報抽出は、点、線分、領域、色など 、様々な種類でおこなわれている
が、本研究では、以下の2種の情報を用いる。
• 物体のテクスチャを特徴点として利用
• 床面の色情報を利用( 対象物の発見処理のみ)
多数枚の画像を用いて3次元情報の獲得をおこなう際、以前の視点で観察されていた画像
のある部分が 、現在の視点においてど う見えているかの情報を、画像間で対応付けることが
非常に重要である。本研究では、画像中のテクスチャを特徴点と呼ばれる点として抽出し 、別
の画像においてその対応付けをおこなう。
画像情報の抽出については、種々の手法が提案されているが 、複数の物体が混在するよう
な実環境で取得する画像では、線分、領域などの情報は、視点や照明の変化などの影響を受
けやすく、画像間で1対1の正確な対応を取ることが困難である。特徴点も同様の困難さを
持っているが 、これは画像全体のうち、マスクと呼ばれる小さな領域同士で対応付けをおこ
なうため、上記の2種の画像情報に比べ、影響を受けにくい。
また、モデリングの対象物を発見する際、物体は床面上に存在するという条件を定めたこ
とから、物体に接している床面を分離する1つの手段として、色情報の利用が有効である。
以下で、詳細を説明する。
16
Camera
Pixel
Coordinates → ( u , v )
Color → ( R , G , B )
Image Data
図 3.4: 画像
3.2.1
特徴点の抽出・追跡
テクスチャのある物体を画像列で捕らえたとき、画像に対し以下の2種類の操作をおこなう。
• テクスチャの強い部分を抽出する。
• 抽出したテクスチャを、2枚の画像間で対応付ける。
カメラから取得する画像は、pixel と呼ばれる小さな長方形の集まりで表され 、それぞれの
pixel には 、色や輝度が納められる( 図 3.4 )。テクスチャの強さは 、画像中のある小領域で
pixel の輝度値の変化が特徴的であり、エッジが強く抽出できることや、小領域内の他の pixel
と比較した際に輝度の変化が激しいことで判断される。強いテクスチャは、視点を移動し撮
影した別の画像においても抽出できる可能性が高いため、画像間でその推移を調べることが
できれば 、テクスチャの対応付けが実現できる。
テクスチャを特徴点として抽出・追跡する手法として、Harris オペレータを用いた方法 [28]
や SIFT 法 [4] など 、いくつかの優れた提案がある。本研究では、これらと同様の優れた手法
により、画像特徴点の抽出・追跡に実績のある KLT-Tracker[19] を用いる。KLT-Tracker は、画
像間の特徴点について以下の式により類似度を調べ、追跡する。[1][31][40]
e=
w
[J(u + z) − I(u)]du
(3.8)
I(n) は、画像 I の座標値 n = (u, v) における画素値を表す。式 (3.8) では、画像 I の座標値 u
における特徴点が 、別の画像 J の座標値 u に対し平行移動 z を加えた特徴点と同一かど うか
を判定している。評価値が小さくなるほど 、2枚の画像における特徴点が同じである可能性
17
(1)
(2)
(3)
(4)
図 3.5: KLT-Tracker による特徴点追跡の例
が高い。図 3.5 に特徴点の追跡例を示す。テクスチャの多い部分に特徴点が抽出され 、画像間
で同じテクスチャを追跡していることが判る。
本研究のシステムでは、カメラを搭載したロボットが実環境を自律的に走行し取得した画
像列を用いているため、それらの画像から特徴点が常に安定して抽出・追跡されているとは
限らない。これについては、状況に応じていくつかの対処法を提案し 、実装している。
3.2.2
色情報の利用
ロボットが形状モデリングの対象物を発見するまでは、物体が床面上のどこに存在するか
が判らない。その際、得られる画像中から抽出した特徴点は、対象物に関係のない冗長なも
のも混在することになる。これを緩和するため、特徴点が床面に存在するかど うかの判定に
色情報を利用する。
画像から色情報を抽出する際、様々な表色系の利用が提案されているが 、本研究では、実
環境を想定しているため、照明条件の変化にロバストである L*a*b*表色系を用いる。L*a*b*
18
床面除去前
床面除去後
図 3.6: L*a*b*表色系による床面除去の例
表色系は、1976 年に国際照明委員会 CIE が推奨した均等色空間である。均等色空間とは、人
間が色を見たときに 、知覚的に同じ色違いに見える色同士の距離( 色差)を均等にした色空
間のことである。本研究では 、カメラから計算機に取り込む色画像は RGB 表色系で表現さ
れているが 、この表色系では、色が同じ色相でも明度が高いほど 彩度が高くなる。すなわち
光を反射して生じる表面色については、光源となる照明の強さが変化することによって色の
領域が変化してしまう。一方、L*a*b*表色系では、照明の強さが変化しても明度方向の値が
大きくなるのみで、色相や彩度については大きく変化しない。実環境においては、同じ色を
持つ物体でも、照明の位置や強さにより画像内での見え方が大きく変化するため、これらの
影響を受けにくい L*a*b*表色系を用いることで、ロバストな色検出を実現する。RGB から
L*a*b*表色系への変換式については、付録に詳細を記す。図 3.6 に、L*a*b*表色系を利用し
た、床面除去の例を示す。
19
3.3 コンピュータ・ビジョン手法
複数の画像データから対象の3次元形状を獲得する手法について、本研究で利用している
既存の手法の概要を説明する。詳細な説明や式変形については、付録 A を参照されたい。
3.3.1 モーションステレオ
カメラの位置・姿勢が既知である2枚の画像において、1組の特徴点が対応づいたとする。
この点は、本来同じ3次元空間上の点が、それぞれの画像上へ射影されたものである。すな
わち、各画像の焦点と画像特徴点を結んだ直線は、3次元空間上で交わる。そこで、その直
線までのユークリッド 距離が最も小さくなるように式( 3.9 )のような評価関数を定義し 、線
形手法によって特徴点の3次元位置 X = (X, Y, Z) を求める。[16]
1 2 + X − s2 Rm
2 + T2
C = X − s1 m
(3.9)
1 、m
2 は、2枚の画像における対応点の投影座標の拡張ベクトルである。また、R 、
ここで m
T は、1枚目の画像を取得したカメラから、2枚目の画像を取得したカメラへの相対的な位
1 、m
2 の長さを表すスカラー定数である。
置・姿勢を表す。s1 、s2 は、それぞれ m
モーションステレオは高速な処理が期待でき、カメラの位置・姿勢が既知であれば 、特徴
点の3次元位置を1点毎に求めることができる。ただし 、カメラの位置・姿勢に誤差が含ま
れる場合、算出される特徴点の3次元位置に大きく影響する。
3.3.2
因子分解法
因子分解法 [2] とは、カメラの姿勢と特徴点の3次元位置を同時に求める方法である。複数
枚の画像から複数の特徴点を抽出・追跡し 、それらを並べた行列を作成し 、ある条件の元で
因子分解をおこなう。
F 枚の画像があり、全ての画像間において対応が付いている特徴点が P 個あるときに、そ
れらを並べた行列 W を定義する。この 2F × P の行列 W を、計測行列と呼ぶ。この行列を
分解することにより、2F × 3 の行列 M としてカメラの姿勢変化が 、3 × P の行列 S として
特徴点の 3 次元位置が求まる。
W = MS
(3.10)
取得した画像列について、映り込む物体の見え方があまり変化せず、オクルージョンがお
こりにくい状況下では、多くの特徴点が複数枚の画像で観測し続けられる。この場合、特徴
点の推移情報から、カメラの位置・姿勢と特徴点の3次元位置を同時に算出できる因子分解
法の利用が有効である。因子分解法は、アルゴ リズムが簡便であり、誤差にロバストな非常
に優れた手法である。本研究では、カメラの投影モデルを弱透視投影モデルに仮定した因子
分解法 [36] を、形状モデリングの初期フェーズ(5章4節参照)において利用する。
20
3.3.3
非線形最小化
非線形最小化とは、定義された非線形の評価関数に初期値を入力し 、多数の変数の組み合
わせを探索することで、評価関数を最小化するような最適な解を見つけ出す手法である。本
研究においては、透視投影モデルのもとで、カメラの位置・姿勢と特徴点の画像上・空間上
の位置に関する評価関数を、以下のように定める。
C=
P
2 T
rxj mij
j=0 i=0
rTzj mij
+
2 P
j=0 i=0
T
ryj mij
Xi + txj
−
Zi + tzj
Yi + tyj
−
T
Zi + tzj
rzj mij
2
2
(3.11)
ここで、
( rxj , ryj , rzj )は 、2枚の画像間の相対的な回転行列における行ベクトル、
( txj ,
( X, Y , Z )
tyj , tzj )は平行移動ベクトルの各成分、mij は特徴点の画像座標の拡張ベクトル、
は、特徴点の3次元座標を表す。ここで、tz はカメラの床面からの高さであり、全体を通し
て一定である。
この式より、カメラの位置・姿勢と特徴点の3次元位置を、勾配法を用いて求める。最小
化処理をおこなう際の初期値は、上記のモーションステレオや因子分解法から得た値を利用
する。最小化の変数は、目的に応じて変更することができるが 、基本的には扱う変数が多い
ほど 勾配法の反復処理に計算コストがかかり、処理時間が多くなる。
3.3.4 Space Carving
Space Carving[27] とは、任意の視点から得た複数枚の色画像から、物体の3次元形状を Voxel
集団として復元する手法である。Voxel とは 、3次元空間で定義される小さな立方体を意味
する。
多視点から得た複数枚の色画像から、定義した Voxel ひとつひとつに 、それらが投影され
る画像上の色を格納していき、Voxel 集団を別の画像上に投影した結果が元の画像と一致する
ように Voxel を取捨選択する。この手法を利用する際、復元対象の初期形状が必要となるが 、
従来は3次元空間上に Voxel 空間の位置・大きさをあらかじめ設定し 、背景に条件を加えて、
画像から復元対象だけを抽出したものを初期形状とする例が多い。本研究では、ロボットが
移動するのは実環境であり、取得する画像には対象物以外にも物体があることを想定してい
るので、従来とは異なるアプローチにより、Voxel 集団の初期形状を決定する。この手法は幾
何学的な近似を含まず、画像の Photometric な情報のみから処理をおこなうため、本研究にお
いては、線形近似を含んだ形状復元の結果を補正する際に利用する。
21
3.4
本研究でのカメラの位置・姿勢表現
3.4.1 ロボット とカメラのシステム構成
本研究では、移動のためのプラットフォームとして、筑波大学知能ロボット研究室で開発
された2輪駆動型の移動ロボット「山彦」を用いる。また、センサとしてピッチ角・ヨー角
に自由度を持つパン・チルトカメラ1台を、移動ロボットに搭載する。これらより、実環境
をロボットが移動し 、その移動と目標とする物体に合わせてカメラの視点を調整するシステ
ムを構成する。
以下では、この実験システムにおけるカメラの位置・姿勢について、幾何学的な表現方法
について述べる。
3.4.2 カメラ視点の位置・姿勢表現
ロボットが最初に存在する位置の床面上に、ワールド 座標系を定義する。本研究で画像を
用いて環境の3次元情報を得るためには、このワールド 座標系の原点と、現在のカメラの位
置・姿勢関係を把握することが必要となる。以下では、このカメラの位置・姿勢を決定する
パラメータをカメラの外部パラメータと呼ぶ。
カメラの外部パラメータを決定する要因は、ロボットが移動時に持つ3自由度と、カメラ
のパン・チルト角の2自由度の、合計5自由度である。このうち、ロボットの回転成分とカ
メラのパン角の成分は同じ軸まわりの回転であるため、以降ではこの2つの成分を合わせて
1つとし 、計4自由度として考える。ワールド 座標系は床面上に x-y 平面( ロボット前方向
、上方に z 軸が伸びている座標系として定義されている。まず、回転行列の導出方法
が x 軸)
として、ロール・ピッチ・ヨー角を考える。
ロール角周りの回転行列




cos φ − sin φ 0


R(Z, φ) =  sin φ cos φ 0 
0
0
1
ピッチ角周りの回転行列
cos θ 0 sin θ


R(Y, θ) = 
0
1
0 
− sin θ 0 cos θ
ヨー角周りの回転行列


1
0
0


R(X, ψ) =  0 cos ψ − sin ψ 
0 sin ψ cos ψ
22
本研究においては、ロボットは平坦な床面上を走行するため、カメラの自由度は2であると
し 、カメラの光軸周りの回転であるロール角は考慮しない。
次に、カメラ座標を定義する。カメラの光軸方向を z 軸、取得画像の横方向を x 軸、縦方
向を y 軸とする。カメラの俯角(ヨー角)が0度のとき、ワールド 座標系から見たカメラの
姿勢は、以下のように表せる。

RTnormal

0
0 1


=  −1 0 0 
0 −1 0
(3.12)
ここに、カメラの俯角 ψ を加えるとカメラ姿勢は以下のようになる。


0 − sin ψ cos ψ


RT0 = Rnormal R(X, ψ) =  −1
0
0

0 − cos ψ − sin ψ
(3.13)
この R0 が、本研究で用いるカメラの初期姿勢となる。
カメラのパン角 θ を変化させた際のカメラ姿勢は以下のようになる。


sin θ − cos θ sin ψ cos θ cos ψ


T
Ri = Rnormal R(Y, θ)R(X, ψ) =  − cos θ − sin θ sin ψ sin θ cos ψ 
0
− cos ψ
− sin ψ
(3.14)
カメラの姿勢に変化があったときは、現在の角度を R(X, ψ) 、R(Y, θ) に代入することで、ワー
ルド 座標系から見た現在のカメラ姿勢が得られる。
3.4.3 パン・チルト カメラのための回転行列表現
本研究で用いているコンピュータビジョンの手法のひとつである因子分解法では、処理の
結果としてカメラの回転行列が得られる。この場合、3 × 3 の回転行列から、カメラのパン角・
チルト角を推定する必要がある。以下では、あるカメラ姿勢に対し 、パン角・チルト角双方
に変化があった場合、姿勢が変化した後の回転行列から、2つの角度を算出する方法につい
て述べる。
ある回転行列を方向余弦が n = (n1 , n2 , n3 )T (ただし n21 + n22 + n23 = 1 )である軸の周り
に角度 α だけ回転することを考えた場合、その回転行列は以下の式で表せる [6]。


n21 + (1 − n21 ) cos α
n1 n2 (1 − cos α) − n3 cos α n1 n3 (1 − cos α) + n2 sin α


R =  n1 n2 (1 − cos α) + n3 cos α
n22 + (1 − n22 ) cos α
n2 n3 (1 − cos α) − n1 sin α 
n23 + (1 − n23 ) cos α
n1 n3 (1 − cos α) − n2 sin α n2 n3 (1 − cos α) + n1 sin α
ここで、n は R の固有値1に対する固有ベクトルであり、n21 + n22 + n23 = 1 である。すなわ
ち、行列 R の対角要素の和は以下のようになる。
r11 + r22 + r33 = 1 + 2 cos α
23
本研究において、カメラをパン角について回転させることは、ワールド 座標系におけるカメ
ラ姿勢を、zo 軸 (0 0 1)T 周りに回転させることに等しい。このとき現在のカメラのチルト角
が ψ ならば 、カメラ座標系から見た zo 軸は I = (0 cos ψ sin ψ)T と表される。すなわち、こ
の I 周りの回転を表す行列 RI は、上記の R から、以下のように表される。


cos α
− cos ψ cos α
cos ψ sin α


2
2
RI =  sin ψ cos α cos ψ + (1 − cos ψ ) cos α
cos ψ sin ψ(1 − cos α) 
− cos ψ sin α
cos ψ sin ψ(1 − cos α)
sin ψ 2 + (1 − sin ψ 2 ) cos α
(3.15)
基準のカメラ姿勢に対し 、ある回転を加えて変化した現在のカメラ姿勢 Rn としたとき、初
期のカメラ姿勢 R0 から現在のカメラ姿勢 Rn におけるパン角の変化量を求めるには、以下の
式を成り立たせるような RI を見つければよい。

1
0

T
R0 = Rn RI =  0 cos ψ
0 sin ψ

0

− sin ψ 
cos ψ
(3.16)
この I の回転角は、カメラのパン角の逆向き回転角となる。また、残る要素である ψ はカ
メラのチルト角の変化量を表す。
24
第 4 章 対象物の発見
対象物の発見処理の目的は、実環境から、床面上に存在する対象物を特定し 、その正確な位
置を得ることである。
4.1
課題とアプローチ
移動ロボットは、対象物の形状と位置が未知の状態から対象物を発見する。その際、走行
可能な範囲において、対象物が存在するかど うかを走行しながら探索するため、処理を高速
におこなえる必要がある。また、実環境から得られる情報にはいくつかの要因で誤差が含ま
れ、走行中のロボットの位置・姿勢自体にも誤差が蓄積されるので、処理結果の精度を向上
するための対策も必要である。
これらを考慮し 、対象物の発見処理では次のようなアプローチをとる [49]。まず、実環境の
情報を、画像から抽出した特徴点として取得する。これらの特徴点から形状と位置の情報を
得る手法には種々のものがあるが、対象物を発見する段階では、高速性を優先し 、モーション
ステレオ法により対象物の形状と位置をおおまかに復元する。しかし 、モーションステレオ
で得た3次元復元情報は、ロボットの位置・姿勢誤差により影響を受ける。その対策として、
非線形最小化による復元手法を用いて誤差を補正することで、精度を向上させる。以上より、
対象物の発見を高速におこないつつ、高い復元精度を得ることを図る。また、外れ値などに
対処するために、特徴点のフィルタリングもおこなう。形状モデリングの対象物は、上記の
処理で十分に復元精度が高いと判断された特徴点を基に決定する。以下で、詳細を説明する。
モーションステレオによる特徴点の3次元位置算出
特徴点の3次元位置復元には、モーションステレオを利用する。すなわち、2枚の画像
を取得したカメラの位置・姿勢および2枚の画像上で対応の取れている特徴点の画像上
の位置が既知であるとき、これらから特徴点の3次元位置を求める。
1 2 + X − s2 Rm
2 + T2
C = X − s1 m
(4.1)
R はカメラの姿勢を表す行列、T はカメラの位置を表し 、ロボットの動作モデルから
は画像特徴点の拡張ベクトルであり、s1 、s2 は m
の長さを表す
得た値を利用する。m
スカラーである。X は特徴点の3次元位置を表す。式 (4.1) の評価値 C が最小となるよ
うな X の値を求める。導出方法の詳細は付録 A を参照されたい。実際の環境で移動ロ
25
ボットを動作させる際には、カメラの位置・姿勢とここで求まる特徴点の復元結果を非
線形最小化によって補正する処理を加える。その詳細については後述する。
クラスタリングによる対象物の特定
特徴点の3次元復元結果を得た後には、その結果からモデリングの対象とする物体を表
す特徴点集団を、特定する処理が必要となる。本研究は、以下の流れで特定処理をおこ
なう。
( 図 4.1 )
1. 床と平行な面を一定のサイズ毎に格子に分けた平面を考え、全ての特徴点をその
平面上に射影する。
2. 現在調べている格子や周辺の格子に特徴点が存在するか否かによって、クラスタ
リング処理をおこない、特徴点をグループ毎に分割する。
3. グループに分けられた特徴点集団から、移動ロボットに近い位置にあるものを選
択し 、対象物を表す特徴点集団として特定する。
画像列を用いて3次元情報を獲得することにより、ロボットの前方数メートルの範囲に
は、物体の存在を表す多数の特徴点が得られる。ここで、物体は床面上に存在すること
を前提としているため、特徴点の3次元情報を、床面と平行な平面上の2次元情報に圧
縮する。この2次元の特徴点の分布を離散化しクラスタリングをおこなうことで、特徴
点をいくつかの集団に分け、その中でロボットに近い特徴点集団を選択することで、自
動的に対象物を決定する。
これらの動作を対象物の発見と称し 、対象物とロボットの正確な位置関係を得る。
4.2
実環境での問題点と対処
実環境で動作する移動ロボットに、筆者らの提案する対象物の発見処理をおこなわせる際、
考慮すべき問題とその対処法について述べる。
4.2.1
不要な特徴点への対処
前述したような画像特徴点に基づく3次元復元処理をおこなう際、実環境から得られる特
徴点の追跡結果には誤差を含むものが存在しており、また床面上などの物体と関係のない部
分から抽出されるものも存在する。このような点は、クラスタリングによって対象物を特定
する際の妨げとなる。処理結果に悪影響を与えるようなこれらの特徴点については、なるべ
く簡便な条件をいくつか設定し 、除去する処理を随時おこなう。以下で詳細を述べる。
復元誤差が大きな特徴点の除去
モーションステレオの際、カメラから遠い距離にある物体から抽出された特徴点につい
ては、十分な視差が得られず特徴点の3次元位置 X の復元結果に大きな誤差が含まれ
26
Floor
Objects
3次元復元
Robot
2次元平面へ射影
Robot
格子毎にデータを格納
クラスタリング
Group2
Group1
Group3
対象物特定
図 4.1: クラスタリングによる対象物の特定
27
る。この復元結果が、良い精度で3次元位置が求まっている点と混在してしまうと、後
の対象物の特定処理に悪影響がある。対策として、2枚の画像中で対応する特徴点で、
カメラの移動方向に対して画素位置の変化が少ない特徴点については 、復元前に取り
除く。
追跡ミス特徴点の除去
KLT-Tracker を用いて画像間で特徴点を追跡する処理をおこなっているが、Tracker が特
徴点を誤って追跡してしまった場合、その特徴点の復元結果は実際と異なってしまう。
そのような特徴点については、モーションステレオで用いる式 (4.1) の評価値 C が大き
くなるため、この振る舞いを利用して取り除く。
床の色情報を用いた対象物の分離
復元された特徴点に床面上のものが混ざっている場合、対象物の特徴点集団を特定する
クラスタリング処理の妨げとなる。そこで床面の色情報を利用し 、床面上の特徴点を3
次元復元前に除去する処理を加える。具体的には、入力画像である RGB カラー画像を、
L*a*b*表色系に変換し 、その表色系からあらかじめ作成した床面に関する色空間の正
規分布と比較することで、画像中の床面上の点を除去する。
4.2.2
移動ロボット の測位誤差への対処
移動ロボットの動作モデルから推定するカメラの位置・姿勢には誤差が含まれることは前述
した通りである。ここでは、移動ロボットを走行させた際の対象物の発見処理について、考
慮すべき問題について評価し 、対処法について述べる。
問題:カメラ姿勢の復元結果への影響
モーションステレオで用いる式 (4.1) は、カメラの姿勢を表す R と、カメラの位置を表
す T が正確であるという前提のもとに成り立つものであるが 、もしこれらに誤差を含
むと、復元結果が実際とは異なってしまう。
図 4.3 は、VHS のビデオテープを複数並べた環境(図 4.2 )を、ロボットに搭載したカメ
ラから得た画像である。カメラの位置・姿勢の誤差が形状の復元結果に与える影響を示
すために、カメラを 200mm 前方に動かす前後で取得した2枚の画像から、モーション
ステレオにより特徴点の3次元位置を復元した。このとき、カメラは床面から 320mm
の高さにあるとし 、床面に対し 15 度の俯角をつけた。
図 4.4 は特徴点の3次元位置を復元した結果を床面に垂直な視点から観察したものであ
る。カメラの位置・姿勢に誤差が無い場合、物体の位置は特徴点の集団として正確に復
元される。一方、カメラ位置の横方向 (y 軸方向) に 10mm の誤差を含めた場合や、カ
メラ姿勢のピッチ方向に 1 度の誤差を含めた場合では、復元結果が歪んでいることが判
る。特に、カメラの角度成分に対しては、少しの誤差が含まれているだけでも復元結果
は大きく影響を受ける。
28
実験環境
video cases
200mm
camera
800mm
1200mm
図 4.2: 環境
移動前
移動後
図 4.3: ロボット上から取得した画像
一方で、移動ロボットのオド メトリから得られるカメラ位置・姿勢には、そもそも累積
誤差が含まれる。また、画像を取得時の時刻と、オド メトリの値の取得時の時刻は、必
ずしも同期が取れているとは限らない。このため、ロボットの動作モデルを用いて3次
元形状復元をおこなう場合、カメラの位置・姿勢の誤差を補正する必要がある。
対処:カメラの位置・姿勢の再算出
本研究のシステムは、対象物の発見処理をおこなう際、カメラに一定の俯角をつけ、そ
れを搭載したロボットが床面上を走行するものである。ここで、可変なパラメータはカ
メラのチルト角 ψ 、
(カメラのパン角 + ロボットの姿勢)を示す θ 、ロボットの直進成
分 tx 、ロボットの並進成分 ty の合計4つとなる。よって最適なカメラの位置・姿勢を
求めるためには、上記の4つのパラメータの組み合わせを見つけることで達成できる。
しかし 、式( 4.1 )の線形の評価関数は、並進成分とスケールを分離できないため、並
29
復元結果(誤差無し)
カメラ位置に横方向10mmの誤差
カメラ姿勢 (ロール角) に1度の誤差
図 4.4: 特徴点の3次元復元結果( 視点は床面から垂直な方向)
30
進成分を小さくすると評価関数の値も小さくなってしまい、最適なパラメータを求めら
れない。そこで以下のような非線形の評価関数を改めて定義する。
C=
2 P
T
rxj mij
j=0 i=0
rTzj mij
Xi + txj
− f1
Zi + tzj
2
+
2 P
T
ryj mij
j=0 i=0
rTzj mij
Yi + tyj
− f2
Zi + tzj
2
(4.2)
mi は画像特徴点の位置座標に関するベクトル表現であり、rx 、ry 、rz は回転表列 R の
各軸成分を表す行ベクトルである。tx 、ty 、tz は、ワールド 座標系からのカメラ位置へ
の平行移動成分、X 、Y 、Z はワールド 座標系から見た特徴点の3次元座標を表す。ま
た、i は画像、j は特徴点の番号を表す。この式( 4.2 )の非線形の評価関数から、R と
T 、特徴点の3次元位置の補正をおこなう。計算手順としては、まず式( 4.1 )の線形最
小化により特徴点の3次元位置を暫定的に求め、それらを初期値として非線形最小化の
評価関数式 (4.2) に入力する。真値に近い初期値が得られれば 、局所解に落ちにくく、収
束の速い最小化処理が可能となる。また、対象物の発見処理では、ロボットは直進走行
するため、動作モデルから得られるカメラの移動距離は比較的信頼できると考え、カメ
ラの移動量はオド メトリから得たロボットの移動距離によって決定する。さらに、カメ
ラの床面からの高さ tz はロボットが移動しても変化しないので 、評価関数Cの変数を
ψ 、θ 、ty と、特徴点の3次元位置 (X, Y, Z) となり、3 × (3× 特徴点数 ) 個の変数に対
して最小化処理をおこなう。
非線形最小化には、勾配法のひとつであるニュートン法を用いる。この処理の追加によ
り、オド メトリから得られたカメラの位置・姿勢と、暫定的に求めた特徴点の3次元位
置を同時に補正する。
4.3
対象物の発見アルゴリズム
ロボットは走行しながら形状モデリングの対象物を特定するため、対象物の発見処理には
高速性が要求される。そこで、アルゴ リズムの基本方針として、画像1枚毎にかかる処理を
簡略化し 、必要な時のみ負担の大きな処理をおこなうとする。また、対象物の発見の妨げと
なる特徴点については、それぞれの特性に応じた評価基準を設け、他の処理の負担となる前
に除去する。処理の流れを以下に述べる。
ロボットは、処理開始時の位置において画像を1枚取得し 、KLT-Tracker により画像から特
徴点を抽出する。その後直進走行をおこない、一定の距離を進む毎に画像を取得し 、特徴点
を追跡する。この動作を繰り返すことで、床面上を撮影した画像列を作成し 、画像列に映り
込む物体の特徴点の推移を記録する。画像取得の間隔については、画像間で視差の大きい場
合に、KLT-Tracker が追跡ミスを起こしやすいことから、視差が十分小さくなるように経験的
に決定する。このように複数枚の画像から抽出・追跡した特徴点の推移を観察しながら走行
し 、最初に取得した画像と現在取得した画像の間で、特徴点の視差が所定の閾値以上になっ
31
Start
画像取得・特徴点抽出
image frames
画像取得・特徴点追跡 20mm毎
1st
Calculating 3D Position
Finding Target Object
Feature
Tracking
200mm走行した
床色
移動量小
10th
}特徴点除去
20mm
camera
モーションステレオ
∼∼
robot
200mm
Object
評価値大きい→特徴点除去
非線形最小化
クラスタリング
NO
発見処理の
メインルーチン
対象物が発見できた? YES
対象物の形状モデリング
図 4.5: 対象物の発見アルゴ リズム
たところで、この2枚の画像から特徴点の3次元位置を求める。具体的には、画像間でロボッ
トの進行方向に移動の少ない点や、床面上の点などを除去してから、モーションステレオを
おこなう。さらにモーションステレオの評価値が悪かった点を除いた後に、この結果を初期
値とし 、カメラの位置・姿勢と、特徴点の3次元位置を非線形最小化により補正する。最終
的に得られた特徴点の3次元位置に対し 、クラスタリングをおこない、形状モデリングの対
象物を表す特徴点集団を特定する。
ここまでを1つのサイクルとするが 、もし1度目の試行の際、近傍の床面に対象物が存在
せず、有力な候補が見つからなかった場合には、1サイクル終えた位置をロボットの初期位
置とし 、さらに直進しながら同様の処理を繰り返すものとする。図 4.5 にアルゴ リズムの全
容、図 4.6 に処理に則したデータの流れを示す。
4.4 アルゴリズムの高速化・高精度化
前述したアルゴ リズムは、高速性を重視し構築されているが 、この中で計算コストの高い
処理の一つに非線形最小化がある。そこで、非線形最小化の処理に入力するデータや、処理
自体に工夫を加えることで、処理の効率や精度をさらに向上する [50]。以下では、改良した
点について詳細を説明する。
カメラの角度成分の補正
32
画像
動作モデル
色
画像特徴点
L*a*b*表色系
に変換
進行方向に移動
が少ない点除去
特徴点の3次元位置
カメラ位置・姿勢
(暫定)
カメラの位置・姿勢
床面特徴点の除去
モーションステレオ
モーションステレオの
結果が悪い特徴点除去
(暫定)
特徴点の3次元位置
非線形最小化
(高精度)
特徴点の3次元位置
(高精度)
カメラの位置・姿勢
クラスタリング
対象物の正確な位置
大まかな大きさ
図 4.6: 発見処理とデータの流れ
非線形最小化に入力する初期値に対し 、まず角度成分を補正した後に最小化に移行する
ことで、処理の成功率を向上し計算コストを削減する。
非線形最小化には初期値が必要であり、式 (4.2) においては、ロボットの動作モデルか
ら推定するカメラの位置・姿勢と特徴点の3次元位置がそれに当たる。しかしこのカメ
ラの位置・姿勢には誤差が含まれることは、前述したとおりである。非線形最小化をお
こなう際、初期値が真値から離れている、すなわちロボットの動作モデルから推定する
カメラの位置・姿勢の誤差が大きい場合には、最適化処理が収束しなかったり、収束ま
での時間と計算コストを浪費する結果となる。
一方で、3次元復元の精度は、カメラの位置・姿勢の誤差、特に角度成分の影響を大き
く受けることが図 4.4 で示されている。対象物の発見処理では、ロボットは直進走行す
るため、推定位置が 10mm ずれることはあまりないが、角度が1度程度ずれるような事
態は頻繁に発生する。
これらより、処理の高速化・ロバスト化を、非線形最小化に入力する角度成分をなるべ
く真値に近くすることで実現する。具体的には、カメラ姿勢のピッチ角・ヨー角それぞ
れに対して、初期値の周囲 2 度の範囲を 0.1 度ごとに探索し 、非線形関数の評価値を求
33
める。この評価値が一番小さくなるような角度を新たな初期値とし 、非線形最小化をお
こなう。この手法で選び出すカメラの位置・姿勢の初期値は真値に近く、非線形最小化
は高速に収束する。
入力する特徴点の選択
追跡の信頼性が高い特徴点のみを選択して非線形最小化へ入力することで、変数の行列
サイズを小さくする。
特徴点の抽出・追跡には、KLT-Tracker を利用している。この Tracker により、画像中の
特徴点の推移が得られるが、ここで得られる特徴点には、追跡ミスしたものや、カメラ
から遠いものが含まれる。これらの点は3次元復元処理に悪影響を及ぼすため、以下の
条件を基に特徴点のスコア付けをおこない、評価値の高い点を非線形関数に入力する。
• KLT-Tracker から得られる特徴の強さを示す値
• 画像間での特徴点の移動量
• 特徴点の画像内の位置
特徴が強い点ほど画像間での追跡が正確である可能性が高い。また、画像間で移動の多
い特徴点は、カメラから近い位置にある可能性が高く、視差も大きいため復元精度も高
くなる。さらに、カメラは俯角を付けた状態で床面を見下ろすように設置されているた
め、画像の下側にはカメラから近い部分が、上側にはカメラから遠い部分が映り込んで
いると想定できる。
特徴点を選択して非線形最小化をおこなう利点を述べる。非線形最小化には勾配法の一
種であるニュートン法を用いており、反復計算によって変数の更新を繰り返しながら最
適解を探索する。手順としては、変数の数に応じたヘッセ行列(関数の二次微分を並べ
た正則行列)を作成し 、その逆行列ともとの変数を掛け合わせることによって更新量を
求め、変数の更新をおこなう。この際、逆行列を求める処理は特に計算コストを必要と
する上、変数の数が多くなるほど計算コストが増大する。すなわち信頼度の高い少数の
特徴点のみを非線形最小化に入力することで、逆行列を求める際の計算コストを大幅に
削減し 、かつ誤差を含む特徴点によって最小化処理が収束しなかったり局所解に落ちる
ことを防ぐ。
4.5
基礎実験
4.5.1
実験方法
実際の環境を図 4.7 に示す。ロボットの前方の床面に直方体の箱をひとつ設置し 、その周囲
には机、椅子、棚などの他の物体が存在している。この環境に対し 、ロボットに搭載したカ
メラの俯角を下向き 20 度とし 、初期姿勢とする。画像間での視差が十分小さく特徴点の追跡
34
object
robot
chair
camera 1200mm
shelf
4300mm
parts box
2500mm
図 4.7: 対象物の発見の実験環境
が容易になるよう、ロボットが 20mm 走行する毎に画像を取得し 、全ての画像間で特徴点の
抽出・追跡する。画像間の距離が 200mm に達したところで、最初と現在の2枚の画像から環
境の3次元情報を獲得し 、提案するアルゴ リズムにより対象物の発見処理をおこなう。取得
された画像の例と特徴点の抽出・追跡結果を図 4.8 に示す。多くの物体が存在する実環境から
は、対象物の部分以外からも特徴点が抽出されていることが判る。この画像列に対し 、オフ
ライン・オンラインで実験をおこない、それぞれで対象物の発見が可能なことを確認した。
4.5.2
評価
オフライン・オンラインそれぞれでの処理方法と処理時間について述べたのち、実際に得
られたデータについて評価する。得られたデータは、オフライン・オンラインで同一である。
オフラインでの実験
前述の方法で取得した 11 枚の画像列に対し 、デスクトップ PC( Pentium4 , 2.8GHz )
を用いて、対象物の発見処理をオフラインで実行した。画像の解像度は 640 × 480pixel
であった。処理時間については、最初の画像から特徴点を抽出する処理に 500msec、後
の画像列において特徴点を追跡する処理に 300msec、最後の画像取得後におこなうモー
ションステレオ・非線形最小化には、15msec 、クラスタリングによる対象物の特定には
10msec を要した。
オンラインでの実験
ロボットを 10mm/sec で走行させながら、対象物の発見処理をおこなった。ロボットの
位置・姿勢をデスクトップ PC( Pentium3 , 800MHz )上で観察し 、20mm 毎に画像を取
得し 、特徴点の抽出・追跡をおこなった。処理時間については、画像取得に 100msec、
特徴点の追跡処理に 800msec であった。すなわち、画像を取得する毎に要する処理時間
は約 900msec である。200mm 走行後におこなうモーションステレオ・非線形最小化処
理の処理時間は 40msec、クラスタリング処理には 30msec であった。以上より、対象物
35
特徴点抽出
原画像
1枚目
5枚目
10枚目
図 4.8: 取得画像と特徴点抽出
発見の全ての処理はロボットの走行中におこなうことが可能である。
36
図 4.9 は、オド メトリから得たカメラの位置・姿勢を用いてモーションステレオをおこなっ
た結果である。視点は床面から垂直な向きである。ここでは、特徴点の除去処理を一切おこ
なわない結果を示した。カメラの位置・姿勢に誤差が含まれるため、復元結果は歪んでおり、
実際には存在しない位置に特徴点の3次元位置が求まっていることが判る。
図 4.9: モーションステレオによる結果
実際の処理では、モーションステレオの前に特徴点の除去処理をおこなっている。前述し
た条件をもとに、3次元復元処理や対象物の特定処理に悪影響を与える特徴点を除去した場
合の結果を図 4.10 に示す。
図 4.10: 不要な特徴点を除去した結果
ここまでの処理で残っている特徴点は、特徴点追跡の精度が良く、画像間での視差も大きい。
37
これらの特徴点から、スコア付けにより選び出した少数の特徴点を用いて、カメラの位置・
姿勢と特徴点の3次元位置を非線形最小化により補正する。結果を図 4.11 に示す。
Robot
Object
Parts Box
図 4.11: 非線形最小化により補正した結果
正確に求まった特徴点の3次元情報を床面に平行な2次元平面に射影し 、クラスタリング
をおこなうことで対象物を特定する。本実験では 、平面を一辺 40mm の格子に分けている。
この処理によって特定された対象物の特徴点集団は図 4.12 の通りである。
図 4.12: クラスタリングにより対象物が発見された結果
以上の処理により、床面上に存在する対象物を特定することができ、ロボットと対象物の
正確な位置関係が求まる。
この対象物に対し 、形状モデリングをおこなっていく。
38
第 5 章 対象物の形状モデリング
対象物の発見処理により、対象物とロボットとの位置関係が正確に求まる。対象物の形状モ
デリングでは、正確な形状・姿勢・スケールで、物体の3次元のモデルを生成する。
5.1
課題とアプローチ
ロボットが動作する環境において対象物を発見した際、判明している対象物の3次元形状
は一部でしかなく、形状モデリングにより対象物の全体像を得ることが必要である。ここで
は、以下の3つの要件を満たすような形状モデリングを目指す。
1. 移動ロボットが走行中に可能な処理である
2. 形状の復元結果によりロボットの走行経路が変更可能、すなわち逐次処理である
3. ひろいあげなどの物体操作が可能になるような、形状と位置の復元精度を有する
1. の条件は、処理の高速性に関するものである。移動するロボットから得られる環境情報は
時々刻々と蓄積されていくため、取得した画像情報から3次元情報を能率的に獲得する処理
が必要である。2. の条件は、未知の形状の物体をモデリングするためのものである。対象物
を発見した際に、ロボットが形状モデリングのための自身の経路を確定してしまうことは良
い方法とは言えない。なぜなら、発見時には対象物の全体形状は判っておらず、その形状に
よっては、ロボットに単純な円経路などを与えてその周囲を走行させる際、対象物に接触して
しまう可能性がある。すなわち、形状モデリングでは、対象物の画像を取得する毎に、現在
見えている対象物の部分形状を求め、その結果からロボットの次の経路を決定できるような、
逐次的な形状モデリングが適していると言える。3. の条件は、本研究の目的に即したもので
ある。第1章で述べたように、筆者は実環境で人間に有益な作業をおこなう移動ロボットに
興味があり、本研究はそのための要素技術の開発である。すなわち形状モデリングは、物体
へ働きかけをおこなうために必要な要素であると考え、その後のひろいあげや物体操作など
を考慮に入れた復元精度の高い処理を目指す。
これらのもとに、形状モデリングでは以下のようなアプローチをとる。[51][53]
KLT-Tracker による特徴点の抽出・追跡
画像からの情報取得は、対象物の発見処理と同様に、KLT-Tracker を用いて特徴点を抽
出・追跡することでおこなう。ただし形状モデリングでは、ロボットが視点を移動する
39
ことにより、対象物の見え方が大きく変化していくため、画像を取得する毎に新たに特
徴点を追加抽出する処理が加わる。特徴点の追加抽出の例を図 5.1 に示す。
時刻 t - 1
時刻 t (5つの特徴点が追加されている)
図 5.1: 特徴点の追加抽出
状況に応じた処理のフェーズ分割
対象物の形状モデリングでは、ロボットは発見した対象物に近づき、その周囲を走行す
ることで画像列を取得する。これらの画像列から、対象物の密な形状を獲得する。本研
究では、処理を3つのフェーズに分割する。具体的には、対象物が発見された後、その
周囲の軌跡に入るまでの処理フェーズを初期フェーズ、対象物の周囲を走行しつつおこ
なう処理フェーズを逐次フェーズ、対象物の全体形状が判明し 、走行を終えた後におこ
なう処理フェーズを最終フェーズとする。状況に応じて処理を分割することで、それぞ
れのフェーズにおいて必要性の高い処理のみを組み込む。この概念図を図 5.2 に示す。
それぞれのフェーズの役割は、本章4節で明らかにする。
カメラ運動と物体形状の復元
ロボットの動作モデルには誤差が含まれるため、カメラの位置・姿勢と特徴点の3次元
位置は、画像特徴点の推移情報を用いて求める。
形状モデリングでは、発見処理に比べロボットの経路が複雑になり、かつ動作させるカ
メラの角度成分も増加するため、ロボットの動作モデルから得られるカメラの位置・姿
勢はほぼ信頼できない。そこで、ロボットの動作モデルが不要なアルゴ リズムを構築す
る。初期フェーズでは、因子分解法、非線形最小化といったコンピュータビジョンの手
法を用いて、画像特徴点の推移情報のみから対象物の形状と特徴点の3次元位置を求め
る。逐次フェーズでは、画像特徴点の推移情報と3次元位置が既知の特徴点から、カメ
ラの位置・姿勢を非線形最小化により求め、新たな特徴点の3次元位置をモーションス
テレオを用いて求める。
40
ロボットの走行軌跡
・逐次フェーズ
対象物を全周囲から
観察するような走行
target object
・最終フェーズ
対象物を全周囲
から観察した
・初期フェーズ
対象物に近づくように走行
robot
図 5.2: 対象物発見後のロボットの動き
物体の密な形状復元
対象物の密な形状は、逐次フェーズにて誤差を含んだ状態で復元され、最終フェーズに
おいて補正をおこなうことで獲得される。本研究では、画像特徴点の推移情報が判って
いる条件のもとで、アフィン不変量、Space Carving などの手法を用いた密な形状復元
方法を提案する。手法の詳細については本章 3 節にて述べる 。
以上により、ロボットの走行中には画像1枚にかかる処理の負担をなるべく少なくし 、か
つ最終的に正確な形状モデルが獲得できるアルゴ リズムを構築する。
5.2
実環境での問題と対処
形状モデリングでは、画像から得た特徴点の推移情報から、カメラの位置・姿勢と、対象
物の形状を得る。一方で、対象物の周囲を走行しながら取得される画像列では、対象物の見
え方が時々刻々と変化していくため、特徴点の追跡ミスが増加し 、また特徴点の追加をおこ
なう必要が生じる。これらの理由により、形状モデリングが成功するか否かは、それぞれの
処理において特徴点の推移情報を効果的に利用できるかど うかに依存する。本研究では、こ
の問題に対し主に2つの対策を施した。
5.2.1 KLT-Tracker の改良
特徴点のセルフオクルージョンに対処し 、形状モデリングの復元精度を向上する。[52]
本研究で用いている KLT-Tracker は、連続する2枚の画像間でテクスチャの類似度を調べ、
41
(1) Tracker改良前:
特徴点が左端にまとまって残る
(2) Tracker改良後:
特徴点は全体的に抽出されている
図 5.3: セルフオクルージョンの影響
特徴点の追跡をおこなっている。一方、本研究では、ロボットは対象物の周囲を走行しなが
ら画像を取得するため、今まで見えていた対象物のテクスチャがセルフオクルージョンによ
り徐々に見えなくなる現象が起こる。KLT-Tracker はこのような状況に対し 、既に隠れきって
しまった特徴点が 、物体と背景の境界線上に存在し続けていると判断してしまう。図 5.3 は、
ロボットが対象物の周囲を半時計周りに走行しながら取得した画像列に対し 、特徴点を抽出・
追跡した例である。対象物の見え方がゆっくりと変化する場合、通常の KLT-Tracker でセルフ
オクルージョンを検知することは困難である。結果として、(1) に示すように、追跡が正確で
ない特徴点が物体の境界部分に残るといった事態が起こる。
対策として、抽出された特徴点と、その近傍の特徴点との位置関係を記録しておき、追跡
が正しいかど うかを、画像を取得し特徴点を追跡する毎にチェックする。具体的には、以下の
ように特徴点の削除項目を設定する( 図 5.4 )
。
• 2枚の画像間において、現在の特徴点と周りの特徴点との位置関係で、所定の閾値以上
の変化が観察された場合、現在の特徴点を削除
• 追跡を続けるうちに、現在の特徴点と、周囲の特徴点との距離が小さくなりすぎたなら
ば 、現在の特徴点を削除
• 2枚の画像間で、周囲の特徴点と比較した中でひとつだけ大きくずれた特徴点があるな
らば 、その特徴点のみを削除
このルールに従い特徴点の取捨選択をおこない、追跡精度の悪い点とセルフオクルージョ
ンが起きた点を除去する。図 5.3 (2) は 、KLT-Tracker に提案手法を加えた場合の特徴点の追
跡結果の例を示す。提案手法を適応した結果では、セルフオクルージョンによる特徴点の誤
42
変化を観察
現在の点が変化した
→現在の点を削除
特徴点抽出
近傍の点でグループを形成
全体が歪んだ
→現在の点を削除
近傍の点が変化した
→その点を
グループから削除
図 5.4: KLT-Tracker の改良
追跡を除去可能になり、特徴点は全体にわたって追跡できている。なおこの手法は、特徴点
の誤対応の除去にも有効である。
5.2.2 RANSAC の利用
Tracker の追跡ミスに対処し 、形状モデリングのロバスト性を向上する。
KLT-Tracker から得られる特徴点の追跡結果は、全てが良好なものではない。映り込む対象
物が画像間で大きく移動した場合、画像がぶれてしまった場合や、特徴そのものが弱い場合
など 、Tracker はしばしば追跡ミスを起こす( 図 5.5 )
。形状モデリングは、特徴点の推移情報
から、カメラの位置・姿勢と特徴点の3次元位置を推定するため、追跡ミスの起きている特
徴点からこれらの推定をおこなうことは、処理の破綻や復元精度の低下につながる。しかし 、
特徴点の追跡ミスを全てその場で検知することは非常に困難である。この対処として、本研
究では RANSAC( RANdom SAmpling Consensus )の枠組みを用いて、誤対応した特徴点を取
り除く。RANSAC とは、ランダムサンプリングしたデータを用いて最小二乗推定をおこない
システムを評価することを繰り返し 、外れ値が含まれないデータの組み合わせを見つける仕
組みのことである。以下で、概要を説明する。
N 個のパラメータの中に外れ値が f 個含まれている。そこから n 個のデータをサンプリン
グして評価をおこなうとき、サンプリングしたデータに全く外れ値が入っていない確率を P
f
とする。全体のデータに対する外れ値の割合を e = N
としたとき、
「少なくとも一回のサン
プリングは外れ値を一つも含まない」確率 P は以下の式で表される。
P = 1 − [1 − (1 − e)n ]J
J はサンプリングの回数であり、P が任意の値になるように調節する。
43
(5.1)
時刻 t - 1
時刻 t
図 5.5: KLT-Tracker の追跡ミス
本研究では、多数の特徴点をランダムサンプ リングするデータ、評価されるシステムを推
定したいパラメータ( カメラの位置・姿勢など )を含む評価関数として、RANSAC の枠組み
を用いる。利用局面は、初期フェーズにおける因子分解法や、逐次フェーズにおけるカメラ
の位置・姿勢推定の非線形最小化である。これらについては本章で後述する。
5.3
対象物の密な形状復元
画像を取得した際のカメラの位置・姿勢が既知であれば 、ステレオなどの手法を用いるこ
とで、対象物の密な3次元形状を得ることが可能である。形状モデリングでは、カメラの位
置・姿勢に加え、画像間での特徴点の推移情報も既知であることを利用した、密な形状復元
手法を提案する。[53]
5.3.1 アフィン不変量を利用した密な形状復元
特徴点の推移情報に対し 、アフィン不変量の概念を利用した、ステレオによる密な形状復元
を高速におこなう手法を提案する。不変量とは、あるモデルの変形前と変形後において、そ
の間の変形の変換に対し不変な表現を意味する [44]。本手法では、画像内に存在する3つの
特徴点を用いてアフィン基底を生成し 、その基底から画像間での画素の対応を推定する。通
常の密な形状復元は、画像を小領域ごとに探索し対応をとる相関ステレオが良く知られてい
るが 、これには多くの処理時間を要する。提案手法は非常に高速であり、ロボットが走行し
ながらおこなう目的に適している。
ある画像 A において、指定した画素を内包するような3点の特徴点を選択する。これらの
点から、アフィン基底を生成し 、指定した画素との間に成り立つ以下の式により、アフィン
44
不変量を算出する。
( 図 5.6 )
z = α(p2 − p1 ) + β(p3 − p1 ) + p1
(5.2)
ここで、z は指定した画素、pn (n = 1, 2, 3) は、画像内の特徴点であり、α 、β はアフィン不
変量を表す。この式から、アフィン不変量の α 、β を算出する。一方、別の画像 B において、
画像 A 中の z の推定座標 z は以下の式で求められる。
z = α(p 2 − p 1 ) + β(p 3 − p 1 ) + p 1
(5.3)
p n (n = 1, 2, 3) は、画像 A 中の特徴点に対応付けられた画像 B 上の特徴点を表す。こちらの
式では、右辺のパラメータは全て既知となるため、z が一意に求まる。
Feature
Point
p2
Epipolar Line
p3
p1
p’2
p’3
p’1
P(z)
Q(z’)
Image B
Image A
図 5.6: アフィン不変量
この枠組みを利用することで、現在の画素( 図 5.6 , P )が別の画像上のどこに移動したか
を、算出したアフィン不変量と3角形を構成する近傍の特徴点の位置から求めることができ
る(図 5.6 , Q )
。ただし 、本手法では2次元のアフィン不変量を用いているため、画素の推定
位置には近似による誤差が生じる。そこで以下の条件から画素の推定位置を評価し 、その結
果をもとに復元する画素を選ぶことで、誤差の大きな点が復元されることを制限する。
(エピ
極線については付録 A を参照)
。
• 推定した画素値が、もとの画素値によるエピ極線から所定の閾値以内の距離にある。
• 推定した画素の輝度値が、実際の画素の輝度値と近い。
以上より、2枚の画像間での画素の対応を付け、モーションステレオと同様の計算をおこな
うことで、3次元位置を求める。
5.3.2 Voxel 空間への統合
前節の手法により、2枚の画像毎に密な復元をおこなった結果を、Voxel 空間に統合する。
45
Voxel Space
v
Feature
Point
Corresponded Pixel
図 5.7: Voxel 空間への統合
形状モデリングでは多数枚の画像を用いて処理をおこなうため、2枚の画像毎に密な形状
復元を続けると、冗長なデータが非常に多くなる。そこで、全周囲画像群から2枚の画像毎
に復元をおこなった結果を Voxel 空間に統合する(図 5.7 )ことで、冗長なデータを整理する。
具体的には、定義した Voxel 空間において、2枚の画像から復元した画素の3次元位置を含
んでいる Voxel に対し 、投票( Voting )をおこなう。
また、アフィン不変量を利用した復元手法は、2次元のアフィン変換により近似をおこなっ
ているため、奥行きの大きなシーンや、3次元形状に細かい凹凸のある部分では、復元誤差
が大きくなる。この対処として、画素の3次元位置を復元し投票をおこなう際、近傍の Voxel
にも投票する。3次元の Voxel 空間においては、ひとつの Voxel に隣接する26個の Voxel が
存在するため、これらの Voxel にも投票する。
全周囲の画像において同様の投票をおこない、最終的な投票値が所定の閾値を越えた Voxel
のみを、真の3次元位置を含む可能性がある Voxel として残す。得られる復元結果は、形状に
厚みを持った Voxel の集団として表されるが 、この理由は次節で明らかにする。
5.3.3 Space Carving による形状の補正
上記の処理で得られた Voxel 集団に対し 、Space Carving をおこなう。3章で述べたように、
Space Carving はあらかじめ生成された Voxel 空間の初期形状に対し 、多視点から得た複数枚
の色画像を用いて、全ての画像において色の矛盾がなくなるまで Voxel 空間を削っていき、最
終的な形状を得る手法である。
複数枚の画像を用いた従来の密な形状復元では、平行ステレオのようにカメラの位置・姿
勢の関係を単純化し 、マスクを用いた相関による画素の対応付けをおこなうものが多い。し
かし本研究では、移動ロボットに搭載したカメラから得た画像列を用いるためカメラの姿勢
変化が複雑になり、上記のような画素の対応付けは困難である。一方で Space Carving は、3
46
次元空間上に定義した Voxel をそれぞれの画像上に投影することで画像間の整合性を取るた
め、Voxel の大きさが十分小さく、カメラの位置・姿勢が既知であれば 、視点の複雑さを考慮
することなく精密な形状が獲得できる。
従来の Space Carving を利用するアプローチでは、画像から物体の輪郭を抽出して Voxel 空
間の初期形状を生成することが多い。しかし本研究では、ロボットが移動するのは実環境で
あり、取得する画像には対象物以外にも物体があることを想定しているので、同様の手法で
Voxel の初期形状を生成することが困難である。そこで、アフィン不変量を利用して得た密な
形状を、Voxel 空間に統合し得た結果を、Space Carving のための初期形状として利用する。こ
の形状は線形近似の誤差を含んでいるが、補正のための初期形状としては十分な精度を持つ。
また、カメラの位置・姿勢は、特徴点の3次元位置と共に画像を取得する毎に推定できてい
る。すなわち、Voxel 空間の初期形状とカメラの位置・姿勢の問題は解決し 、Space Carving が
利用できる。
Voxel Space
Voxel V
?
Va
Vb
remove
Image A
Image B
図 5.8: Space Carving
具体的なアルゴ リズムを以下に示す。アフィン不変量を利用した密な復元結果を Voxel 空
間に統合することで得た Voxel 集団を、Photometric な情報に従い削っていく。すなわち、図
5.8 に示すように、ある Voxel V が画像 A 上に投影された際、その投影像 va に含まれる画素
の輝度値を記録しておく。そして別の画像 B 上にその Voxel V が投影された際、その投影像
vb の画像領域に含まれる輝度値を調べ、画像 A の va の輝度値と異なれば 、その Voxel は消去
する。これを複数枚の画像間で繰り返しおこない、削られる Voxel の数が所定の閾値を下回っ
たか、繰り返しの回数が一定値を越えたら処理を終了して最終的な対象物の形状を得る。
Space Carving は、幾何学的な近似を含まず、画像の Photometric な情報のみで処理をおこ
なうため、テクスチャを有する物体の復元の場合、アフィン不変量を利用した密な形状復元
の誤差を補正できる。
47
5.4
形状モデリングアルゴリズムの統合
既存の手法や提案した手法を効果的に組み合わせることにより、形状モデリングのアルゴ
リズムを構築する。
5.4.1
統合アルゴリズムの構成
前述したように、形状モデリングの統合アルゴ リズムは、3つのフェーズに分けられる。初
期フェーズ、逐次フェーズ、最終フェーズである。初期フェーズでは、対象物の一部分を観
察した画像列を用いて、特徴点の3次元位置とカメラの位置・姿勢を同時に推定する。逐次
フェーズでは、対象物の周囲を走行しながら、画像を取得するたびに、カメラの位置・姿勢
と特徴点の3次元位置を交互に求めていく。最終フェーズでは、得られた結果を補正し 、正
確な形状モデルを獲得する。このうち、初期フェーズ、逐次フェーズは、実時間性を考慮し
た特徴点に基づく高速な処理で構成され 、最終フェーズは Photometric な情報を用いて復元精
度を高める目的で構成されている。以下では、各フェーズの詳細を説明し 、最後にアルゴ リ
ズムのポイントについて述べる。
5.4.2
前提条件
対象物の発見処理により、物体とロボットの相対位置と、物体の大まかな形状が判ってお
り、対象物の特徴点が画像列の中で引き続き追跡できている。ロボットは、まず発見された
物体に近づき、その後は対象物とカメラとの距離を所定の範囲内に保つように物体の周囲を
走行する。
5.4.3
初期フェーズ
カメラの位置・姿勢と、特徴点の3次元位置を同時に算出し 、逐次フェーズのための初期
値を生成する。
対象物の発見処理で求められた特徴点の3次元位置や、オド メトリから得るカメラの位置・
姿勢には、誤差が多く含まれる。これらを正確に求め直すため、複数枚の画像中の複数個の
特徴点を用いて、因子分解法をおこなう。その後、因子分解法の誤差を非線形最小化によっ
て補正し 、正確なカメラの位置・姿勢と、複数の特徴点の3次元位置をまとめて求める。
発見処理の後、対象物に接近しながら走行する間に取得した画像列では、映り込む物体の
姿勢変化が少なく、オクルージョンが起こりにくい。そのため、多くの特徴点が複数枚の画像
で観測し続けられる。この理由から、初期フェーズでは因子分解法の利用が有効である。因
子分解法は SFM 問題を解くための代表的な手法であり、画像列の特徴点の推移情報を並べた
行列から、カメラの位置・姿勢と特徴点の3次元位置を以下の式により同時に求めることが
できる。
W = MS
(5.4)
48
W は画像特徴点を並べた行列、M はカメラの姿勢を表す行列、S は特徴点の3次元位置を
表す行列である。式の詳細は付録 A を参照されたい。これにより、複数枚の画像にわたって
追跡が続いた複数の特徴点の推移情報を用いて、カメラの位置・姿勢と特徴点の3次元位置
を同時に算出する。ただし 、本研究では弱透視投影モデルによる因子分解法を用いているた
め、処理が簡便で高速に実行できる一方、カメラの平行移動成分や、対象物の正確なスケー
ルが求まらない。また、対象物の形状には線形近似の誤差を含んでいる。これらについては、
対象物の発見処理で判明した、対象物とカメラ間の距離情報を用いてスケールを決定し 、そ
こから求めたカメラの位置・姿勢と特徴点の3次元位置を初期値として、非線形最小化( 式
5.5 )による補正処理を加えることで対処する。因子分解法の結果は線形近似等の誤差が含ん
でいるが 、非線形最小化の初期値としては、十分に良い近似値となる。
C=
2 P
T
rxj mij
j=0 i=0
rTzj mij
Xi + txj
−
Zi + tzj
2
+
2 P
T
ryj mij
j=0 i=0
rTzj mij
Yi + tyj
−
Zi + tzj
2
(5.5)
mi = (ui /f1 , vi /f2 , 1) は画像特徴点の位置座標を焦点距離で割った値のベクトル表現であり、
rx 、ry 、rz は回転表列 R の各軸成分を表す行ベクトルである。tx 、ty 、tz は、ワールド 座標
系からのカメラ位置への平行移動成分、X 、Y 、Z はワールド 座標系から見た特徴点の3次元
座標を表す。また、i は画像、j は特徴点の番号を表す。この非線形の評価関数から、R と T 、
特徴点の3次元位置の補正をおこなう。
上記の処理は画像情報しか用いないため、ロボットの動作モデルが不要で利便性が高い。そ
の反面、特徴点の追跡ミスにより復元結果が大きく影響を受ける。すなわち、追跡誤差が大き
な特徴点を含んだ状態で処理をおこなうと、復元の結果全体に悪影響がある。そのため、こ
れらの特徴点を除去した上で因子分解法を用いるべきである。形状モデリングの初期フェー
ズでは、前述した RANSAC の枠組みを用いて対処する。具体的には、多数枚の画像で追跡で
きている特徴点の5割程度をランダムに選び出し 、因子分解法と非線形最小化をおこなうこ
とを繰り返す。もし追跡誤差の小さな特徴点だけを参照できていれば 、求まるカメラの位置・
姿勢と特徴点の3次元位置は精度よく求まる。このことは、非線形最小化の評価関数の値の
大きさにより判断できる。
5.4.4
逐次フェーズ
対象物の周囲から得た画像列から、その全体形状を獲得するフェーズである。このフェー
ズでは、ロボットが対象物の周囲を走行しながら、新たに画像を取得するたびに以下の処理
をおこなう。
1. 3次元位置が既知で、画像間で追跡が続いている特徴点から、カメラの位置・姿勢を非
線形最小化により推定
2. 求めたカメラ位置・姿勢から、新たに抽出された特徴点の3次元位置をモーションステ
レオにより算出
49
3. 求めたカメラの位置・姿勢から、アフィン不変量を利用した密な形状復元をおこない、
Voxel 空間に投票
対象物の周囲の画像を取得する段階に入ると、視点の移動により物体の見え方の変化が大き
くなる。すなわち、セルフオクルージョンにより追跡が不可能になる特徴点と、対象物の新
たに見えてきた部分で抽出される特徴点が混在する状況になり、特徴点は頻繁に入れ替わる。
このため、特徴点の3次元位置算出を1点ごとにおこなえるモーションステレオが有効であ
る。カメラの位置・姿勢は、画像中に存在し3次元位置が既知の特徴点から、非線形最小化
により推定する。以下で、上記の3項それぞれの詳細を述べる。
カメラの位置・姿勢の推定
逐次フェーズでは、新たに画像を取得し特徴点の追跡をおこなった後に、前の画像から
追跡が続いていて3次元位置が既知の特徴点を用いて、カメラの位置・姿勢を算出す
る。ただし 、これらの特徴点を画像間で追跡する際に、Tracker が追跡ミスを起こして
いた場合、カメラの位置・姿勢の推定に失敗する恐れがある。この追跡ミスを全て検知
することは非常に困難であるため、RANSAC の枠組みを用いる。具体的には、3次元
位置が既知である画像特徴点の6割程度をランダムに選び出し 、非線形最小化(式 5.6 )
によりカメラの位置・姿勢を推定することを繰り返す。初期値は、ひとつ前の画像を取
得したカメラの位置・姿勢とする。もし追跡誤差の小さな特徴点だけを参照できていれ
ば 、最適化されたカメラの位置・姿勢に対する評価関数の値が小さくなるため、推定の
精度を判断できる。
C=

P 
rT mi
x
 rTz mi
i=0
−
Xi + tx
Zi + tz
2
+
rTy mi
Yi + ty
−
rTz mi Zi + tz
2 


(5.6)
mi = (ui /f1 , vi /f2 , 1) は画像特徴点の位置座標を焦点距離で割った値のベクトル表現
であり、rx 、ry 、rz は回転表列 R の各軸成分を表す行ベクトルである。tx 、ty 、tz は、
ワールド 座標系からのカメラ位置への平行移動成分、X 、Y 、Z はワールド 座標系から
見た特徴点の3次元座標を表す。また、i は特徴点の番号を表す。ここでの非線形最小化
の変数は、カメラの姿勢を表す回転の2成分と、ロボットの平行移動の2成分である。
以上より、評価関数の値が一番小さくなるようなパラメータの組み合わせを現在のカメ
ラの位置・姿勢の推定値とする。
特徴点の3次元位置算出
カメラの位置・姿勢を推定した後に、現在の画像上で追跡が続いており3次元位置が未
知の特徴点に対して、過去にその特徴点が抽出された時点の画像との間でモーションス
テレオをおこなう。
1 2 + X − s2 Rm
2 + T2
C = X − s1 m
50
(5.7)
R はカメラの姿勢を表す行列、T はカメラの位置を表し 、前述の推定手法により正確に
は画像特徴点の拡張ベクトルであり、s1 、s2 は m
の長さ
求まっているものとする。m
を表すスカラーである。X は特徴点の3次元位置を表す。この評価値が最小となるよう
な X の値を求める。
image2
image1
p2
p1
C2
C1
R,T
図 5.9: モーションステレオの原理
モーションステレオは、カメラの位置・姿勢が既知の条件のもとで、特徴点の3次元位
置を1点づつ求めることができる。算出の原理は、図 5.9 に示すように、2枚の画像に
おいて、それぞれのカメラ中心と画像上の点とを結んだ直線が交わる位置を求めること
である。実際には、いくつかの要因で誤差が含まれるため、2本の直線のユークリッド
距離の自乗和が最も小さい3次元空間の位置を算出する。逐次フェーズではこの性質を
利用し 、復元した特徴点を再度画像上に逆投影した際に、その投影値と画像特徴点の位
置が十分小さいことを調べることで、復元の正確さを測る。画像特徴点の追跡結果と逆
投影した点の位置が十分近ければ 、3次元位置が精度良く求まったとして、その点は以
降のカメラの位置・姿勢の算出に利用する。そうでない点は、引き続き未知の点として
扱う。
密な形状復元
アフィン不変量を利用した密な形状復元を2枚の画像ごとおこない、結果を Voxel 空間
に投票していく。
手順としては、ひとつ前の画像と現在の画像との間で特徴点を追跡したのち、前述した
手法により、3次元位置が既知の特徴点から現在のカメラの位置・姿勢を推定する。密
な復元をおこなうための2枚の画像を、現在の画像と2∼4枚前の画像とし 、これらの
画像間でどの特徴点の追跡が続いているかを調べる。現在の画像上で追跡できているこ
れらの特徴点を、ド ロネー分割することで3点ごとの組とし 、この3点の位置関係と、
もう片方の画像上での同じ3点の位置関係をそれぞれ記憶しておく。最後に、現在の画
像で指定した画素に対し 、それを内包する3点の特徴点からアフィン基底を生成するこ
51
時刻 t - 4
時刻 t
共通した特徴点
ドロネー分割
図 5.10: アフィン基底の生成
52
とで、指定した画素がもう片方の画像上のどの位置にあるかを推定する。
図 5.10 に、アフィン基底生成の例を示す。この例では、2枚の画像で共通する特徴点に
ついて、ド ロネー分割と呼ばれる3角形分割のアルゴ リズムを適用することで、特徴点
が小さな3角形を生成するような3点の組に分ける処理をおこなっている。
以上を画像上の対象物の存在する範囲の全ての画素についておこない、密な形状を得る。
このフェーズでは、それぞれの処理が高速であり、画像を取得するたびに対象物の形状を
逐次的に求められるため、ロボットの経路をリアルタイムに変更することが可能である。
5.4.5
最終フェーズ
逐次フェーズまでに取得した対象物の全体形状を補正するフェーズである。Voxel 空間の投
票結果から、所定の閾値を越える Voxel のみを残し 、その Voxel 集団を Space Carving により
削ることで、最終的な形状を得る。
逐次フェーズにより得た Voxel による形状を、初期形状として Space Carving の処理に与え
る。この初期形状には、2次元のアフィン変換による誤差が含まれる。最終フェーズでは、特徴
点の推移情報を用いて高速に求めた3次元形状を、Photometric な性質を用いた Space Carving
によって補正する。Space Carving については、前述した通りである。
5.4.6
提案方式のポイント
提案するアルゴ リズムについて整理し 、ポイントを述べる。
目的
初期フェーズ
逐次フェーズ
処理内容
特徴点ベース
逐次フェーズの初期値を生成 ・カメラの位置・姿勢
・特徴点の3次元位置
を同時に算出
カメラ位置・姿勢
物体の密な形状
特徴点ベース
カメラの位置・姿勢を求める
逐次推定 ↓
特徴点の3次元位置求める
↓
2枚の画像ごとの相関ステレオ
手法
因子分解法
非線形最小化
非線形最小化
モーションステレオ
アフィン不変量
Photometricベース
最終フェーズ
形状復元結果を補正する
voxel空間へ統合
↓ 形状を補正
Space Carving
図 5.11: 提案アルゴ リズムのポイント
図 5.11 は、提案するアルゴ リズムの流れを整理したものである。ロボットの走行中におこ
53
unknown
3D Feature Points
Preliminary
Phase
unknown
Camera Pose
Factorization
Nonlinear Minimization
Calculate
3D Points and Camera Poses
Sequential
Phase
known
Camera Pose
known
3D Feature Points
Nonlinear Minimization
unknown
3D Feature Points
Calculate
3-D Point
yes
Motion
Stereo
Calculate
Camera Pose
Affine Invariant
Reconstruction
enough accracy?
Voting to Voxel Space
Final Phase
Space Carving
図 5.12: 形状モデリングアルゴ リズム
なう初期フェーズ・逐次フェーズにおいては、特徴点を基に高速な処理をおこなう。ロボット
が対象物に接近する走行をおこなう初期フェーズでは、取得する画像列で特徴点の入れ替わ
りが少ないことから、因子分解法を利用し 、高速にカメラの位置・姿勢と特徴点の3次元位置
を求めている。逐次フェーズでは、特徴点の入れ替わりが多く、誤差が含まれやすいことか
ら、特徴点を1点づつ扱い、かつロバスト性を十分に考慮した処理をおこなっている。この
2つのフェーズでは、処理が高速かつ逐次的なため、カメラの動作計画などを同時におこな
うことが可能である。最終フェーズでは、これまでに得てきた情報を有効に利用し 、かつ誤
差を補正する処理をおこなうことで、正確な形状モデルを獲得できる。アルゴ リズムのデー
タの流れを、図 5.12 に示す
54
5.5
基礎実験
5.5.1
実験方法
床面上に設定した対象物に対し 、ロボットが 1500mm 手前で対象物を発見したという前提
を置き、ロボットに対象物を中心とした半径 800mm の円経路を与えた。ロボットが 20mm 走
行する毎に画像を取得することで合計 229 枚程度の画像列を得た。ここでの対象物は、直径
220mm の球体(サッカーボール )とし 、形状モデリングは、この画像列に対し 、オフライン
でおこなった。初期フェーズを最初の 25 枚の画像で、その結果を初期値として残りの 204 枚
の画像に対して逐次フェーズをおこなった。最終フェーズでは、全周囲の画像列のうち3ヶ
所から、30 枚ずつ画像を選んで処理をおこない、最終的な形状を得た。
Robot
Trajectory
Sequential Phase
800mm
Preliminary Phase
1500mm
図 5.13: ロボットの走行経路
実験に用いたシステムの構成図を図 5.14 に示す。画像取得には、HITACHI 製の画像処理モ
ジュール IP7500 を用いる。画像のサイズは 512 × 440pixel である。カメラのパン・チルト角と
車体の行動制御は、シリアル通信を用いてノート PC( CPU Celeron 1.1GHz )上でおこなう。
画像取得の命令は、ノート PC からシリアル通信を介して IP7500 へ出力される。
5.5.2 カメラの注視制御
提案する形状モデリングを実現するためには、移動ロボット上に搭載したカメラによって、
対象物の全周囲の画像を取得しなければならない。このとき問題となる事柄は、大きく分け
ると以下の2つになる。
1. 対象物の全体像を復元できるような画像を、適当な視点から得られているか
55
Camera
映像信号
シリアル通信
NotePC
IP7500
パン・チルト角制御
画像取得命令
オドメトリ情報取得
Celeron 1.1GHz
Robot
図 5.14: システム構成
2. 取得した連続画像から、特徴点の抽出、追跡が可能であるか
項目1.については、ロボットの経路計画の問題となるが 、本実験では対象物の形状が複雑
ではないため、単純な円経路で対応し 、対象物の形状が複雑であった場合のロボットの軌道
生成については今後の課題としておく。一方、項目2は 、画像列を用いた処理が可能か否か
に関係する基本的な事柄である。具体的には、連続した2枚の画像間での視差が 、特徴点追
跡が可能な程度に小さくなっていることや、画像が「ぶれ 」や「ぼやけ」を含まない状態で
安定して取得できていることが画像列への条件となる。本実験では、視差の問題については、
ロボットが 20mm 走行する毎に画像を取得すれば十分であると経験から判断した。安定した
画像列の取得に関しては、対象物が画像の中央に常に映り込むように、ロボットのオド メト
リ情報と合わせたパン・チルトカメラの視点を決定することで対応した。以下で、オド メト
リ情報に基づくカメラの角度の算出法について述べる。
注視すべき点の3次元位置が P = (X, Y, Z) であったとき、オド メトリから、ロボットの位
置 T = (xr , yr ) と角度 α が得られたとする。図 5.15 中の d はロボットの中心からカメラまで
の距離、h は床面からのカメラの高さである。これらより、カメラのパン角 θ とチルト角 ψ を
求める。まずカメラの位置を C = (xr + d cos α, yr + d sin α, h) として、
a = X − xr − d cos α
b = Y − yr − d sin α
(5.8)
とするとき、それぞれの値は次のように求まる。
θ = cos−1 da cosα + db sin α
d a2 + b2
−1
ψ = tan h − Z
a2 + b2
これにより、カメラの注視制御をおこなう。
56
(5.9)
Side View
S
camera
robot
Target Point
h
d
Target Point
Top View
α
θ
図 5.15: ロボットの走行経路
5.5.3
評価
移動ロボット上から取得した画像列の例を図 5.16 に、特徴点の抽出例を図 5.17 に示す。初
期フェーズに利用する画像列では、複数枚の画像間で追跡され続ける特徴点を処理に用いる
ため、最初の画像から 150 点の特徴点を抽出し 、その後複数枚にわたって追跡のみをおこなっ
た。逐次フェーズに利用する画像列では、特徴点を 1 点毎に処理するため、画像内の特徴点
が常に 150 点となるように設定し 、追跡可能な特徴点についてはそのまま処理を続け、追跡
不可能になった特徴点は特徴点リストから消去し 、別の部分に新たな特徴点を抽出すること
とした。
以下で、各フェーズ毎でデータを示しつつ、評価をおこなっていく。
57
(1)
(5)
(2)
(6)
(3)
(7)
(4)
(8)
図 5.16: 全周囲画像の例
58
(1)
(5)
(2)
(6)
(3)
(7)
(4)
(8)
図 5.17: 特徴点の抽出・追跡
59
初期フェーズ
初期フェーズでは、25 枚の画像全てで追跡が続いた特徴点の推移情報を用いて、カメラ
の位置・姿勢と特徴点の3次元位置を同時に復元する。図 5.18 は、初期フェーズで用い
る最初の画像と、最後の画像の特徴点の追跡結果を示している。ここでは、最初に 150
点の特徴点を抽出したが 、最終的に追跡され続けた特徴点は 80 個程度であった。さら
に、これらの特徴点の中には追跡ミスを起こしている点もあるため、前述した RANSAC
の枠組みを用いて、40 個の特徴点から、カメラの位置・姿勢と特徴点の3次元位置を
推定した。処理時間については、1枚の画像特徴点の追跡処理に平均 300msec、因子分
解法、非線形最小化を一度おこなうのに 50msec を要した。
図 5.18: 初期フェーズでの特徴点追跡結果
逐次フェーズ
逐次フェーズでは、初期フェーズの結果を初期値とし 、カメラの位置・姿勢と特徴点の
3次元位置を逐次的に求める。このフェーズでは、視点の移動により対象物の見え方が
大きく変化するため、追跡不可能になった特徴点の消失に伴い、特徴点の追加抽出をお
こなう。図 5.19 は、特徴点を抽出・追跡した過程で、何点の特徴点が新たに抽出された
かを示すグラフである。横軸が画像番号、縦軸が新たに抽出された特徴点数を表す。ほ
とんど 全ての画像において、数個の特徴点の入れ替わりが起きていることが判る。
逐次フェーズでは 、KLT-Tracker を改良することで特徴点のオクルージョンに対処し 、
RANSAC の枠組みを用いることで特徴点追跡ミスへ対処していることは前述した通り
である。以下では、この改良の有効性について実データと共に示す。
このフェーズでは、RANSAC の枠組みを用いることが不可欠である。なぜなら、本実験
で用いているような、移動ロボットに搭載したカメラから得る画像列に対しては、KLTTracker はしばしば追跡ミスを起こす。これらの特徴点を基にカメラの位置・姿勢を求
めようとすると、ほとんどの場合非線形最小化が収束せず、処理が破綻する。また、画
像のセルフオクルージョンに対し KLT-Tracker を改良したことは2節で述べたが、この
60
図 5.19: 特徴点の入れ替わり
改良無しに復元をおこなった場合、直接には処理の破綻につながらないが 、復元精度が
著しく低下する。
図 5.20 、図 5.21 は、KLT-Tracker の改良の有無について、復元結果の比較を示したもの
である。視点は床面と垂直な方向であり、各軸の単位は mm である。改良前には 、ロ
ボットに与えた経路を復元できず、カメラの位置・姿勢と物体の形状の誤差が相互に蓄
積していく。改良をおこなった場合には、半径 800mm の円経路を正確に復元しており、
カメラの位置・姿勢を推定するのに必要な3次元位置が既知の特徴点が、全ての画像で
一定個数以上観察できている。
図 5.22 は 、逐次フェーズによるカメラの位置・姿勢と特徴点の3次元位置の復元結果
である。円錐がカメラを表し 、円錐の底面がカメラの向きである。全てのカメラ姿勢
が、対象物の方向を向く形で復元され、位置についてもロボットに与えた円経路が得ら
れていることが判る。カメラの位置・姿勢については 190ヶ所、特徴点の3次元位置に
ついては 1300 点を復元している。カメラの位置・姿勢を求める処理で用いる RANSAC
については、最大 500 回を上限としたが、非線形最小化によるの関数の評価値が所定の
閾値より小さな値に収束した時点で、処理を終了するよう設定した。処理時間について
は、1枚の画像から特徴点の抽出・追跡処理に 400msec、204 枚の画像から特徴点の3
次元位置を求める処理に 7sec 、80 ペアの画像からアフィン不変量を用いた復元をおこ
なうのに 15sec であった。すなわち、画像1枚に要する処理時間の平均は 700msec 以下
である。
61
Y
改良前
改良後
Target Object
X
図 5.20: 形状モデリングの改良(1)
信頼できる特徴点の数
Tracker改良後
Tracker改良前
画像枚数
図 5.21: 形状モデリングの改良(2)
62
(1)
(3)
(2)
(5)
(3)
(6)
図 5.22: カメラ位置・姿勢と特徴点の3次元位置
63
最終フェーズ
最終フェーズでは、逐次フェーズで得られたカメラの位置・姿勢を用いて、アフィン不
変量を利用した密な復元の結果を初期値とした Space Carving をおこなう。本実験では、
voxel の一辺の長さは 2mm とし 、最終的に 60000 個の voxel によって対象物の密な形状
を表現した。処理時間は、180sec を要した。
復元結果を図に示す。実際の対象物の大きさをほぼ正確に再現できており、実測値との
誤差は最大 10mm 程度であった。ただし 、本来あるべきでない場所に voxel が残ってし
まう現象が見られており、この部分の改良は今後の課題である。
以上の処理により、対象物の形状モデリングを実現した。他のモデリング例を図 5.24 、図
5.25 に示す。
図 5.23: 最終フェーズの結果
64
図 5.24: 対象物(グローブ )の画像列
65
図 5.25: 対象物(グローブ )のモデリング結果
66
第 6 章 統合に向けて
本研究では、物体の形状モデリング手法を提案し 、実際にロボットを走行しながら取得した
画像列に対し 、オフラインで処理をおこなった。しかし 、提案手法はロボットが走行しつつ
形状モデリングをおこなうことを想定して構築されているため、形状モデリング、走行制御な
ど 、全ての処理を移動ロボット上に搭載し 、処理をおこなうシステムを構成することが 、ひ
とつの目標達成であると言える。そのためには解決すべき課題がいくつか残されている。以
下では、システムを統合し形状モデリングをおこなう際に、さらに考慮すべき事柄について
述べる。
6.1
画像の取捨選択
移動ロボットに搭載したセンサから環境情報を取得する場合、全てのデータが良好な状態
で得られているとは限らない。本研究で用いているシステムにおいても、ロボットの車体と
カメラのパン・チルト角を動作させながら取得する画像の状態が悪く、多くの特徴点の抽出・
追跡に失敗する事態が起こりうる。提案している手法では、画像がひど くぶれてしまってい
る場合などの対処をおこなっていない。すなわち、状態の悪い画像を検知し 、その画像を処
理の対象から外す、などの新たな判別処理が必要になる。
6.2 ロボット の動作計画
本研究の実験で用いた対象物は、ロボットに単純な走行経路を与えても十分に復元が可能
な物体であった。しかし 、実環境に存在する多くの物体の形状モデリングには、ロボットは
対象物を観察しつつカメラの視点移動の計画を立てなければ 、物体の全体像をモデリングで
きない可能性がある。すなわち、画像を取得するごとに現在観察できている対象物の部分形
状を復元し 、その結果から新たな視点を計画する処理が必要である。本研究では、視点移動
計画への拡張を考慮し 、逐次的に形状モデルを生成できる手法を提案している。
67
第 7 章 まとめ
本論文では、単眼のカメラを搭載した移動ロボットにより、物体の3次元形状モデルを獲得
する手法を提案した。提案手法は、コンピュータビジョンの手法を適切に組み合わせ、ロボッ
トが実環境で動作するが故に発生する様々な誤差に対処することで、移動ロボットに搭載す
る目的に則した、高速な形状モデリングが可能である。さらに、移動ロボット「山彦」に単
眼カメラを搭載した実験システムを構成し 、実際にロボットを走行させながら取得した画像
列を用いて実験をおこない、有効性を示した。
提案手法は、
• 対象物の位置・形状・大きさは未知で良く、マーカ等を必要としない
• モデリングの対象物をロボットが自律的に決定する
• ロボットが走行しながら可能な高速かつ逐次的に形状を獲得できる
といった特長を持つ。さらに、ロボットの動作モデルを用いずに形状モデリングをおこなえ
るため、カメラをロボットの車体の上でなく、マニピュレータの手先に取り付けたり、カメ
ラの動きデータが得にくい機体の場合でも適用が可能である。
ロボットが物体の操作などをおこなう従来の研究では、物体の形状モデルや、形状の構成
要素などを事前知識として与えておくものがほとんどである。本研究では、人間があらかじ
めロボットに与えておくことができる事前知識には限りがあると考え、ロボットが自律的に
操作対象物の情報を獲得するといったアプローチをとっているところに新規性がある。
本研究で形状モデリングを実現した物体はまだ少数であるが 、日常に存在する多くの物体
や環境でこの機能を適用できるようになれば 、物体の把持やナビゲーション、経路計画など
の従来の研究成果と組み合わせることで、現状で日常生活に存在するロボットの機能をはる
かに上回るような「人間の役に立つ」自律ロボットが実現できると信ずる。
68
謝辞
本研究は、工学博士 坪内孝司 筑波大学機能工学系助教授のもとでおこなわれたものです。
同助教授には、研究を進めるに際し 、適切かつ熱心なご指導とご助言をいただきました。本
論文をまとめるに当たっても、適切なご助言をいただきました。
友納正裕 科学技術振興機構 さきがけ には、研究の方針や理論に関する相談にたびた
び乗っていただきました。同氏から学んだことは、本研究の範疇を越え、これからの研究活
動や日常生活にも役立つことばかりでした。
工学博士 油田信一 筑波大学機能工学系教授、工学博士 大矢晃久 筑波大学機能工学
系助教授、工学博士 中村裕一 筑波大学機能工学系助教授には、本研究にとって有益な助
言をいただきました。また、筑波大学機能工学系知能ロボット研究室の諸氏には、多くの協
力、支援、アドバイスをいただきました。特に、大野和則氏、入江清氏とは、情報処理推進機
構・未踏ソフトウェア創造事業ユース枠の採択プロジェクトにおいて、ソフトウェア開発の
ための多くの議論とプログラムの実装を昼夜を問わず共におこない、忙しくも充実した、楽
しい時を過ごさせていただきました。以上のみなさまに深く感謝いたします。
最後に、わがままばかりで帰省することも少ない息子を、暖かく支援してくださる両親と、
いつも後ろを振り向いて私を気にかけてくださる姉に、この場をお借りして深く感謝の意を
表します。
69
付 録A
コンピュータビジョン手法
本章では、論文中で用いている既存のコンピュータビジョンの手法について、モーションス
テレオ、因子分解法、非線形最小化、エピポーラ幾何の概要と、本編で書き切れなかった数
式的な表現について述べる。また一般には、これらの手法を用いる際の基準座標系は、画像
を最初に取得したカメラのカメラ座標系とされることが多いが 、本研究では基準座標系がロ
ボットが走行する床面上に存在している。そこで、これらコンピュータビジョンの手法につ
いて述べると共に、復元された情報を本研究での座標系やカメラパラメータへ変換する方法
についても、算出の詳細を述べる。
70
A.1 モーションステレオ
2枚の画像間で対応づいている特徴点があり、カメラの位置・姿勢が既知であるとき、モー
ションステレオにより、画像上の点の3次元位置を求めることができる。以下で、評価関数
と3次元位置の導出方法について説明する。
評価関数
1 2 + X − s2 Rm
2 − T2
C = X − s1 m
(A.1)
1 、m
2 は、2枚の画像における対応点の投影座標の拡張ベクトルであり、
ここで m


1 = 
m

u1
f1
v1
f2
1




, m

=
2


u2
f1
v2
f2
1




(A.2)
である。f1 、f2 は、カメラの焦点距離を表す。X は点の3次元位置、R 、T は、1枚目
の画像を取得したカメラから、2枚目の画像を取得したカメラへの相対的な位置・姿勢
1 、m
2 の長
を表す(1番目のカメラ位置・姿勢を基準とする)
。s1 、s2 は、それぞれ m
さを表すスカラー定数である、
3次元位置の導出方法
s1 、s2 について評価関数を微分する。
∂C
T1 (X − s1 m
1 )
= −2m
∂s1
∂C
2 )T (X − s2 Rm
2 − T)
= −2(Rm
∂s2
これらが0であるとし 、s1 、s2 について式を解くと、それぞれ以下のようになる。
s1 =
s2 =
T1 X
m
T1 m
1
m
T2 RT (X − T)
m
T2 m
2
m
これを式 (A.1) に代入し 、X について連立方程式を立てる。具体的には、
BX = b
71
を X について解くことで、点の3次元位置を得る。ただし 、
B = 2I −
b=
1 m
T1
2 m
T2 RT
Rm
m
−
T1 m
1
T2 m
2
m
m
2 m
T2 RT
Rm
I−
T2 m
2
m
T
である。B は 3 × 3 の行列となり、b は 3 × 1 のベクトルとなる。
モーションステレオは、特徴点を一点づつ扱うことができ、処理が高速である。また、画
像間で特徴点の対応付けに失敗していた場合には、評価値 C が大きな値となる傾向があるた
め、外れ値の検出にも利用できる。一方で、カメラの位置・姿勢が正確であるという条件が
必要となり、これらに誤差が含まれていた場合、算出される特徴点の3次元位置に影響を及
ぼす。
72
A.2
因子分解法
因子分解法とは、連続画像上の複数の特徴点を並べた行列を作成し 、ある条件の元で因子
分解をおこなうことにより、カメラの姿勢と、特徴点の3次元位置を同時に求める方法であ
る。本研究では、カメラモデルを弱透視投影モデルに近似した手法を用いる。以下では、因
子分解法の流れと、本研究での適用方法について説明する。
解法
F 枚の画像があり、全ての画像間で対応付いている特徴点が P 個あるとする。特徴点 p
の f フレーム目の画像上での位置を (uf p , vf p ) としたとき、以下の行列 W を定義する。

···
..
.
u11




 u
 F1
W=
 v11




···
···
..
.
u1P





uF P 


v1P 




(A.3)
vF 1 · · · vF P
この 2F × P の行列を、計測行列と呼ぶ。そして W の各行毎に平均を求め、それを W
から差し引いた行列 W をつくる。
u¯f =
P
1 uf p
P p=1
,
v¯f =

P
1 vf p
P p=1

u¯1
 . 
 . 
 . 


 u¯ 


F
W = W − 

 v¯1 


 . 
 .. 


(A.4)
v¯F
上記の式において画像上の特徴点の平均を求めることは、空間上の特徴点の重心を求め
ることに等しい。そして、投影モデルを線形に近似し 、ワールド 座標系の原点をこの重
心に設定することで、行列 W の rank が3になるという重要な関係が成り立つ。この
性質を利用し 、計測行列 W を特異値分解する。
W = UΣVT
(A.5)
この分解結果と、W の rank が3になるという性質から、U を 2F × 3 、Σ を 3 × 3 、
V T を 3 × P の行列とし 、以下のように2つの行列の積を得る。
73
1
1
U Σ VT = (U Σ 2 )(Σ 2 VT ) = M S
(A.6)
ここで、上記の M と S の間には、任意の 3 × 3 の正則行列 C が存在する。
M S = (M C)(C−1 S )
(A.7)
次にこの C を算出し 、M と S から、カメラ姿勢を並べた行列 M と、特徴点の3次元
位置を並べた行列 S に変換する操作をおこなう。今、M の要素を以下のように表す。


1
m
 . 
 . 
 . 

 m
F
 M = 
 n
 1
 .
 ..

nF









(A.8)
ここで、投影モデルが弱透視投影であることから、分解されたカメラ運動の x 軸( mf )、
y 軸( nf )は以下の式を満たす。
mf =
if
jf
, nf =
zf
zf
(A.9)
ここから、以下のような拘束条件が導かれる。
f CCT m
f T = mTf mf = 12
m
zf
T
1
T
T
f CC n
f = nf nf = 2
n
zf
T
T
T
f CC n
f = mf nf = 0
m
f = (1, · · · , F )
(A.10)
特に、
mT1 m1 = nT1 n1 = 1 (A.11)
以上より、M の各行がこの条件を満たすような条件式をたてる。すなわち、M の行を
a = (α, β, γ) 、正則行列 C の積を B(= CCT ) としたとき、
aT Ba =
α β γ




a b c
α
 12 (a = a )



zf
 b d e   β  =
 0 (a = a )
γ
c e f
となるような対称行列 B の要素を計算すればよい。実際には、B の 6 個の要素を未知
数とし 、2F + 1 個の方程式を立てることで、最小自乗的に解を得ることができる。こ
74
の B を m1 = (1, 0, 0) 、n1 = (0, 1, 0) の条件のもとで固有値分解することで、C を算出
できる。以上より、計測行列 W は、以下のように分解される。


mT
 .1 
 . 
 . 

 mT

W = MS =  TF
 n1

 .
 ..

nTF



 s1





· · · sP
(A.12)
この分解により、M にはカメラの運動が 、S には特徴点の 3 次元位置が含まれている
ので、それぞれの要素を求めることができる。
因子分解法は、多数枚の画像と多数の特徴点の推移情報を一括(バッチ的)で処理するた
め、誤差が平均化され 、ロバストな手法と言える。また、本研究で用いている線形近似によ
る手法では、非常に高速に結果を得ることができる。一方で、バッチ処理であるため、利用
局面が制限されたり線形近似を用いたため復元結果が誤差が入る等の問題がある。これらに
対しては、復元の要件に応じて他の手法と使い分けたり、非線形最小化により誤差を補正す
る処理を加える等で対応する。
75
A.3
本研究での因子分解法
本研究では、形状モデリングの初期フェーズにおいて、因子分解法を利用する。このとき、
対象物までの距離とカメラの焦点距離が 、あらかじめ求められている。これらの事前情報を
利用して、復元結果をワールド 座標系に変換する方法を示す。
座標系の変換
弱透視投影を仮定した場合、空間上の点、カメラの位置・姿勢、画像上の点の関係は以
下の式で表される。
up =
1 T
1
if (sp − tf ), vp = jTf (sp − tf ), zf = −kTf tf
zf
zf
(A.13)
ここで、if 、jf 、kf はカメラ姿勢を表す各軸の方向ベクトル、tf は特徴点群重心からカ
メラ位置への平行移動ベクトル、zf はカメラ位置から仮想平面( 2.1 弱透視投影参照)
までの距離、u 、v は画像上の点、s は点の3次元位置を表す。
これを透視投影と比較するためにまとめると、画像上の点の重心を (ug , vg ) としたとき、
以下のようになる。




iTf
up + ug

 
T
zf  vp + vg  = 
 jf
1
0
| −iTf tf  sp
T

| −jf tf 
1
| −kTf tf
(A.14)
次に、透視投影については、回転行列を R 、平行移動ベクトルを T 、カメラの内部行列
を A とするし 、以下の式で表せる。



u




w  v  = A(R| − RT) 


1
X
Y
Z
1






(A.15)
これを以下のように変形する。


up
f1
vp
f2


u
rT

  x

 =  rT
 v  = w
y


T
r
1
1
z
−1 
wA



| −rTx T 

| −rTy T  


| −rTz T
X
Y
Z
1






(A.16)
弱透視投影の線形近似により、すべての特徴点がその重心を通り、画像と平行な仮想平
面上にあると仮定している。よって光軸方向との内積が常に0となるので、透視投影行
列の 3 列目の要素は0となる。さらに、式 (A.14) を透視投影を表す式 (A.16) と比較す
る。ここでは、式 (A.14) の奥行き係数 zf は画像毎に決められ、式 (A.16) の係数 w は画
像毎、点毎に決められている。
76
これらから、カメラの内部パラメータ( f1 、f2 ) と、カメラと対象物までの距離 zf が既
知の場合、拘束条件を以下のようにすることで、ワールド 座標系での位置関係が求まる。
mTf
mf =
f1
zf
2
,
nTf
nf =
f2
zf
2
となる。この拘束条件は、以下の式に基づいている。
 u
p
 fv1p
zf 
 f2



| −iTf tf
 sp
T

| −jf tf 
1
| −kTf tf
iT
  f
 =  jT
  f
0
1
77
(A.17)
A.4
非線形最小化
非線形の関数を用いて、多数の変数の組み合わせから最適な解を求める手法である。本研
究では、2枚もし くは多数枚の画像を用いて、カメラの位置・姿勢や、点の3次元位置を補
正する際に用いる。
条件として、別の視点から取得した2枚もしくは多数枚の画像があり、画像間で4つ以上
の点が対応づいているとする。また、初期値が必要なため、真値に近いカメラの位置・姿勢
と特徴点の3次元位置があらかじめわかっているものとする。本研究では、これらの初期値
を、モーションステレオや、因子分解法を用いて取得しておく。
評価関数の算出
透視投影モデルのもとで、カメラの位置・姿勢、特徴点の画像上の位置と空間上の位置
に関する関係式を導出する。基準座標系は、ロボットが走行する床面上のワールド 座標
系( ローカル座標系)とする。ある点 P をワールド 座標系から見た場合と、カメラ座
標系から見た場合の関係式は、以下の式で表される。
R1 T x1 = X − T1
R2 T x2 = X − T2
(A.18)
ここで、Ri (i = 1, 2) はワールド 座標系から見たカメラ姿勢の回転行列、Ti はワールド
座標系から見たカメラ姿勢への平行移動ベクトル、X はワールド 座標系から見た点 P
の3次元位置、xi はカメラ座標系から見た点 P の3次元位置を表す。
一方、透視投影の式では、点の画像上の位置 (u, v) と空間上の位置 (X, Y, Z) は、以下
の式で結びつく。




X
u


 Y 




w  v  = A(R| − RT) 

 Z 
1
1
ここで、w はスカラーの係数、A はカメラの内部行列である。カメラの内部行列はあら
かじめ求めておく。
まず、カメラ座標から見た点 P の座標を (xc , yc , zc ) と置き、透視投影の式を表す。この
時、基準座標系はカメラ座標系となるので、そのカメラの位置・姿勢は、回転行列が単
位行列、平行移動ベクトルがゼロベクトルとなる。






u
f1 0 0
1 0 0 0 

 


w  v  =  0 f2 0   0 1 0 0  


1
0 0 1 0
0 0 1
78
xc
yc
zc
1






これより w を消去すると、以下の関係式が導かれる。




zc
xc
f1 u 



zc

 yc  = 
 f2 v 
zc
zc
(A.19)
この式( A.19 )を、式( A.18 )にそれぞれ代入し zc を消去すると、以下の評価関数が
導かれる。
C=
2 P
T
rxj mij
j=0 i=0
rTzj mij
+
2 P
T
ryj mij
j=0 i=0
rTzj mij
Xi + txj
−
Zi + tzj
Yi + tyj
−
Zi + tzj
2
2
(A.20)
具体的には、以下のような4つの式から成る。
C1 =
C2 =
C3 =
X
v1 sin θ1 − f2 cos θ1
−
v1 cos θ1 + f2 sin θ1 Z − h
2
f2 u1
Y
− f1
v1 cos θ1 + f2 sin θ1
Z−h
2
−f2 u2 sin φ + f1 v2 sin θ2 sin φ − f1 f2 cos θ2 cos φ
X − dx
− f1
v2 cos θ2 + f2 sin θ2
Z −h
C4 =
f2 u2 cos φ + f1 v2 sin θ2 cos φ − f1 f2 cos θ2 sin φ
Y − dy
− f1
v2 cos θ2 + f2 sin θ2
Z−h
2
2
f1 、f2 はカメラの焦点距離に関する係数であり、既知とする。また、h はカメラの床面
からの高さであり、全体を通して一定である。
この式より、カメラの角度 ψ 、θ 、ロボットの並進成分 dx 、dy 、点の空間上での位置座標
X 、Y 、Z のうち、未知のパラメータを変数とし 、勾配法による最小化計算をおこなう。
勾配法による最適化
求めた評価関数にパラメータを入力し 、最適化計算をおこなう。本研究では、ニュート
ン法と呼ばれる関数の二次微分を利用した最適化手法を用いる。ニュートン法の更新式
は、以下のようになる。
ni+1 = ni − H−1
dC(ni )
dn
(A.21)
ここで、n は変数を並べたベクトルであり、H はヘッセ行列と呼ばれる、関数の二次微
分を対象に並べた行列である。
79




H=



∂2C
∂n1 2
∂2C
∂n1 ∂n2
..
.
∂2C
∂n1 ∂n2
∂2C
∂n2 2
..
.

··· 



··· 


..
.
ニュートン法は、初期値が真値に近い場合、収束が早いという性質を持つ。本研究にお
いては、線形解法などの他の手法から求める初期値が相応に正確であると判断し 、この
手法を採用した。
非線形最小化は、周囲に極値が存在しなければ 、入力されたパラメータの初期値に対し 、反
復計算をおこない最適なパラメータを求めることができる。本研究においてカメラの位置・
姿勢を補正する際には、少なくとも4つの特徴点の対応が与えられていれば 、その3次元位
置が既知でなくても、解を精度よく求めることができる。問題点としては、最小化をおこな
うパラメータの数に比例し 、処理時間が増加することがあげられる。これは主に、ヘッセ行
列が大きくなることにより、逆行列算出の計算コストがかかることに起因する。カメラの位
置・姿勢と特徴点の3次元位置を最適化する問題では、ヘッセ行列が特殊な形をしていること
を利用し 、高速化する手法が提案されている [16] が、本研究では実装していない。また、多
くの特徴点をまとめて処理するため、一部の特徴点に追跡ミスがあった場合、最小化処理が
収束せず、精度の良い解が求まらないおそれがある。本研究では、RANSAC の枠組みを利用
し 、これに対処している。
80
A.5 エピポーラ幾何
カメラを移動させたときや複数のカメラがあるとき、複数の視点における相対的な位置・姿
勢の情報は、エピポーラ幾何と呼ばれる画像特有の幾何によって記述できる。本研究では特
に、エピ極線と呼ばれる性質を利用しているため、この導出方法について述べる。
ある2枚の画像間で点の対応がついているとき、画像上の点と空間上の点の関係は、以下
の式で表される。
w1 m1 = A(R1 | − R1 T1 )M
w2 m2 = A(R2 | − R2 T2 )M
(A.22)
m1 、m2 は点の画像座標の拡張ベクトル、M は点の3次元位置を表す。R1 、R2 は基準座
標系原点からそれぞれのカメラへの回転行列、T1 、T2 は平行移動ベクトル、A はカメラの
内部パラメータ行列である。2式から共通項である M を消去する。
w1 (AR1 )−1 m1 − w2 (AR2 )−1 m2 = T1 − T2
(A.23)
両辺に R1 を掛け、式を整理する。
w1 (A−1 m1 ) − w2 (RA−1 m2 ) = t
(A.24)
ただし 、
R = R1 R2
t = R1 (T1 − T2 )
であり、R は R1 を基準とした R2 の相対的な姿勢を表す回転行列、t は T1 を基準とした T2
の相対的な位置を表す平行移動ベクトルである。この式では、A−1 m1 と RA−1 m2 の線形結
合が t で表されているため、RA−1 m2 と t の外積ベクトルが 、A−1 m1 と垂直であることが
言える。この関係を用いて、以下の関係式を得る。
mT1 A−1 TRA−1 m2 = 0
(A.25)
ここで、T は平行移動ベクトル t の歪み対称行列である。


0 −t3 t2


T =  t3
0 −t1 
−t2 t1
0
上記の A−1 TRA−1 を、3 × 3 の行列 F として表し 、これを基礎行列と呼ぶ。エピ極線は、m1
と m2 を F によって関連づけることで導かれる性質である。
エピポーラ幾何の性質として、2つのカメラ中心と空間上の点で張られるエピ極面、カメ
ラ中心同士を結んだ線分が通過する画像平面上の点であるエピポール、カメラ中心と空間上
の点を結んだ線分を別のカメラ視点から見た際に、それが画像上に投影された直線であるエ
ピ極線などがある。
81
付 録B
カメラキャリブレーション
カメラのキャリブレーションには、Camera Calibration Toolbox for Matlab を用いた。このツー
ルは、指定された格子模様を様々な角度から撮影した画像を数十枚準備し 、簡単なマウス操
作により、焦点距離、画像中心、画像素子の歪みと、画像の収差歪みパラメータを求めるこ
とができる。図 B.1 に流れを示す。(1) は、キャリブレーションのために準備した20枚の画
像である。撮影している格子は、1辺 3cm であった。(2) は、各画像から格子のコーナーを手
動で抽出している例である。(3) は、手動で抽出した長方形の内部の格子を自動で抽出した例
である。(2) 、(3) の処理を画像の枚数分だけおこなう。(4) は、復元した20枚分のカメラ姿
勢であり、(5) が算出された値である、本研究で利用したカメラは画像の歪みが少なかったた
め、これらのうち利用する値は、焦点距離 fc のみである。
82
(1)
(2)
(3)
(4)
(5)
図 B.1: キャリブレーションツール
83
付 録C
KLT-Tracker の特徴点追跡・抽出方法
本研究で特徴点の抽出・追跡に用いている KLT-Tracker は、以下の式に基づき画像間で特徴の
類似度を算出する。
e=
[J(u + z) − I(u)]2 du
(C.1)
w
解法
まず、式 (C.26) を以下のように書き換える。
e=
z
z
[J(u + ) − I(u − )]2 du
2
2
w
(C.2)
関数 J 、I をそれぞれテイラー展開する。
∂J(u)
z
z
(u + − u)
J(u + ) = J(u) +
2
∂u
2 1
zu
= J(u) + (gu gv )
2
zv
1 T
= J(u) + gI (u)z
2
z
I(u − )
2
(C.3)
∂J(u)
z
= I(u) +
(u − − u)
∂u
2 1
zu
= I(u) − (gu gv )
2
zv
1 T
= I(u) − gJ (u)z
2
これより、式 (7.26) を以下のように変形する。
e =
=
1
1
[J(u) + gJT (u)z − I(u) + gIT (u)z ]2 du
2
2
w
1
[J(u) − I(u) + (gJT (u) + gIT (u))z ]2 du
2
w
d について微分し 、関係式を導く。
84
(C.4)
∂e
=
∂z
w
1
[J(u) − I(u) + gT (u)z ]g(u) du = 0
2
w
[J(u) − I(u) ]g(u) du = −
1
2
1
=−
2
w
w
(C.5)
gT (u)zg(u)du
(C.6)
g(u)gT (u)du z
これらをまとめ、以下の式を Newton-Raphson 法により解くことで、画素の移動量 z を
算出する。
e=Dz
z = D−1 e
85
(C.7)
付 録D
L*a*b*表色系の変換式
カメラから取得する画像は、RGB 表色系で表されている。RGB から L ∗ a ∗ b∗ 表色系への変
換式を示す。
まず、RGB の値を以下の変換式に従い XY Z 表色系の値に線形変換する。





X
0.61 0.17 0.20
R

 


 Y  =  0.30 0.59 0.11   G 
Z
0.00 0.07 1.12
B
(D.1)
L ∗ a ∗ b∗ 表色系は、以下の式により求める。
L∗ = 116f (Y /Yn ) − 16
a∗ = 500{ f (X/Xn ) − f (Y /Yn )}
b∗ = 200{ f (Y /Yn ) − f (Z/Zn )}
(D.2)
1
X/Xn > 0.008856 のとき f (X/Xn ) = (X/Xn ) 3
ただし 、
X/Xn ≤ 0.008856 のとき f (X/Xn ) = 7.787(X/Xn ) + 16/116
Y 、Z についても同様の式で表される。
XY Z 表色系において、Y が明度を、X 、Z が色を表す情報である。また、Xn 、Yn 、Zn は、
完全拡散面の3刺激値、すなわち白色の XY Z 値である。L ∗ a ∗ b∗ 表色系では、L∗ が明度
に、a∗ 、b∗ が色相と彩度に相当する位置を示す。
86
参考文献
[1] Bruces D. Lucas and Takeo Kanade: “An Iterative Image Registration Technique with an Application to Stereo Vision”, International Joint Conference on Artificial Intelligence, pages
674-679, 1981.
[2] C. Tomasi , T. Kanade: “Shape and Motion from Image Streams under Orthgraphy: a Factorization Method”, IJCV,9(2), pp.137–154, 1992.
[3] C. Tomasi and T. Kanade: “Detection and Tracking of Point Features”, Carnegie Mellon
University Technical Report CMU-CS-91-132, April 1991.
[4] David G. Lowe: “Object Recognition from Local Scale Invariant Features”, Proc. of the
International Conference on Computer Vision ( ICCV ), pp.1150–1157, 1999.
[5] 出口: 「 多視点からの透視投影画像による3次元形状復元」, 計測自動制御学会論文
誌, pp.1321–1328, 1998.
[6] 出口: 「ロボットビジョンの基礎」, コロナ社, 2000.
[7] 出口: 「画像認識論講義」, 昭光堂, 2002.
[8] 土井, 千葉: 「3次元 CG の基礎と応用」, サイエンス社, 1997.
[9] Eberst, C., Andersson, M., and Christensen, H. I.: “Vision-Based Door-Traversal for Autonomous Mobile Robots,”, Proc. of IROS2000, 2000.
[10] 江口、油田: 「移動系の自由度も用いて物体を操作する小型移動マニピュレータ」, 第6
回ロボティクスシンポジア,pp.267-273, 2000.
[11] Frank Dellaert, Steven M. Seitz, Charls E. Thorpe and Sebastian Thrun: “Structure from
Motion without Correspondence”, IEEE Computer Society Conference on Computer Vision
and Pattern Recognition ( CVPR’00 ), 2000.
[12] Hartley, Gupta and Chang: ”Stereo from Uncalibrated Cameras”, CVPR, pp.761–764, 1992.
[13] H. I. Christensen, N. O. Kirkeby, S. Kristensen, L. Knudsen, and E. Granum: “Model-driven
vision for in-door navigation”, Robotics and Autonomous Systems 12 199-207., 1994.
87
[14] 藤木, 蔵田: 「計量アフィン射影モデルの逐次型因子分解法」, 電子情報通信学会誌, Vol.J84–
D–II, No.8, pp.1663–1673, 2001.
[15] J. J. Leonald and H. F. Durrant-Whyte: “Simultaneous Map Building and Localization for an
Autonomous Mobile Robot”, Proc of IROS’91, pp.1442–1447, 1991.
[16] 徐: 「写真から作る 3 次元CG -イメージ・ベースド・モデリング&レンダリング - 7 章,8
章」, 近代科学社, 2002.
[17] 徐, 辻: 「 3 次元ビジョン 」, 共立出版, 2001.
[18] Gang Xu and Noriko Sugimoto: “”A linear algorithm for motion from three weak perspective
images using Euler angles”, Proc of 3rd Asian Conference on Computer Vision, as Lecture
Notes in Computer Science, No. 1352, Springer-Verlag, pp.543–550, 1998.
[19] J. Shi , C. Tomasi: “Good Features to Track”, CVPR, 1994.
[20] Jose R.A. Torreao: “3D Shape Estimation in Computer Vision, Revista Controle & Automacao
Vol.10 no.02 pp118–123, 1999.
[21] 金出, Poelman, 森田: 「因子分解法による物体形状とカメラ運動の復元」, 電子情報通信
学会誌 D-II, Vol.J76-D-II, No.8, pp.1497–1505, 1993.
[22] K. Nagatani and S. Yuta: “Autonomous Mobile Robot Navigation Including Door Opening
Behabior-System Integration of Mobile Manipulator to Adapt Real Environment-”, International Conference on Field and Service Robotics (FSR’97) ,,pp.208-215, 1997.
「 能 動 視 覚に よ る3 次 元 形 状 認 識 」,
[23] 木 下, 出 口:
集, Vol.28, No.1, pp.144–153, 1993.
計測自動制御学会論文
[24] 木村, 斉藤: 「射影幾何学に基づく多視点画像からの自由視点映像生成」, 情報処理学会
CVIM 研究会論文誌, 2002.
[25] Kosaka, A. and Pan, J.: “Purdue Experiments in Model-Based Vision for Hallway Navigation,”, Proc. of Workshop on Vision for Robots in IROS’95, pp. 87-96, 1995.
[26] 黄 , 坂本 , 西田: 「 多視点画像からの3次元情報抽出, Ricoh Technical Report No.24,
1998-11.
[27] Kutulakos K. and Seitz S.: “A Theory of Shape by Space Carving”, IJCV, 38(3), pp.198–218,
2000.
[28] 黒澤, 金谷: 「アフィン空間分離法による運動物体の分離」, 情報処理学会研究報告,
2001-CVIM-125-3 (2001-1), pp.25–32, 2001.
88
[29] L. Iocchi, D. Mastrantuono, D. Nardi: “Visually Realistic Mapping of a Planar Environment
with Stereo”, ISER 2000.
[30] M. Okutomi. and T. Kanade: “A Multiple-Baseline Stereo”, PAMI, VOL15,NO.4, pp.353–
363, 1993.
[31] M. Lustig, R. Kimmel and I.Yavne:
www.stanford.edu/ mlustig/.
“Robust Optical Flow Feature Tracker”,
[32] Myron Z.Brown, Darius Burschka and Gregory D. Hager:
Stereo”, PAMI, VOL.25, No.8, pp.993–1008, 2003.
“Advances in Computational
[33] 西川, 大西, 松本, 泉, 福永: 「 カメラの位置姿勢制御を用いたモデルベース物体認識」,
IEEJ,vol.118-c,No.2, pp.210–216, 1998.
[34] 延原, 和田, 松山: 「弾性メッシュモデルを用いた多視点画像からの高精度3次元復元」,
CVIM Vol.43 No.SIG11 - 007, 2003.
[35] Okuma, Sakaue, Takemura and Yokoya: “Real-Time Camera Parameter Estimation from
Images for a Mixed Reality System, ICPR, pp.4482–4486, 2000.
[36] Poelman C.J and Kanade T.: “A Paraperspective Factorization Method Shape and Motion
Recovery”, tech. report CMU–CS–93–219, Computer Science Department, Carnegie Mellon
University, 1993.
[37] Sainz M., Bagherzadeh N. and Susin A.: “Carving 3D Models from Uncalibrated Views.”,
CGIM 2002, pp.144–149., 2002.
[38] Seitz M. and Dyer C.: “Photometrealitic Scene Reconstruction by Voxel Coloring”, IJCV,
35(2), pp.1063–1073, 1999.
[39] 佐藤「コンピュータビジョン –視覚の幾何学– 」, コロナ社 1999.
[40] Stan Birchfield: “Derivation of Kanade-Lucas-Tomasi Tracking Equation”, Unpublished,
1997.
[41] T. Tsubouchi and S. Yuta: “Map Assisted Vision System of Mobile Robots for Reckoning in
a Building Environment”, Proc. of ICRA’87, pp. 1978–1984, 1987.
[42] 粒崎: 移動ロボットによる椅子の片付け作業に関する研究, 筑波大学博士課程システム情
報工学研究科修士論文, 2001.
[43] T. Sato , M. Kanbara, N. Yokoya and H. Takemura: “Dense 3-D Reconstruction of an Outdoor
Scene by Handhelds-baseline Stereo using a Hand-held Video Camera”, IJCV,Vol 47, No.1-3,
2002.
89
[44] 友納,油田:「不正確さを許すマップと物体認識による屋内ナビゲーションシステム」,
第 7 回ロボティクスシンポジア予稿集, 2002.
[45] M. Tomono and S. Yuta: “Indoor Navigation based on an Inaccurate Map using Object Recognition”, Proc. of IROS2002, 2002.
[46] S. Thurn , W. Burgard and D. Fox: “A Probabilistic Approach to Concurrent Mapping and
Localization for a Mobile Robot”, Machine Learning and Autonomous Robots,31/5, 1–25,
1998.
[47] 植芝 , 富田: 「初期モデルとしてアフィン投影を用いた多視点透視投影画像からの運動
と形状の復元」, CVIM107-1, pp.1–8, 1997.
[48] 浮田 , 尺: 「透視投影因子分解法による広範囲画像系列からの3次元物体モデル生成」,
PRMU97-276, pp.81–88, 1998-3.
[49] 山崎, 友納, 坪内, 油田: 「移動マニピュレータによる物体ひろいあげに関する研究(第一
報)実環境中の把持対象物体の認識」, 第 8 回ロボティクス・シンポジア, 2003.
[50] 山崎, 友納, 坪内, 油田: 「実環境での物体操作を目的とした移動ロボットによる対象物探
索」, ROBOMEC’03, 2003.
[51] 山崎, 友納, 坪内, 油田: 「移動マニピュレータによる物体ひろいあげのための対象物の逐
次的な形状復元」, 第 21 回日本ロボット学会学術講演会, 2003.
[52] 山崎, 友納, 坪内, 油田: 「移動ロボットによる物体ひろいあげのための対象物の3次元形
状獲得–ロバスト性と復元精度の向上– 」, SI2003, 2003.
[53] 山崎, 友納, 坪内, 油田: 「移動ロボットに搭載したカメラの視点移動による物体の3次元
形状モデリング 」, SI2003, 2003.
[54] Yasemin Kuzum and Olaf Sinram: “Photorealistic Object Reconstruction Using Voxel Coloring And Adjusted Image Orientation, www.fpk.tu-berlin.de/ kuzu/Pub/.
[55] Z. Zhang, R. Deriche, O. Faugeras and Q.-T. Luong.: “A Robust Technique for Matching Two
Uncalibrated Images Through the Recovery of the Unknown Epipolar Geometry”, Artificial
Intelligence Journal, Vol.78, pp.87–119, 1995.
[56] W. H. Press , B. P. Flannery , S. A. Teukolsky, and W. T. Vetterling. “Numerical Recipes in C
: The Art of Scientific Computing”, Cambrige University Press, 1988.
[57] W. Bruce Culberson and Thomas Malzbender: “Generalized Voxel Coloring”, ICCV, 1999.
[58] Jean-Yves
Bouguet:
“Camera
http://www.vision.caltech.edu/bouguetj/
90
Calibration
Toolbox
for
Matlab”