fc2ブログ
 カレンダー

11月 │2024年12月│ 01月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

 プロフィール

はしもと

Author:はしもと
ユーザインタフェース系のお仕事をしてます.関心領域は画像処理,拡張現実感,ヒューマンコンピュータインタラクション,エンタテインメントコンピューティングあたり.モノ書きもやってます.

 工学ナビ

工学ナビは工学系の技術のチュートリアルを扱うサイトです.

 作ったもの

 Twitter

 

 天気予報


 ブログ内検索

 カテゴリー

最新コメント

 RSSフィード

 リンク

このブログをリンクに追加する




工学ナビの中の人 はしもとのブログです. いろんなコトを研究的,工学的な視点で見つめます.
あのマーカレスARの研究がついにソース公開!
昨年のISMAR'07でベストペーパーに輝いたGeorg Klein氏の論文
「Parallel Tracking and Mapping for Small AR Workspaces」の
ソースコードがついに公開になりました!

masayashi君ヨカッタネ!
『攻殻機動隊』『電脳メガネ』どころではない拡張現実感技術の現在 | 王様の箱庭

Parallel Tracking and Mapping for Small AR Worspaces



一度は「ソース公開の話はなかったことに」みたいな展開がありましたが,
オックスフォード大学直属の会社との間で権利の整理ができたようで,
非商用ライセンスの下でソースを利用することができます.


Georg Klein Home Page
http://www.robots.ox.ac.uk/~gk/

ソース配布ページ
http://www.robots.ox.ac.uk/~gk/PTAM/

使い方の簡単な説明
http://www.robots.ox.ac.uk/~gk/PTAM/usage.html





ソフトウェアの名前は「Parallel Tracking and Mapping」を略して「PTAM」らしいです.ピータム?
配布ページにはこんな文章が太字で明記してあります↓

Please note that this is research-quality code and not a polished end-user application. Unless you are familiar with compiling and running computer vision applications on your target platform, you might have a hard time using this.

(意訳) あくまで研究レベルの品質で,けしてエンドユーザ向けに洗練されたアプリケーションではないから注意してね! 目的のプラットフォーム上で,コンピュータビジョンのアプリケーションをコンパイルして走らせることに慣れてない人は苦労すると思うよ! (ジョージより)


とりあえずやっつけで動かしてみたので備忘録的にメモ.

●Windows(VisualC++2008)でコンパイルするのに必要な道具

PTAM (PTAM.zip)
GLEW (glew-1.5.0-win32.zip)
Lapack and BLAS (shared-libs.zipとheaders.tar.gz)
CMU1394 camera driver (1394camera645_src.zip)
pthreads (pthreads-w32-2-8-0-release.exe)
libjpeg for win32 (jpeg-6b-4.exe)

以下はCVS経由でソースコードをダウンロード
TooN
libCVD
Gvars3


●Georgの言うとおり,素人にはおすすめできない

PTAMに付属しているREADME.txtを読みながらかなり頑張らないといけません.
道具そろえるまでがひとつの山です.Windowsユーザの人やCVSを使ったことが
ない人はCVS経由のダウンロードで手間取るかも.

それぞれのライブラリをコンパイルしたり,パス通したりとかなり大変です.
コンパイルできても画面が…なんてことは日常茶飯事.どうやらIEEE1394接続のカメラを
入力として扱ってる(?)みたいなので,Webカメラで動かすために少々Hackしました.
この辺りは知識がないとつらいかも.


●WebカメラでPTAMを動かしたい人のためのソース

Webカメラで動かすためのソースを公開します.
同梱されているreadmeをよく読んで自己責任で使ってください.

中の人ブログ用ファイル置き場 > PTAM for Webcam > PTAM_webcam.zip
工学ナビ::BACKYARD


●使ってみた感じ

カメラキャリブレーションツールが付属してるので先にこれを実行する必要があります.
メインのプログラムのほうですが,残念ながら「龍安寺でダースベーダー」は入ってませんでした.
期待の特徴点抽出とマッピングにはさすがに「おぉー」となりますが,デモ動画のようにはうまくいき
ませんでした(カメラの問題かな).ちなみにビデオ入力は 640x480,30Hz,そして広角レンズ推奨
だそうです.

PTAM_01.jpg
最初にカメラをスライドさせます.

PTAM_03.jpg
すると格子状の平面が現れ,特徴点のトラッキング&マッピングがスタートします.

PTAM_02.jpg
AR表示にすると,目玉が4つ表示されます.正直気持ち悪い(笑)
どうやら研究グループのトレードマークらしい.

PTAM_04.jpg
マッピングされた特徴点.


●初音ミク on PTAM 【08/10/07追記】



もう! aiminoさんは仕事が速いんだから!


●ライセンス日本語訳

かなり適当ですが,ライセンスを翻訳しておきました(ただしあってる保証はないです).
基本的には「商用はダメ」ってとこさえ押さえておけばOKみたいです.

http://www.robots.ox.ac.uk/~gk/PTAM/download.html
Parallel Tracking and Mapping for Small AR Workspaces
ライセンス & ソースコード ダウンロードページ

ソフトウェアをダウンロードする前に以下のライセンスを読んでください.
-----------------------------------------------------------------------------
ライセンス
Parallel tracking and mapping for small augmented reality workspaces - PTAM.1
PTAM.1 (c) Isis Innovation Limited 2008 (以下,ソフトウェア)

このソフトウェアはオックスフォード大学(以下,大学)の完全子会社であるIsis Innovation社(以下,Isis)の所有物です.このソフトウェアを使用する際,ライセンシー(利用者のこと)は上記の著作権表記を明示しなくてはなりません.

ソフトウェアは以下のライセンスの下で配布されます.

・非独占的なライセンスです.
・有用と考えますが,ひとえに非商用の目的で使ってください.
・このソフトウェアはAS-IS(あるがまま)で提供されます.また,慈善団体としての大学が教育および研究目的でその資産を保護するために,(iii)ソフトウェアの使用が第三者の権利を侵害するかどうかに関係なく,(i)ソフトウェアの品質,正確さ,信頼性,(ii)特定の目的や特定の条件下におけるソフトウェア利用の適合性について説明や保証をしません.

Isisは,ソフトウェアによって作られたものを使用する際のすべての責任,およびソフトウェアの使用によって発生する結果についてのいかなる義務も負いません.

ソフトウェアが結果またはデータの源であることを明記しているのであれば,ライセンシーはソフトウェアの利用によって発生する結果または得られたデータを公表することができます.公表物には,著作権表記および,ソフトウェアがIsisからのライセンスの下で使用できるようになっていることの表記を含みます.またライセンシーはそのような公表物のコピーをIsisに提供します.

ライセンシーはIsisおよび大学を保護し,彼らを,ソフトウェアまたはその派生物の直接的・間接的な使用や,ソフトウェアに基づく製品の販売に起因する第三者によるすべてのクレーム,損害賠償,負債(過失によるクレームを含む)から無害な状態に保つことに同意します.

いかなる形でも,またどんな手段でも,Isisの明確な許可なしに,ソフトウェアの一部を電子的,機械的に複写,修正,送信,転送することはできません.もし,上記の複写,修正,送信,転送が金銭的な成果なしに行われ,このライセンスの条件が製品の受け手に課せられ,すべてのオリジナルデータと改変されたソースコードが送信された製品に含まれるのであれば,Isisの許可は必要ありません.

これらの契約条件を守らなかったことによって発生または助長される著作権侵害に対してあなたには法的に責任があります.

このライセンスの下では,このソフトウェアを商業目的で使うことは許されていません.

なんらかの金銭的成果を得るような使い方は商用とみなされます.これには以下のような場合を含みます.
(1) ソースコードのすべてまたは一部,あるいはソフトウェアを商用の製品に統合する,あるいは,ライセンシーによりまたはそれに代わって第三者にライセンスする.
(2) 商用または第三者へのライセンスのためのソフトウェア製品の開発を最終目的とする,このソフトウェアまたはその派生物の研究利用.
(3) 商用または第三者へのライセンスのための非ソフトウェア製品の開発を最終目的とする,このソフトウェアまたはその派生物の研究利用.
(4) 支払いを受け取るようななんらかのサービスを外部の団体に対して提供する使い方.

もしあなたが商業的な利用に関心がある場合は,ライセンス交渉のためにIsisに連絡してください.
連絡先: [email protected](問い合わせ番号:DE/3588)




この記事に対するコメント

PTAMをうまく動かすことができず、ここにたどり着きました。
>>Webカメラで動かすために少々Hackしました
この部分を詳しく教えていただけませんか?
【2008/10/07 04:52】 URL | #tZypRCzY [ 編集]


>名無しの人
ソースをUPしておきましたので参考にしてください.

あと,これはアドバイスですが,
ネットで人に何か尋ねるときは名前くらい入れたほうがいいですよ.
それも「名無し」とか「通りすがり」みたいなのはなるべく避けて.
それで対応がぜんぜん違ってくることがよくありますから.
【2008/10/07 06:27】 URL | なおき #F54KmX5Y [ 編集]


>なおき様
ソースUPありがとうございました。
参考にさせていただきます。
アドバイス、これからは気を付けます。
【2008/10/07 23:55】 URL | ひろ #tZypRCzY [ 編集]


たくさんありがとう!
【2008/10/14 14:22】 URL | #- [ 編集]


初めまして keepと言います。
ブログ読ませていただきました。そこで、Ptamのwebカメラ用のソースが欲しいのですが、ブリーフケースが表示されません。
よろしければ再度アップしていただけないでしょうか?
どうぞよろしくお願いいたします。
【2009/02/05 16:29】 URL | keep #BszJaHak [ 編集]


はじめまして、イデラと申します。同じく、当該ファイルを希望します。
お手数かけますが、ぜひ再うpお願いいたします。
(ただ、目的はPGR Flycapture用に変換する参考にしようと思っています)
【2009/02/05 18:17】 URL | イデラ #- [ 編集]


初めまして、ゲーム専門学校でゲームプログラミングを勉強している八幡洋一と申します。
上に同じく私もPTAMでWebカメラを使うためのソースコードをお借りしたいと思っています。
【2009/02/05 20:00】 URL | 八幡洋一 #kCREIVmc [ 編集]


>keepさん,イデラさん,八幡洋一さん

皆様どうもご迷惑をおかけしてすみません.うっかりしてました.
(ブリーフケースが会員サービス化してしまって消されました)
工学ナビのほうにファイルをUpしようと思います.しばしお待ちを.
【2009/02/05 20:04】 URL | はしもと #F54KmX5Y [ 編集]


お待たせしました.こちらにアップロードしておきました.
http://kougaku-navi.net/backyard.html
【2009/02/05 20:40】 URL | はしもと #F54KmX5Y [ 編集]


迷惑なんてとんでもないです。ありがとうございます。
【2009/02/05 20:43】 URL | 八幡洋一 #kCREIVmc [ 編集]


はしもとさん
本当にありがとうございます。
感謝します。
【2009/02/05 22:52】 URL | keep #BszJaHak [ 編集]


はしもとさん
ありがとうございます!ありがたく使わせていただきます。
【2009/02/07 22:58】 URL | イデラさん #- [ 編集]


PTAM for Webcamを使わせてもらいながらPTAMに取り組んでいます。
ビルドを行い、キャリブレーションをすませるところまでは出来ました。
しかし、肝心のPTAMを実行することができません。
調べてみると、ARDriver.ccの111行目
(glBindRenderbufferEXT(GL_RENDERBUFFER_EXT, DepthBuffer);)
でアクセス違反が起こっているようです。
DepthBufferの値に問題があるのは分かるのですが、そこからが分かりません。
Nvidiaのビデオカードとドライバ(ver:178.24)は入っていて、ちゃんと動作しています。

アドバイスがいただけたら幸いです。
【2009/02/16 03:01】 URL | あすみ #- [ 編集]


>あすみさん
おそらくビデオカードの問題ではないでしょうか。
以下http://mixi.jp/view_bbs.pl?id=35619847&comm_id=3720485
からの転載です。
~~~~~~~~~
PTAMを動作させるにはビデオカードがOpenGL 1.5に対応していないと
以下のエラーで実行できません。

『PTAM.exe [2916]でハンドルされていない Win32 の例外が発生しました。 』

確認はOpenGL Extensions Viewerというツールをで確認してください。
http://www.forest.impress.co.jp/lib/sys/hardcust/vdodsply/openglexview.html


この場合 System.cc の mpARDriver が書かれた行を全てコメントアウトすれば動きます。

たとえば以下の所ですが、mpARDriver->Reset(); だけコメントアウトするのではなく、
その前の if(!mpMap->IsGood()) からコメントアウトをしてください。

> if(!mpMap->IsGood())
> mpARDriver->Reset();
【2009/02/16 18:29】 URL | イデラ #- [ 編集]


>>イデラさん

ありがとうございます。
ツールで確認してみたところ、OpenGL 1.5には対応していました。
引き続き、mixiの参照先も参考にしながら取り組みます。
ありがとうございまいsた。
【2009/02/17 20:27】 URL | あすみ #- [ 編集]


はじめまして、五穀と申します。
私もこの記事などを参考にしながらPTAMを使えるように、現在取り組んでる真っ最中です。
それで現在、以前に投稿されているあすみさんのエラーと全く同じとなっている状態です。
mixiの参照も参考にして、ツールでOpenGL 1.5に対応していることも確認し、System.cc の mpARDriver が書かれた行を全てコメントアウトもしました。
しかしエラーが出るのは変わりませんでした。
このエラーの対処について、アドバイスよろしくお願いします。
また同じエラーが出ていたあすみさんから、その後のこのエラーの対処方法を教えていただけると幸いです。よろしくお願いします。
【2009/06/16 17:39】 URL | 五穀 #- [ 編集]


今小6なんですが、

ARTOOLKITは
一人で導入できてタチコマで遊んでいるのですが
ptamは導入できるでしょうか?
c言語などは少しできます。
【2010/04/04 18:26】 URL | yamatixx #- [ 編集]

Re: タイトルなし
> 今小6なんですが、
>
> ARTOOLKITは
> 一人で導入できてタチコマで遊んでいるのですが
> ptamは導入できるでしょうか?
> c言語などは少しできます。

小6でC言語をやっているなんてすごいですね。
PTAMにもぜひ挑戦してみてください。きっとできると思います。
インターネットで検索すれば導入方法について書かれた記事が
いろいろ見つかりますよ。

「できる・できない」と年齢は関係ありませんので、
自分が興味を持ったことにどんどん挑戦していってください。
【2010/04/04 23:26】 URL | はしもと #F54KmX5Y [ 編集]


ありございます。
休日にやってみようと思います。
【2010/04/07 17:07】 URL | yamatixx #- [ 編集]

実行
はじめまして、webカメラでPTAMを動かすソースを使用させていただきました。
上手く、ビルドでき、実行できました。

ただ、コーディング環境以外のマシンでは、
"CameraCalibrator.exe"は動くのですが、
肝心の"PTAM.exe"が"settings.cfg"を読み込んだあと、
Windowを作って、そのまま強制終了になります。

何か対処方法はあるのでしょうか?
試しに、Microsoft Visual C++ 2008 再頒布可能パッケージ (x86)を
入れてみたのですが、ダメでした・・・。

動かしてみたマシンは、Let's note CF-R7
windows xp sp3
Core2 Duo 1.33GHz
1.99GB RAMです。
【2010/04/19 20:44】 URL | みつ #c1AsKuOU [ 編集]


まずはプログラム中のどの行で落ちているのかをきちんとおっかけたほうが良いと思います.
コーディング環境以外のマシンで落ちる,ということですので,実行ログを吐くように
プログラムを書き換えてみてはいかがでしょうか?
どの行(どの関数)まで正常に実行できたかを確認できるように,適当な行で
適当なテキストファイルを出力するようなコードを挿入したら良いと思います.

経験上,ウィンドウが落ちる系のエラーは,ビデオ入力(Webカメラ)か,ビデオカードの
いずれかに問題があることが多いです.極端な例ですが,以前,ビデオカードのドライバを
入れ替えた際に必ずブルースクリーンで落ちる,という嫌な現象を体験しました.
【2010/04/20 02:36】 URL | はしもと #F54KmX5Y [ 編集]


ありがとうございます。

情報をはかせて見たら、
"ARDriveer::MakeFrameBuffer()"内の
OpenGL 拡張機能を使っているところでおちていました。

どうやら、FrameBuffer Objectは対応していないみたいです。

なので、一旦DrawARを捨てる方向で対応したら動きました。

また今度、この辺りをFBOを使わない、オフスクリーンレンダリング?などで
やってみようと思います。
【2010/04/21 20:23】 URL | みつ #c1AsKuOU [ 編集]

ちょっと困ってます
はじめまして。
こちらのブログを読みPTAMの設定に参考にさせていただいてます。

ちょっと解決できないことがあるので、こちらにコメントさせていただきます。

カリブレーションもでき、PTAMも起動でき、格子状の平面が現れ,特徴点のトラッキング&マッピングまでできたのですが、AR DRAWを押しても目玉が表示されません。
何が原因なのでしょう?
【2010/10/29 09:14】 URL | shige #- [ 編集]

Re:ちょっと困ってます
現在公開されているPTAMは,私が記事を書いた時点のバージョンと異なるようなのでなんとも言えませんが(最新版はまだ試していません),3D描画があやしいときは,ビデオボードの設定で,3D描画処理関係のパラメータを適当にいじってみる,というのが一手です.
【2010/10/29 15:17】 URL | はしもと #F54KmX5Y [ 編集]

ReRe:ちょっと困ってます
質問に回答いただきありがとうございます。

目玉が表示されないのは、おっしゃる通り描画関係だよな~と考え1週間。
そういえば、このノートPC買ったばかりだから、DirectX最新版になってないのではないか?
と思いいたり、更新してみると見事目玉が表示されました!!
なんとも恥ずかしい限りです・・・

また何かありましたら、よろしくお願いします。
【2010/11/04 19:21】 URL | shige #AOgGz7Lw [ 編集]

承認待ちコメント
このコメントは管理者の承認待ちです
【2015/11/17 16:32】 | # [ 編集]




この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://kougaku.blog28.fc2.com/tb.php/317-2c144544
この記事にトラックバックする(FC2ブログユーザー)

MacbookでPTAM

CVSってなに?ってとこから始めたのでものすごく苦労しました。 CVS自体はMacに初めから入っているし、 コマンドもReadmeに書いてあったので良い... 優れたオタクは優れた人間でなくてはならない【2008/10/10 12:49】

マーカーレスAR『PTAM』

マーカーレスAR『PTAM』をWindows+USBカメラで動かす。 残念ながら、これは難しいわけではないが、簡単なわけでもない。 ただし、インストー... 2D→3D【2009/10/20 21:40】