スポンサーサイト

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

レーベンバーグ・マーカート法ライブラリ「levmar」およびそのビルドのための「f2c」の構築 on Mac OSX

09 16, 2011
どうも,最近ライブラリのビルドにハマっているKZMです,

今回,研究を進めるにあたって非線形の最適化を行う必要性が出てきたにあたって何か良いライブラリは無いかなと思っていた所,読んでいる資料の中で「levmar」というライブラリの名前が挙げられていたので,早速ビルドしてみることにしました.環境はOSX 10.6.8 64bitです.

個人的に気に入った点としては,これがC/C++による実装であるという点です.今からMATLABの使い方を学ぶのもおっくうだったので.

そして,ありがたいことにlevmarに関する情報が電通大・三橋研究室のサイトに非常に丁寧に載せられています.概要や関数に関してはこちらのページを見ればきっとわかりやすいでしょう.

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

というわけで,早速上記のlevmar公式サイトからソースコードをダウンロード.展開してREADME.txtを読むと,「LAPACK」とやらをインストールしておくことを強く推奨されました.しかし,調べるとOSXはDeveloper's kitを入れると標準でLAPACKも入ってくるとの事だったので一安心.おなじくREADME.txtには「コンパイルの前にlevmar.hをいじって設定しといてね」と書いてありましたが,ざっと見た所変更の必要性は感じなかったのでスルー.LAPACKを使わない時はこのあたりをいじくると良さげでした.

次にMakefileを見てみと,LAPACKのライブラリのパスが

LAPACKLIBS_PATH=/usr/local/lib


となっていましたが,実際に調べてみるとOSXではusr/libにliblapack.dylibが存在したので,

LAPACKLIBS_PATH=/usr/lib


と華麗に編集.あとはそのままでmakeしてみたところ,「f2cなんてライブラリ無いよ」と言われエラー.

ここからが大変でした.f2cのインストールに関してはこちらのサイトを参考にしたのですが,あいにくここで紹介されているダウンロード先がリンク切れ.仕方ないので公式サイトを探すと,

http://www.netlib.org/f2c/index.html


えっ

何故か各ファイルが圧縮されていなかったので,慣れないwgetを駆使して1つ1つ全てダウンロード.「src」の先にあるファイルはその通りにsrcというフォルダを作ってその中に入れておきます.libf2c.zipも解凍しておきましょう.あとは

$ cd src
$ cp makefile.u makefile
$ make xsumr.out


あれ,エラー.内容はよくわからなかったのですが,READMEにずばりこの症状の時の事が書かれていて,

Should you get the message "xsum0.out xsum1.out differ", see what lines
are different (`diff xsum0.out xsum1.out`) and ask netlib
(e.g., netlib@netlib.org) to send you the files in question,
plus the current xsum0.out (which may have changed) "from f2c/src".
For example, if exec.c and expr.c have incorrect check sums, you would
send netlib the message
send exec.c expr.c xsum0.out from f2c/src
You can also ftp these files from netlib.bell-labs.com; for more
details, ask netlib@netlib.org to "send readme from f2c".


えっ

激しく面倒くさい事になってきましたが,要するにこれはチェックサムがあってないよというだけで,この行程自体を無視しちゃっていいんじゃね・・・と思い,試しにmake xsumr.outを飛ばして

$ make f2c


をしてみたところ,無事(?)コンパイルできました.ここから先は参考サイトの通り.まずsrcフォルダから親フォルダに戻って,libf2cフォルダ内のmakefile.uを修正.

ld -r -x -o $*.xxx $*.o


の「-x」を削除します.あとは

$ cd libf2c
$ make -f makefile.u
$ cd ..
$ sudo cp src/f2c /usr/local/bin
$ sudo cp libf2c/libf2c.a /usr/local/lib
$ sudo cp f2c.h /usr/local/include
$ sudo cp f2c.1 /usr/local/share/man/man1
$ sudo ranlib /usr/local/lib/libf2c.a


でf2cビルドからインストールまで完了,これを終えた時点でもはや当初の目的を忘れていたのですが,これでようやくlevmarのビルドができるわけです.はじめに見たlevmarのフォルダに移動してmakeすれば,今度は成功するはずです.

0 CommentsPosted in OSX

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

舞浜フィレコデビュー

06 20, 2011
舞浜でのフィールドレコーディング(通称フィレコ)は年パスを買ったらやりたかったこと第一位だったので,先日PCMレコーダーを購入して本日早速実戦投入です.これで僕も舞浜フィレコ隊の仲間入りです.
愛機はTASCAMのDR-2d.

写真

早速10周年仕様ですね.

というわけで,今日録りたてほやほやのファンタズミック!現地録音ver(の一部)をどうぞ.
なかなか良い音ですね.

OSX版Steamの各種データ格納場所 ~ Portalが面白すぎてケーキがうまい

06 15, 2011
PCゲーマーのみなさんにとっては今更な話ですが,
最近になってこの「Portal」というゲームのことを知って
もっと最近になってPortalがMacでもできることを知ったので
昨日からやり始めました.
(余ったパッケージをプレゼントしてくれた研究室の仲間に感謝.)

マジで良いゲームだこれは!

という感想は散々言われているので置いといて,
このPortalをやるためには「Steam」というプラットフォームが必要で,
Steamを経由してゲームをダウンロードしたり実行したりするわけなんですが,
一体ファイルはどこに保存してるんだろう・・・と気になったので調べました.

一部サイト(Steam公式も含む)には「ユーザの『書類』フォルダにある」と
書かれていましたが,バージョンアップで変わったのか知りませんが
僕の環境では以下のフォルダにありました.

/Users/(Macのユーザ名)/Library/Application Support/Steam/SteamApps/(steamのユーザ名)/portal/portal


というわけで,書類フォルダにないよって方はこちらを参照下さい.
コンフィグファイルもこの中のcfgフォルダに入れればいいはずです多分.

しかし良いゲームだなPortal.エンディングで一気に好きになったよ.
何となくマザー2ファンあたりにもウケそうなエンディング曲ですね.
本編だけなら2,3日でクリアできるので是非.
ちなみに僕のsteamアカウントはtwitterと同じ名前なのでそちらも良ければ是非.



〜〜〜〜 僕がやったのはPortal1ですが 〜〜〜〜

ポータル 2
ポータル 2
posted with amazlet at 11.06.15
エレクトロニック・アーツ (2011-05-19)
売り上げランキング: 264


ポータル1&2パック【日本語版】
サイバーフロント (2011-04-22)
売り上げランキング: 463

新曲「pole」

05 22, 2011
新曲「pole」
制作期間 深夜3時〜5時半くらい.深夜のテンション.

pole by megane42

ストリーミング版は音が悪い!ダウンロードしてくれると嬉しいなw
プロフィール

カザマ

Author:カザマ

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

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