The Sixwish project

About

The Sixwish project は関わりのあるソフトウェアに対するマニュアルその他を整備するプロジェクトです。

sixwish.jp Blog

FLARToolKitで実装する白黒以外のマーカーARのやりかた

例えば、下図の様に青色背景の中に、マーカーがある状態だとします。


FLARToolKitのサンプルを使って、マーカーを認識させようとすると下記のようになります。


FLARToolKitで解析している画像を表示していますが、マーカーの部分が真っ白け……つまり、青い部分のほとんどは黒色として扱われてしまい、マーカーの形が浮かび上がらない状態になっています。

そこで、Adobe Pixel Bender Toolkit を使ってフィルターを作成します。

実行すると、白黒になるようにフィルターを書きます。
書き終わったら、[File]メニューにある[Export Kernel File for Flash Player]で、Flexで使えるようにします。

続いて組み込み。
Filterである .pbj ファイルをロードして、ShaderFilterを作る。
次に、通常のサンプルだと、ウェブカメラからの入力を「背景描画」と「マーカー解析」に使っているのでこれを別々に分ける……

// 背景描画
this.background = new Bitmap(new BitmapData(this.captureWidth, this.captureHeight, false, 0), PixelSnapping.AUTO, true);
this.background.width = this.canvasWidth;
this.background.height = this.canvasHeight;
this.addChild(this.background);
こんな感じになるかなと。
これは、FLARTK_Example_Single_SimpleCube_PV3D.as で言うところの、273行目辺りに追加。その直後に // setup ARToolkit というコメントがくる感じ。
背景描画は、 this.background を使うので、this.capture は、addChildしないようにする。

// キャプチャーしている内容を addChild
// this.addChild(this.capture);
ここまでできたら、MarkerDetectの処理の直前でFilterをかける……

// Marker detect
var detected:Boolean = false;
try {
    // カラーフィルター適応
    var _data:BitmapData = this.raster.getBuffer() as BitmapData;
    _data.applyFilter(_data, _data.rect, ZERO_POINT, this.extShaderFilter);
   
    detected = this.detector.detectMarkerLite(this.raster, this._threshold) && this.detector.getConfidence() > 0.000001;
} catch (e:Error) {}
これでフィルターがかかって、実行すると下記のようになると。
実験的に組み込んだだけなので、Filterを毎回やらなきゃならんのかとか、背景描画用にBitmapクラス作らなきゃならんの?とか微妙なところは多いですが、参考までに。

全体コードはもうちょっと試したら、説明ページ作って公開します。

ちなみに、FLARToolKitでやっていますが、同じことをNyARToolKitでもできますし、ARToolKitでもできる。
今回のは色フィルターだけですが、解析する前に画像処理を掛けてあれこれ処理すれば、変わったマーカーも認識させたりできるかもかも。

白黒のマーカーに飽きた方はチャレンジしてみては如何?

2010-07-15T23:44:00.003+09:00 Fuu.Rokubou 0 件のコメント

ARマーカーの基本

いろいろと協力してもらって、ARToolKitなどで使うマーカーについての説明記事を書きましたよーというお知らせです。

ARマーカーの基本
http://sixwish.jp/Flartoolkit/Marker/section01/

記事の大本は、株式会社エム・ソフトの中の人に書いてもらって、こちらでアレンジし直したものになります。
それにしても、自分で検証すること無く公開してしまって良いものだろうか……と。
ついでにいうと、一ヶ月くらい放置していたネタでもあったり……

それはさておき、マーカーをデザインするときに一読しておく価値がある記事になります。
一部、マーカーをどのようにして認識しているかも説明されているので、どういう事をやっているのかを知るための一助になればと思います。

2010-07-04T21:00:00.030+09:00 Fuu.Rokubou 0 件のコメント

FLARToolKit v2.5.x 以上を利用したGPLでの商用利用の例

FLARToolKit v2.5系も安定してから数ヶ月、ようやく利用例が出始めたかなぁという感じです。

今回紹介するのは、その中でも商用利用しつつ、GPLを選択した事例です。

amazarashi のCDのおまけのARコンテンツ
http://www.amazarashi.com/ar/index.html

Sony Musicさんのところのアーティストらしいし、有名らしいのですが……知りませんでしたorz
まぁ、基本的にマイナーなものしか聴かないし、アニソン系が多い人ですから知らなくて当然ですね。
はい。

ちなみに、ソースコードは下記のサイトにて公開されています。

bmblog
http://totoro.ws/blog/archives/2010/06/cd-17.html

公開されているものが何一つ再現できない方法での公開なので、本気で叩いてみようかと思うけれどめんどいのでパス。
ていうか、楽曲管理でうるさい人達が率先してライセンス違反てどういう事なのよ……

色々と組み合わせているようなので、参考にしたい方はソニー・ミュージックに直接問い合わせてソースコード請求してみては如何でしょうか?

ちなみに、ASIAN KUNG-FU GENERATION のマジックディスクのARコンテンツはライセンスされたものとのこと……このコンテンツのソースコードは見てみたかった……残念なのですよ

2010-07-04T12:00:00.060+09:00 Fuu.Rokubou 0 件のコメント

FLARToolKitの複数マーカーの利用例

かなーり前から作って欲しいとお願いしていて、一ヶ月前くらいには出来ていたのですが、いろいろと忙しくてお蔵入りになっていたので、動画にしてしてみた。



表示されているキャラクターは、NyARToolKitの作者、nyatla=にゃとら に掛けて、虎猫、ならばと、関係者をネコ化してみたというもの。書いたのは、ここの人。

実装は難しくはないけれど面倒かもしれない。
マルチマーカーのサンプルでは発見する度に表示する形式を取っているので、その部分を修正して、マーカーの情報をどこかに確保する。
確保したマーカーの情報を基に、組み合わせを判別する。
判別された組み合わせにあわせてキャラクターの動きを変える……
そういう順序で作れば良い。

面倒だったのでIDマーカーを使っていますが、普通のマーカーを使っても実装可能。
やるならば、FLARManagerを使った方が簡単に実装できると思うけれど……

まぁ、参考までに。

2010-06-20T11:42:00.000+09:00 Fuu.Rokubou 0 件のコメント

NyID Marker Maker

ようやく修正出来た……

というわけで、FLARToolKitに付属するNyIDのマーカをトラッキングするサンプルで、Model 3 のものが使えるようになりましたよーと。
まぁ、NyARToolKitのNyIDマーカーのサンプルでも使えると思いますが……

すべてはパケットの並びとチェックドットの計算方法に問題があったわけで、なんでこんなに時間かかったんだろうというか、放置していてごめんなさい。
もともとバグがあったのもそうだけれど、これであってんのかという検証をろくにやらずにやってしまったのが悪かったな。

つーか、Flash Builder 4 でデバックできなくなってからやりにくくてしゃーない。
OSから入れなおして再セットアップしたいが、Windows XPのPC潰して Windows 7 つっこんだ方が良いかな……
検証環境もかねてやるか……積み残し作業が増えていくorz

2010-06-10T01:08:00.000+09:00 Fuu.Rokubou 0 件のコメント