コンテンツにスキップ

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

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

はじめに

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



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

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

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

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

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

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

Predictモードの主な特徴

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

  • 複数のデータソースとの互換性: データが個々の画像、画像のコレクション、ビデオファイル、またはリアルタイムのビデオストリームの形式であっても、predictモードは対応できます。
  • ストリーミングモード: ストリーミング機能を使用して、メモリ効率の高いジェネレーターを生成します Results オブジェクトを有効にします。これを行うには、以下を設定します。 stream=True predictorのcallメソッド内にあります。
  • バッチ処理:複数の画像やビデオフレームを一括して処理することで、推論時間をさらに短縮。
  • 統合が容易: 柔軟なAPIにより、既存のデータパイプラインや他のソフトウェアコンポーネントと簡単に統合できます。

Ultralytics YOLOモデルは、pythonリストのいずれかを返します Results オブジェクト、あるいは 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スクリーンショットをキャプチャします。
PILImage.open('image.jpg')PIL.ImageRGBチャネルを持つHWC形式
OpenCVcv2.imread('image.jpg')np.ndarrayBGRチャネルを持つHWC形式 uint8 (0-255).
numpynp.zeros((640,1280,3))np.ndarrayBGRチャネルを持つHWC形式 uint8 (0-255).
torchtorch.zeros(16,3,320,640)torch.TensorRGBチャネルを持つBCHW形式 float32 (0.0-1.0).
CSV'sources.csv'str または Path画像、ビデオ、またはディレクトリへのパスを含むCSVファイル。
ビデオ✅'video.mp4'str または PathMP4、AVIなどの形式のビデオファイル
ディレクトリ ✅'path/'str または Path画像または動画を含むディレクトリへのパス。
glob ✅'path/*.jpg'str複数のファイルに一致するGlobパターン。以下を使用してください。 * 文字をワイルドカードとして使用します。
YouTube ✅'https://youtu.be/LNwODJXcvt4'strYouTubeビデオへのURL。
ストリーム ✅'rtsp://example.com/media.mp4'strRTSP、RTMP、TCPなどのストリーミングプロトコル、またはIPアドレスのURL。
マルチストリーム ✅'list.streams'str または Path*.streams 行ごとに1つのストリームURLを含むテキストファイル。たとえば、8つのストリームはバッチサイズ8で実行されます。
ウェブカメラ ✅0int推論を実行する接続されたカメラデバイスのインデックス。

以下は、各ソースタイプを使用するためのコード例です。

予測ソース

画像ファイルで推論を実行します。

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

ディレクトリ内のすべての画像と動画に対して推論を実行します。サブディレクトリ内のアセットを含めるには、次のようなグロブパターンを使用します。 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() 推論時に渡すことができる複数の引数を受け入れ、デフォルトをオーバーライドします。

Ultralytics 、デフォルトで推論時に最小限のパディングを使用する(rect=True).このモードでは、各画像の短辺は、モデルの最大歩幅で割り切れるように必要な分だけパディングされる。 imgsz.画像のバッチに対して推論を実行する場合、最小限のパディングが機能するのは、すべての画像のサイズが同じ場合だけである。そうでない場合、画像は一様に、両辺が imgsz.

  • batch=1を使用している。 rect デフォルトではパディング。
  • batch>1を使用している。 rect パディングを使用するのは、1つのバッチに含まれるすべての画像のサイズが同じ場合だけです。 imgsz.

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)
# Run inference on 'bus.jpg'
yolo predict model=yolo11n.pt source='https://ultralytics.com/images/bus.jpg'

推論の引数:

引数種類デフォルト説明
sourcestr'ultralytics/assets'推論用のデータソースを指定します。画像パス、ビデオファイル、ディレクトリ、URL、またはライブフィード用のデバイスIDを指定できます。さまざまな形式とソースをサポートしており、さまざまな種類の入力に柔軟に対応できます。
conffloat0.25検出の最小信頼度閾値を設定します。この閾値未満の信頼度で検出されたオブジェクトは無視されます。この値を調整すると、誤検出を減らすことができます。
ioufloat0.7Non-Maximum Suppression (NMS) のためのIntersection Over Union (IoU) 閾値。値が低いほど、重複するボックスが排除され、検出数が減ります。これは、重複を減らすのに役立ちます。
imgszint または tuple640推論時の画像サイズを定義します。単一の整数を指定できます。 640 正方形へのリサイズ、または(高さ、幅)のタプルの場合。適切なサイズ調整は検出を改善できます 精度 と処理速度。
rectboolTrue有効にすると、推論速度を向上させるために、画像の短い辺がストライドで割り切れるまで最小限のパディングを行います。無効にすると、推論中に画像を正方形にパディングします。
halfboolFalse精度(FP16)推論を有効にします。これにより、サポートされているGPUでのモデル推論を高速化し、精度への影響を最小限に抑えることができます。
devicestrNone推論に使用するデバイスを指定します(例: cpu, cuda:0 または 0)。モデル実行のために、CPU、特定のGPU、またはその他の計算デバイスを選択できます。
batchint1推論のバッチサイズを指定します(ソースが ディレクトリ、ビデオファイル、または .txt ファイル)。バッチサイズを大きくすると、スループットが向上し、推論に必要な合計時間を短縮できます。
max_detint3001画像あたりの最大検出数。モデルが1回の推論で検出できるオブジェクトの総数を制限し、密集したシーンでの過剰な出力を防ぎます。
vid_strideint1ビデオ入力のフレームストライド。ビデオ内のフレームをスキップして、時間分解能を犠牲にして処理を高速化できます。1 の値はすべてのフレームを処理し、高い値はフレームをスキップします。
stream_bufferboolFalseビデオストリームの受信フレームをキューに入れるかどうかを決定します。もし False場合、古いフレームは破棄され、新しいフレームに対応します(リアルタイムアプリケーションに最適化されています)。 True場合、新しいフレームをバッファにキューイングし、フレームがスキップされないようにしますが、推論FPSがストリームFPSよりも低い場合はレイテンシが発生します。
visualizeboolFalse推論中にモデルの特徴の可視化を有効にし、モデルが「見ているもの」に関する洞察を提供します。デバッグとモデルの解釈に役立ちます。
augmentboolFalse予測のテスト時拡張(TTA)を有効にします。これにより、推論速度を犠牲にして検出の堅牢性が向上する可能性があります。
agnostic_nmsboolFalseクラス非依存Non-Maximum Suppression(NMS)を有効にします。これにより、異なるクラスの重複するボックスがマージされます。クラスの重複が一般的なマルチクラス検出シナリオで役立ちます。
classeslist[int]None予測をクラスIDのセットにフィルタリングします。指定されたクラスに属する検出のみが返されます。マルチクラス検出タスクで関連オブジェクトに焦点を当てる場合に役立ちます。
retina_masksboolFalse高解像度のセグメンテーションマスクを返します。返されるマスク(masks.data) は、有効になっている場合、元の画像サイズと一致します。無効になっている場合、推論中に使用される画像サイズになります。
embedlist[int]None特徴ベクトルまたは埋め込みを抽出するレイヤーを指定します。クラスタリングや類似性検索などのダウンストリームタスクに役立ちます。
projectstrNone予測出力が保存されるプロジェクトディレクトリの名前(保存する場合)。 save が有効になっています。
namestrNone予測実行の名前。予測出力が保存されるプロジェクトフォルダー内にサブディレクトリを作成するために使用されます。 save が有効になっています。
streamboolFalseすべてのフレームを一度にメモリにロードする代わりに、Resultsオブジェクトのジェネレーターを返すことにより、長いビデオまたは多数の画像に対してメモリ効率の高い処理を有効にします。
verboseboolTrueターミナルに詳細な推論ログを表示するかどうかを制御し、予測プロセスに関するリアルタイムフィードバックを提供します。
compilebool または strFalsePyTorch 2.xを有効にし、 torch.compile グラフコンパイル( backend='inductor')は以下を受け入れます。 True"default", False → を無効にするか、文字列モード( "default", "reduce-overhead", "max-autotune-no-cudagraphs")を使用します。サポートされていない場合、警告とともにEagerモードにフォールバックします。

可視化の引数:

引数種類デフォルト説明
showboolFalseもし True)は、アノテーションが付けられた画像またはビデオをウィンドウに表示します。開発またはテスト中に、視覚的なフィードバックを即座に得るのに役立ちます。
saveboolFalse or True注釈付きの画像や動画をファイルに保存できます。文書化、さらなる分析、結果の共有に便利です。CLI 使用時はTrue、Python使用時はFalseがデフォルト。
save_framesboolFalseビデオを処理する際、個々のフレームを画像として保存します。特定のフレームを抽出したり、詳細なフレームごとの分析を行う場合に便利です。
save_txtboolFalse検出結果をテキストファイルに保存します。フォーマットは次のとおりです。 [class] [x_center] [y_center] [width] [height] [confidence]他の分析ツールとの統合に役立ちます。
save_confboolFalse保存されたテキストファイルに信頼性スコアが含まれています。ポストプロセッシングと分析に利用できる詳細が強化されます。
save_cropboolFalse検出されたオブジェクトの切り抜き画像を保存します。データセットの拡張、分析、または特定のオブジェクトに焦点を当てたデータセットの作成に役立ちます。
show_labelsboolTrue検出された各オブジェクトのラベルを視覚的な出力に表示します。検出されたオブジェクトをすぐに理解できます。
show_confboolTrueラベルとともに、検出ごとの信頼度スコアを表示します。各検出に対するモデルの確実性についての洞察が得られます。
show_boxesboolTrue検出されたオブジェクトの周囲にバウンディングボックスを描画します。画像またはビデオフレーム内のオブジェクトを視覚的に識別し、位置を特定するために不可欠です。
line_widthNone or intNoneバウンディングボックスの線の太さを指定します。もし None場合、線の太さは画像サイズに基づいて自動的に調整されます。明確にするための視覚的なカスタマイズを提供します。

画像およびビデオの形式

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

画像

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

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

画像の拡張子予測コマンドの例リファレンス
.bmpyolo predict source=image.bmpMicrosoft BMPファイル形式
.dngyolo predict source=image.dngAdobe DNG
.jpegyolo predict source=image.jpegJPEG
.jpgyolo predict source=image.jpgJPEG
.mpoyolo predict source=image.mpoMulti Picture Object
.pngyolo predict source=image.pngポータブルネットワークグラフィックス
.tifyolo predict source=image.tifTag Image File Format
.tiffyolo predict source=image.tiffTag Image File Format
.webpyolo predict source=image.webpWebP
.pfmyolo predict source=image.pfmポータブルFloatMap
.HEICyolo predict source=image.HEIC高効率画像フォーマット

動画

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

ビデオのサフィックス予測コマンドの例リファレンス
.asfyolo predict source=video.asfAdvanced Systems Format
.aviyolo predict source=video.aviAudio Video Interleave
.gifyolo predict source=video.gifGraphics Interchange Format
.m4vyolo predict source=video.m4vMPEG-4 Part 14
.mkvyolo predict source=video.mkvMatroska
.movyolo predict source=video.movQuickTimeファイルフォーマット
.mp4yolo predict source=video.mp4MPEG-4 Part 14 - Wikipedia
.mpegyolo predict source=video.mpegMPEG-1 Part 2
.mpgyolo predict source=video.mpgMPEG-1 Part 2
.tsyolo predict source=video.tsMPEG Transport Stream
.wmvyolo predict source=video.wmvWindows Media Video
.webmyolo predict source=video.webmWebM プロジェクト

結果の操作

すべての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_imgnp.ndarraynumpy配列としての元の画像。
orig_shapetuple元の画像の形状(高さ、幅)。
boxesBoxes, optional検出バウンディングボックスを含むBoxesオブジェクト。
masksMasks, optional検出マスクを含む Masks オブジェクト。
probsProbs, optional分類タスクの各クラスの確率を含む Probs オブジェクト。
keypointsKeypoints, optional各オブジェクトに対して検出されたキーポイントを含む Keypoints オブジェクト。
obbOBB, optional向きのあるバウンディングボックスを含むOBBオブジェクト。
speeddict画像あたりのミリ秒単位での、プリプロセス、推論、およびポストプロセスの速度の辞書。
namesdictクラスインデックスをクラス名にマッピングする辞書。
pathstr画像ファイルへのパス。
save_dirstr, optional結果を保存するディレクトリ。

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

メソッド戻り値の型説明
update()None新しい検出データ(ボックス、マスク、確率、obb、キーポイント)でResultsオブジェクトを更新します。
cpu()ResultsすべてのtensorがCPUメモリに移動されたResultsオブジェクトのコピーを返します。
numpy()Resultsすべてのtensorがnumpy配列に変換されたResultsオブジェクトのコピーを返します。
cuda()ResultsすべてのtensorがGPUメモリに移動されたResultsオブジェクトのコピーを返します。
to()Resultstensorが指定されたデバイスと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検出結果をPolars 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() メソッドは、出力をカスタマイズするためのさまざまな引数をサポートしています。

引数種類説明デフォルト
confbool検出信頼性スコアを含めます。True
line_widthfloatバウンディングボックスの線の幅。scale=Trueの場合、画像サイズに合わせて調整されます。 None.None
font_sizefloatテキストフォントサイズ。ifの場合、画像サイズに合わせて拡大縮小します。 None.None
fontstrテキスト注釈に使用するフォント名。'Arial.ttf'
pilbool画像を PIL Image オブジェクトとして返します。False
imgnp.ndarrayプロット用の代替画像。そうでない場合は、元の画像を使用します。 None.None
im_gputorch.Tensorマスクプロットを高速化する GPU 高速化イメージ。形状:(1、3、640、640)。None
kpt_radiusint描画されたキーポイントの半径。5
kpt_lineboolキーポイントを線で接続します。True
labelsboolアノテーションにクラスラベルを含めます。True
boxesbool画像にバウンディングボックスを重ねて表示します。True
masksbool画像にマスクを重ねて表示します。True
probsbool分類確率を含めます。True
showboolデフォルトの画像ビューアを使用して、アノテーション付き画像を直接表示します。False
saveboolアノテーション付きの画像を、指定されたファイルに保存します。 filename.False
filenamestrアノテーションされた画像を保存する場合のファイルパスと名前 saveTrue.None
color_modestrカラーモードを 'instance' や 'class' のように指定します。'class'
txt_colortuple[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") 結果を視覚化して保存するには。これらのメソッドの包括的なリストについては、以下を参照してください。 結果の操作 セクションをご参照ください。



📅作成 2年前 ✏️更新 3日前
glenn-jocherRizwanMunawarLaughing-qUltralyticsAssistantMatthewNoyceY-T-Gバヌ4プラサードjk4esergiuwaxmannIvorZhu331Burhan-QplashchynskitensorturtleAyushExel

コメント