コンテンツに移動
AI & 機械学習

バーチャルでのサリーの試着

2024年8月7日
Tushar Saxena

Director of Engineering, Meesho

Sharmila Devi

AI Consultant, Google

※この投稿は米国時間 2024 年 7 月 31 日に、Google Cloud blog に投稿されたものの抄訳です。

インドの最大手 e コマース プラットフォームの Meesho は、サプライヤーと顧客との間で行われる売買取引を円滑化するオンライン ショッピングモールです。Meesho のエンド サプライヤーがカタログ掲載のプロセスで直面している大きな課題のひとつに、さまざまなアパレル製品を着用させるモデルの取得に費用と時間がかかることがあります。そこで Meesho のチームは Google Cloud コンサルティング(GCC)と提携し、形状が最も複雑であるといえるサリーのための、Virtual Try On のソリューションを構築することにしました。エンド サプライヤーが指定するブラウスの画像、サリーの身体を覆う箇所の画像、パルーの画像をもとに、2D の画像と 3D のモデルを生成します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_-_Intro.max-1700x1700.jpg

2D および 3D ベースのソリューションを構築するために使用される技術スタックのそれぞれのコンポーネントについて、詳しく見ていきましょう。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_-_Architecture.max-2200x2200.jpg

このアーキテクチャは、Google Cloud Platform を活用する Virtual Try On サービスのエンドツーエンドのパイプラインを表しています。このパイプラインは、エンド ディストリビューターがサリーの画像をアップロードするプロセスを円滑化することを目的としたものであり、アップロードされた画像はその後にカスタムの AI ソリューションによって処理されます。処理された画像は Vertex AI Imagen に渡され、これによってバックグラウンドの更新と画像のアップスケーリングが行われ、画像の品質が改善されます。最終的に得られる画像は、製品のカタログを生成するために使用できます。このアーキテクチャには次のパイプライン ステージがあります。

1. 要件

以下に、画像に関して遵守する必要のあるガイドラインをいくつか記載しています。

  1. このソリューションを構築するには、柄や反射のない、白色で無地のサリーを着用したモデルの静的な画像が必要です。前面のポーズ、背面のポーズ、側面のポーズなどといった、さまざまなポージングのモデルを用意することが理想的です。

  2. モデルに関する条件とは別に、エンド サプライヤーがアップロードするサリーの画像にしわがないこと、その画像が適切な照明状態で撮影されていることも条件となります。また、サリーにボーダーがある場合は、それが正しくキャプチャされている必要があります。 

2. サリーの再構築 

このステップでは、入力の画像を規格化された形式に変換して、ダウンストリームのサリーを着用させるコンポーネントでこれを使用できるようにします。私たちはオーバーレイとブレンディングの手法を使用して、まず 2 つの入力画像を固定のパーセンテージで重ね、その後に img2texture という Python ライブラリを使用して重なった箇所をブレンドしました。このオーバーレイとブレンディングの手法を使うことで、つなぎ目を不自然ではない滑らかな状態にすることができます。また、この手法は 2 つのまったく異なる柄をブレンドする場合でも機能します(今回のように、パルーとサリーの身体を覆う部分の画像で柄がまったく異なる場合もあるため)。まったく異なる画像のオーバーレイ、ブレンディングを行う場合でも、つなぎ目が不自然になることはなく、非常にリアルな外観になります。以下の画像は、サリー再構築モジュールの入力と出力を示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_-_Saree_Reconstruction.max-1000x1000.jpg

3. 2D のアプローチ 

A. ラベル付け

私たちは Label Studio を使用して、サリーの複数の異なる箇所のラベル付けを行いました。以下は、正面を向いたモデルで特定された、4 つのカスタムの箇所です。

  • パルー: サリーのパルーの部分

  • 上半分: サリーの上側の部分。上半身にかぶさる領域。

  • 下半分: サリーの下側の部分。下半身にかかる領域。

  • ブラウス: ブラウスの部分に対応
https://storage.googleapis.com/gweb-cloudblog-publish/images/4_-_2D_Approach_-_Labeling_.max-1500x1500.jpg

B. TPS のゆがみ

Thin-Plate SplineTPS)のゆがみは、画像やその他のデータポイントを操作、変形させるために使用される手法です。これはスプライン ベースの手法であり、データの補完やスムージングのために使用されます。Label studio を使用して、ゆがみの箇所にアノテーションを付けます。このステップの結果は以下のとおりです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_-_TPS_Warping.max-1200x1200.jpg

C. プリーツの改善

このステップでは、2 つのプリーツの間にある柄の一部分を隠すことで、下半身のプリーツの見た目がリアルになるようにします。これを行うためにまず、サリーの下半身に対応する箇所をすべて、プリーツマスク(png マスク)としてラベル付けします。次に、並んでいるプリーツの間に余白を設定して、連続するプリーツの間に来る柄の画像の一部を隠せるようにします。そしてこの柄部分を切り抜き、サリーの一部分がプリーツの間で隠れているような効果を出します。最後に、照明のマスクを画像に適用し、リアルな出力を生成します。以下の画像は、このステップの最終的な出力を示しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/6_-_Pleats_Enhancement.max-1500x1500.jpg

上の画像からわかるように、プリーツの間に来るパターンの一部分が隠れているため、全体としての衣装の見た目が非常にリアルになっています。

D. 照明のマスキング

マスキングは、柄の画像を既存のモデルの上に重ねるプロセスです。以下の画像では、下半身に相当する部分とサリーの柄を対象とし、マスキング機能を使用して柄の各ピクセルをベースマスクで乗算することでモデル画像を修正し、2D の画像を生成しています。

https://storage.googleapis.com/gweb-cloudblog-publish/images/7_-_Light_Masking.max-1300x1300.jpg

E. 画像構築サービスですべての箇所を最終的な画像に統合します。

すべての箇所(ブラウス、上半身、下半身、パルーの箇所)がひとつに統合されて、最終的な画像が生成されます。

4. 3D のアプローチ 

A. 3D メッシュのレンダリング 

3D のアプローチに関しては、サリーを着せるモデルの 3D ファイルが必要です。このようなファイルにはさまざまな形式がありますが、今回のテストでは、とりあえず OBJ ファイルを使用することにしました。

3D のテストは、操作が簡単な 3D モデリングおよびレンダリング ソフトウェアである Blender ソフトウェアを使用して行います。3D パイプラインでは主に .blend ファイルを信頼できる情報源として使用して、その後にこのファイル内の要素を操作してそれぞれのサリーの柄に対応する 3D レンダリング画像を生成します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/8_-_3D_Mesh_Rendering.max-1700x1700.jpg

B. 3D メッシュのシーンの写真撮影サービス

表示させるにふさわしいリアルな画像を作成するためには、適切なカメラの位置と角度(方向)を定める必要があります。私たちはこれをまず手動で一度行い、適切であると思われるすべてのカメラの位置を記録して、その後に各カメラ位置の場所と方向を指定する camera_profiles json を作成します。この際、キーをその特定の構成の名前に設定した状態にします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/9_-_Mesh_Scene_Photography.max-1300x1300.jpg

5. 生成 AI による改善

A. バックグラウンドの改善 

Vertex AI Imagen を使用して、生成された画像のバックグラウンドを編集します。編集を適用する対象領域は、マスクベースの編集を使用することで指定できます。

B. 解像度のアップスケーリング 

Vertex AI Imagen を使用することで、生成あるいは編集された画像をその品質を損なわずに拡大できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/10_-_GenAI_Magic.max-1200x1200.jpg

「製品をモデルに着用させることができる機能は、ユーザーによる製品の吟味、品質や色の確認、そして、そのユーザーに似合うかどうかの確認に大いに役立つものです。この自動化で販売者の生産性向上を達成することも、製品購入の可能性を大幅に高めることもできます。今回の Google Cloud とのコラボレーションのおかげで、Google の強みと Meesho の技術をかけ合わせて、きわめて優れたショッピング体験を創出することができました。

この機能は、近日中に Meesho アプリで使用できるようになります。」と、Meesho のエンジニアリング担当バイスプレジデント Divyesh Shah 氏は語ります。

Google Cloud コンサルティング(GCC)によるエンドツーエンドの迅速な導入

Google Cloud Meesho のパートナーシップは、お客様が望ましい成果を上げられるよう支援するために、Google が複雑な問題を解決する AI 搭載ソリューションをどのように提供しているかを示す最新の例のひとつです。GCC Meesho から、Meesho チームと共同でビジネス要件に合わせてワークフローの環境を構築することを託されました。GCC ポートフォリオは、さまざまなサービスやプロダクトを 1 つに統合し、複数の専門分野にまたがるさまざまなサービスを 1 か所にまとめて提供します。これには、学習サービス、テクニカル アカウント マネジメント、プロフェッショナル サービス、カスタマー サクセスなどが含まれます。

Google Cloud コンサルティングが学習、構築、運用、成功にどのように役立つかについて詳しくは、こちらのページをご覧ください

ー Meesho、エンジニアリング担当ディレクター Tushar Saxena 氏

ー Google Cloud、AI プログラム リード Sharmila Devi

投稿先