視て動く、動いて視る:能動的視覚認識の研



1.視るということ視る、見る、診る、看る、「みる」という言葉には、たくさんの漢字があります。「みる」ことで、人間は、どういう情報を得ているのでしょうか。例えば、図1のような状況を見たならば、「窓際に置いてある観葉植物が燦々としたお日様の光を受けている」といった情報をとらえることができるでしょう。
 視覚に関して言うならば、人間は、目という器官を通して、外界の情報を得ています。それに対して、機械は、カメラを通して外界の情報を得ます。外界という 3次元空間の情報を画像という 2次元データに変換できる唯一の装置がカメラなのです。
 カメラで撮影した画像を、計算機を使って処理する画像認識(コンピュータビジョン)の分野は、古い歴史があります。単純な画像処理から始まり、線画の理解、3次元空間の理解と進化してきまし
た。しかし、一枚の画像だけから得られる情報には限りがあります。いくら、画像を解析したところで、透視能力者でもない限り、物体の裏側を視ることはできません。もし、物体の裏側を視たいならば、裏側が視える位置まで視点を移動させなければなりません。このように、得られる情報が不足している場合、自ら行動を起こして不足している情報を獲得する方法は、能動視覚、あるいは、アクティブビジョン(Active Vision)と呼ばれています。カメラを積極的に動かすことで、より速く、正確に、与えられたタスクを遂行することが可能になるのです。

2.能動的な視覚
 能動視覚の手法の理念は、単純明快、「視えないなら、視えるように動く」です。
 次のような例を考えましょう。ある人が、片目だけで、棒を筒の中にいれようとしています(図2)。当たり前ですが、これだけでは、人間は棒を筒の中に入れることはできません。奥行き方向の不定性、曖昧さが残るからです。不定性を解消するために、人間は頭を動かし、別のところから観察して、はじめて、棒を筒にいれるというタスクを遂行できるのです。
 このことを、機械にやらせてみましょう。従来、機械にこのようなタスクを遂行させるためには、カメラの焦点距離や、ロボットとカメラの間の相対位置などを事前に厳密に計測しておく作業(システムの校正)が必須でした。これは、難しい問題で、なかなかうまくいきません。そこで、今回作成した実験システムでは、カメラから得られる画像情報だけを使って、ロボットを制御する、視覚サーボという手法を導入して、カメラやロボットの校正作業をほとんどしなくてもすむようにしています。もちろん、棒や筒の正確な3次元位置を知る必要もありません。
 カメラをどう動かすか、どの位置、どの姿勢に移動させるかが能動視覚システムの重要な点です。基本的な戦略は、次のようなものです。棒を持ったロボットは、画像上での棒と筒の位置の差ができるだけ小さくなるように、棒を動かします。3次元空間で棒と筒が同じ位置になるためには、少なくとも、画像上でそれらの位置の差は0である必要があります。ところが、仮に、画像上で差が0になったとしても、必ずしも、3次元空間で棒と筒が同じ位置にあるという保証はありません。この不定性を、よりよく検出するためにも、カメラの方は、この3次元空間での差をできるだけ大きく観測できるように、つまり、画像上で差が最も大きくなるように動かさなくてはなりません。こうしてみると、ロボットとカメラでは、棒と筒の位置の差に関して、正反対の動きをしなくてはならないことがわかります。さらに、事態を複雑にするのは、必ずしも、このような単純で直感的な戦略が、最適ではないということです。一見、うまくいきそうなのですが、上手に調整してあげないと、ロボットとカメラが「追いかけっこ」をするようになり、タスクがなかなか完了しないという問題も出てきます。このようなことを事前に知るためにも、計算機によるシミュレーション解析は欠かせません。シミュレーションから、最適な制御パラメータの見当をつけることが可能です。
 さて、このようなロボットとカメラの制御方法は、Row-action method と呼ばれる数値計算手法と良く似ています。この手法は、連立方程式を部分的に解くことを繰り返すことにより、連立方程式全体の解を求めるものです。カメラからは、3次元空間の部分的な情報しか得られません。しかし、カメラを動かすことで、新たな部分情報を得ることができ、その繰り返しにより、全体の情報を推定することが可能になるのです。
 実際には、カメラは、筒の周りを右に動いた方がいいのか、左に動いた方がいいのかを、カメラから得られる画像を元に判断します。また、ロボットの方は、できるだけ画像上で差が小さくなるように、棒を動かします。もし、カメラを動かしても画像上で差が0であり続けるならば、棒は筒の真上に存在するということがわかります。それを察知するとロボットは、棒を下ろして筒の中に挿入します。もちろん、棒を挿入するためには、棒と筒の先端の位置だけでなく、向きまでも一致させておかなくてはなりません。その様子を図3に示します。最初は、異なる位置、向きから、最終的には、棒を筒に挿入できたことが見てとれます。

3.目を変える:カメラモデルの選択
 能動視覚では、カメラの位置や姿勢だけでなく、カメラ自身の性質を変化させることも可能です。例えば、ズームレンズを備えたカメラなら、焦点距離を変化させることができます。ズームアップすることで、対象の一部分を大きく撮影すことができ、より詳しく対象を観察することができるようになります。ズームアウトしたならば、より広い範囲を撮影でき、対象の全体的な情報を得やすくなります。このような、カメラ自身の変化を、うまくモデル化することが次の課題です。
 カメラを使って 3次元空間を画像に投影すると、その間に、幾何学的な関係が成り立ちます。最近のコンピュータビジョンの話題の一つは、この幾何学的な関係を、うまく使って、応用に結び付けることです。3次元空間が画像にどのように投影されるかをモデル化したものを、カメラモデルと呼びますが、このカメラモデルも、この幾何学的な枠組みの中で記述することができます。透視カメラモデル、弱透視カメラモデル、アフィンカメラモデル、平行投影カメラモデルなど、さまざまなカメラモデルが提案されてきました。それぞれ、特徴があり、透視カメラモデルは、正確なモデルであるが、そのかわり、画像に含まれるノイズの影響を受けやすい、弱透視カメラモデルは、あくまでも近似でしかないが取り扱いが容易、など一長一短です。そこで、これら両方のカメラモデルの良い性質を受け継ぐような、中間的な性質をもったカメラモデルを考案しました。3次元形状の復元や、画像の生成などに応用でき、精度や安定度で優れていることが期待できます。

4.おわりに
 人間は、不足している情報を、自ら獲得する機能をもっています。しかも、臨機応変に、判断し、変化させることが可能です。今回、棒を筒に入れるというタスクを題材に、実験システムを組み、解析を行いました。また、カメラのモデル化に関しても、従来からあるカメラモデルの中間的な性質をもつものを提案しました。今後は、カメラの位置、姿勢、そして、焦点距離などを総合的に変化させ、対象の3次元形状を、形状に応じた荒さ、細かさで復元することを目標にしたいと考えています。


参考文献


Copyright(c)2002(株)国際電気通信基礎技術研究所