fc2ブログ

Rob Hess氏によるSIFTの実装をOSX SnowLeopardにインストール.

09 15, 2011
Rob Hess氏の実装したSIFT特徴のライブラリをOSXにインストールするのに格闘したのでメモ.
環境:MacOSX 10.6.7 Core2Duo
(2012/1/15 追記: 10.7.2でも同様の方法でインストール確認できました)

まず上記のリンクのDownloadからlinux向けの「sift-latest.tar.gz」をダウンロード.
しかるべきところに解凍します.

READMEに従ってOpenCVとGTK+2を入れる.
といってもOpenCVは既に入れてあるので,GTK+2だけをインストール.
(2012/1/15 追記: doxygenも必要になるので入れておきましょう.)

$ brew install gtk+
$ brew install doxygen



ここでまずlibtiffとかlibjpgとかが無いと言われてエラー.あるのに.
よくわからないが一旦それらをアンインストールしてもう一度入れ直したら治った.

というわけで,環境が整ったのでSIFTのビルドに臨む.
先ほど解凍したフォルダ(多分「sift」という名前)に移動し,そこでmake,
すると何やら色々とエラー.

まず,homebrewで入れたgtk+は,pkg-config用のメタデータファイル(*.pc)の名前が異なっているので,MakeFIleを修正.先ほど解凍したsiftフォルダにある「src」フォルダに移動し,そこのMakeFileを開いて,6,7行目を

INCL = -I$(INC_DIR) `pkg-config --cflags opencv gtk+-2.0`
LIBS = -L$(LIB_DIR) -lfeat `pkg-config --libs opencv gtk+-2.0`


と修正.

siftフォルダに戻ってmake clean,再度makeすると,

ld: warning: in (色々), file was built for i386 which is not the architecture being linked (x86_64)



というエラー.どうやら僕が以前homebrewから入れたOpenCVは32bitだったらしく,そこで問題が起きた模様.というわけでMakeFileのCFLAGSに-m32と書いて回避・・・となればよかったのですが,なんと今しがた入れたgtk+は64bit版だった(?)らしく,今度は

ld: warning: in (色々), file was built for unsupported file format which is not the architecture being linked (i386)


という逆の内容のエラー!これは詰んだ.

ここで,gtk+は今せっかく入れたので,ここはひとつOpenCVを64bit化してしまおうと思い立つ.
調べてみると,OpenCV本家に「32bit版が欲しければ『sudo brew install opencv --build32』しろ」と書かれていたので,じゃあ逆に64bitが欲しければ--build64かということで,

sudo brew uninstall opencv
sudo brew install opencv --build64


とやってみたら本当に入った.
そして再びmake.

おお,finish!無事成功!
成功しているか確かめるために,

./bin/match beaver.png beaver_xform.png

を実行してみる.

スクリーンショット(2011-09-15 6.14.35)

やったー!


・・・と思ったのも束の間,今度は自作のOpenCVプログラムがコンパイルできなくなる.
64bit版を入れ直したせいだとは思うが,そもそもこのMacは64bitマシンのはずだし・・・
と悩んでいたが,ふと「Snow Leopardは普通に起動すると32ビットモードで起動する」という事を思い出す.
ということでこれを機に常に64ビットモードで起動するようにする.
具体的には,再起動して画面が黒いうちに数字の「6」「4」キーを押し続ける.


うおーー!!!!
動きはええーー!!!
うおーコンパイルもできたぞー!!!
うおー5時だー!!!!寝るーーー!!!
(2012/1/15 追記: このあとマジでゼミに大遅刻したのはいい思い出です.)
スポンサーサイト



0 CommentsPosted in OSX
プロフィール

津田沼

Author:津田沼

学生です。ドラムとDTMをやっていますが、多分向いていません。Macを使っています。好きなお笑い芸人はさまぁ~ずです。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
Ninjaアクセス解析