コンテンツへスキップ

インタラクティブなオブジェクト検出:Gradio &Ultralytics YOLOv8 🚀。

インタラクティブ物体検出入門

このGradioのインターフェイスは、モデルを使ってオブジェクト検出を行う簡単でインタラクティブな方法を提供する。 Ultralytics YOLOv8モデルを使用してオブジェクト検出を実行する簡単でインタラクティブな方法を提供します。ユーザーは画像をアップロードし、信頼度閾値やIoU(Intersection-over-union)閾値のようなパラメータを調整し、リアルタイムの検出結果を得ることができます。



見るんだ: グラディオとの統合Ultralytics YOLOv8

なぜオブジェクト検出にGradioを使うのか?

  • ユーザーフレンドリーなインターフェース:Gradioは、ユーザーが画像をアップロードし、コーディングなしで検出結果を視覚化するための簡単なプラットフォームを提供します。
  • リアルタイム調整:信頼度やIoUしきい値などのパラメータをその場で調整できるため、検出結果の即時フィードバックと最適化が可能です。
  • 幅広いアクセシビリティ:グラディオのウェブ・インターフェースは、誰でもアクセスできるため、デモンストレーションや教育目的、迅速な実験に最適なツールです。

Gradioのスクリーンショット

グラディオのインストール方法

pip install gradio

インターフェースの使い方

  1. 画像のアップロードUpload Image'をクリックして、オブジェクト検出用の画像ファイルを選択します。
  2. パラメータを調整する:
    • 信頼しきい値:オブジェクトを検出するための最小信頼レベルを設定するスライダ。
    • IoUしきい値:異なるオブジェクトを区別するためのIoUしきい値を設定するスライダー。
  3. 結果を表示します:検出されたオブジェクトとそのラベルを含む処理された画像が表示されます。

使用例

  • サンプル画像1:デフォルトの閾値でのバス検出。
  • サンプル画像2:デフォルトの閾値でスポーツ画像を検出。

使用例

このセクションでは、Ultralytics YOLOv8 モデルで Gradio インターフェースを作成するために使用されるPython コードを提供します。分類タスク、検出タスク、セグメンテーションタスク、キーポイントタスクをサポートする。

import gradio as gr
import PIL.Image as Image

from ultralytics import ASSETS, YOLO

model = YOLO("yolov8n.pt")


def predict_image(img, conf_threshold, iou_threshold):
    """Predicts objects in an image using a YOLOv8 model with adjustable confidence and IOU thresholds."""
    results = model.predict(
        source=img,
        conf=conf_threshold,
        iou=iou_threshold,
        show_labels=True,
        show_conf=True,
        imgsz=640,
    )

    for r in results:
        im_array = r.plot()
        im = Image.fromarray(im_array[..., ::-1])

    return im


iface = gr.Interface(
    fn=predict_image,
    inputs=[
        gr.Image(type="pil", label="Upload Image"),
        gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
        gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"),
    ],
    outputs=gr.Image(type="pil", label="Result"),
    title="Ultralytics Gradio",
    description="Upload images for inference. The Ultralytics YOLOv8n model is used by default.",
    examples=[
        [ASSETS / "bus.jpg", 0.25, 0.45],
        [ASSETS / "zidane.jpg", 0.25, 0.45],
    ],
)

if __name__ == "__main__":
    iface.launch()

パラメータの説明

パラメータ名 タイプ 説明
img Image 物体検出を行う画像。
conf_threshold float 物体を検出するための信頼閾値。
iou_threshold float 物体分離のための交差-結合閾値。

グラディオ・インターフェース・コンポーネント

コンポーネント 説明
画像入力 検出のために画像をアップロードする。
スライダー 信頼度とIoUのしきい値を調整する。
画像出力 検出結果を表示するには

よくあるご質問

Ultralytics YOLOv8 、オブジェクト検出のためにGradioを使用するには?

Ultralytics YOLOv8 で Gradio をオブジェクト検出に使用するには、以下の手順に従います:

  1. グラディオをインストールする: コマンドを使用する pip install gradio.
  2. インターフェイスを作成する: Python 、Gradioインターフェースを初期化するスクリプトを記述する。詳細はドキュメントにあるコード例を参照してください。
  3. アップロードと調整:画像をアップロードし、Gradioのインターフェイス上で信頼度とIoUのしきい値を調整すると、リアルタイムのオブジェクト検出結果が得られます。

参考のために最小限のコード・スニペットを示す:

import gradio as gr

from ultralytics import YOLO

model = YOLO("yolov8n.pt")


def predict_image(img, conf_threshold, iou_threshold):
    results = model.predict(
        source=img,
        conf=conf_threshold,
        iou=iou_threshold,
        show_labels=True,
        show_conf=True,
    )
    return results[0].plot() if results else None


iface = gr.Interface(
    fn=predict_image,
    inputs=[
        gr.Image(type="pil", label="Upload Image"),
        gr.Slider(minimum=0, maximum=1, value=0.25, label="Confidence threshold"),
        gr.Slider(minimum=0, maximum=1, value=0.45, label="IoU threshold"),
    ],
    outputs=gr.Image(type="pil", label="Result"),
    title="Ultralytics Gradio YOLOv8",
    description="Upload images for YOLOv8 object detection.",
)
iface.launch()

Ultralytics YOLOv8 オブジェクト検出のためにGradioを使用する利点は何ですか?

Ultralytics YOLOv8 オブジェクト検出のためにGradioを使用すると、いくつかの利点があります:

  • ユーザーフレンドリーなインターフェース:Gradioは、ユーザーがコーディング作業なしで画像をアップロードし、検出結果を視覚化するための直感的なインターフェイスを提供します。
  • リアルタイム調整:信頼度やIoUしきい値などの検出パラメータを動的に調整し、その効果を即座に確認できます。
  • アクセシビリティウェブ・インターフェイスは誰でもアクセス可能で、簡単な実験や教育目的、デモンストレーションに便利です。

詳しくはこちらのブログ記事をご覧いただきたい。

Gradio とUltralytics YOLOv8 を教育目的で一緒に使うことはできますか?

そう、GradioとUltralytics YOLOv8 、教育目的で効果的に一緒に活用することができる。Gradioの直感的なウェブインターフェースにより、学生や教育者は高度なプログラミングスキルを必要とせずに、Ultralytics YOLOv8 のような最先端のディープラーニングモデルと簡単に対話することができます。Gradioは、検出性能に対するさまざまなパラメータの影響を理解するのに役立つ即時の視覚的フィードバックを提供するため、このセットアップは、物体検出とコンピュータビジョンの重要な概念を示すのに理想的です。

YOLOv8 、Gradioのインターフェイスで信頼度とIoUのしきい値を調整するには?

YOLOv8 の Gradio インターフェースでは、提供されているスライダーを使用して、信頼度と IoU のしきい値を調整できます。これらの閾値は、予測精度とオブジェクトの分離を制御するのに役立ちます:

  • 信頼しきい値:オブジェクトを検出するための最小信頼レベルを決定します。スライドして必要な信頼度を増減する。
  • IoUしきい値:重なり合っているオブジェクトを区別するための、交差と統合のしきい値を設定します。この値を調整することで、オブジェクトの分離を精密にすることができます。

これらのパラメータの詳細については、パラメータの説明セクションをご覧ください。

Ultralytics YOLOv8 、Gradioを使った実用的なアプリケーションにはどのようなものがありますか?

Ultralytics YOLOv8 とグラディオを組み合わせた実用的なアプリケーションには、以下のようなものがある:

  • リアルタイム物体検出デモンストレーション:オブジェクト検出がリアルタイムでどのように機能するかを紹介するのに最適です。
  • 教育ツール:物体検出やコンピュータビジョンの概念を教える学術的な場面で役立つ。
  • プロトタイプ開発:物体検出アプリケーションのプロトタイプを迅速に開発し、テストするために効率的です。
  • コミュニティとコラボレーション:フィードバックやコラボレーションのために、コミュニティとモデルを簡単に共有できるようにする。

同様の使用例については、Ultralytics ブログをご覧ください。

Ultralytics YOLOv8 のユーザビリティとアクセシビリティを向上させ、あらゆるレベルの専門知識を持つユーザーにとって、より親しみやすいものとする。



作成日:2024-02-01 更新日:2024-07-05
著者:glenn-jocher(6),ambitious-octopus(1),IvorZhu331(1),RizwanMunawar(1)

コメント