Ultralytics YOLO27:
Get Started

YOLOv4:高速かつ高精度な物体検出#

Alexey Bochkovskiyが2020年にhttps://github.com/AlexeyAB/darknetで公開した、最先端のリアルタイム物体検出器YOLOv4のUltralyticsドキュメントページへようこそ。YOLOv4は速度と精度の最適なバランスを実現するよう設計されており、多くのアプリケーションに適しています。

YOLOv4のアーキテクチャ図 YOLOv4のアーキテクチャ図。リアルタイム物体検出を最適化するためのバックボーン、ネック、ヘッドの各コンポーネントと、それらをつなぐレイヤーを含む、YOLOv4の複雑なネットワーク設計を示しています。

はじめに#

YOLOv4は「一度だけ見る」を意味するYOLOのバージョン4です。YOLOv4は、YOLOv3などの従来のYOLOバージョンやその他の物体検出モデルの限界に対処するために開発されたリアルタイム物体検出モデルです。他の畳み込みニューラルネットワーク (CNN)ベースの物体検出器とは異なり、YOLOv4はレコメンデーションシステムだけでなく、スタンドアロンのプロセス管理や人手による入力の削減にも適用できます。一般的なグラフィックス処理ユニット (GPUs)上で動作するため、手頃な価格で大規模に利用でき、一般的なGPU上でリアルタイムに動作するよう設計されており、トレーニングにはそのようなGPUが1台だけ必要です。

アーキテクチャ#

YOLOv4は、パフォーマンスを最適化する複数の革新的な機能を組み合わせています。Weighted-Residual-Connections(WRC)、Cross-Stage-Partial-connections(CSP)、Cross mini-バッチ正規化(CmBN)、Self-adversarial-training(SAT)、Mishアクティベーション、モザイクデータ拡張、DropBlock正則化、CIoU損失などが含まれます。これらの機能を組み合わせることで、最先端の成果を実現しています。

一般的な物体検出器は、入力、バックボーン、ネック、ヘッドなど、複数の部分で構成されます。YOLOv4のバックボーンはImageNetで事前トレーニングされ、オブジェクトのクラスとバウンディングボックスを予測するために使用されます。バックボーンにはVGG、ResNet、ResNeXt、DenseNetなどのモデルを使用できます。検出器のネック部分は、異なる段階から特徴マップを収集するために使用され、通常、複数のボトムアップ経路とトップダウン経路を含みます。ヘッド部分は、最終的な物体検出と分類を行います。

Bag of Freebies#

YOLOv4は、推論コストを増やすことなくトレーニング中のモデルの精度を向上させる「bag of freebies」と呼ばれる手法も使用しています。データ拡張は、物体検出でよく使われるbag of freebies手法で、入力画像の多様性を高めてモデルのロバスト性を向上させます。データ拡張の例として、フォトメトリック変換(画像の明るさ、コントラスト、色相、彩度、ノイズの調整)や幾何学的変換(ランダムな拡大縮小、クロップ、反転、回転の追加)があります。これらの手法により、モデルはさまざまな種類の画像に対して汎化しやすくなります。

機能とパフォーマンス#

YOLOv4は、物体検出における速度と精度を最適化するよう設計されています。YOLOv4のアーキテクチャは、バックボーンにCSPDarknet53、ネックにPANet、検出ヘッドにYOLOv3を採用しています。この設計により、YOLOv4は優れた速度で物体を検出でき、リアルタイムアプリケーションに適しています。また、COCOなどの物体検出ベンチマークで最先端の成果を達成するなど、精度にも優れています。

YOLOv5やYOLOv7など、YOLOファミリーの他のモデルと比べても、YOLOv4は速度と精度のバランスにおいて高い競争力を維持しています。新しいモデルには一定の利点があるものの、YOLOv4のアーキテクチャ上の革新は、リアルタイム性能が求められる多くのアプリケーションで今も有用です。

使用例#

YOLOv4はDarknetベースのモデルであり、Ultralytics Pythonパッケージではネイティブにサポートされていません。ultralytics/assetsで公開されている事前トレーニング済み重みyolov4.ptも、YAMLファイルultralytics/cfg/models/v4/もありません。このページはアーキテクチャの参考情報として掲載しています。YOLOv4の実行を検討している場合は、インストール方法と使用方法について、YOLOv4のGitHubリポジトリを直接参照してください。

YOLOv4を使用する際の一般的な手順を簡単に紹介します。

  1. YOLOv4のGitHubリポジトリhttps://github.com/AlexeyAB/darknetをご覧ください。

  2. READMEファイルに記載されたインストール手順に従ってください。通常は、リポジトリのクローン、必要な依存関係のインストール、必要な環境変数の設定を行います。

  3. インストールが完了したら、リポジトリに記載された使用方法に従ってモデルをトレーニングし、使用できます。通常は、データセットの準備、モデルパラメーターの設定、モデルのトレーニングを行い、その後、トレーニング済みモデルを使用して物体を検出します。

具体的な手順は、ユースケースやYOLOv4リポジトリの現在の状態によって異なる場合があります。そのため、YOLOv4のGitHubリポジトリに記載された手順を直接確認することを強く推奨します。

Ultralyticsフレームワークでトレーニングと推論を行う場合は、YOLO11またはYOLO26をご覧ください。

結論#

YOLOv4は、速度と精度のバランスに優れた強力で効率的な物体検出モデルです。トレーニング時に独自の機能とbag of freebies手法を使用することで、リアルタイム物体検出タスクで優れた性能を発揮します。一般的なGPUがあれば誰でもYOLOv4をトレーニングして使用でき、監視システム、自動運転車、産業オートメーションなど、幅広いアプリケーションで利用できます。

プロジェクトに物体検出を導入したい場合、特にリアルタイム性能を優先するなら、YOLOv4は依然として有力な選択肢です。Ultralyticsは現在、YOLO11やYOLO26などの新しいYOLOバージョンのサポートに注力していますが、YOLOv4で導入されたアーキテクチャ上の革新は、後継モデルの開発にも影響を与えています。

引用と謝辞#

リアルタイム物体検出分野への多大な貢献に対し、YOLOv4の著者に謝意を表します。

引用
@misc{bochkovskiy2020yolov4,
      title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
      author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
      year={2020},
      eprint={2004.10934},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

YOLOv4の原著論文はarXivでご覧いただけます。著者は研究成果を公開しており、コードベースはGitHubからアクセスできます。この分野の発展に貢献し、研究成果を幅広いコミュニティに公開した著者の取り組みに感謝します。

よくある質問#

  • 「You Only Look Once version 4」の略であるYOLOv4は、Alexey Bochkovskiyが2020年に開発した最先端のリアルタイム物体検出モデルです。速度と精度の最適なバランスを実現しており、リアルタイムアプリケーションに非常に適しています。YOLOv4のアーキテクチャは、Weighted-Residual-Connections(WRC)、Cross-Stage-Partial-connections(CSP)、Self-adversarial-training(SAT)など、複数の革新的な機能を取り入れ、最先端の成果を達成しています。一般的なGPU上で効率的に動作する高性能モデルをお探しの場合、YOLOv4は優れた選択肢です。

  • YOLOv4のアーキテクチャは、バックボーン、ネック、ヘッドという複数の主要コンポーネントで構成されます。VGG、ResNet、CSPDarknet53などのモデルを使用できるバックボーンは、クラスとバウンディングボックスを予測するために事前トレーニングされます。PANetを使用するネックは、異なる段階の特徴マップを接続し、包括的な特徴抽出を行います。最後に、YOLOv3の構成を使用するヘッドが最終的な物体検出を行います。また、YOLOv4では、モザイクデータ拡張やDropBlock正則化などの「bag of freebies」手法を採用し、速度と精度をさらに最適化しています。

  • 「Bag of freebies」とは、推論コストを増やすことなくYOLOv4のトレーニング精度を向上させる手法を指します。これらの手法には、明るさやコントラストなどを調整するフォトメトリック変換や、拡大縮小、クロップ、反転、回転などの幾何学的変換といった、さまざまなデータ拡張が含まれます。入力画像の多様性を高めることで、YOLOv4はさまざまな種類の画像に対して汎化しやすくなり、リアルタイム性能を損なわずにロバスト性と精度を向上させます。

  • YOLOv4は速度と精度の両方を最適化するよう設計されており、迅速で信頼性の高い性能が求められるリアルタイム物体検出タスクに適しています。一般的なGPU上で効率的に動作し、トレーニングと推論に必要なGPUは1台のみです。そのため、レコメンデーションシステムから独立したプロセス管理まで、さまざまなアプリケーションで利用しやすく実用的であり、大規模なハードウェア構成の必要性を抑え、リアルタイム物体検出を低コストで実現します。

  • YOLOv4を使い始めるには、公式のYOLOv4 GitHubリポジトリをご覧ください。READMEファイルに記載されたインストール手順に従ってください。通常は、リポジトリのクローン、依存関係のインストール、環境変数の設定を行います。インストール後、データセットを準備し、モデルパラメーターを設定して、記載された使用手順に従うことでモデルをトレーニングできます。現在UltralyticsはYOLOv4をサポートしていないため、最新かつ詳細なガイダンスについては、YOLOv4のGitHubを直接参照することを推奨します。

コメント