NyAR4Psg/1.0.3リリース

NyARToolkit for Processingを更新しました。

元々は某はしもとさんからのバグ修正依頼だったのですが、気が付いたらほぼ作り直し&色々便利に。後悔はしていない。

http://sourceforge.jp/projects/nyartoolkit/releases/?package_id=8920

機能の紹介

さて、どんな事ができるかと言いますと…。

こんな感じでNyIdマーカとARマーカが混在して使えちゃったりします。

他にも、

マーカの平面の画像を引っ剥がしたり、マーカ平面の座標を取得したりなんて事が、ちょこっと書くだけで出来ます。

技術的な面では、全てProcessingのコアAPIだけで動作するようになったので、P3Dレンダラでも問題無く動作するようになりました。これにより、以前のようなライブラリ同士の相性問題が発生しにくくなっています。(もちろん、OpenGLレンダラも使えます。)

また、左手系/右手系両方の座標系をサポートしているので、好きな座標系を利用することができます。ARToolKitシリーズ標準の右手系だと、Processingの描画結果が反転するので、左手系がお勧めです。)

サンプル

今回はExampleが沢山あります。例えばSimpleLiteはこんな感じです。

import processing.video.*;
import processing.core.*;
import jp.nyatla.nyar4psg.*; //(1)

Capture cam;
MultiMarker nya;//(2)
PFont font=createFont("FFScala", 32);

void setup() {
  size(640,480,P3D);
  colorMode(RGB, 100);
  println(MultiMarker.VERSION);
  cam=new Capture(this,640,480);
  nya=new MultiMarker(this,width,height,"camera_para.dat",NyAR4PsgConfig.CONFIG_PSG);//(3)
  nya.addARMarker("patt.hiro",80);//(4)
}

void draw()
{
  if (cam.available() !=true) {
      return;
  }
  cam.read();
  nya.detect(cam);//(5)
  hint(DISABLE_DEPTH_TEST);
  image(cam,0,0);
  hint(ENABLE_DEPTH_TEST);
  if((!nya.isExistMarker(0))){//(6)
    return;
  }
  nya.beginTransform(0);//(7)
  fill(0,0,255);
  translate(0,0,20);
  box(40);
  nya.endTransform();//(8)
}

少し長いですが、AR化するためのコードは8行しかありません。JavaやC言語と比べて、おまじないが圧倒的に少なくなっています。

過去のプログラムの移植について

新しいNyAR4Psgは、過去のAPIもサポートしていますが、互換性は100%ではありません。

使用頻度の低いメンバ変数が無くなったり、コンストラクタの引数個数が変わったりしているので、適時修正をして下さい。

NyARToolkitのAPIマニュアルの整備をしています。

NyARToolkit/3.0.0のマニュアルを整備し始めました。まだ全然整備できていませんが、こちらで公開しています。

Javadoc -NyARToolkit/3.0.0
http://nyatla.jp/nyartoolkit/wp/?page_id=18

この項目のマニュアルがほしい!というのがありましたら、blogのコメントか、twitterの@nyatla_st2まで、クラス名を添えて教えてください。

—-
I started to write NyARToolkit/3.0.0 API manual. If you have a request then tell me the class name you want at twitter @nyatla_st2 or blog comment.

Javadoc -NyARToolkit/3.0.0
http://nyatla.jp/nyartoolkit/wp/?page_id=18

更新の終わったパッケージ – finished packages.

(2011/01/05)

  • jp.nyatla.nyartoolkit
  • jp.nyatla.nyartoolkit.core

(2011/01/06)

  • jp.nyatla.nyartoolkit.core.histogram
  • jp.nyatla.nyartoolkit.core.raster
  • jp.nyatla.nyartoolkit.core.raster.threshold
  • jp.nyatla.nyartoolkit.core.labeling

(2011/01/07)

  • jp.nyatla.nyartoolkit.processor
  • jp.nyatla.nyartoolkit.detector

(2011/01/12)

  • jp.nyatla.nyartoolkit.rpf.mklib
  • jp.nyatla.nyartoolkit.rpf.reality.nyartk

(2011/01/13)

  • jp.nyatla.nyartoolkit.rpf.utils
  • jp.nyatla.nyartoolkit.rpf.realitysource.nyartk

(2011/01/17)

  • jp.nyatla.nyartoolkit.core.labeling.artoolkit
  • jp.nyatla.nyartoolkit.core.labeling.rlelabeling
  • jp.nyatla.nyartoolkit.core.match
  • jp.nyatla.nyartoolkit.core.param
  • jp.nyatla.nyartoolkit.core.pca2d
  • jp.nyatla.nyartoolkit.core.pickup

(2011/01/25)

  • NyARToolkitのsrcについてはすべて完了。
  • NyARToolkitのsrc.rpfについてはすべて完了。

追記(2011/01/25)

URLかわりました。下記URLからご覧ください。
http://nyatla.jp/nyartoolkit/wp/?page_id=18

NyARToolkit/3.0.0 リリース(ただし、NyARToolkitCSを除く)

NyARToolkit/3.0.0(Java)と、NyARToolkitAS3/3.0.0(ActionScript3)をリリースしました。(NyARToolkitCSについては、実装が間に合わなかったため、来年に見送ります。)

アップデート内容

今回のアップデート内容は以下の通りです。

機能修正

  • 既存モジュールについて、若干の性能向上があります。
  • 既存モジュールについて、再現率の低い不具合をいくつか修正しました。

機能変更

NyARToolkit/3.0.0では、ユーザアプリケーションを修正する必要がある変更を、多く実施しました。

  • 既存モジュールのプロジェクトを整理しました。utils,sampleのプロジェクトについて、前バージョンと互換性がなくなりました。
  • NyARToolkit.utils.jogl配下の関数仕様が大きく変わりました。
  • NyARToolkitモジュール内の関数で、多数の引数変更をしました。

機能追加

NyARToolkit/3.0.0では、より簡単にARアプリケーションを作成するためのコードが追加されています。

  • RPF(RealityPlatform)モジュールを追加しました。このモジュールは、detectorやprocessorに代わるモジュールです。非同期マーカ特定、トラッキング、エッジベース検出、複数マーカ、同一種マーカの取り扱いなどができます。
  • BufferedImageをそのまま取り扱うRasterクラスを追加しました。

不具合

  • RPFのトラッキング機能が不足しているため、平行移動するマーカを正しく追跡できないことがあります。
  • RPFの最適化が不十分であり、十分なパフォーマンスが出ないことがあります。

まとめ

今回追加したRPFモジュールを使用することで、より簡単に、複雑なARアプリケーションが作成できるようになります。たとえば、マーカの画像検索をオンラインで実行したり、マーカ以外の矩形をマーカのように取り扱うことができます。

既存モジュールについても、関数引数の見直し、名前見直しなどの修正があります。そのため、ユーザアプリケーションに若干の修正を加える必要があります。

現在のところ、RPFモジュールを使用しなければ、2.5xから3.x系にアップデートするメリットはあまりありません。RPFを使用しない場合は、2.5系をそのまま使用することをお勧めします。

RPFの詳細については、後日書きます。
それでは、良い新年を。来年もよろしくお願いいたします。

NyARToolkit/3.0.0に搭載する予定の矩形検出器デモ

NyARToolkit/3.0.0に搭載する予定の矩形検出器デモです。

以前の検出器と比べて、以下の特徴があります。

長所

  • エッジベースなので、環境光変化に強い。
  • 静止時の輪郭線破壊に強い。
  • マーカの一部(角)が多少範囲外に出ても問題ない。
  • 簡易トラッキングがあるので、同じ模様のマーカを区別できる。

短所

  • エッジに接近した他のエッジやノイズに弱い。
  • 細いマーカ枠に弱い。
  • マーカ内側の矩形も検出する。
  • 【不具合】トラッキングの機能不足のため、激しい動きを追従できない。
  • 【不具合】輪郭線のドリフトが発生する。(モード2の時に、じりじりと輪郭線が平行移動する現象。)
  • 【未実装】位置予測のフィードバックが無いため、ありえない矩形を主張することがある。

また、Flash版の問題点として、十分なスピード(平均的なPCで30fps)が稼げていない問題と、ドリフト現象が発生しやすい問題があります。

サンプルプログラム

こちらから実行できます。このプログラムで矩形と認識された対象は、将来マーカとして使用できるようになるかもしれません。
http://nyatla.jp/tmp/lrssqdetect-300b.swf

ソースコードは、NyARToolkitプロジェクトのSubversionにあります。NyARToolkitASのtrunkから、チェックアウトしてください。
http://sourceforge.jp/projects/nyartoolkit/svn/view/

カテゴリー: demo

NyARToolkit/3.0.0リリース準備中です。

NyARToolkit/3.0.0のリリース準備のため、リポジトリの内容が不安定です。安定し次第、また告知します。

追記 2010/12/1

NyARToolkit for Javaのtrunkリポジトリが復活しました。
RealityPlatformを含めた、NyARToolkit/3.0.0のソースコード全てが利用できます。

※リリースは他言語同期の後になりますので、お急ぎの方?はチェックアウトしてください。
http://sourceforge.jp/projects/nyartoolkit/svn/view/NyARToolkit/trunk/?root=nyartoolkit

追記 2010/12/24

AS3版NyARToolkitに、3.0系のAPIを反映しました。FLARToolKitへの反映はしばらくお待ちください。
http://sourceforge.jp/projects/nyartoolkit/svn/view/NyARToolkitAS3/trunk/?root=nyartoolkit