TensorFlowで類似画像検索――デザインで画像を探そう

Pocket

先日、IBM Watson Build Challenge(IBM主催の「IBM Watson と IBM Cloud を利用した製品アイディアのコンペティション」)の日本部門に、TensorFlowを活用した類似画像検索サービス「Sensitive Search」を引っさげ、戦って参りました。残念ながらコンテストでは敗れましたが、今回この場をお借りし、このサービスについてご紹介させて頂ければと思います。

(なお、弊社の別チームはIBM Watson Build Challenge グローバル部門・日本大会で優勝し、世界大会に出場しました。)

 

デザインで探す類似画像検索「Sensitive Search」

「Sensitive Search」は、デザインで検索することができるサービスです。デザインで検索とはつまり、あなたの好み・センスで検索できるということです。「Sensitive Search」では、画像上の気に入ったデザイン部分をマウスで直接ドラッグして指定するだけで、それに類似するデザインを含む他の画像を検索することができます。非常にシンプルで直感的なものです。

指定した気に入ったデザインの類似を含む画像を検索

考えられるユースケースをいくつかあげてみます。

例えば、成人式を迎える女性が振袖を探している時に、「この青い振袖の花柄が気に入ったんだけど、私は赤い振り袖が着たい。こんな柄で、赤い振袖はないかな」といった場合、「Sensitive Search」なら簡単に検索できます。

あるいは、街で偶然、気に入ったデザインが施された商品に出会った時、そのデザイン部分をスマートフォンのカメラで撮影し、「Sensitive Search」に検索させることで、それと類似するデザインの商品を探すことができます。

また、あるアイテムを使ったコーディネイトを考えるようなケースでも使えます。例えば、インテリアのコーディネイトであれば観葉植物、ファッションのコーディネイトであればアウターやバッグなどを軸に、それとよく似たアイテムが写り込んでいる他の画像を検索することで、コーディネイトのヒントが得られるかもしれません。

これまでは、このようにビジュアルな観点で検索したいと思っても、既存のテクノロジーでは検索できませんでした。なぜなら、「サイズ」や「キーワード」のような値でしか検索できなかったためです。しかし、人が商品の購入を決定する際に、感覚的な「デザインの善し悪し」が占める割合は意外と大きいものです。そこに手をさしのべるべくひらめいたのが、「Sensitive Search」です。この新たな観点での検索は未開拓の領域であり、様々な可能性を秘めているといえます。

既存の類似画像検索との違いは部分特徴点検索

画像の一部分を選択して他の画像を検索できるサービスは、すでにいくつか存在します。しかし、我々が調べた限り、それらはいずれも、画像全体の構図が選択エリアに近いもの(つまりクローズアップされた画像)がヒットするサービスばかりでした。

一方、「Sensitive Search」では、部分的に同様の特徴を持っている画像を検索することができます。例えば、前述の振袖を探している女性が、ある花柄の振袖画像を気に入ったとします。この花柄を選択エリアとして指定すると、「Sensitive Search」は、それと似たデザインの振袖画像のリストを返します。花柄がクローズアップされた画像はヒットしません。我々は、ここに価値を置いています。

今までの類似画像検索と「Sensitive Search」の違い
今までの類似画像検索と「Sensitive Search」の違い

類似画像検索の要は「TensorFlow」

「Sensitive Search」のアプリケーションプラットフォームは、IBM Watson Build Challengeに参加した経緯より、IBM Cloudです。しかし、「Sensitive Search」の要となる類似画像検索のエンジンは、TensorFlowを利用しています。

画像の類似検索を行うためには、検索にヒットさせたい画像の特徴量をあらかじめ「Sensitive Search」に学習させておく必要があります。

具体的には、次のような流れとなります。

まず、学習対象の画像を、1枚につき100枚の断片に分断します。そして、各断片から、TensorFlowを用いて2048次元の特徴ベクトルを算出し、コレクションに保存しておきます。これで学習は完了です。

ユーザから気に入った部分の画像がアップロードされると、その画像からも同様のロジックで特徴ベクトルを算出します。そして、その特徴ベクトルが類似する断片をコレクションから抽出します。ユーザには、その断片の元画像をリストして返します。こうすることで、部分的に同様の特徴を持つ画像をユーザに返すことを実現しています。

(ちなみに、「Sensitive Search」とは直接関係ありませんが、TensorFlowの技術情報記事も公開していますので、ご覧ください。)

 

デザインによる類似画像検索の今後

私が「Sensitive Search」のアイデアを思いついたきっかけは、ネットで家具を探していた時の記憶です。ECサイトで価格やジャンルを指定して検索しましたが、気に入る商品が一向に見つからず、時間だけが過ぎてしまったことがありました。あの時、自分は一体何を決めかねていたのかと振り返った時に、デザインで検索するというアイデアが浮かびました。自分の中では、求めるデザインや避けたいデザインが明確にあるにもかかわらず、既存のテクノロジーではそれらを条件として指定することができないことに気づいたのです。

一部のサービスには、画像をベースに検索できる仕組みがありますが、前述の通り改善の余地はありそうです。

「デザインで検索したい」というニーズにもっと寄り添うことができれば、検索UX(User eXperience: ユーザ体験)はさらに変わるかもしれません。また、検索結果から、ユーザーが求めるデザインを具体的に収集できるため、それを分析することで、あらゆる製品のデザインの質を高めることにつなげることもできるのではないかと考えています。

お問い合わせ先

執筆者プロフィール

Matsuda Yousuke
Matsuda Yousuketdi AI・コグニティブ推進部
新人の時、上司からXP(eXtreme Programming)を教わって以来、アジャイルな文化に魅了されてきました。昨年からようやくScrumで開発できるようになり、刺激的な毎日を送っています。最近は健康のため立って仕事をしています。
Pocket

関連記事