コンテンツへスキップ

YOLOv7:トレーニング可能なバッグ・オブ・フリービー

YOLOv7は、5 FPSから160 FPSの範囲において、スピードと精度の両方において、すべての既知の物体検出器を凌駕する最先端のリアルタイム物体検出器です。YOLOv7 は、GPU V100 上で、30 FPS 以上のリアルタイム物体検出器として知られているものの中で、最も高い精度(AP 56.8%)を誇っています。さらに、YOLOv7は、YOLOR、YOLOX、Scaled-YOLOv4、YOLOv5 などの他のオブジェクト検出器よりも、速度と精度で優れています。このモデルは、他のデータセットや事前に訓練された重みを使用することなく、MS COCOデータセットでゼロから訓練されています。YOLOv7のソースコードはGitHubで公開されている。

YOLOv7とSOTA天体検出器の比較

SOTA物体検出器の比較

YOLO の比較表の結果から、提案手法が総合的に最も優れた速度-精度のトレードオフを持つことがわかる。YOLOv7-tiny-SiLU をYOLOv5-N (r6.1) と比較すると、我々の手法は127 fps速く、APで10.7%正確です。さらに、YOLOv7はフレームレート161fpsで51.4%のAPを持つが、同じAPを持つPPYOLOE-Lのフレームレートは78fpsしかない。パラメータ使用量では、YOLOv7はPPYOLOE-Lより41%少ない。推論速度114fpsのYOLOv7-Xを、推論速度99fpsのYOLOv5-L (r6.1)と比較すると、YOLOv7-XはAPを3.9%改善できる。YOLOv7-Xを同規模のYOLOv5-X (r6.1)と比較すると、YOLOv7-Xの推論速度は31fps速い。また、パラメータと計算量の点で、YOLOv7-XはYOLOv5-X (r6.1)と比較して、パラメータを22%、計算量を8%削減するが、APは2.2%向上する(出典)。

モデル Params
(M)
FLOPs
(G)
サイズ
(ピクセル)
FPS APtest/ val
50-95
APtest
50
APtest
75
APtest
S
APtest
M
APtest
L
YOLOX-S 9.0M 26.8G 640 102 40.5% / 40.5% - - - - -
YOLOX-M 25.3M 73.8G 640 81 47.2% / 46.9% - - - - -
YOLOX-L 54.2M 155.6G 640 69 50.1% / 49.7% - - - - -
YOLOX-X 99.1M 281.9G 640 58 51.5% / 51.1% - - - - -
PPYOLOE-S 7.9M 17.4G 640 208 43.1% / 42.7% 60.5% 46.6% 23.2% 46.4% 56.9%
PPYOLOE-M 23.4M 49.9G 640 123 48.9% / 48.6% 66.5% 53.0% 28.6% 52.9% 63.8%
PPYOLOE-L 52.2M 110.1G 640 78 51.4% / 50.9% 68.9% 55.6% 31.4% 55.3% 66.1%
PPYOLOE-X 98.4M 206.6G 640 45 52.2% / 51.9% 69.9% 56.5% 33.3% 56.3% 66.4%
YOLOv5-N (r6.1) 1.9M 4.5G 640 159 - / 28.0% - - - - -
YOLOv5-S (r6.1) 7.2M 16.5G 640 156 - / 37.4% - - - - -
YOLOv5-M (r6.1) 21.2M 49.0G 640 122 - / 45.4% - - - - -
YOLOv5-L (r6.1) 46.5M 109.1G 640 99 - / 49.0% - - - - -
YOLOv5-X (r6.1) 86.7M 205.7G 640 83 - / 50.7% - - - - -
YOLOR-CSP 52.9M 120.4G 640 106 51.1% / 50.8% 69.6% 55.7% 31.7% 55.3% 64.7%
YOLOR-CSP-X 96.9M 226.8G 640 87 53.0% / 52.7% 71.4% 57.9% 33.7% 57.1% 66.8%
YOLOv7-tiny-SiLU 6.2M 13.8G 640 286 38.7% / 38.7% 56.7% 41.7% 18.8% 42.4% 51.9%
YOLOv7 36.9M 104.7G 640 161 51.4% / 51.2% 69.7% 55.9% 31.8% 55.5% 65.0%
YOLOv7-X 71.3M 189.9G 640 114 53.1% / 52.9% 71.2% 57.8% 33.8% 57.1% 67.4%
YOLOv5-N6 (r6.1) 3.2M 18.4G 1280 123 - / 36.0% - - - - -
YOLOv5-S6 (r6.1) 12.6M 67.2G 1280 122 - / 44.8% - - - - -
YOLOv5-M6 (r6.1) 35.7M 200.0G 1280 90 - / 51.3% - - - - -
YOLOv5-L6 (r6.1) 76.8M 445.6G 1280 63 - / 53.7% - - - - -
YOLOv5-X6 (r6.1) 140.7M 839.2G 1280 38 - / 55.0% - - - - -
YOLOR-P6 37.2M 325.6G 1280 76 53.9% / 53.5% 71.4% 58.9% 36.1% 57.7% 65.6%
YOLOR-W6 79.8G 453.2G 1280 66 55.2% / 54.8% 72.7% 60.5% 37.7% 59.1% 67.1%
YOLOR-E6 115.8M 683.2G 1280 45 55.8% / 55.7% 73.4% 61.1% 38.4% 59.7% 67.7%
YOLOR-D6 151.7M 935.6G 1280 34 56.5% / 56.1% 74.1% 61.9% 38.9% 60.4% 68.7%
YOLOv7-W6 70.4M 360.0G 1280 84 54.9% / 54.6% 72.6% 60.1% 37.3% 58.7% 67.1%
YOLOv7-E6 97.2M 515.2G 1280 56 56.0% / 55.9% 73.5% 61.2% 38.0% 59.9% 68.4%
YOLOv7-D6 154.7M 806.8G 1280 44 56.6% / 56.3% 74.0% 61.8% 38.8% 60.1% 69.5%
YOLOv7-E6E 151.7M 843.2G 1280 36 56.8% / 56.8% 74.4% 62.1% 39.3% 60.5% 69.0%

概要

リアルタイム物体検出は、多オブジェクト追跡、自律走行、ロボット工学、医療画像解析など、多くのコンピュータビジョンシステムにおいて重要な要素である。近年、リアルタイム物体検出の開発は、効率的なアーキテクチャの設計と、さまざまなCPU、GPU、およびニューラル・プロセッシング・ユニット(NPU)の推論速度の向上に重点を置いている。YOLOv7は、エッジからクラウドまで、モバイルGPU とGPU デバイスの両方をサポートしています。

YOLOv7は、アーキテクチャの最適化に焦点を当てた従来のリアルタイム物体検出器とは異なり、学習プロセスの最適化に焦点を当てています。これには、推論コストを増加させることなく物体検出の精度を向上させるように設計されたモジュールと最適化手法が含まれ、「訓練可能なフリービーバッグ(trainable bag-of-freebies)」として知られる概念である。

主な特徴

YOLOv7にはいくつかの重要な特徴がある:

  1. モデルの再パラメータ化YOLOv7は、計画的な再パラメータ化モデルを提案する。これは、勾配伝搬経路の概念を持つ異なるネットワークの層に適用可能な戦略である。

  2. 動的なラベルの割り当て:複数の出力層を持つモデルのトレーニングは、新たな問題を提示する:「異なる枝の出力に対して、どのように動的なターゲットを割り当てるか?この問題を解決するために、YOLOv7は、粗から細へのリードガイドラベル割り当てと呼ばれる新しいラベル割り当て方法を導入している。

  3. 拡張と複合スケーリング:YOLOv7は、パラメータと計算を効果的に利用できるリアルタイム物体検出のための「拡張」と「複合スケーリング」手法を提案している。

  4. 効率:YOLOv7が提案する方法は、最先端のリアルタイム物体検出器の約40%のパラメータと50%の計算量を効果的に削減することができ、より速い推論速度とより高い検出精度を有する。

使用例

本稿執筆時点では、Ultralytics 、現在YOLOv7モデルをサポートしていない。従って、YOLOv7の使用に興味があるユーザーは、YOLOv7のGitHubレポジトリを直接参照して、インストールと使用方法を確認する必要がある。

ここでは、YOLOv7を使用するための典型的な手順を簡単に説明します:

  1. YOLOv7のGitHubリポジトリhttps://github.com/WongKinYiu/yolov7。

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

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

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

YOLOv7のサポートが実装され次第、Ultralytics 。

引用と謝辞

YOLOv7作者のリアルタイム物体検出分野における多大な貢献に感謝したい:

@article{wang2022yolov7,
  title={{YOLOv7}: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors},
  author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
  journal={arXiv preprint arXiv:2207.02696},
  year={2022}
}

オリジナルのYOLOv7論文はarXivに掲載されている。著者らは彼らの研究を公開し、コードベースはGitHubでアクセスできる。我々は、この分野を発展させ、より広いコミュニティが彼らの研究にアクセスできるようにした彼らの努力に感謝している。

よくあるご質問

YOLOv7とは何か、そしてなぜリアルタイム物体検出のブレークスルーと言われるのか?

YOLOv7は、圧倒的な速度と精度を実現した最先端のリアルタイム物体検出モデルです。YOLOX、YOLOv5 、PPYOLOEといった他のモデルを、パラメータ使用量と推論速度の両方で凌駕している。YOLOv7の特徴的な機能には、モデルの再パラメータ化と動的ラベル割り当てがあり、推論コストを増加させることなく性能を最適化している。YOLOv7のアーキテクチャの詳細や、他の最先端の物体検出器との比較指標については、YOLOv7の論文を参照してください。

YOLOv7は、YOLOv4やYOLOv5 のような以前のモデル(YOLO )をどのように改良したのですか?

YOLOv7は、モデルの再パラメータ化や動的なラベル割り当てなど、学習プロセスを強化し、推論精度を向上させるいくつかのイノベーションを導入している。YOLOv5 と比較して、YOLOv7はスピードと精度を大幅に向上させた。例えば、YOLOv7-Xは、YOLOv5-Xと比較して、精度を2.2%向上させ、パラメータを22%削減した。詳細な比較は、性能表YOLOv7とSOTA物体検出器の比較でご覧いただけます。

YOLOv7をUltralytics のツールやプラットフォームで使用できますか?

現在のところ、Ultralytics 、そのツールやプラットフォームではYOLOv7を直接サポートしていない。YOLOv7を使いたいユーザーは、YOLOv7のGitHubリポジトリで提供されているインストールと使い方の説明に従う必要がある。その他の最先端モデルについては、Ultralytics HUBのようなUltralytics ツールを使って探索し、トレーニングすることができる。

カスタムオブジェクト検出プロジェクトにYOLOv7をインストールして実行するには?

YOLOv7をインストールして実行するには、以下の手順に従ってください:

  1. YOLOv7リポジトリをクローンする:
    git clone https://github.com/WongKinYiu/yolov7
    
  2. クローンしたディレクトリに移動し、依存関係をインストールする:
    cd yolov7
    pip install -r requirements.txt
    
  3. データセットを準備し、リポジトリで提供されている使用方法に従ってモデルパラメータを設定します。 さらなるガイダンスについては、YOLOv7のGitHubリポジトリで最新情報とアップデートをご覧ください。

YOLOv7で導入された主な機能と最適化について教えてください。

YOLOv7は、リアルタイムの物体検出に革命をもたらすいくつかの重要な機能を提供する:

  • モデルの再パラメータ化:勾配伝搬経路を最適化することで、モデルのパフォーマンスを向上させる。
  • ダイナミック・ラベル割り当て:異なるブランチ間の出力にダイナミックターゲットを割り当てるために、粗いリードから細かいリードへ誘導する方法を使用し、精度を向上。
  • 拡張および複合スケーリング:パラメータと計算を効率的に利用し、様々なリアルタイム・アプリケーション向けにモデルを拡張します。
  • 効率:他の最先端モデルと比較して、パラメータ数を40%削減し、計算量を50%削減しながら、より高速な推論を実現。 これらの機能の詳細については、YOLOv7の概要セクションをご覧ください。


作成日:2023-11-12 更新日:2024-07-04
作成者:glenn-jocher(8),sergiuwaxmann(1)

コメント