YOLO-Worldを実際に試す
テキストプロンプトからオブジェクトを検出するリアルタイムのオープンボキャブラリー物体検出モデルYOLO-Worldについて、その用途と簡単なコード例とともに解説します。
Abirami Vina8 分で読めます
コンピュータビジョンプロジェクトでは、データのアノテーションや物体検出モデルのトレーニングに多くの時間を費やすことがよくあります。しかし、まもなく状況が変わるかもしれません。TencentのAI Labは2024年1月31日、リアルタイムのオープンボキャブラリー物体検出モデルであるYOLO-Worldをリリースしました。YOLO-Worldはゼロショットモデルです。つまり、トレーニングを行わなくても画像に対して物体検出の推論を実行できます。
ゼロショットモデルは、コンピュータービジョンアプリケーションへの取り組み方を変える可能性を秘めています。この記事では、YOLO-Worldの仕組みや想定される用途を解説し、すぐに試せる実用的なコード例を紹介します。
YOLO-Worldを詳しく見る#
YOLO-Worldモデルに、画像と、検出したい物体を説明するテキストプロンプトを渡すことができます。たとえば、写真の中から「赤いシャツを着た人」を見つけたい場合、YOLO-Worldはその入力を受け取り、処理を開始します。
このモデル独自のアーキテクチャは、次の3つの主要な要素を組み合わせています。
- 画像の視覚的な内容を分析する、Ultralytics YOLOv8物体検出モデルをベースにした検出器。
- OpenAIのCLIPによって事前学習されたテキストエンコーダーで、テキストプロンプトを理解するよう特別に設計されています。
- 処理済みの画像データとテキストデータを統合するネットワークである、再パラメーター化可能なビジョン・言語パス集約ネットワーク (RepVL-PAN)。
YOLO検出器は入力画像をスキャンし、物体の候補を特定します。テキストエンコーダーは、説明文をモデルが理解できる形式に変換します。その後、2つの情報ストリームは、マルチレベルのクロスモダリティ融合によってRepVL-PANで統合されます。これにより、YOLO-Worldはプロンプトで説明された物体を画像内で正確に検出し、位置を特定できます。

YOLO-Worldの結果の例。
YOLO-Worldを選ぶメリット#
YOLO-Worldを使用する最大のメリットの1つは、特定のクラス向けにモデルをトレーニングする必要がないことです。画像とテキストのペアからすでに学習しているため、説明に基づいて物体を見つける方法を把握しています。データ収集やアノテーション、高価なGPUでのトレーニングなどに何時間も費やす必要がありません。
YOLO-Worldを使用するその他のメリットは次のとおりです。
- リアルタイム性能 - YOLO-Worldは、従来のYOLOアーキテクチャと同様にリアルタイム性能をサポートします。自動運転車や監視システムなど、即時の物体検出が求められるアプリケーションに適しています。
- インスタンスセグメンテーション:初代YOLO-Worldにはセグメンテーションのバリアントが含まれています。UltralyticsパッケージではYOLO-Worldが検出を実行し、YOLOEがオープンボキャブラリーのインスタンスセグメンテーションに対応します。
- 効率性 - YOLO-Worldは、高い精度と計算効率を両立し、実環境でのアプリケーションに適しています。効率化されたアーキテクチャにより、処理能力に過度な負荷をかけずに、迅速な物体検出を実現できます。
YOLO-Worldの活用例#
YOLO-Worldモデルは、幅広い用途に活用できます。いくつかの例を見ていきましょう。
製造業における品質管理#
組み立てラインで製造された製品は、梱包前に目視で欠陥を検査します。欠陥検出は手作業で行われることが多く、時間がかかるうえ、ミスにつながる可能性があります。こうしたミスは、高いコストや修理・リコールの必要性などの問題を引き起こすことがあります。この課題に対応するため、検査を実行する専用のマシンビジョンカメラやAIシステムが開発されています。
YOLO-Worldモデルは、この分野における大きな進歩です。ゼロショット機能により、特定の問題向けにトレーニングされていなくても、製品の欠陥を検出できます。たとえば、ウォーターボトルを製造する工場では、YOLO-Worldを使って、キャップが正しく密封されたボトルと、キャップがない、または不良のボトルを区別できます。

ボトルキャップ検査の例。
ロボティクス#
YOLO-Worldモデルを使うと、ロボットは見慣れない環境でも動作できます。部屋にある可能性のある特定の物体についてトレーニングされていなくても、そこに何があるかを特定できます。たとえば、初めて入る部屋であっても、YOLO-Worldモデルを使えば、椅子やテーブル、ランプなどの物体を認識して特定できます。
YOLO-Worldは物体検出に加え、「プロンプトしてから検出」機能により、物体の状態も判定できます。たとえば農業ロボティクスでは、ロボットに果物を検出させるよう設定することで、熟した果物と未熟な果物を識別できます。
自動車業界におけるAI#
自動車業界では多くの部品が動作しており、YOLO-Worldはさまざまな自動車用途に活用できます。たとえば、自動車のメンテナンスでは、手作業によるタグ付けや大規模な事前学習なしで多種多様な物体を認識できるYOLO-Worldの機能が非常に役立ちます。YOLO-Worldを使って交換が必要な自動車部品を特定できます。新車の品質検査などを自動化し、欠陥や部品の不足を検出することもできます。
もう1つの用途は、自動運転車におけるゼロショット物体検出です。YOLO-Worldのゼロショット検出機能は、歩行者、交通標識、他の車両など、道路上の物体をリアルタイムで検出し、分類する自動運転車の能力を向上させる可能性があります。これにより、障害物の検出や事故の防止に役立ち、より安全な移動を実現できます。

道路上の物体検出の例。
小売店舗における在庫管理#
小売店の棚にある商品を識別することは、在庫の追跡、在庫水準の維持、プロセスの自動化において重要です。Ultralytics YOLO-Worldのオープンボキャブラリー検出は、在庫管理にも役立ちます。
たとえば、在庫管理では、YOLO-Worldを使って、棚に並ぶさまざまなブランドのエナジードリンクなどの商品をすばやく検出して分類できます。小売店舗は正確な在庫を維持し、在庫レベルを効率的に管理し、サプライチェーン業務を円滑に進められます。
ここで紹介した用途はどれも独自のもので、YOLO-Worldの幅広い活用可能性を示しています。次はYOLO-Worldを実際に使い、コード例を見ていきましょう。
コードの解説#
前述のとおり、YOLO-Worldは整備を目的とした自動車部品の検出に活用できます。修理が必要な箇所を検出するコンピュータービジョンアプリケーションでは、車の撮影、部品の特定、各部品の損傷検査、修理の推奨を行います。このシステムの各部分では、異なるAI技術やアプローチが使われます。今回のコード解説では、自動車部品を検出する部分に焦点を当てます。
YOLO-Worldを使えば、5分以内に画像内のさまざまな自動車部品を特定できます。このコードを拡張して、YOLO-Worldを使った別の用途も試せます。まずは、次のようにUltralyticsパッケージをpip installします。
pip install ultralyticsインストール手順やベストプラクティスの詳細については、Ultralyticsのインストールガイドをご覧ください。YOLOv8に必要なパッケージのインストール中に問題が発生した場合は、解決策やヒントを掲載したよくある問題のガイドをご確認ください。
必要なパッケージをインストールしたら、推論を実行するためにインターネットから画像をダウンロードします。以下の画像を使用します。

入力画像。
次に、必要なパッケージをインポートし、モデルを初期化して、入力画像内で検出するクラスを設定します。ここでは、車、ホイール、車のドア、車のミラー、ナンバープレートを対象とします。
次に、画像のパスと検出数の上限、intersection over union(IoU)、信頼度(conf)の閾値をパラメーターとして指定し、predictメソッドを使って画像に対する推論を実行します。最後に、検出された物体をresult.jpgという名前のファイルに保存します。
from ultralytics import YOLOWorld
# YOLO-Worldモデルを初期化します
model = YOLOWorld("yolov8s-worldv2.pt")
# 検出するカスタムクラスを定義します
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])
# 検出数の上限とIoUおよび信頼度の閾値を指定して推論を実行します
results = model.predict("path/to/image.jpg", max_det=100, iou=0.5, conf=0.25)
# アノテーション済みの結果を保存します
results[0].save("result.jpg")以下の出力画像がファイルに保存されます。

出力画像。
コーディングせずにYOLO-Worldの機能を試したい場合は、YOLO-World Demoページにアクセスし、入力画像をアップロードしてカスタムクラスを入力してください。
カスタムクラスを繰り返し入力せずに後から直接使えるよう、カスタムクラスを設定した状態でモデルを保存する方法については、YOLO-Worldのドキュメントをご覧ください。
車のドアが検出されていないことに気づきましたか?#
出力画像をもう一度見ると、カスタムクラスの「車のドア」が検出されていないことに気づくでしょう。YOLO-Worldは優れた成果を上げていますが、一定の制約もあります。こうした制約に対処し、YOLO-Worldモデルを効果的に使うには、適切な種類のテキストプロンプトを使うことが重要です。
そのためのヒントをいくつか紹介します。
- YOLO-Worldでは、正確な予測に高い信頼度が必要とは限りません。そのため、信頼度のしきい値を下げると検出率が向上する場合があります。
- 関心のないクラスを追加します。これにより、二次的な物体の誤検出を減らし、主要な物体検出の精度を向上できます。
- 小さな詳細に注目する前に、大きな物体を検出すると、検出精度が向上する場合があります。
- クラスに色を含めると、色の手がかりに基づいた物体検出が可能になります。
- プロンプトで物体のサイズを説明すると、YOLO-Worldが特定の物体をより正確に識別するのに役立つ場合があります。
- サイズに基づく予測のフィルタリングやクラスごとの信頼度の調整など、後処理の手法によって、物体検出の結果をさらに改善できます。
可能性は無限大です#
全体として、YOLO-Worldモデルは、高度な物体検出機能を備えた強力なツールとして活用できます。優れた効率と精度を実現し、実際に解説した自動車部品の特定の例のように、さまざまな用途の多様なタスクの自動化に役立ちます。
コンピュータビジョンとAIへの取り組みについて詳しく知りたい方は、GitHubリポジトリをご覧ください。ヘルスケア技術などの分野でAIがどのような変化をもたらしているかに関心がある方は、ソリューションページをご確認ください。YOLO-Worldは、ビジョンAIに多くの新たな可能性をもたらします。
執筆者
コメント
質問したり、結果を共有したり、ほかの人をサポートしたりできます。










