LoginSignup
18
13

More than 5 years have passed since last update.

[論文紹介] PRISM: A System forWeighted Multi-Color Browsing of Fashion Products

Posted at

論文

http://sglab.kaist.ac.kr/PRISM/prism_www14.pdf
この記事のひとつ前に紹介したPixel-Level Domain Transferと同じ著者

概要

ファッションアイテムから色を抽出するという問題。簡単そうに見えて、やってみるとめっちゃむずい。

ファッションECサイトには色による絞込機能が実装されていることが多いが、大抵の場合単色でしか絞り込めない。
一方で実際のファッションアイテムは複数の色が使われていることが多く、単色だと不便。

提案手法では、アイテムの色を複数の色を重み付けで表現することで、色の混合をクエリとする検索機能を提供している。

スクリーンショット 2016-09-28 21.47.45.png

貢献

  • 複数の色の重み付けをフィルタとしてファッションアイテムを絞り込む仕組みを提案する

システム構成

クローラー

ドメインに依存する処理を施すレイヤーと共通処理を施すレイヤーの2層になっている。
スクリーンショット 2016-09-28 21.57.01.png

メタデータ等はそのままMySQLに保存して、画像は特徴抽出モジュールに渡す。

輪郭抽出

輪郭抽出は3ステージに分かれる。

1st stage
最初はCanny edge detectorという処理を噛ます。OpenCVに実装されている。
outputのうち、面積最大の部分を次の処理に渡す

2nd stage
続いて、抽出した輪郭が正しいか否かの判別をカテゴリ毎に行う。
Bag of Hash Binsという方法で輪郭の特徴を表現するらしい。判別器はSVM。

判別結果が陽であれば、その輪郭をそのままマスクとして用いて色抽出を行う。
陽でなければ次のステージに

3rd stage
失敗の原因はモデルの顔や肌であることが多い(特にトップスの場合は)。そんなときはアプローチを変えて、GrabCutを施す。
segmentation結果は再度SVM。

スクリーンショット 2016-09-28 22.19.48.png

色抽出

単色ではなくBag-of-Colorで表現する。ということはk-meansか何かで予め色を量子化してコードブックを作成し、その要素を積み上げたヒストグラムで表現するということだろう。

ただ、何も考えずにk-meansするのは良くない。ファッションアイテムに付与される色は、実際のカラーコードとは異なる場合がある。RGB値ではなく、人間の知覚が優先されるということ。

ただk-meansするだけだと、この微妙な色のニュアンスが失われるから、一度人の知覚に近い空間に射影する必要がある。
論文ではこんなアプローチをとっている。

  1. 知覚に近い歪んだ空間にデータを射影(マッピングは学習する)
  2. その空間上でk-meansしてコードブックを作成
  3. コードブックを手作業でグルーピング

スクリーンショット 2016-09-29 9.58.39.png

知覚空間へのマッピング
マッピングは学習によって獲得する。ここで使われる手法は読んでないけど、おそらくcontrastive lossのように異なるクラスに属するデータをmarginの外に追い出すように学習するのだろう。
使うデータはファッションアイテムのsuper-pixel。手作業によって{Red, Orange, Yellow, Green, Blue, Navy, Purple, Black, Gray, White}のいずれかがラベリングされている。
super-pixelとは、これみたいなpixelの固まり。
自分が画像やってた頃は著者が公開してるライブラリ使ってたけど、今はOpenCVに実装されているようで。
superpixels_slic.png

k-means
獲得した空間上で普通にk-means。コードブックを作成する。

tonebook
作成したコードブックを手作業で25色にグルーピングしている。25という数字はおそらくシステムの仕様から決まる。

ちなみに、一連の処理はRGBではなくCIELAB空間で行う。CIELABはRGBよりも人の感覚に近い色空間。

実験

色の混合とアイテムカテゴリを指定して、検索を実行する。色はtonebookから複数選択した後、各色の割合を調整して決定する。
ぱっとみうまくいっている。
スクリーンショット 2016-09-29 10.16.34.png
スクリーンショット 2016-09-29 10.16.50.png

色の混合を手作りするだけじゃなくて、ファッションアイテムの画像自体をクエリにすることも可能らしい。食わせた画像から色を抽出して、あとは同じ処理を実行してくれる。

議論

輪郭抽出の精度はどれほどのものだろう?
図だとだいぶ易しい問題を解いているけど、実際は背景がうるさかったり2人以上のモデルが写ってたりするので、そういう場合は難しそう。
このあたりは教師情報があればdeepにしても良いのかもしれないけど、そもそも輪郭の情報は得られない場合がほとんど。

感想

実際に色の混合でアイテムを検索するというシーンがイメージできなかったけど、輪郭検出やBoCの抽出方法は参考になることが多かった。

18
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
13