Link to this sectionUltralytics YOLOによるモデル推論#
Link to this sectionはじめに#
機械学習およびコンピュータビジョンの世界では、視覚データを解釈するプロセスは推論や予測と呼ばれます。Ultralytics YOLO26は、幅広いデータソースに対して高性能なリアルタイム推論を行うための強力な予測モードを提供します。
Watch: How to Extract Results from Ultralytics YOLO26 Tasks for Custom Projects 🚀
Link to this section実世界での応用#
| 製造 | スポーツ | 安全性 |
|---|---|---|
![]() | ![]() | ![]() |
| 車両スペアパーツ検出 | サッカー選手検出 | 人転倒検出 |
Link to this section推論にUltralytics YOLOを使用する理由#
YOLO26の予測モードを多様な推論ニーズに活用すべき理由は以下の通りです。
- 汎用性: 画像、動画、さらにはライブストリームに対しても推論を実行可能です。
- パフォーマンス: 精度を犠牲にすることなく、リアルタイムで高速な処理を実現するように設計されています。
- 使いやすさ: 迅速なデプロイとテストのための直感的なPythonおよびCLIインターフェースを提供します。
- 高度なカスタマイズ性: 特定の要件に合わせてモデルの推論動作を調整するための多様な設定やパラメータを用意しています。
- 本番環境対応: モデルをUltralytics Platform上のAPIエンドポイントとしてオートスケーリングや監視付きでデプロイするか、ローカル環境で推論を実行可能です。
Link to this section予測モードの主な機能#
YOLO26の予測モードは堅牢かつ多用途になるよう設計されており、以下の機能を備えています。
- 複数のデータソースへの互換性: データが個別の画像、画像の集合、動画ファイル、リアルタイムビデオストリームのいずれであっても、予測モードが対応します。
- ストリーミングモード: ストリーミング機能を使用して、メモリ効率の良い
Resultsオブジェクトのジェネレータを生成します。これを有効にするには、予測の呼び出しメソッドでstream=Trueに設定します。 - バッチ処理: 複数の画像や動画フレームを単一のバッチで処理し、全体の推論時間をさらに削減します。
- 統合の容易さ: 柔軟なAPIにより、既存のデータパイプラインや他のソフトウェアコンポーネントと容易に統合可能です。
Ultralytics YOLO models return either a Python list of Results objects or a memory-efficient generator of Results objects when stream=True is passed to the model during inference:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # pretrained YOLO26n 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 diskLink to this section推論ソース#
YOLO26は、下表に示すように推論のために異なる種類の入力ソースを処理できます。ソースには静止画像、ビデオストリーム、様々なデータ形式が含まれます。表は、引数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などのストリーミングプロトコル用のURL、またはIPアドレス。 |
| マルチストリーム ✅ | 'list.streams' | str または Path | 1行に1つのストリームURLを記載した*.streamsテキストファイル。例:8つのストリームはbatch-size 8で実行されます。 |
| ウェブカメラ ✅ | 0 | int | 推論を実行するために接続されたカメラデバイスのインデックス。 |
各ソースタイプを使用するためのコード例を以下に示します。
画像ファイルに対して推論を実行。
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")
# Define path to the image file
source = "path/to/image.jpg"
# Run inference on the source
results = model(source) # list of Results objectsLink to this section推論の引数#
model.predict() は、推論時にデフォルト設定を上書きするために渡すことができる複数の引数を受け入れます:
Link to this section固定形状と最小矩形 (rect)#
デフォルトでは、predictは rect=True を使用します。これにより、可能な場合に 最小矩形 パディングが有効になります。画像は imgsz 内に収まるようにスケールされ、ストライドの倍数に最も近いサイズまでのみパディングされるため、最終的なテンソルは imgsz よりも 小さくなる 可能性があります。最小矩形パディングは、バッチ内のすべての画像が同じ形状であり、かつバックエンドがそれをサポートしている場合(PyTorch .pt、または動的 ONNX / Triton)にのみ使用されます。それ以外の場合、画像は フル imgsz ターゲットまでパディングされます。
Use rect=False to always pad to the full imgsz target. This is recommended when you need a fixed input size to match exported models (ONNX, TensorRT, etc.).
整数対タプルの imgsz
- 整数
imgsz=640は、ストライドの丸め処理後に正方形のターゲット(640, 640)になります。 - タプル
imgsz=(384, 672)は長方形のターゲットを設定します。rect=Trueおよびauto=Trueの場合、実際のテンソルはこのターゲットよりも小さくなる可能性があります。
トレーニング対予測/エクスポート
トレーニングは単一の整数 imgsz のみを受け入れます([h, w] リストは最大値に強制されます)。予測とエクスポートは、整数または (height, width) タプルのいずれかを受け入れます。
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.pt")
# Run inference on 'bus.jpg' with arguments
model.predict("https://ultralytics.com/images/bus.jpg", save=True, imgsz=320, conf=0.25)推論の引数:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
source | str、int、または None | None | 推論のデータソースを指定します。画像パス、ビデオファイル、ディレクトリ、URL、またはライブフィードのデバイスIDを指定できます。省略した場合、警告がログに記録され、モデルは組み込みのデモアセット(ultralytics/assets、または OBB の場合はデモ URL)にフォールバックします。幅広いフォーマットとソースをサポートしており、さまざまな種類の入力 に柔軟に対応できます。 |
conf | float | 0.25 | 検出の最小信頼度しきい値を設定します。このしきい値未満の信頼度で検出されたオブジェクトは無視されます。この値を調整することで、誤検出を減らすことができます。 |
iou | float | 0.7 | 非最大値抑制 (NMS) の Intersection Over Union (IoU) しきい値。値を小さくすると、重なったボックスが排除されるため検出数が減り、重複を減らすのに役立ちます。 |
imgsz | intまたはtuple | 640 | レターボックスターゲット。整数は正方形の N×N を与え、タプルは (height, width) を与えます。rect=True の場合、最小矩形パディングのために実際のテンソルがこのターゲットよりも小さくなる可能性があります。固定サイズにするには rect=False を使用してください。固定形状と最小矩形 を参照してください。 |
rect | bool | True | True の場合、可能な場合に最小矩形パディングを使用します(同じ形状のバッチおよびサポートされているバックエンド)。False の場合、常にフル imgsz までパディングします。固定形状と最小矩形 を参照してください。 |
half | bool | False | 半精度 (FP16) 推論を有効にします。これにより、精度への影響を最小限に抑えながら、サポートされている GPU でのモデル推論を高速化できます。 |
device | str | None | 推論用のデバイスを指定します(例: cpu、cuda:0、0、npu、または npu:0)。ユーザーは、CPU、特定の GPU、Huawei Ascend NPU、またはモデル実行のためのその他の計算デバイスを選択できます。 |
batch | int | 1 | 推論のバッチサイズを指定します(ソースが ディレクトリ、ビデオファイル、または .txt ファイル の場合にのみ機能します)。バッチサイズを大きくするとスループットが向上し、推論に必要な合計時間を短縮できます。 |
max_det | int | 300 | 画像ごとに許可される最大検出数。モデルが単一の推論で検出できるオブジェクトの総数を制限し、密集したシーンで過剰な出力が発生するのを防ぎます。 |
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) を有効にし、異なるクラスの重なり合うボックスをマージします。クラスの重なりが一般的なマルチクラス検出シナリオで役立ちます。エンドツーエンドモデル (YOLO26, YOLOv10) の場合、これは同じ検出が複数のクラスラベル(IoU=1.0 の重複)で表示されるのを防ぐのみであり、異なるボックス間での IoU しきい値ベースの抑制は実行しません。 |
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 | 端末に詳細な推論ログを表示するかどうかを制御し、予測プロセスに関するリアルタイムのフィードバックを提供します。 |
compile | boolまたはstr | False | PyTorch 2.x の torch.compile グラフコンパイルを backend='inductor' で有効にします。True → "default"、False → 無効、または "default"、"reduce-overhead"、"max-autotune-no-cudagraphs" などの文字列モードを受け入れます。非対応の場合は警告と共に Eager モードにフォールバックします。 |
end2end | bool | None | NMS フリーの推論をサポートする YOLO モデル(YOLO26, YOLOv10)のエンドツーエンドモードを上書きします。False に設定すると、従来の NMS パイプラインを使用して予測を実行でき、さらに iou 引数を利用できるようになります。詳細は エンドツーエンド検出ガイド を参照してください。 |
視覚化の引数:
| 引数 | タイプ | デフォルト | 説明 |
|---|---|---|---|
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 | int or None | None | バウンディングボックスの線の太さを指定します。Noneの場合、線の太さは画像サイズに基づいて自動的に調整されます。明瞭さのための視覚的なカスタマイズが可能です。 |
Link to this section画像およびビデオ形式#
YOLO26 は、ultralytics/data/utils.py で指定されているさまざまな画像およびビデオ形式をサポートしています。有効なサフィックスと予測コマンドの例については、以下の表を参照してください。
Link to this section画像#
下の表には、有効な Ultralytics 画像形式が含まれています。
HEIC/HEIF 形式には pi-heif が必要であり、これは初回使用時に自動的にインストールされます。AVIF は Pillow によってネイティブでサポートされています。
| 画像サフィックス | 予測コマンドの例 | 参照 |
|---|---|---|
.avif | yolo predict source=image.avif | AV1 画像ファイル形式 |
.bmp | yolo predict source=image.bmp | Microsoft BMP ファイル形式 |
.dng | yolo predict source=image.dng | Adobe DNG |
.heic | yolo predict source=image.heic | 高効率画像形式 |
.heif | yolo predict source=image.heif | 高効率画像形式 |
.jp2 | yolo predict source=image.jp2 | JPEG 2000 |
.jpeg | yolo predict source=image.jpeg | JPEG |
.jpeg2000 | yolo predict source=image.jpeg2000 | JPEG 2000 |
.jpg | yolo predict source=image.jpg | JPEG |
.mpo | yolo predict source=image.mpo | マルチピクチャオブジェクト |
.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 |
Link to this section動画#
以下の表は、サポートされている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 File Format |
.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 Project |
Link to this section結果の処理#
すべてのUltralyticsの predict() 呼び出しは、 Results オブジェクトのリストを返します:
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.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 inferenceResults オブジェクトには以下の属性があります:
| 属性 | タイプ | 説明 |
|---|---|---|
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オブジェクト。 |
semantic_mask | SemanticMask, optional | 画素単位のクラスマップを含むSemanticMaskオブジェクト。 |
speed | dict | 1画像あたりの前処理、推論、後処理の速度(ミリ秒)を含む辞書。 |
names | dict | クラスIDとクラス名をマッピングする辞書。 |
path | str | 画像ファイルへのパス。 |
save_dir | str, optional | 結果を保存するディレクトリ。 |
Link to this sectionタスク別の結果#
各予測は、画像またはフレームごとに1つの Results オブジェクトを返します。上記の共通フィールドは常に利用可能ですが、タスク固有の予測データは以下のフィールドに格納されます。座標、確信度、および確率テンソルは、半精度が使用されない限り torch.float32 であり、半精度の場合は torch.float16 になります。 result.numpy() の実行後、テンソルは対応するNumPyデータ型を持つNumPy配列になります。インスタンスマスクは torch.uint8 バイナリテンソルであり、セマンティックマスクはクラス数に応じて torch.uint8、 torch.int16、または torch.int32 の最小の実用的な整数データ型を使用します。
| 属性 | タイプ | 形状 | 説明 |
|---|---|---|---|
result.boxes | Boxes | (N) | 検出ボックス。 |
result.boxes.data | torch.float32 | (N,6/7) | 未加工の [x1,y1,x2,y2,conf,cls]。必要に応じてトラックIDを含みます。 |
result.boxes.xyxy | torch.float32 | (N,4) | xyxy ピクセルボックス。 |
result.boxes.conf | torch.float32 | (N,) | 確信度スコア。 |
result.boxes.cls | torch.float32 | (N,) | クラスID。名前を表示するには int にキャストします。 |
Results オブジェクトには以下のメソッドがあります:
| メソッド | 戻り値の型 | 説明 |
|---|---|---|
update() | None | ボックス、マスク、確率、OBB、キーポイント、セマンティックマスクなどの新しいデータでResultsオブジェクトを更新します。 |
cpu() | Results | すべてのテンソルをCPUメモリに移動したResultsオブジェクトのコピーを返します。 |
numpy() | Results | すべてのテンソルをNumPy配列に変換したResultsオブジェクトのコピーを返します。 |
cuda() | Results | すべてのテンソルをGPUメモリに移動したResultsオブジェクトのコピーを返します。 |
to() | Results | 指定されたデバイスとdtypeにテンソルを移動したResultsオブジェクトのコピーを返します。 |
new() | Results | 同じ画像、パス、名前、速度属性を持つ新しいResultsオブジェクトを作成します。 |
plot() | np.ndarray | 入力BGR画像に検出結果を描画し、注釈付き画像を返します。 |
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 クラスドキュメント を参照してください。
Link to this sectionボックス#
Boxes オブジェクトは、バウンディングボックスのインデックス付け、操作、および異なる形式への変換に使用できます。
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.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 クラスのドキュメントを参照してください。
Link to this sectionMasks#
Masks オブジェクトを使用して、インデックス付け、操作、およびマスクのセグメントへの変換を行うことができます。
from ultralytics import YOLO
# Load a pretrained YOLO26n-seg Segment model
model = YOLO("yolo26n-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 masksMasks クラスのメソッドとプロパティ(名前、型、説明を含む)をまとめた表を次に示します。
| 名前 | タイプ | 説明 |
|---|---|---|
data | プロパティ (torch.Tensor) | torch.uint8 バイナリマスクテンソル。形状は (N,H,W) で、値は 0 または 1 です。 |
cpu() | メソッド | マスクテンソルをCPUメモリ上で返します。 |
numpy() | メソッド | マスクテンソルをNumPy配列として返します。 |
cuda() | メソッド | マスクテンソルをGPUメモリ上で返します。 |
to() | メソッド | 指定されたデバイスとdtypeでマスクテンソルを返します。 |
xyn | プロパティ (list[np.ndarray]) | 正規化されたマスクポリゴンのリストです。 |
xy | プロパティ (list[np.ndarray]) | ピクセル座標におけるマスクポリゴンのリストです。 |
詳細は、Masks クラスのドキュメントを参照してください。
Link to this sectionSemanticMask#
SemanticMask は、セマンティックセグメンテーション結果の1つの密なクラスマップを保持します。Masks とは異なり、オブジェクトごとに1つのバイナリマスクを含まず、ポリゴンヘルパーも提供しません。
from ultralytics import YOLO
# Load a pretrained YOLO26n-sem Semantic model
model = YOLO("yolo26n-sem.pt")
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg") # results list
# View results
for r in results:
print(r.semantic_mask.data) # print the H x W class-ID map| 名前 | タイプ | 説明 |
|---|---|---|
data | プロパティ (torch.Tensor) | 形状 (H,W) のクラスIDマップ。dtypeはクラス数に応じて torch.uint8、torch.int16、または torch.int32 が選択されます。 |
shape | プロパティ (tuple) | クラスマップの形状。通常は result.orig_shape と一致します。 |
cpu() | メソッド | セマンティックマスクテンソルをCPUメモリ上で返します。 |
numpy() | メソッド | セマンティックマスクテンソルをNumPy配列として返します。 |
cuda() | メソッド | セマンティックマスクテンソルをGPUメモリ上で返します。 |
to() | メソッド | 指定されたデバイスとdtypeでセマンティックマスクテンソルを返します。 |
Link to this sectionKeypoints#
Keypoints オブジェクトを使用して、インデックス付け、操作、および座標の正規化を行うことができます。
from ultralytics import YOLO
# Load a pretrained YOLO26n-pose Pose model
model = YOLO("yolo26n-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 keypointsKeypoints クラスのメソッドとプロパティ(名前、型、説明を含む)をまとめた表を次に示します。
| 名前 | タイプ | 説明 |
|---|---|---|
cpu() | メソッド | キーポイントテンソルをCPUメモリ上で返します。 |
numpy() | メソッド | キーポイントテンソルをNumPy配列として返します。 |
cuda() | メソッド | キーポイントテンソルをGPUメモリ上で返します。 |
to() | メソッド | 指定されたデバイスとdtypeでキーポイントテンソルを返します。 |
xyn | プロパティ (torch.Tensor) | テンソルとして表される正規化されたキーポイントのリストです。 |
xy | プロパティ (torch.Tensor) | テンソルとして表されるピクセル座標のキーポイントのリストです。 |
conf | プロパティ (torch.Tensor) | 利用可能な場合はキーポイントの信頼度値を返し、それ以外の場合はNoneを返します。 |
詳細は、Keypoints クラスのドキュメントを参照してください。
Link to this sectionProbs#
Probs オブジェクトを使用して、インデックス付け、分類の top1 および top5 のインデックスとスコアの取得を行うことができます。
from ultralytics import YOLO
# Load a pretrained YOLO26n-cls Classify model
model = YOLO("yolo26n-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 probabilitiesProbs クラスのメソッドとプロパティをまとめた表を次に示します。
| 名前 | タイプ | 説明 |
|---|---|---|
cpu() | メソッド | CPUメモリ上のprobsテンソルのコピーを返します。 |
numpy() | メソッド | NumPy配列としてのprobsテンソルのコピーを返します。 |
cuda() | メソッド | GPUメモリ上のprobsテンソルのコピーを返します。 |
to() | メソッド | 指定されたデバイスとdtypeでprobsテンソルのコピーを返します。 |
top1 | プロパティ (int) | トップ1クラスのインデックスです。 |
top5 | プロパティ (list[int]) | トップ5クラスのインデックスです。 |
top1conf | プロパティ (torch.Tensor) | トップ1クラスの信頼度です。 |
top5conf | プロパティ (torch.Tensor) | トップ5クラスの信頼度です。 |
詳細は、Probs クラスのドキュメントを参照してください。
Link to this sectionOBB(指向性バウンディングボックス)#
OBB オブジェクトを使用して、インデックス付け、操作、および回転バウンディングボックスの異なる形式への変換を行うことができます。
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n-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 boxesOBB クラスのメソッドとプロパティ(名前、型、説明を含む)をまとめた表を次に示します。
| 名前 | タイプ | 説明 |
|---|---|---|
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 クラスのドキュメントを参照してください。
Link to this section結果のプロット#
The plot() method in Results objects facilitates visualization of predictions by overlaying detected objects (such as bounding boxes, masks, keypoints, and probabilities) onto the original image. This method returns the annotated image as a NumPy array, allowing for easy display or saving.
from PIL import Image
from ultralytics import YOLO
# Load a pretrained YOLO26n model
model = YOLO("yolo26n.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")Link to this sectionplot() メソッドのパラメータ#
plot() メソッドは、出力をカスタマイズするための様々な引数をサポートしています。
| 引数 | タイプ | 説明 | デフォルト |
|---|---|---|---|
conf | bool | 検出の信頼度スコアを含めます。 | True |
line_width | float | バウンディングボックスの線の幅。None の場合は画像サイズに合わせてスケールされます。 | None |
font_size | float | テキストのフォントサイズ。None の場合は画像サイズに合わせてスケールされます。 | None |
font | str | テキスト注釈用のフォント名です。 | 'Arial.ttf' |
pil | bool | 画像をPILイメージオブジェクトとして返します。 | 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 | saveがTrueの場合にアノテーション付き画像を保存するファイルのパスと名前です。 | None |
color_mode | str | カラーモード(例: 'instance' または 'class')を指定します。 | 'class' |
txt_color | tuple[int, int, int] | バウンディングボックスおよび画像分類ラベルのBGRテキストカラーです。 | (255, 255, 255) |
Link to this sectionスレッドセーフな推論#
異なるスレッドで複数の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=("yolo26n.pt", "image1.jpg")).start()
Thread(target=thread_safe_predict, args=("yolo26n.pt", "image2.jpg")).start()YOLOモデルによるスレッドセーフな推論の詳細およびステップバイステップの手順については、YOLO Thread-Safe Inference Guideを参照してください。このガイドでは、一般的な落とし穴を回避し、マルチスレッド推論をスムーズに実行するために必要なすべての情報を提供します。
Link to this sectionストリーミングソースのforループ#
以下は、OpenCV (cv2) とYOLOを使用してビデオフレームで推論を実行するPythonスクリプトです。このスクリプトは、必要なパッケージ (opencv-python および ultralytics) が既にインストールされていることを前提としています。
import cv2
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo26n.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' を押すと終了できます。
Link to this sectionよくある質問 (FAQ)#
Link to this sectionUltralytics YOLOとは何ですか。また、リアルタイム推論のためのpredictモードとはどのようなものですか?#
Ultralytics YOLOは、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、および分類のための最先端モデルです。そのpredictモードを使用すると、ユーザーは画像、ビデオ、ライブストリームなどのさまざまなデータソースに対して高速な推論を実行できます。パフォーマンスと汎用性を考慮して設計されており、バッチ処理やストリーミングモードも提供しています。機能の詳細については、Ultralytics YOLO predictモードを確認してください。
Link to this sectionUltralytics YOLOを使用してさまざまなデータソースで推論を実行するにはどうすればよいですか?#
Ultralytics YOLOは、個々の画像、ビデオ、ディレクトリ、URL、ストリームなど、幅広いデータソースを処理できます。データソースは model.predict() 呼び出しで指定します。例えば、ローカル画像には 'image.jpg' を、URLには 'https://ultralytics.com/images/bus.jpg' を使用します。ドキュメントにあるさまざまな推論ソースの詳細な例を確認してください。
Link to this sectionYOLOの推論速度とメモリ使用量を最適化するにはどうすればよいですか?#
推論速度の最適化とメモリの効率的な管理を行うには、予測メソッドの呼び出し時に stream=True を設定してストリーミングモードを使用します。ストリーミングモードでは、すべてのフレームをメモリに読み込むのではなく、メモリ効率の良い Results オブジェクトのジェネレーターが生成されます。長いビデオや大規模なデータセットを処理する場合、ストリーミングモードは特に有効です。ストリーミングモードの詳細をご覧ください。
Link to this sectionUltralytics YOLOはどのような推論引数をサポートしていますか?#
YOLOの model.predict() メソッドは、conf、iou、imgsz、device などのさまざまな引数をサポートしています。これらの引数を使用して、信頼度のしきい値、画像サイズ、計算に使用するデバイスなどのパラメーターを設定し、推論プロセスをカスタマイズできます。これらの引数の詳細な説明は、推論引数セクションにあります。
Link to this sectionYOLO予測の結果を視覚化して保存するにはどうすればよいですか?#
YOLOで推論を実行した後、Results オブジェクトにはアノテーション付き画像を表示および保存するためのメソッドが含まれています。result.show() や result.save(filename="result.jpg") などのメソッドを使用して、結果を視覚化および保存できます。ファイル名のパス内に存在しない親ディレクトリは自動的に作成されます (例: result.save("path/to/result.jpg"))。これらのメソッドの包括的なリストについては、結果の操作セクションを参照してください。


