YOLOv4:高速かつ高精度な物体検出#
UltralyticsのYOLOv4ドキュメントページへようこそ。YOLOv4は、Alexey Bochkovskiy氏が2020年に発表した、最先端のリアルタイム物体検出器です。詳細については、https://github.com/AlexeyAB/darknetをご覧ください。YOLOv4は速度と精度の最適なバランスを実現するよう設計されており、多くのアプリケーションに適した優れた選択肢です。
YOLOv4のアーキテクチャ図。YOLOv4の複雑なネットワーク設計を示しており、バックボーン、ネック、ヘッドの各コンポーネントと、最適なリアルタイム物体検出を実現する相互接続されたレイヤーが含まれています。
はじめに#
YOLOv4は「You Only Look Once version 4」を意味します。YOLOv4は、YOLOv3などの従来のYOLOバージョンや、その他の物体検出モデルの制限に対処するために開発されたリアルタイム物体検出モデルです。その他の畳み込みニューラルネットワーク(CNN)ベースの物体検出器とは異なり、YOLOv4はレコメンデーションシステムだけでなく、スタンドアロンのプロセス管理や人間による入力の削減にも適用できます。一般的なグラフィックス処理ユニット(GPUs)上で動作するため、低コストで広く利用でき、トレーニングにはそのようなGPUを1基だけ使用しながら、一般的なGPU上でリアルタイムに動作するよう設計されています。
アーキテクチャ#
YOLOv4は、パフォーマンスを最適化するために連携して機能する、複数の革新的な機能を採用しています。これには、重み付き残差接続(WRC)、ステージ間部分接続(CSP)、クロスミニバッチ正規化(CmBN)、自己敵対的トレーニング(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は優れた速度で物体検出を実行でき、リアルタイムアプリケーションに適しています。YOLOv4は精度にも優れており、COCOなどの物体検出ベンチマークで最先端の結果を達成しています。
YOLOv5やYOLOv7など、YOLOファミリーの他のモデルと比較しても、YOLOv4は速度と精度のバランスにおいて高い評価を維持しています。新しいモデルには特定の利点がある場合もありますが、YOLOv4のアーキテクチャ上の革新は、リアルタイムパフォーマンスを必要とする多くのアプリケーションにおいて、現在も有用性を保っています。
使用例#
YOLOv4はDarknetベースのモデルであり、Ultralytics Pythonパッケージではネイティブにサポートされていません。ultralytics/assetsにはyolov4.ptの事前トレーニング済み重みが公開されておらず、ultralytics/cfg/models/v4/のYAMLもありません。このページはアーキテクチャのリファレンスとして維持されています。YOLOv4の実行に関心がある場合は、インストールおよび使用方法について、YOLOv4のGitHubリポジトリを直接参照してください。
YOLOv4を使用する際に一般的に行う手順の概要を以下に示します。
-
YOLOv4のGitHubリポジトリにアクセスします:https://github.com/AlexeyAB/darknet。
-
インストールについては、READMEファイルに記載された手順に従います。通常は、リポジトリのクローン、必要な依存関係のインストール、必要な環境変数の設定を行います。
-
インストールが完了したら、リポジトリに記載された使用方法に従ってモデルをトレーニングおよび使用できます。通常は、データセットの準備、モデルパラメーターの設定、モデルのトレーニングを行い、その後、トレーニング済みモデルで物体検出を実行します。
具体的な手順は、ユースケースやYOLOv4リポジトリの現在の状態によって異なる場合があります。そのため、YOLOv4のGitHubリポジトリに記載された手順を直接参照することを強くお勧めします。
Ultralyticsフレームワーク内でのトレーニングと推論については、YOLO11またはYOLO26を参照してください。
まとめ#
YOLOv4は、速度と精度のバランスに優れた、強力かつ効率的な物体検出モデルです。トレーニング時に独自の機能とbag of freebies手法を使用することで、リアルタイム物体検出タスクで優れた性能を発揮します。YOLOv4は一般的なGPUがあれば誰でもトレーニングおよび使用でき、監視システム、自動運転車、産業オートメーションなど、幅広いアプリケーションで利用しやすく実用的です。
プロジェクトに物体検出を実装したい場合、特にリアルタイムパフォーマンスが優先される場面では、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からアクセスできます。この分野の発展に貢献し、研究成果をより広いコミュニティに公開された著者の努力に感謝します。
FAQ#
YOLOv4は「You Only Look Once version 4」を意味し、Alexey Bochkovskiy氏によって2020年に開発された最先端のリアルタイム物体検出モデルです。速度と精度の最適なバランスを実現しており、リアルタイムアプリケーションに非常に適しています。YOLOv4のアーキテクチャには、重み付き残差接続(WRC)、ステージ間部分接続(CSP)、自己敵対的トレーニング(SAT)など、複数の革新的な機能が組み込まれており、最先端の結果を実現します。一般的なGPU上で効率的に動作する高性能モデルをお探しの場合、YOLOv4は優れた選択肢です。
「bag of freebies」とは、推論コストを増加させずにYOLOv4のトレーニング精度を向上させる手法を指します。これらの手法には、明るさやコントラストなどを調整するフォトメトリック歪みや、スケーリング、クロッピング、反転、回転を行う幾何学的歪みなど、さまざまな形式のデータ拡張が含まれます。入力画像の多様性を高めることで、これらの拡張はYOLOv4がさまざまな種類の画像に対してより適切に汎化するのを助け、リアルタイムパフォーマンスを損なうことなく、堅牢性と精度を向上させます。
YOLOv4は速度と精度の両方を最適化するよう設計されており、高速で信頼性の高いパフォーマンスが求められるリアルタイム物体検出タスクに適しています。一般的なGPU上で効率的に動作し、トレーニングと推論の両方に必要なGPUは1基だけです。そのため、レコメンデーションシステムからスタンドアロンのプロセス管理まで、さまざまなアプリケーションで導入しやすく実用的です。また、大規模なハードウェア構成の必要性を減らし、リアルタイム物体検出のコスト効率に優れたソリューションとなります。
YOLOv4を使い始めるには、公式のYOLOv4 GitHubリポジトリにアクセスしてください。READMEファイルに記載されたインストール手順に従います。通常は、リポジトリのクローン、依存関係のインストール、環境変数の設定を行います。インストール後は、データセットを準備し、モデルパラメーターを設定して、記載された使用方法に従うことでモデルをトレーニングできます。Ultralyticsは現在YOLOv4をサポートしていないため、最新かつ詳細なガイダンスについては、YOLOv4 GitHubを直接参照することをお勧めします。