筑波大学大学院博士課程
システム情報工学研究科修士論文
カメラを搭載した移動ロボットによる
画像列を用いた物体の3次元形状モデリング
山崎
公俊
(知能機能システム専攻)
指導教官 坪内
孝司
2004
年
1
月
概要 本論文は 、移動ロボットによる物体の3次元形状モデリングに関するものである。実環境に 存在する物体の正確な位置・形状・スケールに関する情報を持たない状態から、正確な3次元 形状モデルの獲得を、移動ロボットが走行しながら自律的におこなう。(1)ロボットが走行し ながら可能な高速でロバストな処理、(2)ロボットの経路計画を同時におこなうことを考慮し た逐次的な処理、(3)簡便なセンサである単眼カメラを用いた画像列のみによる処理、といっ た特徴を持つ形状モデ リング手法を提案する。 本研究では 、ロボットの動作を以下の2段階に分けている。 • 対象物の発見 • 対象物の形状モデリング 形状モデリングの対象物は未知であるため、対象物の発見処理では 、環境中に存在する複 数の物体の中から、移動ロボットが自律的にモデ リングの対象物を特定する。対象物の形状 モデリングでは、特定された物体に対し 、その詳細な形状情報を得る。これらの処理では、コ ンピュータビジョンの分野で提案されている種々の手法を適切に組み合わせ、ロボットが実 環境で動作するが故に発生する様々な誤差に対処できるようなアルゴ リズムを構築する。 移動ロボット「山彦」に単眼カメラを搭載した実験システムを構成し 、実際にロボットを 走行させながら取得した画像列を用いて実験をおこない、提案する形状モデ リング手法の有 効性を示す。
目 次
第1章 序論 1 1.1 背景 . . . . 1 1.2 目的 . . . . 2 1.3 関連研究 . . . . 2 1.3.1 3次元形状復元 . . . . 2 1.3.2 マップ構築 . . . . 3 1.4 本論文の構成 . . . . 4 1.5 本論文で用いる用語について . . . . 4 第2章 本研究の方針 6 2.1 ロボットシステム . . . . 6 2.2 対象物の条件 . . . . 9 2.3 課題 . . . . 9 2.4 アプローチ . . . . 10 第3章 処理の方法 12 3.1 画像と空間 . . . . 12 3.1.1 座標系の表現 . . . . 12 3.1.2 カメラの投影モデル . . . . 13 3.1.3 画像上の点と空間上の点 . . . . 15 3.1.4 エピポーラ幾何 . . . . 15 3.2 画像からの情報取得 . . . . 16 3.2.1 特徴点の抽出・追跡 . . . . 17 3.2.2 色情報の利用 . . . . 18 3.3 コンピュータ・ビジョン手法. . . . 20 3.3.1 モーションステレオ . . . . 20 3.3.2 因子分解法 . . . . 20 3.3.3 非線形最小化 . . . . 21 3.3.4 Space Carving . . . . 21 3.4 本研究でのカメラの位置・姿勢表現 . . . . 22 3.4.1 ロボットとカメラのシステム構成 . . . . 22 3.4.2 カメラ視点の位置・姿勢表現 . . . . 223.4.3 パン・チルトカメラのための回転行列表現 . . . . 23 第4章 対象物の発見 25 4.1 課題とアプローチ . . . . 25 4.2 実環境での問題点と対処 . . . . 26 4.2.1 不要な特徴点への対処 . . . . 26 4.2.2 移動ロボットの測位誤差への対処 . . . . 28 4.3 対象物の発見アルゴ リズム . . . . 31 4.4 アルゴ リズムの高速化・高精度化 . . . . 32 4.5 基礎実験 . . . . 34 4.5.1 実験方法. . . . 34 4.5.2 評価 . . . . 35 第5章 対象物の形状モデリング 39 5.1 課題とアプローチ . . . . 39 5.2 実環境での問題と対処 . . . . 41 5.2.1 KLT-Trackerの改良 . . . . 41 5.2.2 RANSACの利用 . . . . 43 5.3 対象物の密な形状復元 . . . . 44 5.3.1 アフィン不変量を利用した密な形状復元 . . . . 44 5.3.2 Voxel空間への統合 . . . . 45 5.3.3 Space Carvingによる形状の補正 . . . . 46 5.4 形状モデリングアルゴ リズムの統合 . . . . 48 5.4.1 統合アルゴ リズムの構成 . . . . 48 5.4.2 前提条件. . . . 48 5.4.3 初期フェーズ . . . . 48 5.4.4 逐次フェーズ . . . . 49 5.4.5 最終フェーズ . . . . 53 5.4.6 提案方式のポイント . . . . 53 5.5 基礎実験 . . . . 55 5.5.1 実験方法. . . . 55 5.5.2 カメラの注視制御. . . . 55 5.5.3 評価 . . . . 57 第6章 統合に向けて 67 6.1 画像の取捨選択 . . . . 67 6.2 ロボットの動作計画 . . . . 67 第7章 まとめ 68
付 録A コンピュータビジョン手法 70 A.1 モーションステレオ . . . . 71 A.2 因子分解法 . . . . 73 A.3 本研究での因子分解法 . . . . 76 A.4 非線形最小化 . . . . 78 A.5 エピポーラ幾何 . . . . 81 付 録B カメラキャリブレーション 82 付 録C KLT-Trackerの特徴点追跡・抽出方法 84 付 録D L*a*b*表色系の変換式 86 参考文献 86
図 目 次
2.1 ロボットシステム . . . . 7 2.2 パン・チルトカメラ . . . . 8 2.3 画像処理モジュール . . . . 8 2.4 ロボットの動作イメージ . . . . 10 3.1 座標系の定義 . . . . 13 3.2 カメラモデル . . . . 14 3.3 エピポーラ幾何 . . . . 16 3.4 画像 . . . . 17 3.5 KLT-Trackerによる特徴点追跡の例 . . . . 18 3.6 L*a*b*表色系による床面除去の例 . . . . 19 4.1 クラスタリングによる対象物の特定 . . . . 27 4.2 環境 . . . . 29 4.3 ロボット上から取得した画像. . . . 29 4.4 特徴点の3次元復元結果( 視点は床面から垂直な方向). . . . 30 4.5 対象物の発見アルゴ リズム . . . . 32 4.6 発見処理とデータの流れ . . . . 33 4.7 対象物の発見の実験環境 . . . . 35 4.8 取得画像と特徴点抽出 . . . . 36 4.9 モーションステレオによる結果 . . . . 37 4.10 不要な特徴点を除去した結果. . . . 37 4.11 非線形最小化により補正した結果 . . . . 38 4.12 クラスタリングにより対象物が発見された結果 . . . . 38 5.1 特徴点の追加抽出 . . . . 40 5.2 対象物発見後のロボットの動き . . . . 41 5.3 セルフオクルージョンの影響. . . . 42 5.4 KLT-Trackerの改良 . . . . 43 5.5 KLT-Trackerの追跡ミス. . . . 44 5.6 アフィン不変量 . . . . 45 5.7 Voxel空間への統合 . . . . 465.8 Space Carving . . . . 47 5.9 モーションステレオの原理 . . . . 51 5.10 アフィン基底の生成 . . . . 52 5.11 提案アルゴ リズムのポイント . . . . 53 5.12 形状モデリングアルゴ リズム. . . . 54 5.13 ロボットの走行経路 . . . . 55 5.14 システム構成 . . . . 56 5.15 ロボットの走行経路 . . . . 57 5.16 全周囲画像の例 . . . . 58 5.17 特徴点の抽出・追跡 . . . . 59 5.18 初期フェーズでの特徴点追跡結果 . . . . 60 5.19 特徴点の入れ替わり . . . . 61 5.20 形状モデリングの改良(1). . . . 62 5.21 形状モデリングの改良( 2). . . . 62 5.22 カメラ位置・姿勢と特徴点の3次元位置 . . . . 63 5.23 最終フェーズの結果 . . . . 64 5.24 対象物(グローブ )の画像列. . . . 65 5.25 対象物(グローブ )のモデリング結果. . . . 66 B.1 キャリブレーションツール . . . . 83
第
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項を全て満たすような困難な問題設定でモデ リングを実現 しているところに特徴がある。 • 画像列のみから 、カメラの位置・姿勢を推定し 、対象物の密な形状を獲得する。 • 実環境を背景とするため、モデ リングの対象物以外の物体が周囲に存在する。 • 対象物にはマーカなどをつけず、正確な大きさ、位置、形状の事前知識を持たせない。移動カメラから得た複数の画像データから、物体の疎な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)は 、近年特に盛んな研究分野である。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次元の電子データとして再現すること。 オクルージョン・セルフオクルージョン オクルージョン( 隠蔽)とは、取得した画像に、ある物体が他の物体の影になって投影 される現象。また、セルフオクルージョン( 自己隠蔽)とは、別の視点から見えていた 物体のある部分が、視点を移動したことで他の部分の影になり見えなくなる現象を指す。 オド メト リ動作モデル
本研究においては、オド メトリと、カメラのパン・チルト角を含めて表されるロボット の位置・姿勢とする。
第
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]を用いてあらか じめ求めておく。カメラの内部パラメータの導出については、付録に詳細を記す。
本研究では 、ロボットの位置・姿勢を取得し 、その情報を用いてカメラのパン・チルト角 を操作し 、床面や対象物に対する視点制御をおこなう。ただし 、この視点制御の位置精度は 形状モデリングの目的には十分でないため、モデリングに利用するカメラの位置・姿勢の推 定については 、これらの値を補正したり、別の情報から推定する手法をとる。
FRONT SIDE BACK
図2.2:パン・チルトカメラ
2.2
対象物の条件
本研究における形状モデリングの対象物は、環境を構成する要素である個々の物体、特に、 移動ロボットにとってひろいあげのような操作が可能な小型の物体とする。 対象物に関しては、以下の仮定を置く。 1. ロボットが走行する床面上に存在する。 2. 形状に曲面を含んでも良いが 、テクスチャ( 模様)を有する。 特に2.の仮定は 、本研究で用いる形状モデリングの手法に関係する。カメラから画像列を 取得し 、画像中に映り込んだ対象物から抽出したテクスチャを利用して物体形状を求める。 ここでは、物体の形状や見た目に関する事前情報を持たせていない。物体が簡単な形状要 素で構成されていると仮定したり、物体にあらかじめマーカを付加しておくといった従来の 研究例と比較し 、困難な問題設定である。2.3
課題
前節で述べた問題設定のもとで、形状モデリングをおこなう際、 • 対象物の位置・形状が未知である • カメラの位置・姿勢が誤差を含む といった、モデリングのための計算処理が複雑になる問題設定をしている。これらの困難 さに対処した形状モデリングをおこなうことが 、本研究での大きな課題となる。詳細につい て、以下で述べる。 対象物の位置・形状が未知 ロボットには「前方の床面上に存在する」こと以外に対象物の事前情報を与えず、対象 物には他の物体と区別が付くような特別な条件を設けない。すなわち処理開始時のロ ボットには、モデリングの対象物が 、どこに存在するか、どのくらいの大きさか、どん な形状をしているかなどが未知である。このため、ロボットの行動には、単に精密な形 状モデ リングをおこなうだけでなく、以下のような事柄も考慮されなければならない。 • 形状モデリングをおこなう対象物の特定 • 対象物と背景を区別しながら、形状モデルを生成 移動ロボットには、環境を大域的に観察し対象物を決定する動作が要求される一方、対 象物を注視、すなわち環境を局所的に観察し 、他の環境情報と区別しながら精密な形状 モデ リングをおこなう必要がある。これらを基にした処理のアプ ローチ方法について は 、次節に示す。Start Object Finding Object Modeling Created Path Target Object Robot Camera 図2.4:ロボットの動作イメージ カメラの位置・姿勢の誤差 移動ロボットにおいては、搭載したカメラの位置・姿勢を直接的に知る手段は、オド メ トリ( 車輪の回転数から測位するロボットの自己位置)とカメラのパン・チルト角の変 化、すなわちロボットの動作モデルである。しかし 、ロボットの動作モデルから得るカ メラの位置・姿勢は、画像取得とオド メトリ取得の同期のずれや、車体のスリップ、カ メラの角度の誤差などの要因により、正確ではない。 一方、本研究ではロボット上に搭載したカメラから多数枚の画像を取得し 、コンピュー タビジョンの手法を用いて対象物の3次元情報を復元する。これらの復元手法は、画像 情報と、対象の3次元情報、画像を取得したカメラの位置・姿勢の関係を数学的に定式 化したものである。既知の情報から未知の情報を求めたい場合、例えば 、既知のカメラ の位置・姿勢と画像情報から、未知の対象の3次元形状を求める際、既知としている情 報に誤差が含まれていれば 、求まる形状も正確ではない。本研究では、ロボットの測位 情報から取得するカメラの位置・姿勢に誤差が含まれるため、そのままでは対象物の正 確な3次元情報を獲得できない。誤差を修正する方法、もし くはロボットの動作モデル に頼らずカメラの位置・姿勢を求める手法をとる。
2.4
アプローチ
前節の困難さに対応するために、本研究では 、処理を2段階に分ける( 図2.4)。 1. 対象物を移動しながら発見する (対象物の発見) 2. 発見した対象物の形状モデルを生成する (対象物の形状モデリング対象物の発見 対象物の発見処理では、ロボットは環境中を移動しながら、形状モデリングの対象物を 自動で決定する。具体的には、ロボットは床面上の物体の有無を探索しながら直進走行 し 、周囲の物体の中から決定した対象物について、その正確な位置と、一部の形状を求 める。このとき、ロボットの動作モデルから得られるカメラの位置・姿勢は、走行経路 が単純なため、ある程度の推定精度を保っている。そこで、カメラの位置・姿勢につい ては、動作モデルから得た値に補正を加えることで、正確なカメラの位置・姿勢を得る。 この詳細は 、4章に述べる。 対象物の形状モデリング 対象物の形状モデリングでは、ロボットは発見した対象物に接近した後、対象物の全体 像が得られるようにその周囲を走行する。3次元形状モデルは、搭載したカメラにより 取得した対象物に関する画像列から、高精度で獲得される。このとき、ロボットの走行 経路は複雑になり、ロボットの動作モデルから得られるカメラの位置・姿勢は、形状モ デリングにとって十分な推定精度を持たない。そこで、対象物の形状モデリングでは、 カメラの位置・姿勢と対象物の3次元形状を、画像列のみから獲得する手法を提案する。 この詳細は 、5章に述べる。 環境を大域的に観察して対象物を特定するための処理と、特定した物体に対し 詳細な形状 情報を得る処理の2段階に分けることで、未知の環境から 、ひとつの物体の形状モデルを獲 得することを目指す。
第
3
章 処理の方法
本研究では、3次元形状モデリングのために、ロボットに搭載したカメラより得た画像列を用 いる。本章では、画像データから処理をおこなう際の、設定と手法について述べる。3.1
画像と空間
3.1.1
座標系の表現
本研究では、対象物はロボットが走行する床面上に存在する。この床面をカメラを搭載し たロボットが走行することから 、4つの座標系を定義する。ワールド 座標系、モデリング座 標系、カメラ座標系、物体座標系である。図3.1に 、これらの座標系の関係を示す。 ワールド 座標系 ロボットが動作する環境内に張られ 、全ての処理を通して変えられることのない座標系 である。本研究では、処理開始時にロボットが置かれていた位置の床面を基準として、 ワールド 座標系を設定する。 モデリング座標系 ロボットは、実環境を広範囲に渡って探索し 、形状モデリングの対象物を決定する。モ デリング座標系は、対象物の形状モデリングを開始する際に、動作の起点として設定さ れる座標系である。この座標系は、ロボットが対象物を発見しその物体の周囲の軌道に 入る際、ロボットの存在する位置の床面上に設定される。形状モデリング時のカメラの 位置・姿勢と、復元された対象物の位置・姿勢は 、この座標系に従う。 カメラ座標系 ロボットに搭載されたカメラの動きに伴って変化する座標系である。対象物の3次元形 状情報を画像列を用いて生成する処理の過程では、まずカメラ座標系から見た3次元形 状の位置・姿勢が得られ 、後にワールド 座標系から見た3次元形状の位置・姿勢に変換 される。また、連続した2枚の画像間に置けるカメラの相対的な位置・姿勢を求める際 に 、この座標系が利用される。 物体座標系 形状モデリングの対象物に張りついた座標系である。画像列の情報から3次元形状を復Z X Y X Z Y Y X Z ワールド座標系(固定) モデリング座標系(固定) 物体座標系(カメラ依存) 処理開始 対象物を発見 Z X Y カメラ座標系(移動) Z X Y 図3.1:座標系の定義 照している画像列により変化するものであり、本研究で用いるコンピュータビジョンの 手法の中で、因子分解法において定義される。
3.1.2
カメラの投影モデル
カメラから得られる画像は、3次元空間がレンズを通して撮像面に射影されるものであり、 2次元の画素配列で構成される。本章では 、カメラの仕組みのモデル化に関して、本研究に 関連するものについて説明する。 透視投影モデル( 図3.2, (1)) カメラのモデルとしては、ピンホールカメラが一般的に用いられる。ピンホールカメラ による射影は、中心射影と呼ばれる。これは我々の目から普段見えている光景と同じ投 影モデルであり、本論文では、このモデルを透視投影モデルと称する。[16] まず、画像座標系と基準座標系( カメラ中心と同じ 位置・姿勢)を 、右手系で定義す る。これより、空間中の点の3次元座標(X, Y, Z)T と、画像上に投影された2次元座標 (u, v)T の間には 、以下の式が成り立つ。 u= f1X Z v= f2Y Z (3.1) f1、f2は、カメラの焦点距離を表し 、使用するカメラによって決まる値である。(fが 1であるとき、これを正規化カメラと呼ぶ。)ここで、画像平面に平行な成分を奥行き 成分で割っていることから 、透視投影モデルが非線形のモデルであることが判る。Y X Z C カメラ中心 画像平面 (1) 透視投影モデル Y X Z C カメラ中心 画像平面 (2) 弱透視投影モデル 仮想平面 G 通常、仮想平面は 物体の重心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 1 − ∆Z Zc + O Zc Z 2 (3.3) ここで、Zc Z の零次項までで近似する。 u v = 1 Z X Y (3.4)
弱透視投影モデルでは、正射影の方向は光軸と平行である。すなわち、画像に映り込む 物体の像は 、光軸からの距離に影響されない。これを図示すると図3.2のようになる。 物体の重心を通り、画像面に平行な平面を、仮想平面と呼ぶ。本研究では、因子分解法 を用いる際、この投影モデルを利用する。因子分解法については、後述する。
3.1.3
画像上の点と空間上の点
画像上の点と空間上の点の関係は以下の式で表される[6]。 w u v 1 = A(R| − RT) 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)よりそれぞれ以下のような関係が成 り立つ。 w1m1 = A(R1| − R1T1)M w2m2 = A(R2| − R2T2)M (3.6) mは点の画像座標(u, v)の拡張ベクトル、Mは点の3次元位置(X, Y, Z)を表す。エピポー ラ幾何は 、これら2式からMを消去することで求められる。( 導出の詳細は付録Aを参照) mT1Fm2 = 0 (3.7) Fは基礎行列を呼ばれる3 × 3の行列である。この式では、2枚の画像間のカメラの相対位 置・姿勢が判っていれば 、1枚目の画像上の点m1に対応する2枚目の画像上での画像座標 m2が 、エピ極線au2+ bv2+ c = 0上に存在することを意味する( 図3.3)。m1、m2の関係 を逆にしても同様の性質がある。本研究では、Space Carvingをおこなう際、判定のためにこ の性質を利用している。C1 C2 Image1 Image2 O m1 m2 M(空間上の点) ワールド座標系 エピ極線 (C1とMを通る直線の投影) エピ極面 R1, T1 R2, T2 図3.3:エピポーラ幾何
3.2
画像からの情報取得
取得した画像列には非常に多くの情報は含まれているため、必要な情報のみを抽出する処 理をおこなう。本研究においては 、画像列から情報を抽出し 、対象物の3次元形状情報とロ ボットに搭載したカメラの位置・姿勢を求める。 従来、画像からの情報抽出は、点、線分、領域、色など 、様々な種類でおこなわれている が 、本研究では、以下の2種の情報を用いる。 • 物体のテクスチャを特徴点として利用 • 床面の色情報を利用( 対象物の発見処理のみ ) 多数枚の画像を用いて3次元情報の獲得をおこなう際、以前の視点で観察されていた画像 のある部分が 、現在の視点においてど う見えているかの情報を、画像間で対応付けることが 非常に重要である。本研究では、画像中のテクスチャを特徴点と呼ばれる点として抽出し 、別 の画像においてその対応付けをおこなう。 画像情報の抽出については、種々の手法が提案されているが 、複数の物体が混在するよう な実環境で取得する画像では 、線分、領域など の情報は 、視点や照明の変化など の影響を受 けやすく、画像間で1対1の正確な対応を取ることが困難である。特徴点も同様の困難さを 持っているが 、これは画像全体のうち、マスクと呼ばれる小さな領域同士で対応付けをおこ なうため、上記の2種の画像情報に比べ、影響を受けにくい。 また、モデリングの対象物を発見する際、物体は床面上に存在するという条件を定めたこ とから、物体に接している床面を分離する1つの手段として、色情報の利用が有効である。 以下で、詳細を説明する。Camera
Image Data Coordinates → ( u , v )
Color → ( R , G , B ) Pixel 図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枚の画像における特徴点が同じである可能性(1) (2) (3) (4) 図3.5: KLT-Trackerによる特徴点追跡の例 が高い。図3.5に特徴点の追跡例を示す。テクスチャの多い部分に特徴点が抽出され 、画像間 で同じテクスチャを追跡していることが判る。 本研究のシステムでは 、カメラを搭載したロボットが実環境を自律的に走行し 取得した画 像列を用いているため、それらの画像から特徴点が常に安定して抽出・追跡されているとは 限らない。これについては 、状況に応じていくつかの対処法を提案し 、実装している。
3.2.2
色情報の利用
ロボットが形状モデリングの対象物を発見するまでは 、物体が床面上のどこに存在するか が判らない。その際、得られる画像中から抽出した特徴点は 、対象物に関係のない冗長なも のも混在することになる。これを緩和するため、特徴点が床面に存在するかど うかの判定に 色情報を利用する。 画像から色情報を抽出する際、様々な表色系の利用が提案されているが 、本研究では 、実 環境を想定しているため、照明条件の変化にロバストであるL*a*b*表色系を用いる。L*a*b*床面除去前 床面除去後 図3.6: L*a*b*表色系による床面除去の例 表色系は 、1976年に国際照明委員会CIEが推奨した均等色空間である。均等色空間とは、人 間が色を見たときに 、知覚的に同じ 色違いに見える色同士の距離( 色差)を均等にした色空 間のことである。本研究では 、カメラから計算機に取り込む色画像はRGB表色系で表現さ れているが 、この表色系では 、色が同じ 色相でも明度が高いほど 彩度が高くなる。すなわち 光を反射して生じる表面色については 、光源となる照明の強さが変化することによって色の 領域が変化してしまう。一方、L*a*b*表色系では 、照明の強さが変化しても明度方向の値が 大きくなるのみで、色相や彩度については大きく変化しない。実環境においては 、同じ 色を 持つ物体でも、照明の位置や強さにより画像内での見え方が大きく変化するため、これらの 影響を受けにくいL*a*b*表色系を用いることで 、ロバストな色検出を実現する。RGBから L*a*b*表色系への変換式については 、付録に詳細を記す。図3.6に 、L*a*b*表色系を利用し た、床面除去の例を示す。
3.3
コンピュータ・ビジョン手法
複数の画像データから対象の3次元形状を獲得する手法について 、本研究で利用している 既存の手法の概要を説明する。詳細な説明や式変形については、付録Aを参照されたい。3.3.1
モーションステレオ
カメラの位置・姿勢が既知である2枚の画像において、1組の特徴点が対応づいたとする。 この点は 、本来同じ 3次元空間上の点が 、それぞれの画像上へ射影されたものである。すな わち、各画像の焦点と画像特徴点を結んだ直線は 、3次元空間上で交わる。そこで、その直 線までのユークリッド 距離が最も小さくなるように式(3.9)のような評価関数を定義し 、線 形手法によって特徴点の3次元位置X= (X, Y, Z)を求める。[16] C= X − s1m12+ X − s2Rm2+ T2 (3.9) ここでm1、m2は、2枚の画像における対応点の投影座標の拡張ベクトルである。また、R、 Tは 、1枚目の画像を取得したカメラから 、2枚目の画像を取得したカメラへの相対的な位 置・姿勢を表す。s1、s2は、それぞれm1、m2の長さを表すスカラー定数である。 モーションステレオは高速な処理が期待でき、カメラの位置・姿勢が既知であれば 、特徴 点の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節参照)において利用する。3.3.3
非線形最小化
非線形最小化とは 、定義された非線形の評価関数に初期値を入力し 、多数の変数の組み合 わせを探索することで、評価関数を最小化するような最適な解を見つけ出す手法である。本 研究においては 、透視投影モデルのもとで、カメラの位置・姿勢と特徴点の画像上・空間上 の位置に関する評価関数を、以下のように定める。 C= 2 j=0 P i=0 rTxjmij rTzjmij − Xi+ txj Zi+ tzj 2 +2 j=0 P i=0 rTyjmij rTzjmij − Yi+ tyj Zi+ tzj 2 (3.11) ここで、(rxj, ryj, rzj)は 、2枚の画像間の相対的な回転行列における行ベクトル 、(txj, tyj, tzj)は平行移動ベクトルの各成分、mijは特徴点の画像座標の拡張ベクトル、(X, Y , Z) は、特徴点の3次元座標を表す。ここで、tzはカメラの床面からの高さであり、全体を通し て一定である。 この式より、カメラの位置・姿勢と特徴点の3次元位置を、勾配法を用いて求める。最小 化処理をおこなう際の初期値は、上記のモーションステレオや因子分解法から得た値を利用 する。最小化の変数は 、目的に応じて変更することができるが 、基本的には扱う変数が多い ほど 勾配法の反復処理に計算コストがかかり、処理時間が多くなる。3.3.4
Space Carving
Space Carving[27]とは、任意の視点から得た複数枚の色画像から、物体の3次元形状をVoxel
集団として復元する手法である。Voxelとは 、3次元空間で定義される小さな立方体を意味 する。 多視点から得た複数枚の色画像から 、定義したVoxelひとつひとつに 、それらが投影され る画像上の色を格納していき、Voxel集団を別の画像上に投影した結果が元の画像と一致する ようにVoxelを取捨選択する。この手法を利用する際、復元対象の初期形状が必要となるが 、 従来は3次元空間上にVoxel空間の位置・大きさをあらかじめ設定し 、背景に条件を加えて、 画像から復元対象だけを抽出したものを初期形状とする例が多い。本研究では 、ロボットが 移動するのは実環境であり、取得する画像には対象物以外にも物体があることを想定してい るので、従来とは異なるアプローチにより、Voxel集団の初期形状を決定する。この手法は幾 何学的な近似を含まず、画像のPhotometricな情報のみから処理をおこなうため、本研究にお いては、線形近似を含んだ形状復元の結果を補正する際に利用する。
3.4
本研究でのカメラの位置・姿勢表現
3.4.1
ロボット とカメラのシステム構成
本研究では 、移動のためのプラットフォームとして、筑波大学知能ロボット研究室で開発 された2輪駆動型の移動ロボット「山彦」を用いる。また、センサとしてピッチ角・ヨー角 に自由度を持つパン・チルトカメラ1台を、移動ロボットに搭載する。これらより、実環境 をロボットが移動し 、その移動と目標とする物体に合わせてカメラの視点を調整するシステ ムを構成する。 以下では 、この実験システムにおけるカメラの位置・姿勢について、幾何学的な表現方法 について述べる。3.4.2
カメラ視点の位置・姿勢表現
ロボットが最初に存在する位置の床面上に 、ワールド 座標系を定義する。本研究で画像を 用いて環境の3次元情報を得るためには 、このワールド 座標系の原点と、現在のカメラの位 置・姿勢関係を把握することが必要となる。以下では 、このカメラの位置・姿勢を決定する パラメータをカメラの外部パラメータと呼ぶ。 カメラの外部パラメータを決定する要因は、ロボットが移動時に持つ3自由度と、カメラ のパン・チルト角の2自由度の、合計5自由度である。このうち、ロボットの回転成分とカ メラのパン角の成分は同じ 軸まわりの回転であるため、以降ではこの2つの成分を合わせて 1つとし 、計4自由度として考える。ワールド 座標系は床面上にx-y平面( ロボット前方向 がx軸)、上方にz軸が伸びている座標系として定義されている。まず、回転行列の導出方法 として、ロール・ピッチ・ヨー角を考える。 ロール角周りの回転行列 R(Z, φ) = cos φ − sin φ 0 sin φ cos φ 0 0 0 1 ピッチ角周りの回転行列 R(Y, θ) = cos θ 0 sin θ 0 1 0 − sin θ 0 cos θ ヨー角周りの回転行列 R(X, ψ) = 1 0 0 0 cos ψ − sin ψ 0 sin ψ cos ψ 本研究においては、ロボットは平坦な床面上を走行するため、カメラの自由度は2であると し 、カメラの光軸周りの回転であるロール角は考慮しない。 次に 、カメラ座標を定義する。カメラの光軸方向をz軸、取得画像の横方向をx軸、縦方 向をy軸とする。カメラの俯角(ヨー角)が0度のとき、ワールド 座標系から見たカメラの 姿勢は、以下のように表せる。 RTnormal= 0 0 1 −1 0 0 0 −1 0 (3.12) ここに、カメラの俯角ψを加えるとカメラ姿勢は以下のようになる。 RT0 = RnormalR(X, ψ) = 0 − sin ψ cos ψ −1 0 0 0 − cos ψ − sin ψ (3.13) このR0が 、本研究で用いるカメラの初期姿勢となる。 カメラのパン角θを変化させた際のカメラ姿勢は以下のようになる。 RTi = RnormalR(Y, θ)R(X, ψ) =
sin θ − cos θ sin ψ cos θ cos ψ − 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]。 R= n21+ (1 − n21) cos α n1n2(1 − cos α) − n3cos α n1n3(1 − cos α) + n2sin α n1n2(1 − cos α) + n3cos α n22+ (1 − n22) cos α n2n3(1 − cos α) − n1sin α
n1n3(1 − cos α) − n2sin α n2n3(1 − cos α) + n1sin α n23+ (1 − n23) cos α ここで、nはRの固有値1に対する固有ベクトルであり、n21+ n22+ n23 = 1である。すなわ ち、行列Rの対角要素の和は以下のようになる。 r11+ r22+ r33= 1 + 2 cos α
本研究において、カメラをパン角について回転させることは 、ワールド 座標系におけるカメ ラ姿勢を、zo軸(0 0 1)T 周りに回転させることに等しい。このとき現在のカメラのチルト角 がψならば 、カメラ座標系から見たzo軸はI= (0 cos ψ sin ψ)T と表される。すなわち、こ のI周りの回転を表す行列RIは 、上記のRから 、以下のように表される。 RI =
cos α − cos ψ cos α cos ψ sin α
sin ψ cos α cos ψ2+ (1 − cos ψ2) cos α cos ψ sin ψ(1 − cos α) − cos ψ sin α cos ψ sin ψ(1 − cos α) sin ψ2+ (1 − sin ψ2) cos α
(3.15) 基準のカメラ姿勢に対し 、ある回転を加えて変化した現在のカメラ姿勢Rnとしたとき、初 期のカメラ姿勢R0から現在のカメラ姿勢Rnにおけるパン角の変化量を求めるには、以下の 式を成り立たせるようなRIを見つければよい。 R0= RnRTI = 1 0 0 0 cos ψ − sin ψ 0 sin ψ cos ψ (3.16) このIの回転角は、カメラのパン角の逆向き回転角となる。また、残る要素であるψはカ メラのチルト角の変化量を表す。
第
4
章 対象物の発見
対象物の発見処理の目的は 、実環境から、床面上に存在する対象物を特定し 、その正確な位 置を得ることである。4.1
課題とアプローチ
移動ロボットは、対象物の形状と位置が未知の状態から対象物を発見する。その際、走行 可能な範囲において 、対象物が存在するかど うかを走行しながら探索するため、処理を高速 におこなえる必要がある。また、実環境から得られる情報にはいくつかの要因で誤差が含ま れ 、走行中のロボットの位置・姿勢自体にも誤差が蓄積されるので、処理結果の精度を向上 するための対策も必要である。 これらを考慮し 、対象物の発見処理では次のようなアプローチをとる[49]。まず、実環境の 情報を、画像から抽出した特徴点として取得する。これらの特徴点から形状と位置の情報を 得る手法には種々のものがあるが 、対象物を発見する段階では、高速性を優先し 、モーション ステレオ法により対象物の形状と位置をおおまかに復元する。しかし 、モーションステレオ で得た3次元復元情報は、ロボットの位置・姿勢誤差により影響を受ける。その対策として、 非線形最小化による復元手法を用いて誤差を補正することで、精度を向上させる。以上より、 対象物の発見を高速におこないつつ、高い復元精度を得ることを図る。また、外れ値などに 対処するために 、特徴点のフィルタリングもおこなう。形状モデリングの対象物は 、上記の 処理で十分に復元精度が高いと判断された特徴点を基に決定する。以下で、詳細を説明する。 モーションステレオによる特徴点の3次元位置算出 特徴点の3次元位置復元には、モーションステレオを利用する。すなわち、2枚の画像 を取得したカメラの位置・姿勢および2枚の画像上で対応の取れている特徴点の画像上 の位置が既知であるとき、これらから特徴点の3次元位置を求める。 C= X − s1m12+ X − s2Rm2+ T2 (4.1) Rはカメラの姿勢を表す行列、Tはカメラの位置を表し 、ロボットの動作モデルから 得た値を利用する。mは画像特徴点の拡張ベクトルであり、s1、s2はmの長さを表す スカラーである。Xは特徴点の3次元位置を表す。式(4.1)の評価値Cが最小となるよ うなXの値を求める。導出方法の詳細は付録Aを参照されたい。実際の環境で移動ロボットを動作させる際には、カメラの位置・姿勢とここで求まる特徴点の復元結果を非 線形最小化によって補正する処理を加える。その詳細については後述する。 クラスタリングによる対象物の特定 特徴点の3次元復元結果を得た後には、その結果からモデリングの対象とする物体を表 す特徴点集団を、特定する処理が必要となる。本研究は、以下の流れで特定処理をおこ なう。( 図4.1) 1. 床と平行な面を一定のサイズ毎に格子に分けた平面を考え、全ての特徴点をその 平面上に射影する。 2. 現在調べている格子や周辺の格子に特徴点が存在するか否かによって 、クラスタ リング処理をおこない、特徴点をグループ 毎に分割する。 3. グループに分けられた特徴点集団から 、移動ロボットに近い位置にあるものを選 択し 、対象物を表す特徴点集団として特定する。 画像列を用いて3次元情報を獲得することにより、ロボットの前方数メートルの範囲に は、物体の存在を表す多数の特徴点が得られる。ここで、物体は床面上に存在すること を前提としているため、特徴点の3次元情報を、床面と平行な平面上の2次元情報に圧 縮する。この2次元の特徴点の分布を離散化し クラスタリングをおこなうことで、特徴 点をいくつかの集団に分け、その中でロボットに近い特徴点集団を選択することで、自 動的に対象物を決定する。 これらの動作を対象物の発見と称し 、対象物とロボットの正確な位置関係を得る。
4.2
実環境での問題点と対処
実環境で動作する移動ロボットに、筆者らの提案する対象物の発見処理をおこなわせる際、 考慮すべき問題とその対処法について述べる。4.2.1
不要な特徴点への対処
前述したような画像特徴点に基づく3次元復元処理をおこなう際、実環境から得られる特 徴点の追跡結果には誤差を含むものが存在しており、また床面上など の物体と関係のない部 分から抽出されるものも存在する。このような点は 、クラスタリングによって対象物を特定 する際の妨げとなる。処理結果に悪影響を与えるようなこれらの特徴点については 、なるべ く簡便な条件をいくつか設定し 、除去する処理を随時おこなう。以下で詳細を述べる。 復元誤差が大きな特徴点の除去 モーションステレオの際、カメラから遠い距離にある物体から抽出された特徴点についGroup1 Group2 Group3 Robot Robot Floor Objects 3次元復元 2次元平面へ射影 格子毎にデータを格納 クラスタリング 対象物特定 図4.1:クラスタリングによる対象物の特定
る。この復元結果が 、良い精度で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度の誤差を含めた場合では、復元結果が歪んでいることが判 る。特に、カメラの角度成分に対しては、少しの誤差が含まれているだけでも復元結果camera video cases 800mm 1200mm 実験環境 200mm 図4.2:環境 移動前 移動後 図4.3:ロボット上から取得した画像 一方で、移動ロボットのオド メトリから得られるカメラ位置・姿勢には、そもそも累積 誤差が含まれる。また、画像を取得時の時刻と、オド メトリの値の取得時の時刻は、必 ずしも同期が取れているとは限らない。このため、ロボットの動作モデルを用いて3次 元形状復元をおこなう場合、カメラの位置・姿勢の誤差を補正する必要がある。 対処:カメラの位置・姿勢の再算出 本研究のシステムは、対象物の発見処理をおこなう際、カメラに一定の俯角をつけ、そ れを搭載したロボットが床面上を走行するものである。ここで、可変なパラメータはカ メラのチルト角ψ、( カメラのパン角+ロボットの姿勢)を示すθ、ロボットの直進成 分tx、ロボットの並進成分tyの合計4つとなる。よって最適なカメラの位置・姿勢を 求めるためには、上記の4つのパラメータの組み合わせを見つけることで達成できる。 しかし 、式(4.1)の線形の評価関数は 、並進成分とスケールを分離できないため、並
復元結果(誤差無し)
カメラ位置に横方向10mmの誤差
カメラ姿勢 (ロール角) に1度の誤差