Pythonの利用方法#
Ultralytics YOLO Pythonの利用方法ドキュメントへようこそ!このガイドは、Ultralytics YOLOをPythonプロジェクトにシームレスに統合し、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、深度推定、分類を実行できるように設計されています。ここでは、事前学習済みモデルのロードと使用方法、新しいモデルのトレーニング、画像に対する予測の実行方法を学びます。使いやすいPythonインターフェースは、YOLOをPythonプロジェクトに組み込んで高度な物体検出機能を素早く実装したいすべての方にとって貴重なリソースです。さっそく始めましょう!
Watch: Mastering Ultralytics YOLO: Python
例えば、わずか数行のコードで、モデルのロード、トレーニング、検証セットでのパフォーマンス評価、さらにはONNXフォーマットへのエクスポートを行うことができます。
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")トレーニング#
トレーニングモードは、カスタムデータセットでYOLOモデルをトレーニングするために使用されます。このモードでは、指定されたデータセットとハイパーパラメータを使用してモデルがトレーニングされます。トレーニングプロセスには、画像内の物体のクラスと位置を正確に予測できるようにモデルのパラメータを最適化することが含まれます。
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)検証#
検証モードは、トレーニング後のYOLOモデルを検証するために使用されます。このモードでは、検証セットでモデルを評価して、精度と汎化性能を測定します。このモードを使用してモデルのハイパーパラメータを調整し、パフォーマンスを向上させることができます。
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()推論#
予測モードは、トレーニング済みのYOLO modelを使用して新しい画像や動画に対する予測を行うために使用されます。このモードでは、チェックポイントファイルからモデルがロードされ、ユーザーは画像や動画を提供して推論を実行できます。モデルは入力された画像や動画内の物体のクラスと位置を予測します。
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])エクスポート#
エクスポートモードは、YOLO modelをデプロイに使用できるフォーマットにエクスポートするために使用されます。このモードでは、モデルが他のソフトウェアアプリケーションやハードウェアデバイスで使用できるフォーマットに変換されます。このモードは、本番環境にモデルをデプロイするときに役立ちます。
公式のYOLO modelを動的なバッチサイズと画像サイズでONNXにエクスポートします。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)トラッキング#
トラッキングモードは、YOLO modelを使用してリアルタイムで物体を追跡するために使用されます。このモードでは、チェックポイントファイルからモデルがロードされ、ユーザーはライブビデオストリームを提供してリアルタイムの物体追跡を実行できます。このモードは、監視システムや自動運転車などのアプリケーションに役立ちます。
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")ベンチマーク#
ベンチマークモードは、YOLOのさまざまなエクスポートフォーマットの速度と精度をプロファイリングするために使用されます。ベンチマークでは、エクスポートされたフォーマットのサイズ、物体検出とセグメンテーションのためのmAP50-95メトリクス、または分類のためのaccuracy_top1メトリクス、およびONNX、OpenVINO、TensorRTなどのさまざまなエクスポートフォーマット全体での画像あたりのミリ秒単位の推論時間に関する情報を提供します。この情報は、ユーザーが速度と精度の要件に基づいて、特定のユースケースに最適なエクスポートフォーマットを選択するのに役立ちます。
すべてのエクスポートフォーマットで公式のYOLO modelのベンチマークを実行します。
from ultralytics.utils.benchmarks import benchmark
# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)トレーナーの使用#
YOLO modelクラスは、Trainerクラスの高レベルラッパーとして機能します。各YOLOタスクには独自のトレーナーがあり、BaseTrainerから継承します。このアーキテクチャにより、機械学習ワークフローにおける柔軟性とカスタマイズ性が向上します。
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator
overrides = {"model": "yolo26n.pt", "data": "coco8.yaml", "epochs": 3}
# Trainer
trainer = DetectionTrainer(overrides=overrides)
trainer.train()
trained_model = trainer.best # path to best.pt
# Validator
validator = DetectionValidator(args={"data": "coco8.yaml"})
validator(model=trained_model)
# Predictor
predictor = DetectionPredictor(overrides={"model": trained_model})
predictor(source="https://ultralytics.com/images/bus.jpg")
# Resume from the last checkpoint
trainer = DetectionTrainer(overrides={**overrides, "resume": trainer.last})トレーナーを簡単にカスタマイズして、カスタムタスクをサポートしたり、研究開発のアイデアを探索したりできます。Ultralytics YOLOのモジュール式設計により、新しいコンピュータビジョンタスクに取り組んでいる場合でも、パフォーマンスを向上させるために既存のモデルを微調整している場合でも、フレームワークを特定のニーズに適応させることができます。
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()より詳細な例については、予測モードセクションを参照してください。
Ultralytics YOLOは、さまざまな機械学習ワークフローに対応するためのさまざまなモードを提供します。これらには以下が含まれます:
- Train: カスタムデータセットを使用してモデルをトレーニングします。
- Val: 検証セットでモデルのパフォーマンスを検証します。
- Predict: 新しい画像やビデオストリームで予測を行います。
- Export: モデルをONNXやTensorRTなどのさまざまなフォーマットにエクスポートします。
- Track: ビデオストリームでのリアルタイムの物体追跡。
- Benchmark: さまざまな構成でモデルのパフォーマンスをベンチマークします。
各モードは、モデルの開発とデプロイのさまざまな段階に向けて包括的な機能を提供するように設計されています。
デプロイに適した形式でのYOLO modelのエクスポートは、
export関数を使用すると簡単です。たとえば、モデルをONNXフォーマットにエクスポートできます:from ultralytics import YOLO # Load the YOLO model model = YOLO("yolo26n.pt") # Export the model to ONNX format model.export(format="onnx")さまざまなエクスポートオプションについては、エクスポートモードのドキュメントを参照してください。
はい、異なるデータセットでYOLO modelを検証することが可能です。トレーニング後、検証モードを使用してパフォーマンスを評価できます:
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")詳細な例と使用方法については、検証モードページを確認してください。