Pythonの使用方法#
Ultralytics YOLO Python Usage ドキュメントへようこそ!このガイドは、Ultralytics YOLOをPythonプロジェクトにシームレスに統合し、object detection、instance segmentation、semantic segmentation、depth estimation、classificationを実行できるように設計されています。ここでは、事前学習済みモデルのロードと使用方法、新しいモデルの学習、画像に対する予測の実行方法を学びます。使いやすいPythonインターフェースは、YOLOをPythonプロジェクトに組み込みたいと考えているすべての人にとって貴重なリソースであり、高度な物体検出機能を素早く実装できるようにします。それでは始めましょう!
Watch: Mastering Ultralytics YOLO: Python
例えば、ユーザーはわずか数行のコードで、モデルのロード、学習、検証セットでのパフォーマンス評価、さらにはexport it to ONNX formatを行うことができます。
from ultralytics import YOLO
# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.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 modeは、カスタムデータセットでYOLOモデルを学習するために使用されます。このモードでは、指定されたデータセットとハイパーパラメータを使用してモデルが学習されます。学習プロセスには、画像内のオブジェクトのクラスと位置を正確に予測できるようにモデルのパラメータを最適化することが含まれます。
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)検証#
Val modeは、学習済みYOLOモデルを検証するために使用されます。このモードでは、検証セットでモデルを評価し、そのaccuracyと汎化性能を測定します。このモードを使用してモデルのハイパーパラメータを調整し、パフォーマンスを向上させることができます。
from ultralytics import YOLO
# Load a YOLO model
model = YOLO("yolo26n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=5)
# Validate on training data
model.val()予測#
Predict modeは、学習済みYOLOモデルを使用して新しい画像や動画に対して予測を行うために使用されます。このモードでは、チェックポイントファイルからモデルがロードされ、ユーザーは画像や動画を提供して推論を実行できます。モデルは、入力された画像や動画内のオブジェクトのクラスと位置を予測します。
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])エクスポート#
Export modeは、YOLOモデルをデプロイメントに使用できるフォーマットにエクスポートするために使用されます。このモードでは、モデルが他のソフトウェアアプリケーションやハードウェアデバイスで使用できるフォーマットに変換されます。このモードは、モデルを本番環境にデプロイするときに役立ちます。
公式のYOLOモデルを動的バッチサイズおよび画像サイズでONNXにエクスポートします。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)トラッキング#
Track modeは、YOLOモデルを使用してリアルタイムでオブジェクトを追跡するために使用されます。このモードでは、チェックポイントファイルからモデルがロードされ、ユーザーはライブビデオストリームを提供してリアルタイムのオブジェクト追跡を実行できます。このモードは、監視システムやself-driving carsなどのアプリケーションに役立ちます。
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official detection model
model = YOLO("yolo26n-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")ベンチマーク#
Benchmark modeは、YOLOのさまざまなエクスポートフォーマットの速度と精度をプロファイルするために使用されます。ベンチマークは、エクスポートされたフォーマットのサイズ、物体検出とセグメンテーションのためのmAP50-95メトリクス、または分類のためのaccuracy_top1メトリクス、およびONNX、OpenVINO、TensorRTなどのさまざまなエクスポートフォーマットにおける画像あたりの推論時間(ミリ秒)に関する情報を提供します。この情報は、ユーザーが速度と精度の要件に基づいて特定の使用例に最適なエクスポートフォーマットを選択するのに役立ちます。
公式のYOLOモデルの全エクスポート形式をベンチマークします。
from ultralytics.utils.benchmarks import benchmark
# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)トレーナーの使用#
YOLOモデルクラスは、Trainerクラスの高水準ラッパーとして機能します。各YOLOタスクには独自のトレーナーがあり、これはBaseTrainerから継承されます。このアーキテクチャにより、machine learning workflowsにおける柔軟性とカスタマイズ性が向上します。
from ultralytics.models.yolo.detect 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 = DetectionTrainer(overrides=overrides)トレーナーを簡単にカスタマイズして、カスタムタスクをサポートしたり、研究開発のアイデアを探索したりできます。Ultralytics YOLOのモジュール式デザインにより、新しいcomputer visionタスクに取り組んでいる場合でも、パフォーマンスを向上させるために既存のモデルを微調整している場合でも、フレームワークを特定のニーズに適応させることができます。
よくある質問 (FAQ)#
Ultralytics YOLOをPythonプロジェクトに統合するのは簡単です。学習済みモデルを読み込むか、ゼロから新しいモデルを学習させることができます。開始方法は以下の通りです。
from ultralytics import YOLO # Load a pretrained YOLO model model = YOLO("yolo26n.pt") # Perform object detection on an image results = model("https://ultralytics.com/images/bus.jpg") # Visualize the results for result in results: result.show()より詳細な例については、Predict Modeセクションをご覧ください。
Ultralytics YOLOは、さまざまなmachine learningワークフローに対応するためのさまざまなモードを提供します。これらには以下が含まれます:
- Train: カスタムデータセットを使用してモデルを学習します。
- Val: 検証セットでモデルのパフォーマンスを検証します。
- Predict: 新しい画像やビデオストリームに対して予測を行います。
- Export: モデルをONNXやTensorRTなどのさまざまなフォーマットにエクスポートします。
- Track: ビデオストリームでのリアルタイムオブジェクト追跡。
- Benchmark: さまざまな設定でのモデルのパフォーマンスをベンチマークします。
各モードは、model development and deploymentのさまざまなステージに向けて包括的な機能を提供するように設計されています。
カスタムYOLOモデルを学習するには、データセットとその他のhyperparametersを指定する必要があります。簡単な例は次のとおりです:
from ultralytics import YOLO # Load the YOLO model model = YOLO("yolo26n.yaml") # Train the model with custom dataset model.train(data="path/to/your/dataset.yaml", epochs=10)学習の詳細や使用例へのハイパーリンクについては、Train Modeページをご覧ください。
デプロイに適したフォーマットでのYOLOモデルのエクスポートは、
export関数を使用することで簡単に行えます。例えば、モデルをONNXフォーマットにエクスポートできます:from ultralytics import YOLO # Load the YOLO model model = YOLO("yolo26n.pt") # Export the model to ONNX format model.export(format="onnx")さまざまなエクスポートオプションについては、Export Modeのドキュメントをご参照ください。
はい、異なるデータセットでYOLOモデルを検証することは可能です。学習後、検証モードを使用してパフォーマンスを評価できます。
from ultralytics import YOLO # Load a YOLO model model = YOLO("yolo26n.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")詳細な例と使用方法については、Val Modeページをご確認ください。