PTAMの解析 - 1 概要

|
PTAM(Parallel Tracking and Mapping for Small AR Workspaces)の解析を行っております。
正直言って非常に難しいです。

なので、とりあえず概要について説明したいと思います。
また資料として、以下のサイトを参考にさせていただきました。
masayashiPTAMを15分でなんとなく理解する
CagylogicPTAMのアルゴリズムを理解するのに必要な用語


※非常に大雑把に翻訳しているので、誤りや不足があるはずです、ご注意ください。
※また、この内容は未完成で、修正される可能性があります。



○PTAMとは?

マーカーなしのARの手法です。
以下のような特徴があります。

  • 初めて映す場所でも実行できる(マーカーなどの目印いらず)
  • 最初の場所から少し移動しても、トラッキングし続けることができる。(常にマップを更新)
  • マップの更新とトラッキングを別スレッドに分けて処理をしている
  • 狭い作業空間(机の上など)を想定している
  • 他の手法と比べても、”高速”で”正確”で”安定”している



○PTAMの概要

マーカーなしのトラッキングを行える手法は他にもありますが、
PTAMがその他の手法と異なる部分は、次のような処理を行っている点です。

  • トラッキングとマップの更新を分離して、2つのスレッドで実行する
  • マップの更新はバッチ処理を使って、キーフレーム毎に行われる
  • マップは最初に、ステレオ・ペア(5-Point Algorithm)で初期化される。
  • マップの更新時には、エピポーラ幾何が使用される。
  • 非常に多数(数千)の点がマップされる。

こういった手法には、元々ロボットの研究分野で使われていたSLAM(Simultaneous Localisation and Mapping)という技術が使われています。
参考論文:Real-Time Simultaneous Localisation and Mapping with a Single Camera


ですが、ロボットのカメラを使ったトラッキングと、ARの人が手に持って使うカメラでのトラッキングでは、かなり勝手が違います。ロボットは、走行距離を返してくれたり、ゆっくり動いてもいいですが、人の場合はそうはいきません。

多くの場合、トラッキングとマップの更新は同時行われていますが、人を対象にしたARの場合はこれだと問題(data association errors)が起きてきます。そこで、トラッキングとマップの更新を分離しました。

この2つの処理を分離することにより、この問題を解決できるだけではなく、トラッキングの処理にかける時間を増やすことができます。
この論文では、coarse-to-fineという(高解像度と低解像度の複数の画像を用いる)手法を使うことで、トラッキングの性能を上げることができました。


さらに、フレーム毎にマップを処理するのではなく、うまく認識できたフレーム(キーフレーム)のみを対象にマップの更新を行うことで、ここに重いバッチ処理を使用することができます。
(マップの更新をリアルタイムに行う必要がなくなるので)

このバッチ処理には、"bundle adjustment"という手法を用います。
この手法を用いることで、マップ全体を最適化することができ、さらに安定したマップになります。


このブログ記事について

このページは、PipeRが2009年3月17日 19:26に書いたブログ記事です。

ひとつ前のブログ記事は「「拡張現実で恐竜がよみがえる!? 科博でジュラシックパーク気分」を見てきました。」です。

次のブログ記事は「PTAMの解析 - 2 処理プロセスの概要」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.01a