軽量な画像言語モデルによるアパレルドメインでのゼロショットクラス分類パイプラインの構築
1. 課題設定
当社は創業当初から、アパレル領域における商品画像・着用画像に基づく画像解析 AI の構築を一貫して手がけ、さまざまな企業へサービスを展開してきました。長年このドメインに向き合うなかで繰り返し突き当たってきたのが、本記事で扱う「いかに低コストかつ高速に、専門性の高いアパレル画像から意味のある情報を引き出すか」という課題です。
私たちのビジネスにおける最優先課題は、日々蓄積される膨大な数の商品画像から、低コストかつ高速にインサイトを抽出し、ビジネス活用可能な形に構造化することです。アパレル業界はトレンドの移り変わりが激しく、商品サイクルが極めて短いため、AI モデルの構築においても「数ヶ月かけた教師データの収集と学習」は許容されません。市場に投入された新しいカテゴリや属性が、数週間後には主力商品になっていることも珍しくないからです。ビジネスサイクルに遅れず追随するためには、新たなカテゴリや属性に対しても即座に対応できる、高速な検証・改善サイクルが必須となります。
また、消費者(顧客)に対してパーソナライズされた体験を直接提供するためには、推論基盤のコスト構造そのものが重要になります。商品画像は数百万枚規模で蓄積され、かつ日々更新されるため、クラウドの巨大な計算リソースに依存したアーキテクチャでは、スケールに比例して運用コストが膨張してしまいます。安価な CPU 環境やエッジデバイス上でも現実的な速度で動作する「軽量なモデル」であることは、機能要件であると同時に事業継続性の要件でもあります。
さらに、ビジネス領域がアパレルである点も大きな壁となっています。アパレルは「ネックラインの形状」「生地の質感」「微細なパターンの違い」など、専門性が高く非常に繊細なドメインです。これらは大規模言語モデル(LLM)であれば文脈から理解可能ですが、従来の汎用的なゼロショットモデルでは、その「絶妙なニュアンス」を十分に捉えきれず、精度が不足するという課題に直面してきました。
つまり私たちが解くべきは、「コスト」「速度」「専門ドメインへの適応」という、通常はトレードオフの関係にある 3 つの要求を同時に満たすことです。本記事では、この困難な要求を最新の軽量画像言語モデルを用いていかに解決したかを、パイプラインの設計から定量評価まで一貫して詳述します。
2. 関連研究
画像と言語を統合的に扱う技術は急速に進化していますが、実運用においては「精度」と「コスト」のバランスが常に課題となります。本プロジェクトのモデル選定にあたって比較検討した主要な手法を、それぞれの強みと、私たちのユースケースにおける限界とともに整理します。
- CLIP (Contrastive Language-Image Pre-training) : 現代の画像言語モデルの祖であり、画像とテキストを同一空間に埋め込んで類似度を計算するアプローチのデファクトスタンダードです。軽量で扱いやすい一方、アパレルのような専門的なドメインでは、ゼロショットでの分類精度が不十分なケースが多く、微細な属性の識別に限界があります。汎用的な学習データで獲得した表現が、専門用語の細かなニュアンスまではカバーしきれないためです。
- LLM2CLIP : LLM の強力な言語理解能力を CLIP に注入する手法であり、非常に高品質な特徴量空間を実現しています。しかし、テキストのエンコードに LLM 自体を使用するため、推論コストが従来の CLIP に比べて数十倍に膨らみます。クラス定義を事前にキャッシュできない、画像ごとに動的なテキストを扱うようなオンザフライ(実行時)の特徴量化においては、この推論コストが大きなネックとなります。
- LLaVA (Large Language-and-Vision Assistant) : 画像を見て詳細な回答を生成できる強力な VLM であり、柔軟な質問応答が可能です。しかし、モデルサイズが 7B〜13B と巨大であり、大量の商品画像に対して高速に Embedding を抽出するような高スループットなバッチ処理には、計算コストの面から適していません。
これらの手法はいずれも「精度を取ればコストが膨らみ、コストを抑えれば専門ドメインで精度が落ちる」というトレードオフの中にあります。では、このトレードオフは実際にどの程度のものなのでしょうか。本プロジェクトの結論を述べる前に、まず「軽量さ・速度」の側を定量的に押さえておきます。CPU 環境で 1 アイテムあたりのエンコード速度を実測した結果が表 1 です。LLM ベースの VLM である Qwen2.5-VL-3B、デファクトスタンダードである CLIP (ViT-B/32)、そして SigLIP 2 の 3 モデルを、同一データセット・同一環境で比較しました。
| モデル | 画像: レイテンシ [秒/件] | 画像: スループット [件/秒] | テキスト: レイテンシ [秒/件] | テキスト: スループット [件/秒] |
|---|---|---|---|---|
| Qwen2.5-VL-3B(LLM ベース) | 4.03 | 0.25 | 0.694 | 1.44 |
| CLIP (ViT-B/32) | 0.034 | 29.70 | 0.023 | 43.51 |
| SigLIP 2 (siglip2-base-patch16-224) | 0.075 | 13.27 | 0.035 | 28.19 |
表 1: CPU 環境における 1 アイテムあたりのエンコード速度(画像・テキスト)。SigLIP 2 は CLIP と同じオーダーの速度で動作する一方、LLM ベースの Qwen2.5-VL-3B は画像エンコードで SigLIP 2 の約 54 倍、テキストエンコードでも約 20 倍の時間を要する。
差は歴然としています。LLM ベースの Qwen2.5-VL-3B は画像 1 枚のエンコードに約 4 秒(0.25 件/秒)を要し、数百万枚規模の商品画像を CPU で捌く用途には到底耐えられません。これに対し SigLIP 2 は画像を毎秒 13 枚以上(テキストは毎秒 28 件)エンコードでき、CLIP と同じオーダーの軽量さを保っています。すなわち SigLIP 2 は、処理速度の面では LLM ベースのモデルを 1〜2 桁引き離し、「CPU で回せる軽量モデル」の側に明確に位置づけられるのです。
こうした背景を踏まえ、本プロジェクトでは SigLIP 2 を採用しました。SigLIP 2 は、表 1 が示すとおり CLIP 並の軽量さ・処理速度を維持しながら、従来の Large モデルや LLM 連携モデルに匹敵する詳細把握能力を実現しているからです。前述のトレードオフの中で、最も今回の目的に適したオープンソースモデルであると判断しました。
3. 実装:複雑なクラス分類パイプラインの 3 ステップ
本記事では具体例として、アパレル画像(商品単体、または複数の商品が含まれる着用画像)から、以下の 8 種類の「柄(パターン)」をマルチラベルで抽出するタスクを想定します。
対象ラベル:
-
plain(無地) -
horizontal_stripe(ボーダー) -
dot(ドット) -
check(チェック) -
floral(花柄) -
vertical_stripe(ストライプ) -
animal(アニマル) -
camouflage(迷彩)
アパレル画像には「花柄のシャツに無地のカーディガンを羽織っている」といった複数要素が混在するケースが多く、単一ラベルを返す通常の分類器ではこうした画像を正しく扱えません。この課題を、SigLIP 2 を活用した以下の 3 ステップのパイプラインで解決します。各ステップは独立しており、ラベルの追加・変更が Step 1 のやり直しだけで完結する点が、運用上の大きな利点です。全体のデータフローを図 1 に示します。
図 1: SigLIP 2 を用いたゼロショットクラス分類パイプラインのデータフロー。Step 1 のテキスト埋め込みはクラス定義が変わらない限り一度だけ実行してキャッシュし、推論時は Step 2・Step 3 のみを画像ごとに実行する。Step 3 でラベルごとに独立したシグモイド判定を行うため、複数の柄を同時に出力できる。
-
Step 1: クラス定義の埋め込み(Encoding)
上記の 8 つの柄に対し、後述する類義語リストを用いてプロンプトを作成し、テキストエンコーダーでベクトルを生成してキャッシュします。このベクトル化はクラス定義が変わらない限り一度きりで済むため、推論時のコストには一切含まれません。新しい柄カテゴリを追加したい場合も、そのラベルのテキストをエンコードしてキャッシュに加えるだけでよく、教師データの再収集やモデルの再学習は不要です。 -
Step 2: 特徴量抽出と内積計算
入力画像をエンコードし、キャッシュされたテキストベクトルそれぞれとの内積を計算します。画像のエンコードは 1 枚につき一度だけ行えばよく、その結果を全ラベルのテキストベクトルと内積するだけでスコアが得られるため、ラベル数が増えても計算コストはほとんど増加しません。さらに SigLIP 2 の画像エンコーダーは、MAP head(Multihead Attention Pooling:学習されたアテンション重みに従って画像内の局所特徴を集約するプーリング機構)により画像内の重要な局所特徴を捉えるため、画像内に複数のアイテムが写っていても、それぞれの柄の特徴を効果的に抽出できます。 -
Step 3: クラスごとのシグモイド判定
計算されたスコアに対し、モデルが保持する学習済みの温度 とバイアス を適用したシグモイド関数 を通します。
ここが従来の CLIP との決定的な違いです。CLIP は全ラベルに対する softmax により「最も近い 1 つ」を選ぶ設計であるのに対し、SigLIP 2 は「この画像にこの柄が含まれるか」をラベルごとに独立した二値分類として判定します。そのため、出力が 0.5 以上のラベルを全て採用するだけで、「floral」と「plain」の両方を同時に割り当てることが自然に可能になります。冒頭で挙げた「複数要素が混在する画像」という課題が、このステップで構造的に解決されるわけです。
4. 類義語の扱いによる精度の向上
アパレルドメインでは、一つの概念に対して複数の呼び名が存在することが一般的です。たとえば「チェック」一つをとっても、tartan、gingham、plaid など、由来や見た目の異なる複数の表現が流通しています。これらを一つのラベルとして統合し、判定精度を高めるためには、埋め込みベクトルの線形平均化が極めて有効です。
精度を最大限に引き出すため、各ラベルに対して以下のような類義語をエンコードし、平均化することを推奨します。単一の代表語だけでは、その語の表現の偏りをそのまま引き継いでしまいますが、複数の表現を束ねることで、ラベルが指す概念をより安定して捉えられるようになります。
| ターゲットラベル | 線形平均化に推奨される類義語・表現例 |
|---|---|
plain
(無地)
|
solid color, unpatterned, monochromatic, plain fabric |
horizontal_stripe
(ボーダー)
|
border pattern, horizontal lines, nautical stripe, horizontal stripes |
dot
(ドット)
|
polka dot, spotted, speckled, dotted pattern |
check
(チェック)
|
plaid, tartan, gingham, grid pattern |
floral
(花柄)
|
flower print, botanical pattern, rose print, blossom pattern |
vertical_stripe
(ストライプ)
|
vertical lines, pinstripe, striped pattern, vertical stripes |
animal
(アニマル)
|
leopard print, zebra print, cheetah print, animalier |
camouflage
(迷彩)
|
camo, military print, army pattern, woodland camouflage |
表 2: 各ターゲットラベルに対して線形平均化に用いる類義語・表現例。これらをまとめてエンコードし平均化することで、単一の代表語が持つ表現の偏りを抑える。
単純な「ベクトルの平均」が有効となる最も単純な理解は、類義語は埋め込み空間において密集しており、重心が最も偏りのない代表ベクトルと考えられるでしょう。
依然として線形平均で良いのかは疑問が残るのですが、少なくとも言語モデルの埋め込み表現には、例えば
- 言語 | English, French, Russian, ...
-
性別 | Male, Female
のような、同じカテゴリに属する単語については、極めて一般的な論法により、埋め込み空間の線形性が成り立つことが主張されています。(例えば: 線形表現仮説(Linear Representation Hypothesis)に関する論文 )
言語を埋め込める SigLIP 2 などのVLMにも線形性を期待して良いでしょう。
5. 評価結果:アパレル柄分類における性能比較
ここまで述べたパイプラインが実際にどれだけの性能を発揮するのかを、定量的に検証します。10,400 枚のアパレル評価画像を用い、「plain(無地)」ラベルの分類性能を CLIP および SigLIP 2 の各バリアントで比較しました。
5.1 評価手法
Step 3
で述べたとおり、本パイプラインは各ラベルのスコアに対して閾値を設定し、二値判定を行います。この閾値をどこに置くかによって
Precision と Recall
のバランスが大きく変わるため、「閾値の決め方」自体が評価の前提となります。
そこで本評価では、
ROC 最適化
: ROC 曲線(偽陽性率と真陽性率の関係)から AUC
が最大となる閾値を探索する方法で、特定のしきい値に依存せず、モデルが本質的に持つ「クラスを分離する能力」を評価します。
F1スコアを使わない
理由としては、 今回の評価データは「無地」が約 86.5%
を占めるため、何も考えず全画像を「無地」と答えるだけで Precision は 0.865、Recall は
1.0、となるので、結果として F1 は 0.928 に達してしまいます。
つまり F1
最適化の高スコアは、モデルの識別能力ではなく、データの偏りを反映しているにすぎません。クラス不均衡なデータにおいて
F1 最適化が時に無意味な結論を導く、典型的な例だといえます。
5.2 定量結果
実際にVLM を横並びで比較するために CLIP, SigLIP 2 のバリエーションごとに評価を行った結果が以下のとおりとなります。
これまでの説明に基づき、VLM 部分は固定し、ゼロショットでの評価を行っています。
(参考) F1 スコアに基づく評価
F1スコアに基づく最適化の結果は以下の通りであり、やはりデータの偏りに基づいてすべてのモデルが横並びで一致します。「すべて無地」判定するモデルが選択されていることを指しています。
| モデル | 画像サイズ | Optimal Threshold | AUC | Accuracy | Precision | Recall | F1 Score |
|---|---|---|---|---|---|---|---|
| SigLIP 2 | 224 | 0.0233 | 0.6025 | 0.8651 | 0.8651 | 1.0000 | 0.9277 |
| SigLIP 2 | 384 | -0.0090 | 0.6788 | 0.8650 | 0.8650 | 1.0000 | 0.9276 |
| SigLIP 2 | 512 | 0.0246 | 0.6418 | 0.8650 | 0.8650 | 1.0000 | 0.9276 |
| CLIP (ViT-L/14) | 336 | 0.0996 | 0.6450 | 0.8650 | 0.8650 | 1.0000 | 0.9276 |
表 3: F1 スコアを最大化する閾値で評価した結果。全モデルで Recall = 1.0、Accuracy = Precision となっており、後述のとおり「すべて無地」と判定する退化した分類器に collapse している。
ROC 曲線に基づく評価
一方で、ROC曲線に基づく評価を行うと、明確に CLIP, SigLIP2 で差が出ることがわかります。
| モデル | 画像サイズ | Optimal Threshold | AUC | Accuracy | Precision | Recall | F1 Score |
|---|---|---|---|---|---|---|---|
| SigLIP 2 | 224 | 0.0672 | 0.6025 | 0.5591 | 0.9004 | 0.5513 | 0.6839 |
| SigLIP 2 | 384 | 0.0490 | 0.6788 | 0.6415 | 0.9151 | 0.6454 | 0.7570 |
| SigLIP 2 | 512 | 0.0637 | 0.6418 | 0.5810 | 0.9122 | 0.5704 | 0.7019 |
| CLIP (ViT-L/14) | 336 | 0.2106 | 0.6450 | 0.5856 | 0.9080 | 0.5796 | 0.7076 |
表 4: ROC 曲線から AUC を最大化する閾値で評価した結果。退化を起こさずモデル本来の識別能力を反映しており、SigLIP 2 (384) が AUC・F1 ともに最良で、CLIP (ViT-L/14) を F1 で +4.9% 上回る。
5.3 考察
ROC 最適化の考察
退化を起こさず、モデルが本来持つ識別能力を測れるのが ROC 最適化です。こちらの結果では、モデル間に明確な差が現れました。 SigLIP 2 (384) が F1 = 0.7570、AUC = 0.6788 で最も優れた性能を示し、CLIP (ViT-L/14) と比較して F1 スコアで +4.9% の向上を達成しています。しかも Precision は全モデルで 0.90 以上を維持しており、SigLIP 2 (384) は「見逃しを減らしながら誤検出も抑える」という、実運用で本当に求められるバランスを実現できています。
6. まとめ
本記事では、「コスト」「速度」「専門ドメインへの適応」という相反する要求を同時に満たすことを目標に、アパレルドメインにおけるゼロショットクラス分類パイプラインの構築手法を提案しました。
ゼロショットであるため、新規カテゴリの追加にプロンプトの定義だけで即座に対応でき、これまで必要だった「教師データの収集と学習」という
教師データ収集工程が不要
となり、トレンドの変化に検証サイクルが追随できるようになります。
また、汎用CPUでも動作する軽量モデルであり、クラウドの大規模リソースに依存せず商品画像が数百万枚規模に増えても運用コストが線形に膨張しにくく、
事業のスケールに耐える基盤設計
が可能となります。
6.1 手法の要約
本手法は、次の 3 つの設計判断によって成り立っています。
- 軽量モデルの選定 : 精度とコストのトレードオフを崩す候補として SigLIP 2(Base サイズ・約 2 億パラメータ)を採用し、CPU 環境やエッジデバイスでの動作を可能にしました。
- 3 ステップ分類パイプライン : クラス定義の埋め込み(Step 1)、特徴量抽出と内積計算(Step 2)、クラスごとのシグモイド判定(Step 3)に役割を分離しました。これにより、ラベル追加が Step 1 のやり直しだけで済み、かつ複数の柄が混在する画像にもマルチラベルで対応できる構造を実現しています。
- 類義語の線形平均化 : 線形表現仮説を理論的根拠とし、専門用語の複数の埋め込みを平均化することで概念の「真の重心」を抽出し、原理に基づいた精度向上を実現しました。
6.2 定量評価の結論
10,400 枚の評価データによる検証の結果、 SigLIP 2 (384) が最もバランスの取れた性能を示しました。モデルの本質的な識別能力を測る ROC 最適化において F1 = 0.7570 、 AUC = 0.6788 を記録し、デファクトスタンダードである CLIP (ViT-L/14) を +4.9% の F1 で上回っています。画像サイズの比較からは、384 が精度と計算コストの最適なトレードオフ点であることも確認できました。軽量モデルでありながら従来手法を上回るという、本プロジェクトの狙いどおりの結果です。