Python 使用方法
YOLO11Python 使用法のドキュメントへようこそ!このガイドは、オブジェクト検出、セグメンテーション、分類のために、YOLO11をPython プロジェクトにシームレスに統合するためのものです。ここでは、事前に学習されたモデルをロードして使用する方法、新しいモデルを学習する方法、画像に対して予測を実行する方法を学びます。使いやすいPython インターフェースは、YOLO11をPython プロジェクトに組み込もうとしている人にとって貴重なリソースであり、高度な物体検出機能を素早く実装することができます。さっそく始めてみよう!
見るんだ: マスタリングUltralytics YOLO11:Python
例えば、数行のコードだけで、モデルをロードし、訓練し、検証セットで性能を評価し、ONNX フォーマットにエクスポートすることもできる。
Python
from ultralytics import YOLO
# Create a new YOLO model from scratch
model = YOLO("yolo11n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo11n.pt")
# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)
# Evaluate the model's performance on the validation set
results = model.val()
# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")
# Export the model to ONNX format
success = model.export(format="onnx")
電車
Trainモードは、カスタムデータセットでYOLO11モデルを学習するために使用します。このモードでは、指定されたデータセットとハイパーパラメータを使ってモデルを学習します。学習プロセスでは、画像内のオブジェクトのクラスと位置を正確に予測できるように、モデルのパラメータを最適化します。
電車
バル
Valモードは、YOLO11モデルの学習後の検証に使用される。このモードでは、モデルの精度と汎化性能を測定するために、モデルを検証集合で評価する。このモードは、モデルのハイパーパラメータをチューニングして性能を向上させるために使用することができる。
バル
予測する
予測モードは、新しい画像やビデオに対して学習済みのYOLO11モデルを使用して予測を行うために使用されます。このモードでは、モデルはチェックポイント・ファイルからロードされ、ユーザーは推論を実行するために画像やビデオを提供することができます。モデルは、入力画像またはビデオ内のオブジェクトのクラスと位置を予測します。
予測する
import cv2
from PIL import Image
from ultralytics import YOLO
model = YOLO("model.pt")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True) # Display preds. Accepts all YOLO predict arguments
# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True) # save plotted images
# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True) # save predictions as labels
# from list of PIL/ndarray
results = model.predict(source=[im1, im2])
# results would be a list of Results object including all the predictions by default
# but be careful as it could occupy a lot memory when there're many images,
# especially the task is segmentation.
# 1. return as a list
results = model.predict(source="folder")
# results would be a generator which is more friendly to memory by setting stream=True
# 2. return as a generator
results = model.predict(source=0, stream=True)
for result in results:
# Detection
result.boxes.xyxy # box with xyxy format, (N, 4)
result.boxes.xywh # box with xywh format, (N, 4)
result.boxes.xyxyn # box with xyxy format but normalized, (N, 4)
result.boxes.xywhn # box with xywh format but normalized, (N, 4)
result.boxes.conf # confidence score, (N, 1)
result.boxes.cls # cls, (N, 1)
# Segmentation
result.masks.data # masks, (N, H, W)
result.masks.xy # x,y segments (pixels), List[segment] * N
result.masks.xyn # x,y segments (normalized), List[segment] * N
# Classification
result.probs # cls prob, (num_class, )
# Each result is composed of torch.Tensor by default,
# in which you can easily use following functionality:
result = result.cuda()
result = result.cpu()
result = result.to("cpu")
result = result.numpy()
輸出
エクスポートモードは、YOLO11モデルを展開に使用できる形式にエクスポートするために使用します。このモードでは、モデルは他のソフトウェア・アプリケーションやハードウェア・デバイスで使用できる形式に変換されます。このモードは、本番環境にモデルをデプロイするときに便利です。
輸出
トラック
トラック・モードは、YOLO11モデルを使用してリアルタイムで物体を追跡するために使用されます。このモードでは、モデルはチェックポイントファイルからロードされ、ユーザーはライブビデオストリームを提供してリアルタイムのオブジェクトトラッキングを実行することができます。このモードは、監視システムや自動運転車などのアプリケーションに便利です。
トラック
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load an official detection model
model = YOLO("yolo11n-seg.pt") # load an official segmentation model
model = YOLO("path/to/best.pt") # load a custom model
# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")
ベンチマーク
ベンチマーク・モードは、YOLO11のさまざまな書き出しフォーマットの速度と精度のプロファイリングに使用されます。ベンチマークは、エクスポートされたフォーマットのサイズ、その mAP50-95
メトリクス(オブジェクト検出とセグメンテーション用)または accuracy_top5
メトリックス(分類用)、およびONNX,OpenVINO,TensorRT などの様々なエクスポート・フォーマットにおける、画像あたりの推論時間(ミリ秒)。この情報は、ユーザーがスピードと精度の要件に基づいて、特定のユースケースに最適なエクスポートフォーマットを選択するのに役立ちます。
ベンチマーク
トレーナーの活用
YOLO
モデルクラスはトレーナークラスの高レベルラッパーです。それぞれのYOLO タスクは BaseTrainer
.
検出トレーナーの例
from ultralytics.models.yolo import DetectionPredictor, DetectionTrainer, DetectionValidator
# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best
# Validator
val = DetectionValidator(args=...)
val(model=trained_model)
# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)
# resume from last weight
overrides["resume"] = trainer.last
trainer = detect.DetectionTrainer(overrides=overrides)
カスタムタスクをサポートしたり、研究開発のアイデアを探求したりするために、トレーナーを簡単にカスタマイズすることができます。カスタマイズの詳細 Trainers
, Validators
そして Predictors
をカスタマイズセクションでプロジェクトのニーズに合わせて変更することができます。
よくあるご質問
YOLO11を私のプロジェクト(Python )に統合し、オブジェクトを検出するにはどうすればよいですか?
Ultralytics YOLO11 をPython プロジェクトに統合するのは簡単です。事前に訓練されたモデルをロードすることも、ゼロから新しいモデルを訓練することもできる。始め方は以下の通りだ:
from ultralytics import YOLO
# Load a pretrained YOLO model
model = YOLO("yolo11n.pt")
# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
for result in results:
result.show()
予測モードのセクションでより詳細な例をご覧ください。
YOLO11にはどのようなモードがありますか?
Ultralytics YOLO11には、さまざまな機械学習ワークフローに対応するさまざまなモードが用意されている。これらには以下が含まれる:
- 列車:カスタムデータセットを使ってモデルを訓練する。
- バル:検証セットでモデルの性能を検証する。
- 予測:新しい画像やビデオストリームを予測します。
- 輸出:ONNX,TensorRT のような様々なフォーマットにモデルをエクスポートします。
- トラック:ビデオストリームにおけるリアルタイム物体追跡
- ベンチマーク:さまざまな構成でモデルのパフォーマンスをベンチマークします。
それぞれのモードは、モデル開発と展開のさまざまな段階に対して包括的な機能を提供するように設計されている。
自分のデータセットを使ってカスタムYOLO11モデルをトレーニングするには?
カスタムYOLO11モデルをトレーニングするには、データセットとその他のハイパーパラメータを指定する必要があります。簡単な例を示します:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo11n.yaml")
# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)
トレーニングの詳細および使用例へのハイパーリンクについては、トレインモードのページをご覧ください。
YOLO11モデルをデプロイ用にエクスポートするには?
YOLO11モデルを配備に適したフォーマットでエクスポートするには export
関数を使用します。例えば、モデルをONNX フォーマットにエクスポートすることができます:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx")
様々なエクスポートオプションについては、エクスポートモードのドキュメントを参照してください。
YOLO11モデルを異なるデータセットで検証できますか?
はい、YOLO11モデルを異なるデータセットで検証することは可能です。トレーニング後、検証モードを使ってパフォーマンスを評価することができます:
from ultralytics import YOLO
# Load a YOLO11 model
model = YOLO("yolo11n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=5)
# Validate the model on a different dataset
model.val(data="path/to/separate/data.yaml")
詳細な使用例と使用方法については、ヴァルモードのページをご覧ください。