Link to this sectionPythonの使用方法#
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")Link to this sectionトレーニング#
Trainモードは、カスタムデータセットでYOLOモデルを学習するために使用されます。このモードでは、指定されたデータセットとハイパーパラメータを使用してモデルが学習されます。学習プロセスには、画像内のオブジェクトのクラスと位置を正確に予測できるように、モデルのパラメータを最適化することが含まれます。
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)Link to this section検証#
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()Link to this section予測#
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])Link to this sectionエクスポート#
Exportモードは、YOLOモデルをデプロイメントに使用できる形式にエクスポートするために使用されます。このモードでは、モデルは他のソフトウェアアプリケーションやハードウェアデバイスで使用できる形式に変換されます。このモードは、モデルを本番環境にデプロイする際に役立ちます。
公式のYOLOモデルを、動的なバッチサイズおよび画像サイズでONNXにエクスポートします。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)Link to this sectionトラッキング#
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")Link to this sectionベンチマーク#
Benchmarkモードは、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, half=False, device=0)Link to this sectionトレーナーの使用#
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のモジュール式設計により、新しいコンピュータビジョンタスクに取り組んでいる場合でも、既存のモデルを微調整してパフォーマンスを向上させている場合でも、フレームワークを特定のニーズに適応させることができます。
Link to this sectionよくある質問 (FAQ)#
Link to this section物体検出のために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()詳細はPredict Modeセクションの詳細な例をご覧ください。
Link to this sectionYOLOで使用できるさまざまなモードには何がありますか?#
Ultralytics YOLOは、さまざまな機械学習ワークフローに対応するためのさまざまなモードを提供します。これらには以下が含まれます。
- Train: カスタムデータセットを使用してモデルを学習します。
- Val: 検証セットでモデルのパフォーマンスを検証します。
- Predict: 新しい画像やビデオストリームで予測を行います。
- Export: モデルをONNXやTensorRTなどのさまざまな形式にエクスポートします。
- Track: ビデオストリームでのリアルタイム物体追跡を行います。
- Benchmark: さまざまな構成間でモデルのパフォーマンスをベンチマークします。
各モードは、モデルの開発とデプロイメントのさまざまな段階に対応する包括的な機能を提供するように設計されています。
Link to this section自分のデータセットを使用してカスタム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ページをご覧ください。
Link to this sectionデプロイ用に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ドキュメントを参照してください。
Link to this section異なるデータセットで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ページを確認してください。