コンテンツにスキップ

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

UltralyticsのYOLOv4ドキュメントページへようこそ。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は1つだけで、従来のGPU上でリアルタイムに動作するように設計されています。

アーキテクチャ

YOLOv4は、そのパフォーマンスを最適化するために連携するいくつかの革新的な機能を活用しています。これには、Weighted-Residual-Connections(WRC)、Cross-Stage-Partial-connections(CSP)、Cross mini-Batch Normalization(CmBN)、Self-adversarial-training(SAT)、Mish-activation、Mosaic データ拡張、DropBlock 正則化、およびCIoU損失が含まれます。これらの機能が組み合わされて、最先端の結果が達成されます。

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

Bag of Freebies

YOLOv4では、「bag of freebies」と呼ばれる手法も利用しています。これは、推論のコストを増加させることなく、トレーニング中にモデルの精度を向上させるテクニックです。データ拡張は、物体検出で一般的に使用されるbag of freebiesの手法の1つで、入力画像のバリエーションを増やして、モデルのロバスト性を向上させます。データ拡張の例としては、測光歪み(画像の明るさ、コントラスト、色相、彩度、ノイズを調整する)や幾何学的歪み(ランダムなスケーリング、クロッピング、反転、回転を追加する)などがあります。これらのテクニックは、モデルがさまざまな種類の画像に対してより良く一般化するのに役立ちます。

特徴と性能

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

YOLOファミリーの他のモデル(YOLOv5YOLOv7など)と比較すると、YOLOv4は速度と精度のバランスにおいて強力な位置を維持しています。新しいモデルが特定の利点を提供する可能性がありますが、YOLOv4のアーキテクチャの革新は、リアルタイムパフォーマンスを必要とする多くのアプリケーションにとって依然として重要です。

使用例

本稿執筆時点では、Ultralytics は現在 YOLOv4 モデルをサポートしていません。したがって、YOLOv4 の使用に関心のあるユーザーは、インストールと使用方法について YOLOv4 GitHub リポジトリを直接参照する必要があります。

YOLOv4を使用するために行う可能性のある一般的な手順の概要を以下に示します。

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

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

  3. インストールが完了すると、リポジトリに記載されている使用方法に従って、モデルをトレーニングおよび使用できます。通常、これには、データセットの準備、モデルパラメータの設定、モデルのトレーニング、およびトレーニングされたモデルを使用してオブジェクト検出を実行することが含まれます。

具体的な手順は、特定のユースケースやYOLOv4リポジトリの現在の状態によって異なる場合があることに注意してください。したがって、YOLOv4 GitHubリポジトリで提供されている指示を直接参照することを強くお勧めします。

ご不便をおかけして申し訳ありません。YOLOv4のサポートが実装され次第、Ultralyticsの使用例をこのドキュメントで更新するよう努めます。

結論

YOLOv4は、速度と精度のバランスが取れた、強力で効率的な物体検出モデルです。トレーニング中に独自の特徴とbag of freebiesの手法を使用することで、リアルタイムの物体検出タスクで優れたパフォーマンスを発揮します。YOLOv4は、従来のGPUを持つ人なら誰でもトレーニングして使用できるため、監視システム自動運転車産業オートメーションなど、幅広いアプリケーションにとってアクセスしやすく実用的です。

プロジェクトに物体検出を実装しようとしている人にとって、YOLOv4は、特にリアルタイムパフォーマンスが優先される場合に、依然として強力な候補です。Ultralyticsは現在、YOLOv8YOLO11のような新しい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でアクセスできます。私たちは、この分野を進歩させ、彼らの研究をより広いコミュニティが利用できるようにするための彼らの努力に感謝します。

よくある質問

YOLOv4とは何ですか?また、物体検出にYOLOv4を使用する理由は何ですか?

「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のアーキテクチャは、そのパフォーマンスをどのように向上させますか?

YOLOv4のアーキテクチャには、バックボーン、ネック、およびヘッドといういくつかの主要コンポーネントが含まれています。VGG、ResNet、CSPDarknet53などのモデルであるバックボーンは、クラスとバウンディングボックスを予測するために事前トレーニングされています。PANetを利用するネックは、包括的なデータ抽出のためにさまざまな段階からの特徴マップを接続します。最後に、YOLOv3の構成を使用するヘッドは、最終的なオブジェクト検出を行います。YOLOv4は、モザイクデータ拡張やDropBlock正則化などの「フリーギフトのバッグ」手法も採用しており、速度と精度をさらに最適化しています。

YOLOv4のコンテキストにおける「フリービーのバッグ」とは何ですか?

「Bag of freebies」とは、推論コストを増加させることなく YOLOv4 のトレーニング精度を向上させる手法を指します。これらの手法には、測光歪み(明るさ、コントラストなどの調整)や幾何歪み(スケーリング、トリミング、反転、回転)などのさまざまな形式のデータ拡張が含まれます。入力画像の多様性を高めることで、これらの拡張は YOLOv4 がさまざまな種類の画像に対してより適切に一般化するのに役立ち、リアルタイム性能を損なうことなく、その堅牢性と精度を向上させます。

YOLOv4が従来のGPUでのリアルタイムオブジェクト検出に適していると考えられるのはなぜですか?

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

Ultralyticsが現在サポートしていないYOLOv4を使い始めるにはどうすればよいですか?

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



📅 1年前に作成 ✏️ 5ヶ月前に更新

コメント