Pythonの使用方法#
Ultralytics YOLO Python使用方法ドキュメントへようこそ。このガイドでは、物体検出、インスタンスセグメンテーション、セマンティックセグメンテーション、深度推定、分類のために、Ultralytics YOLOをPythonプロジェクトにスムーズに統合する方法を説明します。ここでは、事前学習済みモデルの読み込みと使用、新しいモデルの学習、画像に対する予測の実行方法を学びます。使いやすいPythonインターフェースは、YOLOをPythonプロジェクトに組み込みたい方にとって有用なリソースです。高度な物体検出機能をすばやく実装できます。さっそく始めましょう。
視聴: Ultralytics YOLO を使いこなす: Python
たとえば、数行のコードだけでモデルを読み込み、学習させ、検証セットでパフォーマンスを評価し、さらにONNXフォーマットにエクスポートできます。
from ultralytics import YOLO
# YOLOモデルをスクラッチから新規作成
model = YOLO("yolo26n.yaml")
# 事前学習済みYOLOモデルを読み込み(学習に推奨)
model = YOLO("yolo26n.pt")
# 「coco8.yaml」データセットを使ってモデルを3エポック学習
results = model.train(data="coco8.yaml", epochs=3)
# 検証セットでモデルのパフォーマンスを評価
results = model.val()
# モデルを使って画像内の物体検出を実行
results = model("https://ultralytics.com/images/bus.jpg")
# モデルをONNXフォーマットにエクスポート
success = model.export(format="onnx")学習#
Trainモードは、カスタムデータセットでYOLOモデルを学習させるために使用します。このモードでは、指定したデータセットとハイパーパラメーターを使ってモデルを学習させます。学習プロセスでは、画像内の物体のクラスと位置を正確に予測できるよう、モデルのパラメーターを最適化します。
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # 任意のモデルタイプを渡す
results = model.train(epochs=5)検証#
Valモードは、YOLOモデルのトレーニング後にモデルを検証するために使用します。このモードでは、検証セットを使ってモデルを評価し、精度と汎化性能を測定します。モデルの性能を向上させるために、ハイパーパラメーターの調整にも使用できます。
from ultralytics import YOLO
# YOLOモデルを読み込む
model = YOLO("yolo26n.yaml")
# モデルをトレーニングする
model.train(data="coco8.yaml", epochs=5)
# トレーニングデータセットの検証用分割で検証する
model.val()推論#
Predictモードは、トレーニング済みのYOLOモデルを使用して、新しい画像や動画の予測を行うために使用します。このモードでは、チェックポイントファイルからモデルを読み込み、ユーザーが画像や動画を指定して推論を実行できます。モデルは入力画像や動画内の物体のクラスと位置を予測します。
import cv2
from PIL import Image
from ultralytics import YOLO
model = YOLO("model.pt")
# すべての形式に対応 - image/dir/Path/URL/video/PIL/ndarray。ウェブカメラの場合は0
results = model.predict(source="0")
results = model.predict(source="folder", show=True) # 予測結果を表示します。すべてのYOLO predict引数に対応します
# PILから
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True) # プロットした画像を保存する
# ndarrayから
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True) # 予測結果をラベルとして保存する
# PIL/ndarrayのリストから
results = model.predict(source=[im1, im2])エクスポート#
Exportモードは、デプロイに使用できる形式にYOLOモデルをエクスポートするために使用します。このモードでは、モデルを他のソフトウェアアプリケーションやハードウェアデバイスで使用できる形式に変換します。本番環境へのモデルのデプロイに役立つモードです。
公式YOLOモデルを、バッチサイズと画像サイズを動的に設定できるONNX形式にエクスポートします。
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)トラッキング#
Trackモードは、YOLOモデルを使用してリアルタイムで物体を追跡するために使用します。このモードでは、チェックポイントファイルからモデルを読み込み、ユーザーがライブ動画ストリームを指定してリアルタイムの物体追跡を実行できます。監視システムや自動運転車などのアプリケーションに役立つモードです。
from ultralytics import YOLO
# モデルを読み込む
model = YOLO("yolo26n.pt") # 公式の検出モデルを読み込む
model = YOLO("yolo26n-seg.pt") # 公式のセグメンテーションモデルを読み込む
model = YOLO("path/to/best.pt") # カスタムモデルを読み込む
# モデルでトラッキングする
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")ベンチマーク#
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, device=0)Trainerの使用#
YOLOモデルクラスは、Trainerクラスの高レベルなラッパーとして機能します。各YOLOタスクには独自のTrainerがあり、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 # 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")
# 中断されたトレーニングを最後のチェックポイントから再開する
trainer = DetectionTrainer(overrides={"resume": "path/to/last.pt"})
trainer.train()Trainerは、カスタムタスクへの対応や研究開発のアイデアの検証に合わせて、簡単にカスタマイズできます。Ultralytics YOLOのモジュール設計により、新しいコンピュータービジョンタスクに取り組む場合も、既存モデルをファインチューニングして性能を高める場合も、ニーズに合わせてフレームワークを適応させることができます。
よくある質問#
Ultralytics YOLOはPythonプロジェクトに簡単に統合できます。事前学習済みモデルを読み込むことも、新しいモデルをゼロからトレーニングすることもできます。始める手順は次のとおりです。
from ultralytics import YOLO # 事前学習済みのYOLOモデルを読み込む model = YOLO("yolo26n.pt") # 画像で物体検出を実行する results = model("https://ultralytics.com/images/bus.jpg") # 結果を可視化する for result in results: result.show()詳しい例については、Predictモードのセクションをご覧ください。
Ultralytics YOLOには、さまざまな機械学習ワークフローに対応する複数のモードがあります。次のモードを利用できます。
- Train:カスタムデータセットを使用してモデルをトレーニングします。
- Val:検証セットでモデルの性能を検証します。
- Predict:新しい画像や動画ストリームの予測を行います。
- Export:モデルをONNXやTensorRTなどのさまざまな形式にエクスポートします。
- Track:動画ストリーム内の物体をリアルタイムで追跡します。
- Benchmark:さまざまな構成でモデルの性能をベンチマークします。
各モードは、モデルの開発とデプロイの各段階で包括的な機能を提供できるよう設計されています。
カスタムYOLOモデルをトレーニングするには、データセットやその他のハイパーパラメーターを指定する必要があります。簡単な例を紹介します。
from ultralytics import YOLO # YOLOモデルを読み込む model = YOLO("yolo26n.yaml") # カスタムデータセットを使ってモデルをトレーニングする model.train(data="path/to/your/dataset.yaml", epochs=10)トレーニングの詳細と使用例へのリンクについては、Trainモードのページをご覧ください。
export関数を使用すると、デプロイに適した形式へYOLOモデルを簡単にエクスポートできます。たとえば、モデルをONNX形式にエクスポートできます。from ultralytics import YOLO # YOLOモデルを読み込む model = YOLO("yolo26n.pt") # モデルをONNXフォーマットにエクスポート model.export(format="onnx")さまざまなエクスポートオプションについては、Exportモードのドキュメントをご覧ください。
はい、YOLOモデルは異なるデータセットで検証できます。トレーニング後、検証モードを使用して性能を評価できます。
from ultralytics import YOLO # YOLOモデルを読み込む model = YOLO("yolo26n.yaml") # モデルをトレーニングする model.train(data="coco8.yaml", epochs=5) # 別のデータセットでモデルを検証する model.val(data="path/to/separate/data.yaml")詳しい例と使用方法については、Valモードのページをご覧ください。