コンテンツへスキップ

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

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

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

なぜオブジェクト検出に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 and plots labeled objects in an image using 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のしきい値を調整する。
画像出力 検出結果を表示するには


作成日:2024-02-01 更新日:2024-05-18
著者:glenn-jocher(3),RizwanMunawar(1)

コメント