2012年4月3日火曜日

MacBookAir(10.7 Lion)でHandyAR その1

色々やろうやろうと思いつつ、気づけば数ヶ月…。
最近になってようやく仕事が一段落してきたので、いざ!ということで、やりたかったことをガシガシ進めていきます。

そんなわけでしばらくの間、タイトルの通り、LionでHandyARを動かしていきます。
当面の目標としては、このへん↓
HandyARで初音ミクが手のひらの上でウッーウッーウマウマ(゚∀゚)
を目指しておきます。
今更感が漂いすぎててアレなところはスルーで
イケそうならiPhoneでも動かしてみようと思います。

ホントはPTAMあたりを使おうかなと思ってたんですが、64bit環境だとインストールが非常に手間みたいなので、今回はHandyARを採用する方向でいきます。

HandyARの入手

HandyAR自体はいろんな方が解説されてますので、詳細は割愛しますが、カリフォルニア大のTaehee Leeという方たちが作った手法だそうです。

ソースコードの入手自体は、彼らのページから可能です。
ページ下部の"Source Code"に"HandyAR Verx.x"というリンクがあるので、そこからzipを落とすだけでOK。
おそらく"HandyAR-verx.x.zip"みたいなファイルがDLできるはずです。

とりあえず解凍してみると、なんかいろいろ入ってました。

入ってますが、今回用があるのは DemoHandyAR/DemoHandyAR/HandyAR/ 以下のファイル群になると思いますので、ここのファイルをごちゃごちゃいじっていきます。

とりあえずコンパイルしてみる

何もせずに動くならそれに越したことはないので、とりあえずコンパイルできる状態へ持っていきます。
なお、今回は個人的な趣味によりNetBeansで色々いじっていきます。

まずは HandyAR/ 以下のファイルを、ディレクトリごとプロジェクト直下にコピーしてきます。
また、上では HandyAR/ 以下だけで大丈夫そうと書きましたが、一応 ARTag/ と Capture/ もコピーしておきます。

コピーが済んだので、インクルードパスを通して、適当なファイルを開いてみると…


おや?

エラーがたくさんある上にインクルード文からも警告が…

インクルードファイル開くと…

 global.hも必要ですか…orz
ということでこれもコピー。
そして再度確認!


今度はglobal.h内部がおかしいようです。
global.hの中を覗くと…


OpenCVとglut関係でエラー吐いてます。
ただ、現時点で自分の環境にインストール済みのOpenCVはバージョン2.3なのですが、このヘッダ指定はどう見ても1.xのそれなので、激しく中身を書き換えたい衝動に…
ついでにデモ用に書かれたであろうヘッダ(cvFindExtrinsicCameraParams3.h)まであるので、うーんって感じです。

なんですが、今日はコンパイルさえ通ればよいので、バージョン古くても問題なし。
早速インクルードパスをOpenCVとglutに通し、cvFindExtrinsicCameraParams3.cpp/.hをプロジェクト直下に追加。
さらに再度確認。



ということで、無事通りました。
残りのファイルもエラー出てないな…



…と思ってたら、


エラーだらけ…orz
Capture/ 以下のFlyCap.cpp/.hがどうも他のライブラリに依存しているような感じですね。

ここで、同梱されていたドキュメント(DemoHandyAR Documentation.pdf)を読んでみると、

 Capture/
- In this directory, Capture.h and cpp files are used to capture video from a camera using OpenCV functions (and PointGrey’s SDK). In order to use PointGrey’s SDK, you need to include FlyCap.h and cpp files in the same directory into your VC++ project.
Capture/
- このディレクトリには、OpenCV(とPointGrey's SDK)を利用し、カメラからビデオキャプチャを行うために必要なCapture.h と cppファイルがあります。PointGrey's SDKを使うには、同じディレクトリのFlyCap.h と cppファイルをVC++プロジェクトに追加する必要があります。

とのこと。

ひとまずキャプチャはOpenCVだけで十分だと思いますので、上で出たエラーは無視できるようですね。
というか、調べてみるとPointGrey's SDKと言っているのは、FlyCapture SDKというものらしいんですが、どうもMacOSには対応してないみたいです。
なのでいずれにせよ上記のエラーは無視するしかないようです。南無。



なにはともあれ、これでようやく全体のコンパイルが終了(2012/4/4追記:全然コンパイルできてませんでしたw 詳細はその2へ)ということで、次回は実際に何か動かすところまで持っていこうとおもいます。
そういえばHandyARのライセンス関係ってどうなってるんだろう

0 件のコメント:

コメントを投稿