スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

マーカーレスAR『PTAM』

PTAM実行画面1

マーカーレスAR『PTAM』をWindows+USBカメラで動かす。

残念ながら、これは難しいわけではないが、簡単なわけでもない。
ただし、インストールの方法は以下のサイトを参考にしながら、頑張ればなんとかなるレベル。

あのマーカレスARの研究がついにソース公開!

マーカレスAR(PTAM)のソースコードを動かしてみた(WindowsXP VisualC++) | happymeme

自己満足なBLOG

Parallel Tracking and Mapping for Small AR Workspaces - Source Code

ここでは、私がちょっとハマった注意点を残す。

インストール編:

1.まずは、PTAMをダウンロードし、必ずREADME.txtを読む
これはPTAMに必要なライブラリのバージョンがかなり限定的であるため。バージョンが違うとコンパイルが通らない場合がある。
2009.09の時点では、注意が必要なのは「TooN、libcvd、gvars3」。
この三つのライブラリはバージョンがシビアなので、必ずREADME.txtで指定されたバージョンをcvsで取得すること。

ちなみにcvsのソフトはwincvsがおすすめ。インストール後、コマンドプロンプト上でREADME.txtのcvsのコマンドを丸々コピーすれば、該当するバージョンの「TooN、libcvd、gvars3」を取得できる。

2.「libcvd、gvars3」は最後にコンパイルする
PTAMを正常に動かすためには以下のものをインストールする必要がある。

WEB経由
・PTAM
・GLEW
・Lapack and BLAS
・CMU 1394 camera driver
・pthreads
・libjpeg for win32
・fltk

CVS経由
・TooN
・libcvd
・gvars3

(USBカメラが必要な場合)
ewclib(バージョン1.2)
PTAM for Webcam

WEB経由で取ってくるものの中には、「libcvd、gvars3」をコンパイルするためにインストールする必要があるものが存在するため、「libcvd、gvars3」は最後にコンパイルする。
また、USBカメラで実行する場合には、USBカメラ用のソースコードを適用する前の状態でPTAMがコンパイルできることを確認した上で、USBカメラ用のソースコードをコンパイルした方が良い。

3.(USBカメラが必要な場合)ewclibはバージョン1.2
工学ナビで提供されているソースコードを用いて、USBカメラでPTAMを動かす場合、ewclibはバージョン1.2を用いる。もちろん、今後変更される可能性もあるため、こちらも必ずREADME.txtを確認すること!

実行編:

1.実はグラフィックボードは必須じゃない
PTAMはグラフィックボード必須かのように書かれているが、実は部分的な機能であればグラフィックボードなしで実行できる。

通常、グラフィックボードの載っていないPC(ノートPCとか)では、下記のようなエラーが出る。

>00000000()
> PTAM.exe!ARDriver::MakeFrameBuffer() 行 111 C++
>PTAM.exe!ARDriver::Init() 行 29 C++
>PTAM.exe!System::Run() 行 72 C++
>PTAM.exe!main() 行 29 C++
>PTAM.exe!__tmainCRTStartup() 行 266 + 0x12 バイト C
>kernel32.dll!7c816fd7()
>[下のフレームは間違っているか、または見つかりません。kernel32.dll に対して読み込まれたシンボルはありません。]


これはPTAMがFBOという機能を使用して、CGを描画しているため。
しかしながら、CG描画をあきらめれば、以下の一行をコメントアウトするだけで動く。

ADRDriver.cc内

//MakeFrameBuffer();←この一行をコメントアウト


当然ながら、「Draw AR」のボタンを押すと落ちるので注意が必要。

2.画面上方にあるのは実はボタン

PTAM実行画面1

これは引っかかりがち、画面上方にある色のついているのが実はボタン。

3.ViewMapの画面は視点移動可能
PTAM実行画面2

ViewMapの画面はドラッグで視点移動が可能。中ボタンもスクロールでなく、ドラッグなので注意。
(ちなみに、真ん中あたりに見えているのが、カメラの軌跡)

こんな感じで「三次元上のカメラ位置」を特定する方法として、PTAMをベースに考えていきたいと思う。

テーマ : 真剣に考えてみた
ジャンル : サブカル

コメントの投稿

非公開コメント

FC2カウンター


プロフィール

tktk

Author:tktk
職業:召還士見習い

2次元世界と3次元世界をつなぐ方法を研究中

------------

参考にさせて頂いたサイト様にリンクを貼らせて頂いています。問題等ございましたら、2Dto3D.tktk_at_gmail.com
(_at_→@に変換)までおねがいします。ご意見等もお待ちしております。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2ブログランキング

FC2Blog Ranking

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。