コンテンツにスキップ

Ultralytics YOLO を使用したモデルの予測

Ultralytics YOLOのエコシステムと統合

はじめに

機械学習コンピュータービジョンの世界では、視覚データから意味を理解するプロセスは「推論」または「予測」と呼ばれます。Ultralytics YOLO11は、広範なデータソースでの高性能なリアルタイム推論に特化したpredictモードと呼ばれる強力な機能を提供します。



見る: カスタムプロジェクトのためにUltralytics YOLOモデルから出力を抽出する方法

実世界のアプリケーション

製造業 スポーツ 安全性
自動車のスペアパーツ検出 サッカー選手の検出 人物転倒検出
自動車のスペアパーツ検出 サッカー選手の検出 人物転倒検出

推論にUltralytics YOLOを使用する理由

さまざまな推論ニーズにYOLO11のpredictモードを検討すべき理由は以下のとおりです。

  • 多様性: 画像、ビデオ、さらにはライブストリームでも推論を実行できます。
  • パフォーマンス: 精度を犠牲にすることなく、リアルタイムの高速処理のために設計されています。
  • 使いやすさ: 迅速なデプロイメントとテストのための直感的なpythonおよびCLIインターフェース。
  • 高度なカスタマイズ性: 特定の要件に応じてモデルの推論動作を調整するためのさまざまな設定とパラメータ。

Predictモードの主な特徴

YOLO11のpredictモードは、堅牢かつ汎用性の高い設計で、以下の機能を備えています。

  • 複数のデータソースとの互換性: データが個々の画像、画像のコレクション、ビデオファイル、またはリアルタイムのビデオストリームの形式であっても、predictモードは対応できます。
  • ストリーミングモード: ストリーミング機能を使用して、メモリ効率の高いジェネレーターを生成します Results オブジェクトを有効にします。これを行うには、以下を設定します。 stream=True predictorのcallメソッド内にあります。
  • バッチ処理: 複数の画像またはビデオフレームを1つのバッチで処理する機能により、推論時間をさらに短縮します。
  • 統合が容易: 柔軟な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 スクリーンショットをキャプチャします。
PIL Image.open('image.jpg') PIL.Image RGBチャネルを持つHWC形式
OpenCV cv2.imread('image.jpg') np.ndarray BGRチャネルを持つHWC形式 uint8 (0-255).
numpy 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).
CSV 'sources.csv' str または Path 画像、ビデオ、またはディレクトリへのパスを含むCSVファイル。
ビデオ✅ 'video.mp4' str または Path MP4、AVIなどの形式のビデオファイル
ディレクトリ ✅ 'path/' str または Path 画像または動画を含むディレクトリへのパス。
glob ✅ 'path/*.jpg' str 複数のファイルに一致するGlobパターン。以下を使用してください。 * 文字をワイルドカードとして使用します。
YouTube ✅ 'https://youtu.be/LNwODJXcvt4' str YouTubeビデオへのURL。
ストリーム ✅ 'rtsp://example.com/media.mp4' str RTSP、RTMP、TCPなどのストリーミングプロトコル、またはIPアドレスのURL。
マルチストリーム ✅ 'list.streams' str または Path *.streams 行ごとに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

PyTorch tensorとして表現される画像で推論を実行します。

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を使用すると、Resultsオブジェクトのジェネレーターを作成して、メモリ使用量を削減できます。

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

ディレクトリ内のすべての画像と動画に対して推論を実行します。サブディレクトリ内の画像と動画もキャプチャするには、globパターン(例: 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

glob式に一致するすべての画像と動画に対して推論を実行します。 * 文字。

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アドレスプロトコルを使用してライブビデオストリームで推論を実行します。単一のストリームが提供されている場合、モデルは次の条件で推論を実行します。 バッチサイズ の1です。複数のストリームの場合は、 .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 正方形へのリサイズ、または(高さ、幅)のタプルの場合。適切なサイズ調整は検出を改善できます 精度 と処理速度。
rect bool True 有効にすると、推論速度を向上させるために、画像の短い辺がストライドで割り切れるまで最小限のパディングを行います。無効にすると、推論中に画像を正方形にパディングします。
half bool False 精度(FP16)推論を有効にします。これにより、サポートされているGPUでのモデル推論を高速化し、精度への影響を最小限に抑えることができます。
device str None 推論に使用するデバイスを指定します(例: cpu, cuda:0 または 0)。モデル実行のために、CPU、特定のGPU、またはその他の計算デバイスを選択できます。
batch int 1 推論のバッチサイズを指定します(ソースが ディレクトリ、ビデオファイル、または .txt ファイル)。バッチサイズを大きくすると、スループットが向上し、推論に必要な合計時間を短縮できます。
max_det int 300 1画像あたりの最大検出数。モデルが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 クラス非依存Non-Maximum Suppression(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場合、線の太さは画像サイズに基づいて自動的に調整されます。明確にするための視覚的なカスタマイズを提供します。

画像およびビデオの形式

YOLO11は、ultralytics/data/utils.pyで指定されているように、さまざまな画像およびビデオ形式をサポートしています。有効なサフィックスと予測コマンドの例については、以下の表を参照してください。

画像

以下の表に、有効なUltralytics画像形式を示します。

HEIC画像は推論でのみサポートされており、トレーニングではサポートされていません。

画像の拡張子 予測コマンドの例 リファレンス
.bmp yolo predict source=image.bmp Microsoft BMPファイル形式
.dng yolo predict source=image.dng Adobe DNG
.jpeg yolo predict source=image.jpeg JPEG
.jpg yolo predict source=image.jpg JPEG
.mpo yolo predict source=image.mpo Multi Picture Object
.png yolo predict source=image.png ポータブルネットワークグラフィックス
.tif yolo predict source=image.tif Tag Image File Format
.tiff yolo predict source=image.tiff Tag Image File Format
.webp yolo predict source=image.webp WebP
.pfm yolo predict source=image.pfm ポータブルFloatMap
.HEIC yolo predict source=image.HEIC 高効率画像フォーマット

動画

以下の表に、有効なUltralyticsビデオ形式を示します。

ビデオのサフィックス 予測コマンドの例 リファレンス
.asf yolo predict source=video.asf Advanced Systems Format
.avi yolo predict source=video.avi Audio Video Interleave
.gif yolo predict source=video.gif Graphics Interchange Format
.m4v yolo predict source=video.m4v MPEG-4 Part 14
.mkv yolo predict source=video.mkv Matroska
.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 Part 2
.mpg yolo predict source=video.mpg MPEG-1 Part 2
.ts yolo predict source=video.ts MPEG Transport Stream
.wmv yolo predict source=video.wmv Windows Media Video
.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 np.ndarray numpy配列としての元の画像。
orig_shape tuple 元の画像の形状(高さ、幅)。
boxes Boxes, optional 検出バウンディングボックスを含むBoxesオブジェクト。
masks Masks, optional 検出マスクを含む Masks オブジェクト。
probs Probs, optional 分類タスクの各クラスの確率を含む Probs オブジェクト。
keypoints Keypoints, optional 各オブジェクトに対して検出されたキーポイントを含む Keypoints オブジェクト。
obb OBB, optional 向きのあるバウンディングボックスを含むOBBオブジェクト。
speed dict 画像あたりのミリ秒単位での、プリプロセス、推論、およびポストプロセスの速度の辞書。
names dict クラスインデックスをクラス名にマッピングする辞書。
path str 画像ファイルへのパス。
save_dir str, optional 結果を保存するディレクトリ。

Results オブジェクトには次のメソッドがあります:

メソッド 戻り値の型 説明
update() None 新しい検出データ(ボックス、マスク、確率、obb、キーポイント)でResultsオブジェクトを更新します。
cpu() Results すべてのtensorがCPUメモリに移動されたResultsオブジェクトのコピーを返します。
numpy() Results すべてのtensorがnumpy配列に変換されたResultsオブジェクトのコピーを返します。
cuda() Results すべてのtensorがGPUメモリに移動されたResultsオブジェクトのコピーを返します。
to() Results tensorが指定されたデバイスとdtypeに移動されたResultsオブジェクトのコピーを返します。
new() Results 同じ画像、パス、名前、および速度属性を持つ新しいResultsオブジェクトを作成します。
plot() np.ndarray 入力RGB画像上に検出結果をプロットし、注釈付きの画像を返します。
show() None アノテーションされた推論結果とともに画像を表示します。
save() str 注釈が付けられた推論結果画像をファイルに保存し、ファイル名を返します。
verbose() str 検出と分類の結果を詳述する、タスクごとのログ文字列を返します。
save_txt() str 検出結果をテキストファイルに保存し、保存されたファイルへのパスを返します。
save_crop() None 切り抜かれた検出画像を、指定されたディレクトリに保存します。
summary() List[Dict[str, Any]] 推論結果を、オプションの正規化を使用して、要約された辞書に変換します。
to_df() DataFrame 検出結果をPolar DataFrameに変換します。
to_csv() str 検出結果をCSV形式に変換します。
to_json() str 検出結果をJSON形式に変換します。

詳細については、 Results classドキュメント.

ボックス

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 名前、型、説明など、classのメソッドとプロパティ:

名前 種類 説明
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 classドキュメント.

マスク

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 名前、型、説明など、classのメソッドとプロパティ:

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

詳細については、 Masks classドキュメント.

キーポイント

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 名前、型、説明など、classのメソッドとプロパティ:

名前 種類 説明
cpu() メソッド CPUメモリ上のキーポイントtensorを返します。
numpy() メソッド キーポイントtensorをnumpy配列として返します。
cuda() メソッド GPUメモリ上のキーポイントtensorを返します。
to() メソッド 指定されたdeviceとdtypeを持つキーポイントtensorを返します。
xyn プロパティ(torch.Tensor) tensorとして表される正規化されたキーポイントのリスト。
xy プロパティ(torch.Tensor) tensorとして表されるピクセル座標のキーポイントのリスト。
conf プロパティ(torch.Tensor) キーポイントの信頼値を返します(利用可能な場合)。利用できない場合はNoneを返します。

詳細については、 Keypoints classドキュメント.

確率

Probs オブジェクトは、インデックス、getに使用できます 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メモリ上のprobs tensorのコピーを返します。
numpy() メソッド probs tensorのコピーをnumpy配列として返します。
cuda() メソッド GPUメモリ上のprobs tensorのコピーを返します。
to() メソッド 指定されたdeviceとdtypeを持つprobs tensorのコピーを返します。
top1 プロパティ(int) 上位1クラスのインデックス。
top5 プロパティ(list[int]) 上位5クラスのインデックス。
top1conf プロパティ(torch.Tensor) 上位1クラスの信頼度。
top5conf プロパティ(torch.Tensor) 上位5クラスの信頼度。

詳細については、 Probs classドキュメント.

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 名前、型、説明など、classのメソッドとプロパティ:

名前 種類 説明
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) 回転したボックスをxyxyxyxy形式で返します。
xyxyxyxyn プロパティ(torch.Tensor) 画像サイズで正規化された回転したボックスをxyxyxyxy形式で返します。

詳細については、 OBB classドキュメント.

プロット結果

The 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() メソッドのパラメータ

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

引数 種類 説明 デフォルト
conf bool 検出信頼性スコアを含めます。 True
line_width float バウンディングボックスの線の幅。scale=Trueの場合、画像サイズに合わせて調整されます。 None. None
font_size float テキストフォントサイズ。ifの場合、画像サイズに合わせて拡大縮小します。 None. None
font str テキスト注釈に使用するフォント名。 'Arial.ttf'
pil bool 画像を PIL Image オブジェクトとして返します。 False
img np.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 カラーモードを 'instance' や 'class' のように指定します。 'class'
txt_color tuple[int, int, int] バウンディングボックスと画像分類ラベルのRGBテキストカラー。 (255, 255, 255)

スレッドセーフな推論

推論中のスレッドセーフを確保することは、異なるスレッド間で複数の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 Thread-Safe Inference Guideを参照してください。このガイドでは、一般的な落とし穴を回避し、マルチスレッド推論がスムーズに実行されるようにするために必要なすべての情報を提供します。

ストリーミングソース for-loop

OpenCVを使用したpythonスクリプトを以下に示します(cv2)と、ビデオフレーム上で推論を実行するYOLOです。このスクリプトは、必要なパッケージ(opencv-python および ultralytics)。

ストリーミングforループ

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とは何ですか?また、リアルタイム推論のためのpredictモードとは何ですか?

Ultralytics YOLOは、リアルタイム物体検出、セグメンテーション、および分類のための最先端モデルです。そのpredictモードにより、画像、ビデオ、ライブストリームなど、さまざまなデータソースで高速推論を実行できます。パフォーマンスと汎用性を考慮して設計されており、バッチ処理およびストリーミングモードも提供します。機能の詳細については、Ultralytics YOLO predict modeをご覧ください。

さまざまなデータソースでUltralytics YOLOを使用して推論を実行するにはどうすればよいですか?

Ultralytics YOLOは、個々の画像、ビデオ、ディレクトリ、URL、ストリームなど、幅広いデータソースを処理できます。データソースは、以下のように指定できます。 model.predict() コール。たとえば、以下を使用します。 'image.jpg' ローカルイメージまたは 'https://ultralytics.com/images/bus.jpg' URLの場合。様々な詳細な例をご確認ください。 推論ソース ドキュメントに記載されています。

YOLO推論の速度とメモリ使用量を最適化するにはどうすればよいですか?

推論速度を最適化し、メモリを効率的に管理するには、以下を設定してストリーミングモードを使用できます stream=True predictorのcallメソッド内にあります。ストリーミングモードは、メモリ効率の高いジェネレーターを生成します。 Results すべてのフレームをメモリにロードする代わりに、オブジェクトを使用します。長いビデオや大規模なデータセットを処理する場合、ストリーミングモードは特に役立ちます。詳細については、こちらをご覧ください。 ストリーミングモード.

Ultralytics YOLO はどのような推論引数をサポートしていますか?

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

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

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



📅 1年前に作成 ✏️ 5日前に更新

コメント