X
Ultralytics YOLOv8.2 リリースUltralytics YOLOv8.2 リリースUltralytics YOLOv8.2 リリース・アロー
グリーンチェック
クリップボードにコピーされたリンク

YOLO-World をハンズオンする

YOLO-World は、テキストプロンプトによってオブジェクトを識別できる革新的なオブジェクト検出モデルです。YOLO-World がどのように機能するのか、またその応用例について説明し、簡単なコード例で実際に操作してみましょう。

Facebookのロゴツイッターのロゴリンクトインのロゴコピー・リンク・シンボル

コンピューター・ビジョンのプロジェクトでは、データの注釈付けや物体検出モデルのトレーニングに多くの時間を費やすことが多い。しかし、それはすぐに過去のものになるかもしれない。テンセントのAIラボは2024年1月31日、リアルタイムのオープン語彙オブジェクト検出モデル、YOLO-Worldをリリースした。YOLO-Worldはゼロショット・モデルであり、学習させることなく画像上で物体検出推論を実行できる。

ゼロショット・モデルは、コンピュータ・ビジョン・アプリケーションへのアプローチ方法を変える可能性を秘めています。このブログでは、YOLO-Worldがどのように機能するのか、またその潜在的な用途について説明し、実践的なコード例を紹介します。

YOLO-世界を覗く

YOLO-Worldモデルに、画像と、探しているオブジェクトを説明するテキストプロンプトを渡すことができる。例えば、写真の中から「赤いシャツを着ている人」を探したい場合、YOLO-Worldはこの入力を受け取り、作業に取り掛かる。

このモデルのユニークな構造は、3つの主要要素を組み合わせたものである:

  • 物体検出モデルに基づく検出器 Ultralytics YOLOv8画像の視覚的内容を分析する物体検出モデル
  • OpenAIのCLIPによって事前に訓練されたテキストエンコーダは、特にあなたのテキストプロンプトを理解するように設計されています。 
  • 処理された画像データとテキストデータを統合するネットワーク、視覚言語パス集約ネットワーク(RepVL-PAN)。

YOLO 検出器は、入力画像をスキャンして潜在的なオブジェクトを識別します。テキストエンコーダは、入力された説明をモデルが理解できる形式に変換します。これらの2つの情報の流れは、マルチレベルのクロスモダリティフュージョンを使用して、RepVL-PANを介してマージされます。これにより、YOLO-Worldは、画像内のプロンプトに記述されたオブジェクトを正確に検出し、位置を特定することができます。

YOLO-Worldの結果の一例。

YOLO-ワールドを選ぶメリット

YOLO-Worldを使う最大の利点のひとつは、特定のクラスに対してモデルを訓練する必要がないことだ。すでに画像とテキストのペアから学習しているので、説明に基づいてオブジェクトを見つける方法を知っている。データの収集、データのアノテーション、高価なGPUでのトレーニングなどに何時間も費やす必要がありません。

YOLO-Worldを利用するその他の利点は以下の通り:

  • リアルタイム性能 -YOLO-Worldは、オリジナルのYOLO アーキテクチャと同様にリアルタイム性能をサポートしています。自律走行車や監視システムなど、即時の物体検出を必要とするアプリケーションに最適です。
  • インスタンス・セグメンテーション-YOLO-Worldは、トレーニング中に特に教えられなかったオブジェクトであっても、写真の中のオブジェクトの輪郭をきちんと描き、分離することができます。
  • 効率性 -YOLO-Worldは高い精度と計算効率を兼ね備えており、実世界のアプリケーションで実用的です。合理化されたアーキテクチャにより、処理能力を過度に要求することなく、迅速な物体検出が可能。

YOLO-世界のアプリケーション

YOLO-ワールドモデルはさまざまな用途に使用できる。そのいくつかを探ってみよう。

製造業における品質管理

組立ラインで製造された製品は、梱包前に目視で欠陥がないかチェックされる。欠陥の検出は手作業で行われることが多く、時間がかかり、ミスにつながることもある。こうしたミスは、コスト高や修理やリコールの必要性といった問題を引き起こす可能性がある。そこで、これらのチェックを行うための特別なマシンビジョンカメラやAIシステムが開発されている。 

YOLO-ワールドモデルはこの分野で大きな進歩を遂げた。ゼロ・ショット能力を使えば、特定の問題に対してトレーニングを受けていなくても、製品の欠陥を見つけることができる。例えば、水筒を製造している工場では、YOLO-Worldを使用することで、ボトルキャップで適切に密封されたボトルと、キャップが外れていたり、欠陥のあるボトルを簡単に識別することができる。

ボトルキャップ検査の例。

ロボット工学

YOLO-ワールドモデルは、ロボットが不慣れな環境と相互作用することを可能にする。部屋にある特定の物体について訓練されなくても、どのような物体が存在するかを識別することができる。例えば、ロボットが入ったことのない部屋に入ったとしよう。YOLO-World モデルでは、椅子、テーブル、ランプなどのオブジェクトを認識し、識別することができる。

物体検出に加えて、YOLO-Worldは、「プロンプト・トゥン・ディテクト」機能により、それらの物体の状態を判断することもできる。例えば、農業 ロボット工学の分野では、熟した果実と熟していない果実を識別するために、ロボットをプログラミングして検出することができる。

自動車産業におけるAI

自動車業界には多くの可動部品があり、YOLO-Worldはさまざまな自動車アプリケーションに使用できます。例えば、車のメンテナンスに関して言えば、YOLO-World が持つ、手作業によるタグ付けや大規模な事前学習なしに多種多様なオブジェクトを認識する能力は非常に有用です。YOLO-Worldは、交換が必要な車の部品を特定するために使用できる。品質チェックや、新車の欠陥や欠品の発見といった作業を自動化することもできるだろう。

もうひとつの用途は、自動運転車におけるゼロショット物体検出だ。YOLO-ワールドのゼロショット検出機能は、歩行者、交通標識、他の車両など、道路上の物体をリアルタイムで検出・分類する自律走行車の能力を向上させることができる。そうすることで、障害物を検知し、より安全な走行のための事故防止に役立てることができる。 

道路上の物体を検出する例。

小売店の在庫管理

小売店で棚に陳列された対象物を識別することは、在庫の追跡、在庫の管理、プロセスの自動化において重要な役割を果たします。Ultralytics YOLO-手作業によるタグ付けや大規模な事前トレーニングを必要とせず、さまざまな対象物を認識できるWorldの能力は、在庫管理に非常に役立ちます。 

例えば在庫管理では、YOLO-Worldは、異なるブランドのエナジードリンクなど、棚にある商品を素早く発見し、分類することができる。小売店は正確な在庫を管理し、在庫レベルを効率的に管理し、サプライチェーン業務を円滑に行うことができる。 

どのアプリケーションもユニークで、YOLO-Worldがいかに幅広く使えるかを示している。次に、YOLO-Worldを実際に使って、コーディングの例を見てみよう。

コード・ウォークスルー

前にも述べたように、YOLO-Worldは、メンテナンスのために車のさまざまな部品を検出するために使用することができます。修理が必要な箇所を検出するコンピュータ・ビジョン・アプリケーションは、車の写真を撮り、車の部品を特定し、車の各部分の損傷を調べ、修理を推奨する。このシステムのすべての部分で、異なるAI技術とアプローチが使用されます。このコード・ウォークスルーの目的上、車の部品が検出される部分に注目しましょう。

YOLO-Worldを使えば、5分以内に画像内のさまざまな車の部品を識別することができます。このコードを拡張して、YOLO-Worldを使った様々なアプリケーションを試すこともできる!始めるには、以下のようにUltralytics パッケージをpipでインストールする必要がある。

# Install ultralytics package
pip install ultralytics

インストールプロセスに関する詳しい説明やベストプラクティスについては、Ultralytics インストールガイドをご覧ください。YOLOv8 に必要なパッケージをインストールする際、何らかの問題が発生した場合は、解決策やヒントについてよくある問題ガイドをご覧ください。

必要なパッケージをインストールしたら、インターネットから画像をダウンロードして推論を実行することができる。ここでは以下の画像を使用する。

入力画像。

次に、必要なパッケージをインポートしてモデルを初期化し、入力画像で探しているクラスを設定します。ここでは、car、wheel、car door、car mirror、license plateに興味があります。

# Import YOLOWorld class from ultralytics module
from ultralytics import YOLOWorld

# Initialize the model with pre-trained weights
model = YOLOWorld('yolov8s-world')

# Set the classes you'd like to find in your image
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])

次にpredictメソッドを使い、画像のパスと、最大検出数、intersection over union (IoU)とconfidence (conf)のしきい値をパラメータとして与え、画像に対して推論を実行する。最後に、検出されたオブジェクトは'result.jpg'という名前のファイルに保存される。

# Run object detection for your custom classes on your image
results = model.predict('path_to_your_image.jpg', max_det=100, iou=0.01, conf=0.01)

# Save the results
results[0].save(filename='result.jpg')

以下の出力画像がファイルに保存されます。

出力イメージ。

コーディングなしでYOLO-Worldの機能をご覧になりたい場合は、YOLO-Worldのデモ・ページにアクセスして入力画像をアップロードし、カスタム・クラスを入力してください。 

YOLO-Worldのドキュメントページを読んで、カスタムクラスを繰り返し入力することなく、後で直接使用できるように、カスタムクラスとともにモデルを保存する方法を学んでください

車のドアは検知されなかった?

出力画像をもう一度見てみると、カスタムクラス「車のドア」が検出されていないことに気づくだろう。YOLO-Worldには、その偉大な功績にもかかわらず、ある種の制限があります。これらの制限と戦い、YOLO-Worldモデルを効果的に使用するには、正しいタイプのテキストプロンプトを使用することが重要です。 

それについての見識を紹介しよう:

  • YOLO-ワールドは正確な予測のために高い信頼度を必要としないかもしれないので、信頼度のしきい値を下げることで検出率を向上させることができる。
  • 興味のないクラスを追加する。二次オブジェクトの誤検出を減らし、一次オブジェクトの検出を改善するのに役立ちます。
  • 小さな細部に焦点を当てる前に、まず大きな物体を検出することで、検出精度を向上させることができる。
  • 色を手がかりに物体を検出するために、クラスで色について言及する。
  • プロンプトにオブジェクトのサイズを記述することは、YOLO-World が特定のオブジェクトをより正確に識別するのにも役立ちます。
  • サイズによる予測値のフィルタリングや、クラスごとの信頼度の調整などの後処理を行うことで、物体検出結果をさらに向上させることができる。

限界は無限大

全体として、YOLO-World モデルは、その高度なオブジェクト検出機能により、強力なツールにすることができる。これは、非常に効率的で正確であり、実際に説明した車の部品の識別の例のように、さまざまなアプリケーションにわたってさまざまなタスクを自動化するのに役立つ。

当社のGitHubリポジトリで、コンピュータビジョンとAIへの貢献の詳細をご覧ください。AIが医療 技術のような分野をどのように再構築しているか興味がある方は、当社のソリューションページをご覧ください。YOLO-Worldのようなイノベーションの可能性は無限大です!

AIの未来
を一緒に作りましょう!

機械学習の未来への旅を始めよう

このカテゴリの続きを読む