Explore how CLIP bridges the gap between vision and language. Learn about zero-shot learning, contrastive image-text pairs, and using CLIP with [YOLO26](https://docs.ultralytics.com/models/yolo26/) for open-vocabulary detection.
CLIP(対照的言語-画像事前学習)は、 OpenAIが開発した画期的なニューラルネットワークアーキテクチャであり、 視覚データと自然言語の間の隔たりを埋めるものである。 従来のコンピュータビジョン(CV)システムが 固定されたカテゴリ群に対して 労力のかかるデータラベリングを必要とするのとは異なり、 CLIPはインターネットから収集した数百万の画像-テキストペアを用いて学習することで 画像を理解することを学ぶ。 このアプローチにより、モデルはゼロショット学習を実現します。つまり、トレーニング中に明示的に見たことのない物体、概念、スタイルを、テキスト記述を読むだけで識別できるのです。視覚情報と言語情報を共有特徴空間にマッピングすることで、CLIPは広範な下流タスクに対して、タスク固有の詳細な微調整を必要としない強力な基盤モデルとして機能します。
CLIPの中核メカニズムは、2つの並列エンコーダから構成される:画像エンコーダ(通常はVision Transformer(ViT) またはResNetに基づく)と、現代の大規模言語モデル(LLM)で使用されるものと類似したテキストTransformerである。対照学習と呼ばれるプロセスを通じて、システムはバッチ内のどのテキストスニペットがどの画像に一致するかを予測するよう訓練される。
学習中、モデルはパラメータを最適化し、一致する画像-テキストペアのベクトル埋め込みを互いに近づけつつ、不一致ペアを遠ざけます。これによりマルチモーダルな潜在空間が形成され、「ゴールデンレトリバー」の画像の数学的表現は「犬の写真」のテキスト埋め込みの空間的に近い位置に配置されます。 これらのベクトル間のコサイン類似度を計算することで、 モデルは画像が自然言語プロンプトにどれだけ適合しているかを定量化でき、 柔軟な画像分類と検索を可能にします。
視覚と言語を結びつける能力により、CLIPは現代のAIアプリケーションにおける基盤技術となった:
標準的な物体検出器は学習クラスに限定される一方、CLIPベースの特徴量を用いることで
オープンボキャブラリ検出が可能となる。以下の Python コードは、の使い方を示しています。
ultralytics カスタムテキストプロンプトを使用してdetect パッケージ:
from ultralytics import YOLOWorld
# Load a pre-trained YOLO-World model utilizing CLIP features
model = YOLOWorld("yolov8s-world.pt")
# Define custom classes using natural language text prompts
model.set_classes(["person wearing sunglasses", "red backpack"])
# Run inference on an image to detect the text-defined objects
results = model.predict("travelers.jpg")
# Display the results
results[0].show()
CLIPを他の一般的なAIパラダイムと区別することは、その特異的な有用性を理解する上で有益である: