ARの最近のブログ記事

AR関連のリンクまとめ

|
・参考サイト
毛の生えたようなものARToolKitとその周辺技術のまとめ
wikipedia:拡張現実
pipe_render のブックマーク / AR

<研究>

 

<企業>

·       DNP DNP

·       LEGO Augmented Reality

·       Total Immersion | Augmented Reality

·       Welcome to Koozyt, Inc.

·       Canon Technology | MR(Mixed Reality)技術

·       metaio GmbH, Munich

·       Microvision, Inc.

·       E-Motion Solutions, Inc.

·       芸者東京エンターテインメント株式会社(GTE) AR技術を応用したPCソフト『電脳フィギュア アリス(ARis)』を販売

·       tonchidot corporation2008年のTechCrunch 50でプレゼンテーションして、絶賛された「sekai camera "セカイカメラ"」を開発。

·       SCE :Eye of Judgement  THE EYE OF JUDGMENT

·       PlaceEngin:位置情報サービス

 

<応用>


ARToolKitの改良
ARToolKit with Lua (arl)BlackBoxLaboratory
NyARToolKitFrontPage - NyARToolkit
FlARToolKitsaqoosha/FLARToolKit - Spark project
jARToolKitSourceForge.net: jARToolKit
Augmented Reality Library in ProcessingAugmented Reality Library in Processing - Bryan Chung
Gauche-ARToolKitno title
PyARTK +Pythonwebstranka.info
OSGART +OpenSceneGraphOSGART: ARToolKit for OpenSceneGraph
ARTag 複数マーカー:ARTag
ARToolKit Plus :高速化ARToolKitPlus
Studierstube Tracker ARToolKit+の後継バージョン http://studierstube.icg.tu-graz.ac.at/handheld_ar/stbtracker.php:title

 

○画像を使ったAR
BazAR: A vision based fast detection library :特徴点検出 BazAR: A vision based fast detection library

○その他の既知情報
Handy AR 手を使ったARno title
Wikitubeandroid+wikipedia

○マーカーなし、既知情報なし
PTAMParallel Tracking and Mapping for Small AR Workspaces (PTAM)

<ダウンロード可能なソース>

<AR開発ソフト>

Mixed Reality Project: Academic experimental applications on Mixed Reality (Augmented Reality, Augmented Virtuality) and Virtual Reality. School of Architecture, National Technical University of Athens, Greece
物はそろったので、インストール編
環境は、Microsoft Visual C++ 2005 Express Edition

Platform SDKがあったので、そっちに全部入れる
"C:\Program Files\Microsoft Platform SDK" = {Platform SDK}

  1. PTAM(PTAM.zip)を解凍する

  2. GLEW(glew-1.5.1-win32.zip)を解凍して、以下のデータを指定されたフォルダに移動する
    bin/glew32.dllを"Windows/system32"
    lib/glew32.libを"{Platform SDK}\Lib"
    include/GL/glew.hを"{Platform SDK}\Include\gl"
    include/GL/wglew.hを"{Platform SDK}\Include\gl"

  3. shared-libs.zipを解凍する
    blas_win32.dllとlapack_win32.dllを"Windows/system32"
    blas_win32.libとlapack_win32.libを"{Platform SDK}\Lib"
    headers.tar.gzを解凍する
    lapackとblasをフォルダごと"{Platform SDK}\Include"

  4. 1394camera645_src.zipを解凍する。
    1394cameraフォルダに入っている「1394Camera.dsw」を開いてビルド
    ※ここで、'afxwin.h': No such file or directoryエラーが出たので、オプションのインクルードディレクトリに"C:\Program Files\Microsoft Platform SDK\Include\mfc"を追加。
    生成されたdllファイルを"Windows/system32"へ。
    生成されたlibファイルを"{Platform SDK}\Lib"へ。
    1394cameraディレクトリのヘッダーファイル(~.h)はすべて"{Platform SDK}\Include"へ。

  5. pthreads-w32-2-8-0-release.exeを実行。3つのディレクトリがでてくる。
    生成されたディレクトリのPre-built.2/includeに入っているsemaphore.h、sched.h、pthread.hの3つのファイルを、{VC Root}/Includeへ。
    生成されたディレクトリのPre-built.2/libに入っているlibファイルとAファイル(~.a)ファイルをすべて"{Platform SDK}\Lib"
    のこりのdllファイルをすべて"Windows/system32"へ。

  6. jpeg-6b-4.exeは実行、インストール。

  7. fltk-2.0.x-r6671.tar.bz2を解凍する。
    fltk-2.0.x-r6671フォルダの中のfltkをディレクトリごと"{Platform SDK}\Include"へ。

  8. CVSを使ってTooN、libcvd、gvars3をダウンロードします。
    コマンドプロンプトから以下のコマンドを順に打って取得します。

    # cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/toon co -D “Fri Sep 5 15:20:31 BST 2008″ TooN
    # cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/libcvd co -D “Fri Sep 5 15:20:31 BST 2008″ libcvd
    # cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/libcvd co -D “Fri Sep 5 15:20:31 BST 2008″ gvars3

  9. TooNをディレクトリごと"{Platform SDK}\Include"へ。

  10. libcvd/build/vc2005ディレクトリ中に入っている「libcvd.sln」開いてコンパイル。
    コンパイル後、libcvd/libディレクトリ中にlibファイルが生成されるのでそれを"{Platform SDK}\Lib"へ。
    libcvd/cvdをディレクトリごと"{Platform SDK}\Include"へ。

  11. gvars3/build/vc2005ディレクトリ中の「gvars3.sln」を開いてコンパイル。
    gvars3/libフォルダに生成された2つのlibファイルを"{Platform SDK}\Lib"へ。
    gvars3/gvars3をディレクトリごと"{Platform SDK}\Include"へ。




PTAM(Parallel tracking and mapping)のソースにやっと手を付けてみる

まずはサイト紹介から


---- < ソース導入手順の説明 > ----


ソース導入に関する手順が書かれているサイト、非常にありがたいです。
ちなみに今回のPTAM導入の記事の内容は、基本的に以下の手順を再現しただけのものとなっております。

工学ナビの中の人の研究と周辺:あのマーカレスARの研究がついにソース公開!

釣堀.net:マーカーレスAR技術「PTAM」をDVカメラで動作させてみる

happymeme:マーカレスAR(PTAM)のソースコードを動かしてみた(WindowsXP VisualC )



---- < 必要なライブラリ > ----

うちの環境はWindowsXPのVC++、USBのWebカメラを使用しています。
なので、VC++で動かすための環境、ライブラリを整理します。

以下CVSが必要なもの

各ライブラリの詳細に関しては以下のサイトで紹介されています。
Cagylogic: PTAMのコードを読むにあたってライブラリをお勉強



ARでMMDの操作

|

まだ、アイデアの段階ですが、IRCでのネタをひとつ

< ARを使ってMMDの操作を箱庭的に操作、共有したい >

このアイデアは以下に分けられます。

  1. MMDをARで操作
  2. 複数人で共有
  3. その他

< 1.MMDをARで操作 >

オブジェクトの操作で既に存在するものをいくつか

○複数マーカーで操作


○特徴色の棒で操作


○WiiリモコンとLEDで操作


○LEDでモーションキャプチャ


○デスクトップ環境+マーカーで操作

ARDeskTopはmixiで最新版が出ていて、ソースの公開も予定されています。

○指による操作


ARDeskTopと指操作を統合して、シースルーHMDで表示できたらそれっぽいかもしれません。


< 2.複数人で共有 >

○現実世界で共有
こちらにコンセプトっぽいのがあります。
http://www.artag.net/videos.html

○ネットワーク越しに共有
ネットワーク系はまだ詳しくないので、不明です。
リアルタイムでやり取りしなきゃいけない情報は少なそうなので、なんとかなりそう。
・音声情報
・カーソル位置
・オブジェクトの操作情報
・ユーザー情報
・テキスト
・etc

お絵かきチャット系の技術がそのまま利用できるかもしれません。



< 3.その他 >

あとはライセンスとか・・・
ARToolKitのGPLが不便だ


ARToolKitの投影行列とDirectXの投影行列は、異なります。

これが違うと、映像を合成するときに位置がずれてしまいます。


ARToolKitの投影行列はだいたい以下のようになっています。

2.1, 0.0, 0.0, 0.0
0.0, 3.0, 0.0, 0.0
0.0, 0.0, 1.0, -20.0
0.0, 0.0, 1.0, 0.0

DirectXで以下のように設定すると

this._device.Transform.Projection = Matrix.PerspectiveFovLH(
 Geometry.DegreeToRadian(36.0f),
 (float)this._device.Viewport.Width / (float)this._device.Viewport.Height,
 1.0f, 1000.0f);

DirectXの投影行列は以下のようになります。

2.3, 0.0, 0.0, 0.0
0.0, 3.0, 0.0, 0.0
0.0, 0.0, 1.0, -1.0
0.0, 0.0, 1.0, 0.0

この設定で、だいたい画像が一致します。



ここで、設定を変更したのは次の2箇所、

  • Geometry.DegreeToRadian(36.0f),
  • 1.0f, 1000.0f);
最初のパラメータは視野角になります。
次のパラメータは、表示範囲を示しています。

表示領域は多めに設定すればいいだけなので、実際に調整するのは視野角だけとなります。
MMDでも視野角を36度ぐらいにすると、一致するはずです。(たぶん

MMDの投影行列が分からないことが現在の問題点だったのですが、
MMDの投影行列はDirectXの基本の投影行列とあまり変わらないそうです。

そこで、まずARToolKitとDirectXとの互換を取ります。
DirectXの導入には,NyARToolKitを使用させていただきました。

  1. NyARToolKit C#版(以下NyAR)の導入
    ・nyatlaさんの以下のサイトから、NyARをダウンロードします
     http://nyatla.jp/nyartoolkit/wiki/index.php

  2. DirectX(以下DX)の別なウィンドウを作成
    ・C#とManaged DirectXについては、以下のサイトを参考にしました
     http://sorceryforce.com/programing/mdx/direct3d.html
    ・Formを新しく作成し、DirectXのデバイスに設定する
    ・そこに3Dの平面を描画する
    ・マウスから、平面のコントロール
  3. NyARの変換行列からDXのカメラの位置を求める
    ・とりあえず変換行列をそのまま適用してみる

image_org01.jpgimage_dx01.jpg


導入はここまで、次は

・カメラに写る映像と、DXの映像とがリンクするようにDXカメラの投影行列を変更
・その変更から、MMDのカメラの変更と合わせられるようにする

ARTK2VMD その1

| | コメント(0)
< ARTK2VMD >

ARToolKitのカメラデータを、MMDのカメラモーションファイル(VMD)にコンバートするツールです。

VMDデータの形式には、VMDConverterを使用させていただいています。
http://yumin3123.at.webry.info/200810/article_4.html


○簡単な説明
1.ARToolKitでマーカーを映して、同時に別ソフトで動画のキャプチャを行う。
2.いいところまで映したら終了。その間のデータをファイルに出力する。
3.出たファイルをVMDConverterに入れと、vmdファイルができる。
4.これをMMDでカメラに読み込む。


現在は、3D座標の部分がだいたいできて、次に合成のために投影行列をあわせる処理に入っていますが、難航しています。



< マーカーの色について >

  • マーカーの色は認識率が低く、ミスや誤認の可能性が高くなる。
  • LEDの方が正しく認識できる可能性が高い。

< 複数の立方体を認識 >

  • 複数の立方体を認識させることで、ミスを防ぎ、広い範囲をカバーできるようにする。しかしこの場合、通常では誤認が増える。
  • LEDで異なる色を用いることで、誤認を防ぐ

< LEDマーカーの例 >

  • 正方形が1つの場合は、3点(緑)+違う色1点(赤)
    exp_point01.gif

  • もう一つ正方形を作る場合は、他の色(青*3+赤*1など)を用意する


< ARToolKitの正方形の検出方法 >
元画像
image_org01.jpg
  1. 画像を2値化
    image_bin01.jpg

  2. 四角形を探す
    image_org01.box

  3. 枠から、基準となる3次元の角度・位置座標を計算

  4. 枠内の図形から、正しい方向と、個々のマーカーを区別する


< 最低限必要なもの >

  1. 画像を2値化
    →特徴的な色

  2. 四角形を探す
  3. 枠から、基準となる3次元の角度・位置座標を計算
    →正方形になる点または線

  4. 枠内の図形から、正しい方向と、個々のマーカーを区別する
    →方向を知るための目印
    →正方形は必ず一つであると決める


< 新しい正方形の例 >


  • 特徴的な色の正方形の枠+1つの頂点に目印
    exp_box01.gif
  • 4つの頂点が特徴的な色で、そのうち一つは異なる色
    exp_point01.gif


< 懸念事項 >

  • マーカー変えたことよる、認識精度の低下
  • 異なる色(赤)を認識できない時に、方向をロスト

このアーカイブについて

このページには、過去に書かれたブログ記事のうちARカテゴリに属しているものが含まれています。

次のカテゴリはCGです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

AR: 月別アーカイブ

Powered by Movable Type 4.01a