Pythonの使用方法

Ultralytics YOLO Python使用ドキュメントへようこそ!このガイドは、物体検出セグメンテーション、および分類のために、Ultralytics YOLOをPythonプロジェクトへシームレスに統合できるよう設計されています。ここでは、事前学習済みモデルの読み込みと使用方法、新しいモデルの学習方法、画像に対する予測の実行方法を学びます。使いやすいPythonインターフェースは、YOLOをPythonプロジェクトに組み込もうとしているすべての方にとって有益なリソースであり、高度な物体検出機能を素早く実装できます。それでは始めましょう!



Watch: Mastering Ultralytics YOLO: Python

例えば、ユーザーはわずか数行のコードでモデルの読み込み、学習、検証セットでのパフォーマンス評価、さらにはONNX形式へのエクスポートを行うことができます。

Python
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

学習モードは、カスタムデータセットでYOLOモデルを学習するために使用されます。このモードでは、指定されたデータセットとハイパーパラメータを使用してモデルが学習されます。学習プロセスには、画像内の物体のクラスと位置を正確に予測できるように、モデルのパラメータを最適化することが含まれます。

Train
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # pass any model type
results = model.train(epochs=5)

学習の例

Val

検証モードは、学習済みのYOLOモデルを検証するために使用されます。このモードでは、モデルを検証セットで評価し、その精度と汎化性能を測定します。このモードは、モデルのパフォーマンスを向上させるためにハイパーパラメータを調整する際にも使用できます。

Val
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)

予測モードは、学習済みのYOLOモデルを使用して、新しい画像や動画に対して予測を行うために使用されます。このモードでは、チェックポイントファイルからモデルが読み込まれ、ユーザーが提供した画像や動画に対して推論を実行できます。モデルは、入力された画像や動画内の物体のクラスと位置を予測します。

推論 (Predict)
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

エクスポートモードは、デプロイに使用できる形式にYOLOモデルをエクスポートするために使用されます。このモードでは、モデルは他のソフトウェアアプリケーションやハードウェアデバイスで使用できる形式に変換されます。このモードは、モデルを本番環境にデプロイする際に役立ちます。

Export

公式のYOLOモデルを、動的なバッチサイズと画像サイズを指定してONNXにエクスポートします。

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)

エクスポートの例

トラッキング

トラッキングモードは、YOLOモデルを使用してリアルタイムで物体を追跡するために使用されます。このモードでは、チェックポイントファイルからモデルが読み込まれ、ユーザーが提供するライブビデオストリームに対してリアルタイムの物体追跡を実行できます。このモードは、監視システムや自動運転車などのアプリケーションに役立ちます。

トラッキング
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_top5メトリクス(分類用)、そしてONNX、OpenVINO、TensorRTなどのさまざまなエクスポート形式における画像あたりのミリ秒単位の推論時間に関する情報が提供されます。この情報は、ユーザーが速度と精度の要件に基づいて、特定のユースケースに最適なエクスポート形式を選択するのに役立ちます。

ベンチマーク

すべてのエクスポート形式にわたって公式YOLOモデルのベンチマークを実行します。

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, half=False, device=0)

ベンチマークの例

トレーナーの使用

YOLOモデルクラスは、トレーナークラスのハイレベルなラッパーとして機能します。各YOLOタスクには独自のトレーナーがあり、これらはBaseTrainerを継承しています。このアーキテクチャにより、機械学習ワークフローにおける柔軟性とカスタマイズ性が向上します。

検出トレーナーの例
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のモジュール式設計により、新しいコンピュータビジョンタスクに取り組んでいる場合でも、既存のモデルを微調整してパフォーマンスを向上させる場合でも、フレームワークを特定のニーズに適応させることができます。

カスタマイズチュートリアル

FAQ

物体検出のためにYOLOをPythonプロジェクトに統合するにはどうすればよいですか?

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()

詳細な例については、予測モードのセクションを参照してください。

YOLOで使用可能なモードにはどのようなものがありますか?

Ultralytics YOLOは、さまざまな機械学習ワークフローに対応するために、多様なモードを提供しています。これには以下が含まれます。

  • 学習: カスタムデータセットを使用してモデルを学習します。
  • 検証: 検証セットでモデルのパフォーマンスを検証します。
  • 予測: 新しい画像や動画ストリームに対して予測を行います。
  • エクスポート: モデルをONNXやTensorRTなどのさまざまな形式にエクスポートします。
  • トラッキング: 動画ストリーム内のリアルタイム物体追跡。
  • ベンチマーク: さまざまな設定間でのモデルパフォーマンスのベンチマーク。

各モードは、モデルの開発とデプロイのさまざまな段階において、包括的な機能を提供するように設計されています。

自分のデータセットを使用してカスタムYOLOモデルを学習するにはどうすればよいですか?

カスタムYOLOモデルを学習するには、データセットとその他のハイパーパラメータを指定する必要があります。簡単な例を次に示します。

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)

学習の詳細や使用例へのハイパーリンクについては、学習モードのページをご覧ください。

デプロイ用にYOLOモデルをエクスポートするにはどうすればよいですか?

export関数を使用すると、デプロイに適した形式でYOLOモデルを簡単にエクスポートできます。例えば、モデルをONNX形式にエクスポートするには以下のようにします。

from ultralytics import YOLO

# Load the YOLO model
model = YOLO("yolo26n.pt")

# Export the model to ONNX format
model.export(format="onnx")

さまざまなエクスポートオプションについては、エクスポートモードのドキュメントを参照してください。

YOLOモデルを異なるデータセットで検証できますか?

はい、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")

詳細な例と使用方法については、検証モードのページを確認してください。

コメント