YOLOv3 および YOLOv3u#
概要#
このドキュメントでは、密接に関連する3つの物体検出モデル、YOLOv3、YOLOv3-Ultralytics、YOLOv3uについて概要を説明します。
-
YOLOv3: 一度見るだけ(YOLO)物体検出アルゴリズムの第3版です。Joseph Redmonによって開発され、マルチスケール予測や3種類のサイズの検出カーネルなどの機能を導入することで、従来のバージョンを改良しました。
-
YOLOv3-Ultralytics: これは ultralytics/yolov3 リポジトリでメンテナンスされている、YOLOv3 の Ultralytics PyTorch 実装です。オリジナルのアンカーベースのアーキテクチャを維持しながら、より多くの事前学習済みモデルと、より簡単なカスタマイズ機能を追加しています。
-
YOLOv3u: YOLOv8モデルで使用される、アンカーフリーかつobjectnessフリーの分離ヘッドを組み込んだ、YOLOv3-Ultralyticsの更新版です。YOLOv3uは、YOLOv3と同じバックボーンおよびネックアーキテクチャを維持しながら、YOLOv8の更新された検出ヘッドを使用します。

主な特徴#
-
YOLOv3: 検出に3種類の異なるスケールを導入し、13x13、26x26、52x52という3種類のサイズの検出カーネルを活用します。これにより、さまざまなサイズの物体に対する検出精度が大幅に向上しました。さらに、YOLOv3では各バウンディングボックスに対するマルチラベル予測や、より優れた特徴抽出ネットワークなどの機能が追加されました。
-
YOLOv3u: この更新モデルは、YOLOv8のアンカーフリーかつobjectnessフリーの分離ヘッドを組み込んでいます。事前定義されたアンカーボックスとobjectnessスコアが不要になるため、この検出ヘッド設計により、さまざまなサイズや形状の物体を検出するモデルの能力が向上します。これにより、YOLOv3uは物体検出タスクにおいて、より堅牢で高精度になります。
サポートされるタスクとモード#
YOLOv3は、物体検出タスク専用に設計されています。Ultralyticsは、YOLOv3の3つのバリアント、yolov3u、yolov3-tinyu、yolov3-sppuをサポートしています。名前に含まれるuは、元のアーキテクチャがアンカーベースであるのに対し、これらのモデルがYOLOv8のアンカーフリーヘッドを使用していることを示します。これらのモデルは、精度と速度のバランスに優れ、さまざまな現実世界のシナリオで効果を発揮することで知られています。各バリアントは独自の機能と最適化を備えており、幅広い用途に適しています。
3つのモデルはすべて、モデルデプロイと開発のさまざまな段階で柔軟に利用できるよう、包括的なモードセットをサポートしています。これらのモードには、推論、検証、トレーニング、エクスポートが含まれ、効果的な物体検出のための完全なツールキットを提供します。
| モデルタイプ | 事前学習済み重み | サポートされているタスク | トレーニング | 検証 | 推論 | エクスポート |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | オブジェクト検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | オブジェクト検出 | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-SPP(u) | yolov3-sppu.pt | オブジェクト検出 | ✅ | ✅ | ✅ | ✅ |
この表では、各YOLOv3バリアントの機能を一覧で確認でき、物体検出ワークフローにおけるさまざまなタスクや運用モードへの柔軟性と適合性を示しています。
使用例#
この例では、YOLOv3の基本的なトレーニングと推論の例を紹介します。これらのモードやその他のモードの完全なドキュメントについては、Predict、Train、Val、Exportのドキュメントページをご覧ください。
PyTorchの事前学習済み*.ptモデルと設定用の*.yamlファイルをYOLO()クラスに渡すことで、Pythonでモデルインスタンスを作成できます。
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")引用と謝辞#
研究でYOLOv3を使用する場合は、元のYOLO論文とUltralytics YOLOv3リポジトリを引用してください。
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}元のYOLOv3を開発したJoseph RedmonとAli Farhadiに感謝します。
FAQ#
YOLOv3は、Joseph Redmonによって開発されたYOLO(You Only Look Once)物体検出アルゴリズムの第3世代で、検出に3つの異なるスケール(13x13、26x26、52x52)を使用し、精度と速度のバランスで知られています。YOLOv3-Ultralyticsは、より多くの事前学習済みモデルのサポートを追加し、モデルのカスタマイズを容易にした、UltralyticsによるYOLOv3の適応版です。YOLOv3uはYOLOv3-Ultralyticsをアップグレードしたバリアントで、YOLOv8のアンカーフリーかつオブジェクトネスフリーの分割ヘッドを統合し、さまざまな物体サイズに対する検出の堅牢性と精度を向上させています。各バリアントの詳細については、YOLOv3シリーズを参照してください。
UltralyticsでYOLOv3モデルをトレーニングするのは簡単です。PythonまたはCLIのいずれかを使用してモデルをトレーニングできます。
例from ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)より包括的なトレーニングオプションとガイドラインについては、Trainモードのドキュメントをご覧ください。
YOLOv3uは、YOLOv8モデルで使用されるアンカーフリーかつobjectnessフリーの分離ヘッドを組み込むことで、YOLOv3およびYOLOv3-Ultralyticsを改良しています。このアップグレードにより、事前定義されたアンカーボックスとobjectnessスコアが不要になり、さまざまなサイズや形状の物体をより正確に検出する能力が向上します。これにより、YOLOv3uは複雑で多様な物体検出タスクに適した選択肢になります。詳細については、主な機能セクションをご覧ください。
PythonスクリプトまたはCLIコマンドのいずれかを使用して、YOLOv3モデルで推論を実行できます。
例from ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Run inference with the YOLOv3u model on the 'bus.jpg' image results = model("path/to/bus.jpg")YOLOモデルの実行方法の詳細については、推論モードのドキュメントをご覧ください。
YOLOv3、YOLOv3-Tiny、YOLOv3-SPPは、主に物体検出タスクをサポートしています。これらのモデルは、推論、検証、トレーニング、エクスポートなど、モデルのデプロイと開発におけるさまざまな段階で使用できます。サポートされているタスクの一覧と詳細については、物体検出タスクのドキュメントをご覧ください。
研究でYOLOv3を使用する場合は、元のYOLO論文とUltralytics YOLOv3リポジトリを引用してください。BibTeX引用の例:
引用@article{redmon2018yolov3, title={YOLOv3: An Incremental Improvement}, author={Redmon, Joseph and Farhadi, Ali}, journal={arXiv preprint arXiv:1804.02767}, year={2018} }引用の詳細については、引用と謝辞セクションをご覧ください。