コンピュータービジョン:モバイルアプリケーションを使用して写真の衣服を認識する

少し前に、写真(写真)でさまざまなオンラインストアの服を検索できるプロジェクトを作成することにしました。 アイデアはシンプルです-ユーザーは画像(写真)をアップロードし、関心のある領域(tシャツ、パンツなど)を選択し、指定(オプション)パラメーター(性別、サイズなど)を指定し、システムはカタログで同様の服を探しますオリジナルとの類似度でソートします。



アイデア自体は新しいものではありませんが、誰によっても定性的に実装されていません。 数年からwww.snapfashion.co.ukが市場に出回っていますが、その検索の関連性は非常に低く、選択は主に画像の色を決定することによって行われます。 たとえば、彼は赤いドレスを見つけることができますが、特定のスタイルまたはパターンのドレスはもうありません。 ちなみに、このプロジェクトの視聴者は増えていません。これは、検索が間違いなく関連性が低いという事実に関連付けられており、実際、カタログで検索するときにストアのウェブサイトで色を選択しても違いはありません。



2013年にwww.asap54.comプロジェクトが登場しましたが、ここでは検索が少し改善されています。 色と、特別なカタログ(ショートドレス、ロングドレス、ミディアムロングドレス)から手動で指定されたいくつかの小さなオプションに重点が置かれています。 ビジュアル検索の困難に直面したこのプロジェクトは、ファッショニスタが「服のシャザム」から「ファッショニスタのインスタグラム」まで、服の「弓」を共有できるソーシャルネットワークにやや向きました。



この分野にプロジェクトがあるという事実にもかかわらず、今日非常に関連性のある写真で検索する必要性は、明らかに明らかになっています。 SnapFashionとAsap54が行ったように、モバイルアプリケーションを作成することによるこの問題の解決策は、eコマース市場の動向と最も一致しています。さまざまな予測によると、2013年の11%から2017また、モバイルコマースは、購入に役立つさまざまなアプリケーションの人気の高まりを示しています。 そして、ほとんどの場合、店舗自体がそのようなアプリケーションの開発、プロモーションに投資し、積極的に協力します。



競合他社を分析した後、このトピックに自分で対処する必要があると判断し、 Sarafan www.getsarafan.comプロジェクトを立ち上げました。

コーポレートアイデンティティはもともと、明るくすることを目的としていました。 私たちは多くのオプションに取り組んできました:

画像



その結果、明るい色のスタイルに落ち着きました。

画像



まず、iOS用のクライアント(iPhone用)を選択しました。 デザインはペイントの形で、Restサービスを介して機能します。アプリケーションのメイン画面には、写真を撮るかギャラリーから選択するという選択肢があります。

画像



これはおそらくプロジェクト全体の中で最も単純なものでした。 一方、高度なバックエンド開発では、物事はそれほどバラ色ではありませんでした。 そして、ここに私たちの探求の物語があります:私たちがしたことと私たちがどこに来たか



ビジュアル検索



いくつかのアプローチをテストしましたが、どれも関連性の高い検索を行うことを可能にする結果をもたらしませんでした。 この記事では、私たちが試したことと、それがさまざまなデータでどのように機能したかについて説明します。 この経験がすべての読者に役立つことを願っています。



したがって、検索の主な問題は、いわゆるセマンティックギャップです。 つまり どの画像(この場合は衣服の画像)が人と機械で似ていると見なされるかの違い。 たとえば、人は黒い半袖のTシャツを探したいとします。

画像

人は、下のリストで2番目の画像であると簡単に言うことができます。 ただし、マシンは画像3を選択する可能性が高く、その上に女性のTシャツがありますが、シーンは非常に類似した構成と同じ色分布を持っています。

画像



検索の結果は、同じタイプ(Tシャツ、Tシャツ、ジャージ...)、ほぼ同じスタイル、ほぼ同じ色分布(色、テクスチャ、またはパターン)の位置になると予想します。 しかし実際には、3つの条件すべてを確実に満たすことは問題でした。



同様の色の最も単純な画像から始めましょう。 画像を色で比較するには、色ヒストグラム法が最もよく使用されます。 画像を比較するための色ヒストグラム法の考え方は次のとおりです。 色のセット全体が互いに素なセットに分割され、そのサブセットを完全にカバーします。 画像のヒストグラムは、画像の色域における色の各サブセットの割合を反映して形成されます。 ヒストグラムを比較するために、ヒストグラム間の距離の概念が導入されています。 色のサブセットを生成するには、さまざまな方法があります。 私たちの場合、画像カタログからそれらを作成するのが合理的です。 ただし、このような単純な比較でも、次の条件が必要です。

-カタログ内の画像には、簡単に分離できる背景に1つだけを含める必要があります。

-背景と、ユーザーの写真で関心のある衣服の領域を効果的に区別する必要があります。

実際には、最初の条件が満たされることはありません。 この問題を解決する試みについては後で説明します。 2番目の条件は比較的単純です。 ユーザーの画像内の関心領域の選択は、ユーザーの積極的な参加とともに行われます。 たとえば、かなり効果的なバックグラウンド除去アルゴリズム-GrabCut( http://en.wikipedia.org/wiki/GrabCut )があります。 画像内の関心領域は、その境界よりもユーザーによって囲まれた領域の中心に近く、この画像領域の背景は比較的均一な色になるという考慮から進めました。 GrabCutといくつかのヒューリスティックを使用して、ほとんどの場合に正しく機能するアルゴリズムを取得することができました。



次に、カタログ画像での関心領域の割り当てについて説明します。 最初に頭に浮かぶのは、色で画像を分割することです。 これには、たとえば、watershedアルゴリズム( http://en.wikipedia.org/wiki/Watershed_(image_processing) )が適しています。

ただし、カタログ内の赤いスカートの画像には、いくつかのオプションがあります。

画像



1番目と2番目のケースで関心領域を比較的簡単にセグメント化する場合、3番目のケースではジャケットも割り当てます。 より複雑なケースでは、このメソッドは機能しません。例えば:

画像



画像セグメンテーションのタスクが完全に解決されていないことに注意してください。 つまり 人ができるように、1つのフラグメントの関心領域を選択できる方法はありません。

画像



代わりに、画像はスーパーピクセルに分割されます。ここでは、nカットとターボピクセルアルゴリズムの方向に注目する価値があります。

画像



将来的には、それらの組み合わせを使用します。 たとえば、オブジェクトを見つけてローカライズするタスクは、バウンディングボックスを検索する代わりに、オブジェクトに属するスーパーピクセルの組み合わせを見つけることになります。

画像



そのため、カタログ画像をマークアップするタスクは、このタイプのものに対応するスーパーピクセルの組み合わせを見つけることになりました。 これはすでに機械学習タスクです。 アイデアは、多くの手動でマークされた画像を取得し、その上で分類器を訓練し、セグメント化された画像の異なる領域を分類するというものでした。 応答が最大のエリアは、当社にとって関心のあるエリアと見なされます。 しかし、ここで画像の比較方法を再度決定する必要があります。 単純な色比較は機能しないことが保証されています。 シーンの形状または画像を比較する必要があります。 当時のように、要旨記述子( http://people.csail.mit.edu/torralba/code/spatialenvelope/ )はこれらの目的に適しています。 要旨ハンドルは、画像内のエッジの分布の一種のヒストグラムです。 画像は任意のサイズのグリッドによって均等な部分に分割され、各セルで、異なる向きと異なるサイズのエッジの分布が計算され、サンプリングされます。 結果のn次元ベクトルを比較できます。



トレーニングセットが作成され、さまざまなクラスの多くの画像が手動でマークされました(約10)。 しかし、残念ながら、相互検証を行っても、アルゴリズムのパラメーターを変更して、50%を超える分類精度を達成することはできませんでした。 一部の欠点は、エッジの分布の観点からシャツがジャケットとあまり変わらないこと、一部はトレーニングサンプルが十分に大きくなかったことです(通常は非常に大きな画像のコレクションを検索するために要旨が使用されます)適用されない場合があります。



画像を比較する別の方法は、ローカルフィーチャを比較することです。 以下の彼のアイデアは、画像内の重要なポイント(ローカルフィーチャ)を強調し、何らかの方法でこれらのポイントの近傍を記述し、2つの画像のフィーチャの一致数を比較することです。 記述子としてSIFTを使用しました。 しかし、主にこの方法は異なる角度から撮影された同じシーンの画像を比較するように設計されているため、局所的な特徴の比較も悪い結果をもたらしました。



したがって、カタログから画像をマークアップすることはできませんでした。 上記の方法を使用してラベル付けされていない画像を検索すると、ほぼ同様の結果が得られる場合がありましたが、ほとんどの場合、結果は人間の観点からは類似していませんでした。



カタログをマークアップできないことが明らかになったとき、ユーザーの画像の分類子を作成しようとしました。 ユーザーが見つけたいもののタイプ(Tシャツ、ジーンズなど)を自動的に判別します。 主な問題は、トレーニングサンプルの不足です。 カタログ画像は、第一にマークアップされていないため適切ではありません。第二に、それらはかなり限られた空間表現のセットで提示され、ユーザーが同様の表現で画像を提供する保証はありません。 モノの空間表現の大規模なセットを取得するには、このモノの人物をビデオで撮影し、モノを切り取り、フレームのセットに基づいてトレーニングサンプルを作成しました。 同時に、物は対照的で、背景から簡単に分離されました。

画像

残念ながら、このアプローチは、あらゆるスタイルの衣服をカバーするために削除および処理する必要があるビデオの数が明らかになったため、すぐに拒否されました。



コンピュータビジョンは非常に広大なセグメントですが、私たちは(これまで)関連性の高い検索で目的の結果を達成することができませんでした。 追加のサイド関数を追加することで脇道をしたくありませんが、検索ツールを作成することで戦います。 アドバイスやコメントをお待ちしております。



All Articles