Kudan の画像トラッカーでマーカー用に使用する画像を選択する際、信頼性の高い検出と滑らかなトラッキングを保証するために、いくつか心掛けなくてはいけない点があります。画像トラッキング技術と最適なマーカーの選択方法を深く見ていきましょう。
マーカー画像は、詳細で高度にテクスチャ付けされたものが検出に最適です。そのため、太線やブロックのようなデザインではなく、ディテールを多く含むマーカーが適しています。太線やブロックのようなデザインは認識されにくい局所領域を持つため、検出が困難になります。
例えば、下記のマーカー (図 1) は綺麗な太線ですが、トラッカーのラッチが難しいため、検出が非常に困難になります (図 2)。これらの画像では、マーカーとカメラ画像の間で一致する点が青で描かれています。最終的に承認された一致点は、緑で描かれています。この 1 つ目の例では、マーカーのディテールが不足しているため、検出できません。
図 1. 大きなスケールのブロック デザインを含む不適切なマーカー。
図 2. 大きなスケールでディテールが少ないコンテンツは検出が困難です。
下記のマーカー (図 3) は最初のマーカーと似ていますが、ディテールが追加され、問題なく検出できます。図 4 にある通り、緑の適合線がたくさん表示され、マーカーとカメラ画像の正しい関係を示しています。
図 3. ディテールの追加で性能の向上を図ったマーカー。
図 4. 追加のディテールにより、より簡単に検出できます。
マーカーとカメラ画像の間で一致する領域のセットを見つけるだけでは不十分です。画像トラッカーは、これらの一致点の中で一貫したジオメトリ関係を見つける必要があります。外観とジオメトリが一致するする必要があることから検出ミスを防ぐことができますが、同時に、反復するパターンや自己相似部分があるマーカーは適していないことを意味します。画像の異なる場所にある類似パターンが混同し、マーカー位置を特定するのが難しくなり、検出が困難になります。例えば、下記のマーカー (図 5) のそれぞれの要素は簡単に認識できますが、各要素を区別できず、検出されません。図 6 の青い線は、同じ形の異なるインスタンス間における一致の可能性を示していますが、一貫したパターンが検出されません。
図 5. 反復する要素で検出が難しいマーカー。
図 6. それぞれの画像要素は一致しますが、一貫性のあるジオメトリがありません。
ブロック デザインや反復するパターンといった上記の 2 つの問題は、グリッドやその他のシンプルな反復デザインをマーカーとして使用する場合、図 7 のように全くトラッキングできなくなる可能性があることを意味します。
図 7. 検出が困難なグリッドや反復コンテンツを含むマーカー。
図 8. 微細なディテールにも関わらず、自己相似グリッドは検出を妨げます。
マーカー検出における強みの 1 つは、スケールの変化に対処できることです。つまり、マーカーが近くても遠くても識別できることを意味します。これが機能するためには、ある程度のスケールで画像コンテンツを認識できる必要があります。したがって、ディテールのみで構成されるマーカーは、画像の要素を遠くから認識できないため、検出されません。例えば、このテキストのみのマーカー (図 9) は、テキストがはっきりと見えるとても近い距離であれば信頼性の高い検出ができますが、わずかに遠くから認識するための解像度がありません (図 10)。
図 9. 特定の距離で検出可能なディテールのみで構成されたマーカー。
図 10. このマーカーはディテールのみで構成されているため、遠くから検出できません。
検出が成功した場合、ローカルで一致点を探すため、トラッキングの段階で反復するパターンがあっても問題はありません。しかし、大きなスケールでディテールを持たない場合、問題は残ります。一部のスケールで十分なディテールが見えない場合、ある距離から見る際や、高速モーションまたはカメラのフォーカスがぼやけた際にポーズが不安定になることがあります。これは次の例に示されています。1 つの小さなスケールで構成されたマーカー (図 11) は、カメラ画像がぼやけた際にトラッキングが上手くいかない場合があります (図 12)。
図 11. 小さなスケールで認識されるマーカーは、トラッキングの堅牢性を低下させます。
図 12. 小さなスケールのコンテンツは画像がぼやけた際に失われてしまうので、大きなスケールでディテールがないマーカーではトラッキングが困難になります。
大きなスケールで認識可能なディテールを追加したマーカー (図 13) は、ぼやけた状態でもより正確なポーズを反映します (図 14)。
図 13. さまざまなスケールでディテールがあるマーカーは、より堅牢性のあるトラッキングを提供します。
図 14. さまざまなスケールでディテールがあるマーカーは、大きなスケールで認識可能な特長をもつため、画像がぼやけていてもトラッキングができます。
正確にトラッキングしやすいマーカーのもう 1 つの要素は、テクスチャが全体に平等に分布されていることです。すべてのディテールがマーカーの片側だけに集中している場合、その端の点は正確にトラッキングできますが、反対側で固定するためのテクスチャがないため、ポーズは不安定になります。不安定なポーズは、マーカーが動いた際に一致点を探すのが難しくなるため、トラッキングが正常に動作しない可能性があります。例えば、下記のマーカー (図 15) は片側に高度なテクスチャが集中しています。このマーカーは簡単に検出できますが、トラッキングに使用できるテクスチャが右側に存在しないため、最終的なポーズの推定が大きく異なる場合があります (図 16)。
図 15. コンテンツの分布が乏しいマーカーでは、ポーズが不安定になります。
図 16. 右側のコンテンツ不足により、全体の正確なポーズが特定できません。
画像全体に同じようなディテールを追加することで問題を解決します (図 17)。これにより、激しい動きの中でも位置を特定できます (図 18)。
図 17. 画像全体にコンテンツが分布されたマーカーは、より正確なトラッキングを提供します。
図 18. マーカー全体にディテールを分布することで、難しいコンディション下でも正確なポーズを表示します。
最後に、検出とトラッキングのためにマーカーが持つべき要素は、画像強度における適切なコントラストです。コントラストが高いと、検出とトラッキングの際に画像の各パーツを認識し、異なる照明の条件下でより安定したポーズを実現できます。このマーカー (図 19) は、検出するのが難しく、マーカー画像自体 (図 20 上) に十分なディテールがあっても、カメラから捉えたマーカー画像では十分なコントラストが存在しません (図 20 下)。
図 19. コントラストが低いマーカーでは検出とトラッキングが困難です。
図 20. カメラを通した画像に十分なディテールがないため、コントラストが低いマーカーは検出されません。
もう 1 つの問題は、コントラストが高いように見えるマーカーであっても、コントラストが完全に色の違いに基づいている場合です。ソフトウェアでは色に関する情報が使用されないため、グレースケールに変換した際に一部のディテールがはっきり見えない場合があります。例えば、次のマーカー (図 21) のコントラストは非常に高く見えますが、検出の際に使用するのが難しいことが分かります (図 22)。
図 21. 色の違いをもとにした高コントラストのマーカーは、グレースケールにおけるコントラストが乏ししい場合があります。
図 22. 鮮明な色を使用したマーカーにも関わらず、グレースケールのコントラストが乏しいため検出できません。
一方で、同じパターンをさまざまな色調のグレーでレンダリングした場合 (図 23)、検出やトラッキングに問題はありません。
図 23. 図 21 と同じパターンのマーカー。
図 24. グレースケールで高コントラストを認識することで、鮮明な色でレンダリングされたパターンより簡単に検出できます。
上記はすべて一般的なガイドラインです。マーカーは、いくつかの条件下で一部のガイドラインに沿わない場合でも正常に機能することがあります。特定のマーカーの適正を判断する最適な方法は、意図するアプリケーションにおける動作のテストです。マーカー画像を選択、デザインする際に上記のガイドラインを考慮することで、Kudan の画像トラッキングにおける最適なパフォーマンスを得ることができます。
Kudan AR SDK 製品の詳細は、弊社の製品ページをご覧ください。
記事参照:
2016年 3月 21日 Kudan Limited.
「What Makes a Good Marker?」