2012.02.03
昨年ペンタックから発売されたカメラの新モデルKrは、消費者がボディ、グリップ、レンズの色をそれぞれ自由自在に組み合わせて、最大2160通りのカラーオーダーメイドが可能という売りのもので、こちらの媒体キャンペーン制作に携わらせていただいたのですが、採用には至らなかったものの弊社で提案したOOHクリエイション(下図プレビュー)制作で試した方法ご紹介したいと思います。
これは、実物を使用撮影した実寸大の商品Krを1ピクセル(約10x7x7cm)として、計1024ピクセル(32x32)で仕立てた巨大モザイクポスターというコンセプトです。今回のプレビューでは人物画を使用しましたが、モザイク画の色に近い組合せカラーをもつ実物のKrを1024個使用するので、このカラー選定アプローチを試行錯誤しました。
カラーマッチングのアルゴリズムでは、コンピュータでははRGBという3次元ベクトルになり、サンプル色に一番近いベクトルを探す方法はベクトル量子化の手法があります。
今回のようなカラーマッチングのシンプルなアルゴリズムはないので、色空間RGBを表空間XYZに置き換えてスペースマッチングと考えてみました。こちらはゲームプログラミング界で何十年も前にアルゴリズムが書かれています。いつも厳しいコンピュータスペックが求められている現場ならではでしょうか。そこで今回のカラーマッチングはゲーム界の「経路探索」の方法を応用しました。
回のアルゴリズムは上画像で閲覧可能です。一番良い結果が出たのはボロノイでしたが、これはCPU負荷が大きすぎるのでオンラインバージョンでの実装は断念しました。 次に試したバイナリ空間分割(BSP)は、CPUには負荷がかからずスピード重視の場合には最適ですが、今回のようにデータの微妙なカラー調節をしたりノイズを入れたい場合には柔軟性に欠けます。 次に「Ray + cross product」という方法を試しましたが、こちらもメモリ、CPU共に負荷がかかり過ぎでした。最後に試した「Manhattan Distance」はBSPのようにデータロスがあるものの作業効率と使い勝手の良さは抜群でこのアルゴリズムを本番に使いました。
カラーマッチングは目的によって制作アプローチが変わりますが、今回はオンラインサービスを考えて作ってみました。オフラインソリューションになると、また様々なアプローチがあります。たとえば「SOM」というIAツールは今回のように大きいデータセットを使用しない場合は不向きですが、とてもおもしろくて作るのが楽しいので、また機会があったらご紹介したいと思います。