AR実行の中で、イメージを見つけトラックするために使うことができる、Target Collectionを、どのように生成するのか概要を説明します。
一般的に、コンバージョンは4つの異なったツールを使ってなされます。
1.Wikitude Studio:ブラウザーべースのツールであなたのイメージ(画像)をWTC fileにコンバージョンします。ツールは https://studio.wikitude.com.で見つけられます。あなたの無料のDeveloper Account からログインしてください。このツールは更に細部にわたって記述してあります。
2.WTC Editor within Unity Editor:Wikitude Unity plugin はWTC Editor をUnity Editor の拡張機能としてインストールします。Unity Developers は全てのそのターゲットとターゲット・コレクションをUnity Editorとともに直接管理します。さらに詳細はUnity Documentationを参照してください。
3.Wikitude Studio API:Studio APIはターゲット・イメージをアップロードし、それらをWTC filesにコンバージョンするために、RESTful APIを提供します。更に詳細は section about Studio APIをお読みください。
4.Target Enterprise Script:Binary Shell ScriptはMac OSXとLinuxでイメージをTarget Collectionにコンバートするのに適用可能です。技術的な要望と価格はにcontact Wikitude Sales コンタクトして下さい。
Projectを追加する(Add a project)
・https://studio.wikitude.com を開いて、あなたの開発者アカウントにログインします。
・新規プロジェクトをあなたのプロジェクト・コレクションに加えます。
・プロジェクトタイプを選択します。
ターゲット・イメージ(画像)を付け加える(Add target image)
・現在のプロジェクトをエンターします。
・新規のターゲット・イメージを、Add Targetsをクリックするか、drag & dropをクリックして、空白のエリアにドロップして、プロジェクトに加えます。サポートされているフォーマットはPNGかJPEGです。もしPNG画像を使用するなら、それが透過型のPixelsで描写しないことを確認してください。唯一、固定されたカラーの画像のみサポートされています。
ターゲットをアップロードした時は、ファイルネームはターゲットネームとして使用されます。それはAR実行中ターゲットを特定します。もし、ターゲットネームが完全に見えていなければ、フルネームを再度出すか、ダブルクリックして編集モードに入るまで、それは空中に静止しています。
Star Rating(星数評価)
・0 stars:トラッキングに不向きです。このターゲットイメージ(画像)はトラックできません。それはハイ・ローカルコントラスト(局所的なコントラストが強い)で画質の特徴が欠けています。他の画像に変えてください。
・1 star:限定的なトラッキング性能です。このターゲット・イメージは、光線の加減がよければ基礎的なトラッキング性能を出します。
・2 stars:良いトラッキング性能です。このターゲット・イメージはほとんどのコンディションでうまくトラックします。
・3 stars:非常に良いトラッキング性能です。このターゲット・イメージはほとんどのコンディションで非常に良くトラックします。
参照イメージ(画像)への一般的なアドバイス
・良いイメージ(画像)のキャラクター
・ハイ・ローカルコントラスト(局所的なコントラスト)が強い中で様々な画質の画像
・悪いイメージ(画像)のキャラクター
・大きな同じカラー部分がある画像やカラーが早く変わる画像
・パターンの繰り返し
・ロゴサイン
WTC file の生成
・AR.TargetCollectionResource
WTC
(Wikitude Target Collection)fileは、認識対象ターゲットのすべての情報を収めています。プロジェクトをエンターするにはそのファイルが必要で、ツールバーのWTCアイコンをクリックする必要があります。
・お使いのWikitude SDKのバージョンを選んで、WTC file の Creation (生成)をトリガーにして、ジェネレーターをクリックして下さい。ファイルがダウンロードできるようになると、e-Mailを通して通知が送られます。
あなたのアプリケーションで、プロジェクトのWTC fileを使う。
image recognition examplesの中の一つを見つけるか、または、あなたのARchitec Worldの中で、どのようにARにターゲット・コレクションを使うのかを解説した関連のある参考文献を参照します。
クラウド認識のためのイメージ・ターゲット
現在存在しているどのプロジェクトも、同じく、AR.CloudRecognitionService
.にアクセスできるようにすれば、クラウドで公開できます。
更に詳細はツールバーにあるクラウドアイコンをクリックして下さい
クラウド認識はテスト状態にある時は無料です。しかし、生産転用する場合はライセンスを購入して下さい。詳細Learn more
一旦、プロジェクトガ公開されれば、それは、Client Tokenを使い、WikitudeSDKと'Target Collection ID'を通してアクセスできるようになります。(AR.CloudRecognitionService
と比較)
ヒント
・あなたはいつでもプロジェクトを非公開にできますが、このアクションは、たちどころにあなたのアプリケーションに保証書の使用を義務付ける効果を生じさせることに注意してください。
・Edit TargetのダイアログにあるメタデータMetadataはクラウド認識と密接な関係があります。そこでは、物理的な高さ Physical HeightがdistanceToTarget関数と関連性があり、そして、HoroLens プロジェクトを要求されます。
・もしあなたがAR.ImageTrackable
.の distanceToTargetを使わなければ、物理的な高さ Physical
Heightを空欄にします。
・メタデータMetadataのフィールドは大変に使いやすいく、それでJSONデータをターゲットに付けることができます。
その方法で、あなたはすべての種類の追加データを判別することができ、SDKでダイナミックにそれに反応することができます。例えば、ボタンにMetadata JSON で判別された詳細ページを参照させたりできます
イメージ・ターゲットのための物理的な高さ(Physical Height)
Wikitude SDKの色々な機能は、認識対象のイメージ・ターゲットの実際の物理的な高さを知ることが必要です。この情報は次の2点で使われます。
・ターゲットとの距離を計算する
・EPSON BTやホロレンズのような測定が必要なウエアラブル・デバイス
WikitudeSDKは唯一ターゲト・イメージ(Target Image)の実際の高さを情報として要求します。イメージ(画像)の実際の幅は自動的に記述されます。
この情報をWikitude SDKに用意するには3つの方法があります。
1.Wikitude Studioを使う。
2.JavaScript APIを使う。
3.UNITY WTC Editorを使う。
Wikitude Studioを使って物理的な高さ(Physical Traget Height)を設定する
Wikitude Studioはターゲトの高さを情報を付け加える標準的な方法です。このツールはそれぞれのイメージ(画像)の数値を加えます。高さ情報(physical target height)はImage Target Collection(WTC)の一部として保管されます。そして、自動的にSDKに適用されます。
1.Target Image(画像)を加える。
2.Propertiesをクリックする。
3.数値をproperties dialogに加える
4.Saveをクリックして保管する。
5.WTC fileに出力(Export)する。
Java Script API を使って物理的な高さ(Physical Traget Height)を設定する
Java Script API は、ImageTracker
.のオプションである、physicalTargetImageHeights
を使って、ダイナミックにターゲット・イメージ(画像)の数値を設定します。
Unity WTC Editorを使って物理的な高さ(Physical Traget Height)を設定する
Wikitude SDKのプラグインに含まれているUnity WTC Editor は、同じく物理的なターゲットの高さ(Target Height)を設定するためのオプションを含んでいます。それは同じく数値を.wtc fileに保管します。
Wikitude SDKのObject(物体)認識の機能は、イメージ認識と同じような方法で作用します。それは、ライブカメライメージで事前に作成された参照データを見つけて合致させようとします。この事前の参照データはObject Target
と呼ばれます。時には私達はそれを事前にSLAM Mapとして記録された地図として参照します。Object Targetは画像を原材料(Source material)として使って生成することができます。この原材料はWikitude Object Target Collection
の中に、.wto
file.として移されます。
標準的なプロセスは以下の様です。
1.原材料を集めます。Objectの画像を撮ります。
2.原材料をWikitude Object Target Collection(.wto) の中に移します。
3.あなたのアプリケーションに.wto
file を使います
以下の章は、ビデオベースとイメージ・ベースの方法論でより詳細に述べています。
イメージベースの変換(Image-based conversion)
Wikitude SDKのバージョン8.0が開始されるとともに、Object Targetは、単一のビデオに変わってイメージ(画像)(複数)のセットによって生成されることになりました。このアプローチは、ビデオ・ベースのコンバージョンよりも、いくつかの点で有利さをもたらしました。そのため、私達はイメージ・ベースのコンバージョンをよりよい方法として推奨します。それは、ビデオベースのコンバージョンに比べて、常によりよい結果をもたらします。
・このアプローチはより正確なObject Targetを生成します。
・インプットの解像度はビデオと比べてより高くなります。それは、より正確な結果を生みます。
・難しいアングルでもイメージ(画像)が容易に生成されます。
・同じObjectを異なった背景から持ってきて、認識の正確さを増加させるために、イメージ(画像)を追加することができます。
・Object targetは、Object の追加エリアをカバーした追加イメージによって機能拡張されます。
あなたのObjectのイメージ(画像)を撮りましょう。
最初のステップはあなたのObjectからイメージ(画像)を集めましょう。このステップは基本です。原材料はあなたのObject Targetの品質を決定づけます。普通は、どこでイメージ(画像)が撮られたのかは重要ではありません。それよりも手で撮られたのか、3D/CADソフトウエアで生成されたのか、または描写されたのかが重要です。
使用されるイメージの詳細な推奨リストはこちらのガイドPlease refer to this guideを参照ください。
イメージ(画像)をObject Target Collectionに移します。
あなたのイメージ(画像)をObject Target Collectionに移すには2通りの方法があります。
1.Studio web front endを使う
2.Studio APIのRESTful APIを使う
Wikitude Studio を使う
おそらく、あなたはイメージ・ターゲットで作業をした時にStudioを使ったことでしょう。Wikitude Studioは無料のWeb ツールです。それは、Wikitude SDKと一緒に使われるあなたのTargetを管理するのを助けます。
1.あなたのWikitude development accountで、Wikitude StudioWikitude Studioにログインします。
2.新プロジェクトのタイプとしてObjectを選び、Object Targetsのためにプロジェクトを生成します。
3.Projectをエンターする。
4.新しくObject Targetを追加する
5.あなたが使いたいイメージ(画像)のセットをアップロードする。
6.レコーディング・デバイス、またはFoV(オプション)を選択する - Object Target fileを生成するために、どのデバイスで撮られたイメージ(画像)かを知る必要のあるサービス。関連する情報はField of View(視野) または、カメラのFoV(水平視野角度)です。それは、どれだけカメラの視野があるのかを教えてくれます。Wikitudeは、その数値がよく認識されている普通使われているデバイスリストを準備しています。デバイスか、または手動か、どちらを選んでも、この数値はoption Customのもとで入力されます。
・もしあなたがFoVを手動で入力すると、あなたは水平視野角度horizontal FoVを確実に入力しないとなりません。ベンダーは対角角度FoVを一緒にして彼らのデバイス視野角度を誇示する傾向があります。それはより大きな数値になります。対角角度のFoVを使用してはなりません。水平視野角度のみを使用してください。
・FoV数値の自動的な探知:イメージ(画像)ベースのコンバージョンでは、サービスは自動的にあなたがアップロードしたすべてのイメージ(画像)のFoV数値を定義しようとします。それはEXIFデータを読み取ることで成されます。そのデータはあなたのJPEG画像と一緒に保管されています。下記のEXIFプロパティの一つが正しく設定されているケースでは、コンバージョンはこの数値を使います。あなたがWebインタ―ファイスで用意した数値は関係ありません。
・35mm相当
・xの焦点面解像度、yの焦点面解像度、そしてunitの焦点面解像度
3.Create Target を押す。それでコンバージョンが開始されます。
4.コンバージョンが終わるまで待ちます。プロセスが終わるとe-Mailで通知が来ます。
5.wto fileをダウンロードして、あなたのアプリケーションにはめ込みます。(どのように使うのかsampleを見てください)
Unity Pluginのバージョン1.2.0は新しいWTC Editorを含んでいます。それは、Wikitude Studioを通すことなく、UnityEditorの中でWTC Collections権を生成し、改変することを許可しています。
WTC Editorの概要
WTC Editorをオープンするためには、Window Menuをクリックし、WTC Editorを選択します。
これは、新しいドッキング可能なWindowをオープンします。それは、あなたにあなたのすべてのTarget Collectionを管理することを許可します。
左側にプロジェクトパネルが見えます。それは、 StreamingAssets
ホルダーで見つけられる全てのWTC
fileのツリーを含んでいます。これらのうちから選択するとすべてのターゲットの写真を表示します。(Collectionの中ほどに見えます)これらのどれかのTargetoをクリックすると右側の編集画面にそれが追加情報として表示されます。
WTC EditorにTarget Collectionを生成する。
新しいCollectionを生成するために、左のパネルの上部のCreateボタンをクリックします。
新しいWindowが現れて、あなたのプロジェクトからイメージ(画像)を選択することを促します。
新しくStreamingAssetsfolderに生成したCollectionは選択されたイメージ(画像)と同じ名前です。Collectionの名前を変える場合は、単縦にUnity Editorプロジェクト・ビュー、または、WindowsのExplorer / Finderの中のファイルの名前を変えます。Collectionは最初は選択されたイメージ(画像)のみを持っています。しかし、あなたはそれを新しいもので編集することができます。
Target Collectionを編集する。
Target Collectionにイメージ(画像)を追加する
新しいイメージ(画像)を真ん中のパネルの上部のAddボタンをクリックすることでTarget Collectionに追加することができます。これはどのイメージを追加するのかを選択するように問い合わせてきて新しいWindowを開きます。また、あなたは複数のイメージ(画像)を一度にUnity Editor のプロジェクト・ビューからドラグ&ドロップをすることができます。
Target Collection からイメージ(画像)を移動します。
真ん中のパネルの中のTargetをクリックして選択します。Sift KeyとCtrl/Cmd Keyを使って、一旦複数のイメージ(画像)を選択します。選んだTargetを真ん中のパネルの上部のDeleteボタンを押すことで消去できます。
Target Collectionを改変します。
一つのTargetを情報を追加するために選択すると右のパネルにそれが表示されます。そこで名前を変えることができ、物理的な高さをミリ単位で変更できます。異なった数値-1が意味するのは物理的な高さが設定されていないということです。
保存と破棄
すべての改変が終了したら、Windowの上部にあるApplyボタンを押すことで実際のCollectionに反映されます。同じく、Revertボタンを押すことでどんな変更も破棄できます。
もし改変したものが保存されない場合、アスタリスクの*が左側のパネルのその名前の横に現れます。
あなたのARchitect Worldでイメージ(画像)を探し、トラックできるようにするためにどのようにTraget Collectionを生成するのか概要を説明します。
好ましいイメージ(画像)は:
・500~1000 pixels の四角形
・コントラストが鮮明
・画質がすべてに良いこと
・建造物のように多くの角があること
不適なイメージ(画像)は:
・500pixels以下の四角形
・1000pixcls以上は正確な結果を出しません
・大きな文章
・多くの繰り返しの模様
・大きな単色カラー
・緑から赤の端へ、などのカラーコントラスト、すべてのイメージが灰色のイメージとして処理されます。
・最適なイメージ(画像)のサイズは500から1000pixels の四角形です。
・小さいイメージ(画像)はfeature pointsと呼ばれるイメージ(画像)を抜きとるための十分な画像情報を含むことができません。feature pointsの、独特さ、量、配布は、うまく発見しトラッキング品質を向上させるためのカギとなる指標です。
・大きすぎるイメージ(画像)はトラッキング品質を向上させません。
小さすぎるイメージ(画像)
最適なサイズ
・ハイ・ローカルコントラストと良好な画質のエリアが大きいイメージ(画像)は正確な発見とトラッキングに最もふさわしいイメージ(画像)です。
・カラー・コントラストだけのイメージ(画像)(例えば、緑から赤の端まで)は人の目にはハイ・コントラストとして写ります。しかし、Computer Visionのアルゴリズムには区別できません。灰色のイメージ(画像)の塊(Tip)として扱ってしまいます。低いコントラストの画像のためにはあなたのTarget Image(画像)のコントラストを上げるように、GimpやPhotoShopのようなイメージ編集ツールで、探査やトラッキング品質を上げるように試してみます。
低いコントラストのTarget Image (画像)
良いコントラストのTarget Image(画像)
・編み込まれた地点が、均等に分布されたイメージ(画像)は正確な探査とトラッキングのためのよい画像です。
・これはコントロールするのが、おそらく最も困難な部分でしょう。そして頻繁には変更できないTipです。あなたのイメージ(画像)の最も目立った場所を切り取って、それだけをターゲット・イメージに使います。
不適切な分散の例
特徴を均等に分散した例
・しばしばみられる、単色カラーの背景やなだらかな色合いの背景は探索やトラッキングに適した画像情報とは言えません。イメージ(画像)の最も目立った部分を切り取ってそれだけをTarget Imageとして使ってください。
白い色の多すぎる例
最も適切な部分だけ取り出したもの
・ロゴやベクター・ベースの画像は、ハイ・ローカルコントラストと組込み構成など、通常は非常に少ない構成で成り立っています。それゆえに、探査やトラッキングが難しいのです。
ロゴタイプや、他の特別な要素からなる画像に、今までの画像と一緒になる追加の部分画像を付け加えてみてください。
Vector ベースのイメージ(画像)
Graphic 要素の入ったTarget Image
・文書が大部分を占めているイメージ(画像)は探査やトラッキングが困難です。
グラフィックス(写真)とイメージ(画像)文書を最低限あなたのターゲット・イメージに付け加えてみましょう。
よくない例
写真と文書が混ざった良い例
・反復的な模様は、同じグラフィカル情報をそれぞれのFeature Point(反応点)に表します。それゆえに確実にその場所を特定することが困難です。
・少しばかり変わった構成のイメージ(画像)は、探査するための十分独自の反応点(Feature points)を用意していますので、類似情報をtarget audienceに伝えることができます。、(2番目のイメージ(画像))
模様がない部分を含むイメージ(画像)や、変わった模様が使われたイメージ(画像)など、違った選択を試してみましょう。
トラックできない繰り返し模様
同じでない構成の模様
・Objectの構造とサイズは非常に重要です。非常に小さいObject(5㎝以下)はかなり難しい。
・Objectはおおむね静止状態であるべきです。ダイナミックで変形できる部品はOKです。Objectの大多数は静止しています。あなたのObjectの静止部品のみ記録するようにしてください。
・Objectの光って光沢のある表面は困難です。プロジェクトの中の光沢のある表面の数に依存します。
一般的な情報
この記事は、ビデオ作製にどのWikitudeの物体認識機能が必要になるかに関して助けになると思います。私達はObjectにきちんと照明が当たることをどのように確実にするか、Objectの周りの邪魔な風景をどのように避けるか、そして、すべての側面からObjectを撮ることをどのように確実にするか、説明したいと思います
照明
Objectを認識するために、うまく作用するObject Targetをつかむための重要な要素の一つは、正しい照明です。このsoft-boxを得るのは本当にうまくいっています。これらは安いだけでなく容易にできます。私達は、三脚のついたsoft-boxとObjectの周りに同じ照明コンディションを作るために、3個それを置くことを推奨します。
背景
背景からトラックする対象を消すために、Objectの後ろと真下に撮影の背景を置くのは役に立ちます。壁から机か床まで穏やかなカーブを描いて背景の端を消すことが重要です。(背景にノイズが出るとObjectTargetの一部になってしまいます)
・同じカメラで撮影されたイメージ(画像)を使うのが理想的
・アップロードするまではイメージ(画像)を切り取らないで、同じ解像度を使う
・理想的には、違った地点でObjectの同じ範囲の写真を撮る
・一般的には、高い解像度のイメージ(画像)を使った方が結果は良くなる。テストでは、12MP イメージがきわめてうまく作動した。しかしながら、おのずと限界がある。推奨は、12MP(4032x3024)のエリアでイメージを使うこと。それは2018年現在でスマートホンの標準的な解像度。
・イメージをHDRモードで撮影する。もし可能なら、露出は均等に分散された状態にする
・写真はお互いに少しづつ重なったものを使う
・同じ照明コンディションで写真を撮る
・Objectの背景はよりシンプルにすることを確実にする。複数のイメージの上に見える背景のどんなノイズもObject Targetの部分になる。
・写真を撮るために、できればObjectを回す代わりに、Objectの静止を維持、そしてその周りを回る。このことはビデオ・ベースのコンバージョンをする場合と違う点。イメージベースのコンバージョンの場合、ターンテーブルは使わないことを強く推薦する。
・あまり近い距離で撮らない(数センチなどで)
・Objectの一面だけを平面で撮り、それを見せない。例えば、よく使うはこの一面だけを撮る時、いくつかの面を取ることを確実にする。
・イメージベースのコンバージョンは、別のシナリオの、同じObjectのイメージをアップロードすることを許可している。例えば、ホワイトの背景、無機質の背景)これらを追加することで、多種多様な背景に対して認識がよりしっかりとする。