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

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

YOLOv4アーキテクチャ図 YOLOv4アーキテクチャ図。バックボーン、ネック、ヘッドの各コンポーネントや、最適なリアルタイム物体検出を実現するために相互接続された層など、YOLOv4の複雑なネットワーク設計を紹介します。

はじめに

YOLOv4は「You Only Look Once version 4」の略称です。これは、YOLOv3などの以前のYOLOバージョンや他の物体検出モデルの限界に対処するために開発されたリアルタイム物体検出モデルです。他の畳み込みニューラルネットワーク(CNN)ベースの物体検出器とは異なり、YOLOv4はレコメンデーションシステムだけでなく、スタンドアロンのプロセス管理や人的介入の削減にも適しています。一般的なグラフィックス処理ユニット(GPU)上で動作するため手頃な価格で大規模な利用が可能であり、従来のGPU上でリアルタイムに動作するように設計されているほか、トレーニングにもGPUが1つあれば十分です。

アーキテクチャ

YOLOv4は、性能を最適化するために連携するいくつかの革新的な機能を利用しています。これには、Weighted-Residual-Connections (WRC)、Cross-Stage-Partial-connections (CSP)、Cross mini-Batch Normalization (CmBN)、Self-adversarial-training (SAT)、Mish-activation、Mosaic data augmentation、DropBlock regularization、CIoU lossが含まれます。これらの機能を組み合わせることで、最先端の成果を達成しています。

一般的な物体検出器は、入力、backbone、ネック、ヘッドなどのいくつかのパーツで構成されています。YOLOv4のバックボーンはImageNetで事前学習されており、クラスやbounding boxesを予測するために使用されます。バックボーンにはVGG、ResNet、ResNeXt、DenseNetなど、複数のモデルが使用可能です。検出器のネック部分は、異なるステージからfeature mapsを収集するために使用され、通常はいくつかのボトムアップパスとトップダウンパスが含まれます。ヘッド部分は、最終的な物体検出と分類を行うために使用されます。

Bag of Freebies

YOLOv4では、「Bag of Freebies(無料の詰め合わせ)」と呼ばれる手法も活用されています。これは、推論コストを増加させることなく、トレーニング中のモデルのaccuracyを向上させる技術です。Data augmentationは、object detectionで用いられる一般的な「Bag of Freebies」技術であり、入力画像の多様性を高めることでモデルの堅牢性を向上させます。データ拡張の例としては、光学的歪み(画像の明るさ、コントラスト、色相、彩度、ノイズの調整)や幾何学的歪み(ランダムなスケーリング、クロッピング、反転、回転の追加)などがあります。これらの技術は、モデルがさまざまな種類の画像に対してより良く汎化するのに役立ちます。

特徴とパフォーマンス

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

YOLOv5YOLOv7といった他のYOLOファミリーのモデルと比較しても、YOLOv4は速度と精度のバランスにおいて強力な地位を維持しています。新しいモデルには特定の利点があるかもしれませんが、YOLOv4のアーキテクチャの革新性は、リアルタイム性能を必要とする多くのアプリケーションにおいて今なお重要です。

使用例

YOLOv4 is a Darknet-based model and is not natively supported by the Ultralytics Python package: there are no yolov4.pt pretrained weights published on ultralytics/assets and no ultralytics/cfg/models/v4/ YAMLs. This page is kept as an architectural reference. Users interested in running YOLOv4 should refer directly to the YOLOv4 GitHub repository for installation and usage instructions.

YOLOv4を使用するために必要な典型的な手順の概要を以下に示します。

  1. YOLOv4のGitHubリポジトリ(https://github.com/AlexeyAB/darknet)にアクセスします。

  2. READMEファイルに記載されているインストール手順に従います。これには通常、リポジトリのクローン、必要な依存関係のインストール、および必要な環境変数の設定が含まれます。

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

具体的な手順は、個々の使用例やYOLOv4リポジトリの現在の状況によって異なる場合があることに注意してください。したがって、YOLOv4のGitHubリポジトリに直接記載されている手順を参照することを強くお勧めします。

Ultralyticsフレームワーク内でのトレーニングと推論については、YOLO11またはYOLO26を参照してください。

結論

YOLOv4は、速度と精度のバランスをとった強力で効率的な物体検出モデルです。トレーニング中にユニークな機能と「Bag of Freebies」手法を使用することで、リアルタイム物体検出タスクにおいて優れた性能を発揮します。YOLOv4は一般的なGPUを持つ人なら誰でもトレーニングして使用できるため、surveillance systemsautonomous vehiclesindustrial automationなど、幅広いアプリケーションで利用しやすく実用的です。

プロジェクトに物体検出を導入したい方にとって、YOLOv4は特にリアルタイム性能が優先される場合に強力な候補であり続けます。現在UltralyticsではYOLO11YOLO26といった新しい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とは何ですか?また、なぜobject detectionにそれを使用すべきなのですか?

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

YOLOv4のアーキテクチャはどのようにパフォーマンスを向上させていますか?

YOLOv4のアーキテクチャには、backbone、ネック、ヘッドといういくつかの主要コンポーネントが含まれています。VGG、ResNet、CSPDarknet53などのモデルが利用可能なバックボーンは、クラスやバウンディングボックスを予測するために事前学習されています。PANetを活用したネックは、包括的なデータ抽出のために異なるステージのfeature mapsを接続します。最後に、YOLOv3の設定を使用するヘッドが最終的な物体検出を行います。また、YOLOv4はMosaicデータ拡張やDropBlock正規化のような「Bag of Freebies」手法を採用しており、速度と精度をさらに最適化しています。

YOLOv4における「Bag of Freebies」とは何ですか?

「Bag of Freebies(無料の詰め合わせ)」とは、推論コストを上げることなくYOLOv4のトレーニング精度を向上させる手法を指します。これらの技術には、光学的歪み(明るさ、コントラストなどの調整)や幾何学的歪み(スケーリング、クロッピング、反転、回転)といった様々なデータ拡張が含まれます。入力画像の多様性を高めることで、これらの拡張はYOLOv4が様々な種類の画像に対してより良く汎化するのを助け、リアルタイム性能を損なうことなく堅牢性と精度を向上させます。

なぜYOLOv4は一般的なGPUでのリアルタイム物体検出に適していると考えられるのですか?

YOLOv4は速度と精度の両方を最適化するように設計されており、迅速で信頼性の高い性能を必要とするリアルタイム物体検出タスクに理想的です。一般的なGPU上で効率的に動作し、トレーニングと推論の両方に1つのGPUさえあれば十分です。これにより、recommendation systemsからスタンドアロンのプロセス管理まで、さまざまなアプリケーションで利用しやすくなり、大規模なハードウェア構成の必要性を減らしてリアルタイム物体検出のための費用対効果の高いソリューションとなります。

現在UltralyticsがYOLOv4をサポートしていない場合、どのようにして始めればよいですか?

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

コメント