Pythonの使用方法
Ultralytics YOLO Python使用ドキュメントへようこそ!このガイドは、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、および分類のために、PythonプロジェクトへUltralytics YOLOをシームレスに統合できるように設計されています。ここでは、事前学習済みモデルの読み込みと使用方法、新しいモデルの学習方法、そして画像に対する予測の実行方法を学びます。使いやすい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")学習(Train)
Trainモードは、カスタムデータセットでYOLOモデルを学習するために使用されます。このモードでは、指定されたデータセットとハイパーパラメータを使用してモデルが学習されます。学習プロセスには、画像内のオブジェクトのクラスと位置を正確に予測できるようにモデルのパラメータを最適化することが含まれます。
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)検証(Val)
Valモードは、学習後の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()予測 (Predict)
Predictモードは、学習済みの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)
Exportモードは、YOLOモデルをデプロイに使用できる形式にエクスポートするために使用されます。このモードでは、モデルが他のソフトウェアアプリケーションやハードウェアデバイスで使用できる形式に変換されます。このモードは、本番環境にモデルをデプロイする際に便利です。
公式のYOLOモデルを、動的バッチサイズおよび画像サイズ指定でONNXにエクスポートします。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)トラッキング(Track)
Trackモードは、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")ベンチマーク(Benchmark)
Benchmarkモードは、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モデルクラスは、Trainerクラスの高度なラッパーとして機能します。各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
Pythonプロジェクトに物体検出用のYOLOを統合するにはどうすればよいですか?
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セクションを参照してください。
YOLOにはどのようなモードがありますか?
Ultralytics YOLOは、さまざまな機械学習ワークフローに対応するために、多様なモードを提供しています。これらには以下が含まれます:
- Train: カスタムデータセットを使用してモデルを学習します。
- Val: 検証セットでモデルのパフォーマンスを検証します。
- Predict: 新しい画像やビデオストリームで予測を行います。
- Export: モデルをONNXやTensorRTなどのさまざまな形式にエクスポートします。
- Track: ビデオストリームでのリアルタイム物体追跡。
- Benchmark: 異なる構成間でのモデルパフォーマンスのベンチマーク。
各モードは、モデル開発およびデプロイメントのさまざまな段階で包括的な機能を提供するように設計されています。
自分のデータセットを使用してカスタム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)学習の詳細と使用例へのリンクについては、Train Modeページをご覧ください。
デプロイ用に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")さまざまなエクスポートオプションについては、Export Modeドキュメントを参照してください。
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")詳細な例と使用方法については、Val Modeページを確認してください。