YOLOv3、およびYOLOv3u
概要
このドキュメントでは、YOLOv3、YOLOv3-Ultralytics、およびYOLOv3uという、密接に関連する3つの物体検出モデルの概要を説明します。
-
YOLOv3: You Only Look Once(YOLO)オブジェクト検出アルゴリズムの第3バージョンです。Joseph Redmonによって最初に開発されたYOLOv3は、マルチスケール予測や3つの異なるサイズの検出カーネルなどの機能を導入することで、前バージョンから改善されました。
-
YOLOv3u: これは、YOLOv8モデルで使用されているアンカーフリー、objectnessフリーのスプリットヘッドを組み込んだ、YOLOv3-Ultralyticsのアップデート版です。YOLOv3uは、YOLOv3と同じバックボーンとネックのアーキテクチャを維持していますが、検出ヘッドはYOLOv8からアップデートされています。
主な特徴
-
YOLOv3: 検出に3つの異なるスケール(13x13、26x26、52x52の検出カーネルサイズ)の使用を導入しました。これにより、異なるサイズのオブジェクトの検出精度が大幅に向上しました。さらに、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 |
物体検出 | ✅ | ✅ | ✅ | ✅ |
YOLOv3u-SPP(u) | yolov3-sppu.pt |
物体検出 | ✅ | ✅ | ✅ | ✅ |
この表は、各YOLOv3バリアントの機能の概要を示し、オブジェクト検出ワークフローにおける多様性と、さまざまなタスクおよび操作モードへの適合性を強調しています。
使用例
この例では、簡単なYOLOv3のトレーニングと推論の例を提供します。これらおよびその他のモードに関する完全なドキュメントについては、Predict、Train、Val、およびExportのドキュメントページを参照してください。
例
PyTorch 学習済み *.pt
モデルおよび構成 *.yaml
filesを以下に渡すことができます。 YOLO()
pythonでモデルインスタンスを作成するためのclass:
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")
CLIコマンドは、モデルを直接実行するために利用できます。
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=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に感謝します。
よくある質問
YOLOv3、YOLOv3-Ultralytics、YOLOv3uの違いは何ですか?
YOLOv3は、Joseph Redmonによって開発されたYOLO (You Only Look Once) 物体検出アルゴリズムの第3のイテレーションであり、精度と速度のバランスが取れていることで知られています。検出には3つの異なるスケール(13x13、26x26、および52x52)を利用します。YOLOv3-Ultralyticsは、UltralyticsによるYOLOv3の適応版であり、より多くの事前学習済みモデルのサポートを追加し、モデルのカスタマイズを容易にします。YOLOv3uは、YOLOv3-Ultralyticsのアップグレード版であり、YOLOv8のアンカーフリー、objectnessフリーのスプリットヘッドを統合し、さまざまなオブジェクトサイズに対する検出の堅牢性と精度を向上させます。バリアントの詳細については、YOLOv3シリーズを参照してください。
Ultralyticsを使用して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)
# Load a COCO-pretrained YOLOv3u model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov3u.pt data=coco8.yaml epochs=100 imgsz=640
より包括的なトレーニングオプションとガイドラインについては、Trainモードのドキュメントをご覧ください。
YOLOv3u は、なぜ物体検出タスクにおいてより正確なのですか?
YOLOv3uは、YOLOv8モデルで使用されているアンカーフリー、objectnessフリーのスプリットヘッドを組み込むことで、YOLOv3およびYOLOv3-Ultralyticsを改良しています。このアップグレードにより、事前定義されたアンカーボックスとobjectnessスコアが不要になり、さまざまなサイズや形状のオブジェクトをより正確に検出する機能が強化されます。これにより、YOLOv3uは複雑で多様な物体検出タスクに適した選択肢となります。詳細については、主な機能セクションを参照してください。
推論に YOLOv3 モデルを使用するにはどうすればよいですか?
YOLOv3モデルを使った推論は、pythonスクリプトまたはCLIコマンドのどちらでも実行できます。
例
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")
# Load a COCO-pretrained YOLOv3u model and run inference on the 'bus.jpg' image
yolo predict model=yolov3u.pt source=path/to/bus.jpg
YOLOモデルの実行に関する詳細については、推論モードのドキュメントを参照してください。
YOLOv3とそのバリアントは、どのようなタスクをサポートしていますか?
YOLOv3、YOLOv3-Tiny、およびYOLOv3-SPPは、主に物体検出タスクをサポートします。これらのモデルは、推論、検証、トレーニング、エクスポートなど、モデルのデプロイメントと開発のさまざまな段階で使用できます。サポートされているタスクの包括的なセットと、より詳細な情報については、物体検出タスクのドキュメントをご覧ください。
研究でYOLOv3を引用するためのリソースはどこにありますか?
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}
}
引用の詳細については、引用と謝辞のセクションを参照してください。