CLIP (Contrastive Language-Image Pre-training)
ビジョンと言語を橋渡しするCLIP (Contrastive Language-Image Pre-training) を探索しましょう。ゼロショット学習を可能にし、Ultralytics YOLO26を強化する仕組みを学びます。
CLIP (Contrastive Language-Image Pre-training) は、視覚データと自然言語のギャップを埋める、OpenAIによって開発された革新的なneural networkアーキテクチャです。固定されたカテゴリのセットに対して多大な労力を要するdata labelingを必要とする従来のcomputer vision (CV)システムとは異なり、CLIPはインターネットから収集された何百万もの画像とテキストのペアでトレーニングを行うことで、画像の理解を学習します。このアプローチにより、モデルは、トレーニング中に明示的に見たことがないオブジェクト、概念、またはスタイルを、テキスト記述を読むだけで特定できるzero-shot learningを実行できます。視覚情報と言語情報を共有の機能空間にマッピングすることにより、CLIPは、タスク固有の広範なfine-tuningを必要とせずに、さまざまなダウンストリームタスクのための強力なfoundation modelとして機能します。
アーキテクチャの仕組み#
CLIPのコアメカニズムには、通常Vision Transformer (ViT)またはResNetに基づく画像エンコーダーと、現代のlarge language models (LLMs)で使用されているものと同様のテキストTransformerという、2つの並列エンコーダーが含まれます。contrastive learningとして知られるプロセスを通じて、システムはバッチ内でどのテキストスニペットがどの画像と一致するかを予測するようにトレーニングされます。
トレーニング中、モデルは、一致する画像とテキストのペアのベクトルembeddingsを近づけ、一致しないペアを遠ざけるようにパラメータを最適化します。これにより、「ゴールデンレトリバー」の画像の数学的表現が「犬の写真」のテキスト埋め込みの近くに空間的に配置されるマルチモーダルなlatent spaceが作成されます。これらのベクトル間のcosine similarityを計算することにより、モデルは画像が自然言語のプロンプトにどれだけ対応しているかを定量化でき、柔軟なimage classificationと取得が可能になります。
実社会での応用#
視覚と言語を結びつける能力により、CLIPは現代のAIアプリケーションにおける中核的な技術となっています。
- インテリジェントなSemantic Search:CLIPを使用すると、ユーザーは複雑なnatural language processing (NLP)クエリを使用して大規模な画像データベースを検索できます。たとえば、AI in retailでは、買い物客が「ヴィンテージのフラワープリントのサマードレス」を検索し、画像にそれらの特定のメタデータタグが付いていなくても、視覚的に正確な結果を取得できます。これは多くの場合、高性能なvector databasesによって実現されています。
- 生成AIコントロール:Stable Diffusionなどのモデルは、ユーザープロンプトを解釈し、生成プロセスをガイドするためにCLIPに依存しています。CLIPは、生成された視覚的出力がテキスト記述とどれだけ一致しているかを評価するスコアラーとして機能し、これは高品質なtext-to-image合成に不可欠です。
- オープンボキャブラリーObject Detection:YOLO-Worldなどの高度なアーキテクチャは、CLIPの埋め込みを統合して、任意のテキスト入力に基づいてオブジェクトを検出します。これにより、再トレーニングを行うことなく、新しい機器や異常を特定する必要があるAI in healthcareなどの分野で動的な検出が可能になります。
UltralyticsでCLIP機能を使用する#
標準的なオブジェクト検出器はトレーニングクラスに限定されていますが、CLIPベースの機能を使用すると、オープンボキャブラリー検出が可能になります。次のPythonコードは、カスタムテキストプロンプトを使用してオブジェクトを検出するために ultralytics パッケージを使用する方法を示しています。
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パラダイムと区別すると役立ちます。
- CLIPとSupervised Learningの比較:従来の教師ありモデルでは、すべてのカテゴリ(「猫」、「車」など)に対して厳密な定義とラベル付きの例が必要です。CLIPは、ウェブ上で見つかる生のテキストと画像のペアから学習し、より高い柔軟性を提供し、Ultralytics Platformなどのツールで管理されることが多い手動アノテーションのボトルネックを解消します。
- CLIPとYOLO26の比較:CLIPが概念の一般化された理解を提供するのに対し、YOLO26は速度と正確なローカライズに最適化された特殊なリアルタイムオブジェクト検出器です。CLIPは多くの場合、特徴抽出器またはゼロショット分類器として使用されますが、YOLO26は本番環境での高速なreal-time inferenceのためのエンジンです。
- CLIPと標準的な対照学習の比較:SimCLRなどの手法は、通常、同じ画像の2つの拡張ビューを比較して特徴を学習します。CLIPは、画像とテキストの記述を対比させ、1つだけでなく2つの異なるデータモダリティを橋渡しします。






