ターゲット画像と形がほぼ同じなら、かざされたものの色が少し違っても、同じとみなしてくれる。
逆に言えば、ほぼ同じ形で色だけ違う画像を、個別のターゲットとして登録するのは難しい。


スキャン画像の微妙な色の差問題

スキャンした切り絵をマーカーとして使い、ARを表示しようとしていました。
しかし、実際スキャンしてみると、思ったより本物の切り絵の色の淡さがうまく出ませんでした(スキャナの設定が悪かったのかな)。

そこで、この本物のマーカーと登録したターゲットの微妙な色の違いは、AR表示上問題を起こすか、いろいろ試してみました。


実験

実験環境

Unity2018.4.3f1
Vuforia 8.3.8

画像色の違いによるAR表示実験(Unity + Vuforia)実験用切り絵
今回実験協力してくれたのはこの子!

このロボットくんの切り絵原本を、以下「ロボ切り絵」と呼びましょう。
このロボ切り絵のスキャン画像をいろいろいじって、ARのターゲット画像として登録します。そしてロボ切り絵をかざして、ARが表示されるかチェックしていきました。


1) ターゲット画像の色をロボ切り絵の色に寄せた場合

画像色の違いによるAR表示実験(Unity + Vuforia)実験画像
スキャン画像の明度や色を少しいじって、本物のロボ切り絵の色に近づけた、この画像をターゲットとして登録してみました。
こちら、ロボ切り絵にかざしたらもちろん問題なくARが表示されました。


2) ロボ切り絵とターゲット画像に微妙な色の違いがある場合

画像色の違いによるAR表示実験(Unity + Vuforia)実験画像
上の画像と比べると、全体的に濃度濃い目なのがおわかりいただけるでしょうか

微妙に色が濃くスキャンされてしまった上の画像を、ARのターゲットとして登録しておき、(実際はもう少し淡い色の)ロボ切り絵にかざしました。
こちらも問題なく表示されました。


3) 全く同じ形、画像の一部の色を変えてターゲットとして登録する場合

画像色の違いによるAR表示実験(Unity + Vuforia)実験画像
1)で使った画像、頭の部分をあえて青くぬりつぶしました。見た目、かなりはっきり色が変わりましたね。
この画像をターゲットとして登録しておき、ロボ切り絵にかざしたところ…なんと、ARが表示されてしまいました
形が同じだと、これくらいの色の違いは、同じものとして認識されてしまうようです。


4) ターゲット画像と色がほぼ同じだが形が少し違う切り絵をかざす場合

画像色の違いによるAR表示実験(Unity + Vuforia)実験切り絵
しょんぼりポーズ

1)の画像をターゲットとして登録しておき、今度はロボ切り絵でなく、そのポーズ違いの切り絵をかざしました。
同じような色、同じような形の画像ですが、ポーズが違うとちゃんと別物として認識してくれて、ARは表示されませんでした。


5) ほぼ同じ形、色が微妙に違うマーカー切り絵を複数かざす場合

画像色の違いによるAR表示実験(Unity + Vuforia)実験切り絵
左が黄・オレンジが強く、右は赤・ピンクが強めの炎

今度は、形がほぼ同じで色が微妙に違う切り絵を準備して、そのうち片方の画像をターゲットとして登録してみました。

右の画像をスキャンしてターゲットとして登録しましたが、右はもちろん左の切り絵をかざした場合でも、ARが表示できてしまいました。


まとめ

色による判定はそこまでシビアなものではないとわかりました。

しかし逆に言えば、全く同じ画像で、色だけ微妙に変えた複数の画像を、一つのデータベースの中で個別のターゲットとして使うのはおすすめできません。
別物として認識してもらえない可能性があるからです。

ということで、Unity + VuforiaでAR実装する時、マーカーははっきり形の違うものを登録するのが良いですね。