コンテンツへスキップ

物体検出

物体検出の例

オブジェクト検出は、画像やビデオストリーム内のオブジェクトの位置とクラスを識別するタスクです。

オブジェクト検出の出力は、画像内のオブジェクトを囲むバウンディングボックスのセットと、各ボックスのクラスラベルと信頼度スコアです。オブジェクト検出は、シーン内の興味のあるオブジェクトを識別する必要があるが、オブジェクトの位置や正確な形状を正確に知る必要がない場合に適しています。



見るんだ: 事前に訓練されたUltralytics YOLOv8 モデルによる物体検出。

チップ

YOLOv8 ディテクト・モデルは、デフォルトのYOLOv8 。 yolov8n.pt で事前に訓練されている。 COCO.

モデル

YOLOv8 ここでは、事前学習されたDetectモデルを示す。Detect、Segment、PoseモデルはCOCOデータセットで事前学習され、ClassifyモデルはImageNetデータセットで事前学習されます。

モデルは、初回使用時に最新のUltralytics リリースから自動的にダウンロードされます。

モデル サイズ
(ピクセル)
mAPval
50-95
速度
CPU ONNX
(ms
)
速度
A100 TensorRT
(ms
)
params
(M)
FLOPs
(B)
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8s 640 44.9 128.4 1.20 11.2 28.6
YOLOv8m 640 50.2 234.7 1.83 25.9 78.9
YOLOv8l 640 52.9 375.2 2.39 43.7 165.2
YOLOv8x 640 53.9 479.1 3.53 68.2 257.8
  • マップバル 数値はシングル・モデル、シングル・スケールのものである。 COCO val2017 データセット。
    複製する yolo val detect data=coco.yaml device=0
  • スピード を使用してCOCOバル画像を平均化した。 アマゾンEC2 P4d インスタンスだ。
    複製する yolo val detect data=coco8.yaml batch=1 device=0|cpu

電車

COCO8データセットでYOLOv8n 、画像サイズ640で100エポック学習します。利用可能な引数の全リストは設定ページを参照。

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from YAML
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolov8n.yaml").load("yolov8n.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

データセット形式

YOLO 検出データセットの形式は、データセットガイドに詳しく書かれている。既存のデータセットを他のフォーマット(COCOなど)からYOLO フォーマットに変換するには、Ultralytics のJSON2YOLOツールをご利用ください。

バル

COCO8 データセットで学習済みYOLOv8n モデルの精度を検証する。として引数を渡す必要はない。 model トレーニング data と引数をモデル属性として使用する。

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
yolo detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

予測する

学習済みのYOLOv8n モデルを使って、画像の予測を実行する。

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image
yolo detect predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

詳細を見る predict モードの詳細は 予測する ページを参照されたい。

輸出

YOLOv8n 、ONNX 、CoreML などの異なるフォーマットにエクスポートします。

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolov8n.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

利用可能なYOLOv8 エクスポート形式は以下の表の通りです。どのフォーマットでも format 引数、すなわち format='onnx' または format='engine'.エクスポートされたモデルを直接予測または検証することができます。 yolo predict model=yolov8n.onnx.使用例は、エクスポート完了後に表示されます。

フォーマット format 議論 モデル メタデータ 論争
PyTorch - yolov8n.pt -
TorchScript torchscript yolov8n.torchscript imgsz, optimize, batch
ONNX onnx yolov8n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n.engine imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n.pb imgsz, batch
TF ライト tflite yolov8n.tflite imgsz, half, int8, batch
TF エッジTPU edgetpu yolov8n_edgetpu.tflite imgsz
TF.js tfjs yolov8n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n_paddle_model/ imgsz, batch
NCNN ncnn yolov8n_ncnn_model/ imgsz, half, batch

詳細を見る export 詳細は 輸出 ページを参照されたい。

よくあるご質問

カスタムデータセットでYOLOv8 モデルをトレーニングするには?

YOLOv8 モデルをカスタムデータセットでトレーニングするには、いくつかのステップがある:

  1. データセットを準備する:データセットがYOLO 形式であることを確認してください。ガイダンスについては、データセット・ガイドを参照してください。
  2. モデルをロードする:Ultralytics YOLO ライブラリを使用して、事前にトレーニングされたモデルをロードするか、YAML ファイルから新しいモデルを作成します。
  3. モデルを訓練する:を実行する。 train メソッド(Python )または yolo detect train コマンドをCLI 。

from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolov8n.pt")

# Train the model on your custom dataset
model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)
yolo detect train data=my_custom_dataset.yaml model=yolov8n.pt epochs=100 imgsz=640

詳細な設定オプションについては、設定のページをご覧ください。

YOLOv8 、どのような事前学習済みモデルが利用できますか?

Ultralytics YOLOv8 は、物体検出、セグメンテーション、および姿勢推定のための様々な事前学習済みモデルを提供します。これらのモデルは、COCOデータセットまたは分類タスク用のImageNetで事前学習されています。以下に、利用可能なモデルの一部を示します:

詳細なリストとパフォーマンス指標については、モデルのセクションを参照してください。

学習させたYOLOv8 モデルの精度を検証するにはどうすればよいですか?

学習したYOLOv8 モデルの精度を検証するには .val() メソッド(Python )または yolo detect val コマンドをCLI 。これにより、mAP50-95、mAP50などのメトリクスが得られる。

from ultralytics import YOLO

# Load the model
model = YOLO("path/to/best.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # mAP50-95
yolo detect val model=path/to/best.pt

バリデーションの詳細については、バルのページをご覧ください。

YOLOv8 、どのような形式でエクスポートできますか?

Ultralytics YOLOv8 モデルをONNX,TensorRT,CoreML などの様々なフォーマットにエクスポートすることで、異なるプラットフォームやデバイス間での互換性を確保することができます。

from ultralytics import YOLO

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

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

エクスポートのページで、サポートされているフォーマットの完全なリストと手順を確認してください。

なぜ物体検出にUltralytics YOLOv8 を使う必要があるのか?

Ultralytics YOLOv8 は、オブジェクトの検出、セグメンテーション、およびポーズ推定において、最先端の性能を提供するように設計されている。以下に主な利点を挙げる:

  1. 事前学習済みモデル:COCOやImageNetのような一般的なデータセットで事前に訓練されたモデルを利用することで、より迅速な開発が可能になります。
  2. 高精度:驚異的なmAPスコアを達成し、信頼性の高い物体検出を実現。
  3. スピード:リアルタイム推論に最適化されており、迅速な処理を必要とするアプリケーションに最適です。
  4. 柔軟性:モデルをONNX やTensorRT などのさまざまな形式にエクスポートして、複数のプラットフォームに展開できます。

ブログでは、YOLOv8 の使用例や成功事例をご紹介しています。



作成日:2023-11-12 更新日:2024-07-04
作成者:glenn-jocher(21),Burhan-Q(4),Laughing-q(1)

コメント