Mac OSX 10.6 Snow Leopard 64bit で PTAMを動かそう
拡張現実(AR: Augmented Reality)のツールとして有名なのに ARToolKit があるが、マーカーが必要になる。このマーカーを必要としない方法としてPTAMというものがある。
このPTAMなんだが、動かせるようにするまでが結構大変なのだが、Macにおいては、Snow Leopard になって、さらに導入困難になった。PTAMが使っているライブラリのコンパイルが通らないからだ。これを通す方法を見つけたので、メモとして残しておく。ちなみに参考になったのは 【snow leopard でPTAM】。
ところで、拡張現実ってーのは、実際の映像に何かしらの情報を重ねて表示すること(正確には情報付加なんだけどね)。サッカーのオフサイドラインとか、オリンピックの世界記録ラインとか。結構いろいろなところに使われていたりするが、たいていの場合、マーカーをおかないといけないので結構大変らしい。
さて、実際にPTAMを入れた手順を記す。
まずは PTAMとそれに必要な一式を入手。PTAMはここからダウンロードできる。あと TooN, libCVD, Gvars3 が必要だ。これらは PTAM の readme に取得方法が書いてある。cvsで最新のをもってこれば良い。
次に、mac ports をインストールする。これがあると楽なので。
64bit OS の場合、mac ports は 64bit base でビルドしてしまう。 libCVDあたりが 64bitでは動かないので困った事態になる。そこで、 mac ports も 32bit base で動くように設定してやる。
mac ports の設定ファイル /opt/local/etc/macports/macports.conf で built arch i386 を設定する。これはコメントアウトされているので、それを外すだけ。
mac ports を入れたら、mac ports を使って OpenCV をインストールする。これをすると、必要そうなライブラリを一式入れてくれるのでこれがおすすめ。まぁ、余分なものもかなり入るので、それが嫌な人は、1つ1つ入れるのも良い。かなり面倒だけどね。OpenCVあると便利だからこれがおすすめ。
ちなみに・・・すでに 64bit で OpenCV を入れてしまっている人は、readline だけ 32bit で入れ直す。これをしないと libCVDがコンパイルできないので注意!!
ちゅ〜か、OpenCVいらない?readlineだけで良いかもね。試してないからわからないけど。。。
mac ports で libdc1394 をインストールしておく。IEEE1394カメラを使うので。USBの場合はどうか知りません。
TooN のインストールをする。次のようにすれば良いようだ。
export CXXFLAGS=-D_REENTRANT ./configure CXXARCH="-arch i386" --without-ffmpeg make make install
libCVD のインストールをする。これが結構面倒。基本、OSX10.5のSDKを使うようにしてやれば良いらしい。
まず、 cvd/gl_headers.h にある
#include <GL/gl.h> #include <GL/glu.h>
の GL を OpenGL に書き換える。次に progs/calibrate.cxx の中の GL_TEXTURE_RECTANGLE_NV を GL_TEXTURE_RECTANGLE_ARB に書き換える。
configure_mac.sh を以下の内容で作成する
#!/bin/zsh SDK="-isysroot /Developer/SDKs/MacOSX10.5.sdk" SDKLIB="-Wl,-syslibroot,/Developer/SDKs/MacOSX10.5.sdk" export MACOSX_DEPLOYMENT_TARGET="10.5" ARCH="-arch i386" export CFLAGS="$ARCH $SDK -mmacosx-version-min=10.5 -I /usr/local/include" export CXXFLAGS="$ARCH $SDK -mmacosx-version-min=10.5 -I /usr/local/include" export CPPFLAGS="$ARCH $SDK -mmacosx-version-min=10.5 -I /usr/local/include" export LDFLAGS="$ARCH $SDKLIB -mmacosx-version-min=10.5 -I /usr/local/include" CC="/usr/bin/gcc-4.2" CXX="/usr/bin/g++-4.2" OBJC="/usr/bin/gcc-4.2" ./configure $1 $2 $3 $4 $5 $6 $7 $8 $9
cvd_src/Linux/dvbuffer3_dc1394v2.cc の guid==0x814436200006075 を guid==0x814436200006075LLU に変更する。
後は、次のようにビルドする
sh configure_mac.sh --without-ffmpeg --x-libraries=/Developer/SDKs/MacOSX10.5.sdk/usr/X11/lib/ --x-includes=/Developer/SDKs/MacOSX10.5.sdk/usr/X11/include make make install
Gvars3 をインストールする。
まず、 ./configure --disable-widgets で Makefile を作る。
できた Makefile の CXX=g++ に -arch i386 を追加する。
あとは、make と make install をするだけ。
PTAM のビルド
Build/OSX 以下にあるものを全てカレントにコピーする。
コピーした Makefile の CC=g++ -g -O3 に -arch i386 を追加する。
あとは、 make して終わり。
Mac book pro はこれでうまくいった。
環境依存はありそうなんで、参考までにということで。