YOLO-Worldを実際に体験する
テキストプロンプトを通じて物体を識別できる革新的な物体検出モデル、YOLO-Worldについて学びましょう。YOLO-Worldの仕組みとそのアプリケーションを探索し、簡単なコード例で実際に体験してみてください。

コンピュータービジョンプロジェクトでは、データの注釈付けや物体検出モデルのトレーニングに多くの時間を費やすことがよくあります。しかし、それもまもなく過去のものになるかもしれません。TencentのAI Labは、2024年1月31日にリアルタイムのオープンボキャブラリー物体検出モデルであるYOLO-Worldをリリースしました。YOLO-Worldはゼロショットモデルであり、トレーニングを行わなくても画像に対して物体検出の推論を実行できることを意味します。
ゼロショットモデルには、コンピュータビジョンアプリケーションへの取り組み方を変える可能性があります。本ブログでは、YOLO-Worldの仕組みとその潜在的な用途を探求し、実践的なコード例を紹介します。
YOLO-Worldの概要#
YOLO-Worldモデルには、画像と、探したいオブジェクトを説明するテキストプロンプトを入力できます。例えば、「赤いシャツを着た人」を写真の中から見つけたい場合、YOLO-Worldはその入力を受け取って処理を開始します。
このモデルのユニークなアーキテクチャは、主に3つの要素で構成されています。
- Ultralytics YOLOv8物体検出モデルをベースにした検出器で、画像の視覚的コンテンツを分析します。
- OpenAIのCLIPによって事前トレーニングされたテキストエンコーダーで、ユーザーのテキストプロンプトを理解するように設計されています。
- 処理された画像データとテキストデータを統合するネットワーク、Vision-Language Path Aggregation Network (RepVL-PAN)です。
YOLO検出器は入力画像をスキャンして潜在的なオブジェクトを特定し、テキストエンコーダーはユーザーの説明をモデルが理解できる形式に変換します。これら2つの情報の流れは、RepVL-PANを通じてマルチレベルのクロスモーダリティ融合により統合されます。これにより、YOLO-Worldはプロンプトで説明されたオブジェクトを画像内で正確に検出し、位置を特定することができます。

YOLO-Worldによる結果の例です。
YOLO-Worldを選択するメリット#
YOLO-Worldを使用する最大の利点の1つは、特定のクラスのためにモデルをトレーニングする必要がないことです。既に画像とテキストのペアから学習済みであるため、説明に基づいてオブジェクトを見つける方法を理解しています。データの収集、注釈付け、高価なGPUでのトレーニングなどに費やす時間を削減できます。
YOLO-Worldを使用するその他のメリットを以下に挙げます。
- リアルタイムパフォーマンス - YOLO-Worldは、オリジナルのYOLOアーキテクチャと同様にリアルタイムパフォーマンスをサポートしています。自動運転車や監視システムなど、即時のオブジェクト検出を必要とするアプリケーションに最適です。
- インスタンスセグメンテーション - YOLO-Worldは、画像内の物体がトレーニング中に特に教えられていなかったものであっても、きれいに輪郭を描いて分離することができます。
- 効率性 - YOLO-Worldは、高い精度と計算効率を両立しており、実世界のアプリケーションに適しています。その効率的なアーキテクチャにより、処理能力に過度な負荷をかけることなく迅速なオブジェクト検出を可能にします。
YOLO-Worldのアプリケーション#
YOLO-Worldモデルは多種多様なアプリケーションに使用できます。その一部を探ってみましょう。
製造業における品質管理#
組立ラインで製造された製品は、梱包する前に欠陥がないか目視で確認されます。欠陥の検出は多くの場合手作業で行われており、時間がかかり、ミスの原因になります。これらのミスは、高コストや修理・リコールの必要性などの問題を引き起こす可能性があります。これを支援するために、これらのチェックを行うための専用のマシンビジョンカメラやAIシステムが開発されています。
YOLO-Worldモデルは、この分野における大きな進歩です。ゼロショット能力により、特定の欠陥に対してトレーニングされていなくても、製品の欠陥を見つけることができます。例えば、水ボトルを製造する工場では、YOLO-Worldを使用して、ボトルキャップで適切に密封されたボトルと、キャップがなかったり不良品であったりするボトルを簡単に識別できます。

ボトルキャップ検査の例です。
ロボティクス#
YOLO-Worldモデルにより、ロボットは未知の環境でやり取りを行うことができます。部屋にある可能性のある特定のオブジェクトについてトレーニングされていなくても、どのようなオブジェクトが存在するかを特定できます。例えば、ロボットがこれまで入ったことのない部屋に入ったとします。YOLO-Worldモデルを使用すれば、そのアイテムについて特別にトレーニングされていなくても、椅子、テーブル、ランプなどのオブジェクトを認識して特定できます。
物体検出に加えて、YOLO-Worldは「プロンプトしてから検出する(prompt-then-detect)」機能のおかげで、それらの物体の状態を判断することもできます。たとえば、農業用ロボットにおいては、ロボットにそれらを検出するようにプログラミングすることで、熟した果物と熟していない果物を識別するために使用できます。
自動車業界における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を使用したさまざまなアプリケーションを試すこともできます!開始するには、以下に示すようにpipを使用してUltralyticsパッケージをインストールする必要があります。
インストールの手順に関する詳細な説明とベストプラクティスについては、Ultralyticsインストールガイドをご確認ください。YOLOv8に必要なパッケージをインストールする際に問題が発生した場合は、解決策とヒントについてよくある質問ガイドをご覧ください。
必要なパッケージをインストールしたら、インターネットから画像をダウンロードして推論を実行できます。ここでは以下の画像を使用します。

入力画像です。
次に、必要なパッケージをインポートし、モデルを初期化して、入力画像内で探したいクラスを設定します。ここでは、car、wheel、car door、car mirror、license plateというクラスに注目します。
その後、predictメソッドを使用して、画像のパス、最大検出数、Intersection over Union (IoU)および信頼度(conf)のしきい値のパラメーターを指定し、画像に対する推論を実行します。最後に、検出されたオブジェクトが'result.jpg'という名前のファイルに保存されます。
以下の出力画像がファイルに保存されます。

出力画像です。
コーディングなしでYOLO-Worldの機能を試したい場合は、YOLO-Worldのデモページにアクセスして入力画像をアップロードし、カスタムクラスを入力してください。
YOLO-Worldに関するドキュメントページを読んで、カスタムクラスを繰り返し入力しなくても後で直接使用できるように、カスタムクラスを指定してモデルを保存する方法を学びましょう。
車のドアが検出されなかったことに気づきましたか?#
出力画像をもう一度見ると、カスタムクラス「car door」が検出されなかったことがわかります。素晴らしい成果がある一方で、YOLO-Worldにはいくつかの制限があります。これらの制限に対処し、YOLO-Worldモデルを効果的に使用するには、適切な種類のテキストプロンプトを使用することが重要です。
そのためのヒントをいくつか紹介します。
- YOLO-Worldは正確な予測のために高い信頼度レベルを必要としない場合があるため、信頼度のしきい値を下げると検出率が向上することがあります。
- 興味のないクラスを追加します。これにより、二次的な物体の誤検出を減らし、主要な物体検出の精度を向上させることができます。
- 小さな詳細に焦点を当てる前に大きなオブジェクトを検出することで、検出精度が向上する場合があります。
- クラスに色を含めると、色の手がかりに基づいてオブジェクトを検出できます。
- プロンプトでオブジェクトのサイズを記述することも、YOLO-Worldが特定のオブジェクトをより正確に特定するのに役立ちます。
- サイズによる予測のフィルタリングや、クラスごとの信頼度レベルの調整といった後処理手法により、オブジェクト検出の結果をさらに改善できます。
可能性は無限大です#
全体として、YOLO-Worldモデルは高度な物体検出機能を備えた強力なツールになり得ます。優れた効率性と精度を提供し、私たちが実際に議論した自動車部品の識別の例のように、さまざまなアプリケーションにわたってさまざまなタスクを自動化するのに役立ちます。
コンピュータービジョンとAIへの私たちの貢献の詳細については、お気軽にGitHubリポジトリを探索してください。AIがヘルスケア技術などの分野をどのように変革しているかについて興味がある場合は、ソリューションページをご覧ください。YOLO-Worldのような革新技術の可能性は無限にあるようです!






