Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

CLIP (Contrastive Language-Image Pre-training)

CLIPは、画像とテキストを共通の空間に埋め込むOpenAIのモデルで、プレーンテキストのラベルによる画像分類を可能にします。学習方法とゼロショットの仕組みを解説します。

CLIP(対照型言語画像事前学習)は、画像とそのテキスト説明の対応関係を学習するOpenAIのモデルです。画像エンコーダーとテキストエンコーダーを組み合わせ、画像とその説明文が共通の埋め込み空間内で近いベクトルになるように、両方を学習させます。インターネットから収集した4億組の画像とキャプションで学習したCLIPは、カテゴリのラベル付き例がなくても、テキストだけで画像を分類できます。この能力はゼロショット学習と呼ばれます。2021年の論文では、CLIPの最良モデルがImageNetのゼロショットtop-1精度で76.2%を達成しました。これは、ResNet-50が学習に使った128万枚のラベル付き画像を一切使わずに、元の完全教師ありResNet-50に匹敵する結果です。

CLIPの学習方法#

CLIPには2つのエンコーダーがあります。画像エンコーダーはResNetまたはVision Transformer(ViT)で、テキストエンコーダーは基本サイズで6,300万個のパラメーターを持つ12層のTransformerです。線形射影によって各エンコーダーの出力を共通の空間に写像し、すべてのベクトルを単位長に正規化します。

学習では、32,768組の画像とキャプションからなるバッチを使った対照学習を行います。N組のペアからなるバッチについて、CLIPはすべての画像とすべてのキャプションのコサイン類似度を計算し、対角成分に正しいペアが並ぶN×N行列を作ります。各行に対するsoftmax交差エントロピー損失は、各画像がN個の中から対応するキャプションを選ぶように促します。さらに、各列に対する2つ目の損失は、各キャプションが対応する画像を選ぶように促します。学習可能な温度パラメーターによって、softmaxの前に類似度をスケーリングします。

キャプションは自由形式のテキストであるため、CLIPは固定のクラス一覧ではなく、ウェブ上で説明されているあらゆるものから学習します。これには、物体、風景、アートスタイル、画像内の文字、動作が含まれます。

ゼロショット分類#

画像を分類する際、CLIPは「a photo of a dog」のような短い文として各候補ラベルを埋め込み、画像も埋め込み、コサイン類似度が最も高いラベルを選びます。プロンプトの表現は重要です。論文によると、「A photo of a {label}.」というテンプレートだけでImageNetの精度が1.3%向上し、80種類のテンプレートのテキスト埋め込みを平均すると、さらに3.5%向上しました。以下のHugging Face Transformersパイプラインは、各ラベルを「This is a photo of {}.」というテンプレートに当てはめ、元のViT-B/32モデルを実行します。

from transformers import pipeline

# Load OpenAI's CLIP ViT-B/32 for zero-shot image classification
classifier = pipeline("zero-shot-image-classification", model="openai/clip-vit-base-patch32")

# The classes are free-form text, chosen at inference time
labels = ["a city bus", "a tram", "a delivery truck", "a bicycle"]
predictions = classifier("https://ultralytics.com/images/bus.jpg", candidate_labels=labels)

# Scores are a softmax over the image's similarity to each caption
for prediction in predictions:
    print(f"{prediction['label']}: {prediction['score']:.3f}")

a city bus: 0.657、a tram: 0.341、a delivery truck: 0.001、a bicycle: 0.000が出力されます。残りの確率のほぼすべては、もう1つの大型乗用車である路面電車が占めます。新しいラベルセットが必要な場合は、文字列のリストを新しく用意するだけです。

実際のアプリケーション#

  • セマンティック検索:画像コレクションを一度埋め込み、ベクトルデータベースに保存します。「木の床にある赤いスニーカー」のようなテキストクエリは、検索時に埋め込んで保存済みの画像と照合するため、手動でタグを付けなくても内容に基づいて画像を見つけられます。
  • テキストからの画像生成:Stable Diffusion 1.xは、CLIP ViT-L/14のテキスト埋め込みを画像生成の条件として用います。また、生成画像がプロンプトにどの程度忠実かを評価するために、CLIPの類似度が広く使われています。
  • オープンボキャブラリー検出: Ultralyticsパッケージで動作するTencent AI LabのYOLO-Worldモデルは、set_classesに渡されたクラス名をCLIPのViT-B/32テキストエンコーダーでエンコードします。そのため、1度学習した検出器で「赤いバックパック」や「フォークリフト」を名前で検出できます。GoogleのOWLv2は、CLIPの事前学習済み画像・テキストエンコーダーを基盤とし、VLM Leaderboardでは、実世界の検出データセットで他のオープンボキャブラリー検出器やVLMと比較します。
  • VLM向けビジョンエンコーダー:多くの視覚言語モデルは、学習済みのCLIP画像エンコーダーをベースにしています。たとえばLLaVAは、CLIP ViT-L/14の特徴量を言語モデルに入力します。
  • データセットのフィルタリング:LAION-5Bなどの大規模なオープン画像・テキストデータセットでは、CLIPの画像・テキスト類似度がしきい値を超えるウェブ上のペアだけを残し、画像の内容を説明していないキャプションを取り除きます。
  • 教師あり学習による分類器:標準的な分類器は学習クラスごとに1つの出力を持ち、学習時に見ていないクラスをスコア付けできません。CLIPの「分類器」はテキスト埋め込みの集合であるため、ラベルが変わるたびに変化します。
  • SigLIP:Googleの派生モデルであるSigLIPは、バッチ全体に適用するCLIPのsoftmaxを、画像とテキストの各ペアを個別に評価するシグモイド損失に置き換えています。これによりメモリ使用量が減り、小さいバッチサイズでの性能が向上します。
  • 自己教師あり対照学習:SimCLRなどの手法は、同じ画像に拡張を適用した2つのビューを対比し、画像だけから学習します。CLIPは2つのモダリティを対比することで、画像特徴量を単語と結び付けます。
  • 生成型VLM:CLIPは画像とテキストの類似度を評価しますが、キャプションの作成や質問への回答はできません。生成モデルは画像エンコーダーに言語モデルを接続します。画像エンコーダーには、CLIP自体のものが使われることもよくあります。

制限事項#

CLIPのゼロショット精度は、航空機や車種などの細分類、物体の数え上げ、距離の推定などの抽象的なタスクで低下します。また、ウェブ上のキャプションに含まれるバイアスも学習します。CLIPは画像内の文字を読み取るように学習しているため、文字に惑わされることがあります。OpenAIのマルチモーダルニューロン研究では、「iPod」と手書きされたラベルのあるリンゴが、iPodと分類されました。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう