逆に言えば、ほぼ同じ形で色だけ違う画像を、個別のターゲットとして登録するのは難しい。
スキャン画像の微妙な色の差問題
スキャンした切り絵をマーカーとして使い、ARを表示しようとしていました。しかし、実際スキャンしてみると、思ったより本物の切り絵の色の淡さがうまく出ませんでした(スキャナの設定が悪かったのかな)。
そこで、この本物のマーカーと登録したターゲットの微妙な色の違いは、AR表示上問題を起こすか、いろいろ試してみました。
実験
実験環境
Unity2018.4.3f1
Vuforia 8.3.8
今回実験協力してくれたのはこの子! |
このロボットくんの切り絵原本を、以下「ロボ切り絵」と呼びましょう。
このロボ切り絵のスキャン画像をいろいろいじって、ARのターゲット画像として登録します。そしてロボ切り絵をかざして、ARが表示されるかチェックしていきました。
1) ターゲット画像の色をロボ切り絵の色に寄せた場合
スキャン画像の明度や色を少しいじって、本物のロボ切り絵の色に近づけた、この画像をターゲットとして登録してみました。こちら、ロボ切り絵にかざしたらもちろん問題なくARが表示されました。
2) ロボ切り絵とターゲット画像に微妙な色の違いがある場合
上の画像と比べると、全体的に濃度濃い目なのがおわかりいただけるでしょうか |
微妙に色が濃くスキャンされてしまった上の画像を、ARのターゲットとして登録しておき、(実際はもう少し淡い色の)ロボ切り絵にかざしました。
こちらも問題なく表示されました。
3) 全く同じ形、画像の一部の色を変えてターゲットとして登録する場合
1)で使った画像、頭の部分をあえて青くぬりつぶしました。見た目、かなりはっきり色が変わりましたね。この画像をターゲットとして登録しておき、ロボ切り絵にかざしたところ…なんと、ARが表示されてしまいました。
形が同じだと、これくらいの色の違いは、同じものとして認識されてしまうようです。
4) ターゲット画像と色がほぼ同じだが形が少し違う切り絵をかざす場合
しょんぼりポーズ |
1)の画像をターゲットとして登録しておき、今度はロボ切り絵でなく、そのポーズ違いの切り絵をかざしました。
同じような色、同じような形の画像ですが、ポーズが違うとちゃんと別物として認識してくれて、ARは表示されませんでした。
5) ほぼ同じ形、色が微妙に違うマーカー切り絵を複数かざす場合
左が黄・オレンジが強く、右は赤・ピンクが強めの炎 |
今度は、形がほぼ同じで色が微妙に違う切り絵を準備して、そのうち片方の画像をターゲットとして登録してみました。
右の画像をスキャンしてターゲットとして登録しましたが、右はもちろん左の切り絵をかざした場合でも、ARが表示できてしまいました。
まとめ
色による判定はそこまでシビアなものではないとわかりました。しかし逆に言えば、全く同じ画像で、色だけ微妙に変えた複数の画像を、一つのデータベースの中で個別のターゲットとして使うのはおすすめできません。
別物として認識してもらえない可能性があるからです。
ということで、Unity + VuforiaでAR実装する時、マーカーははっきり形の違うものを登録するのが良いですね。