コンテンツへスキップ

によるモデル予測Ultralytics YOLO

Ultralytics YOLO エコシステムと統合

はじめに

機械学習と コンピュータビジョンの世界では、視覚データから意味を見出すプロセスを「推論」または「予測」と呼びます。Ultralytics YOLO11 は、幅広いデータソースに対する高性能でリアルタイムの推論用に調整された、predict モードとして知られる強力な機能を提供します。



見るんだ: Ultralytics YOLO モデルからカスタムプロジェクトのアウトプットを抽出する方法。

実世界での応用

製造業 スポーツ 安全性
車両予備品検出 サッカー選手検出 落下検知
車両予備品検出 サッカー選手検出 落下検知

なぜ推論にUltralytics YOLO を使うのか?

ここでは、様々な推論ニーズに対してYOLO11 の predict モードを検討すべき理由を説明する:

  • 汎用性:画像、ビデオ、ライブストリームでさえも推論が可能。
  • パフォーマンス 精度を犠牲にすることなく、リアルタイムの高速処理を実現。
  • 使いやすさ:直感的なPython およびCLI インターフェースにより、迅速な展開とテストが可能。
  • 高いカスタマイズ性:様々な設定やパラメータにより、特定の要件に応じてモデルの推論動作を調整することができます。

予測モードの主な特徴

YOLO11の予測モードは、堅牢で多用途に使えるように設計されている:

  • 複数のデータソースの互換性:データが個々の画像、画像集、ビデオファイル、またはリアルタイムのビデオストリームのいずれであっても、予測モードでカバーできます。
  • ストリーミング・モード: のメモリ効率に優れたジェネレーターを生成するには、ストリーミング機能を使う。 Results オブジェクトを使用します。これを有効にするには stream=True をプレディクターの呼び出しメソッドに追加する。
  • バッチ処理:複数の画像やビデオフレームを一括して処理できるため、推論時間がさらに短縮される。
  • 統合が容易:柔軟なAPIにより、既存のデータパイプラインや他のソフトウェアコンポーネントと簡単に統合できます。

Ultralytics YOLO のPython リストを返す。 Results Python オブジェクトを生成する。 Results オブジェクトが stream=True は推論中にモデルに渡される:

予測する

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # pretrained YOLO11n model

# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"])  # return a list of Results objects

# Process results list
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk
from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")  # pretrained YOLO11n model

# Run batched inference on a list of images
results = model(["image1.jpg", "image2.jpg"], stream=True)  # return a generator of Results objects

# Process results generator
for result in results:
    boxes = result.boxes  # Boxes object for bounding box outputs
    masks = result.masks  # Masks object for segmentation masks outputs
    keypoints = result.keypoints  # Keypoints object for pose outputs
    probs = result.probs  # Probs object for classification outputs
    obb = result.obb  # Oriented boxes object for OBB outputs
    result.show()  # display to screen
    result.save(filename="result.jpg")  # save to disk

推論ソース

YOLO11 は、下表に示すように、推論のためにさまざまなタイプの入力ソースを処理することができる。ソースには、静止画像、ビデオ・ストリーム、さまざまなデータ形式が含まれる。この表は、各ソースが引数 stream=True ✅.ストリーミングモードは、すべてのフレームをメモリにロードする代わりに結果のジェネレーターを作成するため、ビデオやライブストリームを処理するのに有益です。

チップ

用途 stream=True 長い動画や大きなデータセットを処理する際に、メモリを効率的に管理する。いつ stream=Falseこの場合、すべてのフレームまたはデータポイントの結果がメモリに保存されるため、大きな入力に対してすぐに加算され、メモリ不足エラーが発生する可能性がある。これに対して stream=True ジェネレーターを使用し、現在のフレームまたはデータポイントの結果のみをメモリに保持することで、メモリ消費を大幅に削減し、メモリ不足の問題を防ぎます。

ソース タイプ 備考
イメージ 'image.jpg' str または Path 単一の画像ファイル。
URL 'https://ultralytics.com/images/bus.jpg' str 画像へのURL。
スクリーンショット 'screen' str スクリーンショットを撮る。
ピル Image.open('image.jpg') PIL.Image RGBチャンネルのHWCフォーマット。
オープンCV cv2.imread('image.jpg') np.ndarray BGRチャンネル付きHWCフォーマット uint8 (0-255).
ナンピー np.zeros((640,1280,3)) np.ndarray BGRチャンネル付きHWCフォーマット uint8 (0-255).
torch torch.zeros(16,3,320,640) torch.Tensor RGBチャンネルを持つBCHWフォーマット float32 (0.0-1.0).
シーエスブイ 'sources.csv' str または Path 画像、ビデオ、またはディレクトリへのパスを含むCSVファイル。
ビデオ 'video.mp4' str または Path MP4、AVIなどのビデオファイル。
ディレクトリ 'path/' str または Path 画像または動画を含むディレクトリへのパス。
グロブ 'path/*.jpg' str 複数のファイルにマッチするグロブ・パターン。複数のファイルにマッチさせるには * 文字をワイルドカードとして使用する。
ユーチューブ 'https://youtu.be/LNwODJXcvt4' str YouTubeビデオのURL。
ストリーム 'rtsp://example.com/media.mp4' str RTSP、RTMP、TCPなどのストリーミング・プロトコルのURL、またはIPアドレス。
マルチストリーム 'list.streams' str または Path *.streams テキストファイルで、1行につき1つのストリームURL、つまりバッチサイズ8で8つのストリームが実行される。
ウェブカメラ 0 int 推論を実行する接続されたカメラデバイスのインデックス。

以下に、各ソース・タイプを使用するためのコード例を示します:

予測ソース

画像ファイルに対して推論を実行する。

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define path to the image file
source = "path/to/image.jpg"

# Run inference on the source
results = model(source)  # list of Results objects

現在の画面の内容をスクリーンショットとして推論を実行する。

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define current screenshot as source
source = "screen"

# Run inference on the source
results = model(source)  # list of Results objects

URLを介してリモートでホストされている画像やビデオで推論を実行します。

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define remote image or video URL
source = "https://ultralytics.com/images/bus.jpg"

# Run inference on the source
results = model(source)  # list of Results objects

Python Imaging Library (PIL)で開いた画像に対して推論を実行する。

from PIL import Image

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Open an image using PIL
source = Image.open("path/to/image.jpg")

# Run inference on the source
results = model(source)  # list of Results objects

OpenCVで読み込んだ画像に対して推論を実行する。

import cv2

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Read an image using OpenCV
source = cv2.imread("path/to/image.jpg")

# Run inference on the source
results = model(source)  # list of Results objects

numpyの配列として表現された画像に対して推論を実行する。

import numpy as np

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Create a random numpy array of HWC shape (640, 640, 3) with values in range [0, 255] and type uint8
source = np.random.randint(low=0, high=255, size=(640, 640, 3), dtype="uint8")

# Run inference on the source
results = model(source)  # list of Results objects

として表現された画像に対して推論を実行する。 PyTorchtensor.

import torch

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Create a random torch tensor of BCHW shape (1, 3, 640, 640) with values in range [0, 1] and type float32
source = torch.rand(1, 3, 640, 640, dtype=torch.float32)

# Run inference on the source
results = model(source)  # list of Results objects

CSVファイルにリストされた画像、URL、動画、ディレクトリのコレクションに対して推論を実行します。

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define a path to a CSV file with images, URLs, videos and directories
source = "path/to/file.csv"

# Run inference on the source
results = model(source)  # list of Results objects

ビデオファイルで推論を実行する。を使用して stream=Trueを使えば、結果オブジェクトのジェネレーターを作成してメモリ使用量を減らすことができる。

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define path to video file
source = "path/to/video.mp4"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

ディレクトリ内のすべての画像と動画に対して推論を実行する。サブディレクトリ内の画像や動画もキャプチャするには、グロブパターンを使う。 path/to/dir/**/*.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define path to directory containing images and videos for inference
source = "path/to/dir"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

というグロブ表現にマッチするすべての画像と動画に対して推論を実行する。 * の文字がある。

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define a glob search for all JPG files in a directory
source = "path/to/dir/*.jpg"

# OR define a recursive glob search for all JPG files including subdirectories
source = "path/to/dir/**/*.jpg"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

YouTube動画で推論を実行。以下の方法で stream=Trueまた、Resultsオブジェクトのジェネレーターを作成することで、長い動画のメモリ使用量を減らすことができます。

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Define source as YouTube video URL
source = "https://youtu.be/LNwODJXcvt4"

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

ストリームモードを使用して、RTSP、RTMP、TCP、またはIPアドレスプロトコルを使用するライブビデオストリームで推論を実行する。単一のストリームが提供された場合、モデルは バッチサイズ 複数ストリームの場合は .streams バッチ・サイズは、提供されたストリームの数によって決定される(たとえば、8ストリームの場合はバッチ・サイズ8)。

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Single stream with batch-size 1 inference
source = "rtsp://example.com/media.mp4"  # RTSP, RTMP, TCP, or IP streaming address

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

シングルストリームを使用する場合、バッチサイズはデフォルトで1に設定され、ビデオフィードの効率的なリアルタイム処理が可能になります。

複数のビデオストリームを同時に処理するには .streams ストリーミング・ソースを含むテキスト・ファイル。モデルはバッチ推論を実行し、バッチサイズはストリーム数に等しい。この設定により、複数のフィードを同時に効率的に処理できる。

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Multiple streams with batched inference (e.g., batch-size 8 for 8 streams)
source = "path/to/list.streams"  # *.streams text file with one streaming address per line

# Run inference on the source
results = model(source, stream=True)  # generator of Results objects

.streams テキストファイル:

rtsp://example.com/media1.mp4
rtsp://example.com/media2.mp4
rtmp://example2.com/live
tcp://192.168.1.100:554
...

ファイル内の各行はストリーミング・ソースを表し、複数のビデオ・ストリームを一度にモニターし、推論を実行することができる。

接続されたカメラ・デバイスで推論を実行するには、特定のカメラのインデックスを source.

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on the source
results = model(source=0, stream=True)  # generator of Results objects

推論

model.predict() は、推論時にデフォルトを上書きするために渡すことができる複数の引数を受け付ける:

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on 'bus.jpg' with arguments
model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.5)

推論引数:

議論 タイプ デフォルト 説明
source str 'ultralytics/assets' 推論のデータソースを指定します。画像パス、ビデオファイル、ディレクトリ、URL、またはライブフィードのデバイスIDを指定できます。幅広いフォーマットとソースをサポートしているため、さまざまなタイプの入力に柔軟に対応できます。
conf float 0.25 検出の最小信頼度しきい値を設定します。この閾値以下の信頼度で検出されたオブジェクトは無視されます。この値を調整することで、誤検出を減らすことができます。
iou float 0.7 Non-Maximum Suppression (NMS)のIntersection Over Union(IoU)しきい値。値が低いほど、重複するボックスが排除されるため検出数が少なくなり、重複を減らすのに便利です。
imgsz int または tuple 640 推論のための画像サイズを定義する。単一の整数値 640 正方形にリサイズする場合、または(高さ、幅)のタプルを使用します。適切なサイジングは検出を向上させる 精度 と処理速度。
half bool False 半精度(FP16)推論が可能になり、サポートされているGPUでのモデル推論を、精度への影響を最小限に抑えながら高速化することができます。
device str None 推論を行うデバイスを指定する(例. cpu, cuda:0 または 0).CPU 、特定のGPU 、またはモデル実行用の他のコンピュート・デバイスを選択することができます。
batch int 1 推論のバッチ・サイズを指定する(ソースが ディレクトリ、ビデオファイル、または .txt ファイル).バッチサイズが大きいほど、推論に必要な総時間を短縮し、高いスループットを提供できる。
max_det int 300 画像あたりの最大検出数。1回の推論でモデルが検出できるオブジェクトの総数を制限し、密集したシーンでの過剰な出力を防ぎます。
vid_stride int 1 ビデオ入力のフレームストライド。時間的な解像度を犠牲にして処理を高速化するために、ビデオのフレームをスキップできるようにする。1の値はすべてのフレームを処理し、それ以上の値はフレームをスキップする。
stream_buffer bool False ビデオストリームの受信フレームをキューに入れるかどうかを決定する。もし Falseリアルタイム・アプリケーション用に最適化されている)。もし Trueしかし、推論のFPSがストリームのFPSより低い場合、遅延が発生する。
visualize bool False 推論中にモデルの特徴を可視化し、モデルが何を「見て」いるのかを知ることができます。デバッグやモデルの解釈に役立ちます。
augment bool False 予測に対するテスト時間拡張(TTA)を可能にし、推論速度を犠牲にすることで検出のロバスト性を向上させる可能性がある。
agnostic_nms bool False 異なるクラスのオーバーラップしたボックスをマージする、クラスにとらわれない非最大抑制(NMS)を有効にします。クラスの重複が一般的なマルチクラス検出シナリオで役立ちます。
classes list[int] None クラス ID のセットに予測をフィルタリングします。指定されたクラスに属する検出のみが返されます。複数クラスの検出タスクで、関連するオブジェクトに焦点を当てるのに便利です。
retina_masks bool False 高解像度のセグメンテーションマスクを返します。返されるマスク (masks.data)が有効なら、元の画像サイズと一致する。無効にすると、推論時に使われた画像サイズになります。
embed list[int] None 特徴ベクトルまたは埋め込みを抽出するレイヤを指定します。クラスタリングや類似検索のような下流のタスクに便利です。
project str None 以下の場合、予測出力が保存されるプロジェクト・ディレクトリの名前。 save が有効になっている。
name str None 予測ランの名前。プロジェクト・フォルダ内にサブ・ディレクトリを作成するために使用されます。 save が有効になっている。
stream bool False すべてのフレームを一度にメモリにロードするのではなく、Resultsオブジェクトのジェネレーターを返すことで、長いビデオや多数の画像のメモリ効率的な処理を可能にします。
verbose bool True ターミナルに詳細な推論ログを表示し、予測プロセスに関するリアルタイムのフィードバックを提供するかどうかを制御します。

可視化の引数:

議論 タイプ デフォルト 説明
show bool False もし True注釈付きの画像やビデオをウィンドウに表示します。開発中やテスト中の即時の視覚的フィードバックに便利です。
save bool False or True 注釈付きの画像や動画をファイルに保存できます。文書化、さらなる分析、結果の共有に便利です。デフォルトは、CLI の場合は True、Python の場合は False です。
save_frames bool False 動画を処理する際、個々のフレームを画像として保存します。特定のフレームを抽出したり、フレームごとの詳細な分析に便利です。
save_txt bool False 検出結果をテキストファイルに保存します。 [class] [x_center] [y_center] [width] [height] [confidence].他の分析ツールとの統合に便利。
save_conf bool False 保存されたテキストファイルに信頼度スコアが含まれます。後処理や分析に利用できる詳細な情報が強化されます。
save_crop bool False 検出画像をトリミングして保存します。データセットの補強や分析、特定の対象物に特化したデータセットの作成に便利です。
show_labels bool True 視覚出力に各検出のラベルを表示。検出されたオブジェクトを即座に理解できます。
show_conf bool True 各検出の信頼スコアがラベルと一緒に表示されます。各検出に対するモデルの確信度を示します。
show_boxes bool True 検出されたオブジェクトの周囲にバウンディングボックスを描画します。画像やビデオフレーム内のオブジェクトを視覚的に識別し、位置を特定するために不可欠です。
line_width None or int None バウンディングボックスの線幅を指定します。もし None線幅は画像サイズに応じて自動的に調整されます。視覚的にわかりやすくカスタマイズできます。
font_size float None 注釈のテキストフォントサイズ。に設定すると、画像サイズに合わせて自動的に拡大縮小されます。 None.
font str 'Arial.ttf' 可視化のテキスト注釈のフォント名またはパス。
pil bool False 画像をnumpy配列ではなくPIL Imageオブジェクトとして返す。
kpt_radius int 5 ポーズ推定結果を可視化する際のキーポイントの半径。
kpt_line bool True ポーズ推定を視覚化する際、キーポイントを線で結ぶ。
masks bool True 可視化出力にセグメンテーションマスクを表示する。
probs bool True 視覚化に分類確率を含める。
filename str None 注釈付き画像を保存する際のパスとファイル名。 save=True.
color_mode str 'class' インスタンス」や「クラス」など、ビジュアライゼーションのカラーリングモードを指定する。
txt_color tuple[int, int, int] (255, 255, 255) 分類タスク注釈のRGBテキスト色。

画像とビデオのフォーマット

YOLO11 ultralytics/data/utils.py で指定されているように、様々な画像やビデオフォーマットをサポートしています。有効な接尾辞と予測コマンド例については以下の表を参照してください。

画像

以下の表は、有効なUltralytics 画像フォーマットを示しています。

HEIC画像は推論のみにサポートされ、トレーニングには使用できません。

画像の接尾辞 予測コマンドの例 参考
.bmp yolo predict source=image.bmp Microsoft BMPファイル形式
.dng yolo predict source=image.dng アドビDNG
.jpeg yolo predict source=image.jpeg ジェイペグ
.jpg yolo predict source=image.jpg ジェイペグ
.mpo yolo predict source=image.mpo マルチピクチャーオブジェクト
.png yolo predict source=image.png ポータブル・ネットワーク・グラフィックス
.tif yolo predict source=image.tif タグ画像ファイル形式
.tiff yolo predict source=image.tiff タグ画像ファイル形式
.webp yolo predict source=image.webp ウェブピー
.pfm yolo predict source=image.pfm ポータブル・フロートマップ
.HEIC yolo predict source=image.HEIC 高効率画像フォーマット

ビデオ

以下の表には、有効なUltralytics ビデオフォーマットが記載されています。

ビデオの接尾辞 予測コマンドの例 参考
.asf yolo predict source=video.asf アドバンスト・システムズ・フォーマット
.avi yolo predict source=video.avi オーディオ・ビデオ・インターリーブ
.gif yolo predict source=video.gif グラフィックス交換フォーマット
.m4v yolo predict source=video.m4v MPEG-4パート14
.mkv yolo predict source=video.mkv マトロスカ
.mov yolo predict source=video.mov QuickTimeファイルフォーマット
.mp4 yolo predict source=video.mp4 MPEG-4 Part 14 - Wikipedia
.mpeg yolo predict source=video.mpeg MPEG-1パート2
.mpg yolo predict source=video.mpg MPEG-1パート2
.ts yolo predict source=video.ts MPEGトランスポートストリーム
.wmv yolo predict source=video.wmv ウィンドウズ・メディア・ビデオ
.webm yolo predict source=video.webm WebMプロジェクト

結果を出す

すべてUltralytics predict() のリストを返す。 Results オブジェクトがある:

結果

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
results = model(
    [
        "https://ultralytics.com/images/bus.jpg",
        "https://ultralytics.com/images/zidane.jpg",
    ]
)  # batch inference

Results オブジェクトは以下の属性を持つ:

属性 タイプ 説明
orig_img numpy.ndarray numpy 配列としての元画像。
orig_shape tuple 元画像の形状を (height, width) フォーマットで表したもの。
boxes Boxes, optional 検出バウンディングボックスを含むBoxesオブジェクト。
masks Masks, optional 検出マスクを含むMasksオブジェクト。
probs Probs, optional 分類タスクの各クラスの確率を含む Probs オブジェクト。
keypoints Keypoints, optional 各オブジェクトの検出されたキーポイントを含むキーポイントオブジェクト。
obb OBB, optional 指向バウンディングボックスを含む OBB オブジェクト。
speed dict 前処理、推論、および後処理の速度を画像ごとにミリ秒単位で表した辞書。
names dict クラス・インデックスをクラス名にマッピングする辞書。
path str 画像ファイルのパス。
save_dir str, optional 結果を保存するディレクトリ。

Results オブジェクトには以下のメソッドがある:

方法 リターン・タイプ 説明
update() None Resultsオブジェクトを新しい検出データ(ボックス、マスク、Prob、Obb、キーポイント)で更新する。
cpu() Results すべてのテンソルをCPU メモリに移動したResultsオブジェクトのコピーを返す。
numpy() Results すべてのテンソルをnumpy配列に変換したResultsオブジェクトのコピーを返す。
cuda() Results すべてのテンソルをGPU メモリに移動したResultsオブジェクトのコピーを返す。
to() Results 指定されたデバイスとdtypeにテンソルを移動したResultsオブジェクトのコピーを返す。
new() Results 同じ画像、パス、名前、スピード属性を持つ新しいResultsオブジェクトを作成する。
plot() np.ndarray 検出結果を入力RGB画像にプロットし、注釈付き画像を返す。
show() None 注釈付き推論結果の画像を表示します。
save() str 注釈付き推論結果画像をファイルに保存し、ファイル名を返す。
verbose() str 各タスクのログ文字列を返し、検出と分類の結果を詳述する。
save_txt() str 検出結果をテキストファイルに保存し、保存されたファイルへのパスを返します。
save_crop() None 切り出した検出画像を指定したディレクトリに保存します。
summary() List[Dict] オプションの正規化を使用して、推論結果を要約辞書に変換します。
to_df() DataFrame 検出結果をPandas DataFrameに変換します。
to_csv() str 検出結果をCSV形式に変換します。
to_xml() str 検出結果をXML形式に変換します。
to_html() str 検出結果をHTML形式に変換します。
to_json() str 検出結果をJSON形式に変換します。
to_sql() None 検出結果をSQL互換フォーマットに変換し、データベースに保存します。

詳細は Results クラス文書.

ボックス

Boxes オブジェクトは、バウンディング・ボックスのインデックス付け、操作、異なるフォーマットへの変換に使用できる。

ボックス

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.boxes)  # print the Boxes object containing the detection bounding boxes

以下はその表である。 Boxes クラスのメソッドとプロパティの名前、型、説明:

名称 タイプ 説明
cpu() 方法 オブジェクトをCPU メモリに移動する。
numpy() 方法 オブジェクトをnumpyの配列に変換します。
cuda() 方法 オブジェクトをCUDA メモリに移動する。
to() 方法 オブジェクトを指定されたデバイスに移動する。
xyxy プロパティtorch.Tensor) ボックスをxyxy形式で返す。
conf プロパティtorch.Tensor) ボックスの信頼値を返す。
cls プロパティtorch.Tensor) ボックスのクラス値を返す。
id プロパティtorch.Tensor) ボックスのトラックIDを返す(利用可能な場合)。
xywh プロパティtorch.Tensor) xywh フォーマットでボックスを返す。
xyxyn プロパティtorch.Tensor) 元の画像サイズで正規化した xyxy 形式のボックスを返す。
xywhn プロパティtorch.Tensor) 元の画像サイズで正規化した xywh 形式のボックスを返す。

詳細は Boxes クラス文書.

マスク

Masks オブジェクトを使用して、マスクのインデックス付け、操作、セグメントへの変換を行うことができます。

マスク

from ultralytics import YOLO

# Load a pretrained YOLO11n-seg Segment model
model = YOLO("yolo11n-seg.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.masks)  # print the Masks object containing the detected instance masks

以下はその表である。 Masks クラスのメソッドとプロパティの名前、型、説明:

名称 タイプ 説明
cpu() 方法 CPU メモリ上のマスクtensor を返す。
numpy() 方法 マスクtensor を numpy の配列として返します。
cuda() 方法 GPU メモリ上のマスクtensor を返す。
to() 方法 指定されたデバイスと dtype を持つマスクtensor を返す。
xyn プロパティtorch.Tensor) 正規化されたセグメントのリスト。
xy プロパティtorch.Tensor) テンソルとして表現されたピクセル座標のセグメントのリスト。

詳細は Masks クラス文書.

キーポイント

Keypoints オブジェクトは、座標のインデックス付け、操作、正規化に使用できる。

キーポイント

from ultralytics import YOLO

# Load a pretrained YOLO11n-pose Pose model
model = YOLO("yolo11n-pose.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.keypoints)  # print the Keypoints object containing the detected keypoints

以下はその表である。 Keypoints クラスのメソッドとプロパティの名前、型、説明:

名称 タイプ 説明
cpu() 方法 CPU メモリ上のtensor キーポイントを返す。
numpy() 方法 キーポイントtensor を numpy の配列として返す。
cuda() 方法 GPU メモリ上のtensor キーポイントを返す。
to() 方法 指定されたデバイスと dtype を持つキーポイントtensor を返す。
xyn プロパティtorch.Tensor) テンソルとして表現された正規化キーポイントのリスト。
xy プロパティtorch.Tensor) テンソルとして表現されたピクセル座標のキーポイントのリスト。
conf プロパティtorch.Tensor) キーポイントの信頼値があればそれを返し、なければ None。

詳細は Keypoints クラス文書.

問題

Probs オブジェクトを使用することができます。 top1 そして top5 分類の指標と得点。

問題

from ultralytics import YOLO

# Load a pretrained YOLO11n-cls Classify model
model = YOLO("yolo11n-cls.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")  # results list

# View results
for r in results:
    print(r.probs)  # print the Probs object containing the detected class probabilities

のメソッドとプロパティを表にまとめた。 Probs クラスである:

名称 タイプ 説明
cpu() 方法 CPU メモリ上の probstensor のコピーを返す。
numpy() 方法 probstensor のコピーを numpy 配列として返す。
cuda() 方法 GPU メモリ上の probstensor のコピーを返す。
to() 方法 指定されたデバイスと dtype を持つ probstensor のコピーを返す。
top1 プロパティint) トップ1クラスのインデックス。
top5 プロパティlist[int]) 上位5クラスの指標。
top1conf プロパティtorch.Tensor) トップ1クラスの自信。
top5conf プロパティtorch.Tensor) トップ5クラスのコンフィデンス

詳細は Probs クラス文書.

OBB

OBB オブジェクトを使用して、インデックスを作成したり、バウンディングボックスを操作したり、異なるフォーマットに変換したりすることができる。

OBB

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n-obb.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/boats.jpg")  # results list

# View results
for r in results:
    print(r.obb)  # print the OBB object containing the oriented detection bounding boxes

以下はその表である。 OBB クラスのメソッドとプロパティの名前、型、説明:

名称 タイプ 説明
cpu() 方法 オブジェクトをCPU メモリに移動する。
numpy() 方法 オブジェクトをnumpyの配列に変換します。
cuda() 方法 オブジェクトをCUDA メモリに移動する。
to() 方法 オブジェクトを指定されたデバイスに移動する。
conf プロパティtorch.Tensor) ボックスの信頼値を返す。
cls プロパティtorch.Tensor) ボックスのクラス値を返す。
id プロパティtorch.Tensor) ボックスのトラックIDを返す(利用可能な場合)。
xyxy プロパティtorch.Tensor) 水平ボックスをxyxy形式で返す。
xywhr プロパティtorch.Tensor) 回転したボックスを xywhr フォーマットで返す。
xyxyxyxy プロパティtorch.Tensor) 回転したボックスをxyxyxy形式で返す。
xyxyxyxyn プロパティtorch.Tensor) 画像サイズで正規化した xyxyxy 形式の回転ボックスを返す。

詳細は OBB クラス文書.

結果のプロット

について plot() メソッド Results オブジェクトは、検出されたオブジェクト(バウンディングボックス、マスク、キーポイント、確率など)を元の画像に重ねることで、予測の視覚化を容易にします。このメソッドは、注釈付き画像をNumPyの配列として返すので、表示や保存が簡単にできます。

プロット

from PIL import Image

from ultralytics import YOLO

# Load a pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Run inference on 'bus.jpg'
results = model(["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/zidane.jpg"])  # results list

# Visualize the results
for i, r in enumerate(results):
    # Plot results image
    im_bgr = r.plot()  # BGR-order numpy array
    im_rgb = Image.fromarray(im_bgr[..., ::-1])  # RGB-order PIL image

    # Show results to screen (in supported environments)
    r.show()

    # Save results to disk
    r.save(filename=f"results{i}.jpg")

plot() メソッド・パラメータ

について plot() メソッドは、出力をカスタマイズするためのさまざまな引数をサポートしている:

議論 タイプ 説明 デフォルト
conf bool 検出信頼度スコアを含める。 True
line_width float バウンディングボックスの線幅。以下の場合、画像サイズに合わせて拡大縮小します。 None. None
font_size float テキストのフォントサイズ。もし None. None
font str テキスト注釈のフォント名。 'Arial.ttf'
pil bool 画像をPIL Imageオブジェクトとして返す。 False
img numpy.ndarray プロット用の代替画像。もし None. None
im_gpu torch.Tensor GPU-高速マスクプロット用加速画像。形状:(1, 3, 640, 640)。 None
kpt_radius int 描画されるキーポイントの半径。 5
kpt_line bool キーポイントを線で結ぶ。 True
labels bool 注釈にクラス・ラベルを含める。 True
boxes bool 画像にバウンディングボックスを重ねる。 True
masks bool 画像にマスクを重ねる。 True
probs bool 分類確率を含める。 True
show bool デフォルトの画像ビューアを使用して、注釈付き画像を直接表示します。 False
save bool で指定したファイルに注釈画像を保存する。 filename. False
filename str 注釈付き画像を保存するファイルのパスと名前。 saveTrue. None
color_mode str インスタンス」や「クラス」など、カラーモードを指定する。 'class'

スレッドセーフ推論

推論中にスレッドセーフを確保することは、複数のYOLO モデルを異なるスレッドで並行して実行する場合に非常に重要です。スレッドセーフ推論は、各スレッドの予測が分離され、互いに干渉しないことを保証し、競合状態を回避し、一貫性のある信頼性の高い出力を保証します。

マルチスレッド・アプリケーションでYOLO モデルを使用する場合、競合を防ぐために、スレッドごとに別々のモデル・オブジェクトをインスタンス化するか、スレッドローカル・ストレージを採用することが重要です:

スレッドセーフ推論

スレッドセーフな推論のために、各スレッド内で単一のモデルをインスタンス化する:

from threading import Thread

from ultralytics import YOLO


def thread_safe_predict(model, image_path):
    """Performs thread-safe prediction on an image using a locally instantiated YOLO model."""
    model = YOLO(model)
    results = model.predict(image_path)
    # Process results


# Starting threads that each have their own model instance
Thread(target=thread_safe_predict, args=("yolo11n.pt", "image1.jpg")).start()
Thread(target=thread_safe_predict, args=("yolo11n.pt", "image2.jpg")).start()

YOLO モデルによるスレッドセーフ推論の詳細とステップバイステップの手順については、YOLO スレッドセーフ推論ガイドを参照してください。このガイドでは、よくある落とし穴を回避し、マルチスレッド推論をスムーズに実行するために必要な情報を提供します。

ストリーミング・ソース for-ループ

以下はOpenCVを使ったPython スクリプトである。cv2)とYOLO 、ビデオフレームに対して推論を実行する。このスクリプトは、必要なパッケージ (opencv-python そして ultralytics).

ストリーミング・フォー・ループ

import cv2

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo11n.pt")

# Open the video file
video_path = "path/to/your/video/file.mp4"
cap = cv2.VideoCapture(video_path)

# Loop through the video frames
while cap.isOpened():
    # Read a frame from the video
    success, frame = cap.read()

    if success:
        # Run YOLO inference on the frame
        results = model(frame)

        # Visualize the results on the frame
        annotated_frame = results[0].plot()

        # Display the annotated frame
        cv2.imshow("YOLO Inference", annotated_frame)

        # Break the loop if 'q' is pressed
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        # Break the loop if the end of the video is reached
        break

# Release the video capture object and close the display window
cap.release()
cv2.destroyAllWindows()

このスクリプトはビデオの各フレームに対して予測を実行し、結果を視覚化してウィンドウに表示する。ループは'q'を押すことで終了できる。

よくあるご質問

Ultralytics YOLO 、リアルタイム推論のための予測モードとは?

Ultralytics YOLO は、リアルタイムの物体検出、セグメンテーション、分類のための最先端モデルです。予測モードでは、画像、ビデオ、ライブストリームなど様々なデータソースに対して高速な推論を行うことができます。性能と汎用性を追求した設計により、バッチ処理モードとストリーミング・モードも提供します。機能の詳細については、Ultralytics YOLO predict modeをご覧ください。

Ultralytics YOLO を使って、異なるデータソースに対して推論を実行するにはどうすればよいですか?

Ultralytics YOLO は、個々の画像、動画、ディレクトリ、URL、ストリームなど、さまざまなデータソースを処理できます。データソースは model.predict() を呼び出す。例えば 'image.jpg' ローカル・イメージまたは 'https://ultralytics.com/images/bus.jpg' をURLに使用する。様々な 推論ソース を参照してください。

YOLO 推論の速度とメモリ使用量を最適化するには?

推論速度を最適化し、メモリを効率的に管理するには、ストリーミング・モードを使用することができます。 stream=True を予測メソッドの呼び出しメソッドに追加する。ストリーミング・モードは、メモリ効率のよい Results オブジェクトをロードする。長い動画や大きなデータセットの処理には、ストリーミングモードが特に便利です。詳細はこちら ストリーミングモード.

Ultralytics YOLO はどのような推論を支持しているのか?

について model.predict() YOLO メソッドは、次のようなさまざまな引数をサポートしている。 conf, iou, imgsz, deviceなどがあります。これらの引数により、信頼しきい値、画像サイズ、計算に使用するデバイスなどのパラメータを設定し、推論プロセスをカスタマイズすることができます。これらの引数の詳細な説明は 推論引数 セクションを参照されたい。

YOLO の予測結果を視覚化して保存するにはどうすればよいですか?

YOLO 、推論を実行した。 Results オブジェクトには、注釈付き画像を表示したり保存したりするためのメソッドが含まれています。以下のようなメソッドが使えます。 result.show() そして result.save(filename="result.jpg") を使用して結果を視覚化し、保存します。これらのメソッドの包括的なリストについては 結果との取り組み セクションを参照されたい。

📅作成:1年前 ✏️更新 13日前

コメント